Commit 1f90f26b3b951622e263a2b3d9d13faf824e0512

Authored by zhongnanhuang
1 parent 7bd04f86

feat: update 售后审核

src/pages/Order/components/CheckModal.tsx
1 1 import { RESPONSE_CODE } from '@/constants/enum';
2 2 import {
  3 + postServiceOrderAfterSalesCheck,
3 4 postServiceOrderCheckOrder,
4 5 postServiceOrderFileProcess,
5 6 postServiceOrderFinanceCheckOrder,
  7 + postServiceOrderQueryAfterSalesInfoSnapshot,
6 8 } from '@/services';
7 9 import { ModalForm, ProFormTextArea } from '@ant-design/pro-components';
8   -import { Button, Form, Modal, UploadFile, message } from 'antd';
  10 +import { Button, Descriptions, Form, Modal, UploadFile, message } from 'antd';
9 11 import Upload, { RcFile, UploadProps } from 'antd/es/upload';
10 12 import { useEffect, useRef, useState } from 'react';
11 13 import { CHECK_TYPE, COMFIR_RECEIPT_IMAGES_NUMBER } from '../constant';
... ... @@ -34,6 +36,28 @@ export default ({
34 36 const [fileList, setFileList] = useState<UploadFile[]>([]);
35 37 const handleCancel = () => setPreviewOpen(false);
36 38 const [messageApi, contextHolder] = message.useMessage();
  39 + const [afterSalesItems, setAfterSalesItems] = useState<any[]>([]);
  40 + const [form] = Form.useForm<{ name: string; company: string }>();
  41 + let subOrderIds: any[] = subOrders.map((subOrder) => subOrder.id);
  42 +
  43 + /**
  44 + * 审核类型
  45 + */
  46 + function checkType(check: string) {
  47 + if (orderCheckType === check) {
  48 + return true;
  49 + }
  50 + return false;
  51 + }
  52 +
  53 + const getOrderAfterSalesInfo = async () => {
  54 + let res = await postServiceOrderQueryAfterSalesInfoSnapshot({
  55 + data: { subOrderIds: subOrderIds },
  56 + });
  57 + setAfterSalesItems([]);
  58 + console.log(res);
  59 + };
  60 +
37 61 const handleChange: UploadProps['onChange'] = ({ fileList: newFileList }) => {
38 62 //fileListObj得在change里变化,change的参数是已经处理过的file数组
39 63 //beforeUpload中的参数file是未处理过,还需要Base64拿到文件数据处理
... ... @@ -96,6 +120,11 @@ export default ({
96 120 message.info('您的剪贴板中没有照片');
97 121 };
98 122 useEffect(() => {
  123 + //回显售后信息
  124 + if (checkType(CHECK_TYPE.AFTER_SALES)) {
  125 + getOrderAfterSalesInfo();
  126 + }
  127 +
99 128 document.addEventListener('paste', onPaste);
100 129 return () => {
101 130 document.removeEventListener('paste', onPaste);
... ... @@ -143,15 +172,6 @@ export default ({
143 172 headers: { Authorization: localStorage.getItem('token') },
144 173 };
145 174  
146   - const [form] = Form.useForm<{ name: string; company: string }>();
147   - let subOrderIds: any[] = [];
148   - //是单条子订单审核
149   - if (subOrders === undefined) {
150   - subOrderIds = [data.id];
151   - } else {
152   - subOrderIds = subOrders.map((subOrder) => subOrder.id);
153   - }
154   -
155 175 async function doCheck(body: object) {
156 176 const data = await postServiceOrderCheckOrder({
157 177 data: body,
... ... @@ -224,7 +244,7 @@ export default ({
224 244 * @param body 售后审核
225 245 */
226 246 async function doAfterSalesCheck(body: object) {
227   - const data = await postServiceOrderFinanceCheckOrder({
  247 + const data = await postServiceOrderAfterSalesCheck({
228 248 data: body,
229 249 });
230 250 if (data.result === RESPONSE_CODE.SUCCESS) {
... ... @@ -233,16 +253,6 @@ export default ({
233 253 }
234 254 }
235 255  
236   - /**
237   - * 审核类型
238   - */
239   - function checkType(check: string) {
240   - if (orderCheckType === check) {
241   - return true;
242   - }
243   - return false;
244   - }
245   -
246 256 return (
247 257 <>
248 258 <ModalForm<{
... ... @@ -281,10 +291,10 @@ export default ({
281 291  
282 292 if (checkType(CHECK_TYPE.AFTER_SALES)) {
283 293 doAfterSalesCheck({
284   - flag: false,
285   - ids: subOrderIds,
286   - externalProcurement: 0,
287   - checkNotes: form.getFieldValue('name'),
  294 + isAfterSalesSuccess: false,
  295 + subOrderIds: subOrderIds,
  296 + mainId: data.id,
  297 + afterSalesRejectionNotes: form.getFieldValue('name'),
288 298 });
289 299 return;
290 300 }
... ... @@ -338,10 +348,10 @@ export default ({
338 348 if (checkType(CHECK_TYPE.AFTER_SALES)) {
339 349 //审核通过
340 350 return doAfterSalesCheck({
341   - flag: true,
342   - ids: subOrderIds,
343   - externalProcurement: 0,
344   - checkNotes: values.name,
  351 + isAfterSalesSuccess: true,
  352 + subOrderIds: subOrderIds,
  353 + mainId: data.id,
  354 + afterSalesRejectionNotes: values.name,
345 355 });
346 356 }
347 357  
... ... @@ -351,6 +361,20 @@ export default ({
351 361 }}
352 362 onOpenChange={setCheckVisible}
353 363 >
  364 + {checkType(CHECK_TYPE.AFTER_SALES) ? (
  365 + <Descriptions
  366 + className="mb-5"
  367 + labelStyle={{ textAlign: 'center' }}
  368 + column={1}
  369 + bordered
  370 + title={<span className="text-sm font-medium">售后信息</span>}
  371 + size="small"
  372 + items={afterSalesItems}
  373 + />
  374 + ) : (
  375 + ''
  376 + )}
  377 +
354 378 <div>请特别注意订单总金额与订单金额。</div>
355 379 <ProFormTextArea
356 380 width="lg"
... ... @@ -359,7 +383,9 @@ export default ({
359 383 />
360 384 {checkType(CHECK_TYPE.FINALCIAL) ? (
361 385 <>
362   - {/* <div className="pb-4 text-xs decoration-gray-50">可复制照片粘贴</div> */}
  386 + <div className="pb-4 text-xs decoration-gray-50">
  387 + 可复制照片粘贴
  388 + </div>
363 389 <Upload {...props}>
364 390 {fileList.length < COMFIR_RECEIPT_IMAGES_NUMBER
365 391 ? uploadButton
... ...
src/pages/Order/constant.ts
... ... @@ -119,6 +119,7 @@ export const ORDER_STATUS_OPTIONS = {
119 119 AUDIT_FAILED: '审核失败',
120 120 IN_AFTER_SALES: '售后中',
121 121 AFTER_SALES_COMPLETION: '售后完成',
  122 + AFTER_SALES_FAILURE: '售后失败',
122 123 NO_NEED_SEND: '无需发货',
123 124 PROCURE_CONVERT_WAREHOUSE_KEEPER: '采购转仓库',
124 125 };
... ... @@ -165,6 +166,7 @@ export const TAGS_COLOR = new Map&lt;string, string&gt;([
165 166 ['PROCURE_WAIT_SHIP', 'processing'],
166 167 ['NO_NEED_SEND', 'success'],
167 168 ['PROCURE_CONVERT_WAREHOUSE_KEEPER', 'processing'],
  169 + ['AFTER_SALES_FAILURE', 'red'],
168 170 ]);
169 171 export const SALES_CODE_OPTIONS = [
170 172 { label: 'D-Linda', value: 'D-Linda' },
... ...
src/pages/Order/index.tsx
... ... @@ -66,7 +66,6 @@ import ProcureConvertModal from &#39;./components/ProcureConvertModal&#39;;
66 66 import SubOrderComfirmReceiptImagesModal from './components/SubOrderComfirmReceiptImagesModal';
67 67 import {
68 68 AFTER_INVOICING_STATUS,
69   - AFTE_SALES_PLAN_OPTIONS,
70 69 CHECK_TYPE,
71 70 LOGISTICS_STATUS_OPTIONS,
72 71 MAIN_ORDER_COLUMNS,
... ... @@ -357,31 +356,37 @@ const OrderPage = () =&gt; {
357 356 orderStatus === 'IN_AFTER_SALES'
358 357 ) {
359 358 return (
360   - <MyToolTip
361   - key="key"
362   - title={
363   - enumValueToLabel(
364   - optRecord.afterSalesPlan,
365   - AFTE_SALES_PLAN_OPTIONS,
366   - ) +
367   - ' ' +
368   - optRecord.afterSalesNotes
369   - }
370   - content={
371   - <>
372   - <Tag
373   - color={TAGS_COLOR.get(optRecord.orderStatus)}
374   - style={{ marginRight: '4px' }}
375   - >
376   - {enumValueToLabel(
377   - optRecord.orderStatus,
378   - ORDER_STATUS_OPTIONS,
379   - )}
380   - </Tag>
381   - <QuestionCircleOutlined style={{ color: '#C1C1C1' }} />
382   - </>
383   - }
384   - />
  359 + // <MyToolTip
  360 + // key="key"
  361 + // title={
  362 + // enumValueToLabel(
  363 + // optRecord.afterSalesPlan,
  364 + // AFTE_SALES_PLAN_OPTIONS,
  365 + // ) +
  366 + // ' ' +
  367 + // optRecord.afterSalesNotes
  368 + // }
  369 + // content={
  370 + // <>
  371 + // <Tag
  372 + // color={TAGS_COLOR.get(optRecord.orderStatus)}
  373 + // style={{ marginRight: '4px' }}
  374 + // >
  375 + // {enumValueToLabel(
  376 + // optRecord.orderStatus,
  377 + // ORDER_STATUS_OPTIONS,
  378 + // )}
  379 + // </Tag>
  380 + // <QuestionCircleOutlined style={{ color: '#C1C1C1' }} />
  381 + // </>
  382 + // }
  383 + // />
  384 + <Tag
  385 + color={TAGS_COLOR.get(optRecord.orderStatus)}
  386 + style={{ marginRight: '4px' }}
  387 + >
  388 + {enumValueToLabel(optRecord.orderStatus, ORDER_STATUS_OPTIONS)}
  389 + </Tag>
385 390 );
386 391 }
387 392  
... ... @@ -436,7 +441,6 @@ const OrderPage = () =&gt; {
436 441 //财务审核附件处理
437 442 const getInvoicingCheckAnnexList = () => {
438 443 let invoicingCheckAnnexList = optRecord.invoicingCheckAnnexList;
439   -
440 444 return (
441 445 <div>
442 446 <Image.PreviewGroup
... ... @@ -883,7 +887,7 @@ const OrderPage = () =&gt; {
883 887 className="p-0"
884 888 type="link"
885 889 onClick={() => {
886   - setOrderRow(optRecord);
  890 + setOrderRow(record);
887 891 setCheckVisible(true);
888 892 setSelectedRows([optRecord]);
889 893 setOrderCheckType(CHECK_TYPE.NORMAL);
... ... @@ -900,7 +904,7 @@ const OrderPage = () =&gt; {
900 904 className="p-0"
901 905 type="link"
902 906 onClick={() => {
903   - setOrderRow(optRecord);
  907 + setOrderRow(record);
904 908 setCheckVisible(true);
905 909 setSelectedRows([optRecord]);
906 910 setOrderCheckType(CHECK_TYPE.AFTER_SALES);
... ... @@ -917,7 +921,7 @@ const OrderPage = () =&gt; {
917 921 className="p-0"
918 922 type="link"
919 923 onClick={() => {
920   - setOrderRow(optRecord);
  924 + setOrderRow(record);
921 925 setCheckVisible(true);
922 926 setSelectedRows([optRecord]);
923 927 setOrderCheckType(CHECK_TYPE.FINALCIAL);
... ... @@ -934,7 +938,7 @@ const OrderPage = () =&gt; {
934 938 className="p-0"
935 939 type="link"
936 940 onClick={() => {
937   - setOrderRow(optRecord);
  941 + setOrderRow(record);
938 942 setSelectedRows([optRecord]);
939 943 setOrderCheckType(CHECK_TYPE.PROCURE);
940 944 setProcureCheckModalVisible(true);
... ... @@ -1645,12 +1649,13 @@ const OrderPage = () =&gt; {
1645 1649 let selectedSubOrders = selectedRowObj[record.id];
1646 1650 setSelectedRows(selectedSubOrders);
1647 1651 if (selectedSubOrders === undefined) {
1648   - setSelectedRows(record.subOrderInformationLists);
  1652 + selectedSubOrders = record.subOrderInformationLists;
1649 1653 }
1650   - for (let i = 0; i < selectedRows.length; i++) {
  1654 + for (let i = 0; i < selectedSubOrders.length; i++) {
1651 1655 if (
1652   - selectedRows[i].orderStatus !== 'UNAUDITED' &&
1653   - selectedRows[i].orderStatus !== 'FINANCE_PROCESS'
  1656 + selectedSubOrders[i].orderStatus !== 'UNAUDITED' &&
  1657 + selectedSubOrders[i].orderStatus !==
  1658 + 'FINANCE_PROCESS'
1654 1659 ) {
1655 1660 message.error('请选择未审核的子订单进行审核');
1656 1661 return;
... ... @@ -1658,6 +1663,7 @@ const OrderPage = () =&gt; {
1658 1663 }
1659 1664 setOrderRow(record);
1660 1665 setCheckVisible(true);
  1666 + setSelectedRows(selectedSubOrders);
1661 1667 setOrderCheckType(CHECK_TYPE.NORMAL);
1662 1668 }}
1663 1669 >
... ... @@ -1675,11 +1681,12 @@ const OrderPage = () =&gt; {
1675 1681 let selectedSubOrders = selectedRowObj[record.id];
1676 1682 setSelectedRows(selectedSubOrders);
1677 1683 if (selectedSubOrders === undefined) {
1678   - setSelectedRows(record.subOrderInformationLists);
  1684 + selectedSubOrders = record.subOrderInformationLists;
1679 1685 }
1680   - for (let i = 0; i < selectedRows.length; i++) {
  1686 + for (let i = 0; i < selectedSubOrders.length; i++) {
1681 1687 if (
1682   - selectedRows[i].orderStatus !== 'IN_AFTER_SALES'
  1688 + selectedSubOrders[i].orderStatus !==
  1689 + 'IN_AFTER_SALES'
1683 1690 ) {
1684 1691 message.error('请选择售后中的子订单进行审核');
1685 1692 return;
... ... @@ -1687,6 +1694,7 @@ const OrderPage = () =&gt; {
1687 1694 }
1688 1695 setOrderRow(record);
1689 1696 setCheckVisible(true);
  1697 + setSelectedRows(selectedSubOrders);
1690 1698 setOrderCheckType(CHECK_TYPE.AFTER_SALES);
1691 1699 }}
1692 1700 >
... ... @@ -1753,12 +1761,13 @@ const OrderPage = () =&gt; {
1753 1761 let selectedSubOrders = selectedRowObj[record.id];
1754 1762 setSelectedRows(selectedSubOrders);
1755 1763 if (selectedSubOrders === undefined) {
1756   - setSelectedRows(record.subOrderInformationLists);
  1764 + selectedSubOrders = record.subOrderInformationLists;
1757 1765 }
1758   - for (let i = 0; i < selectedRows.length; i++) {
  1766 + for (let i = 0; i < selectedSubOrders.length; i++) {
1759 1767 if (
1760   - selectedRows[i].orderStatus !== 'UNAUDITED' &&
1761   - selectedRows[i].orderStatus !== 'FINANCE_PROCESS'
  1768 + selectedSubOrders[i].orderStatus !== 'UNAUDITED' &&
  1769 + selectedSubOrders[i].orderStatus !==
  1770 + 'FINANCE_PROCESS'
1762 1771 ) {
1763 1772 message.error('请选择未审核的子订单进行审核');
1764 1773 return;
... ... @@ -1766,6 +1775,7 @@ const OrderPage = () =&gt; {
1766 1775 }
1767 1776 setOrderRow(record);
1768 1777 setCheckVisible(true);
  1778 + setSelectedRows(selectedSubOrders);
1769 1779 setOrderCheckType(CHECK_TYPE.FINALCIAL);
1770 1780 }}
1771 1781 >
... ... @@ -1784,11 +1794,12 @@ const OrderPage = () =&gt; {
1784 1794 let selectedSubOrders = selectedRowObj[record.id];
1785 1795 setSelectedRows(selectedSubOrders);
1786 1796 if (selectedSubOrders === undefined) {
1787   - setSelectedRows(record.subOrderInformationLists);
  1797 + selectedSubOrders = record.subOrderInformationLists;
1788 1798 }
1789   - for (let i = 0; i < selectedRows.length; i++) {
  1799 + for (let i = 0; i < selectedSubOrders.length; i++) {
1790 1800 if (
1791   - selectedRows[i].orderStatus !== 'PROCURE_UN_PROCESS'
  1801 + selectedSubOrders[i].orderStatus !==
  1802 + 'PROCURE_UN_PROCESS'
1792 1803 ) {
1793 1804 message.error('请选择未审核的子订单进行审核');
1794 1805 return;
... ... @@ -1796,6 +1807,7 @@ const OrderPage = () =&gt; {
1796 1807 }
1797 1808 setOrderRow(record);
1798 1809 setProcureCheckModalVisible(true);
  1810 + setSelectedRows(selectedSubOrders);
1799 1811 setOrderCheckType(CHECK_TYPE.PROCURE);
1800 1812 }}
1801 1813 >
... ...
src/services/definition.ts
... ... @@ -712,6 +712,11 @@ export interface ProcureCheckOrderDto {
712 712 export interface ProcureConvertProcureDto {
713 713 /**
714 714 * @description
  715 + * 采购转发备注
  716 + */
  717 + procureConvertNotes?: string;
  718 + /**
  719 + * @description
715 720 * 采购人名称
716 721 */
717 722 procureName?: string;
... ... @@ -764,6 +769,14 @@ export interface ProductInformationDto {
764 769 productName?: string;
765 770 }
766 771  
  772 +export interface QueryAfterSalesInfoSnapshotDto {
  773 + /**
  774 + * @description
  775 + * 子订单id集合
  776 + */
  777 + subOrderIds?: Array<number>;
  778 +}
  779 +
767 780 export interface QueryAnnexDto {
768 781 /**
769 782 * @description
... ... @@ -881,6 +894,16 @@ export interface View {
881 894 contentType?: string;
882 895 }
883 896  
  897 +export interface YearMonth {
  898 + leapYear?: boolean;
  899 + /** @format int32 */
  900 + month?: number;
  901 + /** @format int32 */
  902 + monthValue?: number;
  903 + /** @format int32 */
  904 + year?: number;
  905 +}
  906 +
884 907 export interface Dto {
885 908 /**
886 909 * @description
... ...
src/services/request.ts
... ... @@ -41,6 +41,7 @@ import type {
41 41 ProcureOrderDto,
42 42 ProcurePrintDto,
43 43 ProductInformationDto,
  44 + QueryAfterSalesInfoSnapshotDto,
44 45 QueryAnnexDto,
45 46 QueryCustomerInformationDto,
46 47 QueryHistoryRecordDto,
... ... @@ -4847,8 +4848,8 @@ export const postServiceOrderAddOrder = /* #__PURE__ */ (() =&gt; {
4847 4848 return request;
4848 4849 })();
4849 4850  
4850   -/** @description request parameter type for postServiceOrderAfterSalesCompletion */
4851   -export interface PostServiceOrderAfterSalesCompletionOption {
  4851 +/** @description request parameter type for postServiceOrderAfterSalesCheck */
  4852 +export interface PostServiceOrderAfterSalesCheckOption {
4852 4853 /**
4853 4854 * @description
4854 4855 * dto
... ... @@ -4861,8 +4862,8 @@ export interface PostServiceOrderAfterSalesCompletionOption {
4861 4862 };
4862 4863 }
4863 4864  
4864   -/** @description response type for postServiceOrderAfterSalesCompletion */
4865   -export interface PostServiceOrderAfterSalesCompletionResponse {
  4865 +/** @description response type for postServiceOrderAfterSalesCheck */
  4866 +export interface PostServiceOrderAfterSalesCheckResponse {
4866 4867 /**
4867 4868 * @description
4868 4869 * OK
... ... @@ -4890,25 +4891,25 @@ export interface PostServiceOrderAfterSalesCompletionResponse {
4890 4891 404: any;
4891 4892 }
4892 4893  
4893   -export type PostServiceOrderAfterSalesCompletionResponseSuccess =
4894   - PostServiceOrderAfterSalesCompletionResponse[200];
  4894 +export type PostServiceOrderAfterSalesCheckResponseSuccess =
  4895 + PostServiceOrderAfterSalesCheckResponse[200];
4895 4896 /**
4896 4897 * @description
4897   - * 售后完成
  4898 + * 售后审核
4898 4899 * @tags 内部订单
4899 4900 * @produces *
4900 4901 * @consumes application/json
4901 4902 */
4902   -export const postServiceOrderAfterSalesCompletion = /* #__PURE__ */ (() => {
  4903 +export const postServiceOrderAfterSalesCheck = /* #__PURE__ */ (() => {
4903 4904 const method = 'post';
4904   - const url = '/service/order/afterSalesCompletion';
  4905 + const url = '/service/order/afterSalesCheck';
4905 4906 function request(
4906   - option: PostServiceOrderAfterSalesCompletionOption,
4907   - ): Promise<PostServiceOrderAfterSalesCompletionResponseSuccess> {
  4907 + option: PostServiceOrderAfterSalesCheckOption,
  4908 + ): Promise<PostServiceOrderAfterSalesCheckResponseSuccess> {
4908 4909 return requester(request.url, {
4909 4910 method: request.method,
4910 4911 ...option,
4911   - }) as unknown as Promise<PostServiceOrderAfterSalesCompletionResponseSuccess>;
  4912 + }) as unknown as Promise<PostServiceOrderAfterSalesCheckResponseSuccess>;
4912 4913 }
4913 4914  
4914 4915 /** http method */
... ... @@ -6990,6 +6991,78 @@ export const getServiceOrderProvideToken = /* #__PURE__ */ (() =&gt; {
6990 6991 return request;
6991 6992 })();
6992 6993  
  6994 +/** @description request parameter type for postServiceOrderQueryAfterSalesInfoSnapshot */
  6995 +export interface PostServiceOrderQueryAfterSalesInfoSnapshotOption {
  6996 + /**
  6997 + * @description
  6998 + * dto
  6999 + */
  7000 + body: {
  7001 + /**
  7002 + @description
  7003 + dto */
  7004 + dto: QueryAfterSalesInfoSnapshotDto;
  7005 + };
  7006 +}
  7007 +
  7008 +/** @description response type for postServiceOrderQueryAfterSalesInfoSnapshot */
  7009 +export interface PostServiceOrderQueryAfterSalesInfoSnapshotResponse {
  7010 + /**
  7011 + * @description
  7012 + * OK
  7013 + */
  7014 + 200: ServerResult;
  7015 + /**
  7016 + * @description
  7017 + * Created
  7018 + */
  7019 + 201: any;
  7020 + /**
  7021 + * @description
  7022 + * Unauthorized
  7023 + */
  7024 + 401: any;
  7025 + /**
  7026 + * @description
  7027 + * Forbidden
  7028 + */
  7029 + 403: any;
  7030 + /**
  7031 + * @description
  7032 + * Not Found
  7033 + */
  7034 + 404: any;
  7035 +}
  7036 +
  7037 +export type PostServiceOrderQueryAfterSalesInfoSnapshotResponseSuccess =
  7038 + PostServiceOrderQueryAfterSalesInfoSnapshotResponse[200];
  7039 +/**
  7040 + * @description
  7041 + * 查询售后信息快照
  7042 + * @tags 内部订单
  7043 + * @produces *
  7044 + * @consumes application/json
  7045 + */
  7046 +export const postServiceOrderQueryAfterSalesInfoSnapshot =
  7047 + /* #__PURE__ */ (() => {
  7048 + const method = 'post';
  7049 + const url = '/service/order/queryAfterSalesInfoSnapshot';
  7050 + function request(
  7051 + option: PostServiceOrderQueryAfterSalesInfoSnapshotOption,
  7052 + ): Promise<PostServiceOrderQueryAfterSalesInfoSnapshotResponseSuccess> {
  7053 + return requester(request.url, {
  7054 + method: request.method,
  7055 + ...option,
  7056 + }) as unknown as Promise<PostServiceOrderQueryAfterSalesInfoSnapshotResponseSuccess>;
  7057 + }
  7058 +
  7059 + /** http method */
  7060 + request.method = method;
  7061 + /** request url */
  7062 + request.url = url;
  7063 + return request;
  7064 + })();
  7065 +
6993 7066 /** @description request parameter type for postServiceOrderQueryCustomerInformation */
6994 7067 export interface PostServiceOrderQueryCustomerInformationOption {
6995 7068 /**
... ...