Commit fb32b63400f5ee63a1c630c95bb96aa9080216fa

Authored by 曾国涛
1 parent 7d433037

feat: 开票功能开发

src/pages/Invoice/components/InvoicingModal.tsx
  1 +import { RESPONSE_CODE } from '@/constants/enum';
  2 +import { postServiceInvoiceInvoicing } from '@/services';
1 3 import { PlusOutlined } from '@ant-design/icons';
2 4 import { ModalForm } from '@ant-design/pro-components';
3 5 import { Button, Form, message } from 'antd';
4 6  
5   -const waitTime = (time: number = 100) => {
6   - return new Promise((resolve) => {
7   - setTimeout(() => {
8   - resolve(true);
9   - }, time);
10   - });
11   -};
12   -
13   -export default ({}) => {
  7 +export default ({ selectedRowKeys }) => {
14 8 const [form] = Form.useForm<{ name: string; company: string }>();
15 9 return (
16 10 <ModalForm<{
... ... @@ -31,9 +25,15 @@ export default ({}) =&gt; {
31 25 onCancel: () => console.log('run'),
32 26 }}
33 27 submitTimeout={2000}
34   - onFinish={async (values) => {
35   - await waitTime(2000);
36   - console.log(values.name);
  28 + onFinish={async () => {
  29 + let res = await postServiceInvoiceInvoicing({
  30 + data: {
  31 + invoiceRecordIds: selectedRowKeys,
  32 + },
  33 + });
  34 + if (res.result === RESPONSE_CODE.SUCCESS) {
  35 + message.success(res.message);
  36 + }
37 37 message.success('提交成功');
38 38 return true;
39 39 }}
... ...
src/pages/Invoice/index.tsx
... ... @@ -2,6 +2,8 @@ import ButtonConfirm from &#39;@/components/ButtomConfirm&#39;;
2 2 import EllipsisDiv from '@/components/Div/EllipsisDiv';
3 3 import { RESPONSE_CODE } from '@/constants/enum';
4 4 import AddInvoiceDrawerForm from '@/pages/Invoice/components/AddInvoiceDrawerForm';
  5 +import InvoiceModal from '@/pages/Invoice/components/InvoiceModal';
  6 +import InvoiceRecordDetailModal from '@/pages/Invoice/components/InvoiceRecordDetailModal';
5 7 import InvoicingModal from '@/pages/Invoice/components/InvoicingModal';
6 8 import {
7 9 BANK_STATEMENT_COLUMNS,
... ... @@ -15,6 +17,7 @@ import {
15 17 postServiceConstInvoiceType,
16 18 postServiceConstInvoicingType,
17 19 postServiceInvoiceDeleteInvoice,
  20 + postServiceInvoiceInvoicing,
18 21 postServiceInvoiceQueryInvoice,
19 22 postServiceInvoiceQueryInvoiceRecordList,
20 23 postServiceOrderQuerySalesCode,
... ... @@ -26,8 +29,7 @@ import {
26 29 } from '@/utils';
27 30 import { formatDate } from '@/utils/time';
28 31 import { PlusOutlined } from '@ant-design/icons';
29   -import { ActionType, ProTable } from '@ant-design/pro-components';
30   -import { TableDropdown } from '@ant-design/pro-table';
  32 +import { ActionType, ModalForm, ProTable } from '@ant-design/pro-components';
31 33 import { Button, Space, Table, Tabs, message } from 'antd';
32 34 import { useEffect, useRef, useState } from 'react';
33 35 import { INVOCING_STATUS, PAYEE_OPTIONS } from '../Order/constant';
... ... @@ -39,6 +41,7 @@ const InvoicePage = () =&gt; {
39 41 const invoiceActionRef = useRef<ActionType>();
40 42 const bankActionRef = useRef<ActionType>();
41 43 const waitDealrecordActionRef = useRef<ActionType>();
  44 + const processedRecordRef = useRef<ActionType>();
42 45 const [invoiceTypeValueEnum, setInvoiceTypeValueEnum] = useState({});
43 46 const [invoicingTypeValueEnum, setInvoicingTypeValueEnum] = useState({});
44 47 const [salesCodeValueEnum, setSalesCodeValueEnum] = useState({});
... ... @@ -268,37 +271,37 @@ const InvoicePage = () =&gt; {
268 271 },
269 272 },
270 273 },
271   -
  274 + {
  275 + title: '申请开票时间',
  276 + dataIndex: 'createTime',
  277 + valueType: 'dateRange',
  278 + width: 200,
  279 + hideInTable: true,
  280 + search: {
  281 + transform: (value) => {
  282 + if (value) {
  283 + return {
  284 + createTimeGe: value[0],
  285 + createTimeLe: value[1],
  286 + };
  287 + }
  288 + },
  289 + },
  290 + },
272 291 {
273 292 title: '操作',
274 293 valueType: 'option',
275 294 key: 'option',
276   - render: (text, record, _, action) => [
277   - <a
278   - key="editable"
279   - onClick={() => {
280   - action?.startEditable?.(record.id);
281   - }}
282   - >
283   - 编辑
284   - </a>,
285   - <a
286   - href={record.url}
287   - target="_blank"
288   - rel="noopener noreferrer"
289   - key="view"
290   - >
291   - 查看
292   - </a>,
293   - <TableDropdown
294   - key="actionGroup"
295   - onSelect={() => action?.reload()}
296   - menus={[
297   - { key: 'copy', name: '复制' },
298   - { key: 'delete', name: '删除' },
299   - ]}
300   - />,
301   - ],
  295 + render: (text, record) => {
  296 + return [
  297 + <InvoiceRecordDetailModal
  298 + key="detail"
  299 + id={record.id}
  300 + subOrderIds={record.subOrderIds}
  301 + />,
  302 + <InvoiceModal key="invoiceModal" recordId={record.id} />,
  303 + ];
  304 + },
302 305 },
303 306 ];
304 307  
... ... @@ -453,31 +456,54 @@ const InvoicePage = () =&gt; {
453 456 title: '操作',
454 457 valueType: 'option',
455 458 key: 'option',
456   - render: (text, record, _, action) => [
457   - <a
458   - key="editable"
459   - onClick={() => {
460   - action?.startEditable?.(record.id);
461   - }}
462   - >
463   - 编辑
464   - </a>,
465   - <a
466   - href={record.url}
467   - target="_blank"
468   - rel="noopener noreferrer"
469   - key="view"
470   - >
471   - 查看
472   - </a>,
473   - <TableDropdown
474   - key="actionGroup"
475   - onSelect={() => action?.reload()}
476   - menus={[
477   - { key: 'copy', name: '复制' },
478   - { key: 'delete', name: '删除' },
479   - ]}
  459 + render: (text, record) => [
  460 + <InvoiceRecordDetailModal
  461 + key="detail"
  462 + id={record.id}
  463 + subOrderIds={record.subOrderIds}
480 464 />,
  465 + <>
  466 + {record.status === 'SUCCESS' && (
  467 + <>
  468 + {record.status === 'SUCCESS' && (
  469 + <a href={record.invoiceAddress} download>
  470 + 下载发票
  471 + </a>
  472 + )}
  473 + </>
  474 + )}
  475 + </>,
  476 + <>
  477 + {record.status === 'FAIL' && (
  478 + <ModalForm
  479 + title="提示"
  480 + trigger={
  481 + <Button type="link" danger>
  482 + 重试
  483 + </Button>
  484 + }
  485 + autoFocusFirstInput
  486 + modalProps={{
  487 + destroyOnClose: true,
  488 + }}
  489 + submitTimeout={2000}
  490 + onFinish={async () => {
  491 + const res = await postServiceInvoiceInvoicing({
  492 + data: {
  493 + invoiceRecordIds: [record.id],
  494 + },
  495 + });
  496 + if (res) {
  497 + message.success(res.message);
  498 + processedRecordRef?.current?.reload();
  499 + }
  500 + return true;
  501 + }}
  502 + >
  503 + 确定重试订单信息吗?
  504 + </ModalForm>
  505 + )}
  506 + </>,
481 507 ],
482 508 },
483 509 ];
... ... @@ -792,7 +818,7 @@ const InvoicePage = () =&gt; {
792 818 children: (
793 819 <ProTable
794 820 columns={processedRecordColumns}
795   - actionRef={waitDealrecordActionRef}
  821 + actionRef={processedRecordRef}
796 822 cardBordered
797 823 pagination={{
798 824 pageSize: 10,
... ...
src/services/definition.ts
... ... @@ -889,36 +889,6 @@ export interface InventoryMaterialStockReq {
889 889 materialId?: string;
890 890 }
891 891  
892   -export interface InvoiceDetail {
893   - /**
894   - * @description
895   - * 单价
896   - * @format double
897   - */
898   - price?: number;
899   - /**
900   - * @description
901   - * 项目名称
902   - */
903   - projectName?: string;
904   - /**
905   - * @description
906   - * 数量
907   - * @format int32
908   - */
909   - quantity?: number;
910   - /**
911   - * @description
912   - * 规格型号
913   - */
914   - specification?: string;
915   - /**
916   - * @description
917   - * 单位
918   - */
919   - unit?: string;
920   -}
921   -
922 892 export interface InvoiceDto {
923 893 /**
924 894 * @description
... ... @@ -1017,6 +987,11 @@ export interface InvoiceRecordDto {
1017 987 id?: number;
1018 988 /**
1019 989 * @description
  990 + * 发票地址
  991 + */
  992 + invoiceAddress?: string;
  993 + /**
  994 + * @description
1020 995 * 发票明细
1021 996 */
1022 997 invoiceDetails?: Array<InvoiceDetail>;
... ... @@ -1032,6 +1007,11 @@ export interface InvoiceRecordDto {
1032 1007 invoiceNumber?: string;
1033 1008 /**
1034 1009 * @description
  1010 + * 开票人
  1011 + */
  1012 + invoicingPerson?: string;
  1013 + /**
  1014 + * @description
1035 1015 * 开票时间
1036 1016 * @format date-time
1037 1017 */
... ... @@ -1046,6 +1026,8 @@ export interface InvoiceRecordDto {
1046 1026 * 开具类型
1047 1027 */
1048 1028 invoicingTypeText?: string;
  1029 + /** @format date */
  1030 + invoicingdate?: string;
1049 1031 /**
1050 1032 * @description
1051 1033 * 是否加急
... ... @@ -1094,11 +1076,36 @@ export interface InvoiceRecordDto {
1094 1076 partyAType?: string;
1095 1077 /**
1096 1078 * @description
  1079 + * 卖方注册地址
  1080 + */
  1081 + partyBAddress?: string;
  1082 + /**
  1083 + * @description
  1084 + * 卖方开户行账号
  1085 + */
  1086 + partyBBankAccount?: string;
  1087 + /**
  1088 + * @description
1097 1089 * 卖方名称
1098 1090 */
1099 1091 partyBName?: string;
1100 1092 /**
1101 1093 * @description
  1094 + * 卖方开户行
  1095 + */
  1096 + partyBOpenBank?: string;
  1097 + /**
  1098 + * @description
  1099 + * 卖方电话号码
  1100 + */
  1101 + partyBPhoneNumber?: string;
  1102 + /**
  1103 + * @description
  1104 + * 卖方税号
  1105 + */
  1106 + partyBTaxid?: string;
  1107 + /**
  1108 + * @description
1102 1109 * 发票金额
1103 1110 * @format double
1104 1111 */
... ... @@ -1112,7 +1119,12 @@ export interface InvoiceRecordDto {
1112 1119 * @description
1113 1120 * 订单来源
1114 1121 */
1115   - salesCode?: string;
  1122 + salesCodes?: Array<string>;
  1123 + /**
  1124 + * @description
  1125 + * 订单来源
  1126 + */
  1127 + salesCodesText?: string;
1116 1128 /**
1117 1129 * @description
1118 1130 * 开票状态
... ... @@ -1133,6 +1145,9 @@ export interface InvoiceRecordDto {
1133 1145 * 关联订单
1134 1146 */
1135 1147 subOrders?: Array<SubOrder>;
  1148 + /** @format double */
  1149 + totalPrice?: number;
  1150 + totalPriceText?: string;
1136 1151 /**
1137 1152 * @description
1138 1153 * 开票类型
... ... @@ -2437,6 +2452,44 @@ export interface ApiOrderConfirmReceiveRequest {
2437 2452 subOrderIds?: Array<number>;
2438 2453 }
2439 2454  
  2455 +export interface InvoiceDetail {
  2456 + /** @format int64 */
  2457 + id?: number;
  2458 + /**
  2459 + * @description
  2460 + * 发票id
  2461 + * @format int64
  2462 + */
  2463 + invoiceRecordId?: number;
  2464 + /**
  2465 + * @description
  2466 + * 单价
  2467 + * @format double
  2468 + */
  2469 + price?: number;
  2470 + projectName?: string;
  2471 + /** @format double */
  2472 + quantity?: number;
  2473 + /**
  2474 + * @description
  2475 + * 型号
  2476 + */
  2477 + specification?: string;
  2478 + /** @format int64 */
  2479 + subOrderId?: number;
  2480 + /** @format int32 */
  2481 + taxPrice?: number;
  2482 + /** @format int32 */
  2483 + taxRate?: number;
  2484 + /**
  2485 + * @description
  2486 + * 总价
  2487 + * @format double
  2488 + */
  2489 + totalPrice?: number;
  2490 + unit?: string;
  2491 +}
  2492 +
2440 2493 export interface SalesRechargePrepaymentAuditRequest {
2441 2494 /**
2442 2495 * @description
... ...
src/services/request.ts
... ... @@ -54,7 +54,6 @@ import type {
54 54 MaterialUnitListRes,
55 55 MeasureUnitListRes,
56 56 MessageQueryDTO,
57   - ModelAndView,
58 57 OrderAddVO,
59 58 OrderAuditLogQueryVO,
60 59 OrderBaseInfoQueryVO,
... ... @@ -1540,7 +1539,9 @@ export interface GetErrorResponse {
1540 1539 * @description
1541 1540 * OK
1542 1541 */
1543   - 200: ModelAndView;
  1542 + 200: {
  1543 + [propertyName: string]: any;
  1544 + };
1544 1545 /**
1545 1546 * @description
1546 1547 * Unauthorized
... ... @@ -1561,9 +1562,9 @@ export interface GetErrorResponse {
1561 1562 export type GetErrorResponseSuccess = GetErrorResponse[200];
1562 1563 /**
1563 1564 * @description
1564   - * errorHtml
  1565 + * error
1565 1566 * @tags basic-error-controller
1566   - * @produces text/html
  1567 + * @produces *
1567 1568 */
1568 1569 export const getError = /* #__PURE__ */ (() => {
1569 1570 const method = 'get';
... ... @@ -1587,7 +1588,9 @@ export interface PutErrorResponse {
1587 1588 * @description
1588 1589 * OK
1589 1590 */
1590   - 200: ModelAndView;
  1591 + 200: {
  1592 + [propertyName: string]: any;
  1593 + };
1591 1594 /**
1592 1595 * @description
1593 1596 * Created
... ... @@ -1613,9 +1616,9 @@ export interface PutErrorResponse {
1613 1616 export type PutErrorResponseSuccess = PutErrorResponse[200];
1614 1617 /**
1615 1618 * @description
1616   - * errorHtml
  1619 + * error
1617 1620 * @tags basic-error-controller
1618   - * @produces text/html
  1621 + * @produces *
1619 1622 * @consumes application/json
1620 1623 */
1621 1624 export const putError = /* #__PURE__ */ (() => {
... ... @@ -1640,7 +1643,9 @@ export interface PostErrorResponse {
1640 1643 * @description
1641 1644 * OK
1642 1645 */
1643   - 200: ModelAndView;
  1646 + 200: {
  1647 + [propertyName: string]: any;
  1648 + };
1644 1649 /**
1645 1650 * @description
1646 1651 * Created
... ... @@ -1666,9 +1671,9 @@ export interface PostErrorResponse {
1666 1671 export type PostErrorResponseSuccess = PostErrorResponse[200];
1667 1672 /**
1668 1673 * @description
1669   - * errorHtml
  1674 + * error
1670 1675 * @tags basic-error-controller
1671   - * @produces text/html
  1676 + * @produces *
1672 1677 * @consumes application/json
1673 1678 */
1674 1679 export const postError = /* #__PURE__ */ (() => {
... ... @@ -1693,7 +1698,9 @@ export interface DeleteErrorResponse {
1693 1698 * @description
1694 1699 * OK
1695 1700 */
1696   - 200: ModelAndView;
  1701 + 200: {
  1702 + [propertyName: string]: any;
  1703 + };
1697 1704 /**
1698 1705 * @description
1699 1706 * No Content
... ... @@ -1714,9 +1721,9 @@ export interface DeleteErrorResponse {
1714 1721 export type DeleteErrorResponseSuccess = DeleteErrorResponse[200];
1715 1722 /**
1716 1723 * @description
1717   - * errorHtml
  1724 + * error
1718 1725 * @tags basic-error-controller
1719   - * @produces text/html
  1726 + * @produces *
1720 1727 */
1721 1728 export const deleteError = /* #__PURE__ */ (() => {
1722 1729 const method = 'delete';
... ... @@ -1740,7 +1747,9 @@ export interface OptionsErrorResponse {
1740 1747 * @description
1741 1748 * OK
1742 1749 */
1743   - 200: ModelAndView;
  1750 + 200: {
  1751 + [propertyName: string]: any;
  1752 + };
1744 1753 /**
1745 1754 * @description
1746 1755 * No Content
... ... @@ -1761,9 +1770,9 @@ export interface OptionsErrorResponse {
1761 1770 export type OptionsErrorResponseSuccess = OptionsErrorResponse[200];
1762 1771 /**
1763 1772 * @description
1764   - * errorHtml
  1773 + * error
1765 1774 * @tags basic-error-controller
1766   - * @produces text/html
  1775 + * @produces *
1767 1776 * @consumes application/json
1768 1777 */
1769 1778 export const optionsError = /* #__PURE__ */ (() => {
... ... @@ -1788,7 +1797,9 @@ export interface HeadErrorResponse {
1788 1797 * @description
1789 1798 * OK
1790 1799 */
1791   - 200: ModelAndView;
  1800 + 200: {
  1801 + [propertyName: string]: any;
  1802 + };
1792 1803 /**
1793 1804 * @description
1794 1805 * No Content
... ... @@ -1809,9 +1820,9 @@ export interface HeadErrorResponse {
1809 1820 export type HeadErrorResponseSuccess = HeadErrorResponse[200];
1810 1821 /**
1811 1822 * @description
1812   - * errorHtml
  1823 + * error
1813 1824 * @tags basic-error-controller
1814   - * @produces text/html
  1825 + * @produces *
1815 1826 * @consumes application/json
1816 1827 */
1817 1828 export const headError = /* #__PURE__ */ (() => {
... ... @@ -1836,7 +1847,9 @@ export interface PatchErrorResponse {
1836 1847 * @description
1837 1848 * OK
1838 1849 */
1839   - 200: ModelAndView;
  1850 + 200: {
  1851 + [propertyName: string]: any;
  1852 + };
1840 1853 /**
1841 1854 * @description
1842 1855 * No Content
... ... @@ -1857,9 +1870,9 @@ export interface PatchErrorResponse {
1857 1870 export type PatchErrorResponseSuccess = PatchErrorResponse[200];
1858 1871 /**
1859 1872 * @description
1860   - * errorHtml
  1873 + * error
1861 1874 * @tags basic-error-controller
1862   - * @produces text/html
  1875 + * @produces *
1863 1876 * @consumes application/json
1864 1877 */
1865 1878 export const patchError = /* #__PURE__ */ (() => {
... ... @@ -7937,6 +7950,60 @@ export const postServiceConstCanApplyAfterInvoicingStatus =
7937 7950 return request;
7938 7951 })();
7939 7952  
  7953 +/** @description response type for postServiceConstGetPayeeEnum */
  7954 +export interface PostServiceConstGetPayeeEnumResponse {
  7955 + /**
  7956 + * @description
  7957 + * OK
  7958 + */
  7959 + 200: ServerResult;
  7960 + /**
  7961 + * @description
  7962 + * Created
  7963 + */
  7964 + 201: any;
  7965 + /**
  7966 + * @description
  7967 + * Unauthorized
  7968 + */
  7969 + 401: any;
  7970 + /**
  7971 + * @description
  7972 + * Forbidden
  7973 + */
  7974 + 403: any;
  7975 + /**
  7976 + * @description
  7977 + * Not Found
  7978 + */
  7979 + 404: any;
  7980 +}
  7981 +
  7982 +export type PostServiceConstGetPayeeEnumResponseSuccess =
  7983 + PostServiceConstGetPayeeEnumResponse[200];
  7984 +/**
  7985 + * @description
  7986 + * 获取收款方
  7987 + * @tags front-const-controller
  7988 + * @produces *
  7989 + * @consumes application/json
  7990 + */
  7991 +export const postServiceConstGetPayeeEnum = /* #__PURE__ */ (() => {
  7992 + const method = 'post';
  7993 + const url = '/service/const/getPayeeEnum';
  7994 + function request(): Promise<PostServiceConstGetPayeeEnumResponseSuccess> {
  7995 + return requester(request.url, {
  7996 + method: request.method,
  7997 + }) as unknown as Promise<PostServiceConstGetPayeeEnumResponseSuccess>;
  7998 + }
  7999 +
  8000 + /** http method */
  8001 + request.method = method;
  8002 + /** request url */
  8003 + request.url = url;
  8004 + return request;
  8005 +})();
  8006 +
7940 8007 /** @description response type for postServiceConstInvoiceType */
7941 8008 export interface PostServiceConstInvoiceTypeResponse {
7942 8009 /**
... ... @@ -8401,6 +8468,79 @@ export const postServiceInvoiceDeleteInvoice = /* #__PURE__ */ (() =&gt; {
8401 8468 return request;
8402 8469 })();
8403 8470  
  8471 +/** @description request parameter type for postServiceInvoiceDownloadInvoice */
  8472 +export interface PostServiceInvoiceDownloadInvoiceOption {
  8473 + /**
  8474 + * @description
  8475 + * recodId
  8476 + * @format int64
  8477 + */
  8478 + query?: {
  8479 + /**
  8480 + @description
  8481 + recodId
  8482 + @format int64 */
  8483 + recodId?: number;
  8484 + };
  8485 +}
  8486 +
  8487 +/** @description response type for postServiceInvoiceDownloadInvoice */
  8488 +export interface PostServiceInvoiceDownloadInvoiceResponse {
  8489 + /**
  8490 + * @description
  8491 + * OK
  8492 + */
  8493 + 200: ServerResult;
  8494 + /**
  8495 + * @description
  8496 + * Created
  8497 + */
  8498 + 201: any;
  8499 + /**
  8500 + * @description
  8501 + * Unauthorized
  8502 + */
  8503 + 401: any;
  8504 + /**
  8505 + * @description
  8506 + * Forbidden
  8507 + */
  8508 + 403: any;
  8509 + /**
  8510 + * @description
  8511 + * Not Found
  8512 + */
  8513 + 404: any;
  8514 +}
  8515 +
  8516 +export type PostServiceInvoiceDownloadInvoiceResponseSuccess =
  8517 + PostServiceInvoiceDownloadInvoiceResponse[200];
  8518 +/**
  8519 + * @description
  8520 + * 下载开票
  8521 + * @tags 发票
  8522 + * @produces *
  8523 + * @consumes application/json
  8524 + */
  8525 +export const postServiceInvoiceDownloadInvoice = /* #__PURE__ */ (() => {
  8526 + const method = 'post';
  8527 + const url = '/service/invoice/downloadInvoice';
  8528 + function request(
  8529 + option?: PostServiceInvoiceDownloadInvoiceOption,
  8530 + ): Promise<PostServiceInvoiceDownloadInvoiceResponseSuccess> {
  8531 + return requester(request.url, {
  8532 + method: request.method,
  8533 + ...option,
  8534 + }) as unknown as Promise<PostServiceInvoiceDownloadInvoiceResponseSuccess>;
  8535 + }
  8536 +
  8537 + /** http method */
  8538 + request.method = method;
  8539 + /** request url */
  8540 + request.url = url;
  8541 + return request;
  8542 +})();
  8543 +
8404 8544 /** @description request parameter type for postServiceInvoiceFindInvoice */
8405 8545 export interface PostServiceInvoiceFindInvoiceOption {
8406 8546 /**
... ... @@ -8472,6 +8612,79 @@ export const postServiceInvoiceFindInvoice = /* #__PURE__ */ (() =&gt; {
8472 8612 return request;
8473 8613 })();
8474 8614  
  8615 +/** @description request parameter type for postServiceInvoiceGetInvoiceRecord */
  8616 +export interface PostServiceInvoiceGetInvoiceRecordOption {
  8617 + /**
  8618 + * @description
  8619 + * id
  8620 + * @format int64
  8621 + */
  8622 + query?: {
  8623 + /**
  8624 + @description
  8625 + id
  8626 + @format int64 */
  8627 + id?: number;
  8628 + };
  8629 +}
  8630 +
  8631 +/** @description response type for postServiceInvoiceGetInvoiceRecord */
  8632 +export interface PostServiceInvoiceGetInvoiceRecordResponse {
  8633 + /**
  8634 + * @description
  8635 + * OK
  8636 + */
  8637 + 200: ServerResult;
  8638 + /**
  8639 + * @description
  8640 + * Created
  8641 + */
  8642 + 201: any;
  8643 + /**
  8644 + * @description
  8645 + * Unauthorized
  8646 + */
  8647 + 401: any;
  8648 + /**
  8649 + * @description
  8650 + * Forbidden
  8651 + */
  8652 + 403: any;
  8653 + /**
  8654 + * @description
  8655 + * Not Found
  8656 + */
  8657 + 404: any;
  8658 +}
  8659 +
  8660 +export type PostServiceInvoiceGetInvoiceRecordResponseSuccess =
  8661 + PostServiceInvoiceGetInvoiceRecordResponse[200];
  8662 +/**
  8663 + * @description
  8664 + * 获取开票记录
  8665 + * @tags 发票
  8666 + * @produces *
  8667 + * @consumes application/json
  8668 + */
  8669 +export const postServiceInvoiceGetInvoiceRecord = /* #__PURE__ */ (() => {
  8670 + const method = 'post';
  8671 + const url = '/service/invoice/getInvoiceRecord';
  8672 + function request(
  8673 + option?: PostServiceInvoiceGetInvoiceRecordOption,
  8674 + ): Promise<PostServiceInvoiceGetInvoiceRecordResponseSuccess> {
  8675 + return requester(request.url, {
  8676 + method: request.method,
  8677 + ...option,
  8678 + }) as unknown as Promise<PostServiceInvoiceGetInvoiceRecordResponseSuccess>;
  8679 + }
  8680 +
  8681 + /** http method */
  8682 + request.method = method;
  8683 + /** request url */
  8684 + request.url = url;
  8685 + return request;
  8686 +})();
  8687 +
8475 8688 /** @description request parameter type for postServiceInvoiceInvoiceWriteOff */
8476 8689 export interface PostServiceInvoiceInvoiceWriteOffOption {
8477 8690 /**
... ... @@ -8614,6 +8827,77 @@ export const postServiceInvoiceInvoicing = /* #__PURE__ */ (() =&gt; {
8614 8827 return request;
8615 8828 })();
8616 8829  
  8830 +/** @description request parameter type for postServiceInvoiceModifyRecord */
  8831 +export interface PostServiceInvoiceModifyRecordOption {
  8832 + /**
  8833 + * @description
  8834 + * dto
  8835 + */
  8836 + body: {
  8837 + /**
  8838 + @description
  8839 + dto */
  8840 + dto: InvoiceRecordDto;
  8841 + };
  8842 +}
  8843 +
  8844 +/** @description response type for postServiceInvoiceModifyRecord */
  8845 +export interface PostServiceInvoiceModifyRecordResponse {
  8846 + /**
  8847 + * @description
  8848 + * OK
  8849 + */
  8850 + 200: ServerResult;
  8851 + /**
  8852 + * @description
  8853 + * Created
  8854 + */
  8855 + 201: any;
  8856 + /**
  8857 + * @description
  8858 + * Unauthorized
  8859 + */
  8860 + 401: any;
  8861 + /**
  8862 + * @description
  8863 + * Forbidden
  8864 + */
  8865 + 403: any;
  8866 + /**
  8867 + * @description
  8868 + * Not Found
  8869 + */
  8870 + 404: any;
  8871 +}
  8872 +
  8873 +export type PostServiceInvoiceModifyRecordResponseSuccess =
  8874 + PostServiceInvoiceModifyRecordResponse[200];
  8875 +/**
  8876 + * @description
  8877 + * 修改开票记录
  8878 + * @tags 发票
  8879 + * @produces *
  8880 + * @consumes application/json
  8881 + */
  8882 +export const postServiceInvoiceModifyRecord = /* #__PURE__ */ (() => {
  8883 + const method = 'post';
  8884 + const url = '/service/invoice/modifyRecord';
  8885 + function request(
  8886 + option: PostServiceInvoiceModifyRecordOption,
  8887 + ): Promise<PostServiceInvoiceModifyRecordResponseSuccess> {
  8888 + return requester(request.url, {
  8889 + method: request.method,
  8890 + ...option,
  8891 + }) as unknown as Promise<PostServiceInvoiceModifyRecordResponseSuccess>;
  8892 + }
  8893 +
  8894 + /** http method */
  8895 + request.method = method;
  8896 + /** request url */
  8897 + request.url = url;
  8898 + return request;
  8899 +})();
  8900 +
8617 8901 /** @description request parameter type for postServiceInvoiceQueryInvoice */
8618 8902 export interface PostServiceInvoiceQueryInvoiceOption {
8619 8903 /**
... ...