Commit 2d6efa558af1bf58127e6eb7fb4f15bd2cc5fd7f

Authored by 曾国涛
2 parents 3dd1b455 6940a4c6

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

发现并删除了ManualInvoicingModal组件中未使用的注释代码,以提高代码清晰度和维护性。
.umirc.ts
@@ -87,7 +87,6 @@ export default defineConfig({ @@ -87,7 +87,6 @@ export default defineConfig({
87 }, 87 },
88 ], 88 ],
89 }, 89 },
90 -  
91 { 90 {
92 name: '预存管理', 91 name: '预存管理',
93 path: '/prepaidManage', 92 path: '/prepaidManage',
@@ -129,6 +128,13 @@ export default defineConfig({ @@ -129,6 +128,13 @@ export default defineConfig({
129 component: './OrderPrint', 128 component: './OrderPrint',
130 layout: false, 129 layout: false,
131 }, 130 },
  131 + {
  132 + name: '采购退货管理',
  133 + path: '/procure',
  134 + component: './procure',
  135 + icon: 'BookOutlined',
  136 + access: 'canReadAdmin',
  137 + },
132 /*{ 138 /*{
133 name: '用户管理', 139 name: '用户管理',
134 path: '/user', 140 path: '/user',
src/pages/Invoice/InvoiceRecord/components/ManualInvoicingModal.tsx
@@ -48,12 +48,6 @@ export default ({ record }) => { @@ -48,12 +48,6 @@ export default ({ record }) => {
48 } 48 }
49 }} 49 }}
50 > 50 >
51 - {/*<ProFormText  
52 - rules={[{ required: true, message: '此项为必填项' }]}  
53 - width={'md'}  
54 - name="invoicingPerson"  
55 - label="开票人"  
56 - />*/}  
57 <ProFormText 51 <ProFormText
58 rules={[{ required: true, message: '此项为必填项' }]} 52 rules={[{ required: true, message: '此项为必填项' }]}
59 width={'md'} 53 width={'md'}
@@ -98,33 +92,6 @@ export default ({ record }) =&gt; { @@ -98,33 +92,6 @@ export default ({ record }) =&gt; {
98 ></UploadC> 92 ></UploadC>
99 </Col> 93 </Col>
100 </Row> 94 </Row>
101 - {/*<ProFormList  
102 - name="invoiceDetailDtoList"  
103 - label="明细"  
104 - creatorButtonProps={false}  
105 - copyIconProps={false}  
106 - itemRender={({ listDom }, { index }) => (  
107 - <ProCard  
108 - bordered  
109 - style={{ marginBlockEnd: 8 }}  
110 - title={`明细${index + 1}`}  
111 - bodyStyle={{ paddingBlockEnd: 0 }}  
112 - >  
113 - {listDom}  
114 - </ProCard>  
115 - )}  
116 - creatorRecord={{ name: '', items: [{ name: '' }] }}  
117 - initialValue={record.invoiceDetails}  
118 - >  
119 - <ProFormText  
120 - name="projectName"  
121 - label="名称"  
122 - placeholder="请输入名称"  
123 - readonly  
124 - />  
125 - <ProFormDigit label="税率" name="taxRate" min={0} max={100} />  
126 - <ProFormMoney label="税额" name="taxPrice" locale="zh-CN" min={0} />  
127 - </ProFormList>*/}  
128 </ModalForm> 95 </ModalForm>
129 ); 96 );
130 }; 97 };
src/pages/Invoice/InvoiceRecord/index.tsx
@@ -12,7 +12,7 @@ import { @@ -12,7 +12,7 @@ import {
12 import { excelExport } from '@/services/exportRequest'; 12 import { excelExport } from '@/services/exportRequest';
13 import { enumToProTableEnumValue, enumToSelect } from '@/utils'; 13 import { enumToProTableEnumValue, enumToSelect } from '@/utils';
14 import { ActionType, ModalForm, ProTable } from '@ant-design/pro-components'; 14 import { ActionType, ModalForm, ProTable } from '@ant-design/pro-components';
15 -import { Button, message } from 'antd'; 15 +import { Button, Divider, Space, Tooltip, message } from 'antd';
16 import { useEffect, useRef, useState } from 'react'; 16 import { useEffect, useRef, useState } from 'react';
17 17
18 const InvoiceRecord = () => { 18 const InvoiceRecord = () => {
@@ -69,9 +69,31 @@ const InvoiceRecord = () =&gt; { @@ -69,9 +69,31 @@ const InvoiceRecord = () =&gt; {
69 ellipsis: true, 69 ellipsis: true,
70 }, 70 },
71 { 71 {
  72 + title: '重开发票',
  73 + key: 'reissueInvoiceNumbers',
  74 + width: 120,
  75 + ellipsis: true,
  76 + hideInSearch: true,
  77 + render: (_, record) => {
  78 + //将record.reissueInvoiceNumbers用,拼接
  79 + const numbersText = record.reissueInvoiceNumbers?.join(',');
  80 + return record.reissueInvoiceNumbers?.map((item) => {
  81 + return (
  82 + <Tooltip title={numbersText} key={item}>
  83 + <Space key={item}>
  84 + {item}
  85 + <Divider type={'vertical'} />
  86 + </Space>
  87 + </Tooltip>
  88 + );
  89 + });
  90 + },
  91 + },
  92 + {
72 title: '开票日期', 93 title: '开票日期',
73 dataIndex: 'invoicingDate', 94 dataIndex: 'invoicingDate',
74 valueType: 'date', 95 valueType: 'date',
  96 + width: 140,
75 hideInSearch: true, 97 hideInSearch: true,
76 ellipsis: true, 98 ellipsis: true,
77 }, 99 },
@@ -97,22 +119,22 @@ const InvoiceRecord = () =&gt; { @@ -97,22 +119,22 @@ const InvoiceRecord = () =&gt; {
97 ellipsis: true, 119 ellipsis: true,
98 }, 120 },
99 { 121 {
100 - title: '购方税号', 122 + title: '联系人',
101 valueType: 'text', 123 valueType: 'text',
102 - dataIndex: 'partyATaxid', 124 + dataIndex: 'contacts',
  125 + hideInSearch: true,
103 ellipsis: true, 126 ellipsis: true,
104 }, 127 },
105 { 128 {
106 - title: '收款单位', 129 + title: '购方税号',
107 valueType: 'text', 130 valueType: 'text',
108 - dataIndex: 'partyBName',  
109 - hideInSearch: true, 131 + dataIndex: 'partyATaxid',
110 ellipsis: true, 132 ellipsis: true,
111 }, 133 },
112 { 134 {
113 - title: '联系人', 135 + title: '收款单位',
114 valueType: 'text', 136 valueType: 'text',
115 - dataIndex: 'contacts', 137 + dataIndex: 'partyBName',
116 hideInSearch: true, 138 hideInSearch: true,
117 ellipsis: true, 139 ellipsis: true,
118 }, 140 },
@@ -152,6 +174,18 @@ const InvoiceRecord = () =&gt; { @@ -152,6 +174,18 @@ const InvoiceRecord = () =&gt; {
152 hideInTable: true, 174 hideInTable: true,
153 }, 175 },
154 { 176 {
  177 + title: '主订单号',
  178 + valueType: 'Text',
  179 + dataIndex: 'mainOrderId',
  180 + hideInTable: true,
  181 + },
  182 + {
  183 + title: '子订单号',
  184 + valueType: 'Text',
  185 + dataIndex: 'subOrderId',
  186 + hideInTable: true,
  187 + },
  188 + {
155 title: '发票类型', 189 title: '发票类型',
156 valueType: 'select', 190 valueType: 'select',
157 dataIndex: 'type', 191 dataIndex: 'type',
@@ -160,7 +194,6 @@ const InvoiceRecord = () =&gt; { @@ -160,7 +194,6 @@ const InvoiceRecord = () =&gt; {
160 hideInTable: true, 194 hideInTable: true,
161 valueEnum: enumToProTableEnumValue(invoiceTypeValueEnum), 195 valueEnum: enumToProTableEnumValue(invoiceTypeValueEnum),
162 }, 196 },
163 -  
164 { 197 {
165 title: '开票状态', 198 title: '开票状态',
166 valueType: 'select', 199 valueType: 'select',
src/pages/Invoice/InvoiceVerification/index.tsx
@@ -31,7 +31,6 @@ const InvoiceRecord = () =&gt; { @@ -31,7 +31,6 @@ const InvoiceRecord = () =&gt; {
31 const [invoiceRecordDetailVisible, setInvoiceRecordDetailVisible] = 31 const [invoiceRecordDetailVisible, setInvoiceRecordDetailVisible] =
32 useState(false); 32 useState(false);
33 const [invoiceRecord] = useState({}); 33 const [invoiceRecord] = useState({});
34 - const [contextHolder] = message.useMessage();  
35 34
36 const reloadBankStatementTable = () => { 35 const reloadBankStatementTable = () => {
37 bankActionRef.current?.reload(); 36 bankActionRef.current?.reload();
@@ -261,7 +260,6 @@ const InvoiceRecord = () =&gt; { @@ -261,7 +260,6 @@ const InvoiceRecord = () =&gt; {
261 ) : ( 260 ) : (
262 '' 261 ''
263 )} 262 )}
264 - {contextHolder}  
265 </div> 263 </div>
266 ); 264 );
267 }; 265 };
src/pages/Invoice/waitProcessRecord/index.tsx
@@ -12,7 +12,7 @@ import { @@ -12,7 +12,7 @@ import {
12 } from '@/services'; 12 } from '@/services';
13 import { enumToProTableEnumValue, enumToSelect } from '@/utils'; 13 import { enumToProTableEnumValue, enumToSelect } from '@/utils';
14 import { ActionType, ProTable } from '@ant-design/pro-components'; 14 import { ActionType, ProTable } from '@ant-design/pro-components';
15 -import { Space, Table, message } from 'antd'; 15 +import { Divider, Space, Table, Tooltip } from 'antd';
16 import { useEffect, useRef, useState } from 'react'; 16 import { useEffect, useRef, useState } from 'react';
17 17
18 const InvoiceRecord = () => { 18 const InvoiceRecord = () => {
@@ -23,7 +23,6 @@ const InvoiceRecord = () =&gt; { @@ -23,7 +23,6 @@ const InvoiceRecord = () =&gt; {
23 const [invoiceRecordDetailVisible, setInvoiceRecordDetailVisible] = 23 const [invoiceRecordDetailVisible, setInvoiceRecordDetailVisible] =
24 useState(false); 24 useState(false);
25 const [invoiceRecord, setInvoiceRecord] = useState({}); 25 const [invoiceRecord, setInvoiceRecord] = useState({});
26 - const [contextHolder] = message.useMessage();  
27 26
28 useEffect(() => { 27 useEffect(() => {
29 async function extracted() { 28 async function extracted() {
@@ -82,20 +81,50 @@ const InvoiceRecord = () =&gt; { @@ -82,20 +81,50 @@ const InvoiceRecord = () =&gt; {
82 valueType: 'Text', 81 valueType: 'Text',
83 dataIndex: 'statusText', 82 dataIndex: 'statusText',
84 ellipsis: true, 83 ellipsis: true,
  84 + width: 100,
85 hideInSearch: true, 85 hideInSearch: true,
86 }, 86 },
87 { 87 {
  88 + title: '重开发票',
  89 + key: 'reissueInvoiceNumbers',
  90 + ellipsis: true,
  91 + width: 160,
  92 + hideInSearch: true,
  93 + render: (_, record) => {
  94 + //将record.reissueInvoiceNumbers用,拼接
  95 + const numbersText = record.reissueInvoiceNumbers?.join(',');
  96 + return record.reissueInvoiceNumbers?.map((item) => {
  97 + return (
  98 + <Tooltip title={numbersText} key={item}>
  99 + <Space>
  100 + {item}
  101 + <Divider type={'vertical'} />
  102 + </Space>
  103 + </Tooltip>
  104 + );
  105 + });
  106 + },
  107 + },
  108 + {
88 title: '申请开票时间', 109 title: '申请开票时间',
89 dataIndex: 'createTime', 110 dataIndex: 'createTime',
90 valueType: 'dateTime', 111 valueType: 'dateTime',
  112 + width: 160,
91 hideInSearch: true, 113 hideInSearch: true,
92 ellipsis: true, 114 ellipsis: true,
93 }, 115 },
94 { 116 {
  117 + title: '订单号',
  118 + valueType: 'text',
  119 + dataIndex: 'mainOrderId',
  120 + hideInTable: true,
  121 + },
  122 + {
95 title: '销售代表', 123 title: '销售代表',
96 valueType: 'text', 124 valueType: 'text',
97 hideInSearch: true, 125 hideInSearch: true,
98 ellipsis: true, 126 ellipsis: true,
  127 + width: 100,
99 dataIndex: 'createByName', 128 dataIndex: 'createByName',
100 }, 129 },
101 { 130 {
@@ -123,6 +152,7 @@ const InvoiceRecord = () =&gt; { @@ -123,6 +152,7 @@ const InvoiceRecord = () =&gt; {
123 title: '开票金额', 152 title: '开票金额',
124 valueType: 'money', 153 valueType: 'money',
125 dataIndex: 'price', 154 dataIndex: 'price',
  155 + width: 100,
126 hideInSearch: true, 156 hideInSearch: true,
127 ellipsis: true, 157 ellipsis: true,
128 }, 158 },
@@ -130,6 +160,7 @@ const InvoiceRecord = () =&gt; { @@ -130,6 +160,7 @@ const InvoiceRecord = () =&gt; {
130 title: '开具类型', 160 title: '开具类型',
131 valueType: 'Text', 161 valueType: 'Text',
132 dataIndex: 'invoicingTypeText', 162 dataIndex: 'invoicingTypeText',
  163 + width: 100,
133 hideInSearch: true, 164 hideInSearch: true,
134 ellipsis: true, 165 ellipsis: true,
135 }, 166 },
@@ -137,6 +168,7 @@ const InvoiceRecord = () =&gt; { @@ -137,6 +168,7 @@ const InvoiceRecord = () =&gt; {
137 title: '发票类型', 168 title: '发票类型',
138 valueType: 'Text', 169 valueType: 'Text',
139 dataIndex: 'typeText', 170 dataIndex: 'typeText',
  171 + width: 100,
140 hideInSearch: true, 172 hideInSearch: true,
141 ellipsis: true, 173 ellipsis: true,
142 }, 174 },
@@ -144,6 +176,7 @@ const InvoiceRecord = () =&gt; { @@ -144,6 +176,7 @@ const InvoiceRecord = () =&gt; {
144 title: '是否加急', 176 title: '是否加急',
145 valueType: 'Text', 177 valueType: 'Text',
146 dataIndex: 'isUrgentText', 178 dataIndex: 'isUrgentText',
  179 + width: 50,
147 hideInSearch: true, 180 hideInSearch: true,
148 ellipsis: true, 181 ellipsis: true,
149 }, 182 },
@@ -259,6 +292,7 @@ const InvoiceRecord = () =&gt; { @@ -259,6 +292,7 @@ const InvoiceRecord = () =&gt; {
259 title: '操作', 292 title: '操作',
260 valueType: 'option', 293 valueType: 'option',
261 key: 'option', 294 key: 'option',
  295 + width: 200,
262 render: (text, record) => { 296 render: (text, record) => {
263 return [ 297 return [
264 /*<InvoiceRecordDetailModal 298 /*<InvoiceRecordDetailModal
@@ -368,7 +402,7 @@ const InvoiceRecord = () =&gt; { @@ -368,7 +402,7 @@ const InvoiceRecord = () =&gt; {
368 form={{}} 402 form={{}}
369 dateFormatter="string" 403 dateFormatter="string"
370 headerTitle="待开票列表" 404 headerTitle="待开票列表"
371 - scroll={{ x: 1400, y: 360 }} 405 + scroll={{ x: 2400, y: 500 }}
372 /> 406 />
373 {invoiceRecordDetailVisible ? ( 407 {invoiceRecordDetailVisible ? (
374 <InvoiceRecordDetailModal 408 <InvoiceRecordDetailModal
@@ -379,7 +413,6 @@ const InvoiceRecord = () =&gt; { @@ -379,7 +413,6 @@ const InvoiceRecord = () =&gt; {
379 ) : ( 413 ) : (
380 '' 414 ''
381 )} 415 )}
382 - {contextHolder}  
383 </div> 416 </div>
384 ); 417 );
385 }; 418 };
src/pages/Order/components/InvoicingDrawerForm.tsx
@@ -10,7 +10,7 @@ import { @@ -10,7 +10,7 @@ import {
10 postServiceInvoiceQueryCompanyInfo, 10 postServiceInvoiceQueryCompanyInfo,
11 postServiceInvoiceWaitReissueInvoices, 11 postServiceInvoiceWaitReissueInvoices,
12 } from '@/services'; 12 } from '@/services';
13 -import { enum2ReverseSelect, enumToSelect } from '@/utils'; 13 +import { FloatAdd, enum2ReverseSelect, enumToSelect } from '@/utils';
14 import { convertCurrency } from '@/utils/numberUtil'; 14 import { convertCurrency } from '@/utils/numberUtil';
15 import { 15 import {
16 DrawerForm, 16 DrawerForm,
@@ -27,7 +27,7 @@ import { @@ -27,7 +27,7 @@ import {
27 import { Button, Divider, Form, Space, Tooltip, message } from 'antd'; 27 import { Button, Divider, Form, Space, Tooltip, message } from 'antd';
28 import { useEffect, useRef, useState } from 'react'; 28 import { useEffect, useRef, useState } from 'react';
29 29
30 -export default ({ dataList, setVisible, onClose }) => { 30 +export default ({ dataList, setVisible, mainOrder, onClose }) => {
31 // let subOrderIds = dataList?.map((item) => { 31 // let subOrderIds = dataList?.map((item) => {
32 // return item.id; 32 // return item.id;
33 // }) 33 // })
@@ -62,6 +62,7 @@ export default ({ dataList, setVisible, onClose }) =&gt; { @@ -62,6 +62,7 @@ export default ({ dataList, setVisible, onClose }) =&gt; {
62 }; 62 };
63 }); 63 });
64 form.setFieldValue('invoiceDetails', initialValue); 64 form.setFieldValue('invoiceDetails', initialValue);
  65 + form.setFieldValue('contacts', mainOrder.customerName);
65 }; 66 };
66 initOptions(); 67 initOptions();
67 }, []); 68 }, []);
@@ -116,7 +117,7 @@ export default ({ dataList, setVisible, onClose }) =&gt; { @@ -116,7 +117,7 @@ export default ({ dataList, setVisible, onClose }) =&gt; {
116 const totalPrice = form 117 const totalPrice = form
117 .getFieldValue('invoiceDetails') 118 .getFieldValue('invoiceDetails')
118 .reduce((accumulator, currentValue) => { 119 .reduce((accumulator, currentValue) => {
119 - return accumulator + currentValue.totalPrice; 120 + return FloatAdd(accumulator, currentValue.totalPrice);
120 }, 0); 121 }, 0);
121 const partyBName = form.getFieldValue('partyBName'); 122 const partyBName = form.getFieldValue('partyBName');
122 const openBank = form.getFieldValue('openBank'); 123 const openBank = form.getFieldValue('openBank');
@@ -283,6 +284,11 @@ export default ({ dataList, setVisible, onClose }) =&gt; { @@ -283,6 +284,11 @@ export default ({ dataList, setVisible, onClose }) =&gt; {
283 label="开户行账号" 284 label="开户行账号"
284 placeholder="请输入名称" 285 placeholder="请输入名称"
285 /> 286 />
  287 + <ProFormText
  288 + name="contacts"
  289 + label="联系人"
  290 + rules={[{ required: true, message: '请选择银行联行号!' }]}
  291 + />
286 <ProFormMoney 292 <ProFormMoney
287 label="开票金额" 293 label="开票金额"
288 name="price" 294 name="price"
src/pages/Order/components/OrderDrawer.tsx
@@ -870,8 +870,8 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -870,8 +870,8 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
870 values.institution = values.institution?.trim(); 870 values.institution = values.institution?.trim();
871 values.institutionContactName = values.institutionContactName?.trim(); 871 values.institutionContactName = values.institutionContactName?.trim();
872 values.customerName = values.customerNameString.trim(); 872 values.customerName = values.customerNameString.trim();
873 - values.customerShippingAddress =  
874 - province + city + district + values.customerShippingAddress; 873 + // values.customerShippingAddress =
  874 + // province + city + district + values.customerShippingAddress;
875 875
876 if (typeof values.erpCustomerId !== 'string') { 876 if (typeof values.erpCustomerId !== 'string') {
877 values.erpCustomerId = values.erpCustomerId?.id; 877 values.erpCustomerId = values.erpCustomerId?.id;
src/pages/Order/hooks.ts
@@ -46,6 +46,8 @@ export const useFieldAuth = ({ operation }: { operation: OPERATION_TYPE }) =&gt; { @@ -46,6 +46,8 @@ export const useFieldAuth = ({ operation }: { operation: OPERATION_TYPE }) =&gt; {
46 }, 46 },
47 } as Record<string, boolean | object>; 47 } as Record<string, boolean | object>;
48 48
  49 + console.log(role);
  50 +
49 if (operation === OPERATION_TYPE.CREATE) { 51 if (operation === OPERATION_TYPE.CREATE) {
50 return authFields; 52 return authFields;
51 } else if (operation === OPERATION_TYPE.EDIT) { 53 } else if (operation === OPERATION_TYPE.EDIT) {
src/pages/Order/index.tsx
@@ -178,7 +178,7 @@ const OrderPage = () =&gt; { @@ -178,7 +178,7 @@ const OrderPage = () =&gt; {
178 const [rolePath, setRolePath] = useState([]); //当前角色权限(新增跟打印按钮) 178 const [rolePath, setRolePath] = useState([]); //当前角色权限(新增跟打印按钮)
179 const userInfo = getUserInfo(); 179 const userInfo = getUserInfo();
180 // const [tableHeight, setTableHeight] = useState(200); 180 // const [tableHeight, setTableHeight] = useState(200);
181 - const [selectedRows, setSelectedRows] = useState({}); 181 + const [selectedRows, setSelectedRows] = useState([]);
182 const [mainOrderIdSubOrderIdRelationsMap] = useState(new Map()); //主订单id与子订单id的对照关系,用于主订单子订单的勾选校验,子订单全选中对应的主订单自动勾选上 182 const [mainOrderIdSubOrderIdRelationsMap] = useState(new Map()); //主订单id与子订单id的对照关系,用于主订单子订单的勾选校验,子订单全选中对应的主订单自动勾选上
183 const [selectedMainOrderKeys, setSelectedMainOrderKeys] = useState<any[]>([]); 183 const [selectedMainOrderKeys, setSelectedMainOrderKeys] = useState<any[]>([]);
184 const [selectedSubOrderKeys, setSelectedSubOrderKeys] = useState<any[]>([]); 184 const [selectedSubOrderKeys, setSelectedSubOrderKeys] = useState<any[]>([]);
@@ -227,6 +227,12 @@ const OrderPage = () =&gt; { @@ -227,6 +227,12 @@ const OrderPage = () =&gt; {
227 const exportLoadingDestory = () => { 227 const exportLoadingDestory = () => {
228 messageApi.destroy(); 228 messageApi.destroy();
229 }; 229 };
  230 + useEffect(() => {
  231 + console.log(
  232 + 'selectedRows',
  233 + selectedRows.every((item) => item.paths.includes('applyInvoicing_old')),
  234 + );
  235 + }, [selectedRows]);
230 236
231 const refreshTable = () => { 237 const refreshTable = () => {
232 mainTableRef.current?.reload(); 238 mainTableRef.current?.reload();
@@ -667,6 +673,8 @@ const OrderPage = () =&gt; { @@ -667,6 +673,8 @@ const OrderPage = () =&gt; {
667 * @param optRecord 673 * @param optRecord
668 */ 674 */
669 function getOrderStatusTag(optRecord: any): import('react').ReactNode { 675 function getOrderStatusTag(optRecord: any): import('react').ReactNode {
  676 + console.log(optRecord);
  677 +
670 const orderStatus = optRecord.orderStatus; 678 const orderStatus = optRecord.orderStatus;
671 const paymentMethod = optRecord.paymentMethod; 679 const paymentMethod = optRecord.paymentMethod;
672 let orderStatusTagText = enumValueToLabel( 680 let orderStatusTagText = enumValueToLabel(
@@ -4314,7 +4322,12 @@ const OrderPage = () =&gt; { @@ -4314,7 +4322,12 @@ const OrderPage = () =&gt; {
4314 setIsMainOrder(true); 4322 setIsMainOrder(true);
4315 setApplyForInvoicingVisible(true); 4323 setApplyForInvoicingVisible(true);
4316 }} 4324 }}
4317 - disabled={true} /*{selectedSubOrderKeys?.length === 0}*/ 4325 + disabled={
  4326 + selectedRows.length === 0 ||
  4327 + !selectedRows.every((item) =>
  4328 + item.paths.includes('applyInvoicing_old'),
  4329 + )
  4330 + } /*{selectedSubOrderKeys?.length === 0}*/
4318 > 4331 >
4319 {roleCode === 'admin' ? '合并(销售)' : '合并开票'} 4332 {roleCode === 'admin' ? '合并(销售)' : '合并开票'}
4320 </Button>, 4333 </Button>,
src/pages/procure/components/AddDrawer.tsx 0 → 100644
  1 +import {
  2 + postOrderErpOrderStagesUpload,
  3 + postServiceConstStores,
  4 +} from '@/services';
  5 +import { enumToSelect } from '@/utils';
  6 +import {
  7 + DrawerForm,
  8 + ProFormSelect,
  9 + ProFormText,
  10 + ProFormTextArea,
  11 + ProFormUploadDragger,
  12 +} from '@ant-design/pro-components';
  13 +import { Button, Form, message } from 'antd';
  14 +import { RcFile } from 'antd/es/upload';
  15 +
  16 +export default () => {
  17 + const [form] = Form.useForm();
  18 + return (
  19 + <DrawerForm
  20 + title="新增采购退货单"
  21 + resize={{
  22 + onResize() {
  23 + console.log('resize!');
  24 + },
  25 + maxWidth: window.innerWidth * 0.8,
  26 + minWidth: 300,
  27 + }}
  28 + form={form}
  29 + trigger={<Button type="primary">新增</Button>}
  30 + autoFocusFirstInput
  31 + drawerProps={{
  32 + destroyOnClose: true,
  33 + }}
  34 + submitTimeout={2000}
  35 + onFinish={async (values) => {
  36 + console.log(values.name);
  37 + message.success('提交成功');
  38 + // 不返回不会关闭弹框
  39 + return true;
  40 + }}
  41 + >
  42 + <ProFormText
  43 + name="consignee"
  44 + label="收货人"
  45 + placeholder="请输入收货人"
  46 + rules={[
  47 + {
  48 + required: true,
  49 + message: '请输入收货人',
  50 + },
  51 + ]}
  52 + />
  53 + <ProFormText
  54 + name="phoneNumber"
  55 + label="联系电话"
  56 + placeholder="请输入联系电话"
  57 + rules={[
  58 + {
  59 + required: true,
  60 + message: '请输入联系电话',
  61 + },
  62 + ]}
  63 + />
  64 + <ProFormText
  65 + name="address"
  66 + label="收货地址"
  67 + placeholder="请输入收货地址"
  68 + rules={[
  69 + {
  70 + required: true,
  71 + message: '请输入联系电话',
  72 + },
  73 + ]}
  74 + />
  75 + <ProFormTextArea
  76 + name="productDetail"
  77 + label="产品明细"
  78 + placeholder="请输入产品明细"
  79 + rules={[
  80 + {
  81 + required: true,
  82 + message: '请输入联系电话',
  83 + },
  84 + ]}
  85 + ></ProFormTextArea>
  86 + <ProFormSelect
  87 + name="sendStore"
  88 + label="发货仓库"
  89 + request={async () => {
  90 + const res = await postServiceConstStores();
  91 + return enumToSelect(res.data);
  92 + }}
  93 + rules={[
  94 + {
  95 + required: true,
  96 + message: '请输入联系电话',
  97 + },
  98 + ]}
  99 + ></ProFormSelect>
  100 + <ProFormTextArea
  101 + name="notes"
  102 + label="备注"
  103 + placeholder="请输入备注"
  104 + ></ProFormTextArea>
  105 + <ProFormUploadDragger
  106 + label="附件"
  107 + name="attachmentsFile"
  108 + action="upload.do"
  109 + onChange={({ fileList: newFileList }) => {
  110 + if (newFileList.length > 0) {
  111 + const formData = new FormData();
  112 + formData.append('file', newFileList[0].originFileObj as RcFile);
  113 + const res = await postOrderErpOrderStagesUpload({
  114 + data: formData,
  115 + headers: {
  116 + 'Content-Type':
  117 + 'multipart/form-data; boundary=----WebKitFormBoundarynl6gT1BKdPWIejNq',
  118 + },
  119 + });
  120 + const url = res.data;
  121 + form.setFieldValue('attachments', url);
  122 + } else {
  123 + form.setFieldValue('attachments', null);
  124 + }
  125 + }}
  126 + max={1}
  127 + />
  128 + <ProFormText name="attachments" hidden></ProFormText>
  129 + </DrawerForm>
  130 + );
  131 +};
src/pages/procure/index.less 0 → 100644
  1 +.prepaid-index td {
  2 + font-family: 'San Francisco', 'Helvetica Neue', Helvetica, Arial,
  3 + 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', 'Heiti SC',
  4 + 'WenQuanYi Micro Hei', sans-serif;
  5 + font-size: 13px;
  6 +}
src/pages/procure/index.tsx 0 → 100644
  1 +import AddDrawer from '@/pages/procure/components/AddDrawer';
  2 +import {
  3 + postProcureReturnBillPage,
  4 + postServiceConstProcureReturnBills,
  5 + postServiceConstStores,
  6 +} from '@/services';
  7 +import { enumToSelect } from '@/utils';
  8 +import { EllipsisOutlined } from '@ant-design/icons';
  9 +import type { ActionType, ProColumns } from '@ant-design/pro-components';
  10 +import { ProTable, TableDropdown } from '@ant-design/pro-components';
  11 +import { Button, Dropdown } from 'antd';
  12 +import { useRef } from 'react';
  13 +export const waitTimePromise = async (time: number = 100) => {
  14 + return new Promise((resolve) => {
  15 + setTimeout(() => {
  16 + resolve(true);
  17 + }, time);
  18 + });
  19 +};
  20 +
  21 +export const waitTime = async (time: number = 100) => {
  22 + await waitTimePromise(time);
  23 +};
  24 +
  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);
  139 + },
  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);
  150 + },
  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 + }),
  167 + },
  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',
  271 + },
  272 + ],
  273 + }}
  274 + >
  275 + <Button>
  276 + <EllipsisOutlined />
  277 + </Button>
  278 + </Dropdown>,
  279 + ]}
  280 + />
  281 + );
  282 +};
src/services/definition.ts
@@ -71,6 +71,14 @@ export type ModelAndViewStatus = @@ -71,6 +71,14 @@ export type ModelAndViewStatus =
71 | '509 BANDWIDTH_LIMIT_EXCEEDED' 71 | '509 BANDWIDTH_LIMIT_EXCEEDED'
72 | '510 NOT_EXTENDED' 72 | '510 NOT_EXTENDED'
73 | '511 NETWORK_AUTHENTICATION_REQUIRED'; 73 | '511 NETWORK_AUTHENTICATION_REQUIRED';
  74 +export type ProcureReturnBillDtoSendStore =
  75 + | 'DALANG_WAREHOUSE'
  76 + | 'HOUJIE_WAREHOUSE';
  77 +export type ProcureReturnBillDtoStatus =
  78 + | 'AUDIT_NOTPASS'
  79 + | 'WAIT_SEND'
  80 + | 'SENDED'
  81 + | 'WAIT_AUDIT';
74 export interface AdminAuthRoleVO { 82 export interface AdminAuthRoleVO {
75 menuIds?: Array<number>; 83 menuIds?: Array<number>;
76 /** @format int64 */ 84 /** @format int64 */
@@ -863,6 +871,7 @@ export interface ApplyInvoiceDTO { @@ -863,6 +871,7 @@ export interface ApplyInvoiceDTO {
863 * 接收邮箱地址 871 * 接收邮箱地址
864 */ 872 */
865 receiveEmail?: string; 873 receiveEmail?: string;
  874 + reissueInvoiceNumbers?: Array<string>;
866 reissueInvoiceRecordIds?: Array<number>; 875 reissueInvoiceRecordIds?: Array<number>;
867 /** 876 /**
868 * @description 877 * @description
@@ -1600,6 +1609,7 @@ export interface InvoiceRecordDTO { @@ -1600,6 +1609,7 @@ export interface InvoiceRecordDTO {
1600 * 接收邮箱地址 1609 * 接收邮箱地址
1601 */ 1610 */
1602 receiveEmail?: string; 1611 receiveEmail?: string;
  1612 + reissueInvoiceNumbers?: Array<string>;
1603 reissueInvoiceRecordIds?: Array<number>; 1613 reissueInvoiceRecordIds?: Array<number>;
1604 /** 1614 /**
1605 * @description 1615 * @description
@@ -2513,6 +2523,84 @@ export interface ProcurePrintDto { @@ -2513,6 +2523,84 @@ export interface ProcurePrintDto {
2513 ids?: Array<number>; 2523 ids?: Array<number>;
2514 } 2524 }
2515 2525
  2526 +export interface ProcureReturnBillDto {
  2527 + /**
  2528 + * @description
  2529 + * 收货地址
  2530 + */
  2531 + address?: string;
  2532 + /**
  2533 + * @description
  2534 + * 附件
  2535 + */
  2536 + attachments?: string;
  2537 + /**
  2538 + * @description
  2539 + * 收获人
  2540 + */
  2541 + consignee?: string;
  2542 + createByName?: string;
  2543 + /** @format date-time */
  2544 + createTime?: string;
  2545 + /**
  2546 + * @description
  2547 + * 订单编号
  2548 + * @format int64
  2549 + */
  2550 + id?: number;
  2551 + logicDelete?: boolean;
  2552 + /**
  2553 + * @description
  2554 + * 备注
  2555 + */
  2556 + notes?: string;
  2557 + paths?: Array<string>;
  2558 + /**
  2559 + * @description
  2560 + * 联系电话
  2561 + */
  2562 + phoneNumber?: string;
  2563 + /**
  2564 + * @description
  2565 + * 产品明细
  2566 + */
  2567 + productDetail?: string;
  2568 + /**
  2569 + * @description
  2570 + * 发货信息
  2571 + */
  2572 + sendInfo?: string;
  2573 + /**
  2574 + * @description
  2575 + * 发货仓库
  2576 + */
  2577 + sendStore?: ProcureReturnBillDtoSendStore;
  2578 + /**
  2579 + * @description
  2580 + * 发货仓库
  2581 + */
  2582 + sendStoreText?: string;
  2583 + /**
  2584 + * @description
  2585 + * 订单状态
  2586 + */
  2587 + status?: ProcureReturnBillDtoStatus;
  2588 + /**
  2589 + * @description
  2590 + * 订单状态
  2591 + * @format int32
  2592 + */
  2593 + statusCode?: number;
  2594 + /**
  2595 + * @description
  2596 + * 订单状态
  2597 + */
  2598 + statusText?: string;
  2599 + updateByName?: string;
  2600 + /** @format date-time */
  2601 + updateTime?: string;
  2602 +}
  2603 +
2516 export interface ProductInformationDto { 2604 export interface ProductInformationDto {
2517 /** 2605 /**
2518 * @description 2606 * @description
@@ -2899,6 +2987,32 @@ export interface QueryMainOrderDto { @@ -2899,6 +2987,32 @@ export interface QueryMainOrderDto {
2899 customerName?: string; 2987 customerName?: string;
2900 } 2988 }
2901 2989
  2990 +export interface QueryProcureReturnBillDto {
  2991 + consigneeLike?: string;
  2992 + createByNameLike?: string;
  2993 + /** @format date-time */
  2994 + createTimeGe?: string;
  2995 + /** @format date-time */
  2996 + createTimeLe?: string;
  2997 + /** @format int32 */
  2998 + current?: number;
  2999 + /** @format int32 */
  3000 + end?: number;
  3001 + /** @format int64 */
  3002 + id?: number;
  3003 + /** @format int32 */
  3004 + pageSize?: number;
  3005 + phoneNumberLike?: string;
  3006 + /** @format int32 */
  3007 + sendStore?: number;
  3008 + /** @format int32 */
  3009 + start?: number;
  3010 + /** @format int32 */
  3011 + status?: number;
  3012 + /** @format int32 */
  3013 + total?: number;
  3014 +}
  3015 +
2902 export interface QueryReportFormsDto { 3016 export interface QueryReportFormsDto {
2903 /** 3017 /**
2904 * @description 3018 * @description
src/services/request.ts
@@ -63,7 +63,6 @@ import type { @@ -63,7 +63,6 @@ import type {
63 MaterialUnitListRes, 63 MaterialUnitListRes,
64 MeasureUnitListRes, 64 MeasureUnitListRes,
65 MessageQueryDTO, 65 MessageQueryDTO,
66 - ModelAndView,  
67 OrderAddVO, 66 OrderAddVO,
68 OrderAuditLogQueryVO, 67 OrderAuditLogQueryVO,
69 OrderBaseInfoQueryVO, 68 OrderBaseInfoQueryVO,
@@ -83,6 +82,7 @@ import type { @@ -83,6 +82,7 @@ import type {
83 ProcureConvertProcureDto, 82 ProcureConvertProcureDto,
84 ProcureOrderDto, 83 ProcureOrderDto,
85 ProcurePrintDto, 84 ProcurePrintDto,
  85 + ProcureReturnBillDto,
86 ProductInformationDto, 86 ProductInformationDto,
87 QueryAfterSalesInfoSnapshotDto, 87 QueryAfterSalesInfoSnapshotDto,
88 QueryAnnexDto, 88 QueryAnnexDto,
@@ -95,6 +95,7 @@ import type { @@ -95,6 +95,7 @@ import type {
95 QueryInvoiceProjectDto, 95 QueryInvoiceProjectDto,
96 QueryInvoiceRecordDto, 96 QueryInvoiceRecordDto,
97 QueryMainOrderDto, 97 QueryMainOrderDto,
  98 + QueryProcureReturnBillDto,
98 QueryReportFormsDto, 99 QueryReportFormsDto,
99 ReissueInvoiceDto, 100 ReissueInvoiceDto,
100 ResearchGroupAddRequest, 101 ResearchGroupAddRequest,
@@ -3226,7 +3227,9 @@ export interface GetErrorResponse { @@ -3226,7 +3227,9 @@ export interface GetErrorResponse {
3226 * @description 3227 * @description
3227 * OK 3228 * OK
3228 */ 3229 */
3229 - 200: ModelAndView; 3230 + 200: {
  3231 + [propertyName: string]: any;
  3232 + };
3230 /** 3233 /**
3231 * @description 3234 * @description
3232 * Unauthorized 3235 * Unauthorized
@@ -3247,9 +3250,9 @@ export interface GetErrorResponse { @@ -3247,9 +3250,9 @@ export interface GetErrorResponse {
3247 export type GetErrorResponseSuccess = GetErrorResponse[200]; 3250 export type GetErrorResponseSuccess = GetErrorResponse[200];
3248 /** 3251 /**
3249 * @description 3252 * @description
3250 - * errorHtml 3253 + * error
3251 * @tags basic-error-controller 3254 * @tags basic-error-controller
3252 - * @produces text/html 3255 + * @produces *
3253 */ 3256 */
3254 export const getError = /* #__PURE__ */ (() => { 3257 export const getError = /* #__PURE__ */ (() => {
3255 const method = 'get'; 3258 const method = 'get';
@@ -3273,7 +3276,9 @@ export interface PutErrorResponse { @@ -3273,7 +3276,9 @@ export interface PutErrorResponse {
3273 * @description 3276 * @description
3274 * OK 3277 * OK
3275 */ 3278 */
3276 - 200: ModelAndView; 3279 + 200: {
  3280 + [propertyName: string]: any;
  3281 + };
3277 /** 3282 /**
3278 * @description 3283 * @description
3279 * Created 3284 * Created
@@ -3299,9 +3304,9 @@ export interface PutErrorResponse { @@ -3299,9 +3304,9 @@ export interface PutErrorResponse {
3299 export type PutErrorResponseSuccess = PutErrorResponse[200]; 3304 export type PutErrorResponseSuccess = PutErrorResponse[200];
3300 /** 3305 /**
3301 * @description 3306 * @description
3302 - * errorHtml 3307 + * error
3303 * @tags basic-error-controller 3308 * @tags basic-error-controller
3304 - * @produces text/html 3309 + * @produces *
3305 * @consumes application/json 3310 * @consumes application/json
3306 */ 3311 */
3307 export const putError = /* #__PURE__ */ (() => { 3312 export const putError = /* #__PURE__ */ (() => {
@@ -3326,7 +3331,9 @@ export interface PostErrorResponse { @@ -3326,7 +3331,9 @@ export interface PostErrorResponse {
3326 * @description 3331 * @description
3327 * OK 3332 * OK
3328 */ 3333 */
3329 - 200: ModelAndView; 3334 + 200: {
  3335 + [propertyName: string]: any;
  3336 + };
3330 /** 3337 /**
3331 * @description 3338 * @description
3332 * Created 3339 * Created
@@ -3352,9 +3359,9 @@ export interface PostErrorResponse { @@ -3352,9 +3359,9 @@ export interface PostErrorResponse {
3352 export type PostErrorResponseSuccess = PostErrorResponse[200]; 3359 export type PostErrorResponseSuccess = PostErrorResponse[200];
3353 /** 3360 /**
3354 * @description 3361 * @description
3355 - * errorHtml 3362 + * error
3356 * @tags basic-error-controller 3363 * @tags basic-error-controller
3357 - * @produces text/html 3364 + * @produces *
3358 * @consumes application/json 3365 * @consumes application/json
3359 */ 3366 */
3360 export const postError = /* #__PURE__ */ (() => { 3367 export const postError = /* #__PURE__ */ (() => {
@@ -3379,7 +3386,9 @@ export interface DeleteErrorResponse { @@ -3379,7 +3386,9 @@ export interface DeleteErrorResponse {
3379 * @description 3386 * @description
3380 * OK 3387 * OK
3381 */ 3388 */
3382 - 200: ModelAndView; 3389 + 200: {
  3390 + [propertyName: string]: any;
  3391 + };
3383 /** 3392 /**
3384 * @description 3393 * @description
3385 * No Content 3394 * No Content
@@ -3400,9 +3409,9 @@ export interface DeleteErrorResponse { @@ -3400,9 +3409,9 @@ export interface DeleteErrorResponse {
3400 export type DeleteErrorResponseSuccess = DeleteErrorResponse[200]; 3409 export type DeleteErrorResponseSuccess = DeleteErrorResponse[200];
3401 /** 3410 /**
3402 * @description 3411 * @description
3403 - * errorHtml 3412 + * error
3404 * @tags basic-error-controller 3413 * @tags basic-error-controller
3405 - * @produces text/html 3414 + * @produces *
3406 */ 3415 */
3407 export const deleteError = /* #__PURE__ */ (() => { 3416 export const deleteError = /* #__PURE__ */ (() => {
3408 const method = 'delete'; 3417 const method = 'delete';
@@ -3426,7 +3435,9 @@ export interface OptionsErrorResponse { @@ -3426,7 +3435,9 @@ export interface OptionsErrorResponse {
3426 * @description 3435 * @description
3427 * OK 3436 * OK
3428 */ 3437 */
3429 - 200: ModelAndView; 3438 + 200: {
  3439 + [propertyName: string]: any;
  3440 + };
3430 /** 3441 /**
3431 * @description 3442 * @description
3432 * No Content 3443 * No Content
@@ -3447,9 +3458,9 @@ export interface OptionsErrorResponse { @@ -3447,9 +3458,9 @@ export interface OptionsErrorResponse {
3447 export type OptionsErrorResponseSuccess = OptionsErrorResponse[200]; 3458 export type OptionsErrorResponseSuccess = OptionsErrorResponse[200];
3448 /** 3459 /**
3449 * @description 3460 * @description
3450 - * errorHtml 3461 + * error
3451 * @tags basic-error-controller 3462 * @tags basic-error-controller
3452 - * @produces text/html 3463 + * @produces *
3453 * @consumes application/json 3464 * @consumes application/json
3454 */ 3465 */
3455 export const optionsError = /* #__PURE__ */ (() => { 3466 export const optionsError = /* #__PURE__ */ (() => {
@@ -3474,7 +3485,9 @@ export interface HeadErrorResponse { @@ -3474,7 +3485,9 @@ export interface HeadErrorResponse {
3474 * @description 3485 * @description
3475 * OK 3486 * OK
3476 */ 3487 */
3477 - 200: ModelAndView; 3488 + 200: {
  3489 + [propertyName: string]: any;
  3490 + };
3478 /** 3491 /**
3479 * @description 3492 * @description
3480 * No Content 3493 * No Content
@@ -3495,9 +3508,9 @@ export interface HeadErrorResponse { @@ -3495,9 +3508,9 @@ export interface HeadErrorResponse {
3495 export type HeadErrorResponseSuccess = HeadErrorResponse[200]; 3508 export type HeadErrorResponseSuccess = HeadErrorResponse[200];
3496 /** 3509 /**
3497 * @description 3510 * @description
3498 - * errorHtml 3511 + * error
3499 * @tags basic-error-controller 3512 * @tags basic-error-controller
3500 - * @produces text/html 3513 + * @produces *
3501 * @consumes application/json 3514 * @consumes application/json
3502 */ 3515 */
3503 export const headError = /* #__PURE__ */ (() => { 3516 export const headError = /* #__PURE__ */ (() => {
@@ -3522,7 +3535,9 @@ export interface PatchErrorResponse { @@ -3522,7 +3535,9 @@ export interface PatchErrorResponse {
3522 * @description 3535 * @description
3523 * OK 3536 * OK
3524 */ 3537 */
3525 - 200: ModelAndView; 3538 + 200: {
  3539 + [propertyName: string]: any;
  3540 + };
3526 /** 3541 /**
3527 * @description 3542 * @description
3528 * No Content 3543 * No Content
@@ -3543,9 +3558,9 @@ export interface PatchErrorResponse { @@ -3543,9 +3558,9 @@ export interface PatchErrorResponse {
3543 export type PatchErrorResponseSuccess = PatchErrorResponse[200]; 3558 export type PatchErrorResponseSuccess = PatchErrorResponse[200];
3544 /** 3559 /**
3545 * @description 3560 * @description
3546 - * errorHtml 3561 + * error
3547 * @tags basic-error-controller 3562 * @tags basic-error-controller
3548 - * @produces text/html 3563 + * @produces *
3549 * @consumes application/json 3564 * @consumes application/json
3550 */ 3565 */
3551 export const patchError = /* #__PURE__ */ (() => { 3566 export const patchError = /* #__PURE__ */ (() => {
@@ -10523,6 +10538,219 @@ export const postPrepaidUpdate = /* #__PURE__ */ (() =&gt; { @@ -10523,6 +10538,219 @@ export const postPrepaidUpdate = /* #__PURE__ */ (() =&gt; {
10523 return request; 10538 return request;
10524 })(); 10539 })();
10525 10540
  10541 +/** @description request parameter type for postProcureReturnBillAdd */
  10542 +export interface PostProcureReturnBillAddOption {
  10543 + /**
  10544 + * @description
  10545 + * dto
  10546 + */
  10547 + body: {
  10548 + /**
  10549 + @description
  10550 + dto */
  10551 + dto: ProcureReturnBillDto;
  10552 + };
  10553 +}
  10554 +
  10555 +/** @description response type for postProcureReturnBillAdd */
  10556 +export interface PostProcureReturnBillAddResponse {
  10557 + /**
  10558 + * @description
  10559 + * OK
  10560 + */
  10561 + 200: ServerResult;
  10562 + /**
  10563 + * @description
  10564 + * Created
  10565 + */
  10566 + 201: any;
  10567 + /**
  10568 + * @description
  10569 + * Unauthorized
  10570 + */
  10571 + 401: any;
  10572 + /**
  10573 + * @description
  10574 + * Forbidden
  10575 + */
  10576 + 403: any;
  10577 + /**
  10578 + * @description
  10579 + * Not Found
  10580 + */
  10581 + 404: any;
  10582 +}
  10583 +
  10584 +export type PostProcureReturnBillAddResponseSuccess =
  10585 + PostProcureReturnBillAddResponse[200];
  10586 +/**
  10587 + * @description
  10588 + * 添加
  10589 + * @tags procure-return-bill-controller
  10590 + * @produces *
  10591 + * @consumes application/json
  10592 + */
  10593 +export const postProcureReturnBillAdd = /* #__PURE__ */ (() => {
  10594 + const method = 'post';
  10595 + const url = '/procureReturnBill/add';
  10596 + function request(
  10597 + option: PostProcureReturnBillAddOption,
  10598 + ): Promise<PostProcureReturnBillAddResponseSuccess> {
  10599 + return requester(request.url, {
  10600 + method: request.method,
  10601 + ...option,
  10602 + }) as unknown as Promise<PostProcureReturnBillAddResponseSuccess>;
  10603 + }
  10604 +
  10605 + /** http method */
  10606 + request.method = method;
  10607 + /** request url */
  10608 + request.url = url;
  10609 + return request;
  10610 +})();
  10611 +
  10612 +/** @description request parameter type for postProcureReturnBillModify */
  10613 +export interface PostProcureReturnBillModifyOption {
  10614 + /**
  10615 + * @description
  10616 + * dto
  10617 + */
  10618 + body: {
  10619 + /**
  10620 + @description
  10621 + dto */
  10622 + dto: ProcureReturnBillDto;
  10623 + };
  10624 +}
  10625 +
  10626 +/** @description response type for postProcureReturnBillModify */
  10627 +export interface PostProcureReturnBillModifyResponse {
  10628 + /**
  10629 + * @description
  10630 + * OK
  10631 + */
  10632 + 200: ServerResult;
  10633 + /**
  10634 + * @description
  10635 + * Created
  10636 + */
  10637 + 201: any;
  10638 + /**
  10639 + * @description
  10640 + * Unauthorized
  10641 + */
  10642 + 401: any;
  10643 + /**
  10644 + * @description
  10645 + * Forbidden
  10646 + */
  10647 + 403: any;
  10648 + /**
  10649 + * @description
  10650 + * Not Found
  10651 + */
  10652 + 404: any;
  10653 +}
  10654 +
  10655 +export type PostProcureReturnBillModifyResponseSuccess =
  10656 + PostProcureReturnBillModifyResponse[200];
  10657 +/**
  10658 + * @description
  10659 + * 修改
  10660 + * @tags procure-return-bill-controller
  10661 + * @produces *
  10662 + * @consumes application/json
  10663 + */
  10664 +export const postProcureReturnBillModify = /* #__PURE__ */ (() => {
  10665 + const method = 'post';
  10666 + const url = '/procureReturnBill/modify';
  10667 + function request(
  10668 + option: PostProcureReturnBillModifyOption,
  10669 + ): Promise<PostProcureReturnBillModifyResponseSuccess> {
  10670 + return requester(request.url, {
  10671 + method: request.method,
  10672 + ...option,
  10673 + }) as unknown as Promise<PostProcureReturnBillModifyResponseSuccess>;
  10674 + }
  10675 +
  10676 + /** http method */
  10677 + request.method = method;
  10678 + /** request url */
  10679 + request.url = url;
  10680 + return request;
  10681 +})();
  10682 +
  10683 +/** @description request parameter type for postProcureReturnBillPage */
  10684 +export interface PostProcureReturnBillPageOption {
  10685 + /**
  10686 + * @description
  10687 + * dto
  10688 + */
  10689 + body: {
  10690 + /**
  10691 + @description
  10692 + dto */
  10693 + dto: QueryProcureReturnBillDto;
  10694 + };
  10695 +}
  10696 +
  10697 +/** @description response type for postProcureReturnBillPage */
  10698 +export interface PostProcureReturnBillPageResponse {
  10699 + /**
  10700 + * @description
  10701 + * OK
  10702 + */
  10703 + 200: ServerResult;
  10704 + /**
  10705 + * @description
  10706 + * Created
  10707 + */
  10708 + 201: any;
  10709 + /**
  10710 + * @description
  10711 + * Unauthorized
  10712 + */
  10713 + 401: any;
  10714 + /**
  10715 + * @description
  10716 + * Forbidden
  10717 + */
  10718 + 403: any;
  10719 + /**
  10720 + * @description
  10721 + * Not Found
  10722 + */
  10723 + 404: any;
  10724 +}
  10725 +
  10726 +export type PostProcureReturnBillPageResponseSuccess =
  10727 + PostProcureReturnBillPageResponse[200];
  10728 +/**
  10729 + * @description
  10730 + * 分页查询
  10731 + * @tags procure-return-bill-controller
  10732 + * @produces *
  10733 + * @consumes application/json
  10734 + */
  10735 +export const postProcureReturnBillPage = /* #__PURE__ */ (() => {
  10736 + const method = 'post';
  10737 + const url = '/procureReturnBill/page';
  10738 + function request(
  10739 + option: PostProcureReturnBillPageOption,
  10740 + ): Promise<PostProcureReturnBillPageResponseSuccess> {
  10741 + return requester(request.url, {
  10742 + method: request.method,
  10743 + ...option,
  10744 + }) as unknown as Promise<PostProcureReturnBillPageResponseSuccess>;
  10745 + }
  10746 +
  10747 + /** http method */
  10748 + request.method = method;
  10749 + /** request url */
  10750 + request.url = url;
  10751 + return request;
  10752 +})();
  10753 +
10526 /** @description request parameter type for postResearchGroupMemberRequestsAdd */ 10754 /** @description request parameter type for postResearchGroupMemberRequestsAdd */
10527 export interface PostResearchGroupMemberRequestsAddOption { 10755 export interface PostResearchGroupMemberRequestsAddOption {
10528 /** 10756 /**
@@ -12440,6 +12668,114 @@ export const postServiceConstNotCanModifyInvoiceRecordStatus = @@ -12440,6 +12668,114 @@ export const postServiceConstNotCanModifyInvoiceRecordStatus =
12440 return request; 12668 return request;
12441 })(); 12669 })();
12442 12670
  12671 +/** @description response type for postServiceConstProcureReturnBills */
  12672 +export interface PostServiceConstProcureReturnBillsResponse {
  12673 + /**
  12674 + * @description
  12675 + * OK
  12676 + */
  12677 + 200: ServerResult;
  12678 + /**
  12679 + * @description
  12680 + * Created
  12681 + */
  12682 + 201: any;
  12683 + /**
  12684 + * @description
  12685 + * Unauthorized
  12686 + */
  12687 + 401: any;
  12688 + /**
  12689 + * @description
  12690 + * Forbidden
  12691 + */
  12692 + 403: any;
  12693 + /**
  12694 + * @description
  12695 + * Not Found
  12696 + */
  12697 + 404: any;
  12698 +}
  12699 +
  12700 +export type PostServiceConstProcureReturnBillsResponseSuccess =
  12701 + PostServiceConstProcureReturnBillsResponse[200];
  12702 +/**
  12703 + * @description
  12704 + * 获取仓库
  12705 + * @tags front-const-controller
  12706 + * @produces *
  12707 + * @consumes application/json
  12708 + */
  12709 +export const postServiceConstProcureReturnBills = /* #__PURE__ */ (() => {
  12710 + const method = 'post';
  12711 + const url = '/service/const/procureReturnBills';
  12712 + function request(): Promise<PostServiceConstProcureReturnBillsResponseSuccess> {
  12713 + return requester(request.url, {
  12714 + method: request.method,
  12715 + }) as unknown as Promise<PostServiceConstProcureReturnBillsResponseSuccess>;
  12716 + }
  12717 +
  12718 + /** http method */
  12719 + request.method = method;
  12720 + /** request url */
  12721 + request.url = url;
  12722 + return request;
  12723 +})();
  12724 +
  12725 +/** @description response type for postServiceConstStores */
  12726 +export interface PostServiceConstStoresResponse {
  12727 + /**
  12728 + * @description
  12729 + * OK
  12730 + */
  12731 + 200: ServerResult;
  12732 + /**
  12733 + * @description
  12734 + * Created
  12735 + */
  12736 + 201: any;
  12737 + /**
  12738 + * @description
  12739 + * Unauthorized
  12740 + */
  12741 + 401: any;
  12742 + /**
  12743 + * @description
  12744 + * Forbidden
  12745 + */
  12746 + 403: any;
  12747 + /**
  12748 + * @description
  12749 + * Not Found
  12750 + */
  12751 + 404: any;
  12752 +}
  12753 +
  12754 +export type PostServiceConstStoresResponseSuccess =
  12755 + PostServiceConstStoresResponse[200];
  12756 +/**
  12757 + * @description
  12758 + * 获取仓库
  12759 + * @tags front-const-controller
  12760 + * @produces *
  12761 + * @consumes application/json
  12762 + */
  12763 +export const postServiceConstStores = /* #__PURE__ */ (() => {
  12764 + const method = 'post';
  12765 + const url = '/service/const/stores';
  12766 + function request(): Promise<PostServiceConstStoresResponseSuccess> {
  12767 + return requester(request.url, {
  12768 + method: request.method,
  12769 + }) as unknown as Promise<PostServiceConstStoresResponseSuccess>;
  12770 + }
  12771 +
  12772 + /** http method */
  12773 + request.method = method;
  12774 + /** request url */
  12775 + request.url = url;
  12776 + return request;
  12777 +})();
  12778 +
12443 /** @description response type for postServiceConstTradeStatus */ 12779 /** @description response type for postServiceConstTradeStatus */
12444 export interface PostServiceConstTradeStatusResponse { 12780 export interface PostServiceConstTradeStatusResponse {
12445 /** 12781 /**