Commit fae9c63900d4ea04d44f21c912d6cf2308f69c90

Authored by 曾国涛
1 parent 3201699b

Merge branch 'master' into zgt移除ManualInvoicingModal中的非必要注释代码

发现并删除了ManualInvoicingModal组件中未使用的注释代码,以提高代码清晰度和维护性。
.umirc.ts
... ... @@ -72,19 +72,26 @@ export default defineConfig({
72 72 component: './Invoice/InvoiceRecord',
73 73 },
74 74 {
75   - name: '发票管理',
  75 + name: '发票核销',
76 76 path: 'invoice',
77 77 icon: 'BookOutlined',
78 78 access: 'canReadAdminAndFinance',
79 79 component: './Invoice/Invoice',
80 80 },
81 81 {
82   - name: '发票核销',
  82 + name: '银行流水',
83 83 path: 'invoiceVerification',
84 84 icon: 'BookOutlined',
85 85 access: 'canReadAdminAndFinance',
86 86 component: './Invoice/InvoiceVerification',
87 87 },
  88 + {
  89 + name: '手动开票白名单',
  90 + path: 'OldInvoicingWhiteList',
  91 + icon: 'BookOutlined',
  92 + access: 'canReadAdminAndFinance',
  93 + component: './Invoice/whiteList',
  94 + },
88 95 ],
89 96 },
90 97 {
... ... @@ -133,7 +140,7 @@ export default defineConfig({
133 140 path: '/procure',
134 141 component: './procure',
135 142 icon: 'BookOutlined',
136   - access: 'canReadAdmin',
  143 + access: 'canReadAdminAndWarehouseKeeperAndProcure',
137 144 },
138 145 /*{
139 146 name: '用户管理',
... ...
src/access.ts
... ... @@ -5,6 +5,7 @@ export default (initialState: API.UserInfo) => {
5 5 const canReadAdmin = roleSmallVO?.code === 'admin';
6 6 const canReadProcure = roleSmallVO?.code === 'procure';
7 7 const canReadFinance = roleSmallVO?.code === 'finance';
  8 + const canReadWarehouseKeeper = roleSmallVO?.code === 'warehouseKeeper';
8 9 const canReadSales =
9 10 roleSmallVO?.code === 'salesManager' ||
10 11 roleSmallVO?.code === 'salesRepresentative';
... ... @@ -17,5 +18,7 @@ export default (initialState: API.UserInfo) => {
17 18 canReadAdminAndFinanceAndSales:
18 19 canReadFinance || canReadAdmin || canReadSales,
19 20 canReadAdminAndSales: canReadAdmin || canReadSales,
  21 + canReadAdminAndWarehouseKeeperAndProcure:
  22 + canReadWarehouseKeeper || canReadAdmin || canReadProcure,
20 23 };
21 24 };
... ...
src/pages/Invoice/Invoice/index.tsx
... ... @@ -112,8 +112,9 @@ const InvoiceRecord = () => {
112 112 <a
113 113 key="editable"
114 114 onClick={() => {
  115 + console.log(JSON.stringify(record));
115 116 setInvoiceVerificationVisible(true);
116   - setInvoiceId(record.invoiceId);
  117 + setInvoiceId(record.id);
117 118 }}
118 119 >
119 120 核销
... ...
src/pages/Invoice/InvoiceRecord/index.tsx
... ... @@ -12,7 +12,8 @@ import {
12 12 import { excelExport } from '@/services/exportRequest';
13 13 import { enumToProTableEnumValue, enumToSelect } from '@/utils';
14 14 import { ActionType, ModalForm, ProTable } from '@ant-design/pro-components';
15   -import { Button, Divider, Space, Tooltip, message } from 'antd';
  15 +import { Button, Divider, Space, Table, Tooltip, message } from 'antd';
  16 +import axios from 'axios';
16 17 import { useEffect, useRef, useState } from 'react';
17 18  
18 19 const InvoiceRecord = () => {
... ... @@ -49,6 +50,40 @@ const InvoiceRecord = () =&gt; {
49 50 extracted().catch(console.error);
50 51 }, []);
51 52  
  53 + const downloadImportTemplate = async (urls) => {
  54 + messageApi.open({
  55 + type: 'loading',
  56 + content: '下载中',
  57 + duration: 0,
  58 + });
  59 + axios({
  60 + url: '/api/file/directDown',
  61 + method: 'post',
  62 + responseType: 'blob',
  63 + headers: { Authorization: localStorage.getItem('token') },
  64 + data: urls,
  65 + })
  66 + .then((response) => {
  67 + // 创建一个新的 Blob 对象,它包含了服务器响应的数据(即你的 Excel 文件)
  68 + const blob = new Blob([response.data]); // Excel 的 MIME 类型
  69 + const downloadUrl = window.URL.createObjectURL(blob);
  70 + const a = document.createElement('a');
  71 + a.href = downloadUrl;
  72 + a.download = '发票.zip'; // 你可以为文件命名
  73 + document.body.appendChild(a);
  74 + a.click(); // 模拟点击操作来下载文件
  75 + URL.revokeObjectURL(downloadUrl); // 释放掉 blob 对象所占用的内存
  76 + document.body.removeChild(a);
  77 + })
  78 + .catch((error) => {
  79 + // 处理错误
  80 + console.error('下载错误', error);
  81 + })
  82 + .finally(() => {
  83 + messageApi.destroy();
  84 + });
  85 + };
  86 +
52 87 const processedRecordColumns = [
53 88 {
54 89 dataIndex: 'index',
... ... @@ -204,6 +239,7 @@ const InvoiceRecord = () =&gt; {
204 239 },
205 240 {
206 241 title: '开票状态',
  242 + key: 'invoiceRecordStatus',
207 243 valueType: 'select',
208 244 dataIndex: 'status',
209 245 filters: true,
... ... @@ -215,9 +251,9 @@ const InvoiceRecord = () =&gt; {
215 251 },
216 252 },
217 253 {
218   - title: '销售代表',
  254 + title: '申请人',
219 255 valueType: 'select',
220   - dataIndex: 'salesCode',
  256 + dataIndex: 'createByName',
221 257 filters: true,
222 258 onFilter: true,
223 259 hideInTable: true,
... ... @@ -400,6 +436,32 @@ const InvoiceRecord = () =&gt; {
400 436 listsHeight: 400,
401 437 },
402 438 }}
  439 + rowSelection={{
  440 + // 自定义选择项参考: https://ant.design/components/table-cn/#components-table-demo-row-selection-custom
  441 + // 注释该行则默认不显示下拉选项
  442 + selections: [Table.SELECTION_ALL, Table.SELECTION_INVERT],
  443 + alwaysShowAlert: true,
  444 + }}
  445 + tableAlertOptionRender={({ selectedRowKeys, selectedRows }) => {
  446 + console.log(selectedRows);
  447 + console.log(selectedRowKeys);
  448 + return (
  449 + <Space size={16}>
  450 + <Button
  451 + type={'primary'}
  452 + onClick={() => {
  453 + const urls = selectedRows.map((item) => {
  454 + return item.invoiceAddress;
  455 + });
  456 + downloadImportTemplate(urls);
  457 + }}
  458 + disabled={selectedRowKeys.length === 0}
  459 + >
  460 + 下载发票
  461 + </Button>
  462 + </Space>
  463 + );
  464 + }}
403 465 form={{}}
404 466 dateFormatter="string"
405 467 headerTitle="待开票列表"
... ...
src/pages/Invoice/constant.tsx
... ... @@ -93,6 +93,7 @@ export const INVOICE_COLUMNS = [
93 93 title: '金额',
94 94 dataIndex: 'money',
95 95 valueType: 'money',
  96 + hideInTable: true,
96 97 width: 100,
97 98 },
98 99 {
... ... @@ -131,6 +132,7 @@ export const INVOICE_COLUMNS = [
131 132 title: '备注',
132 133 dataIndex: 'notes',
133 134 valueType: 'text',
  135 + hideInSearch: true,
134 136 width: 250,
135 137 },
136 138 ];
... ...
src/pages/Invoice/waitProcessRecord/components/ManualInvoicingModal.tsx
... ... @@ -38,6 +38,7 @@ export default ({ record }) =&gt; {
38 38 isSuccess: true,
39 39 invoiceRecordId: record.id,
40 40 manual: true,
  41 + invoiceDetailDtoList: record.invoiceDetails,
41 42 },
42 43 });
43 44 if (res.result === RESPONSE_CODE.SUCCESS) {
... ...
src/pages/Invoice/waitProcessRecord/index.tsx
... ... @@ -120,7 +120,7 @@ const InvoiceRecord = () =&gt; {
120 120 hideInTable: true,
121 121 },
122 122 {
123   - title: '销售代表',
  123 + title: '申请人',
124 124 valueType: 'text',
125 125 hideInSearch: true,
126 126 ellipsis: true,
... ... @@ -258,6 +258,7 @@ const InvoiceRecord = () =&gt; {
258 258 {
259 259 title: '开票状态',
260 260 valueType: 'select',
  261 + key: 'waitProcessRecordStatus',
261 262 dataIndex: 'status',
262 263 filters: true,
263 264 onFilter: true,
... ... @@ -383,7 +384,6 @@ const InvoiceRecord = () =&gt; {
383 384 'WAITING_FOR_INVOICING',
384 385 'AUDITING',
385 386 'AUDITING_NOT_PASSED',
386   - 'CANCELED',
387 387 ],
388 388 needBuildDetails: true,
389 389 needBuildSubOrders: true,
... ...
src/pages/Invoice/whiteList/index.tsx 0 → 100644
  1 +import ButtonConfirm from '@/components/ButtomConfirm';
  2 +import { RESPONSE_CODE } from '@/constants/enum';
  3 +import {
  4 + postOldInvoicingWhiteListBatchAdd,
  5 + postOldInvoicingWhiteListPage,
  6 + postOldInvoicingWhiteListRemove,
  7 +} from '@/services';
  8 +import { PlusOutlined } from '@ant-design/icons';
  9 +import {
  10 + ActionType,
  11 + ModalForm,
  12 + ProColumns,
  13 + ProFormTextArea,
  14 + ProTable,
  15 +} from '@ant-design/pro-components';
  16 +import { Button, message } from 'antd';
  17 +import { useRef } from 'react';
  18 +export const waitTimePromise = async (time: number = 100) => {
  19 + return new Promise((resolve) => {
  20 + setTimeout(() => {
  21 + resolve(true);
  22 + }, time);
  23 + });
  24 +};
  25 +
  26 +export const waitTime = async (time: number = 100) => {
  27 + await waitTimePromise(time);
  28 +};
  29 +
  30 +const columns: ProColumns[] = [
  31 + {
  32 + dataIndex: 'index',
  33 + valueType: 'indexBorder',
  34 + width: 48,
  35 + },
  36 + {
  37 + title: '订单号',
  38 + dataIndex: 'mainOrderId',
  39 + ellipsis: true,
  40 + },
  41 + {
  42 + title: '添加时间',
  43 + dataIndex: 'createTime',
  44 + hideInSearch: true,
  45 + ellipsis: true,
  46 + },
  47 + {
  48 + title: '添加人',
  49 + dataIndex: 'createByName',
  50 + hideInSearch: true,
  51 + ellipsis: true,
  52 + },
  53 + {
  54 + title: '创建时间',
  55 + valueType: 'dateTimeRange',
  56 + hideInTable: true,
  57 + search: {
  58 + transform: (value) => {
  59 + if (value) {
  60 + return {
  61 + createTimeGe: value[0],
  62 + createTimeLe: value[1],
  63 + };
  64 + }
  65 + },
  66 + },
  67 + },
  68 + {
  69 + title: '操作',
  70 + valueType: 'option',
  71 + key: 'option',
  72 + render: (text, record, _, action) => [
  73 + <ButtonConfirm
  74 + key="delete"
  75 + className="p-0"
  76 + title={'确认删除此项吗?'}
  77 + text="删除"
  78 + onConfirm={async () => {
  79 + await postOldInvoicingWhiteListRemove({
  80 + query: {
  81 + mainOrderId: record.mainOrderId,
  82 + },
  83 + });
  84 + action?.reload();
  85 + }}
  86 + />,
  87 + ],
  88 + },
  89 +];
  90 +
  91 +export default () => {
  92 + const actionRef = useRef<ActionType>();
  93 + return (
  94 + <ProTable
  95 + columns={columns}
  96 + actionRef={actionRef}
  97 + cardBordered
  98 + request={async (params) => {
  99 + const res = await postOldInvoicingWhiteListPage({
  100 + data: params,
  101 + });
  102 + return res.data;
  103 + }}
  104 + rowKey="id"
  105 + search={{
  106 + labelWidth: 'auto',
  107 + }}
  108 + options={{
  109 + setting: {
  110 + listsHeight: 400,
  111 + },
  112 + }}
  113 + pagination={{
  114 + pageSize: 5,
  115 + onChange: (page) => console.log(page),
  116 + }}
  117 + dateFormatter="string"
  118 + headerTitle="白名单"
  119 + toolBarRender={() => [
  120 + <ModalForm
  121 + key="add"
  122 + title="添加"
  123 + trigger={
  124 + <Button type="primary">
  125 + <PlusOutlined />
  126 + 添加
  127 + </Button>
  128 + }
  129 + autoFocusFirstInput
  130 + modalProps={{
  131 + destroyOnClose: true,
  132 + onCancel: () => console.log('run'),
  133 + }}
  134 + submitTimeout={2000}
  135 + onFinish={async (values) => {
  136 + const res = await postOldInvoicingWhiteListBatchAdd({
  137 + data: values,
  138 + });
  139 + if (res.result === RESPONSE_CODE.SUCCESS) {
  140 + actionRef.current?.reload();
  141 + message.success('添加成功');
  142 + return true;
  143 + }
  144 + }}
  145 + >
  146 + <ProFormTextArea
  147 + name="orderIdsText"
  148 + label="订单号"
  149 + placeholder="请输入订单号,多个用逗号分割"
  150 + rules={[
  151 + {
  152 + required: true,
  153 + message: '请输入订单号,多个用逗号分割',
  154 + },
  155 + ]}
  156 + ></ProFormTextArea>
  157 + </ModalForm>,
  158 + ]}
  159 + />
  160 + );
  161 +};
... ...
src/pages/Order/components/InvoicingDrawerForm.tsx
... ... @@ -123,19 +123,6 @@ export default ({ dataList, setVisible, mainOrder, onClose }) =&gt; {
123 123 const openBank = form.getFieldValue('openBank');
124 124 const bankAccount = form.getFieldValue('bankAccount');
125 125 const bankCode = form.getFieldValue('bankCode');
126   - console.log(
127   - '开户名称: ' +
128   - partyBName +
129   - '\n' +
130   - '开户行: ' +
131   - openBank +
132   - '\n' +
133   - '账号: ' +
134   - bankAccount +
135   - '\n' +
136   - '银行联行号: ' +
137   - bankCode,
138   - );
139 126 return {
140 127 ...form.getFieldsValue(),
141 128 totalPrice: totalPrice,
... ... @@ -205,7 +192,6 @@ export default ({ dataList, setVisible, mainOrder, onClose }) =&gt; {
205 192 let res = await postServiceInvoiceWaitReissueInvoices({
206 193 data: reissueIds,
207 194 });
208   - console.log(res.data);
209 195 return enum2ReverseSelect(res.data);
210 196 }}
211 197 />
... ... @@ -289,15 +275,6 @@ export default ({ dataList, setVisible, mainOrder, onClose }) =&gt; {
289 275 label="联系人"
290 276 rules={[{ required: true, message: '请选择银行联行号!' }]}
291 277 />
292   - <ProFormMoney
293   - label="开票金额"
294   - name="price"
295   - locale="zh-CN"
296   - rules={[{ required: true, message: '请填写开票金额!' }]}
297   - initialValue={dataListCopy.reduce((accumulator, currentValue) => {
298   - return accumulator + currentValue.subOrderPayment;
299   - }, 0)}
300   - />
301 278 <ProFormSelect
302 279 name="invoicingType"
303 280 label="开具类型"
... ... @@ -388,23 +365,19 @@ export default ({ dataList, setVisible, mainOrder, onClose }) =&gt; {
388 365 placeholder="请选择是否加急"
389 366 rules={[{ required: true, message: '请选择是否加急!' }]}
390 367 />
  368 + <ProFormMoney
  369 + label="开票金额"
  370 + name="price"
  371 + locale="zh-CN"
  372 + disabled={true}
  373 + rules={[{ required: true, message: '请填写开票金额!' }]}
  374 + initialValue={dataListCopy.reduce((accumulator, currentValue) => {
  375 + return accumulator + currentValue.subOrderPayment;
  376 + }, 0)}
  377 + />
391 378 <ProFormList
392 379 name="invoiceDetails"
393 380 label="开票明细"
394   - /*initialValue={dataListCopy.map((item) => {
395   - console.log("item"+JSON.stringify(item));
396   - return {
397   - productName: item.productName,
398   - projectName: item.projectName,
399   - subOrderId: item.id,
400   - /!*projectName: item.productName,*!/
401   - specification: item.parameters,
402   - unit: item.unit,
403   - quantity: item.quantity,
404   - price: item.productPrice,
405   - totalPrice: item.subOrderPayment,
406   - };
407   - })}*/
408 381 rules={[
409 382 {
410 383 required: true,
... ... @@ -488,9 +461,6 @@ export default ({ dataList, setVisible, mainOrder, onClose }) =&gt; {
488 461 option.productAndServiceCatagoryAbbreviation +
489 462 '*' +
490 463 option.name;
491   - console.log(
492   - 'copyList' + JSON.stringify(listMeta.record.projectName),
493   - );
494 464 form.setFieldValue('invoiceDetails', copyList);
495 465 }}
496 466 debounceTime={1000}
... ... @@ -575,6 +545,18 @@ export default ({ dataList, setVisible, mainOrder, onClose }) =&gt; {
575 545 key={'totalPrice' + listMeta.index}
576 546 label="金额"
577 547 name="totalPrice"
  548 + onChange={() => {
  549 + const invoiceDetails = form.getFieldValue('invoiceDetails');
  550 + console.log('invoiceDetails', invoiceDetails);
  551 + const totalPrice = invoiceDetails.reduce(
  552 + (accumulator, currentValue) => {
  553 + return FloatAdd(accumulator, currentValue.totalPrice);
  554 + },
  555 + 0,
  556 + );
  557 + console.log('totalPrice', totalPrice);
  558 + form.setFieldValue('price', totalPrice);
  559 + }}
578 560 rules={[
579 561 {
580 562 validator: (_, value) => {
... ...
src/pages/Order/components/OrderDrawer.tsx
... ... @@ -11,6 +11,7 @@ import {
11 11 postKingdeeRepMaterialUnit,
12 12 postKingdeeRepMeasureUnit,
13 13 postPrepaidPhoneAvailableList,
  14 + postResearchGroupsNameSet,
14 15 postServiceOrderAddOrder,
15 16 postServiceOrderAfterSalesQuerySnapshotOrder,
16 17 postServiceOrderApplyAfterSales,
... ... @@ -1202,13 +1203,36 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
1202 1203 placeholder="请输入单位"
1203 1204 rules={[{ required: true, message: '单位必填' }]}
1204 1205 />
1205   - <ProFormText
1206   - width="lg"
1207   - key="institutionContactName"
  1206 + <ProFormSelect
  1207 + key={'institutionContactName'}
  1208 + width="md"
  1209 + showSearch
1208 1210 name="institutionContactName"
1209   - label="课题组"
1210   - placeholder="请输入课题组"
1211   - rules={[{ required: true, message: '课题组必填' }]}
  1211 + rules={[{ required: true, message: '请输入课题组名称!' }]}
  1212 + request={async (value) => {
  1213 + const keywords = value.keyWords;
  1214 + const res = await postResearchGroupsNameSet({
  1215 + data: {
  1216 + groupName: keywords,
  1217 + },
  1218 + });
  1219 + let options = res?.data?.map((c: any) => {
  1220 + return {
  1221 + label: c,
  1222 + value: c,
  1223 + key: c,
  1224 + };
  1225 + });
  1226 + return options;
  1227 + }}
  1228 + fieldProps={{
  1229 + filterOption() {
  1230 + return true;
  1231 + },
  1232 + }}
  1233 + debounceTime={1000}
  1234 + label="课题组名称"
  1235 + placeholder="请输入名称"
1212 1236 />
1213 1237 <div
1214 1238 style={{
... ...
src/pages/procure/components/AddDrawer.tsx renamed to src/pages/procure/components/AddOrModifyDrawer.tsx
1 1 import { RESPONSE_CODE } from '@/constants/enum';
2 2 import {
3 3 postOrderErpOrderStagesUpload,
4   - postProcureReturnBillAdd,
  4 + postProcureReturnBillAddOrModify,
5 5 postServiceConstStores,
6 6 } from '@/services';
7 7 import { enumToSelect } from '@/utils';
... ... @@ -14,44 +14,76 @@ import {
14 14 } from '@ant-design/pro-components';
15 15 import { Button, Form, message } from 'antd';
16 16 import { RcFile } from 'antd/es/upload';
17   -
18   -export default ({ reloadTable }) => {
  17 +export default ({ data, type, reloadTable }) => {
19 18 const [form] = Form.useForm();
  19 + const onfinish = async (values) => {
  20 + const res = await postProcureReturnBillAddOrModify({
  21 + data: values,
  22 + });
  23 + if (res.result === RESPONSE_CODE.SUCCESS) {
  24 + message.success('新增成功');
  25 + reloadTable();
  26 + return true;
  27 + }
  28 + // 不返回不会关闭弹框
  29 + };
  30 + const optType = {
  31 + add: {
  32 + readOnly: false,
  33 + title: '新增采购退货单',
  34 + button: (
  35 + <Button size={'small'} type="primary">
  36 + 新增
  37 + </Button>
  38 + ),
  39 + onFinish: onfinish,
  40 + },
  41 + modify: {
  42 + readOnly: false,
  43 + title: '修改采购退货单',
  44 + button: (
  45 + <Button size={'small'} type="link">
  46 + 编辑
  47 + </Button>
  48 + ),
  49 + onFinish: onfinish,
  50 + },
  51 + detail: {
  52 + readOnly: true,
  53 + title: '查看采购退货单',
  54 + button: (
  55 + <Button size={'small'} type="link">
  56 + 查看
  57 + </Button>
  58 + ),
  59 + onFinish: () => {},
  60 + },
  61 + };
20 62 return (
21 63 <DrawerForm
22   - title="新增采购退货单"
  64 + title={optType[type].title}
23 65 resize={{
24 66 onResize() {
25 67 console.log('resize!');
26 68 },
27 69 maxWidth: window.innerWidth * 0.8,
28   - minWidth: 300,
  70 + minWidth: 400,
29 71 }}
30 72 form={form}
31   - trigger={<Button type="primary">新增</Button>}
  73 + trigger={optType[type].button}
32 74 autoFocusFirstInput
33 75 drawerProps={{
34 76 destroyOnClose: true,
35 77 }}
36 78 submitTimeout={2000}
37   - onFinish={async (values) => {
38   - const res = await postProcureReturnBillAdd({
39   - data: values,
40   - });
41   - if (res.result === RESPONSE_CODE.SUCCESS) {
42   - message.success('新增成功');
43   - return true;
44   - }
45   - message.success('提交成功');
46   - reloadTable();
47   - // 不返回不会关闭弹框
48   - return true;
49   - }}
  79 + onFinish={optType[type].onFinish}
50 80 >
51 81 <ProFormText
52 82 name="consignee"
53 83 label="收货人"
54 84 placeholder="请输入收货人"
  85 + readonly={optType[type].readOnly}
  86 + initialValue={data?.consignee}
55 87 rules={[
56 88 {
57 89 required: true,
... ... @@ -63,6 +95,8 @@ export default ({ reloadTable }) =&gt; {
63 95 name="phoneNumber"
64 96 label="联系电话"
65 97 placeholder="请输入联系电话"
  98 + initialValue={data?.phoneNumber}
  99 + readonly={optType[type].readOnly}
66 100 rules={[
67 101 {
68 102 required: true,
... ... @@ -74,6 +108,8 @@ export default ({ reloadTable }) =&gt; {
74 108 name="address"
75 109 label="收货地址"
76 110 placeholder="请输入收货地址"
  111 + initialValue={data?.address}
  112 + readonly={optType[type].readOnly}
77 113 rules={[
78 114 {
79 115 required: true,
... ... @@ -85,6 +121,8 @@ export default ({ reloadTable }) =&gt; {
85 121 name="productDetail"
86 122 label="产品明细"
87 123 placeholder="请输入产品明细"
  124 + initialValue={data?.productDetail}
  125 + readonly={optType[type].readOnly}
88 126 rules={[
89 127 {
90 128 required: true,
... ... @@ -94,6 +132,11 @@ export default ({ reloadTable }) =&gt; {
94 132 ></ProFormTextArea>
95 133 <ProFormSelect
96 134 name="sendStoreCode"
  135 + readonly={optType[type].readOnly}
  136 + fieldProps={{
  137 + labelInValue: false,
  138 + }}
  139 + initialValue={data ? data?.sendStoreCode + '' : null}
97 140 label="发货仓库"
98 141 request={async () => {
99 142 const res = await postServiceConstStores();
... ... @@ -109,12 +152,15 @@ export default ({ reloadTable }) =&gt; {
109 152 <ProFormTextArea
110 153 name="notes"
111 154 label="备注"
  155 + initialValue={data?.notes}
  156 + readonly={optType[type].readOnly}
112 157 placeholder="请输入备注"
113 158 ></ProFormTextArea>
114 159 <ProFormUploadDragger
115 160 label="附件"
116 161 name="attachmentsFile"
117 162 action="upload.do"
  163 + hidden={optType[type].readOnly}
118 164 onChange={(info) => {
119 165 const uploadFile = async ({ fileList: newFileList }) => {
120 166 if (newFileList.length > 0) {
... ... @@ -138,7 +184,15 @@ export default ({ reloadTable }) =&gt; {
138 184 }}
139 185 max={1}
140 186 />
141   - <ProFormText name="attachments" hidden></ProFormText>
  187 + <a hidden={!optType[type].readOnly} href={data?.attachments} download>
  188 + 下载附件
  189 + </a>
  190 + <ProFormText
  191 + initialValue={data?.attachments}
  192 + name="attachments"
  193 + hidden
  194 + ></ProFormText>
  195 + <ProFormText initialValue={data?.id} name="id" hidden></ProFormText>
142 196 </DrawerForm>
143 197 );
144 198 };
... ...
src/pages/procure/components/StatusTransitionModal.tsx 0 → 100644
  1 +import { RESPONSE_CODE } from '@/constants/enum';
  2 +import {
  3 + postProcureReturnBillAudit,
  4 + postProcureReturnBillSend,
  5 +} from '@/services';
  6 +import { ModalForm, ProFormTextArea } from '@ant-design/pro-components';
  7 +import { Button, Form, message } from 'antd';
  8 +
  9 +export default ({ type, ids, reloadTable }) => {
  10 + const transitionTypes = {
  11 + audit: {
  12 + title: '审核',
  13 + notesLabel: '驳回原因',
  14 + notesPlaceholder: '请输入驳回原因',
  15 + submitText: '通过',
  16 + resetText: '驳回',
  17 + onfinish: async (values) => {
  18 + const res = await postProcureReturnBillAudit({
  19 + data: {
  20 + ids: ids,
  21 + transitionNotes: values.transitionNotes,
  22 + },
  23 + });
  24 + if (res.result === RESPONSE_CODE.SUCCESS) {
  25 + message.success('操作成功');
  26 + reloadTable();
  27 + return true;
  28 + } else {
  29 + message.error('操作失败');
  30 + }
  31 + },
  32 + },
  33 + send: {
  34 + title: '发货',
  35 + notesLabel: '发货信息',
  36 + notesPlaceholder: '请输入发货信息(如:顺丰快递,SF24070802324)',
  37 + submitText: '发货',
  38 + resetText: '取消',
  39 + onfinish: async (values) => {
  40 + const res = await postProcureReturnBillSend({
  41 + data: {
  42 + ids: ids,
  43 + transitionNotes: values.transitionNotes,
  44 + },
  45 + });
  46 + if (res.result === RESPONSE_CODE.SUCCESS) {
  47 + message.success('操作成功');
  48 + reloadTable();
  49 + return true;
  50 + } else {
  51 + message.error('操作失败');
  52 + }
  53 + },
  54 + },
  55 + };
  56 + const [form] = Form.useForm();
  57 + return (
  58 + <ModalForm
  59 + title={transitionTypes[type].title}
  60 + trigger={
  61 + <Button size={'small'} type="link">
  62 + {transitionTypes[type].title}
  63 + </Button>
  64 + }
  65 + form={form}
  66 + autoFocusFirstInput
  67 + modalProps={{
  68 + destroyOnClose: true,
  69 + onCancel: () => console.log('run'),
  70 + }}
  71 + submitter={{
  72 + searchConfig: {
  73 + submitText: transitionTypes[type].submitText,
  74 + resetText: transitionTypes[type].resetText,
  75 + },
  76 + }}
  77 + onFinish={transitionTypes[type].onfinish}
  78 + >
  79 + <ProFormTextArea
  80 + name="transitionNotes"
  81 + label={transitionTypes[type].notesLabel}
  82 + placeholder={transitionTypes[type].notesPlaceholder}
  83 + />
  84 + </ModalForm>
  85 + );
  86 +};
... ...
src/pages/procure/index.tsx
1   -import AddDrawer from '@/pages/procure/components/AddDrawer';
  1 +import { RESPONSE_CODE } from '@/constants/enum';
  2 +import {
  3 + default as AddDrawer,
  4 + default as AddOrModifyDrawer,
  5 +} from '@/pages/procure/components/AddOrModifyDrawer';
  6 +import StatusTransitionModal from '@/pages/procure/components/StatusTransitionModal';
2 7 import {
3 8 postProcureReturnBillPage,
  9 + postProcureReturnBillRemove,
4 10 postServiceConstProcureReturnBills,
5 11 postServiceConstStores,
6 12 } from '@/services';
  13 +import { orderExport } from '@/services/order';
7 14 import { enumToSelect } from '@/utils';
8   -import { EllipsisOutlined } from '@ant-design/icons';
9 15 import type { ActionType, ProColumns } from '@ant-design/pro-components';
10   -import { ProTable, TableDropdown } from '@ant-design/pro-components';
11   -import { Button, Dropdown } from 'antd';
  16 +import { ProTable } from '@ant-design/pro-components';
  17 +import { Button, Popconfirm, message } from 'antd';
12 18 import { useRef } from 'react';
  19 +
13 20 export const waitTimePromise = async (time: number = 100) => {
14 21 return new Promise((resolve) => {
15 22 setTimeout(() => {
... ... @@ -22,261 +29,310 @@ export const waitTime = async (time: number = 100) =&gt; {
22 29 await waitTimePromise(time);
23 30 };
24 31  
25   -const columns: ProColumns[] = [
26   - {
27   - title: '订单编号',
28   - width: 120,
29   - dataIndex: 'id',
30   - ellipsis: true,
31   - hideInSearch: true,
32   - },
33   - {
34   - title: '收获人',
35   - width: 120,
36   - dataIndex: 'consignee',
37   - ellipsis: true,
38   - hideInSearch: true,
39   - },
40   - {
41   - title: '联系电话',
42   - width: 120,
43   - dataIndex: 'phoneNumber',
44   - ellipsis: true,
45   - hideInSearch: true,
46   - },
47   - {
48   - title: '收货地址',
49   - width: 120,
50   - dataIndex: 'address',
51   - ellipsis: true,
52   - hideInSearch: true,
53   - },
54   - {
55   - title: '产品明细',
56   - width: 120,
57   - dataIndex: 'productDetail',
58   - ellipsis: true,
59   - hideInSearch: true,
60   - },
61   - {
62   - title: '发货仓库',
63   - width: 120,
64   - dataIndex: 'sendStoreText',
65   - ellipsis: true,
66   - hideInSearch: true,
67   - },
68   - {
69   - title: '创建人',
70   - width: 120,
71   - dataIndex: 'createByName',
72   - ellipsis: true,
73   - hideInSearch: true,
74   - },
75   - {
76   - title: '创建时间',
77   - width: 120,
78   - valueType: 'dateTime',
79   - dataIndex: 'createTime',
80   - ellipsis: true,
81   - hideInSearch: true,
82   - },
83   - {
84   - title: '订单状态',
85   - width: 120,
86   - dataIndex: 'statusText',
87   - ellipsis: true,
88   - hideInSearch: true,
89   - },
90   - {
91   - title: '附件',
92   - width: 120,
93   - dataIndex: 'attachments',
94   - ellipsis: true,
95   - hideInSearch: true,
96   - },
97   - {
98   - title: '备注',
99   - width: 120,
100   - dataIndex: 'notes',
101   - ellipsis: true,
102   - hideInSearch: true,
103   - },
104   - {
105   - title: '发货信息',
106   - width: 120,
107   - dataIndex: 'sendInfo',
108   - ellipsis: true,
109   - hideInSearch: true,
110   - },
111   -
112   - {
113   - title: '订单编号',
114   - width: 120,
115   - dataIndex: 'id',
116   - hideInTable: true,
117   - },
118   - {
119   - title: '收货人',
120   - width: 120,
121   - dataIndex: 'consigneeLike',
122   - hideInTable: true,
123   - },
124   - {
125   - title: '联系电话',
126   - width: 120,
127   - dataIndex: 'phoneNumberLike',
128   - hideInTable: true,
129   - },
130   - {
131   - title: '发货仓库',
132   - width: 120,
133   - dataIndex: 'sendStore',
134   - valueType: 'select',
135   - hideInTable: true,
136   - request: async () => {
137   - const res = await postServiceConstStores();
138   - return enumToSelect(res.data);
  32 +export default () => {
  33 + const [messageApi, contextHolder] = message.useMessage();
  34 + const actionRef = useRef<ActionType>();
  35 + const reloadTable = () => {
  36 + actionRef.current?.reload();
  37 + };
  38 + const columns: ProColumns[] = [
  39 + {
  40 + title: '订单编号',
  41 + width: 120,
  42 + dataIndex: 'id',
  43 + ellipsis: true,
  44 + hideInSearch: true,
139 45 },
140   - },
141   - {
142   - title: '订单状态',
143   - width: 120,
144   - dataIndex: 'status',
145   - valueType: 'select',
146   - hideInTable: true,
147   - request: async () => {
148   - const res = await postServiceConstProcureReturnBills();
149   - return enumToSelect(res.data);
  46 + {
  47 + title: '收货人',
  48 + width: 120,
  49 + dataIndex: 'consignee',
  50 + ellipsis: true,
  51 + hideInSearch: true,
150 52 },
151   - },
152   - {
153   - title: '创建人',
154   - width: 120,
155   - dataIndex: 'createByNameLike',
156   - hideInTable: true,
157   - },
158   - {
159   - title: '创建时间',
160   - dataIndex: 'createTime',
161   - valueType: 'dateTimeRange',
162   - search: {
163   - transform: (value: any) => ({
164   - createTimeGe: value[0],
165   - createTimeLe: value[1],
166   - }),
  53 + {
  54 + title: '联系电话',
  55 + width: 120,
  56 + dataIndex: 'phoneNumber',
  57 + ellipsis: true,
  58 + hideInSearch: true,
167 59 },
168   - hideInTable: true,
169   - },
170   - {
171   - title: '操作',
172   - valueType: 'option',
173   - key: 'option',
174   - render: (text, record, _, action) => [
175   - <a
176   - key="editable"
177   - onClick={() => {
178   - action?.startEditable?.(record.id);
179   - }}
180   - >
181   - 编辑
182   - </a>,
183   - <a href={record.url} target="_blank" rel="noopener noreferrer" key="view">
184   - 查看
185   - </a>,
186   - <TableDropdown
187   - key="actionGroup"
188   - onSelect={() => action?.reload()}
189   - menus={[
190   - { key: 'copy', name: '复制' },
191   - { key: 'delete', name: '删除' },
192   - ]}
193   - />,
194   - ],
195   - },
196   -];
197   -
198   -export default () => {
199   - const actionRef = useRef<ActionType>();
200   - return (
201   - <ProTable
202   - columns={columns}
203   - actionRef={actionRef}
204   - cardBordered
205   - request={async (params, sort, filter) => {
206   - console.log(sort, filter);
207   - const res = await postProcureReturnBillPage({
208   - data: params,
209   - });
210   - console.log(res);
211   - return res.data;
212   - }}
213   - editable={{
214   - type: 'multiple',
215   - }}
216   - scroll={{ x: 1300 }}
217   - columnsState={{
218   - persistenceKey: 'pro-table-singe-demos',
219   - persistenceType: 'localStorage',
220   - defaultValue: {
221   - option: { fixed: 'right', disable: true },
222   - },
223   - onChange(value) {
224   - console.log('value: ', value);
225   - },
226   - }}
227   - rowKey="id"
228   - search={{
229   - labelWidth: 'auto',
230   - }}
231   - options={{
232   - setting: {
233   - listsHeight: 400,
234   - },
235   - }}
236   - form={{
237   - // 由于配置了 transform,提交的参数与定义的不同这里需要转化一下
238   - syncToUrl: (values, type) => {
239   - if (type === 'get') {
240   - return {
241   - ...values,
242   - created_at: [values.startTime, values.endTime],
243   - };
244   - }
245   - return values;
246   - },
247   - }}
248   - pagination={{
249   - pageSize: 5,
250   - onChange: (page) => console.log(page),
251   - }}
252   - dateFormatter="string"
253   - headerTitle="高级表格"
254   - toolBarRender={() => [
255   - <AddDrawer key="add" />,
256   - <Dropdown
257   - key="menu"
258   - menu={{
259   - items: [
260   - {
261   - label: '1st item',
262   - key: '1',
263   - },
264   - {
265   - label: '2nd item',
266   - key: '2',
267   - },
268   - {
269   - label: '3rd item',
270   - key: '3',
  60 + {
  61 + title: '收货地址',
  62 + width: 120,
  63 + dataIndex: 'address',
  64 + ellipsis: true,
  65 + hideInSearch: true,
  66 + },
  67 + {
  68 + title: '产品明细',
  69 + width: 120,
  70 + dataIndex: 'productDetail',
  71 + ellipsis: true,
  72 + hideInSearch: true,
  73 + },
  74 + {
  75 + title: '发货仓库',
  76 + width: 120,
  77 + dataIndex: 'sendStoreText',
  78 + ellipsis: true,
  79 + hideInSearch: true,
  80 + },
  81 + {
  82 + title: '创建人',
  83 + width: 120,
  84 + dataIndex: 'createByName',
  85 + ellipsis: true,
  86 + hideInSearch: true,
  87 + },
  88 + {
  89 + title: '创建时间',
  90 + width: 120,
  91 + valueType: 'dateTime',
  92 + dataIndex: 'createTime',
  93 + ellipsis: true,
  94 + hideInSearch: true,
  95 + },
  96 + {
  97 + title: '订单状态',
  98 + width: 120,
  99 + dataIndex: 'statusText',
  100 + ellipsis: true,
  101 + hideInSearch: true,
  102 + },
  103 + {
  104 + title: '附件',
  105 + width: 120,
  106 + dataIndex: 'attachments',
  107 + ellipsis: true,
  108 + hideInSearch: true,
  109 + },
  110 + {
  111 + title: '备注',
  112 + width: 120,
  113 + dataIndex: 'notes',
  114 + ellipsis: true,
  115 + hideInSearch: true,
  116 + },
  117 + {
  118 + title: '发货信息',
  119 + width: 120,
  120 + dataIndex: 'sendInfo',
  121 + ellipsis: true,
  122 + hideInSearch: true,
  123 + },
  124 + {
  125 + title: '订单编号',
  126 + width: 120,
  127 + dataIndex: 'id',
  128 + hideInTable: true,
  129 + },
  130 + {
  131 + title: '收货人',
  132 + width: 120,
  133 + dataIndex: 'consigneeLike',
  134 + hideInTable: true,
  135 + },
  136 + {
  137 + title: '联系电话',
  138 + width: 120,
  139 + dataIndex: 'phoneNumberLike',
  140 + hideInTable: true,
  141 + },
  142 + {
  143 + title: '发货仓库',
  144 + width: 120,
  145 + dataIndex: 'sendStore',
  146 + valueType: 'select',
  147 + hideInTable: true,
  148 + request: async () => {
  149 + const res = await postServiceConstStores();
  150 + return enumToSelect(res.data);
  151 + },
  152 + },
  153 + {
  154 + title: '订单状态',
  155 + width: 120,
  156 + dataIndex: 'status',
  157 + valueType: 'select',
  158 + hideInTable: true,
  159 + request: async () => {
  160 + const res = await postServiceConstProcureReturnBills();
  161 + return enumToSelect(res.data);
  162 + },
  163 + },
  164 + {
  165 + title: '创建人',
  166 + width: 120,
  167 + dataIndex: 'createByNameLike',
  168 + hideInTable: true,
  169 + },
  170 + {
  171 + title: '创建时间',
  172 + dataIndex: 'createTime',
  173 + valueType: 'dateTimeRange',
  174 + search: {
  175 + transform: (value: any) => ({
  176 + createTimeGe: value[0],
  177 + createTimeLe: value[1],
  178 + }),
  179 + },
  180 + hideInTable: true,
  181 + },
  182 + {
  183 + title: '操作',
  184 + valueType: 'option',
  185 + key: 'option',
  186 + width: 220,
  187 + render: (text, record, _, action) => [
  188 + <>
  189 + {record.paths?.includes('AUDIT') && (
  190 + <StatusTransitionModal
  191 + type="audit"
  192 + ids={[record.id]}
  193 + reloadTable={reloadTable}
  194 + />
  195 + )}
  196 + </>,
  197 + <>
  198 + {record.paths?.includes('SEND') && (
  199 + <StatusTransitionModal
  200 + type="send"
  201 + ids={[record.id]}
  202 + reloadTable={reloadTable}
  203 + />
  204 + )}
  205 + </>,
  206 + <AddOrModifyDrawer
  207 + key={'detail'}
  208 + reloadTable={reloadTable}
  209 + data={record}
  210 + type={'detail'}
  211 + />,
  212 + <AddOrModifyDrawer
  213 + key={'add'}
  214 + reloadTable={() => {
  215 + action?.reload();
  216 + }}
  217 + data={record}
  218 + type={'modify'}
  219 + />,
  220 + <Popconfirm
  221 + key="delete"
  222 + title="删除单据"
  223 + description="确定删除单据?"
  224 + onConfirm={async () => {
  225 + const res = await postProcureReturnBillRemove({
  226 + query: {
  227 + id: record.id,
271 228 },
272   - ],
  229 + });
  230 + if (res.result === RESPONSE_CODE.SUCCESS) {
  231 + message.success('删除成功');
  232 + action?.reload();
  233 + }
273 234 }}
  235 + okText="确认"
  236 + cancelText="取消"
274 237 >
275   - <Button>
276   - <EllipsisOutlined />
  238 + <Button size={'small'} type="link" danger>
  239 + 删除
277 240 </Button>
278   - </Dropdown>,
279   - ]}
280   - />
  241 + </Popconfirm>,
  242 + ],
  243 + },
  244 + ];
  245 + return (
  246 + <>
  247 + <ProTable
  248 + columns={columns}
  249 + actionRef={actionRef}
  250 + cardBordered
  251 + size={'small'}
  252 + request={async (params, sort, filter) => {
  253 + console.log(sort, filter);
  254 + const res = await postProcureReturnBillPage({
  255 + data: params,
  256 + });
  257 + console.log(res);
  258 + return res.data;
  259 + }}
  260 + editable={{
  261 + type: 'multiple',
  262 + }}
  263 + scroll={{ x: 1300 }}
  264 + columnsState={{
  265 + persistenceKey: 'pro-table-singe-demos',
  266 + persistenceType: 'localStorage',
  267 + defaultValue: {
  268 + option: { fixed: 'right', disable: true },
  269 + },
  270 + onChange(value) {
  271 + console.log('value: ', value);
  272 + },
  273 + }}
  274 + rowKey="id"
  275 + search={{
  276 + optionRender: (searchConfig, formProps, dom) => [
  277 + ...dom.reverse(),
  278 + <Button
  279 + key="out"
  280 + onClick={() => {
  281 + const values = searchConfig?.form?.getFieldsValue();
  282 + messageApi.open({
  283 + type: 'loading',
  284 + content: '导出中...',
  285 + duration: 0,
  286 + });
  287 + orderExport(
  288 + '/api/procureReturnBill/export',
  289 + '客户信息.xlsx',
  290 + 'POST',
  291 + values,
  292 + () => {
  293 + messageApi.destroy();
  294 + },
  295 + );
  296 + }}
  297 + >
  298 + 导出
  299 + </Button>,
  300 + ],
  301 + labelWidth: 'auto',
  302 + }}
  303 + options={{
  304 + setting: {
  305 + listsHeight: 400,
  306 + },
  307 + }}
  308 + form={{
  309 + // 由于配置了 transform,提交的参数与定义的不同这里需要转化一下
  310 + syncToUrl: (values, type) => {
  311 + if (type === 'get') {
  312 + return {
  313 + ...values,
  314 + created_at: [values.startTime, values.endTime],
  315 + };
  316 + }
  317 + return values;
  318 + },
  319 + }}
  320 + pagination={{
  321 + pageSize: 5,
  322 + onChange: (page) => console.log(page),
  323 + }}
  324 + dateFormatter="string"
  325 + headerTitle="高级表格"
  326 + toolBarRender={() => [
  327 + <AddDrawer
  328 + key="add"
  329 + data={null}
  330 + type="add"
  331 + reloadTable={reloadTable}
  332 + />,
  333 + ]}
  334 + />
  335 + {contextHolder}
  336 + </>
281 337 );
282 338 };
... ...
src/services/definition.ts
... ... @@ -203,6 +203,7 @@ export interface AdminClientDto {
203 203 }
204 204  
205 205 export interface AdminDeptQueryVO {
  206 + createByName?: string;
206 207 /** @format int32 */
207 208 current?: number;
208 209 /** @format int32 */
... ... @@ -247,6 +248,7 @@ export interface AdminInvoicingAccountDTO {
247 248 }
248 249  
249 250 export interface AdminJobQueryVO {
  251 + createByName?: string;
250 252 /** @format int32 */
251 253 current?: number;
252 254 /** @format int32 */
... ... @@ -277,6 +279,7 @@ export interface AdminMenuQueryVO {
277 279 /** @format int32 */
278 280 cache?: number;
279 281 component?: string;
  282 + createByName?: string;
280 283 /** @format int32 */
281 284 current?: number;
282 285 /** @format int32 */
... ... @@ -326,6 +329,7 @@ export interface AdminMenuVO {
326 329 }
327 330  
328 331 export interface AdminRoleQueryVO {
  332 + createByName?: string;
329 333 /** @format int32 */
330 334 current?: number;
331 335 dataScope?: string;
... ... @@ -358,6 +362,7 @@ export interface AdminRoleVO {
358 362 }
359 363  
360 364 export interface AdminUserLoginByPhoneVO {
  365 + createByName?: string;
361 366 /** @format int32 */
362 367 current?: number;
363 368 /** @format int32 */
... ... @@ -373,6 +378,7 @@ export interface AdminUserLoginByPhoneVO {
373 378 }
374 379  
375 380 export interface AdminUserLoginByPwdVO {
  381 + createByName?: string;
376 382 /** @format int32 */
377 383 current?: number;
378 384 /** @format int32 */
... ... @@ -391,6 +397,7 @@ export interface AdminUserLoginByPwdVO {
391 397  
392 398 export interface AdminUserModifyPwdVO {
393 399 confirmPassword?: string;
  400 + createByName?: string;
394 401 /** @format int32 */
395 402 current?: number;
396 403 /** @format int32 */
... ... @@ -407,6 +414,7 @@ export interface AdminUserModifyPwdVO {
407 414 }
408 415  
409 416 export interface AdminUserPasswordRecoverEmailVO {
  417 + createByName?: string;
410 418 /** @format int32 */
411 419 current?: number;
412 420 /** @format int32 */
... ... @@ -421,6 +429,7 @@ export interface AdminUserPasswordRecoverEmailVO {
421 429 }
422 430  
423 431 export interface AdminUserQueryVO {
  432 + createByName?: string;
424 433 /** @format int32 */
425 434 current?: number;
426 435 email?: string;
... ... @@ -445,6 +454,7 @@ export interface AdminUserQueryVO {
445 454  
446 455 export interface AdminUserRegisterVO {
447 456 confirmPassword?: string;
  457 + createByName?: string;
448 458 /** @format int32 */
449 459 current?: number;
450 460 email?: string;
... ... @@ -561,6 +571,11 @@ export interface ApiCreateOrderRequest {
561 571 notes?: string;
562 572 /**
563 573 * @description
  574 + * 订单编号
  575 + */
  576 + orderNo?: string;
  577 + /**
  578 + * @description
564 579 * 支付渠道
565 580 */
566 581 paymentChannel?: string;
... ... @@ -653,6 +668,7 @@ export interface ApiCreateProductRequest {
653 668 }
654 669  
655 670 export interface ApiOrderCustomersRequest {
  671 + createByName?: string;
656 672 /** @format int32 */
657 673 current?: number;
658 674 /** @format int32 */
... ... @@ -688,6 +704,11 @@ export interface ApiQueryOrderDetailRequest {
688 704 orderStatus?: number;
689 705 /**
690 706 * @description
  707 + * 原始订单编号:orderId存在的话,此参数无效
  708 + */
  709 + originalOrderNo?: string;
  710 + /**
  711 + * @description
691 712 * 账号id
692 713 * @format int32
693 714 */
... ... @@ -948,6 +969,7 @@ export interface AuditDto {
948 969 }
949 970  
950 971 export interface AuditVO {
  972 + createByName?: string;
951 973 /** @format int32 */
952 974 current?: number;
953 975 /** @format int32 */
... ... @@ -1026,6 +1048,7 @@ export interface CancelSendOrderDto {
1026 1048 }
1027 1049  
1028 1050 export interface CaptchaMessageVO {
  1051 + createByName?: string;
1029 1052 /** @format int32 */
1030 1053 current?: number;
1031 1054 /** @format int32 */
... ... @@ -1280,6 +1303,7 @@ export interface CustomerSaveReq {
1280 1303 }
1281 1304  
1282 1305 export interface DictionaryQueryVO {
  1306 + createByName?: string;
1283 1307 /** @format int32 */
1284 1308 current?: number;
1285 1309 dictCode?: string;
... ... @@ -1376,6 +1400,12 @@ export interface InvoiceDto {
1376 1400 * 收款时间
1377 1401 * @format date-time
1378 1402 */
  1403 + collectionDatetime?: string;
  1404 + /**
  1405 + * @description
  1406 + * 收款时间
  1407 + * @format date-time
  1408 + */
1379 1409 collectionTime?: string;
1380 1410 /**
1381 1411 * @description
... ... @@ -1421,6 +1451,11 @@ export interface InvoiceDto {
1421 1451 notes?: string;
1422 1452 /**
1423 1453 * @description
  1454 + * 权限路径
  1455 + */
  1456 + path?: Array<string>;
  1457 + /**
  1458 + * @description
1424 1459 * 收款单位
1425 1460 */
1426 1461 payee?: string;
... ... @@ -1670,6 +1705,8 @@ export interface InvoiceRecordQueryRequest {
1670 1705 * 联系人
1671 1706 */
1672 1707 contactsLike?: string;
  1708 + createByName?: string;
  1709 + createNameIn?: Array<string>;
1673 1710 /** @format date-time */
1674 1711 createTimeGe?: string;
1675 1712 /** @format date-time */
... ... @@ -2016,6 +2053,7 @@ export interface MeasureUnitListResRow {
2016 2053 }
2017 2054  
2018 2055 export interface MessageQueryDTO {
  2056 + createByName?: string;
2019 2057 /** @format int32 */
2020 2058 current?: number;
2021 2059 /** @format int32 */
... ... @@ -2059,6 +2097,7 @@ export interface OrderAddVO {
2059 2097 export interface OrderAuditLogQueryVO {
2060 2098 /** @format int64 */
2061 2099 applyId?: number;
  2100 + createByName?: string;
2062 2101 /** @format int32 */
2063 2102 current?: number;
2064 2103 /** @format int32 */
... ... @@ -2103,6 +2142,7 @@ export interface OrderBaseFieldVO {
2103 2142 export interface OrderBaseInfoQueryVO {
2104 2143 cnColor?: string;
2105 2144 collection?: string;
  2145 + createByName?: string;
2106 2146 /** @format int32 */
2107 2147 current?: number;
2108 2148 customerCode?: string;
... ... @@ -2191,6 +2231,7 @@ export interface OrderFieldLockApplyQueryVO {
2191 2231 applyUserId?: number;
2192 2232 /** @format int64 */
2193 2233 auditUserId?: number;
  2234 + createByName?: string;
2194 2235 /** @format int32 */
2195 2236 current?: number;
2196 2237 /** @format int32 */
... ... @@ -2260,6 +2301,7 @@ export interface OrderMainProDo {
2260 2301 }
2261 2302  
2262 2303 export interface OrderOptLogQueryVO {
  2304 + createByName?: string;
2263 2305 /** @format int32 */
2264 2306 current?: number;
2265 2307 /** @format int32 */
... ... @@ -2523,6 +2565,11 @@ export interface ProcurePrintDto {
2523 2565 ids?: Array<number>;
2524 2566 }
2525 2567  
  2568 +export interface ProcureReturnBillApprovalDto {
  2569 + ids?: Array<number>;
  2570 + transitionNotes?: string;
  2571 +}
  2572 +
2526 2573 export interface ProcureReturnBillDto {
2527 2574 /**
2528 2575 * @description
... ... @@ -2578,6 +2625,12 @@ export interface ProcureReturnBillDto {
2578 2625 /**
2579 2626 * @description
2580 2627 * 发货仓库
  2628 + * @format int32
  2629 + */
  2630 + sendStoreCode?: number;
  2631 + /**
  2632 + * @description
  2633 + * 发货仓库
2581 2634 */
2582 2635 sendStoreText?: string;
2583 2636 /**
... ... @@ -2591,6 +2644,7 @@ export interface ProcureReturnBillDto {
2591 2644 * @format int32
2592 2645 */
2593 2646 statusCode?: number;
  2647 + statusNotes?: string;
2594 2648 /**
2595 2649 * @description
2596 2650 * 订单状态
... ... @@ -2655,6 +2709,7 @@ export interface QueryBankStatementDto {
2655 2709 * @format date
2656 2710 */
2657 2711 collectionDatetimeEnd?: string;
  2712 + createByName?: string;
2658 2713 /** @format int32 */
2659 2714 current?: number;
2660 2715 /** @format int32 */
... ... @@ -2691,6 +2746,7 @@ export interface QueryClientDto {
2691 2746 companyAddressLike?: string;
2692 2747 companyIds?: Array<number>;
2693 2748 companyNameLike?: string;
  2749 + createByName?: string;
2694 2750 createByUserIdIn?: Array<number>;
2695 2751 /** @format date-time */
2696 2752 createTimeGe?: string;
... ... @@ -2718,6 +2774,7 @@ export interface QueryCommunicationInfoDto {
2718 2774 /** @format int64 */
2719 2775 clientId?: number;
2720 2776 content?: string;
  2777 + createByName?: string;
2721 2778 /** @format int32 */
2722 2779 current?: number;
2723 2780 /** @format date-time */
... ... @@ -2776,6 +2833,7 @@ export interface QueryInvoiceDetailDto {
2776 2833 }
2777 2834  
2778 2835 export interface QueryInvoiceProjectDto {
  2836 + createByName?: string;
2779 2837 /** @format int32 */
2780 2838 current?: number;
2781 2839 /** @format int32 */
... ... @@ -2795,6 +2853,8 @@ export interface QueryInvoiceRecordDto {
2795 2853 * 联系人
2796 2854 */
2797 2855 contactsLike?: string;
  2856 + createByName?: string;
  2857 + createNameIn?: Array<string>;
2798 2858 /** @format date-time */
2799 2859 createTimeGe?: string;
2800 2860 /** @format date-time */
... ... @@ -2989,6 +3049,7 @@ export interface QueryMainOrderDto {
2989 3049  
2990 3050 export interface QueryProcureReturnBillDto {
2991 3051 consigneeLike?: string;
  3052 + createByName?: string;
2992 3053 createByNameLike?: string;
2993 3054 /** @format date-time */
2994 3055 createTimeGe?: string;
... ... @@ -3043,6 +3104,26 @@ export interface QueryReportFormsDto {
3043 3104 statisticsMethod?: string;
3044 3105 }
3045 3106  
  3107 +export interface QueryUseOldInvoicingDto {
  3108 + createByName?: string;
  3109 + /** @format date-time */
  3110 + createTimeGe?: string;
  3111 + /** @format date-time */
  3112 + createTimeLe?: string;
  3113 + /** @format int32 */
  3114 + current?: number;
  3115 + /** @format int32 */
  3116 + end?: number;
  3117 + /** @format int64 */
  3118 + mainOrderId?: number;
  3119 + /** @format int32 */
  3120 + pageSize?: number;
  3121 + /** @format int32 */
  3122 + start?: number;
  3123 + /** @format int32 */
  3124 + total?: number;
  3125 +}
  3126 +
3046 3127 export interface ReissueInvoiceDto {
3047 3128 /** @format int64 */
3048 3129 invoiceId?: number;
... ... @@ -3176,6 +3257,7 @@ export interface ResearchGroupListRequest {
3176 3257 * 公司名称
3177 3258 */
3178 3259 companyNameLike?: string;
  3260 + createByName?: string;
3179 3261 /** @format int32 */
3180 3262 current?: number;
3181 3263 /** @format int32 */
... ... @@ -3586,6 +3668,7 @@ export interface SubOrder {
3586 3668 export interface SysLogQueryVO {
3587 3669 address?: string;
3588 3670 browser?: string;
  3671 + createByName?: string;
3589 3672 /** @format int32 */
3590 3673 current?: number;
3591 3674 description?: string;
... ... @@ -3756,6 +3839,10 @@ export interface UpdatePwdVO {
3756 3839 userId?: number;
3757 3840 }
3758 3841  
  3842 +export interface UseOldInvoicingDto {
  3843 + orderIdsText?: string;
  3844 +}
  3845 +
3759 3846 export interface UserAddressListRequest {
3760 3847 keywords?: string;
3761 3848 /** @format int32 */
... ... @@ -3763,6 +3850,7 @@ export interface UserAddressListRequest {
3763 3850 }
3764 3851  
3765 3852 export interface UserCenterInfoRequest {
  3853 + createByName?: string;
3766 3854 /** @format int32 */
3767 3855 current?: number;
3768 3856 /** @format int32 */
... ... @@ -3788,6 +3876,7 @@ export interface UserCenterInfoRequest {
3788 3876 }
3789 3877  
3790 3878 export interface UserDetailRequest {
  3879 + createByName?: string;
3791 3880 /** @format int32 */
3792 3881 current?: number;
3793 3882 /** @format int32 */
... ... @@ -3811,6 +3900,7 @@ export interface UserDetailRequest {
3811 3900 }
3812 3901  
3813 3902 export interface UserListRequest {
  3903 + createByName?: string;
3814 3904 /** @format int32 */
3815 3905 current?: number;
3816 3906 /**
... ... @@ -3986,26 +4076,50 @@ export interface InvoiceDetail {
3986 4076 * @format double
3987 4077 */
3988 4078 price?: number;
  4079 + /**
  4080 + * @description
  4081 + * 项目名称
  4082 + */
3989 4083 projectName?: string;
3990   - /** @format double */
  4084 + /**
  4085 + * @description
  4086 + * 数量
  4087 + * @format double
  4088 + */
3991 4089 quantity?: number;
3992 4090 /**
3993 4091 * @description
3994 4092 * 型号
3995 4093 */
3996 4094 specification?: string;
3997   - /** @format int64 */
  4095 + /**
  4096 + * @description
  4097 + * 关联子订单id
  4098 + * @format int64
  4099 + */
3998 4100 subOrderId?: number;
3999   - /** @format double */
  4101 + /**
  4102 + * @description
  4103 + * 税额
  4104 + * @format double
  4105 + */
4000 4106 taxPrice?: number;
4001   - /** @format double */
  4107 + /**
  4108 + * @description
  4109 + * 税率
  4110 + * @format double
  4111 + */
4002 4112 taxRate?: number;
4003 4113 /**
4004 4114 * @description
4005   - * 总价
  4115 + * 总价(金额+税额)
4006 4116 * @format double
4007 4117 */
4008 4118 totalPrice?: number;
  4119 + /**
  4120 + * @description
  4121 + * 单位
  4122 + */
4009 4123 unit?: string;
4010 4124 }
4011 4125  
... ... @@ -4180,6 +4294,7 @@ export interface SalesRechargePrepaymentRequest {
4180 4294 * 创建人员
4181 4295 */
4182 4296 createBy?: string;
  4297 + createByName?: string;
4183 4298 /**
4184 4299 * @description
4185 4300 * 创建时间开始时间
... ...
src/services/request.ts
... ... @@ -63,6 +63,7 @@ import type {
63 63 MaterialUnitListRes,
64 64 MeasureUnitListRes,
65 65 MessageQueryDTO,
  66 + ModelAndView,
66 67 OrderAddVO,
67 68 OrderAuditLogQueryVO,
68 69 OrderBaseInfoQueryVO,
... ... @@ -82,6 +83,7 @@ import type {
82 83 ProcureConvertProcureDto,
83 84 ProcureOrderDto,
84 85 ProcurePrintDto,
  86 + ProcureReturnBillApprovalDto,
85 87 ProcureReturnBillDto,
86 88 ProductInformationDto,
87 89 QueryAfterSalesInfoSnapshotDto,
... ... @@ -97,6 +99,7 @@ import type {
97 99 QueryMainOrderDto,
98 100 QueryProcureReturnBillDto,
99 101 QueryReportFormsDto,
  102 + QueryUseOldInvoicingDto,
100 103 ReissueInvoiceDto,
101 104 ResearchGroupAddRequest,
102 105 ResearchGroupDeleteRequest,
... ... @@ -128,6 +131,7 @@ import type {
128 131 UpdateHirePurchaseDto,
129 132 UpdatePwdVO,
130 133 UploadPaymentReceiptDTO,
  134 + UseOldInvoicingDto,
131 135 UserAddressListRequest,
132 136 UserAddressSaveRequest,
133 137 UserCenterInfoRequest,
... ... @@ -3227,9 +3231,7 @@ export interface GetErrorResponse {
3227 3231 * @description
3228 3232 * OK
3229 3233 */
3230   - 200: {
3231   - [propertyName: string]: any;
3232   - };
  3234 + 200: ModelAndView;
3233 3235 /**
3234 3236 * @description
3235 3237 * Unauthorized
... ... @@ -3250,9 +3252,9 @@ export interface GetErrorResponse {
3250 3252 export type GetErrorResponseSuccess = GetErrorResponse[200];
3251 3253 /**
3252 3254 * @description
3253   - * error
  3255 + * errorHtml
3254 3256 * @tags basic-error-controller
3255   - * @produces *
  3257 + * @produces text/html
3256 3258 */
3257 3259 export const getError = /* #__PURE__ */ (() => {
3258 3260 const method = 'get';
... ... @@ -3276,9 +3278,7 @@ export interface PutErrorResponse {
3276 3278 * @description
3277 3279 * OK
3278 3280 */
3279   - 200: {
3280   - [propertyName: string]: any;
3281   - };
  3281 + 200: ModelAndView;
3282 3282 /**
3283 3283 * @description
3284 3284 * Created
... ... @@ -3304,9 +3304,9 @@ export interface PutErrorResponse {
3304 3304 export type PutErrorResponseSuccess = PutErrorResponse[200];
3305 3305 /**
3306 3306 * @description
3307   - * error
  3307 + * errorHtml
3308 3308 * @tags basic-error-controller
3309   - * @produces *
  3309 + * @produces text/html
3310 3310 * @consumes application/json
3311 3311 */
3312 3312 export const putError = /* #__PURE__ */ (() => {
... ... @@ -3331,9 +3331,7 @@ export interface PostErrorResponse {
3331 3331 * @description
3332 3332 * OK
3333 3333 */
3334   - 200: {
3335   - [propertyName: string]: any;
3336   - };
  3334 + 200: ModelAndView;
3337 3335 /**
3338 3336 * @description
3339 3337 * Created
... ... @@ -3359,9 +3357,9 @@ export interface PostErrorResponse {
3359 3357 export type PostErrorResponseSuccess = PostErrorResponse[200];
3360 3358 /**
3361 3359 * @description
3362   - * error
  3360 + * errorHtml
3363 3361 * @tags basic-error-controller
3364   - * @produces *
  3362 + * @produces text/html
3365 3363 * @consumes application/json
3366 3364 */
3367 3365 export const postError = /* #__PURE__ */ (() => {
... ... @@ -3386,9 +3384,7 @@ export interface DeleteErrorResponse {
3386 3384 * @description
3387 3385 * OK
3388 3386 */
3389   - 200: {
3390   - [propertyName: string]: any;
3391   - };
  3387 + 200: ModelAndView;
3392 3388 /**
3393 3389 * @description
3394 3390 * No Content
... ... @@ -3409,9 +3405,9 @@ export interface DeleteErrorResponse {
3409 3405 export type DeleteErrorResponseSuccess = DeleteErrorResponse[200];
3410 3406 /**
3411 3407 * @description
3412   - * error
  3408 + * errorHtml
3413 3409 * @tags basic-error-controller
3414   - * @produces *
  3410 + * @produces text/html
3415 3411 */
3416 3412 export const deleteError = /* #__PURE__ */ (() => {
3417 3413 const method = 'delete';
... ... @@ -3435,9 +3431,7 @@ export interface OptionsErrorResponse {
3435 3431 * @description
3436 3432 * OK
3437 3433 */
3438   - 200: {
3439   - [propertyName: string]: any;
3440   - };
  3434 + 200: ModelAndView;
3441 3435 /**
3442 3436 * @description
3443 3437 * No Content
... ... @@ -3458,9 +3452,9 @@ export interface OptionsErrorResponse {
3458 3452 export type OptionsErrorResponseSuccess = OptionsErrorResponse[200];
3459 3453 /**
3460 3454 * @description
3461   - * error
  3455 + * errorHtml
3462 3456 * @tags basic-error-controller
3463   - * @produces *
  3457 + * @produces text/html
3464 3458 * @consumes application/json
3465 3459 */
3466 3460 export const optionsError = /* #__PURE__ */ (() => {
... ... @@ -3485,9 +3479,7 @@ export interface HeadErrorResponse {
3485 3479 * @description
3486 3480 * OK
3487 3481 */
3488   - 200: {
3489   - [propertyName: string]: any;
3490   - };
  3482 + 200: ModelAndView;
3491 3483 /**
3492 3484 * @description
3493 3485 * No Content
... ... @@ -3508,9 +3500,9 @@ export interface HeadErrorResponse {
3508 3500 export type HeadErrorResponseSuccess = HeadErrorResponse[200];
3509 3501 /**
3510 3502 * @description
3511   - * error
  3503 + * errorHtml
3512 3504 * @tags basic-error-controller
3513   - * @produces *
  3505 + * @produces text/html
3514 3506 * @consumes application/json
3515 3507 */
3516 3508 export const headError = /* #__PURE__ */ (() => {
... ... @@ -3535,9 +3527,7 @@ export interface PatchErrorResponse {
3535 3527 * @description
3536 3528 * OK
3537 3529 */
3538   - 200: {
3539   - [propertyName: string]: any;
3540   - };
  3530 + 200: ModelAndView;
3541 3531 /**
3542 3532 * @description
3543 3533 * No Content
... ... @@ -3558,9 +3548,9 @@ export interface PatchErrorResponse {
3558 3548 export type PatchErrorResponseSuccess = PatchErrorResponse[200];
3559 3549 /**
3560 3550 * @description
3561   - * error
  3551 + * errorHtml
3562 3552 * @tags basic-error-controller
3563   - * @produces *
  3553 + * @produces text/html
3564 3554 * @consumes application/json
3565 3555 */
3566 3556 export const patchError = /* #__PURE__ */ (() => {
... ... @@ -3579,6 +3569,76 @@ export const patchError = /* #__PURE__ */ (() =&gt; {
3579 3569 return request;
3580 3570 })();
3581 3571  
  3572 +/** @description request parameter type for postFileDirectDown */
  3573 +export interface PostFileDirectDownOption {
  3574 + /**
  3575 + * @description
  3576 + * urls
  3577 + */
  3578 + body: {
  3579 + /**
  3580 + @description
  3581 + urls */
  3582 + urls: Array<string>;
  3583 + };
  3584 +}
  3585 +
  3586 +/** @description response type for postFileDirectDown */
  3587 +export interface PostFileDirectDownResponse {
  3588 + /**
  3589 + * @description
  3590 + * OK
  3591 + */
  3592 + 200: any;
  3593 + /**
  3594 + * @description
  3595 + * Created
  3596 + */
  3597 + 201: any;
  3598 + /**
  3599 + * @description
  3600 + * Unauthorized
  3601 + */
  3602 + 401: any;
  3603 + /**
  3604 + * @description
  3605 + * Forbidden
  3606 + */
  3607 + 403: any;
  3608 + /**
  3609 + * @description
  3610 + * Not Found
  3611 + */
  3612 + 404: any;
  3613 +}
  3614 +
  3615 +export type PostFileDirectDownResponseSuccess = PostFileDirectDownResponse[200];
  3616 +/**
  3617 + * @description
  3618 + * directDownFile
  3619 + * @tags file-controller
  3620 + * @produces *
  3621 + * @consumes application/json
  3622 + */
  3623 +export const postFileDirectDown = /* #__PURE__ */ (() => {
  3624 + const method = 'post';
  3625 + const url = '/file/directDown';
  3626 + function request(
  3627 + option: PostFileDirectDownOption,
  3628 + ): Promise<PostFileDirectDownResponseSuccess> {
  3629 + return requester(request.url, {
  3630 + method: request.method,
  3631 + ...option,
  3632 + }) as unknown as Promise<PostFileDirectDownResponseSuccess>;
  3633 + }
  3634 +
  3635 + /** http method */
  3636 + request.method = method;
  3637 + /** request url */
  3638 + request.url = url;
  3639 + return request;
  3640 +})();
  3641 +
3582 3642 /** @description request parameter type for postKingdeeRepCustomer */
3583 3643 export interface PostKingdeeRepCustomerOption {
3584 3644 /**
... ... @@ -4360,6 +4420,221 @@ export const postOfficialWebsiteUploadAliOss = /* #__PURE__ */ (() =&gt; {
4360 4420 return request;
4361 4421 })();
4362 4422  
  4423 +/** @description request parameter type for postOldInvoicingWhiteListBatchAdd */
  4424 +export interface PostOldInvoicingWhiteListBatchAddOption {
  4425 + /**
  4426 + * @description
  4427 + * useOldInvoicingDto
  4428 + */
  4429 + body: {
  4430 + /**
  4431 + @description
  4432 + useOldInvoicingDto */
  4433 + useOldInvoicingDto: UseOldInvoicingDto;
  4434 + };
  4435 +}
  4436 +
  4437 +/** @description response type for postOldInvoicingWhiteListBatchAdd */
  4438 +export interface PostOldInvoicingWhiteListBatchAddResponse {
  4439 + /**
  4440 + * @description
  4441 + * OK
  4442 + */
  4443 + 200: ServerResult;
  4444 + /**
  4445 + * @description
  4446 + * Created
  4447 + */
  4448 + 201: any;
  4449 + /**
  4450 + * @description
  4451 + * Unauthorized
  4452 + */
  4453 + 401: any;
  4454 + /**
  4455 + * @description
  4456 + * Forbidden
  4457 + */
  4458 + 403: any;
  4459 + /**
  4460 + * @description
  4461 + * Not Found
  4462 + */
  4463 + 404: any;
  4464 +}
  4465 +
  4466 +export type PostOldInvoicingWhiteListBatchAddResponseSuccess =
  4467 + PostOldInvoicingWhiteListBatchAddResponse[200];
  4468 +/**
  4469 + * @description
  4470 + * 批量添加
  4471 + * @tags 旧开票白名单
  4472 + * @produces *
  4473 + * @consumes application/json
  4474 + */
  4475 +export const postOldInvoicingWhiteListBatchAdd = /* #__PURE__ */ (() => {
  4476 + const method = 'post';
  4477 + const url = '/oldInvoicingWhiteList/batchAdd';
  4478 + function request(
  4479 + option: PostOldInvoicingWhiteListBatchAddOption,
  4480 + ): Promise<PostOldInvoicingWhiteListBatchAddResponseSuccess> {
  4481 + return requester(request.url, {
  4482 + method: request.method,
  4483 + ...option,
  4484 + }) as unknown as Promise<PostOldInvoicingWhiteListBatchAddResponseSuccess>;
  4485 + }
  4486 +
  4487 + /** http method */
  4488 + request.method = method;
  4489 + /** request url */
  4490 + request.url = url;
  4491 + return request;
  4492 +})();
  4493 +
  4494 +/** @description request parameter type for postOldInvoicingWhiteListPage */
  4495 +export interface PostOldInvoicingWhiteListPageOption {
  4496 + /**
  4497 + * @description
  4498 + * dto
  4499 + */
  4500 + body: {
  4501 + /**
  4502 + @description
  4503 + dto */
  4504 + dto: QueryUseOldInvoicingDto;
  4505 + };
  4506 +}
  4507 +
  4508 +/** @description response type for postOldInvoicingWhiteListPage */
  4509 +export interface PostOldInvoicingWhiteListPageResponse {
  4510 + /**
  4511 + * @description
  4512 + * OK
  4513 + */
  4514 + 200: ServerResult;
  4515 + /**
  4516 + * @description
  4517 + * Created
  4518 + */
  4519 + 201: any;
  4520 + /**
  4521 + * @description
  4522 + * Unauthorized
  4523 + */
  4524 + 401: any;
  4525 + /**
  4526 + * @description
  4527 + * Forbidden
  4528 + */
  4529 + 403: any;
  4530 + /**
  4531 + * @description
  4532 + * Not Found
  4533 + */
  4534 + 404: any;
  4535 +}
  4536 +
  4537 +export type PostOldInvoicingWhiteListPageResponseSuccess =
  4538 + PostOldInvoicingWhiteListPageResponse[200];
  4539 +/**
  4540 + * @description
  4541 + * 查询
  4542 + * @tags 旧开票白名单
  4543 + * @produces *
  4544 + * @consumes application/json
  4545 + */
  4546 +export const postOldInvoicingWhiteListPage = /* #__PURE__ */ (() => {
  4547 + const method = 'post';
  4548 + const url = '/oldInvoicingWhiteList/page';
  4549 + function request(
  4550 + option: PostOldInvoicingWhiteListPageOption,
  4551 + ): Promise<PostOldInvoicingWhiteListPageResponseSuccess> {
  4552 + return requester(request.url, {
  4553 + method: request.method,
  4554 + ...option,
  4555 + }) as unknown as Promise<PostOldInvoicingWhiteListPageResponseSuccess>;
  4556 + }
  4557 +
  4558 + /** http method */
  4559 + request.method = method;
  4560 + /** request url */
  4561 + request.url = url;
  4562 + return request;
  4563 +})();
  4564 +
  4565 +/** @description request parameter type for postOldInvoicingWhiteListRemove */
  4566 +export interface PostOldInvoicingWhiteListRemoveOption {
  4567 + /**
  4568 + * @description
  4569 + * mainOrderId
  4570 + * @format int64
  4571 + */
  4572 + query?: {
  4573 + /**
  4574 + @description
  4575 + mainOrderId
  4576 + @format int64 */
  4577 + mainOrderId?: number;
  4578 + };
  4579 +}
  4580 +
  4581 +/** @description response type for postOldInvoicingWhiteListRemove */
  4582 +export interface PostOldInvoicingWhiteListRemoveResponse {
  4583 + /**
  4584 + * @description
  4585 + * OK
  4586 + */
  4587 + 200: ServerResult;
  4588 + /**
  4589 + * @description
  4590 + * Created
  4591 + */
  4592 + 201: any;
  4593 + /**
  4594 + * @description
  4595 + * Unauthorized
  4596 + */
  4597 + 401: any;
  4598 + /**
  4599 + * @description
  4600 + * Forbidden
  4601 + */
  4602 + 403: any;
  4603 + /**
  4604 + * @description
  4605 + * Not Found
  4606 + */
  4607 + 404: any;
  4608 +}
  4609 +
  4610 +export type PostOldInvoicingWhiteListRemoveResponseSuccess =
  4611 + PostOldInvoicingWhiteListRemoveResponse[200];
  4612 +/**
  4613 + * @description
  4614 + * 移除
  4615 + * @tags 旧开票白名单
  4616 + * @produces *
  4617 + * @consumes application/json
  4618 + */
  4619 +export const postOldInvoicingWhiteListRemove = /* #__PURE__ */ (() => {
  4620 + const method = 'post';
  4621 + const url = '/oldInvoicingWhiteList/remove';
  4622 + function request(
  4623 + option?: PostOldInvoicingWhiteListRemoveOption,
  4624 + ): Promise<PostOldInvoicingWhiteListRemoveResponseSuccess> {
  4625 + return requester(request.url, {
  4626 + method: request.method,
  4627 + ...option,
  4628 + }) as unknown as Promise<PostOldInvoicingWhiteListRemoveResponseSuccess>;
  4629 + }
  4630 +
  4631 + /** http method */
  4632 + request.method = method;
  4633 + /** request url */
  4634 + request.url = url;
  4635 + return request;
  4636 +})();
  4637 +
4363 4638 /** @description request parameter type for postOrderErpApplyList */
4364 4639 export interface PostOrderErpApplyListOption {
4365 4640 /**
... ... @@ -10609,8 +10884,8 @@ export const postProcureReturnBillAdd = /* #__PURE__ */ (() =&gt; {
10609 10884 return request;
10610 10885 })();
10611 10886  
10612   -/** @description request parameter type for postProcureReturnBillModify */
10613   -export interface PostProcureReturnBillModifyOption {
  10887 +/** @description request parameter type for postProcureReturnBillAddOrModify */
  10888 +export interface PostProcureReturnBillAddOrModifyOption {
10614 10889 /**
10615 10890 * @description
10616 10891 * dto
... ... @@ -10623,8 +10898,8 @@ export interface PostProcureReturnBillModifyOption {
10623 10898 };
10624 10899 }
10625 10900  
10626   -/** @description response type for postProcureReturnBillModify */
10627   -export interface PostProcureReturnBillModifyResponse {
  10901 +/** @description response type for postProcureReturnBillAddOrModify */
  10902 +export interface PostProcureReturnBillAddOrModifyResponse {
10628 10903 /**
10629 10904 * @description
10630 10905 * OK
... ... @@ -10652,25 +10927,25 @@ export interface PostProcureReturnBillModifyResponse {
10652 10927 404: any;
10653 10928 }
10654 10929  
10655   -export type PostProcureReturnBillModifyResponseSuccess =
10656   - PostProcureReturnBillModifyResponse[200];
  10930 +export type PostProcureReturnBillAddOrModifyResponseSuccess =
  10931 + PostProcureReturnBillAddOrModifyResponse[200];
10657 10932 /**
10658 10933 * @description
10659   - * 修改
  10934 + * 添加或修改
10660 10935 * @tags procure-return-bill-controller
10661 10936 * @produces *
10662 10937 * @consumes application/json
10663 10938 */
10664   -export const postProcureReturnBillModify = /* #__PURE__ */ (() => {
  10939 +export const postProcureReturnBillAddOrModify = /* #__PURE__ */ (() => {
10665 10940 const method = 'post';
10666   - const url = '/procureReturnBill/modify';
  10941 + const url = '/procureReturnBill/addOrModify';
10667 10942 function request(
10668   - option: PostProcureReturnBillModifyOption,
10669   - ): Promise<PostProcureReturnBillModifyResponseSuccess> {
  10943 + option: PostProcureReturnBillAddOrModifyOption,
  10944 + ): Promise<PostProcureReturnBillAddOrModifyResponseSuccess> {
10670 10945 return requester(request.url, {
10671 10946 method: request.method,
10672 10947 ...option,
10673   - }) as unknown as Promise<PostProcureReturnBillModifyResponseSuccess>;
  10948 + }) as unknown as Promise<PostProcureReturnBillAddOrModifyResponseSuccess>;
10674 10949 }
10675 10950  
10676 10951 /** http method */
... ... @@ -10680,8 +10955,8 @@ export const postProcureReturnBillModify = /* #__PURE__ */ (() =&gt; {
10680 10955 return request;
10681 10956 })();
10682 10957  
10683   -/** @description request parameter type for postProcureReturnBillPage */
10684   -export interface PostProcureReturnBillPageOption {
  10958 +/** @description request parameter type for postProcureReturnBillAudit */
  10959 +export interface PostProcureReturnBillAuditOption {
10685 10960 /**
10686 10961 * @description
10687 10962 * dto
... ... @@ -10690,12 +10965,225 @@ export interface PostProcureReturnBillPageOption {
10690 10965 /**
10691 10966 @description
10692 10967 dto */
10693   - dto: QueryProcureReturnBillDto;
  10968 + dto: ProcureReturnBillApprovalDto;
10694 10969 };
10695 10970 }
10696 10971  
10697   -/** @description response type for postProcureReturnBillPage */
10698   -export interface PostProcureReturnBillPageResponse {
  10972 +/** @description response type for postProcureReturnBillAudit */
  10973 +export interface PostProcureReturnBillAuditResponse {
  10974 + /**
  10975 + * @description
  10976 + * OK
  10977 + */
  10978 + 200: ServerResult;
  10979 + /**
  10980 + * @description
  10981 + * Created
  10982 + */
  10983 + 201: any;
  10984 + /**
  10985 + * @description
  10986 + * Unauthorized
  10987 + */
  10988 + 401: any;
  10989 + /**
  10990 + * @description
  10991 + * Forbidden
  10992 + */
  10993 + 403: any;
  10994 + /**
  10995 + * @description
  10996 + * Not Found
  10997 + */
  10998 + 404: any;
  10999 +}
  11000 +
  11001 +export type PostProcureReturnBillAuditResponseSuccess =
  11002 + PostProcureReturnBillAuditResponse[200];
  11003 +/**
  11004 + * @description
  11005 + * 审核
  11006 + * @tags procure-return-bill-controller
  11007 + * @produces *
  11008 + * @consumes application/json
  11009 + */
  11010 +export const postProcureReturnBillAudit = /* #__PURE__ */ (() => {
  11011 + const method = 'post';
  11012 + const url = '/procureReturnBill/audit';
  11013 + function request(
  11014 + option: PostProcureReturnBillAuditOption,
  11015 + ): Promise<PostProcureReturnBillAuditResponseSuccess> {
  11016 + return requester(request.url, {
  11017 + method: request.method,
  11018 + ...option,
  11019 + }) as unknown as Promise<PostProcureReturnBillAuditResponseSuccess>;
  11020 + }
  11021 +
  11022 + /** http method */
  11023 + request.method = method;
  11024 + /** request url */
  11025 + request.url = url;
  11026 + return request;
  11027 +})();
  11028 +
  11029 +/** @description request parameter type for postProcureReturnBillExport */
  11030 +export interface PostProcureReturnBillExportOption {
  11031 + /**
  11032 + * @description
  11033 + * dto
  11034 + */
  11035 + body: {
  11036 + /**
  11037 + @description
  11038 + dto */
  11039 + dto: QueryProcureReturnBillDto;
  11040 + };
  11041 +}
  11042 +
  11043 +/** @description response type for postProcureReturnBillExport */
  11044 +export interface PostProcureReturnBillExportResponse {
  11045 + /**
  11046 + * @description
  11047 + * OK
  11048 + */
  11049 + 200: any;
  11050 + /**
  11051 + * @description
  11052 + * Created
  11053 + */
  11054 + 201: any;
  11055 + /**
  11056 + * @description
  11057 + * Unauthorized
  11058 + */
  11059 + 401: any;
  11060 + /**
  11061 + * @description
  11062 + * Forbidden
  11063 + */
  11064 + 403: any;
  11065 + /**
  11066 + * @description
  11067 + * Not Found
  11068 + */
  11069 + 404: any;
  11070 +}
  11071 +
  11072 +export type PostProcureReturnBillExportResponseSuccess =
  11073 + PostProcureReturnBillExportResponse[200];
  11074 +/**
  11075 + * @description
  11076 + * 导出客户信息
  11077 + * @tags procure-return-bill-controller
  11078 + * @produces *
  11079 + * @consumes application/json
  11080 + */
  11081 +export const postProcureReturnBillExport = /* #__PURE__ */ (() => {
  11082 + const method = 'post';
  11083 + const url = '/procureReturnBill/export';
  11084 + function request(
  11085 + option: PostProcureReturnBillExportOption,
  11086 + ): Promise<PostProcureReturnBillExportResponseSuccess> {
  11087 + return requester(request.url, {
  11088 + method: request.method,
  11089 + ...option,
  11090 + }) as unknown as Promise<PostProcureReturnBillExportResponseSuccess>;
  11091 + }
  11092 +
  11093 + /** http method */
  11094 + request.method = method;
  11095 + /** request url */
  11096 + request.url = url;
  11097 + return request;
  11098 +})();
  11099 +
  11100 +/** @description request parameter type for postProcureReturnBillModify */
  11101 +export interface PostProcureReturnBillModifyOption {
  11102 + /**
  11103 + * @description
  11104 + * dto
  11105 + */
  11106 + body: {
  11107 + /**
  11108 + @description
  11109 + dto */
  11110 + dto: ProcureReturnBillDto;
  11111 + };
  11112 +}
  11113 +
  11114 +/** @description response type for postProcureReturnBillModify */
  11115 +export interface PostProcureReturnBillModifyResponse {
  11116 + /**
  11117 + * @description
  11118 + * OK
  11119 + */
  11120 + 200: ServerResult;
  11121 + /**
  11122 + * @description
  11123 + * Created
  11124 + */
  11125 + 201: any;
  11126 + /**
  11127 + * @description
  11128 + * Unauthorized
  11129 + */
  11130 + 401: any;
  11131 + /**
  11132 + * @description
  11133 + * Forbidden
  11134 + */
  11135 + 403: any;
  11136 + /**
  11137 + * @description
  11138 + * Not Found
  11139 + */
  11140 + 404: any;
  11141 +}
  11142 +
  11143 +export type PostProcureReturnBillModifyResponseSuccess =
  11144 + PostProcureReturnBillModifyResponse[200];
  11145 +/**
  11146 + * @description
  11147 + * 修改
  11148 + * @tags procure-return-bill-controller
  11149 + * @produces *
  11150 + * @consumes application/json
  11151 + */
  11152 +export const postProcureReturnBillModify = /* #__PURE__ */ (() => {
  11153 + const method = 'post';
  11154 + const url = '/procureReturnBill/modify';
  11155 + function request(
  11156 + option: PostProcureReturnBillModifyOption,
  11157 + ): Promise<PostProcureReturnBillModifyResponseSuccess> {
  11158 + return requester(request.url, {
  11159 + method: request.method,
  11160 + ...option,
  11161 + }) as unknown as Promise<PostProcureReturnBillModifyResponseSuccess>;
  11162 + }
  11163 +
  11164 + /** http method */
  11165 + request.method = method;
  11166 + /** request url */
  11167 + request.url = url;
  11168 + return request;
  11169 +})();
  11170 +
  11171 +/** @description request parameter type for postProcureReturnBillPage */
  11172 +export interface PostProcureReturnBillPageOption {
  11173 + /**
  11174 + * @description
  11175 + * dto
  11176 + */
  11177 + body: {
  11178 + /**
  11179 + @description
  11180 + dto */
  11181 + dto: QueryProcureReturnBillDto;
  11182 + };
  11183 +}
  11184 +
  11185 +/** @description response type for postProcureReturnBillPage */
  11186 +export interface PostProcureReturnBillPageResponse {
10699 11187 /**
10700 11188 * @description
10701 11189 * OK
... ... @@ -10751,6 +11239,150 @@ export const postProcureReturnBillPage = /* #__PURE__ */ (() =&gt; {
10751 11239 return request;
10752 11240 })();
10753 11241  
  11242 +/** @description request parameter type for postProcureReturnBillRemove */
  11243 +export interface PostProcureReturnBillRemoveOption {
  11244 + /**
  11245 + * @description
  11246 + * id
  11247 + * @format int64
  11248 + */
  11249 + query: {
  11250 + /**
  11251 + @description
  11252 + id
  11253 + @format int64 */
  11254 + id: number;
  11255 + };
  11256 +}
  11257 +
  11258 +/** @description response type for postProcureReturnBillRemove */
  11259 +export interface PostProcureReturnBillRemoveResponse {
  11260 + /**
  11261 + * @description
  11262 + * OK
  11263 + */
  11264 + 200: ServerResult;
  11265 + /**
  11266 + * @description
  11267 + * Created
  11268 + */
  11269 + 201: any;
  11270 + /**
  11271 + * @description
  11272 + * Unauthorized
  11273 + */
  11274 + 401: any;
  11275 + /**
  11276 + * @description
  11277 + * Forbidden
  11278 + */
  11279 + 403: any;
  11280 + /**
  11281 + * @description
  11282 + * Not Found
  11283 + */
  11284 + 404: any;
  11285 +}
  11286 +
  11287 +export type PostProcureReturnBillRemoveResponseSuccess =
  11288 + PostProcureReturnBillRemoveResponse[200];
  11289 +/**
  11290 + * @description
  11291 + * 删除
  11292 + * @tags procure-return-bill-controller
  11293 + * @produces *
  11294 + * @consumes application/json
  11295 + */
  11296 +export const postProcureReturnBillRemove = /* #__PURE__ */ (() => {
  11297 + const method = 'post';
  11298 + const url = '/procureReturnBill/remove';
  11299 + function request(
  11300 + option: PostProcureReturnBillRemoveOption,
  11301 + ): Promise<PostProcureReturnBillRemoveResponseSuccess> {
  11302 + return requester(request.url, {
  11303 + method: request.method,
  11304 + ...option,
  11305 + }) as unknown as Promise<PostProcureReturnBillRemoveResponseSuccess>;
  11306 + }
  11307 +
  11308 + /** http method */
  11309 + request.method = method;
  11310 + /** request url */
  11311 + request.url = url;
  11312 + return request;
  11313 +})();
  11314 +
  11315 +/** @description request parameter type for postProcureReturnBillSend */
  11316 +export interface PostProcureReturnBillSendOption {
  11317 + /**
  11318 + * @description
  11319 + * dto
  11320 + */
  11321 + body: {
  11322 + /**
  11323 + @description
  11324 + dto */
  11325 + dto: ProcureReturnBillApprovalDto;
  11326 + };
  11327 +}
  11328 +
  11329 +/** @description response type for postProcureReturnBillSend */
  11330 +export interface PostProcureReturnBillSendResponse {
  11331 + /**
  11332 + * @description
  11333 + * OK
  11334 + */
  11335 + 200: ServerResult;
  11336 + /**
  11337 + * @description
  11338 + * Created
  11339 + */
  11340 + 201: any;
  11341 + /**
  11342 + * @description
  11343 + * Unauthorized
  11344 + */
  11345 + 401: any;
  11346 + /**
  11347 + * @description
  11348 + * Forbidden
  11349 + */
  11350 + 403: any;
  11351 + /**
  11352 + * @description
  11353 + * Not Found
  11354 + */
  11355 + 404: any;
  11356 +}
  11357 +
  11358 +export type PostProcureReturnBillSendResponseSuccess =
  11359 + PostProcureReturnBillSendResponse[200];
  11360 +/**
  11361 + * @description
  11362 + * 发货
  11363 + * @tags procure-return-bill-controller
  11364 + * @produces *
  11365 + * @consumes application/json
  11366 + */
  11367 +export const postProcureReturnBillSend = /* #__PURE__ */ (() => {
  11368 + const method = 'post';
  11369 + const url = '/procureReturnBill/send';
  11370 + function request(
  11371 + option: PostProcureReturnBillSendOption,
  11372 + ): Promise<PostProcureReturnBillSendResponseSuccess> {
  11373 + return requester(request.url, {
  11374 + method: request.method,
  11375 + ...option,
  11376 + }) as unknown as Promise<PostProcureReturnBillSendResponseSuccess>;
  11377 + }
  11378 +
  11379 + /** http method */
  11380 + request.method = method;
  11381 + /** request url */
  11382 + request.url = url;
  11383 + return request;
  11384 +})();
  11385 +
10754 11386 /** @description request parameter type for postResearchGroupMemberRequestsAdd */
10755 11387 export interface PostResearchGroupMemberRequestsAddOption {
10756 11388 /**
... ... @@ -11586,6 +12218,77 @@ export const postResearchGroupsList = /* #__PURE__ */ (() =&gt; {
11586 12218 return request;
11587 12219 })();
11588 12220  
  12221 +/** @description request parameter type for postResearchGroupsNameSet */
  12222 +export interface PostResearchGroupsNameSetOption {
  12223 + /**
  12224 + * @description
  12225 + * request
  12226 + */
  12227 + body: {
  12228 + /**
  12229 + @description
  12230 + request */
  12231 + request: ResearchGroupListRequest;
  12232 + };
  12233 +}
  12234 +
  12235 +/** @description response type for postResearchGroupsNameSet */
  12236 +export interface PostResearchGroupsNameSetResponse {
  12237 + /**
  12238 + * @description
  12239 + * OK
  12240 + */
  12241 + 200: ServerResult;
  12242 + /**
  12243 + * @description
  12244 + * Created
  12245 + */
  12246 + 201: any;
  12247 + /**
  12248 + * @description
  12249 + * Unauthorized
  12250 + */
  12251 + 401: any;
  12252 + /**
  12253 + * @description
  12254 + * Forbidden
  12255 + */
  12256 + 403: any;
  12257 + /**
  12258 + * @description
  12259 + * Not Found
  12260 + */
  12261 + 404: any;
  12262 +}
  12263 +
  12264 +export type PostResearchGroupsNameSetResponseSuccess =
  12265 + PostResearchGroupsNameSetResponse[200];
  12266 +/**
  12267 + * @description
  12268 + * 课题组名称列表
  12269 + * @tags research-groups-controller
  12270 + * @produces *
  12271 + * @consumes application/json
  12272 + */
  12273 +export const postResearchGroupsNameSet = /* #__PURE__ */ (() => {
  12274 + const method = 'post';
  12275 + const url = '/research/groups/nameSet';
  12276 + function request(
  12277 + option: PostResearchGroupsNameSetOption,
  12278 + ): Promise<PostResearchGroupsNameSetResponseSuccess> {
  12279 + return requester(request.url, {
  12280 + method: request.method,
  12281 + ...option,
  12282 + }) as unknown as Promise<PostResearchGroupsNameSetResponseSuccess>;
  12283 + }
  12284 +
  12285 + /** http method */
  12286 + request.method = method;
  12287 + /** request url */
  12288 + request.url = url;
  12289 + return request;
  12290 +})();
  12291 +
11589 12292 /** @description request parameter type for postServiceBankStatementDeleteBankStatement */
11590 12293 export interface PostServiceBankStatementDeleteBankStatementOption {
11591 12294 /**
... ... @@ -12832,8 +13535,8 @@ export const postServiceConstTradeStatus = /* #__PURE__ */ (() =&gt; {
12832 13535  
12833 13536 /** @description request parameter type for getServiceInvoiceListInvoiceProject */
12834 13537 export interface GetServiceInvoiceListInvoiceProjectOption {
12835   - /** @format int32 */
12836 13538 query?: {
  13539 + createByName?: string;
12837 13540 /**
12838 13541 @format int32 */
12839 13542 current?: number;
... ... @@ -13951,6 +14654,71 @@ export const postServiceInvoiceImportInvoiceDetails = /* #__PURE__ */ (() =&gt; {
13951 14654 return request;
13952 14655 })();
13953 14656  
  14657 +/** @description request parameter type for getServiceInvoiceInvoiceProjectPage */
  14658 +export interface GetServiceInvoiceInvoiceProjectPageOption {
  14659 + /**
  14660 + * @description
  14661 + * dto
  14662 + */
  14663 + body: {
  14664 + /**
  14665 + @description
  14666 + dto */
  14667 + dto: QueryInvoiceProjectDto;
  14668 + };
  14669 +}
  14670 +
  14671 +/** @description response type for getServiceInvoiceInvoiceProjectPage */
  14672 +export interface GetServiceInvoiceInvoiceProjectPageResponse {
  14673 + /**
  14674 + * @description
  14675 + * OK
  14676 + */
  14677 + 200: ServerResult;
  14678 + /**
  14679 + * @description
  14680 + * Unauthorized
  14681 + */
  14682 + 401: any;
  14683 + /**
  14684 + * @description
  14685 + * Forbidden
  14686 + */
  14687 + 403: any;
  14688 + /**
  14689 + * @description
  14690 + * Not Found
  14691 + */
  14692 + 404: any;
  14693 +}
  14694 +
  14695 +export type GetServiceInvoiceInvoiceProjectPageResponseSuccess =
  14696 + GetServiceInvoiceInvoiceProjectPageResponse[200];
  14697 +/**
  14698 + * @description
  14699 + * 查询开票项目
  14700 + * @tags 发票
  14701 + * @produces *
  14702 + */
  14703 +export const getServiceInvoiceInvoiceProjectPage = /* #__PURE__ */ (() => {
  14704 + const method = 'get';
  14705 + const url = '/service/invoice/invoiceProjectPage';
  14706 + function request(
  14707 + option: GetServiceInvoiceInvoiceProjectPageOption,
  14708 + ): Promise<GetServiceInvoiceInvoiceProjectPageResponseSuccess> {
  14709 + return requester(request.url, {
  14710 + method: request.method,
  14711 + ...option,
  14712 + }) as unknown as Promise<GetServiceInvoiceInvoiceProjectPageResponseSuccess>;
  14713 + }
  14714 +
  14715 + /** http method */
  14716 + request.method = method;
  14717 + /** request url */
  14718 + request.url = url;
  14719 + return request;
  14720 +})();
  14721 +
13954 14722 /** @description request parameter type for postServiceInvoiceInvoiceWriteOff */
13955 14723 export interface PostServiceInvoiceInvoiceWriteOffOption {
13956 14724 /**
... ...