Commit b65804494e6e506376019cd3f98f8e06cb8f4172

Authored by boyang
2 parents 23988153 cfc0fa55

fix: 弹窗跳转一次

Too many changes to show.

To preserve performance only 9 of 10 files are displayed.

src/pages/Invoice/Invoice/components/AddBankStatementModal.tsx
... ... @@ -14,11 +14,21 @@ export default ({ getRows, onFinish }) => {
14 14 dataIndex: 'id',
15 15 },
16 16 {
  17 + title: '编号',
  18 + hideInTable: true,
  19 + dataIndex: 'id',
  20 + },
  21 + {
17 22 title: '流水号',
18 23 hideInSearch: true,
19 24 dataIndex: 'serialNumber',
20 25 },
21 26 {
  27 + title: '流水号',
  28 + hideInTable: true,
  29 + dataIndex: 'serialNumber',
  30 + },
  31 + {
22 32 title: '收款时间',
23 33 dataIndex: 'collectionDatetime',
24 34 hideInSearch: true,
... ... @@ -26,7 +36,7 @@ export default ({ getRows, onFinish }) => {
26 36 },
27 37 {
28 38 title: '收款方',
29   - hideInTable: true,
  39 + hideInSearch: true,
30 40 dataIndex: 'payeeText',
31 41 },
32 42 {
... ...
src/pages/Invoice/Invoice/components/InvoiceVerificationModal.tsx
... ... @@ -20,7 +20,6 @@ export default ({ invoiceId, setVisible, onClose }) => {
20 20 const [bankChooseModalVisible, setBankChooseModalVisible] = useState(false);
21 21 const [invoiceInfo, setInvoiceInfo] = useState({});
22 22 const [relationOrderIds, setRelationOrderIds] = useState([]);
23   - const [setRelationBankStatements] = useState([]);
24 23 const actionRef = useRef<ActionType>();
25 24  
26 25 const loadInvoiceData = async () => {
... ... @@ -31,7 +30,6 @@ export default ({ invoiceId, setVisible, onClose }) =&gt; {
31 30 setInvoiceInfo(res.data);
32 31 setRelationOrderIds(res.data.mainOrderIds);
33 32 console.log('bs:' + res.data.bankStatementDtos);
34   - setRelationBankStatements(res.data.bankStatementDtos);
35 33 }
36 34 };
37 35  
... ... @@ -117,6 +115,18 @@ export default ({ invoiceId, setVisible, onClose }) =&gt; {
117 115 },
118 116 {
119 117 key: '11',
  118 + label: '订单类型',
  119 + children: invoiceInfo?.orderTypeText,
  120 + span: 12,
  121 + },
  122 + {
  123 + key: '12',
  124 + label: '绑定流水号',
  125 + children: invoiceInfo?.serialNumbersTextByOrder,
  126 + span: 12,
  127 + },
  128 + {
  129 + key: '13',
120 130 label: '备注',
121 131 children: invoiceInfo?.notes,
122 132 span: 24,
... ...
src/pages/Invoice/Invoice/components/invoiceWriteOffModal.tsx
... ... @@ -30,24 +30,29 @@ export default ({ getData, triggerButton, readOnly }) =&gt; {
30 30 {
31 31 title: '发票号码',
32 32 dataIndex: 'invoiceNumber',
  33 + ellipsis: true,
33 34 },
34 35 {
35 36 title: '收款方',
36 37 dataIndex: 'payeeText',
  38 + ellipsis: true,
37 39 },
38 40 {
39 41 title: '付款方',
40 42 dataIndex: 'purchaser',
  43 + ellipsis: true,
41 44 },
42 45 {
43 46 title: '金额',
44 47 dataIndex: 'money',
45 48 valueType: 'money',
  49 + ellipsis: true,
46 50 },
47 51 {
48 52 title: '日期',
49 53 dataIndex: 'invoicingTime',
50 54 valueType: 'date',
  55 + ellipsis: true,
51 56 },
52 57 ];
53 58 if (!readOnly) {
... ... @@ -84,49 +89,52 @@ export default ({ getData, triggerButton, readOnly }) =&gt; {
84 89 {
85 90 title: '流水号',
86 91 dataIndex: 'serialNumber',
  92 + ellipsis: true,
87 93 },
88 94 {
89 95 title: '收款方',
90 96 dataIndex: 'payeeText',
  97 + ellipsis: true,
91 98 },
92 99 {
93 100 title: '付款方',
94 101 dataIndex: 'payer',
  102 + ellipsis: true,
95 103 },
96 104 {
97 105 title: '金额',
98 106 dataIndex: 'amount',
99 107 valueType: 'money',
  108 + ellipsis: true,
100 109 },
101 110 {
102 111 title: '日期',
103 112 dataIndex: 'collectionDatetime',
104 113 valueType: 'date',
  114 + ellipsis: true,
105 115 },
106 116 ];
107   - if (!readOnly) {
108   - columns.push({
109   - title: '操作',
110   - valueType: 'option',
111   - width: 200,
112   - render: (text, record) => [
113   - <a
114   - key="delete"
115   - onClick={() => {
116   - const tableDataSource =
117   - formRef.current?.getFieldValue('bankStatements');
118   - console.log(JSON.stringify(tableDataSource));
119   - formRef.current?.setFieldValue(
120   - 'bankStatements',
121   - tableDataSource.filter((item) => item.id !== record.id),
122   - );
123   - }}
124   - >
125   - 删除
126   - </a>,
127   - ],
128   - });
129   - }
  117 + columns.push({
  118 + title: '操作',
  119 + valueType: 'option',
  120 + width: 200,
  121 + render: (text, record) => [
  122 + <a
  123 + key="delete"
  124 + onClick={() => {
  125 + const tableDataSource =
  126 + formRef.current?.getFieldValue('bankStatements');
  127 + console.log(JSON.stringify(tableDataSource));
  128 + formRef.current?.setFieldValue(
  129 + 'bankStatements',
  130 + tableDataSource.filter((item) => item.id !== record.id),
  131 + );
  132 + }}
  133 + >
  134 + 删除
  135 + </a>,
  136 + ],
  137 + });
130 138 return columns;
131 139 };
132 140  
... ... @@ -155,9 +163,9 @@ export default ({ getData, triggerButton, readOnly }) =&gt; {
155 163 return getData();
156 164 }}
157 165 /*initialValues={{
158   - invoiceWriteOffId:invoiceWriteOffId,
159   - invoices:originInvoices,
160   - }}*/
  166 + invoiceWriteOffId:invoiceWriteOffId,
  167 + invoices:originInvoices,
  168 + }}*/
161 169 >
162 170 <ProFormText name={'invoiceWriteOffId'} hidden={true}></ProFormText>
163 171  
... ... @@ -295,30 +303,27 @@ export default ({ getData, triggerButton, readOnly }) =&gt; {
295 303 recordCreatorProps={false}
296 304 toolBarRender={() => [
297 305 <>
298   - {!readOnly && (
299   - <AddBankStatementModal
300   - getRows={() => formRef.current?.getFieldValue('bankStatements')}
301   - onFinish={(datas) => {
302   - const bankStatements =
303   - formRef.current?.getFieldValue('bankStatements');
304   - // 添加非空判断,并处理为空的情况
305   - const mergedBankStatements =
306   - bankStatements && Array.isArray(bankStatements)
307   - ? bankStatements
308   - : [];
309   - const mergedDatas =
310   - datas && Array.isArray(datas) ? datas : [];
311   - let res = [...mergedBankStatements, ...mergedDatas];
312   - //对res 进行去重处理,根据id去重
313   - const resMap = new Map();
314   - res.forEach((item) => {
315   - resMap.set(item.id, item);
316   - });
317   - res = Array.from(resMap.values());
318   - formRef.current?.setFieldValue('bankStatements', res);
319   - }}
320   - />
321   - )}
  306 + <AddBankStatementModal
  307 + getRows={() => formRef.current?.getFieldValue('bankStatements')}
  308 + onFinish={(datas) => {
  309 + const bankStatements =
  310 + formRef.current?.getFieldValue('bankStatements');
  311 + // 添加非空判断,并处理为空的情况
  312 + const mergedBankStatements =
  313 + bankStatements && Array.isArray(bankStatements)
  314 + ? bankStatements
  315 + : [];
  316 + const mergedDatas = datas && Array.isArray(datas) ? datas : [];
  317 + let res = [...mergedBankStatements, ...mergedDatas];
  318 + //对res 进行去重处理,根据id去重
  319 + const resMap = new Map();
  320 + res.forEach((item) => {
  321 + resMap.set(item.id, item);
  322 + });
  323 + res = Array.from(resMap.values());
  324 + formRef.current?.setFieldValue('bankStatements', res);
  325 + }}
  326 + />
322 327 </>,
323 328 ]}
324 329 columns={getBankStatementColumns()}
... ...
src/pages/Invoice/Invoice/index.tsx
... ... @@ -11,6 +11,7 @@ import {
11 11 postServiceInvoiceGetWriteOffRecord,
12 12 postServiceInvoiceQueryInvoice,
13 13 } from '@/services';
  14 +import { orderExport } from '@/services/order';
14 15 import { enumValueToLabel, formatDateTime } from '@/utils';
15 16 import { formatDate } from '@/utils/time';
16 17 import { ActionType, ProTable } from '@ant-design/pro-components';
... ... @@ -23,6 +24,7 @@ const InvoiceRecord = () =&gt; {
23 24 const [invoiceVerificationVisible, setInvoiceVerificationVisible] =
24 25 useState(false);
25 26 const [invoiceId, setInvoiceId] = useState(undefined);
  27 + const [messageApi, contextHolder] = message.useMessage();
26 28 const reloadInvoiceTable = () => {
27 29 invoiceActionRef.current?.reload();
28 30 };
... ... @@ -216,6 +218,31 @@ const InvoiceRecord = () =&gt; {
216 218 rowKey="id"
217 219 search={{
218 220 labelWidth: 'auto',
  221 + optionRender: (searchConfig, formProps, dom) => [
  222 + ...dom.reverse(),
  223 + <Button
  224 + key="out"
  225 + onClick={() => {
  226 + const values = searchConfig?.form?.getFieldsValue();
  227 + messageApi.open({
  228 + type: 'loading',
  229 + content: '导出中...',
  230 + duration: 0,
  231 + });
  232 + orderExport(
  233 + '/api/service/invoice/exportInvoices',
  234 + '发票.xlsx',
  235 + 'POST',
  236 + values,
  237 + () => {
  238 + messageApi.destroy();
  239 + },
  240 + );
  241 + }}
  242 + >
  243 + 导出
  244 + </Button>,
  245 + ],
219 246 }}
220 247 options={{
221 248 setting: {
... ... @@ -265,6 +292,7 @@ const InvoiceRecord = () =&gt; {
265 292 ) : (
266 293 ''
267 294 )}
  295 + {contextHolder}
268 296 </div>
269 297 );
270 298 };
... ...
src/pages/Invoice/InvoiceVerification/index.tsx
1 1 import ButtonConfirm from '@/components/ButtomConfirm';
2 2 import EllipsisDiv from '@/components/Div/EllipsisDiv';
3 3 import { RESPONSE_CODE } from '@/constants/enum';
  4 +import InvoiceWriteOffModal from '@/pages/Invoice/Invoice/components/invoiceWriteOffModal';
4 5 import BankImportModal from '@/pages/Invoice/InvoiceVerification/components/BankImportModal';
5 6 import InvoiceRecordDetailModal from '@/pages/Invoice/InvoiceVerification/components/InvoiceRecordDetailModal';
6 7 import InvoiceVerificationModal from '@/pages/Invoice/InvoiceVerification/components/InvoiceVerificationModal';
... ... @@ -13,7 +14,9 @@ import {
13 14 postServiceBankStatementDeleteBankStatement,
14 15 postServiceBankStatementEditBankStatement,
15 16 postServiceBankStatementQueryBankStatement,
  17 + postServiceInvoiceGetWriteOffRecord,
16 18 } from '@/services';
  19 +import { orderExport } from '@/services/order';
17 20 import { enumValueToLabel, formatDateTime } from '@/utils';
18 21 import { formatDate } from '@/utils/time';
19 22 import { PlusOutlined } from '@ant-design/icons';
... ... @@ -27,6 +30,7 @@ const InvoiceRecord = () =&gt; {
27 30 const [bankImportModalVisible, setBankImportModalVisible] = useState(false);
28 31 const [invoiceVerificationVisible, setInvoiceVerificationVisible] =
29 32 useState(false);
  33 + const [messageApi, contextHolder] = message.useMessage();
30 34 const [invoiceId] = useState(undefined);
31 35 const [invoiceRecordDetailVisible, setInvoiceRecordDetailVisible] =
32 36 useState(false);
... ... @@ -133,6 +137,28 @@ const InvoiceRecord = () =&gt; {
133 137 );
134 138 }
135 139  
  140 + if (record.writeOffId !== null) {
  141 + btns.push(
  142 + <InvoiceWriteOffModal
  143 + getData={async () => {
  144 + console.log(record.writeOffId);
  145 + const res = await postServiceInvoiceGetWriteOffRecord({
  146 + data: { id: record.writeOffId },
  147 + });
  148 + const data = res.data;
  149 + return {
  150 + invoiceWriteOffId: data.id,
  151 + invoices: data.invoiceDtos,
  152 + bankStatements: data.bankStatementDtos,
  153 + };
  154 + }}
  155 + key="writeOff"
  156 + triggerButton={<Button type="link">核销记录</Button>}
  157 + readOnly={true}
  158 + />,
  159 + );
  160 + }
  161 +
136 162 if (record.paths?.includes('deleteBankStatement')) {
137 163 btns.push(
138 164 <ButtonConfirm
... ... @@ -202,6 +228,31 @@ const InvoiceRecord = () =&gt; {
202 228 rowKey="id"
203 229 search={{
204 230 labelWidth: 'auto',
  231 + optionRender: (searchConfig, formProps, dom) => [
  232 + ...dom.reverse(),
  233 + <Button
  234 + key="out"
  235 + onClick={() => {
  236 + const values = searchConfig?.form?.getFieldsValue();
  237 + messageApi.open({
  238 + type: 'loading',
  239 + content: '导出中...',
  240 + duration: 0,
  241 + });
  242 + orderExport(
  243 + '/api/service/invoice/exportBankStatements',
  244 + '银行流水.xlsx',
  245 + 'POST',
  246 + values,
  247 + () => {
  248 + messageApi.destroy();
  249 + },
  250 + );
  251 + }}
  252 + >
  253 + 导出
  254 + </Button>,
  255 + ],
205 256 }}
206 257 options={{
207 258 setting: {
... ... @@ -260,6 +311,7 @@ const InvoiceRecord = () =&gt; {
260 311 ) : (
261 312 ''
262 313 )}
  314 + {contextHolder}
263 315 </div>
264 316 );
265 317 };
... ...
src/pages/Invoice/constant.tsx
... ... @@ -78,6 +78,43 @@ export const INVOICE_COLUMNS = [
78 78 hideInTable: true,
79 79 },
80 80 {
  81 + title: '订单状态',
  82 + dataIndex: 'orderTypeText',
  83 + valueType: 'text',
  84 + width: 180,
  85 + },
  86 + {
  87 + title: '绑定流水号',
  88 + dataIndex: 'serialNumbersTextByOrder',
  89 +
  90 + valueType: 'text',
  91 + width: 180,
  92 + },
  93 + {
  94 + title: '是否预付款',
  95 + dataIndex: 'orderIsPrePay',
  96 + valueType: 'select',
  97 + valueEnum: {
  98 + true: {
  99 + text: '是',
  100 + status: true,
  101 + },
  102 + false: {
  103 + text: '否',
  104 + status: false,
  105 + },
  106 + },
  107 + hideInTable: true,
  108 + width: 180,
  109 + },
  110 + {
  111 + title: '绑定流水号',
  112 + dataIndex: 'serialNumberLike',
  113 + hideInTable: true,
  114 + valueType: 'text',
  115 + width: 180,
  116 + },
  117 + {
81 118 title: '购买方',
82 119 dataIndex: 'purchaser',
83 120 valueType: 'text',
... ...
src/pages/Order/Order/index.tsx
... ... @@ -214,7 +214,7 @@ const OrderPage = () =&gt; {
214 214 const [ids, setIds] = useState([]);
215 215 const [recordOptNode, setRecordOptNode] = useState(null);
216 216 const roleCode = userInfo?.roleSmallVO?.code;
217   - // const navigate = useNavigate();
  217 + const roles = userInfo?.roles;
218 218 const canMergeInvoicing = useMemo(() => {
219 219 if (subOrderSelectedMap.size === 0) {
220 220 return false;
... ... @@ -228,6 +228,7 @@ const OrderPage = () =&gt; {
228 228 .every((subItem) => subItem.paths.includes('applyInvoicing_old'));
229 229 }, [selectedSubOrderKeys]);
230 230  
  231 + console.log(JSON.stringify(userInfo));
231 232 const triggerRecordOptNode = async (id) => {
232 233 const res = await postServiceOrderGetCurrentOptNode({
233 234 query: {
... ... @@ -2096,8 +2097,9 @@ const OrderPage = () =&gt; {
2096 2097 title="已和客户确认发票??"
2097 2098 text="确认发票"
2098 2099 onConfirm={async () => {
  2100 + let body = { ids: [optRecord.id] };
2099 2101 const data = await postServiceOrderConfirmInvoice({
2100   - data: [optRecord.id],
  2102 + data: body,
2101 2103 });
2102 2104 if (data.result === RESPONSE_CODE.SUCCESS) {
2103 2105 message.success(data.message);
... ... @@ -2108,7 +2110,6 @@ const OrderPage = () =&gt; {
2108 2110 ) : (
2109 2111 ''
2110 2112 )}
2111   -
2112 2113 {optRecord.paths?.includes('orderCancel') ? (
2113 2114 <ButtonConfirm
2114 2115 className="p-0"
... ... @@ -3889,12 +3890,15 @@ const OrderPage = () =&gt; {
3889 3890 title="已和客户确认发票?"
3890 3891 text="确认发票"
3891 3892 onConfirm={async () => {
3892   - const data = await postServiceOrderConfirmInvoice({
3893   - data: [
  3893 + let body = {
  3894 + ids: [
3894 3895 ...record.subOrderInformationLists.map(
3895 3896 (subOrder) => subOrder.id,
3896 3897 ),
3897 3898 ],
  3899 + };
  3900 + const data = await postServiceOrderConfirmInvoice({
  3901 + data: body,
3898 3902 });
3899 3903 if (data.result === RESPONSE_CODE.SUCCESS) {
3900 3904 message.success(data.message);
... ... @@ -4042,7 +4046,7 @@ const OrderPage = () =&gt; {
4042 4046 /**
4043 4047 * 采购的订单状态筛选内容
4044 4048 */
4045   - if (roleCode === 'procure' && item.dataIndex === 'orderStatus') {
  4049 + if (roles.includes('PROCURE') && item.dataIndex === 'orderStatus') {
4046 4050 item.valueEnum = enumToProTableEnumValue(
4047 4051 PROCURE_PRIMARY_ORDER_STATUS_OPTIONS,
4048 4052 );
... ... @@ -4054,7 +4058,12 @@ const OrderPage = () =&gt; {
4054 4058 /**
4055 4059 * 采购可以筛选供应商备注
4056 4060 */
4057   - if ((roleCode === 'procure' || roleCode === 'admin') && !isSupplier()) {
  4061 + if (
  4062 + (roleCode === 'procure' ||
  4063 + roles.includes('PROCURE') ||
  4064 + roleCode === 'admin') &&
  4065 + !isSupplier()
  4066 + ) {
4058 4067 mainOrdersColumns.push({
4059 4068 title: '供应商备注',
4060 4069 width: 120,
... ... @@ -4067,7 +4076,12 @@ const OrderPage = () =&gt; {
4067 4076 /**
4068 4077 * 采购可以筛选其他采购
4069 4078 */
4070   - if ((roleCode === 'procure' || roleCode === 'admin') && !isSupplier()) {
  4079 + if (
  4080 + (roleCode === 'procure' ||
  4081 + roles.includes('PROCURE') ||
  4082 + roleCode === 'admin') &&
  4083 + !isSupplier()
  4084 + ) {
4071 4085 mainOrdersColumns.push({
4072 4086 title: '采购名称',
4073 4087 width: 120,
... ... @@ -4087,7 +4101,12 @@ const OrderPage = () =&gt; {
4087 4101 /**
4088 4102 * 排除采购
4089 4103 */
4090   - if ((roleCode === 'procure' || roleCode === 'admin') && !isSupplier()) {
  4104 + if (
  4105 + (roleCode === 'procure' ||
  4106 + roles.includes('PROCURE') ||
  4107 + roleCode === 'admin') &&
  4108 + !isSupplier()
  4109 + ) {
4091 4110 mainOrdersColumns.push({
4092 4111 title: '采购排除',
4093 4112 width: 120,
... ... @@ -4122,7 +4141,11 @@ const OrderPage = () =&gt; {
4122 4141 }
4123 4142  
4124 4143 //判断是否是采购,是的话新增一个筛选条件
4125   - if (roleCode === 'procure' || roleCode === 'admin') {
  4144 + if (
  4145 + roleCode === 'procure' ||
  4146 + roles.includes('PROCURE') ||
  4147 + roleCode === 'admin'
  4148 + ) {
4126 4149 mainOrdersColumns.push({
4127 4150 title: isSupplier() ? '下单状态' : '采购下单状态',
4128 4151 dataIndex: 'procureOrderStatus',
... ... @@ -4151,7 +4174,7 @@ const OrderPage = () =&gt; {
4151 4174 }
4152 4175  
4153 4176 //采购可以筛选出需要处理的订单
4154   - if (roleCode === 'procure' && !isSupplier()) {
  4177 + if (roles.includes('PROCURE') && !isSupplier()) {
4155 4178 radios.push(<Radio value={60}>其他采购</Radio>);
4156 4179 radios.push(<Radio value={10}>待处理</Radio>);
4157 4180 }
... ... @@ -4335,7 +4358,7 @@ const OrderPage = () =&gt; {
4335 4358 key="out"
4336 4359 onClick={() => {
4337 4360 setIsMainOrder(true);
4338   - if (roleCode === 'procure') {
  4361 + if (roles.includes('PROCURE')) {
4339 4362 setProcureCheckModalVisible(true);
4340 4363 }
4341 4364  
... ...
src/pages/ResearchGroup/components/ResearchGroupAddModal.tsx
... ... @@ -267,9 +267,15 @@ export default ({ setVisible, researchGroupId, onClose }) =&gt; {
267 267 let uidIdMap = new Map(
268 268 accounts.map((item: any) => [item.accountId, item.id]),
269 269 );
270   - let res = await postCanrdApiUserList({
271   - data: { uids: accountIds, phones: phones },
272   - });
  270 + let data = {};
  271 + if (accountIds.length > 0) {
  272 + data = { ...data, uids: accountIds };
  273 + }
  274 + if (phones.length > 0) {
  275 + data = { ...data, phones: phones };
  276 + }
  277 +
  278 + let res = await postCanrdApiUserList({ data });
273 279 if (res && res.result === RESPONSE_CODE.SUCCESS) {
274 280 let accountList = res?.data?.data;
275 281 console.log(accountList);
... ...
src/services/definition.ts
... ... @@ -3,82 +3,82 @@
3 3 /** Do not modify manually.
4 4 content is generated automatically by `ts-gear`. */
5 5 export type ModelAndViewStatus =
6   - | "100 CONTINUE"
7   - | "101 SWITCHING_PROTOCOLS"
8   - | "102 PROCESSING"
9   - | "103 CHECKPOINT"
10   - | "200 OK"
11   - | "201 CREATED"
12   - | "202 ACCEPTED"
13   - | "203 NON_AUTHORITATIVE_INFORMATION"
14   - | "204 NO_CONTENT"
15   - | "205 RESET_CONTENT"
16   - | "206 PARTIAL_CONTENT"
17   - | "207 MULTI_STATUS"
18   - | "208 ALREADY_REPORTED"
19   - | "226 IM_USED"
20   - | "300 MULTIPLE_CHOICES"
21   - | "301 MOVED_PERMANENTLY"
22   - | "302 FOUND"
23   - | "302 MOVED_TEMPORARILY"
24   - | "303 SEE_OTHER"
25   - | "304 NOT_MODIFIED"
26   - | "305 USE_PROXY"
27   - | "307 TEMPORARY_REDIRECT"
28   - | "308 PERMANENT_REDIRECT"
29   - | "400 BAD_REQUEST"
30   - | "401 UNAUTHORIZED"
31   - | "402 PAYMENT_REQUIRED"
32   - | "403 FORBIDDEN"
33   - | "404 NOT_FOUND"
34   - | "405 METHOD_NOT_ALLOWED"
35   - | "406 NOT_ACCEPTABLE"
36   - | "407 PROXY_AUTHENTICATION_REQUIRED"
37   - | "408 REQUEST_TIMEOUT"
38   - | "409 CONFLICT"
39   - | "410 GONE"
40   - | "411 LENGTH_REQUIRED"
41   - | "412 PRECONDITION_FAILED"
42   - | "413 PAYLOAD_TOO_LARGE"
43   - | "413 REQUEST_ENTITY_TOO_LARGE"
44   - | "414 URI_TOO_LONG"
45   - | "414 REQUEST_URI_TOO_LONG"
46   - | "415 UNSUPPORTED_MEDIA_TYPE"
47   - | "416 REQUESTED_RANGE_NOT_SATISFIABLE"
48   - | "417 EXPECTATION_FAILED"
49   - | "418 I_AM_A_TEAPOT"
50   - | "419 INSUFFICIENT_SPACE_ON_RESOURCE"
51   - | "420 METHOD_FAILURE"
52   - | "421 DESTINATION_LOCKED"
53   - | "422 UNPROCESSABLE_ENTITY"
54   - | "423 LOCKED"
55   - | "424 FAILED_DEPENDENCY"
56   - | "425 TOO_EARLY"
57   - | "426 UPGRADE_REQUIRED"
58   - | "428 PRECONDITION_REQUIRED"
59   - | "429 TOO_MANY_REQUESTS"
60   - | "431 REQUEST_HEADER_FIELDS_TOO_LARGE"
61   - | "451 UNAVAILABLE_FOR_LEGAL_REASONS"
62   - | "500 INTERNAL_SERVER_ERROR"
63   - | "501 NOT_IMPLEMENTED"
64   - | "502 BAD_GATEWAY"
65   - | "503 SERVICE_UNAVAILABLE"
66   - | "504 GATEWAY_TIMEOUT"
67   - | "505 HTTP_VERSION_NOT_SUPPORTED"
68   - | "506 VARIANT_ALSO_NEGOTIATES"
69   - | "507 INSUFFICIENT_STORAGE"
70   - | "508 LOOP_DETECTED"
71   - | "509 BANDWIDTH_LIMIT_EXCEEDED"
72   - | "510 NOT_EXTENDED"
73   - | "511 NETWORK_AUTHENTICATION_REQUIRED";
  6 + | '100 CONTINUE'
  7 + | '101 SWITCHING_PROTOCOLS'
  8 + | '102 PROCESSING'
  9 + | '103 CHECKPOINT'
  10 + | '200 OK'
  11 + | '201 CREATED'
  12 + | '202 ACCEPTED'
  13 + | '203 NON_AUTHORITATIVE_INFORMATION'
  14 + | '204 NO_CONTENT'
  15 + | '205 RESET_CONTENT'
  16 + | '206 PARTIAL_CONTENT'
  17 + | '207 MULTI_STATUS'
  18 + | '208 ALREADY_REPORTED'
  19 + | '226 IM_USED'
  20 + | '300 MULTIPLE_CHOICES'
  21 + | '301 MOVED_PERMANENTLY'
  22 + | '302 FOUND'
  23 + | '302 MOVED_TEMPORARILY'
  24 + | '303 SEE_OTHER'
  25 + | '304 NOT_MODIFIED'
  26 + | '305 USE_PROXY'
  27 + | '307 TEMPORARY_REDIRECT'
  28 + | '308 PERMANENT_REDIRECT'
  29 + | '400 BAD_REQUEST'
  30 + | '401 UNAUTHORIZED'
  31 + | '402 PAYMENT_REQUIRED'
  32 + | '403 FORBIDDEN'
  33 + | '404 NOT_FOUND'
  34 + | '405 METHOD_NOT_ALLOWED'
  35 + | '406 NOT_ACCEPTABLE'
  36 + | '407 PROXY_AUTHENTICATION_REQUIRED'
  37 + | '408 REQUEST_TIMEOUT'
  38 + | '409 CONFLICT'
  39 + | '410 GONE'
  40 + | '411 LENGTH_REQUIRED'
  41 + | '412 PRECONDITION_FAILED'
  42 + | '413 PAYLOAD_TOO_LARGE'
  43 + | '413 REQUEST_ENTITY_TOO_LARGE'
  44 + | '414 URI_TOO_LONG'
  45 + | '414 REQUEST_URI_TOO_LONG'
  46 + | '415 UNSUPPORTED_MEDIA_TYPE'
  47 + | '416 REQUESTED_RANGE_NOT_SATISFIABLE'
  48 + | '417 EXPECTATION_FAILED'
  49 + | '418 I_AM_A_TEAPOT'
  50 + | '419 INSUFFICIENT_SPACE_ON_RESOURCE'
  51 + | '420 METHOD_FAILURE'
  52 + | '421 DESTINATION_LOCKED'
  53 + | '422 UNPROCESSABLE_ENTITY'
  54 + | '423 LOCKED'
  55 + | '424 FAILED_DEPENDENCY'
  56 + | '425 TOO_EARLY'
  57 + | '426 UPGRADE_REQUIRED'
  58 + | '428 PRECONDITION_REQUIRED'
  59 + | '429 TOO_MANY_REQUESTS'
  60 + | '431 REQUEST_HEADER_FIELDS_TOO_LARGE'
  61 + | '451 UNAVAILABLE_FOR_LEGAL_REASONS'
  62 + | '500 INTERNAL_SERVER_ERROR'
  63 + | '501 NOT_IMPLEMENTED'
  64 + | '502 BAD_GATEWAY'
  65 + | '503 SERVICE_UNAVAILABLE'
  66 + | '504 GATEWAY_TIMEOUT'
  67 + | '505 HTTP_VERSION_NOT_SUPPORTED'
  68 + | '506 VARIANT_ALSO_NEGOTIATES'
  69 + | '507 INSUFFICIENT_STORAGE'
  70 + | '508 LOOP_DETECTED'
  71 + | '509 BANDWIDTH_LIMIT_EXCEEDED'
  72 + | '510 NOT_EXTENDED'
  73 + | '511 NETWORK_AUTHENTICATION_REQUIRED';
74 74 export type ProcureReturnBillDtoSendStore =
75   - | "DALANG_WAREHOUSE"
76   - | "HOUJIE_WAREHOUSE";
  75 + | 'DALANG_WAREHOUSE'
  76 + | 'HOUJIE_WAREHOUSE';
77 77 export type ProcureReturnBillDtoStatus =
78   - | "AUDIT_NOTPASS"
79   - | "WAIT_SEND"
80   - | "SENDED"
81   - | "WAIT_AUDIT";
  78 + | 'AUDIT_NOTPASS'
  79 + | 'WAIT_SEND'
  80 + | 'SENDED'
  81 + | 'WAIT_AUDIT';
82 82 export interface AdminAuthRoleVO {
83 83 menuIds?: Array<number>;
84 84 /** @format int64 */
... ... @@ -1465,11 +1465,20 @@ export interface InvoiceDto {
1465 1465 invoiceStatus?: string;
1466 1466 /**
1467 1467 * @description
  1468 + * 发票类型
  1469 + */
  1470 + invoiceStatusText?: string;
  1471 + /**
  1472 + * @description
1468 1473 * 开票日期
1469 1474 * @format date-time
1470 1475 */
1471 1476 invoicingTime?: string;
1472 1477 invoicingType?: string;
  1478 + /**
  1479 + * @description
  1480 + * 开具类型
  1481 + */
1473 1482 invoicingTypeText?: string;
1474 1483 logicDelete?: boolean;
1475 1484 /**
... ... @@ -1501,6 +1510,11 @@ export interface InvoiceDto {
1501 1510 payeeText?: string;
1502 1511 /**
1503 1512 * @description
  1513 + * 收款单位
  1514 + */
  1515 + payeeText?: string;
  1516 + /**
  1517 + * @description
1504 1518 * 购买方
1505 1519 */
1506 1520 purchaser?: string;
... ... @@ -3693,6 +3707,9 @@ export interface SubOrder {
3693 3707 id?: number;
3694 3708 image?: string;
3695 3709 invoiceApplyUsername?: string;
  3710 + invoiceConfirmStatus?: string;
  3711 + /** @format date-time */
  3712 + invoiceConfirmStatusDatetime?: string;
3696 3713 invoiceInformation?: string;
3697 3714 /** @format int64 */
3698 3715 invoiceRecordId?: number;
... ...