Commit b559aad7f6ad362cf23818301c2f46ce3db311f3

Authored by zhongnanhuang
1 parent cc919860

feat: update取消申请开票、仓库编辑

src/pages/Order/components/CheckModal.tsx
... ... @@ -4,7 +4,6 @@ import {
4 4 postServiceOrderCheckOrder,
5 5 postServiceOrderFileProcess,
6 6 postServiceOrderFinanceCheckOrder,
7   - postServiceOrderQueryAfterSalesInfoSnapshot,
8 7 } from '@/services';
9 8 import { ModalForm, ProFormTextArea } from '@ant-design/pro-components';
10 9 import { Button, Col, Form, Modal, Row, UploadFile, message } from 'antd';
... ... @@ -62,21 +61,22 @@ export default ({
62 61 }
63 62  
64 63 const getOrderAfterSalesInfo = async () => {
65   - let res = await postServiceOrderQueryAfterSalesInfoSnapshot({
66   - data: { subOrderIds: subOrderIds },
67   - });
  64 + // let res = await postServiceOrderQueryAfterSalesInfoSnapshot({
  65 + // data: { subOrderIds: subOrderIds },
  66 + // });
68 67  
69 68 //附件
70   - let annex = res?.data[0]?.afterSalesAnnexList;
71   -
  69 + let annex = subOrders[0].afterAnnexList;
72 70 let annexLinks = annex?.map((f) => {
73 71 return (
74   - <Button type="link" key="key" href={f}>
  72 + <Button className="p-0 pr-1" type="link" key="key" href={f}>
75 73 {getAliYunOSSFileNameFromUrl(f)}
76 74 </Button>
77 75 );
78 76 });
79 77  
  78 + console.log(annexLinks);
  79 +
80 80 setAfterSalesInfo(
81 81 <div className="my-5">
82 82 <Row gutter={[16, 24]}>
... ... @@ -85,14 +85,14 @@ export default ({
85 85 </Col>
86 86 <Col span={18}>
87 87 {enumValueToLabel(
88   - res?.data[0]?.afterSalesPlan,
  88 + subOrders[0]?.afterSalesPlan,
89 89 AFTE_SALES_PLAN_OPTIONS,
90 90 )}
91 91 </Col>
92 92 <Col span={6}>
93 93 <span className="className='text-[#333333]'">售后原因</span>
94 94 </Col>
95   - <Col span={18}>{res?.data[0]?.afterSalesNotes}</Col>
  95 + <Col span={18}>{subOrders[0]?.afterSalesNotes}</Col>
96 96 <Col span={6}>
97 97 <span className="className='text-[#333333]'">附件</span>
98 98 </Col>
... ...
src/pages/Order/components/OrderDrawer.tsx
... ... @@ -204,14 +204,15 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
204 204 * 回显金蝶信息
205 205 */
206 206 async function showKindeeInfo() {
  207 + console.log(copyData);
207 208 //客户信息
208   - if (data.customerId) {
  209 + if (copyData.customerId) {
209 210 //客户回显
210   - autoFillCustomerContactSelectOptions(data.customerId);
  211 + autoFillCustomerContactSelectOptions(copyData.customerId);
211 212 }
212 213  
213 214 //商品单位回显
214   - let list = data?.subOrderInformationLists;
  215 + let list = copyData?.subOrderInformationLists;
215 216 if (list) {
216 217 let newProductUnitOptionsList = [...productUnitOptionsList];
217 218 for (let i = 0; i < list.length; i++) {
... ... @@ -276,9 +277,15 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
276 277 }
277 278  
278 279 getSalesCodeOptions();
279   - showKindeeInfo();
  280 + if (!optType('after-sales-check')) {
  281 + showKindeeInfo();
  282 + }
280 283 }
281 284  
  285 + /**
  286 + * 获取旧订单信息
  287 + * @param id
  288 + */
282 289 async function getOldOrderData(id: any) {
283 290 let res = await postServiceOrderAfterSalesQuerySnapshotOrder({
284 291 data: {
... ... @@ -286,11 +293,16 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
286 293 },
287 294 });
288 295  
289   - console.log(res);
290 296 copyData = res.data.mainOrder;
291 297 copyData.subOrderInformationLists = res.data.subOrders;
292 298 originSubOrders = res.data.subOrders;
293 299  
  300 + //客户显示
  301 + form.setFieldValue('erpCustomerId', {
  302 + label: copyData.erpCustomerName,
  303 + value: copyData.customerId,
  304 + });
  305 +
294 306 buildOrderData();
295 307 }
296 308  
... ... @@ -503,6 +515,23 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
503 515 form.setFieldValue('totalPayment', totalPayment);
504 516 }
505 517  
  518 + /**
  519 + * 检查客户是否可以编辑
  520 + * @returns
  521 + */
  522 + const customerEditable = () => {
  523 + let erpCustomerId = form.getFieldValue('erpCustomerId');
  524 + if (
  525 + optType('after-sales-check') ||
  526 + erpCustomerId === null ||
  527 + erpCustomerId === undefined
  528 + ) {
  529 + return false;
  530 + }
  531 +
  532 + return true;
  533 + };
  534 +
506 535 useEffect(() => {
507 536 if (optType('after-sales-check')) {
508 537 getOldOrderData(data.id);
... ... @@ -547,6 +576,7 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
547 576 onClick={() => {
548 577 setSubmitBtnLoading(true);
549 578 props.submit();
  579 + setSubmitBtnLoading(false);
550 580 }}
551 581 >
552 582 确定
... ... @@ -705,12 +735,19 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
705 735 key="erpCustomerId"
706 736 width="lg"
707 737 showSearch
  738 + disabled={optType('after-sales-check')}
708 739 label={
709 740 <>
710 741 <span>客户</span>
711 742 <span
712   - className="pl-2 text-xs text-[#1677ff] cursor-pointer"
  743 + className={
  744 + 'pl-2 text-xs cursor-pointer ' +
  745 + (customerEditable() ? 'text-[#1677ff]' : 'text-gray-400')
  746 + }
713 747 onClick={() => {
  748 + if (!customerEditable()) {
  749 + return;
  750 + }
714 751 let customerId = form.getFieldValue('erpCustomerId');
715 752 if (typeof customerId === 'string') {
716 753 setCustomer({ ...customer, id: customerId });
... ... @@ -728,17 +765,17 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
728 765 rules={[{ required: true, message: '客户必填' }]}
729 766 onChange={(_, option) => {
730 767 //新增客户
731   - if (option.type === 'add') {
732   - setCustomer({ name: option.name });
  768 + if (option?.type === 'add') {
  769 + setCustomer({ name: option?.name });
733 770 setKingdeeCstomerModalVisible(true);
734 771 return;
735 772 }
736   - autoFillCustomerContactSelectOptions(option.id);
  773 + autoFillCustomerContactSelectOptions(option?.id);
737 774 }}
738 775 initialValue={{
739   - label: data?.erpCustomerName,
740   - value: data?.customerId,
741   - id: data?.customerId,
  776 + label: copyData?.erpCustomerName,
  777 + value: copyData?.customerId,
  778 + id: copyData?.customerId,
742 779 }}
743 780 fieldProps={{
744 781 optionItemRender(item) {
... ... @@ -813,6 +850,7 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
813 850 }}
814 851 initialValue={data.contactAddress}
815 852 options={productCustomerContactOptions}
  853 + disabled={optType('after-sales-check')}
816 854 />
817 855  
818 856 <ProFormText
... ... @@ -864,13 +902,14 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
864 902 <Button
865 903 className="rounded-l-none"
866 904 type="primary"
  905 + disabled={optType('after-sales-check')}
867 906 onClick={computeTotalPayment}
868 907 >
869 908 计算
870 909 </Button>
871 910 ),
872 911 }}
873   - // disabled={mainInfoDisbled}
  912 + disabled={optType('after-sales-check')}
874 913 />
875 914 </div>
876 915  
... ... @@ -882,7 +921,7 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
882 921 label="支付渠道"
883 922 options={enumToSelect(PAYMENT_CHANNEL_OPTIONS)}
884 923 rules={[{ required: true, message: '支付渠道必填' }]}
885   - // disabled={mainInfoDisbled}
  924 + disabled={optType('after-sales-check')}
886 925 />
887 926 <ProFormSelect
888 927 placeholder="请输入支付方式"
... ... @@ -892,7 +931,7 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
892 931 label="支付方式"
893 932 options={enumToSelect(PAYMENT_METHOD_OPTIONS)}
894 933 rules={[{ required: true, message: '支付方式必填' }]}
895   - // disabled={mainInfoDisbled}
  934 + disabled={optType('after-sales-check')}
896 935 />
897 936 <ProFormSelect
898 937 placeholder="选择是否需要开票"
... ... @@ -901,7 +940,7 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
901 940 key="invoicingStatus"
902 941 label="是否需要开票"
903 942 options={getInvoicingSelect()}
904   - // disabled={mainInfoDisbled}
  943 + disabled={optType('after-sales-check')}
905 944 onChange={(_, option) => {
906 945 setInvoicingStatus(option.value);
907 946 if (option.value === 'UN_INVOICE') {
... ... @@ -917,7 +956,7 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
917 956 name="invoiceIdentificationNumber"
918 957 label="开票信息"
919 958 key="invoiceIdentificationNumber"
920   - // disabled={mainInfoDisbled}
  959 + disabled={optType('after-sales-check')}
921 960 hidden={invoicingStatus === 'UN_INVOICE'}
922 961 placeholder="请输入开票信息"
923 962 rules={[
... ... @@ -933,7 +972,7 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
933 972 width="lg"
934 973 key="invoicingTime"
935 974 name="invoicingTime"
936   - // disabled={mainInfoDisbled}
  975 + disabled={optType('after-sales-check')}
937 976 hidden={invoicingStatus === 'UN_INVOICE'}
938 977 label="开票时间"
939 978 placeholder="请输入开票时间"
... ... @@ -946,7 +985,7 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
946 985 name="bank"
947 986 key="bank"
948 987 label="开户银行"
949   - // disabled={mainInfoDisbled}
  988 + disabled={optType('after-sales-check')}
950 989 hidden={invoicingStatus === 'UN_INVOICE'}
951 990 placeholder="请输入开户银行"
952 991 />
... ... @@ -956,7 +995,7 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
956 995 name="bankAccountNumber"
957 996 hidden={invoicingStatus === 'UN_INVOICE'}
958 997 label="银行账号"
959   - // disabled={mainInfoDisbled}
  998 + disabled={optType('after-sales-check')}
960 999 placeholder="请输入银行账号"
961 1000 />
962 1001 <ProFormTextArea
... ... @@ -964,7 +1003,7 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
964 1003 name="notes"
965 1004 label="备注"
966 1005 key="notes"
967   - // disabled={mainInfoDisbled}
  1006 + disabled={optType('after-sales-check')}
968 1007 placeholder="请输入备注"
969 1008 rules={[
970 1009 {
... ... @@ -976,7 +1015,8 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
976 1015  
977 1016 <h2>商品信息</h2>
978 1017 <ProFormList
979   - creatorButtonProps={{ disabled: false }}
  1018 + creatorButtonProps={{ disabled: optType('after-sales-check') }}
  1019 + deleteIconProps={!optType('after-sales-check')}
980 1020 name="list"
981 1021 label=""
982 1022 copyIconProps={false} //复制按钮不显示
... ... @@ -991,10 +1031,11 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
991 1031 },
992 1032 ]}
993 1033 actionGuard={{
994   - beforeRemoveRow: async (index) => {
  1034 + beforeRemoveRow: async () => {
995 1035 return new Promise((resolve) => {
996   - if (index === 0) {
997   - message.error('第一行数据不能删除');
  1036 + let list = form.getFieldValue('list');
  1037 + if (list && list.length === 1) {
  1038 + message.error('至少需要保留一个商品');
998 1039 resolve(false);
999 1040 return;
1000 1041 }
... ... @@ -1038,7 +1079,7 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
1038 1079 width="lg"
1039 1080 showSearch
1040 1081 name="productName"
1041   - // options={options}
  1082 + disabled={optType('after-sales-check')}
1042 1083 placeholder="请搜索商品"
1043 1084 rules={[{ required: true, message: '商品名称必填' }]}
1044 1085 onChange={(_, option) => {
... ... @@ -1119,6 +1160,15 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
1119 1160 }}
1120 1161 />,
1121 1162 <ProFormText
  1163 + key="orderStatus"
  1164 + name="orderStatus"
  1165 + width="lg"
  1166 + disabled
  1167 + label="orderStatus"
  1168 + placeholder="orderStatus"
  1169 + hidden
  1170 + />,
  1171 + <ProFormText
1122 1172 key={'productCode' + listMeta.index}
1123 1173 width="lg"
1124 1174 name="productCode"
... ... @@ -1150,7 +1200,7 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
1150 1200 rules={[{ required: true, message: '商品参数必填' }]}
1151 1201 disabled={
1152 1202 productParametersDisabledFlagList[listMeta.index] !==
1153   - false
  1203 + false || optType('after-sales-check')
1154 1204 }
1155 1205 />,
1156 1206 <ProFormDigit
... ... @@ -1165,6 +1215,7 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
1165 1215 },
1166 1216 }}
1167 1217 placeholder="请输入商品数量"
  1218 + disabled={optType('after-sales-check')}
1168 1219 rules={[{ required: true, message: '商品数量必填' }]}
1169 1220 />,
1170 1221 <ProFormDigit
... ... @@ -1179,6 +1230,7 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
1179 1230 },
1180 1231 }}
1181 1232 placeholder="请输入商品单价"
  1233 + disabled={optType('after-sales-check')}
1182 1234 rules={[{ required: true, message: '商品单价必填' }]}
1183 1235 />,
1184 1236 <ProFormText
... ...
src/pages/Order/constant.ts
... ... @@ -19,6 +19,7 @@ export const RECEIPTS_RECORD_TYPES = {
19 19 export const PAYMENT_METHOD_OPTIONS = {
20 20 UNPAID: '未付款',
21 21 TAOBAO_ORDER_HAS_BEEN_PAID: '淘宝订单已付款',
  22 + OFFICIAL_WEBSITE_ORDER_HAS_BEEN_PAID: '官网订单已付款',
22 23 PAYMENT_IN_ADVANCE: '预付款',
23 24 WITHHOLDING_ADVANCE_DEPOSIT: '扣预存',
24 25 PLATFORM_SETTLEMENT: '平台结算',
... ...
src/pages/Order/index.tsx
... ... @@ -8,6 +8,7 @@ import {
8 8 postServiceOrderProcureOrder,
9 9 postServiceOrderProcurePrint,
10 10 postServiceOrderQueryServiceOrder,
  11 + postServiceOrderSaleCancelInvoicing,
11 12 } from '@/services';
12 13 import { orderExport } from '@/services/order';
13 14 import {
... ... @@ -717,6 +718,27 @@ const OrderPage = () =&gt; {
717 718 </div>
718 719 </Flex>
719 720 <Flex className="w-[18%]" wrap="wrap" gap="small">
  721 + {optRecord.subPath?.includes('saleCancelInvoicing') ? (
  722 + <ButtonConfirm
  723 + className="p-0"
  724 + title="确认取消申请开票?"
  725 + text="取消申请"
  726 + onConfirm={async () => {
  727 + let res = await postServiceOrderSaleCancelInvoicing({
  728 + data: {
  729 + subOrderIds: [optRecord.id],
  730 + },
  731 + });
  732 +
  733 + if (res && res.result === RESPONSE_CODE.SUCCESS) {
  734 + message.success(res.message);
  735 + refreshTable();
  736 + }
  737 + }}
  738 + />
  739 + ) : (
  740 + ''
  741 + )}
720 742 {optRecord.subPath?.includes('noNeedInvoicingEdit') ? (
721 743 <Button
722 744 className="p-0"
... ... @@ -1662,6 +1684,7 @@ const OrderPage = () =&gt; {
1662 1684 type="link"
1663 1685 onClick={() => {
1664 1686 //勾选的子订单:如果有勾选,后面只校验有勾选的
  1687 +
1665 1688 let selectedSubOrders = selectedRowObj[record.id];
1666 1689 if (
1667 1690 selectedSubOrders === undefined ||
... ... @@ -1676,15 +1699,31 @@ const OrderPage = () =&gt; {
1676 1699 ) {
1677 1700 let orderStatus =
1678 1701 selectedSubOrders[index].orderStatus;
1679   - //是审核通过及之后的订单
  1702 + //仓库管理员在审核之后的任何时候都可以编辑
1680 1703 if (
1681   - orderStatus !== 'UNAUDITED' &&
1682   - orderStatus !== 'AUDIT_FAILED'
  1704 + userInfo.roleSmallVO.code !== 'warehouseKeeper' &&
  1705 + userInfo.roleSmallVO.code !== 'admin'
1683 1706 ) {
1684   - message.error(
1685   - '请选择未审核或者审核失败的订单进行编辑',
1686   - );
1687   - return;
  1707 + //是审核通过及之后的订单
  1708 + if (
  1709 + orderStatus !== 'UNAUDITED' &&
  1710 + orderStatus !== 'AUDIT_FAILED'
  1711 + ) {
  1712 + message.error(
  1713 + '请选择未审核或者审核失败的订单进行编辑',
  1714 + );
  1715 + return;
  1716 + }
  1717 + } else {
  1718 + //仓库管理员只能编辑是还未审核的订单
  1719 + if (
  1720 + userInfo.roleSmallVO.code !== 'admin' &&
  1721 + (orderStatus === 'UNAUDITED' ||
  1722 + orderStatus === 'AUDIT_FAILED')
  1723 + ) {
  1724 + message.error('请选择已审核的订单进行编辑');
  1725 + return;
  1726 + }
1688 1727 }
1689 1728 }
1690 1729 setOrderDrawerVisible(true);
... ... @@ -1830,6 +1869,46 @@ const OrderPage = () =&gt; {
1830 1869 ''
1831 1870 )}
1832 1871  
  1872 + {record.mainPath?.includes('saleCancelInvoicing') ? (
  1873 + <ButtonConfirm
  1874 + className="p-0"
  1875 + title="确认取消申请开票?"
  1876 + text="取消申请"
  1877 + onConfirm={async () => {
  1878 + let selectedSubOrders = selectedRowObj[record.id];
  1879 + if (selectedSubOrders === undefined) {
  1880 + selectedSubOrders = record.subOrderInformationLists;
  1881 + }
  1882 + setSelectedRows(selectedSubOrders);
  1883 + for (let i = 0; i < selectedSubOrders.length; i++) {
  1884 + if (
  1885 + selectedSubOrders[i].afterInvoicingStatus !==
  1886 + 'APPLY_FOR_INVOICING'
  1887 + ) {
  1888 + message.error(
  1889 + '请选择已[申请开票]的子订单进行取消申请',
  1890 + );
  1891 + return;
  1892 + }
  1893 + }
  1894 + let res = await postServiceOrderSaleCancelInvoicing({
  1895 + data: {
  1896 + subOrderIds: selectedSubOrders.map((item) => {
  1897 + return item.id;
  1898 + }),
  1899 + },
  1900 + });
  1901 +
  1902 + if (res && res.result === RESPONSE_CODE.SUCCESS) {
  1903 + message.success(res.message);
  1904 + refreshTable();
  1905 + }
  1906 + }}
  1907 + />
  1908 + ) : (
  1909 + ''
  1910 + )}
  1911 +
1833 1912 {/* 财务审核:主订单暂无 */}
1834 1913 {record.mainPath?.includes('financeCheckOrder') ? (
1835 1914 <Button
... ...
src/services/definition.ts
... ... @@ -1600,12 +1600,7 @@ export interface View {
1600 1600 export interface Dto {
1601 1601 /**
1602 1602 * @description
1603   - * 审核备注
1604   - */
1605   - checkNotes?: string;
1606   - /**
1607   - * @description
1608 1603 * 子订单id集合
1609 1604 */
1610   - subIds?: Array<number>;
  1605 + subOrderIds?: Array<number>;
1611 1606 }
... ...
src/services/request.ts
... ... @@ -39,7 +39,6 @@ import type {
39 39 MaterialStockRes,
40 40 MaterialUnitListRes,
41 41 MeasureUnitListRes,
42   - ModelAndView,
43 42 OrderAddVO,
44 43 OrderAuditLogQueryVO,
45 44 OrderBaseInfoQueryVO,
... ... @@ -248,7 +247,9 @@ export interface GetErrorResponse {
248 247 * @description
249 248 * OK
250 249 */
251   - 200: ModelAndView;
  250 + 200: {
  251 + [propertyName: string]: any;
  252 + };
252 253 /**
253 254 * @description
254 255 * Unauthorized
... ... @@ -269,9 +270,9 @@ export interface GetErrorResponse {
269 270 export type GetErrorResponseSuccess = GetErrorResponse[200];
270 271 /**
271 272 * @description
272   - * errorHtml
  273 + * error
273 274 * @tags basic-error-controller
274   - * @produces text/html
  275 + * @produces *
275 276 */
276 277 export const getError = /* #__PURE__ */ (() => {
277 278 const method = 'get';
... ... @@ -295,7 +296,9 @@ export interface PutErrorResponse {
295 296 * @description
296 297 * OK
297 298 */
298   - 200: ModelAndView;
  299 + 200: {
  300 + [propertyName: string]: any;
  301 + };
299 302 /**
300 303 * @description
301 304 * Created
... ... @@ -321,9 +324,9 @@ export interface PutErrorResponse {
321 324 export type PutErrorResponseSuccess = PutErrorResponse[200];
322 325 /**
323 326 * @description
324   - * errorHtml
  327 + * error
325 328 * @tags basic-error-controller
326   - * @produces text/html
  329 + * @produces *
327 330 * @consumes application/json
328 331 */
329 332 export const putError = /* #__PURE__ */ (() => {
... ... @@ -348,7 +351,9 @@ export interface PostErrorResponse {
348 351 * @description
349 352 * OK
350 353 */
351   - 200: ModelAndView;
  354 + 200: {
  355 + [propertyName: string]: any;
  356 + };
352 357 /**
353 358 * @description
354 359 * Created
... ... @@ -374,9 +379,9 @@ export interface PostErrorResponse {
374 379 export type PostErrorResponseSuccess = PostErrorResponse[200];
375 380 /**
376 381 * @description
377   - * errorHtml
  382 + * error
378 383 * @tags basic-error-controller
379   - * @produces text/html
  384 + * @produces *
380 385 * @consumes application/json
381 386 */
382 387 export const postError = /* #__PURE__ */ (() => {
... ... @@ -401,7 +406,9 @@ export interface DeleteErrorResponse {
401 406 * @description
402 407 * OK
403 408 */
404   - 200: ModelAndView;
  409 + 200: {
  410 + [propertyName: string]: any;
  411 + };
405 412 /**
406 413 * @description
407 414 * No Content
... ... @@ -422,9 +429,9 @@ export interface DeleteErrorResponse {
422 429 export type DeleteErrorResponseSuccess = DeleteErrorResponse[200];
423 430 /**
424 431 * @description
425   - * errorHtml
  432 + * error
426 433 * @tags basic-error-controller
427   - * @produces text/html
  434 + * @produces *
428 435 */
429 436 export const deleteError = /* #__PURE__ */ (() => {
430 437 const method = 'delete';
... ... @@ -448,7 +455,9 @@ export interface OptionsErrorResponse {
448 455 * @description
449 456 * OK
450 457 */
451   - 200: ModelAndView;
  458 + 200: {
  459 + [propertyName: string]: any;
  460 + };
452 461 /**
453 462 * @description
454 463 * No Content
... ... @@ -469,9 +478,9 @@ export interface OptionsErrorResponse {
469 478 export type OptionsErrorResponseSuccess = OptionsErrorResponse[200];
470 479 /**
471 480 * @description
472   - * errorHtml
  481 + * error
473 482 * @tags basic-error-controller
474   - * @produces text/html
  483 + * @produces *
475 484 * @consumes application/json
476 485 */
477 486 export const optionsError = /* #__PURE__ */ (() => {
... ... @@ -496,7 +505,9 @@ export interface HeadErrorResponse {
496 505 * @description
497 506 * OK
498 507 */
499   - 200: ModelAndView;
  508 + 200: {
  509 + [propertyName: string]: any;
  510 + };
500 511 /**
501 512 * @description
502 513 * No Content
... ... @@ -517,9 +528,9 @@ export interface HeadErrorResponse {
517 528 export type HeadErrorResponseSuccess = HeadErrorResponse[200];
518 529 /**
519 530 * @description
520   - * errorHtml
  531 + * error
521 532 * @tags basic-error-controller
522   - * @produces text/html
  533 + * @produces *
523 534 * @consumes application/json
524 535 */
525 536 export const headError = /* #__PURE__ */ (() => {
... ... @@ -544,7 +555,9 @@ export interface PatchErrorResponse {
544 555 * @description
545 556 * OK
546 557 */
547   - 200: ModelAndView;
  558 + 200: {
  559 + [propertyName: string]: any;
  560 + };
548 561 /**
549 562 * @description
550 563 * No Content
... ... @@ -565,9 +578,9 @@ export interface PatchErrorResponse {
565 578 export type PatchErrorResponseSuccess = PatchErrorResponse[200];
566 579 /**
567 580 * @description
568   - * errorHtml
  581 + * error
569 582 * @tags basic-error-controller
570   - * @produces text/html
  583 + * @produces *
571 584 * @consumes application/json
572 585 */
573 586 export const patchError = /* #__PURE__ */ (() => {
... ... @@ -9294,6 +9307,77 @@ export const postServiceOrderQuerySupplier = /* #__PURE__ */ (() =&gt; {
9294 9307 return request;
9295 9308 })();
9296 9309  
  9310 +/** @description request parameter type for postServiceOrderSaleCancelInvoicing */
  9311 +export interface PostServiceOrderSaleCancelInvoicingOption {
  9312 + /**
  9313 + * @description
  9314 + * dto
  9315 + */
  9316 + body: {
  9317 + /**
  9318 + @description
  9319 + dto */
  9320 + dto: Dto;
  9321 + };
  9322 +}
  9323 +
  9324 +/** @description response type for postServiceOrderSaleCancelInvoicing */
  9325 +export interface PostServiceOrderSaleCancelInvoicingResponse {
  9326 + /**
  9327 + * @description
  9328 + * OK
  9329 + */
  9330 + 200: ServerResult;
  9331 + /**
  9332 + * @description
  9333 + * Created
  9334 + */
  9335 + 201: any;
  9336 + /**
  9337 + * @description
  9338 + * Unauthorized
  9339 + */
  9340 + 401: any;
  9341 + /**
  9342 + * @description
  9343 + * Forbidden
  9344 + */
  9345 + 403: any;
  9346 + /**
  9347 + * @description
  9348 + * Not Found
  9349 + */
  9350 + 404: any;
  9351 +}
  9352 +
  9353 +export type PostServiceOrderSaleCancelInvoicingResponseSuccess =
  9354 + PostServiceOrderSaleCancelInvoicingResponse[200];
  9355 +/**
  9356 + * @description
  9357 + * 销售取消申请开票
  9358 + * @tags 内部订单
  9359 + * @produces *
  9360 + * @consumes application/json
  9361 + */
  9362 +export const postServiceOrderSaleCancelInvoicing = /* #__PURE__ */ (() => {
  9363 + const method = 'post';
  9364 + const url = '/service/order/saleCancelInvoicing';
  9365 + function request(
  9366 + option: PostServiceOrderSaleCancelInvoicingOption,
  9367 + ): Promise<PostServiceOrderSaleCancelInvoicingResponseSuccess> {
  9368 + return requester(request.url, {
  9369 + method: request.method,
  9370 + ...option,
  9371 + }) as unknown as Promise<PostServiceOrderSaleCancelInvoicingResponseSuccess>;
  9372 + }
  9373 +
  9374 + /** http method */
  9375 + request.method = method;
  9376 + /** request url */
  9377 + request.url = url;
  9378 + return request;
  9379 +})();
  9380 +
9297 9381 /** @description request parameter type for postServiceOrderSendProduct */
9298 9382 export interface PostServiceOrderSendProductOption {
9299 9383 /**
... ...