Commit de4ea95bbc7d81931898ba30a903431e362441cc

Authored by 曾国涛
1 parent 83293a3a

fix: 新增和优化多个功能点

- 在发票列表中添加编辑功能- 优化导出功能,支持多条件筛选
- 新增取消开票功能
- 修复部分页面的样式问题
- 优化部分功能的用户体验
src/pages/Invoice/Invoice/index.tsx
... ... @@ -9,6 +9,7 @@ import { INVOCING_STATUS, PAYEE_OPTIONS } from '@/pages/Order/constant';
9 9 import {
10 10 postServiceInvoiceDeleteInvoice,
11 11 postServiceInvoiceGetWriteOffRecord,
  12 + postServiceInvoiceModify,
12 13 postServiceInvoiceQueryInvoice,
13 14 } from '@/services';
14 15 import { orderExport } from '@/services/order';
... ... @@ -100,8 +101,18 @@ const InvoiceRecord = () => {
100 101 key: 'option',
101 102 fixed: 'right',
102 103 width: 160,
103   - render: (text, record) => {
104   - let btns = [];
  104 + render: (text, record, _, action) => {
  105 + let btns = [
  106 + <a
  107 + key="editable"
  108 + onClick={() => {
  109 + action?.startEditable?.(record.id);
  110 + }}
  111 + >
  112 + 编辑
  113 + </a>,
  114 + ];
  115 +
105 116 if (record.paths?.includes('writeOff') && !record.writeOffId) {
106 117 btns.push(
107 118 <InvoiceWriteOffModal
... ... @@ -157,7 +168,6 @@ const InvoiceRecord = () =&gt; {
157 168 </Button>,
158 169 );
159 170 }
160   -
161 171 if (record.paths?.includes('deleteInvoice')) {
162 172 btns.push(
163 173 <ButtonConfirm
... ... @@ -169,7 +179,7 @@ const InvoiceRecord = () =&gt; {
169 179 text="删除"
170 180 onConfirm={async () => {
171 181 let res = await postServiceInvoiceDeleteInvoice({
172   - data: { invoiceId: record.invoiceId },
  182 + data: { invoiceId: record.id },
173 183 });
174 184 if (res) {
175 185 message.success(res.message);
... ... @@ -217,6 +227,16 @@ const InvoiceRecord = () =&gt; {
217 227 console.log('value: ', value);
218 228 },
219 229 }}
  230 + editable={{
  231 + type: 'multiple',
  232 + onSave: async (key, row, originRow) => {
  233 + console.log('row: ', row);
  234 + console.log('originRow: ', originRow);
  235 + postServiceInvoiceModify({
  236 + data: row,
  237 + });
  238 + },
  239 + }}
220 240 rowKey="id"
221 241 search={{
222 242 labelWidth: 'auto',
... ...
src/pages/Invoice/InvoiceRecord/index.tsx
... ... @@ -15,7 +15,6 @@ import { ActionType, ModalForm, ProTable } from &#39;@ant-design/pro-components&#39;;
15 15 import { Button, Divider, Space, Table, Tooltip, message } from 'antd';
16 16 import axios from 'axios';
17 17 import { useEffect, useRef, useState } from 'react';
18   -
19 18 const InvoiceRecord = () => {
20 19 const processedRecordRef = useRef<ActionType>();
21 20 const [invoiceTypeValueEnum, setInvoiceTypeValueEnum] = useState({});
... ... @@ -443,8 +442,6 @@ const InvoiceRecord = () =&gt; {
443 442 alwaysShowAlert: true,
444 443 }}
445 444 tableAlertOptionRender={({ selectedRowKeys, selectedRows }) => {
446   - console.log(selectedRows);
447   - console.log(selectedRowKeys);
448 445 return (
449 446 <Space size={16}>
450 447 <Button
... ...
src/pages/Invoice/constant.tsx
... ... @@ -35,6 +35,7 @@ export const INVOICE_COLUMNS = [
35 35 valueType: 'text',
36 36 hideInTable: true,
37 37 hideInSearch: true,
  38 + readonly: true,
38 39 width: 100,
39 40 },
40 41 {
... ... @@ -58,6 +59,7 @@ export const INVOICE_COLUMNS = [
58 59 dataIndex: 'statusText',
59 60 valueType: 'text',
60 61 width: 180,
  62 + readonly: true,
61 63 hideInSearch: true,
62 64 },
63 65 {
... ... @@ -80,12 +82,14 @@ export const INVOICE_COLUMNS = [
80 82 {
81 83 title: '订单状态',
82 84 dataIndex: 'orderTypeText',
  85 + readonly: true,
83 86 valueType: 'text',
84 87 width: 180,
85 88 },
86 89 {
87 90 title: '绑定流水号',
88 91 dataIndex: 'serialNumbersTextByOrder',
  92 + readonly: true,
89 93 hideInSearch: true,
90 94 valueType: 'text',
91 95 width: 180,
... ... @@ -158,12 +162,13 @@ export const INVOICE_COLUMNS = [
158 162 dataIndex: 'invoicingTypeText',
159 163 valueType: 'invoicingTypeText',
160 164 hideInSearch: true,
  165 + readonly: true,
161 166 width: 100,
162 167 },
163 168 {
164 169 title: '开票日期',
165 170 dataIndex: 'invoicingTime',
166   - valueType: 'dateRange',
  171 + valueType: 'date',
167 172 width: 150,
168 173 search: {
169 174 transform: (value) => {
... ... @@ -179,7 +184,7 @@ export const INVOICE_COLUMNS = [
179 184 {
180 185 title: '收款时间',
181 186 dataIndex: 'collectionTime',
182   - valueType: 'dateRange',
  187 + valueType: 'date',
183 188 width: 200,
184 189 search: {
185 190 transform: (value) => {
... ...
src/pages/Invoice/waitProcessRecord/index.tsx
  1 +import { RESPONSE_CODE } from '@/constants/enum';
1 2 import InvoiceRecordDetailModal from '@/pages/Invoice/InvoiceRecord/components/InvoiceRecordDetailModal';
2 3 import InvoiceModal from '@/pages/Invoice/waitProcessRecord/components/InvoiceModal';
3 4 import InvoicingModal from '@/pages/Invoice/waitProcessRecord/components/InvoicingModal';
... ... @@ -7,12 +8,21 @@ import {
7 8 postServiceConstBeforeInvoicingInvoiceRecordStatus,
8 9 postServiceConstInvoiceType,
9 10 postServiceConstInvoicingType,
  11 + postServiceInvoiceCancelInvoiceRecord,
10 12 postServiceInvoiceQueryInvoiceRecordList,
11 13 postServiceOrderQuerySalesCode,
12 14 } from '@/services';
13 15 import { enumToProTableEnumValue, enumToSelect } from '@/utils';
14 16 import { ActionType, ProTable } from '@ant-design/pro-components';
15   -import { Divider, Space, Table, Tooltip } from 'antd';
  17 +import {
  18 + Button,
  19 + Divider,
  20 + Popconfirm,
  21 + Space,
  22 + Table,
  23 + Tooltip,
  24 + message,
  25 +} from 'antd';
16 26 import { useEffect, useRef, useState } from 'react';
17 27  
18 28 const InvoiceRecord = () => {
... ... @@ -345,6 +355,31 @@ const InvoiceRecord = () =&gt; {
345 355 ></ManualInvoicingModal>
346 356 )}
347 357 </>,
  358 + <>
  359 + {record.paths.includes('CANCEL') && (
  360 + <Popconfirm
  361 + title="取消开票"
  362 + description="确认取消开票?"
  363 + onConfirm={async () => {
  364 + let res = await postServiceInvoiceCancelInvoiceRecord({
  365 + data: {
  366 + invoiceRecordIds: [record.id],
  367 + },
  368 + });
  369 + if (res.result === RESPONSE_CODE.SUCCESS) {
  370 + message.success('取消成功');
  371 + }
  372 + waitDealrecordActionRef?.current?.reload();
  373 + }}
  374 + okText="确定"
  375 + cancelText="取消"
  376 + >
  377 + <Button type="link" danger>
  378 + 取消
  379 + </Button>
  380 + </Popconfirm>
  381 + )}
  382 + </>,
348 383 ];
349 384 },
350 385 },
... ...
src/pages/Order/Order/index.tsx
... ... @@ -926,6 +926,11 @@ const OrderPage = () =&gt; {
926 926 ) : (
927 927 ''
928 928 )}
  929 + {optRecord.uid && (
  930 + <span className="text-[#f44e4e] cursor-pointer">
  931 + (商城订单)
  932 + </span>
  933 + )}
929 934  
930 935 {optRecord.modified ? (
931 936 <Tooltip title="点击查看详情">
... ... @@ -2097,7 +2102,7 @@ const OrderPage = () =&gt; {
2097 2102 title="已和客户确认发票??"
2098 2103 text="确认发票"
2099 2104 onConfirm={async () => {
2100   - let body = { ids: [optRecord.id] };
  2105 + let body = [optRecord.id];
2101 2106 const data = await postServiceOrderConfirmInvoice({
2102 2107 data: body,
2103 2108 });
... ... @@ -3890,13 +3895,11 @@ const OrderPage = () =&gt; {
3890 3895 title="已和客户确认发票?"
3891 3896 text="确认发票"
3892 3897 onConfirm={async () => {
3893   - let body = {
3894   - ids: [
3895   - ...record.subOrderInformationLists.map(
3896   - (subOrder) => subOrder.id,
3897   - ),
3898   - ],
3899   - };
  3898 + let body = [
  3899 + ...record.subOrderInformationLists.map(
  3900 + (subOrder) => subOrder.id,
  3901 + ),
  3902 + ];
3900 3903 const data = await postServiceOrderConfirmInvoice({
3901 3904 data: body,
3902 3905 });
... ...
src/pages/ResearchGroup/index.tsx
... ... @@ -461,7 +461,7 @@ const PrepaidPage = () =&gt; {
461 461 if (record.permissions?.includes('audit')) {
462 462 btns.push(
463 463 <Button
464   - key="delete"
  464 + key="audit"
465 465 className="p-0"
466 466 type="link"
467 467 onClick={async () => {
... ... @@ -565,11 +565,17 @@ const PrepaidPage = () =&gt; {
565 565 // 注释该行则默认不显示下拉选项
566 566 selections: [Table.SELECTION_ALL, Table.SELECTION_INVERT],
567 567 defaultSelectedRowKeys: [],
  568 + alwaysShowAlert: true,
568 569 }}
569 570 tableAlertOptionRender={({ selectedRows, onCleanSelected }) => {
570 571 let ids = selectedRows.map((item: any) => {
571 572 return item.id;
572 573 });
  574 + let canAudit =
  575 + selectedRows.length > 0 &&
  576 + selectedRows.every((item) => {
  577 + return item.paths?.includes('ADD_AUDIT');
  578 + });
573 579 return (
574 580 <Space size={16}>
575 581 <ButtonConfirm
... ... @@ -584,6 +590,21 @@ const PrepaidPage = () =&gt; {
584 590 <Button type="link" onClick={onCleanSelected}>
585 591 取消选中
586 592 </Button>
  593 +
  594 + {
  595 + <Button
  596 + key="audit"
  597 + type="link"
  598 + disabled={!canAudit}
  599 + onClick={async () => {
  600 + setAuditIds(ids);
  601 + setAuditModalVisible(true);
  602 + setAuditType('research_groups_add_audit');
  603 + }}
  604 + >
  605 + 审核
  606 + </Button>
  607 + }
587 608 </Space>
588 609 );
589 610 }}
... ... @@ -655,11 +676,17 @@ const PrepaidPage = () =&gt; {
655 676 // 注释该行则默认不显示下拉选项
656 677 selections: [Table.SELECTION_ALL, Table.SELECTION_INVERT],
657 678 defaultSelectedRowKeys: [],
  679 + alwaysShowAlert: true,
658 680 }}
659 681 tableAlertOptionRender={({ selectedRows, onCleanSelected }) => {
660 682 let ids = selectedRows.map((item: any) => {
661 683 return item.id;
662 684 });
  685 + let canAudit =
  686 + selectedRows.length > 0 &&
  687 + selectedRows.every((item) => {
  688 + return item.permissions?.includes('audit');
  689 + });
663 690 return (
664 691 <Space size={16}>
665 692 <ButtonConfirm
... ... @@ -674,8 +701,10 @@ const PrepaidPage = () =&gt; {
674 701 key="delete"
675 702 className="p-0"
676 703 type="link"
  704 + disabled={!canAudit}
677 705 onClick={async () => {
678 706 setAuditIds(ids);
  707 + setAuditType('research_group_member_request_audit');
679 708 setAuditModalVisible(true);
680 709 }}
681 710 >
... ...
src/services/definition.ts
... ... @@ -1044,6 +1044,10 @@ export interface CancelInvoiceAndBankStatementDto {
1044 1044 invoiceId?: number;
1045 1045 }
1046 1046  
  1047 +export interface CancelInvoiceRecordDto {
  1048 + invoiceRecordIds?: Array<number>;
  1049 +}
  1050 +
1047 1051 export interface CancelSendOrderDto {
1048 1052 subIds?: Array<number>;
1049 1053 }
... ... @@ -1382,32 +1386,6 @@ export interface Entry {
1382 1386 unEmpInsuranceC?: string;
1383 1387 }
1384 1388  
1385   -export interface File {
1386   - absolute?: boolean;
1387   - absoluteFile?: File;
1388   - absolutePath?: string;
1389   - canonicalFile?: File;
1390   - canonicalPath?: string;
1391   - directory?: boolean;
1392   - executable?: boolean;
1393   - file?: boolean;
1394   - /** @format int64 */
1395   - freeSpace?: number;
1396   - hidden?: boolean;
1397   - /** @format int64 */
1398   - lastModified?: number;
1399   - name?: string;
1400   - parent?: string;
1401   - parentFile?: File;
1402   - path?: string;
1403   - readable?: boolean;
1404   - /** @format int64 */
1405   - totalSpace?: number;
1406   - /** @format int64 */
1407   - usableSpace?: number;
1408   - writable?: boolean;
1409   -}
1410   -
1411 1389 export interface FilePathDto {
1412 1390 url?: string;
1413 1391 }
... ... @@ -1498,6 +1476,11 @@ export interface InvoiceDto {
1498 1476 notes?: string;
1499 1477 /**
1500 1478 * @description
  1479 + * 订单类型
  1480 + */
  1481 + orderTypeText?: string;
  1482 + /**
  1483 + * @description
1501 1484 * 权限路径
1502 1485 */
1503 1486 path?: Array<string>;
... ... @@ -1507,7 +1490,6 @@ export interface InvoiceDto {
1507 1490 * 收款单位
1508 1491 */
1509 1492 payee?: string;
1510   - payeeText?: string;
1511 1493 /**
1512 1494 * @description
1513 1495 * 收款单位
... ... @@ -1525,6 +1507,11 @@ export interface InvoiceDto {
1525 1507 sale?: string;
1526 1508 /**
1527 1509 * @description
  1510 + * 绑定流水号
  1511 + */
  1512 + serialNumbersTextByOrder?: string;
  1513 + /**
  1514 + * @description
1528 1515 * 状态
1529 1516 */
1530 1517 status?: string;
... ... @@ -2785,13 +2772,13 @@ export interface QueryBankStatementDto {
2785 2772 /**
2786 2773 * @description
2787 2774 * collection_date
2788   - * @format date
  2775 + * @format date-time
2789 2776 */
2790 2777 collectionDatetimeBegin?: string;
2791 2778 /**
2792 2779 * @description
2793 2780 * collection_date
2794   - * @format date
  2781 + * @format date-time
2795 2782 */
2796 2783 collectionDatetimeEnd?: string;
2797 2784 createByName?: string;
... ... @@ -3638,7 +3625,7 @@ export interface ResetPwdVO {
3638 3625  
3639 3626 export interface Resource {
3640 3627 description?: string;
3641   - file?: File;
  3628 + file?: TsgFile;
3642 3629 filename?: string;
3643 3630 inputStream?: InputStream;
3644 3631 open?: boolean;
... ... @@ -4181,6 +4168,32 @@ export interface CompanyInfo {
4181 4168 taxIdIsNotNull?: boolean;
4182 4169 }
4183 4170  
  4171 +export interface TsgFile {
  4172 + absolute?: boolean;
  4173 + absoluteFile?: TsgFile;
  4174 + absolutePath?: string;
  4175 + canonicalFile?: TsgFile;
  4176 + canonicalPath?: string;
  4177 + directory?: boolean;
  4178 + executable?: boolean;
  4179 + file?: boolean;
  4180 + /** @format int64 */
  4181 + freeSpace?: number;
  4182 + hidden?: boolean;
  4183 + /** @format int64 */
  4184 + lastModified?: number;
  4185 + name?: string;
  4186 + parent?: string;
  4187 + parentFile?: TsgFile;
  4188 + path?: string;
  4189 + readable?: boolean;
  4190 + /** @format int64 */
  4191 + totalSpace?: number;
  4192 + /** @format int64 */
  4193 + usableSpace?: number;
  4194 + writable?: boolean;
  4195 +}
  4196 +
4184 4197 export interface InvoiceDetail {
4185 4198 createByName?: string;
4186 4199 /** @format date-time */
... ...
src/services/request.ts
... ... @@ -35,6 +35,7 @@ import type {
35 35 AuditDto,
36 36 AuditVO,
37 37 CancelInvoiceAndBankStatementDto,
  38 + CancelInvoiceRecordDto,
38 39 CancelSendOrderDto,
39 40 CaptchaMessageVO,
40 41 ClientCommunicationInfo,
... ... @@ -63,7 +64,6 @@ import type {
63 64 MaterialUnitListRes,
64 65 MeasureUnitListRes,
65 66 MessageQueryDTO,
66   - ModelAndView,
67 67 OrderAddVO,
68 68 OrderAuditLogQueryVO,
69 69 OrderBaseInfoQueryVO,
... ... @@ -3237,7 +3237,9 @@ export interface GetErrorResponse {
3237 3237 * @description
3238 3238 * OK
3239 3239 */
3240   - 200: ModelAndView;
  3240 + 200: {
  3241 + [propertyName: string]: any;
  3242 + };
3241 3243 /**
3242 3244 * @description
3243 3245 * Unauthorized
... ... @@ -3258,9 +3260,9 @@ export interface GetErrorResponse {
3258 3260 export type GetErrorResponseSuccess = GetErrorResponse[200];
3259 3261 /**
3260 3262 * @description
3261   - * errorHtml
  3263 + * error
3262 3264 * @tags basic-error-controller
3263   - * @produces text/html
  3265 + * @produces *
3264 3266 */
3265 3267 export const getError = /* #__PURE__ */ (() => {
3266 3268 const method = 'get';
... ... @@ -3284,7 +3286,9 @@ export interface PutErrorResponse {
3284 3286 * @description
3285 3287 * OK
3286 3288 */
3287   - 200: ModelAndView;
  3289 + 200: {
  3290 + [propertyName: string]: any;
  3291 + };
3288 3292 /**
3289 3293 * @description
3290 3294 * Created
... ... @@ -3310,9 +3314,9 @@ export interface PutErrorResponse {
3310 3314 export type PutErrorResponseSuccess = PutErrorResponse[200];
3311 3315 /**
3312 3316 * @description
3313   - * errorHtml
  3317 + * error
3314 3318 * @tags basic-error-controller
3315   - * @produces text/html
  3319 + * @produces *
3316 3320 * @consumes application/json
3317 3321 */
3318 3322 export const putError = /* #__PURE__ */ (() => {
... ... @@ -3337,7 +3341,9 @@ export interface PostErrorResponse {
3337 3341 * @description
3338 3342 * OK
3339 3343 */
3340   - 200: ModelAndView;
  3344 + 200: {
  3345 + [propertyName: string]: any;
  3346 + };
3341 3347 /**
3342 3348 * @description
3343 3349 * Created
... ... @@ -3363,9 +3369,9 @@ export interface PostErrorResponse {
3363 3369 export type PostErrorResponseSuccess = PostErrorResponse[200];
3364 3370 /**
3365 3371 * @description
3366   - * errorHtml
  3372 + * error
3367 3373 * @tags basic-error-controller
3368   - * @produces text/html
  3374 + * @produces *
3369 3375 * @consumes application/json
3370 3376 */
3371 3377 export const postError = /* #__PURE__ */ (() => {
... ... @@ -3390,7 +3396,9 @@ export interface DeleteErrorResponse {
3390 3396 * @description
3391 3397 * OK
3392 3398 */
3393   - 200: ModelAndView;
  3399 + 200: {
  3400 + [propertyName: string]: any;
  3401 + };
3394 3402 /**
3395 3403 * @description
3396 3404 * No Content
... ... @@ -3411,9 +3419,9 @@ export interface DeleteErrorResponse {
3411 3419 export type DeleteErrorResponseSuccess = DeleteErrorResponse[200];
3412 3420 /**
3413 3421 * @description
3414   - * errorHtml
  3422 + * error
3415 3423 * @tags basic-error-controller
3416   - * @produces text/html
  3424 + * @produces *
3417 3425 */
3418 3426 export const deleteError = /* #__PURE__ */ (() => {
3419 3427 const method = 'delete';
... ... @@ -3437,7 +3445,9 @@ export interface OptionsErrorResponse {
3437 3445 * @description
3438 3446 * OK
3439 3447 */
3440   - 200: ModelAndView;
  3448 + 200: {
  3449 + [propertyName: string]: any;
  3450 + };
3441 3451 /**
3442 3452 * @description
3443 3453 * No Content
... ... @@ -3458,9 +3468,9 @@ export interface OptionsErrorResponse {
3458 3468 export type OptionsErrorResponseSuccess = OptionsErrorResponse[200];
3459 3469 /**
3460 3470 * @description
3461   - * errorHtml
  3471 + * error
3462 3472 * @tags basic-error-controller
3463   - * @produces text/html
  3473 + * @produces *
3464 3474 * @consumes application/json
3465 3475 */
3466 3476 export const optionsError = /* #__PURE__ */ (() => {
... ... @@ -3485,7 +3495,9 @@ export interface HeadErrorResponse {
3485 3495 * @description
3486 3496 * OK
3487 3497 */
3488   - 200: ModelAndView;
  3498 + 200: {
  3499 + [propertyName: string]: any;
  3500 + };
3489 3501 /**
3490 3502 * @description
3491 3503 * No Content
... ... @@ -3506,9 +3518,9 @@ export interface HeadErrorResponse {
3506 3518 export type HeadErrorResponseSuccess = HeadErrorResponse[200];
3507 3519 /**
3508 3520 * @description
3509   - * errorHtml
  3521 + * error
3510 3522 * @tags basic-error-controller
3511   - * @produces text/html
  3523 + * @produces *
3512 3524 * @consumes application/json
3513 3525 */
3514 3526 export const headError = /* #__PURE__ */ (() => {
... ... @@ -3533,7 +3545,9 @@ export interface PatchErrorResponse {
3533 3545 * @description
3534 3546 * OK
3535 3547 */
3536   - 200: ModelAndView;
  3548 + 200: {
  3549 + [propertyName: string]: any;
  3550 + };
3537 3551 /**
3538 3552 * @description
3539 3553 * No Content
... ... @@ -3554,9 +3568,9 @@ export interface PatchErrorResponse {
3554 3568 export type PatchErrorResponseSuccess = PatchErrorResponse[200];
3555 3569 /**
3556 3570 * @description
3557   - * errorHtml
  3571 + * error
3558 3572 * @tags basic-error-controller
3559   - * @produces text/html
  3573 + * @produces *
3560 3574 * @consumes application/json
3561 3575 */
3562 3576 export const patchError = /* #__PURE__ */ (() => {
... ... @@ -14094,6 +14108,77 @@ export const postServiceInvoiceCancelInvoiceAndBankStatement =
14094 14108 return request;
14095 14109 })();
14096 14110  
  14111 +/** @description request parameter type for postServiceInvoiceCancelInvoiceRecord */
  14112 +export interface PostServiceInvoiceCancelInvoiceRecordOption {
  14113 + /**
  14114 + * @description
  14115 + * cancelInvoiceRecordDto
  14116 + */
  14117 + body: {
  14118 + /**
  14119 + @description
  14120 + cancelInvoiceRecordDto */
  14121 + cancelInvoiceRecordDto: CancelInvoiceRecordDto;
  14122 + };
  14123 +}
  14124 +
  14125 +/** @description response type for postServiceInvoiceCancelInvoiceRecord */
  14126 +export interface PostServiceInvoiceCancelInvoiceRecordResponse {
  14127 + /**
  14128 + * @description
  14129 + * OK
  14130 + */
  14131 + 200: ServerResult;
  14132 + /**
  14133 + * @description
  14134 + * Created
  14135 + */
  14136 + 201: any;
  14137 + /**
  14138 + * @description
  14139 + * Unauthorized
  14140 + */
  14141 + 401: any;
  14142 + /**
  14143 + * @description
  14144 + * Forbidden
  14145 + */
  14146 + 403: any;
  14147 + /**
  14148 + * @description
  14149 + * Not Found
  14150 + */
  14151 + 404: any;
  14152 +}
  14153 +
  14154 +export type PostServiceInvoiceCancelInvoiceRecordResponseSuccess =
  14155 + PostServiceInvoiceCancelInvoiceRecordResponse[200];
  14156 +/**
  14157 + * @description
  14158 + * 取消开票记录
  14159 + * @tags 发票
  14160 + * @produces *
  14161 + * @consumes application/json
  14162 + */
  14163 +export const postServiceInvoiceCancelInvoiceRecord = /* #__PURE__ */ (() => {
  14164 + const method = 'post';
  14165 + const url = '/service/invoice/cancelInvoiceRecord';
  14166 + function request(
  14167 + option: PostServiceInvoiceCancelInvoiceRecordOption,
  14168 + ): Promise<PostServiceInvoiceCancelInvoiceRecordResponseSuccess> {
  14169 + return requester(request.url, {
  14170 + method: request.method,
  14171 + ...option,
  14172 + }) as unknown as Promise<PostServiceInvoiceCancelInvoiceRecordResponseSuccess>;
  14173 + }
  14174 +
  14175 + /** http method */
  14176 + request.method = method;
  14177 + /** request url */
  14178 + request.url = url;
  14179 + return request;
  14180 +})();
  14181 +
14097 14182 /** @description request parameter type for postServiceInvoiceDealInvoicingResult */
14098 14183 export interface PostServiceInvoiceDealInvoicingResultOption {
14099 14184 /**
... ... @@ -14309,6 +14394,77 @@ export const postServiceInvoiceDownloadInvoice = /* #__PURE__ */ (() =&gt; {
14309 14394 return request;
14310 14395 })();
14311 14396  
  14397 +/** @description request parameter type for postServiceInvoiceExportBankStatements */
  14398 +export interface PostServiceInvoiceExportBankStatementsOption {
  14399 + /**
  14400 + * @description
  14401 + * dto
  14402 + */
  14403 + body: {
  14404 + /**
  14405 + @description
  14406 + dto */
  14407 + dto: QueryBankStatementDto;
  14408 + };
  14409 +}
  14410 +
  14411 +/** @description response type for postServiceInvoiceExportBankStatements */
  14412 +export interface PostServiceInvoiceExportBankStatementsResponse {
  14413 + /**
  14414 + * @description
  14415 + * OK
  14416 + */
  14417 + 200: any;
  14418 + /**
  14419 + * @description
  14420 + * Created
  14421 + */
  14422 + 201: any;
  14423 + /**
  14424 + * @description
  14425 + * Unauthorized
  14426 + */
  14427 + 401: any;
  14428 + /**
  14429 + * @description
  14430 + * Forbidden
  14431 + */
  14432 + 403: any;
  14433 + /**
  14434 + * @description
  14435 + * Not Found
  14436 + */
  14437 + 404: any;
  14438 +}
  14439 +
  14440 +export type PostServiceInvoiceExportBankStatementsResponseSuccess =
  14441 + PostServiceInvoiceExportBankStatementsResponse[200];
  14442 +/**
  14443 + * @description
  14444 + * 导出银行流水
  14445 + * @tags 发票
  14446 + * @produces *
  14447 + * @consumes application/json
  14448 + */
  14449 +export const postServiceInvoiceExportBankStatements = /* #__PURE__ */ (() => {
  14450 + const method = 'post';
  14451 + const url = '/service/invoice/exportBankStatements';
  14452 + function request(
  14453 + option: PostServiceInvoiceExportBankStatementsOption,
  14454 + ): Promise<PostServiceInvoiceExportBankStatementsResponseSuccess> {
  14455 + return requester(request.url, {
  14456 + method: request.method,
  14457 + ...option,
  14458 + }) as unknown as Promise<PostServiceInvoiceExportBankStatementsResponseSuccess>;
  14459 + }
  14460 +
  14461 + /** http method */
  14462 + request.method = method;
  14463 + /** request url */
  14464 + request.url = url;
  14465 + return request;
  14466 +})();
  14467 +
14312 14468 /** @description response type for getServiceInvoiceExportInvoiceDetailsTemplate */
14313 14469 export interface GetServiceInvoiceExportInvoiceDetailsTemplateResponse {
14314 14470 /**
... ... @@ -15134,6 +15290,77 @@ export const postServiceInvoiceInvoicing = /* #__PURE__ */ (() =&gt; {
15134 15290 return request;
15135 15291 })();
15136 15292  
  15293 +/** @description request parameter type for postServiceInvoiceModify */
  15294 +export interface PostServiceInvoiceModifyOption {
  15295 + /**
  15296 + * @description
  15297 + * dto
  15298 + */
  15299 + body: {
  15300 + /**
  15301 + @description
  15302 + dto */
  15303 + dto: InvoiceDto;
  15304 + };
  15305 +}
  15306 +
  15307 +/** @description response type for postServiceInvoiceModify */
  15308 +export interface PostServiceInvoiceModifyResponse {
  15309 + /**
  15310 + * @description
  15311 + * OK
  15312 + */
  15313 + 200: ServerResult;
  15314 + /**
  15315 + * @description
  15316 + * Created
  15317 + */
  15318 + 201: any;
  15319 + /**
  15320 + * @description
  15321 + * Unauthorized
  15322 + */
  15323 + 401: any;
  15324 + /**
  15325 + * @description
  15326 + * Forbidden
  15327 + */
  15328 + 403: any;
  15329 + /**
  15330 + * @description
  15331 + * Not Found
  15332 + */
  15333 + 404: any;
  15334 +}
  15335 +
  15336 +export type PostServiceInvoiceModifyResponseSuccess =
  15337 + PostServiceInvoiceModifyResponse[200];
  15338 +/**
  15339 + * @description
  15340 + * 修改发票
  15341 + * @tags 发票
  15342 + * @produces *
  15343 + * @consumes application/json
  15344 + */
  15345 +export const postServiceInvoiceModify = /* #__PURE__ */ (() => {
  15346 + const method = 'post';
  15347 + const url = '/service/invoice/modify';
  15348 + function request(
  15349 + option: PostServiceInvoiceModifyOption,
  15350 + ): Promise<PostServiceInvoiceModifyResponseSuccess> {
  15351 + return requester(request.url, {
  15352 + method: request.method,
  15353 + ...option,
  15354 + }) as unknown as Promise<PostServiceInvoiceModifyResponseSuccess>;
  15355 + }
  15356 +
  15357 + /** http method */
  15358 + request.method = method;
  15359 + /** request url */
  15360 + request.url = url;
  15361 + return request;
  15362 +})();
  15363 +
15137 15364 /** @description request parameter type for postServiceInvoiceModifyRecord */
15138 15365 export interface PostServiceInvoiceModifyRecordOption {
15139 15366 /**
... ...