Commit 8ccad1f0509d396be9b562feecd89ee421e85691

Authored by zhongnanhuang
1 parent 04a31534

feat: update

src/pages/Order/components/DeliverModal.tsx
1 1 import { RESPONSE_CODE } from '@/constants/enum';
2 2 import {
  3 + postServiceOrderProcureSend,
3 4 postServiceOrderSendProduct,
4 5 postServiceOrderSupplierSendOrder,
5 6 } from '@/services';
... ... @@ -156,6 +157,8 @@ const DeliverModal = ({
156 157 let res;
157 158 if (optType(CHECK_TYPE.SUPPLIER)) {
158 159 res = await postServiceOrderSupplierSendOrder({ data: body });
  160 + } else if (optType(CHECK_TYPE.PROCURE)) {
  161 + res = await postServiceOrderProcureSend({ data: body });
159 162 } else {
160 163 res = await postServiceOrderSendProduct({ data: body });
161 164 }
... ...
src/pages/Order/components/ProcureCheckModal.tsx
... ... @@ -49,10 +49,14 @@ export default ({ setCheckVisible, data, subOrders, onClose }) => {
49 49 }}
50 50 submitTimeout={2000}
51 51 onFinish={async (values) => {
  52 + let procureIsPrintAndSend = false;
  53 + if (values.name === '采购自行发货') {
  54 + procureIsPrintAndSend = true;
  55 + }
52 56 return doCheck({
53 57 ids: subOrderIds,
54 58 supplier: values.name,
55   - procureIsPrintAndSend: false,
  59 + procureIsPrintAndSend: procureIsPrintAndSend,
56 60 });
57 61 }}
58 62 onOpenChange={setCheckVisible}
... ...
src/pages/Order/constant.ts
... ... @@ -102,12 +102,22 @@ export const ORDER_STATUS_OPTIONS = {
102 102 AUDITED: '已审核',
103 103 PROCURE_UN_PROCESS: '采购未审核',
104 104 PROCURE_PROCESS: '采购已审核',
105   - SUPPLIER_WAIT_SHIP: '供应商-待发货',
106   - SUPPLIER_SHIPPED: '供应商-已发货',
  105 + PROCURE_PROCESS_FOR_MINE: '采购待发货',
  106 + SUPPLIER_WAIT_SHIP: '供应商待发货',
  107 + SUPPLIER_SHIPPED: '供应商已发货',
107 108 WAIT_SHIP: '待发货',
108 109 SHIPPED: '已发货',
109 110 CONFIRM_RECEIPT: '确认收货',
110 111 AUDIT_FAILED: '审核失败',
  112 + IN_AFTER_SALES: '售后中',
  113 + AFTER_SALES_COMPLETION: '售后完成',
  114 +};
  115 +
  116 +export const AFTE_SALES_PLAN_OPTIONS = {
  117 + RETURNS_OR_REFUNDS: '退货/退款',
  118 + EXCHANGE_GOODS: '换货',
  119 + FREE_ORDER: '免单',
  120 + DISCOUNT: '折扣',
111 121 };
112 122  
113 123 export const FINANCIAL_STATUS_OPTIONS = {
... ... @@ -132,6 +142,9 @@ export const TAGS_COLOR = new Map<string, string>([
132 142 ['PROCURE_PROCESS', 'processing'],
133 143 ['SUPPLIER_WAIT_SHIP', 'processing'],
134 144 ['SUPPLIER_SHIPPED', 'processing'],
  145 + ['IN_AFTER_SALES', 'red'],
  146 + ['AFTER_SALES_COMPLETION', 'red'],
  147 + ['PROCURE_PROCESS_FOR_MINE', 'processing'],
135 148 ]);
136 149  
137 150 export const SALES_CODE_OPTIONS = [
... ... @@ -196,6 +209,10 @@ export const HISTORY_OPT_TYPE = new Map<string, string>([
196 209 ['PROCURE_CHECK_ORDER', '采购审核'],
197 210 ['SUPPLIER_PRINT', '供应商打印'],
198 211 ['EXTERNAL_PROCUREMENT', '仓库操作外部采购子订单'],
  212 + ['APPLY_AFTER_SALES', '申请售后子订单'],
  213 + ['AFTER_SALES_COMPLETION', '完成售后子订单'],
  214 + ['PROCURE_PRINT', '采购打印子订单'],
  215 + ['PROCURE_SEND', '采购发货子订单'],
199 216 ]);
200 217  
201 218 export const MAIN_ORDER_COLUMNS = [
... ...
src/pages/Order/index.tsx
1 1 import ButtonConfirm from '@/components/ButtomConfirm';
2 2 import { RESPONSE_CODE } from '@/constants/enum';
3 3 import {
  4 + postServiceOrderAfterSalesCompletion,
4 5 postServiceOrderOrderCancel,
5 6 postServiceOrderQueryServiceOrder,
6 7 } from '@/services';
... ... @@ -37,6 +38,7 @@ import {
37 38 import { cloneDeep } from 'lodash';
38 39 import { Key, useRef, useState } from 'react';
39 40 import OrderPrintModal from '../OrderPrint/OrderPrintModal';
  41 +import AfterSalesDrawer from './components/AfterSalesDrawer';
40 42 import AttachmentModal from './components/AttachmentModal';
41 43 import CheckModal from './components/CheckModal';
42 44 import ConfirmReceiptModal from './components/ConfirmReceiptModal';
... ... @@ -76,6 +78,8 @@ const OrderPage = () => {
76 78 const [attachmentModalVisible, setAttachmentModalVisible] =
77 79 useState<boolean>(false);
78 80 const [financialVisible, setFinancialVisible] = useState<boolean>(false);
  81 + const [afterSalesDrawerVisible, setAfterSalesDrawerVisible] =
  82 + useState<boolean>(false);
79 83 const [historyModalVisible, setHistoryModalVisible] =
80 84 useState<boolean>(false);
81 85 const [isRePrintOrder, setIsRePrintOrder] = useState<boolean>(false);
... ... @@ -227,15 +231,15 @@ const OrderPage = () =&gt; {
227 231 <Flex vertical className="w-[31%]" gap="small">
228 232 {/* 商品名称 */}
229 233 <div
230   - className="whitespace-no-wrap overflow-hidden overflow-ellipsis"
  234 + className="overflow-hidden whitespace-no-wrap overflow-ellipsis"
231 235 title={optRecord.productName}
232 236 >
233   - <span className="text-black font-medium ">
  237 + <span className="font-medium text-black ">
234 238 {optRecord.productName}
235 239 </span>
236 240 </div>
237 241 <div
238   - className="whitespace-no-wrap overflow-hidden overflow-ellipsis"
  242 + className="overflow-hidden whitespace-no-wrap overflow-ellipsis"
239 243 title={optRecord.parameters}
240 244 >
241 245 <span className="text-[#8C8C8C]">参数:{optRecord.parameters}</span>
... ... @@ -259,21 +263,21 @@ const OrderPage = () =&gt; {
259 263 </Flex>
260 264 <Flex className="w-[16%]" vertical gap="small">
261 265 <div
262   - className="whitespace-no-wrap overflow-hidden overflow-ellipsis"
  266 + className="overflow-hidden whitespace-no-wrap overflow-ellipsis"
263 267 title={optRecord.productPrice}
264 268 >
265 269 <span className="text-[#8C8C8C]">单价:</span>
266 270 <span className="text-slate-700">¥{optRecord.productPrice}</span>
267 271 </div>
268 272 <div
269   - className="whitespace-no-wrap overflow-hidden overflow-ellipsis"
  273 + className="overflow-hidden whitespace-no-wrap overflow-ellipsis"
270 274 title={optRecord.quantity}
271 275 >
272 276 <span className="text-[#8C8C8C]">数量:</span>
273 277 <span className="text-slate-700">x{optRecord.quantity}</span>
274 278 </div>
275 279 <div
276   - className="whitespace-no-wrap overflow-hidden overflow-ellipsis"
  280 + className="overflow-hidden whitespace-no-wrap overflow-ellipsis"
277 281 title={optRecord.subOrderPayment}
278 282 >
279 283 <span className="text-[#8C8C8C]">合计:</span>
... ... @@ -284,7 +288,7 @@ const OrderPage = () =&gt; {
284 288 </Flex>
285 289 <Flex className="w-[10%]" vertical gap="small">
286 290 {/* 支付方式 */}
287   - <div className="whitespace-no-wrap overflow-hidden overflow-ellipsis">
  291 + <div className="overflow-hidden whitespace-no-wrap overflow-ellipsis">
288 292 <span className="text-slate-700">
289 293 {enumValueToLabel(
290 294 optRecord.paymentMethod,
... ... @@ -293,7 +297,7 @@ const OrderPage = () =&gt; {
293 297 </span>
294 298 </div>
295 299 {/* 支付渠道 */}
296   - <div className="whitespace-no-wrap overflow-hidden overflow-ellipsis">
  300 + <div className="overflow-hidden whitespace-no-wrap overflow-ellipsis">
297 301 <span className="text-slate-700">
298 302 {enumValueToLabel(
299 303 optRecord.paymentChannel,
... ... @@ -305,7 +309,7 @@ const OrderPage = () =&gt; {
305 309 <Flex className="w-[15%]" vertical gap="small">
306 310 {/* 所属部门 */}
307 311 <div
308   - className="whitespace-no-wrap overflow-hidden overflow-ellipsis"
  312 + className="overflow-hidden whitespace-no-wrap overflow-ellipsis"
309 313 title={enumValueToLabel(
310 314 optRecord.productBelongBusiness,
311 315 PRODUCT_BELONG_DEPARTMENT_OPTIONS,
... ... @@ -320,7 +324,7 @@ const OrderPage = () =&gt; {
320 324 </div>
321 325  
322 326 {/* 开票类型 */}
323   - <div className="whitespace-no-wrap overflow-hidden overflow-ellipsis">
  327 + <div className="overflow-hidden whitespace-no-wrap overflow-ellipsis">
324 328 <span className="text-slate-700">
325 329 {getInvoicingType(optRecord)}
326 330 </span>
... ... @@ -329,7 +333,7 @@ const OrderPage = () =&gt; {
329 333  
330 334 <Flex className="w-[10%]" vertical gap="small">
331 335 {/* 开票状态 */}
332   - <div className="whitespace-no-wrap overflow-hidden overflow-ellipsis">
  336 + <div className="overflow-hidden whitespace-no-wrap overflow-ellipsis">
333 337 <Tag
334 338 color={
335 339 optRecord.invoicingTime === null ||
... ... @@ -342,21 +346,21 @@ const OrderPage = () =&gt; {
342 346 </Tag>
343 347 </div>
344 348 {/* 订单状态 */}
345   - <div className="whitespace-no-wrap overflow-hidden overflow-ellipsis">
  349 + <div className="overflow-hidden whitespace-no-wrap overflow-ellipsis">
346 350 <Tag color={TAGS_COLOR.get(optRecord.orderStatus)}>
347 351 {enumValueToLabel(optRecord.orderStatus, ORDER_STATUS_OPTIONS)}
348 352 </Tag>
349 353 </div>
350 354  
351 355 {/* 物流信息 */}
352   - <div className="whitespace-no-wrap overflow-hidden overflow-ellipsis">
  356 + <div className="overflow-hidden whitespace-no-wrap overflow-ellipsis">
353 357 {optRecord.orderStatus === 'CONFIRM_RECEIPT' ||
354 358 optRecord.orderStatus === 'SHIPPED' ? (
355 359 <Tooltip
356 360 color="#FFFFFF"
357 361 placement="bottom"
358 362 title={
359   - <div className="text-black px-5 py-4">
  363 + <div className="px-5 py-4 text-black">
360 364 {optRecord.serialNumber === undefined
361 365 ? '暂无物流信息'
362 366 : enumValueToLabel(
... ... @@ -459,7 +463,7 @@ const OrderPage = () =&gt; {
459 463 setOrderCheckType(CHECK_TYPE.NORMAL);
460 464 }}
461 465 >
462   - 打印
  466 + 仓库打印
463 467 </Button>
464 468 ) : (
465 469 ''
... ... @@ -476,7 +480,7 @@ const OrderPage = () =&gt; {
476 480 setOrderCheckType(CHECK_TYPE.SUPPLIER);
477 481 }}
478 482 >
479   - 打印
  483 + 供应商打印
480 484 </Button>
481 485 ) : (
482 486 ''
... ... @@ -597,6 +601,43 @@ const OrderPage = () =&gt; {
597 601 ) : (
598 602 ''
599 603 )}
  604 +
  605 + {optRecord.subPath.includes('applyAfterSales') ? (
  606 + <Button
  607 + className="p-0"
  608 + type="link"
  609 + onClick={() => {
  610 + setAfterSalesDrawerVisible(true);
  611 + setSelectedRows([optRecord]);
  612 + setOrderRow(record);
  613 + }}
  614 + >
  615 + 申请售后
  616 + </Button>
  617 + ) : (
  618 + ''
  619 + )}
  620 +
  621 + {optRecord.subPath.includes('afterSalesCompletion') ? (
  622 + <ButtonConfirm
  623 + className="p-0"
  624 + title="是否完成售后?"
  625 + text="完成售后"
  626 + onConfirm={async () => {
  627 + let res = await postServiceOrderAfterSalesCompletion({
  628 + data: { ids: [optRecord.id] },
  629 + });
  630 + if (res.result === RESPONSE_CODE.SUCCESS) {
  631 + message.success(res.message);
  632 + refreshTable();
  633 + return true;
  634 + }
  635 + }}
  636 + />
  637 + ) : (
  638 + ''
  639 + )}
  640 +
600 641 {optRecord.subPath.includes('viewImages') ? (
601 642 <Button
602 643 className="p-0"
... ... @@ -641,7 +682,7 @@ const OrderPage = () =&gt; {
641 682 return (
642 683 <ProTable
643 684 id="sub-table"
644   - className=" w-full"
  685 + className="w-full "
645 686 showHeader={false}
646 687 columns={[
647 688 {
... ... @@ -686,7 +727,7 @@ const OrderPage = () =&gt; {
686 727 <Flex vertical={true}>
687 728 {/* 编号、时间、销售信息 */}
688 729 <Flex
689   - className="px-4 py-4 bg-white bg-white rounded-t-lg"
  730 + className="px-4 py-4 bg-white rounded-t-lg"
690 731 justify="space-between"
691 732 >
692 733 <Flex wrap="wrap" gap="middle" vertical>
... ... @@ -742,7 +783,7 @@ const OrderPage = () =&gt; {
742 783 </Flex>
743 784 <Flex className="pl-6" align="center">
744 785 <div title={record.notes}>
745   - <div className="max-w-md whitespace-no-wrap overflow-hidden overflow-ellipsis">
  786 + <div className="max-w-md overflow-hidden whitespace-no-wrap overflow-ellipsis">
746 787 <span className="text-[#8C8C8C]">备注:</span>
747 788 <span className="ml-2">
748 789 {record.notes === undefined ? '暂无备注' : record.notes}
... ... @@ -848,6 +889,27 @@ const OrderPage = () =&gt; {
848 889 ) : (
849 890 ''
850 891 )}
  892 +
  893 + {record.mainPath.includes('procureSend') ? (
  894 + <Button
  895 + className="p-0"
  896 + type="link"
  897 + onClick={() => {
  898 + if (!selectedRowObj[record.id]?.length) {
  899 + return message.error('请选择选择子订单');
  900 + }
  901 + setSelectedRows(selectedRowObj[record.id]);
  902 + setDeliverVisible(true);
  903 + setIsSendProduct(true);
  904 + setOrderCheckType(CHECK_TYPE.PROCURE);
  905 + }}
  906 + >
  907 + 采购发货
  908 + </Button>
  909 + ) : (
  910 + ''
  911 + )}
  912 +
851 913 {record.mainPath.includes('printOrder') ? (
852 914 <Button
853 915 className="p-0"
... ... @@ -862,7 +924,7 @@ const OrderPage = () =&gt; {
862 924 setOrderCheckType(CHECK_TYPE.NORMAL);
863 925 }}
864 926 >
865   - 打印
  927 + 仓库打印
866 928 </Button>
867 929 ) : (
868 930 ''
... ... @@ -882,7 +944,7 @@ const OrderPage = () =&gt; {
882 944 setOrderCheckType(CHECK_TYPE.SUPPLIER);
883 945 }}
884 946 >
885   - 打印
  947 + 供应商打印
886 948 </Button>
887 949 ) : (
888 950 ''
... ... @@ -1103,6 +1165,79 @@ const OrderPage = () =&gt; {
1103 1165 ''
1104 1166 )}
1105 1167  
  1168 + {record.mainPath.includes('applyAfterSales') ? (
  1169 + <Button
  1170 + className="p-0"
  1171 + type="link"
  1172 + onClick={() => {
  1173 + let selectedSubOrders = selectedRowObj[record.id];
  1174 + if (selectedSubOrders === undefined) {
  1175 + selectedSubOrders = record.subOrderInformationLists;
  1176 + }
  1177 + setSelectedRows(selectedSubOrders);
  1178 + for (let i = 0; i < selectedSubOrders.length; i++) {
  1179 + if (
  1180 + selectedSubOrders[i].orderStatus !==
  1181 + 'CONFIRM_RECEIPT'
  1182 + ) {
  1183 + message.error('请选择确认收货状态的子订单进行售后');
  1184 + return;
  1185 + }
  1186 + }
  1187 + setAfterSalesDrawerVisible(true);
  1188 + setOrderRow(record);
  1189 + }}
  1190 + >
  1191 + 申请售后
  1192 + </Button>
  1193 + ) : (
  1194 + ''
  1195 + )}
  1196 +
  1197 + {record.mainPath.includes('afterSalesCompletion') ? (
  1198 + <ButtonConfirm
  1199 + className="p-0"
  1200 + title="售后是否已完成?"
  1201 + text="完成售后"
  1202 + onConfirm={async () => {
  1203 + let selectedSubOrders = selectedRowObj[record.id];
  1204 + if (selectedSubOrders === undefined) {
  1205 + selectedSubOrders = record.subOrderInformationLists;
  1206 + }
  1207 + for (let i = 0; i < selectedSubOrders.length; i++) {
  1208 + if (
  1209 + selectedSubOrders[i].orderStatus !==
  1210 + 'IN_AFTER_SALES'
  1211 + ) {
  1212 + message.error(
  1213 + '请选择售后中状态的子订单进行完成售后',
  1214 + );
  1215 + return false;
  1216 + }
  1217 + }
  1218 +
  1219 + const ids = selectedSubOrders?.map((item) => {
  1220 + return item.id;
  1221 + });
  1222 +
  1223 + let body = {
  1224 + ids: ids,
  1225 + };
  1226 + const data = await postServiceOrderAfterSalesCompletion(
  1227 + {
  1228 + data: body,
  1229 + },
  1230 + );
  1231 + if (data.result === RESPONSE_CODE.SUCCESS) {
  1232 + message.success(data.message);
  1233 + refreshTable();
  1234 + }
  1235 + }}
  1236 + />
  1237 + ) : (
  1238 + ''
  1239 + )}
  1240 +
1106 1241 {record.mainPath.includes('orderCancel') ? (
1107 1242 <ButtonConfirm
1108 1243 className="p-0"
... ... @@ -1125,6 +1260,26 @@ const OrderPage = () =&gt; {
1125 1260 ) : (
1126 1261 ''
1127 1262 )}
  1263 +
  1264 + {record.mainPath.includes('procurePrint') ? (
  1265 + <Button
  1266 + className="p-0"
  1267 + type="link"
  1268 + onClick={() => {
  1269 + if (!selectedRowObj[record.id]?.length) {
  1270 + return message.error('请选择选择子订单');
  1271 + }
  1272 + setSelectedRows(selectedRowObj[record.id]);
  1273 + setOrderRow(record);
  1274 + setOrderPrintVisible(true);
  1275 + setOrderCheckType(CHECK_TYPE.PROCURE);
  1276 + }}
  1277 + >
  1278 + 采购打印
  1279 + </Button>
  1280 + ) : (
  1281 + ''
  1282 + )}
1128 1283 </Space>
1129 1284 </Space.Compact>
1130 1285 </Flex>
... ... @@ -1549,6 +1704,20 @@ const OrderPage = () =&gt; {
1549 1704 />
1550 1705 )}
1551 1706  
  1707 + {afterSalesDrawerVisible && (
  1708 + <AfterSalesDrawer
  1709 + setVisible={setAfterSalesDrawerVisible}
  1710 + mainOrder={orderRow}
  1711 + subOrders={selectedRows}
  1712 + onClose={() => {
  1713 + setAfterSalesDrawerVisible(false);
  1714 + setSelectedRows({});
  1715 + setOrderRow({});
  1716 + refreshTable();
  1717 + }}
  1718 + />
  1719 + )}
  1720 +
1552 1721 {contextHolder}
1553 1722 </PageContainer>
1554 1723 );
... ...
src/pages/OrderPrint/OrderPrintModal.tsx
... ... @@ -2,6 +2,7 @@ import { RESPONSE_CODE } from &#39;@/constants/enum&#39;;
2 2 import '@/pages/OrderPrint/index.less';
3 3 import {
4 4 postServiceOrderPrintOrder,
  5 + postServiceOrderProcurePrint,
5 6 postServiceOrderSupplierPrint,
6 7 } from '@/services';
7 8 import { ExclamationCircleFilled } from '@ant-design/icons';
... ... @@ -66,6 +67,14 @@ export default ({
66 67 }),
67 68 },
68 69 });
  70 + } else if (optType(CHECK_TYPE.PROCURE)) {
  71 + res = await postServiceOrderProcurePrint({
  72 + data: {
  73 + ids: subOrders.map((item) => {
  74 + return item.id;
  75 + }),
  76 + },
  77 + });
69 78 } else {
70 79 res = await postServiceOrderPrintOrder({ data: body });
71 80 }
... ...
src/services/definition.ts
... ... @@ -699,11 +699,24 @@ export interface ProcureCheckOrderDto {
699 699 ids?: Array<number>;
700 700 /**
701 701 * @description
702   - * 采购人姓名
  702 + * true表示采购走打印发货流程,false表示选择供应商进行发货
  703 + */
  704 + procureIsPrintAndSend?: boolean;
  705 + /**
  706 + * @description
  707 + * 供应商姓名
703 708 */
704 709 supplier?: string;
705 710 }
706 711  
  712 +export interface ProcurePrintDto {
  713 + /**
  714 + * @description
  715 + * 子订单id集合
  716 + */
  717 + ids?: Array<number>;
  718 +}
  719 +
707 720 export interface ProductInformationDto {
708 721 /**
709 722 * @description
... ...
src/services/request.ts
... ... @@ -26,7 +26,6 @@ import type {
26 26 DictionaryQueryVO,
27 27 DictionaryVO,
28 28 Dto,
29   - ModelAndView,
30 29 OrderAddVO,
31 30 OrderAuditLogQueryVO,
32 31 OrderBaseInfoQueryVO,
... ... @@ -36,6 +35,7 @@ import type {
36 35 OrderUnlockFieldApplyVO,
37 36 OrderUpdateVO,
38 37 ProcureCheckOrderDto,
  38 + ProcurePrintDto,
39 39 ProductInformationDto,
40 40 QueryAnnexDto,
41 41 QueryHistoryRecordDto,
... ... @@ -223,7 +223,9 @@ export interface GetErrorResponse {
223 223 * @description
224 224 * OK
225 225 */
226   - 200: ModelAndView;
  226 + 200: {
  227 + [propertyName: string]: any;
  228 + };
227 229 /**
228 230 * @description
229 231 * Unauthorized
... ... @@ -244,9 +246,9 @@ export interface GetErrorResponse {
244 246 export type GetErrorResponseSuccess = GetErrorResponse[200];
245 247 /**
246 248 * @description
247   - * errorHtml
  249 + * error
248 250 * @tags basic-error-controller
249   - * @produces text/html
  251 + * @produces *
250 252 */
251 253 export const getError = /* #__PURE__ */ (() => {
252 254 const method = 'get';
... ... @@ -270,7 +272,9 @@ export interface PutErrorResponse {
270 272 * @description
271 273 * OK
272 274 */
273   - 200: ModelAndView;
  275 + 200: {
  276 + [propertyName: string]: any;
  277 + };
274 278 /**
275 279 * @description
276 280 * Created
... ... @@ -296,9 +300,9 @@ export interface PutErrorResponse {
296 300 export type PutErrorResponseSuccess = PutErrorResponse[200];
297 301 /**
298 302 * @description
299   - * errorHtml
  303 + * error
300 304 * @tags basic-error-controller
301   - * @produces text/html
  305 + * @produces *
302 306 * @consumes application/json
303 307 */
304 308 export const putError = /* #__PURE__ */ (() => {
... ... @@ -323,7 +327,9 @@ export interface PostErrorResponse {
323 327 * @description
324 328 * OK
325 329 */
326   - 200: ModelAndView;
  330 + 200: {
  331 + [propertyName: string]: any;
  332 + };
327 333 /**
328 334 * @description
329 335 * Created
... ... @@ -349,9 +355,9 @@ export interface PostErrorResponse {
349 355 export type PostErrorResponseSuccess = PostErrorResponse[200];
350 356 /**
351 357 * @description
352   - * errorHtml
  358 + * error
353 359 * @tags basic-error-controller
354   - * @produces text/html
  360 + * @produces *
355 361 * @consumes application/json
356 362 */
357 363 export const postError = /* #__PURE__ */ (() => {
... ... @@ -376,7 +382,9 @@ export interface DeleteErrorResponse {
376 382 * @description
377 383 * OK
378 384 */
379   - 200: ModelAndView;
  385 + 200: {
  386 + [propertyName: string]: any;
  387 + };
380 388 /**
381 389 * @description
382 390 * No Content
... ... @@ -397,9 +405,9 @@ export interface DeleteErrorResponse {
397 405 export type DeleteErrorResponseSuccess = DeleteErrorResponse[200];
398 406 /**
399 407 * @description
400   - * errorHtml
  408 + * error
401 409 * @tags basic-error-controller
402   - * @produces text/html
  410 + * @produces *
403 411 */
404 412 export const deleteError = /* #__PURE__ */ (() => {
405 413 const method = 'delete';
... ... @@ -423,7 +431,9 @@ export interface OptionsErrorResponse {
423 431 * @description
424 432 * OK
425 433 */
426   - 200: ModelAndView;
  434 + 200: {
  435 + [propertyName: string]: any;
  436 + };
427 437 /**
428 438 * @description
429 439 * No Content
... ... @@ -444,9 +454,9 @@ export interface OptionsErrorResponse {
444 454 export type OptionsErrorResponseSuccess = OptionsErrorResponse[200];
445 455 /**
446 456 * @description
447   - * errorHtml
  457 + * error
448 458 * @tags basic-error-controller
449   - * @produces text/html
  459 + * @produces *
450 460 * @consumes application/json
451 461 */
452 462 export const optionsError = /* #__PURE__ */ (() => {
... ... @@ -471,7 +481,9 @@ export interface HeadErrorResponse {
471 481 * @description
472 482 * OK
473 483 */
474   - 200: ModelAndView;
  484 + 200: {
  485 + [propertyName: string]: any;
  486 + };
475 487 /**
476 488 * @description
477 489 * No Content
... ... @@ -492,9 +504,9 @@ export interface HeadErrorResponse {
492 504 export type HeadErrorResponseSuccess = HeadErrorResponse[200];
493 505 /**
494 506 * @description
495   - * errorHtml
  507 + * error
496 508 * @tags basic-error-controller
497   - * @produces text/html
  509 + * @produces *
498 510 * @consumes application/json
499 511 */
500 512 export const headError = /* #__PURE__ */ (() => {
... ... @@ -519,7 +531,9 @@ export interface PatchErrorResponse {
519 531 * @description
520 532 * OK
521 533 */
522   - 200: ModelAndView;
  534 + 200: {
  535 + [propertyName: string]: any;
  536 + };
523 537 /**
524 538 * @description
525 539 * No Content
... ... @@ -540,9 +554,9 @@ export interface PatchErrorResponse {
540 554 export type PatchErrorResponseSuccess = PatchErrorResponse[200];
541 555 /**
542 556 * @description
543   - * errorHtml
  557 + * error
544 558 * @tags basic-error-controller
545   - * @produces text/html
  559 + * @produces *
546 560 * @consumes application/json
547 561 */
548 562 export const patchError = /* #__PURE__ */ (() => {
... ... @@ -4771,6 +4785,148 @@ export const postServiceOrderAddOrder = /* #__PURE__ */ (() =&gt; {
4771 4785 return request;
4772 4786 })();
4773 4787  
  4788 +/** @description request parameter type for postServiceOrderAfterSalesCompletion */
  4789 +export interface PostServiceOrderAfterSalesCompletionOption {
  4790 + /**
  4791 + * @description
  4792 + * dto
  4793 + */
  4794 + body: {
  4795 + /**
  4796 + @description
  4797 + dto */
  4798 + dto: Dto;
  4799 + };
  4800 +}
  4801 +
  4802 +/** @description response type for postServiceOrderAfterSalesCompletion */
  4803 +export interface PostServiceOrderAfterSalesCompletionResponse {
  4804 + /**
  4805 + * @description
  4806 + * OK
  4807 + */
  4808 + 200: ServerResult;
  4809 + /**
  4810 + * @description
  4811 + * Created
  4812 + */
  4813 + 201: any;
  4814 + /**
  4815 + * @description
  4816 + * Unauthorized
  4817 + */
  4818 + 401: any;
  4819 + /**
  4820 + * @description
  4821 + * Forbidden
  4822 + */
  4823 + 403: any;
  4824 + /**
  4825 + * @description
  4826 + * Not Found
  4827 + */
  4828 + 404: any;
  4829 +}
  4830 +
  4831 +export type PostServiceOrderAfterSalesCompletionResponseSuccess =
  4832 + PostServiceOrderAfterSalesCompletionResponse[200];
  4833 +/**
  4834 + * @description
  4835 + * 售后完成
  4836 + * @tags 内部订单
  4837 + * @produces *
  4838 + * @consumes application/json
  4839 + */
  4840 +export const postServiceOrderAfterSalesCompletion = /* #__PURE__ */ (() => {
  4841 + const method = 'post';
  4842 + const url = '/service/order/afterSalesCompletion';
  4843 + function request(
  4844 + option: PostServiceOrderAfterSalesCompletionOption,
  4845 + ): Promise<PostServiceOrderAfterSalesCompletionResponseSuccess> {
  4846 + return requester(request.url, {
  4847 + method: request.method,
  4848 + ...option,
  4849 + }) as unknown as Promise<PostServiceOrderAfterSalesCompletionResponseSuccess>;
  4850 + }
  4851 +
  4852 + /** http method */
  4853 + request.method = method;
  4854 + /** request url */
  4855 + request.url = url;
  4856 + return request;
  4857 +})();
  4858 +
  4859 +/** @description request parameter type for postServiceOrderApplyAfterSales */
  4860 +export interface PostServiceOrderApplyAfterSalesOption {
  4861 + /**
  4862 + * @description
  4863 + * dto
  4864 + */
  4865 + body: {
  4866 + /**
  4867 + @description
  4868 + dto */
  4869 + dto: Dto;
  4870 + };
  4871 +}
  4872 +
  4873 +/** @description response type for postServiceOrderApplyAfterSales */
  4874 +export interface PostServiceOrderApplyAfterSalesResponse {
  4875 + /**
  4876 + * @description
  4877 + * OK
  4878 + */
  4879 + 200: ServerResult;
  4880 + /**
  4881 + * @description
  4882 + * Created
  4883 + */
  4884 + 201: any;
  4885 + /**
  4886 + * @description
  4887 + * Unauthorized
  4888 + */
  4889 + 401: any;
  4890 + /**
  4891 + * @description
  4892 + * Forbidden
  4893 + */
  4894 + 403: any;
  4895 + /**
  4896 + * @description
  4897 + * Not Found
  4898 + */
  4899 + 404: any;
  4900 +}
  4901 +
  4902 +export type PostServiceOrderApplyAfterSalesResponseSuccess =
  4903 + PostServiceOrderApplyAfterSalesResponse[200];
  4904 +/**
  4905 + * @description
  4906 + * 申请售后
  4907 + * @tags 内部订单
  4908 + * @produces *
  4909 + * @consumes application/json
  4910 + */
  4911 +export const postServiceOrderApplyAfterSales = /* #__PURE__ */ (() => {
  4912 + const method = 'post';
  4913 + const url = '/service/order/applyAfterSales';
  4914 + function request(
  4915 + option: PostServiceOrderApplyAfterSalesOption,
  4916 + ): Promise<PostServiceOrderApplyAfterSalesResponseSuccess> {
  4917 + return requester(request.url, {
  4918 + method: request.method,
  4919 + ...option,
  4920 + }) as unknown as Promise<PostServiceOrderApplyAfterSalesResponseSuccess>;
  4921 + }
  4922 +
  4923 + /** http method */
  4924 + request.method = method;
  4925 + /** request url */
  4926 + request.url = url;
  4927 + return request;
  4928 +})();
  4929 +
4774 4930 /** @description request parameter type for postServiceOrderCheckOrder */
4775 4931 export interface PostServiceOrderCheckOrderOption {
4776 4932 /**
... ... @@ -5764,6 +5920,148 @@ export const postServiceOrderProcureCheckOrder = /* #__PURE__ */ (() =&gt; {
5764 5920 return request;
5765 5921 })();
5766 5922  
  5923 +/** @description request parameter type for postServiceOrderProcurePrint */
  5924 +export interface PostServiceOrderProcurePrintOption {
  5925 + /**
  5926 + * @description
  5927 + * dto
  5928 + */
  5929 + body: {
  5930 + /**
  5931 + @description
  5932 + dto */
  5933 + dto: ProcurePrintDto;
  5934 + };
  5935 +}
  5936 +
  5937 +/** @description response type for postServiceOrderProcurePrint */
  5938 +export interface PostServiceOrderProcurePrintResponse {
  5939 + /**
  5940 + * @description
  5941 + * OK
  5942 + */
  5943 + 200: ServerResult;
  5944 + /**
  5945 + * @description
  5946 + * Created
  5947 + */
  5948 + 201: any;
  5949 + /**
  5950 + * @description
  5951 + * Unauthorized
  5952 + */
  5953 + 401: any;
  5954 + /**
  5955 + * @description
  5956 + * Forbidden
  5957 + */
  5958 + 403: any;
  5959 + /**
  5960 + * @description
  5961 + * Not Found
  5962 + */
  5963 + 404: any;
  5964 +}
  5965 +
  5966 +export type PostServiceOrderProcurePrintResponseSuccess =
  5967 + PostServiceOrderProcurePrintResponse[200];
  5968 +/**
  5969 + * @description
  5970 + * 采购打印订单
  5971 + * @tags 内部订单
  5972 + * @produces *
  5973 + * @consumes application/json
  5974 + */
  5975 +export const postServiceOrderProcurePrint = /* #__PURE__ */ (() => {
  5976 + const method = 'post';
  5977 + const url = '/service/order/procurePrint';
  5978 + function request(
  5979 + option: PostServiceOrderProcurePrintOption,
  5980 + ): Promise<PostServiceOrderProcurePrintResponseSuccess> {
  5981 + return requester(request.url, {
  5982 + method: request.method,
  5983 + ...option,
  5984 + }) as unknown as Promise<PostServiceOrderProcurePrintResponseSuccess>;
  5985 + }
  5986 +
  5987 + /** http method */
  5988 + request.method = method;
  5989 + /** request url */
  5990 + request.url = url;
  5991 + return request;
  5992 +})();
  5993 +
  5994 +/** @description request parameter type for postServiceOrderProcureSend */
  5995 +export interface PostServiceOrderProcureSendOption {
  5996 + /**
  5997 + * @description
  5998 + * dto
  5999 + */
  6000 + body: {
  6001 + /**
  6002 + @description
  6003 + dto */
  6004 + dto: Dto;
  6005 + };
  6006 +}
  6007 +
  6008 +/** @description response type for postServiceOrderProcureSend */
  6009 +export interface PostServiceOrderProcureSendResponse {
  6010 + /**
  6011 + * @description
  6012 + * OK
  6013 + */
  6014 + 200: ServerResult;
  6015 + /**
  6016 + * @description
  6017 + * Created
  6018 + */
  6019 + 201: any;
  6020 + /**
  6021 + * @description
  6022 + * Unauthorized
  6023 + */
  6024 + 401: any;
  6025 + /**
  6026 + * @description
  6027 + * Forbidden
  6028 + */
  6029 + 403: any;
  6030 + /**
  6031 + * @description
  6032 + * Not Found
  6033 + */
  6034 + 404: any;
  6035 +}
  6036 +
  6037 +export type PostServiceOrderProcureSendResponseSuccess =
  6038 + PostServiceOrderProcureSendResponse[200];
  6039 +/**
  6040 + * @description
  6041 + * 采购发送订单
  6042 + * @tags 内部订单
  6043 + * @produces *
  6044 + * @consumes application/json
  6045 + */
  6046 +export const postServiceOrderProcureSend = /* #__PURE__ */ (() => {
  6047 + const method = 'post';
  6048 + const url = '/service/order/procureSend';
  6049 + function request(
  6050 + option: PostServiceOrderProcureSendOption,
  6051 + ): Promise<PostServiceOrderProcureSendResponseSuccess> {
  6052 + return requester(request.url, {
  6053 + method: request.method,
  6054 + ...option,
  6055 + }) as unknown as Promise<PostServiceOrderProcureSendResponseSuccess>;
  6056 + }
  6057 +
  6058 + /** http method */
  6059 + request.method = method;
  6060 + /** request url */
  6061 + request.url = url;
  6062 + return request;
  6063 +})();
  6064 +
5767 6065 /** @description response type for getServiceOrderProvideInvoicingStatus */
5768 6066 export interface GetServiceOrderProvideInvoicingStatusResponse {
5769 6067 /**
... ...