Commit a79e7fb648b89d9df162e4ae64cf80f3e4e23e28

Authored by zhongnanhuang
1 parent 979708ac

feat: update 财务合并开票

src/pages/Order/components/FinancialEditDrawer.tsx
... ... @@ -26,6 +26,16 @@ export default ({ mainOrder, subOrders, setVisible, isMainOrder, onClose }) => {
26 26 subIds: [];
27 27 financialReceiptIssuanceTime: string;
28 28 }>();
  29 +
  30 + //回显开收据时间和收款时间
  31 + if (!isMainOrder) {
  32 + form.setFieldValue('collectMoneyTime', subOrders[0].collectMoneyTime);
  33 + form.setFieldValue(
  34 + 'financialReceiptIssuanceTime',
  35 + subOrders[0].financialReceiptIssuanceTime,
  36 + );
  37 + }
  38 +
29 39 return (
30 40 <DrawerForm<{
31 41 collectMoneyTime: string;
... ... @@ -49,12 +59,18 @@ export default ({ mainOrder, subOrders, setVisible, isMainOrder, onClose }) =&gt; {
49 59 }}
50 60 submitTimeout={2000}
51 61 onFinish={async (values) => {
  62 + let body = {
  63 + ...values,
  64 + mainOrderId: mainOrderId,
  65 + subIds: subOrderIds,
  66 + };
  67 +
  68 + if (!isMainOrder) {
  69 + body.invoicingStatus = 'UN_INVOICE';
  70 + }
  71 +
52 72 let res = await postServiceOrderNoNeedInvoicingEdit({
53   - data: {
54   - ...values,
55   - mainOrderId: mainOrderId,
56   - subIds: subOrderIds,
57   - },
  73 + data: body,
58 74 });
59 75 if (res.result === RESPONSE_CODE.SUCCESS) {
60 76 message.success(res.message);
... ... @@ -115,24 +131,24 @@ export default ({ mainOrder, subOrders, setVisible, isMainOrder, onClose }) =&gt; {
115 131 width="lg"
116 132 name="financialReceiptIssuanceTime"
117 133 label="开收据时间"
118   - rules={[
119   - {
120   - required: !isMainOrder && invoicingStatus === 'UN_INVOICE',
121   - message: '开收据时间必填',
122   - },
123   - ]}
  134 + // rules={[
  135 + // {
  136 + // required: !isMainOrder && invoicingStatus === 'UN_INVOICE',
  137 + // message: '开收据时间必填',
  138 + // },
  139 + // ]}
124 140 />
125 141 <ProFormDatePicker
126 142 key="collectMoneyTime"
127 143 width="lg"
128 144 name="collectMoneyTime"
129 145 label="收款时间"
130   - rules={[
131   - {
132   - required: !isMainOrder && invoicingStatus === 'UN_INVOICE',
133   - message: '收款时间必填',
134   - },
135   - ]}
  146 + // rules={[
  147 + // {
  148 + // required: !isMainOrder && invoicingStatus === 'UN_INVOICE',
  149 + // message: '收款时间必填',
  150 + // },
  151 + // ]}
136 152 />
137 153 </DrawerForm>
138 154 );
... ...
src/pages/Order/components/FinancialMergeDrawer.tsx 0 → 100644
  1 +// import { PlusOutlined } from '@ant-design/icons';
  2 +import { RESPONSE_CODE } from '@/constants/enum';
  3 +import { postServiceOrderMergeInvoicing } from '@/services';
  4 +import {
  5 + DrawerForm,
  6 + ProFormDatePicker,
  7 + ProFormSelect,
  8 + ProFormText,
  9 + ProFormTextArea,
  10 +} from '@ant-design/pro-components';
  11 +import { Form, message } from 'antd';
  12 +
  13 +export default ({ dataList, setVisible, onClose }) => {
  14 + let mainOrderIds = dataList?.map((item) => {
  15 + return item.id;
  16 + });
  17 + let firstMainOrder = dataList[0];
  18 + let bank = firstMainOrder?.bank;
  19 + let bankAccountNumber = firstMainOrder?.bankAccountNumber;
  20 + let invoiceIdentificationNumber = firstMainOrder?.invoiceIdentificationNumber;
  21 +
  22 + const [form] = Form.useForm<{
  23 + invoicingTime: string;
  24 + financialReceiptIssuanceTime: string;
  25 + invoicingNotes: string;
  26 + afterInvoicingStatus: string;
  27 + collectMoneyTime: string;
  28 + }>();
  29 + return (
  30 + <DrawerForm
  31 + open
  32 + title="合并开票"
  33 + resize={{
  34 + onResize() {
  35 + console.log('resize!');
  36 + },
  37 + maxWidth: window.innerWidth * 0.8,
  38 + minWidth: 400,
  39 + }}
  40 + form={form}
  41 + autoFocusFirstInput
  42 + drawerProps={{
  43 + destroyOnClose: true,
  44 + }}
  45 + submitTimeout={2000}
  46 + onFinish={async (values) => {
  47 + let res = await postServiceOrderMergeInvoicing({
  48 + data: {
  49 + ...values,
  50 + mainOrderIds: mainOrderIds,
  51 + },
  52 + });
  53 +
  54 + if (res.result === RESPONSE_CODE.SUCCESS) {
  55 + message.success(res.message);
  56 + onClose();
  57 + }
  58 + }}
  59 + onOpenChange={(val) => {
  60 + return !val && setVisible();
  61 + }}
  62 + >
  63 + <ProFormText
  64 + width="lg"
  65 + name="invoiceIdentificationNumber"
  66 + label="开票信息"
  67 + placeholder="请输入开票信息"
  68 + initialValue={invoiceIdentificationNumber}
  69 + disabled
  70 + />
  71 + <ProFormText
  72 + width="lg"
  73 + name="bank"
  74 + label="开户银行"
  75 + placeholder="请输入开户银行"
  76 + initialValue={bank}
  77 + disabled
  78 + />
  79 + <ProFormText
  80 + width="lg"
  81 + name="bankAccountNumber"
  82 + label="开户银行账号"
  83 + placeholder="请输入开户银行账号"
  84 + initialValue={bankAccountNumber}
  85 + disabled
  86 + />
  87 +
  88 + <ProFormDatePicker
  89 + key="invoicingTime"
  90 + width="lg"
  91 + name="invoicingTime"
  92 + label="开票时间"
  93 + rules={[{ required: true, message: '这是必填项' }]}
  94 + />
  95 + <ProFormDatePicker
  96 + key="financialReceiptIssuanceTime"
  97 + width="lg"
  98 + name="financialReceiptIssuanceTime"
  99 + label="开收据时间"
  100 + />
  101 + <ProFormDatePicker
  102 + key="collectMoneyTime"
  103 + width="lg"
  104 + name="collectMoneyTime"
  105 + label="收款时间"
  106 + />
  107 +
  108 + <ProFormSelect
  109 + placeholder="是否完全开票"
  110 + name="afterInvoicingStatus"
  111 + width="lg"
  112 + label="是否完全开票"
  113 + options={[
  114 + { label: '完全开票', value: 'COMPLETE_INVOICING' },
  115 + { label: '部分开票', value: 'PARTIAL_INVOICING' },
  116 + ]}
  117 + initialValue={'COMPLETE_INVOICING'}
  118 + disabled
  119 + />
  120 + <ProFormTextArea width="lg" name="invoicingNotes" label="备注" />
  121 + </DrawerForm>
  122 + );
  123 +};
... ...
src/pages/Order/components/FinancialReceiptsModal.tsx
1   -import { ModalForm } from '@ant-design/pro-components';
  1 +import {
  2 + EditableProTable,
  3 + ModalForm,
  4 + ProColumns,
  5 + ProForm,
  6 +} from '@ant-design/pro-components';
2 7 import { Form } from 'antd';
  8 +import { useState } from 'react';
3 9  
4 10 // import { cloneDeep } from 'lodash';
5 11 export default ({ setVisible, onClose }) => {
6 12 const [form] = Form.useForm<{ name: string; company: string }>();
7   -
  13 + type DataSourceType = {
  14 + id: React.Key;
  15 + receiptsType?: string;
  16 + receiptsPrice?: number;
  17 + receiptsTime?: string;
  18 + notes?: string;
  19 + };
  20 + const defaultData: DataSourceType[] = [
  21 + {
  22 + id: 1,
  23 + receiptsType: '预付款',
  24 + receiptsPrice: 1234,
  25 + receiptsTime: '2023-01-02',
  26 + notes: '备注',
  27 + },
  28 + {
  29 + id: 2,
  30 + receiptsType: '发货款',
  31 + receiptsPrice: 1234,
  32 + receiptsTime: '2023-01-02',
  33 + notes: '备注',
  34 + },
  35 + {
  36 + id: 3,
  37 + receiptsType: '验收款',
  38 + receiptsPrice: 1234,
  39 + receiptsTime: '2023-01-02',
  40 + notes: '备注',
  41 + },
  42 + {
  43 + id: 4,
  44 + receiptsType: '尾款',
  45 + receiptsPrice: 1234,
  46 + receiptsTime: '2023-01-02',
  47 + notes: '备注',
  48 + },
  49 + ];
  50 + const [editableKeys, setEditableRowKeys] = useState<React.Key[]>(() =>
  51 + // defaultData.map((item) => item.id),
  52 + [3, 4],
  53 + );
  54 + const columns: ProColumns<DataSourceType>[] = [
  55 + {
  56 + title: '款项',
  57 + dataIndex: 'receiptsType',
  58 + editable: false,
  59 + width: '10%',
  60 + },
  61 + {
  62 + title: '已收金额',
  63 + dataIndex: 'receiptsPrice',
  64 + valueType: 'digit',
  65 + width: '15%',
  66 + },
  67 + {
  68 + title: '收款时间',
  69 + dataIndex: 'receiptsTime',
  70 + valueType: 'dateTime',
  71 + width: '25%',
  72 + },
  73 + {
  74 + title: '备注',
  75 + dataIndex: 'receiptsNotes',
  76 + },
  77 + ];
8 78 return (
9 79 <>
10 80 <ModalForm<{
11 81 name: string;
12 82 company: string;
13 83 }>
14   - width={500}
  84 + width={1100}
15 85 open
16 86 title="收款记录"
17 87 form={form}
18 88 autoFocusFirstInput
19 89 modalProps={{
20   - okText: '通过',
  90 + okText: '保存',
21 91 cancelText: '取消',
22 92 destroyOnClose: true,
23 93 onCancel: () => {
... ... @@ -29,7 +99,160 @@ export default ({ setVisible, onClose }) =&gt; {
29 99 onClose();
30 100 }}
31 101 onOpenChange={setVisible}
32   - ></ModalForm>
  102 + >
  103 + <ProForm.Item
  104 + label=""
  105 + name="dataSource"
  106 + initialValue={defaultData}
  107 + trigger="onValuesChange"
  108 + >
  109 + <EditableProTable<DataSourceType>
  110 + rowKey="id"
  111 + toolBarRender={false}
  112 + columns={columns}
  113 + recordCreatorProps={{
  114 + newRecordType: 'dataSource',
  115 + position: 'top',
  116 + record: () => ({
  117 + id: Date.now(),
  118 + addonBefore: 'ccccccc',
  119 + decs: 'testdesc',
  120 + }),
  121 + style: {
  122 + display: 'none',
  123 + },
  124 + }}
  125 + editable={{
  126 + type: 'multiple',
  127 + editableKeys,
  128 + onChange: setEditableRowKeys,
  129 + actionRender: (row, _, dom) => {
  130 + return [dom.delete];
  131 + },
  132 + }}
  133 + />
  134 + </ProForm.Item>
  135 +
  136 + {/* <ProForm.Group>
  137 + <ProFormText
  138 + width="sm"
  139 + name="name1"
  140 + label="款项"
  141 + tooltip="最长为 24 位"
  142 + initialValue={"预付款"}
  143 + disabled
  144 + placeholder="请输入名称"
  145 + />
  146 +
  147 + <ProFormText
  148 + width="sm"
  149 + name="company"
  150 + label="收款时间"
  151 + placeholder="请输入名称"
  152 + />
  153 +
  154 + <ProFormText
  155 + width="sm"
  156 + name="price"
  157 + label="收款金额"
  158 + placeholder="请输入名称"
  159 + />
  160 +
  161 + <ProFormText
  162 + width="sm"
  163 + name="notes"
  164 + label="备注"
  165 + placeholder="请输入名称"
  166 + />
  167 + </ProForm.Group>
  168 +
  169 + <ProForm.Group>
  170 + <ProFormText
  171 + width="sm"
  172 + name="name2"
  173 + initialValue={"发货款"}
  174 + disabled
  175 + tooltip="最长为 24 位"
  176 + placeholder="请输入名称"
  177 + />
  178 +
  179 + <ProFormText
  180 + width="sm"
  181 + name="company"
  182 + placeholder="请输入名称"
  183 + />
  184 +
  185 + <ProFormText
  186 + width="sm"
  187 + name="price"
  188 + placeholder="请输入名称"
  189 + />
  190 +
  191 + <ProFormText
  192 + width="sm"
  193 + name="notes"
  194 + placeholder="请输入名称"
  195 + />
  196 + </ProForm.Group>
  197 +
  198 + <ProForm.Group>
  199 + <ProFormText
  200 + width="sm"
  201 + name="name3"
  202 + initialValue={"验收款"}
  203 + disabled
  204 + tooltip="最长为 24 位"
  205 + placeholder="请输入名称"
  206 + />
  207 +
  208 + <ProFormText
  209 + width="sm"
  210 + name="company"
  211 + placeholder="请输入名称"
  212 + />
  213 +
  214 + <ProFormText
  215 + width="sm"
  216 + name="price"
  217 + placeholder="请输入名称"
  218 + />
  219 +
  220 + <ProFormText
  221 + width="sm"
  222 + name="notes"
  223 + placeholder="请输入名称"
  224 + />
  225 + </ProForm.Group>
  226 +
  227 + <ProForm.Group>
  228 + <ProFormText
  229 + width="sm"
  230 + name="name4"
  231 + disabled
  232 + initialValue={"尾款"}
  233 + tooltip="最长为 24 位"
  234 + placeholder="请输入名称"
  235 + />
  236 +
  237 + <ProFormText
  238 + width="sm"
  239 + name="company"
  240 + placeholder="请输入名称"
  241 + />
  242 +
  243 + <ProFormText
  244 + width="sm"
  245 + name="price"
  246 + placeholder="请输入名称"
  247 + />
  248 +
  249 + <ProFormText
  250 + width="sm"
  251 + name="notes"
  252 + placeholder="请输入名称"
  253 + />
  254 + </ProForm.Group> */}
  255 + </ModalForm>
33 256 </>
34 257 );
35 258 };
... ...
src/pages/Order/constant.ts
... ... @@ -490,6 +490,14 @@ export const MAIN_ORDER_COLUMNS = [
490 490 },
491 491 },
492 492 },
  493 +
  494 + // {
  495 + // title: '是否完全收款',
  496 + // dataIndex: 'receiptsStatus',
  497 + // valueType: 'select',
  498 + // hideInTable: true,
  499 + // valueEnum:[{text:'是',status:'YES'},{text:'否',status:'NO'}]
  500 + // }
493 501 ];
494 502  
495 503 export const SUB_ORDER_COLUMNS = [
... ...
src/pages/Order/index.tsx
... ... @@ -56,6 +56,7 @@ import DeliverInfoDrawer from &#39;./components/DeliverInfoDrawer&#39;;
56 56 import DeliverModal from './components/DeliverModal';
57 57 import FinancialDrawer from './components/FinancialDrawer';
58 58 import FinancialEditDrawer from './components/FinancialEditDrawer';
  59 +import FinancialMergeDrawer from './components/FinancialMergeDrawer';
59 60 import FinancialReceiptsModal from './components/FinancialReceiptsModal';
60 61 import HistoryModal from './components/HistoryModal';
61 62 import ImportModal from './components/ImportModal';
... ... @@ -92,6 +93,8 @@ const OrderPage = () =&gt; {
92 93 ] = useState<boolean>(false);
93 94 const [data, setData] = useState([]); //列表数据
94 95 const [notesEditVisible, setNotesEditVisible] = useState<boolean>(false);
  96 + const [financialMergeDrawerVisible, setFinancialMergeDrawerVisible] =
  97 + useState<boolean>(false);
95 98 const [attachmentModalVisible, setAttachmentModalVisible] =
96 99 useState<boolean>(false);
97 100 const [financialReceiptsModalVisible, setFinancialReceiptsModalVisible] =
... ... @@ -136,6 +139,9 @@ const OrderPage = () =&gt; {
136 139 const [onlyShowCancelOrder, setOnlyShowCancelOrder] = useState(false);
137 140 const [onlyShowProcureToBeProcessed, setOnlyShowProcureToBeProcessed] =
138 141 useState(false);
  142 + const [mainOrderSelectedMap, setMainOrderSelectedMap] = useState(new Map()); //选中的主订单Map
  143 + setMainOrderSelectedMap(new Map());
  144 + const [mainOrderSelectedRows, setMainOrderSelectedRows] = useState([]); //选中的主订单集合
139 145 const [onlyShowFinancialToBeProcessed, setOnlyShowFinancialToBeProcessed] =
140 146 useState(false);
141 147 const mainTableRef = useRef();
... ... @@ -273,12 +279,16 @@ const OrderPage = () =&gt; {
273 279 if (selectedItems.includes(record.id)) {
274 280 newSelectedItems = selectedItems.filter((key) => key !== record.id);
275 281 setSelectedRowKeys([]);
  282 + console.log(selectedRowObj);
276 283 setSelectedRowObj({
277 284 ...setSelectedRowObj,
278 285 [record.id]: [],
279 286 });
280 287 selectedRowObj[record.id] = [];
281 288 setSelectedRows([]);
  289 +
  290 + //取消选中主订单
  291 + mainOrderSelectedMap.delete(record.id);
282 292 } else {
283 293 newSelectedItems = [...selectedItems, record.id];
284 294 //子订单全部自动选中
... ... @@ -286,12 +296,16 @@ const OrderPage = () =&gt; {
286 296 return item.id;
287 297 });
288 298 setSelectedRowKeys(subIds);
  299 +
289 300 setSelectedRowObj({
290 301 ...setSelectedRowObj,
291 302 [record.id]: record.subOrderInformationLists,
292 303 });
293 304 selectedRowObj[record.id] = record.subOrderInformationLists;
294 305 setSelectedRows(record.subOrderInformationLists);
  306 +
  307 + //选中主订单
  308 + mainOrderSelectedMap.set(record.id, record);
295 309 }
296 310 setSelectedItems(newSelectedItems);
297 311 };
... ... @@ -302,8 +316,11 @@ const OrderPage = () =&gt; {
302 316 const allMainCheckBoxChange = () => {
303 317 let checked = !allMainChecked;
304 318 setAllMainChecked(checked);
  319 +
  320 + mainOrderSelectedMap.clear();
305 321 if (checked) {
306 322 let mainOrderIds = data?.map((item) => {
  323 + mainOrderSelectedMap.set(item.id, item);
307 324 return item.id;
308 325 });
309 326  
... ... @@ -882,7 +899,7 @@ const OrderPage = () =&gt; {
882 899 ''
883 900 )}
884 901  
885   - {true ? (
  902 + {false ? (
886 903 <Button
887 904 className="p-0"
888 905 type="link"
... ... @@ -2190,7 +2207,45 @@ const OrderPage = () =&gt; {
2190 2207 }}
2191 2208 disabled={selectedItems?.length === 0}
2192 2209 >
2193   - 合并开票
  2210 + {userInfo?.roleSmallVO?.code === 'admin' ? '合并(销售)' : '合并开票'}
  2211 + </Button>,
  2212 + );
  2213 + }
  2214 +
  2215 + if (rolePath?.includes('mergeInvoicing')) {
  2216 + toolBtns.push(
  2217 + <Button
  2218 + type="primary"
  2219 + key="out"
  2220 + onClick={() => {
  2221 + //检查订单状态是否正确
  2222 + // 遍历Map中的键值对
  2223 + let errorIds = [];
  2224 + let mainOrders = [];
  2225 + mainOrderSelectedMap.forEach((value) => {
  2226 + mainOrders.push(value);
  2227 + for (let subOrder of value.subOrderInformationLists) {
  2228 + if (subOrder.afterInvoicingStatus !== 'APPLY_FOR_INVOICING') {
  2229 + errorIds.push(value.id);
  2230 + return;
  2231 + }
  2232 + }
  2233 + });
  2234 + if (errorIds.length > 0) {
  2235 + message.error(
  2236 + '订单号为:' +
  2237 + errorIds.join(',') +
  2238 + '的订单存在不是[申请开票]状态的子订单,请检查!',
  2239 + );
  2240 + return;
  2241 + }
  2242 +
  2243 + setMainOrderSelectedRows(mainOrders);
  2244 + setFinancialMergeDrawerVisible(true);
  2245 + }}
  2246 + disabled={selectedItems?.length === 0}
  2247 + >
  2248 + {userInfo?.roleSmallVO?.code === 'admin' ? '合并(财务)' : '合并开票'}
2194 2249 </Button>,
2195 2250 );
2196 2251 }
... ... @@ -2372,6 +2427,9 @@ const OrderPage = () =&gt; {
2372 2427 total: data?.total || 0,
2373 2428 };
2374 2429 }}
  2430 + toolbar={{
  2431 + multipleLine: true,
  2432 + }}
2375 2433 toolBarRender={() => {
2376 2434 return toolBarRender();
2377 2435 }}
... ... @@ -2622,6 +2680,18 @@ const OrderPage = () =&gt; {
2622 2680 />
2623 2681 )}
2624 2682  
  2683 + {financialMergeDrawerVisible && (
  2684 + <FinancialMergeDrawer
  2685 + setVisible={setFinancialMergeDrawerVisible}
  2686 + dataList={mainOrderSelectedRows}
  2687 + onClose={() => {
  2688 + setFinancialMergeDrawerVisible(false);
  2689 + setMainOrderSelectedRows([]);
  2690 + refreshTable();
  2691 + }}
  2692 + />
  2693 + )}
  2694 +
2625 2695 {financialReceiptsModalVisible && (
2626 2696 <FinancialReceiptsModal
2627 2697 setVisible={setFinancialReceiptsModalVisible}
... ...
src/services/request.ts
... ... @@ -26,6 +26,7 @@ import type {
26 26 DictionaryQueryVO,
27 27 DictionaryVO,
28 28 Dto,
  29 + ModelAndView,
29 30 OrderAddVO,
30 31 OrderAuditLogQueryVO,
31 32 OrderBaseInfoQueryVO,
... ... @@ -228,9 +229,7 @@ export interface GetErrorResponse {
228 229 * @description
229 230 * OK
230 231 */
231   - 200: {
232   - [propertyName: string]: any;
233   - };
  232 + 200: ModelAndView;
234 233 /**
235 234 * @description
236 235 * Unauthorized
... ... @@ -251,9 +250,9 @@ export interface GetErrorResponse {
251 250 export type GetErrorResponseSuccess = GetErrorResponse[200];
252 251 /**
253 252 * @description
254   - * error
  253 + * errorHtml
255 254 * @tags basic-error-controller
256   - * @produces *
  255 + * @produces text/html
257 256 */
258 257 export const getError = /* #__PURE__ */ (() => {
259 258 const method = 'get';
... ... @@ -277,9 +276,7 @@ export interface PutErrorResponse {
277 276 * @description
278 277 * OK
279 278 */
280   - 200: {
281   - [propertyName: string]: any;
282   - };
  279 + 200: ModelAndView;
283 280 /**
284 281 * @description
285 282 * Created
... ... @@ -305,9 +302,9 @@ export interface PutErrorResponse {
305 302 export type PutErrorResponseSuccess = PutErrorResponse[200];
306 303 /**
307 304 * @description
308   - * error
  305 + * errorHtml
309 306 * @tags basic-error-controller
310   - * @produces *
  307 + * @produces text/html
311 308 * @consumes application/json
312 309 */
313 310 export const putError = /* #__PURE__ */ (() => {
... ... @@ -332,9 +329,7 @@ export interface PostErrorResponse {
332 329 * @description
333 330 * OK
334 331 */
335   - 200: {
336   - [propertyName: string]: any;
337   - };
  332 + 200: ModelAndView;
338 333 /**
339 334 * @description
340 335 * Created
... ... @@ -360,9 +355,9 @@ export interface PostErrorResponse {
360 355 export type PostErrorResponseSuccess = PostErrorResponse[200];
361 356 /**
362 357 * @description
363   - * error
  358 + * errorHtml
364 359 * @tags basic-error-controller
365   - * @produces *
  360 + * @produces text/html
366 361 * @consumes application/json
367 362 */
368 363 export const postError = /* #__PURE__ */ (() => {
... ... @@ -387,9 +382,7 @@ export interface DeleteErrorResponse {
387 382 * @description
388 383 * OK
389 384 */
390   - 200: {
391   - [propertyName: string]: any;
392   - };
  385 + 200: ModelAndView;
393 386 /**
394 387 * @description
395 388 * No Content
... ... @@ -410,9 +403,9 @@ export interface DeleteErrorResponse {
410 403 export type DeleteErrorResponseSuccess = DeleteErrorResponse[200];
411 404 /**
412 405 * @description
413   - * error
  406 + * errorHtml
414 407 * @tags basic-error-controller
415   - * @produces *
  408 + * @produces text/html
416 409 */
417 410 export const deleteError = /* #__PURE__ */ (() => {
418 411 const method = 'delete';
... ... @@ -436,9 +429,7 @@ export interface OptionsErrorResponse {
436 429 * @description
437 430 * OK
438 431 */
439   - 200: {
440   - [propertyName: string]: any;
441   - };
  432 + 200: ModelAndView;
442 433 /**
443 434 * @description
444 435 * No Content
... ... @@ -459,9 +450,9 @@ export interface OptionsErrorResponse {
459 450 export type OptionsErrorResponseSuccess = OptionsErrorResponse[200];
460 451 /**
461 452 * @description
462   - * error
  453 + * errorHtml
463 454 * @tags basic-error-controller
464   - * @produces *
  455 + * @produces text/html
465 456 * @consumes application/json
466 457 */
467 458 export const optionsError = /* #__PURE__ */ (() => {
... ... @@ -486,9 +477,7 @@ export interface HeadErrorResponse {
486 477 * @description
487 478 * OK
488 479 */
489   - 200: {
490   - [propertyName: string]: any;
491   - };
  480 + 200: ModelAndView;
492 481 /**
493 482 * @description
494 483 * No Content
... ... @@ -509,9 +498,9 @@ export interface HeadErrorResponse {
509 498 export type HeadErrorResponseSuccess = HeadErrorResponse[200];
510 499 /**
511 500 * @description
512   - * error
  501 + * errorHtml
513 502 * @tags basic-error-controller
514   - * @produces *
  503 + * @produces text/html
515 504 * @consumes application/json
516 505 */
517 506 export const headError = /* #__PURE__ */ (() => {
... ... @@ -536,9 +525,7 @@ export interface PatchErrorResponse {
536 525 * @description
537 526 * OK
538 527 */
539   - 200: {
540   - [propertyName: string]: any;
541   - };
  528 + 200: ModelAndView;
542 529 /**
543 530 * @description
544 531 * No Content
... ... @@ -559,9 +546,9 @@ export interface PatchErrorResponse {
559 546 export type PatchErrorResponseSuccess = PatchErrorResponse[200];
560 547 /**
561 548 * @description
562   - * error
  549 + * errorHtml
563 550 * @tags basic-error-controller
564   - * @produces *
  551 + * @produces text/html
565 552 * @consumes application/json
566 553 */
567 554 export const patchError = /* #__PURE__ */ (() => {
... ... @@ -580,6 +567,54 @@ export const patchError = /* #__PURE__ */ (() =&gt; {
580 567 return request;
581 568 })();
582 569  
  570 +/** @description response type for getKingdeeTestGetToken */
  571 +export interface GetKingdeeTestGetTokenResponse {
  572 + /**
  573 + * @description
  574 + * OK
  575 + */
  576 + 200: string;
  577 + /**
  578 + * @description
  579 + * Unauthorized
  580 + */
  581 + 401: any;
  582 + /**
  583 + * @description
  584 + * Forbidden
  585 + */
  586 + 403: any;
  587 + /**
  588 + * @description
  589 + * Not Found
  590 + */
  591 + 404: any;
  592 +}
  593 +
  594 +export type GetKingdeeTestGetTokenResponseSuccess =
  595 + GetKingdeeTestGetTokenResponse[200];
  596 +/**
  597 + * @description
  598 + * getToken
  599 + * @tags kingdee-test-controller
  600 + * @produces *
  601 + */
  602 +export const getKingdeeTestGetToken = /* #__PURE__ */ (() => {
  603 + const method = 'get';
  604 + const url = '/kingdee/test/getToken';
  605 + function request(): Promise<GetKingdeeTestGetTokenResponseSuccess> {
  606 + return requester(request.url, {
  607 + method: request.method,
  608 + }) as unknown as Promise<GetKingdeeTestGetTokenResponseSuccess>;
  609 + }
  610 +
  611 + /** http method */
  612 + request.method = method;
  613 + /** request url */
  614 + request.url = url;
  615 + return request;
  616 +})();
  617 +
583 618 /** @description request parameter type for postOfficialWebsiteUploadAliOss */
584 619 export interface PostOfficialWebsiteUploadAliOssOption {
585 620 /**
... ... @@ -5858,18 +5893,13 @@ export const postServiceOrderInvoicing = /* #__PURE__ */ (() =&gt; {
5858 5893 export interface PostServiceOrderMergeApplyInvoicingOption {
5859 5894 /**
5860 5895 * @description
5861   - * 销售发起开票备注
  5896 + * dto
5862 5897 */
5863   - query?: {
5864   - /**
5865   - @description
5866   - 销售发起开票备注 */
5867   - applyInvoicingNotes?: string;
5868   - 'filePaths[0].url'?: string;
  5898 + body: {
5869 5899 /**
5870 5900 @description
5871   - 主订单id集合 */
5872   - mainOrderIds?: Array<number>;
  5901 + dto */
  5902 + dto: Dto;
5873 5903 };
5874 5904 }
5875 5905  
... ... @@ -5915,7 +5945,7 @@ export const postServiceOrderMergeApplyInvoicing = /* #__PURE__ */ (() =&gt; {
5915 5945 const method = 'post';
5916 5946 const url = '/service/order/mergeApplyInvoicing';
5917 5947 function request(
5918   - option?: PostServiceOrderMergeApplyInvoicingOption,
  5948 + option: PostServiceOrderMergeApplyInvoicingOption,
5919 5949 ): Promise<PostServiceOrderMergeApplyInvoicingResponseSuccess> {
5920 5950 return requester(request.url, {
5921 5951 method: request.method,
... ... @@ -5930,6 +5960,77 @@ export const postServiceOrderMergeApplyInvoicing = /* #__PURE__ */ (() =&gt; {
5930 5960 return request;
5931 5961 })();
5932 5962  
  5963 +/** @description request parameter type for postServiceOrderMergeInvoicing */
  5964 +export interface PostServiceOrderMergeInvoicingOption {
  5965 + /**
  5966 + * @description
  5967 + * dto
  5968 + */
  5969 + body: {
  5970 + /**
  5971 + @description
  5972 + dto */
  5973 + dto: Dto;
  5974 + };
  5975 +}
  5976 +
  5977 +/** @description response type for postServiceOrderMergeInvoicing */
  5978 +export interface PostServiceOrderMergeInvoicingResponse {
  5979 + /**
  5980 + * @description
  5981 + * OK
  5982 + */
  5983 + 200: ServerResult;
  5984 + /**
  5985 + * @description
  5986 + * Created
  5987 + */
  5988 + 201: any;
  5989 + /**
  5990 + * @description
  5991 + * Unauthorized
  5992 + */
  5993 + 401: any;
  5994 + /**
  5995 + * @description
  5996 + * Forbidden
  5997 + */
  5998 + 403: any;
  5999 + /**
  6000 + * @description
  6001 + * Not Found
  6002 + */
  6003 + 404: any;
  6004 +}
  6005 +
  6006 +export type PostServiceOrderMergeInvoicingResponseSuccess =
  6007 + PostServiceOrderMergeInvoicingResponse[200];
  6008 +/**
  6009 + * @description
  6010 + * 财务合并开票
  6011 + * @tags 内部订单
  6012 + * @produces *
  6013 + * @consumes application/json
  6014 + */
  6015 +export const postServiceOrderMergeInvoicing = /* #__PURE__ */ (() => {
  6016 + const method = 'post';
  6017 + const url = '/service/order/mergeInvoicing';
  6018 + function request(
  6019 + option: PostServiceOrderMergeInvoicingOption,
  6020 + ): Promise<PostServiceOrderMergeInvoicingResponseSuccess> {
  6021 + return requester(request.url, {
  6022 + method: request.method,
  6023 + ...option,
  6024 + }) as unknown as Promise<PostServiceOrderMergeInvoicingResponseSuccess>;
  6025 + }
  6026 +
  6027 + /** http method */
  6028 + request.method = method;
  6029 + /** request url */
  6030 + request.url = url;
  6031 + return request;
  6032 +})();
  6033 +
5933 6034 /** @description request parameter type for postServiceOrderNoNeedInvoicingEdit */
5934 6035 export interface PostServiceOrderNoNeedInvoicingEditOption {
5935 6036 /**
... ...