From 98b88860d68494a81007a2a1737dfd37a4b70c99 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期三, 02 七月 2025 16:59:46 +0800
Subject: [PATCH] fix: 江佑保系统健壮性修复
---
src/services/api/typings.d.ts | 40 ++++++++++--
src/views/Home/components/InsureOrderInfoView.vue | 11 ++-
src/views/Home/Home.vue | 69 ++++++++++++++--------
src/services/api/InsuranceOrder.ts | 10 +-
4 files changed, 89 insertions(+), 41 deletions(-)
diff --git a/src/services/api/InsuranceOrder.ts b/src/services/api/InsuranceOrder.ts
index 4fdcf30..7e369e6 100644
--- a/src/services/api/InsuranceOrder.ts
+++ b/src/services/api/InsuranceOrder.ts
@@ -386,15 +386,15 @@
/** 鏂板淇濆崟瀵煎叆 POST /api/InsuranceOrder/ImportInsStaffToList */
export async function importInsStaffToList(
- // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
- params: API.APIimportInsStaffToListParams,
+ body: API.ImportInsStaffToListFrontInput,
options?: API.RequestConfig
) {
- return request<API.ImportInsStaffAnalysisList[]>('/api/InsuranceOrder/ImportInsStaffToList', {
+ return request<API.ImportInsStaffToListOutput>('/api/InsuranceOrder/ImportInsStaffToList', {
method: 'POST',
- params: {
- ...params,
+ headers: {
+ 'Content-Type': 'application/json',
},
+ data: body,
...(options || {}),
});
}
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index 65eef95..c168d1b 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -367,13 +367,6 @@
id?: string;
}
- interface APIimportInsStaffToListParams {
- url?: string;
- serialNum?: string;
- productIdNumber?: string;
- productSchemeIdNumber?: string;
- }
-
interface APIsearchParams {
filter?: string;
sorting?: string;
@@ -620,6 +613,8 @@
/** 浜у搧鍚嶇О */
productName: string;
status?: InsureProductSettingStatusEnum;
+ /** 鎶曚繚浜烘暟涓婇檺 */
+ maxCount: number;
}
interface CreateOrUpdateRoleInput {
@@ -970,6 +965,11 @@
phone?: string;
claimCount?: number;
creationTime?: string;
+ /** 鎶曚繚鎵规鍙� */
+ payOrder?: string;
+ status?: InsuranceDetailStatusEnum;
+ /** 澶囨敞 */
+ auditRemark?: string;
}
interface GetInsuranceStaffPageTemplatePageOutput {
@@ -1312,6 +1312,26 @@
isNormal?: boolean;
}
+ interface ImportInsStaffToListFrontInput {
+ serialNum?: string;
+ url?: string;
+ /** 淇濋櫓浜у搧IdNumber */
+ productIdNumber?: string;
+ /** 淇濋櫓浜у搧鏂规Id */
+ productSchemeIdNumber?: string;
+ /** 淇濆崟鐢熸晥鏃堕棿 */
+ effectStartTime?: string;
+ }
+
+ interface ImportInsStaffToListOutput {
+ /** 鎬讳汉鏁� */
+ importAllCount?: number;
+ /** 宸插鍏ヤ汉鏁� */
+ successCount?: number;
+ /** 瀵煎叆澶辫触鍒楄〃 */
+ errorList?: ImportInsStaffAnalysisList[];
+ }
+
type InsuranceClaimAttachmentBusinessTypeEnum = 10 | 20 | 30 | 40 | 50;
interface InsuranceClaimAttachmentOutput {
@@ -1437,6 +1457,8 @@
month?: number;
count?: number;
}
+
+ type InsuranceDetailStatusEnum = 10 | 12 | 14 | 20 | 30;
interface InsuranceOrderListOutput {
id?: string;
@@ -1569,7 +1591,7 @@
invoiceDownloadOssUrl?: string;
}
- type InsurancePolicyPayStatusEnum = 1 | 2;
+ type InsurancePolicyPayStatusEnum = 1 | 2 | -1;
type InsurancePolicyStatusEnum = 10 | 20 | 30;
@@ -1702,6 +1724,8 @@
status?: InsureProductSettingStatusEnum;
/** 鍒涘缓鏃堕棿 */
creationTime?: string;
+ /** 鎶曚繚浜烘暟涓婇檺 */
+ maxCount?: number;
}
interface InsureProductSettingDtoPageOutput {
diff --git a/src/views/Home/Home.vue b/src/views/Home/Home.vue
index 031a9e2..ddd83ce 100644
--- a/src/views/Home/Home.vue
+++ b/src/views/Home/Home.vue
@@ -111,7 +111,7 @@
</AppContainer>
<UploadInsurePersonDialog v-bind="dialogProps" />
<UploadStampFileDialog v-bind="dialogStampFileProps" />
- <InsureInstructionsDialog v-bind="dialogInstructionsProps" @onConfirm="handleUpload" />
+ <InsureInstructionsDialog v-bind="dialogInstructionsProps" />
</LoadingLayout>
</template>
@@ -364,9 +364,9 @@
async function checkInrancesSerialNumStatus() {
try {
- let params: API.APIimportInsStaffToListParams = {
+ let params: API.APIcheckInrancesSerialNumStatusParams = {
serialNum: editForm.serialNum,
- url: editForm.url?.[0]?.path,
+ // url: editForm.url?.[0]?.path,
};
let res = await insuranceOrderServices.checkInrancesSerialNumStatus(params);
if (res === InsurancePolicyStatusEnum.Effecting) {
@@ -384,43 +384,62 @@
async function importInsStaffToList() {
try {
- let params: API.APIimportInsStaffToListParams = {
+ let params: API.ImportInsStaffToListFrontInput = {
serialNum: editForm.serialNum,
url: editForm.url?.[0]?.path,
productIdNumber: editForm.productIdNumber,
productSchemeIdNumber: editForm.productSchemeIdNumber,
effectStartTime: editForm.effectStartTime,
};
- let res = await insuranceOrderServices.importInsStaffToList(params);
- if (res.length > 0) {
- await Message.tipMessage('瀛樺湪閿欒鏁版嵁锛屾槸鍚﹀鍑猴紵');
- XLSXUtils.exportToXLSX({
- workbookDataList: res,
- fileName: '閿欒浜哄憳鍚嶅崟',
- workbookHeaderMap: {
- name: '闆囧憳濮撳悕',
- sex: '鎬у埆',
- certType: '璇佷欢绫诲瀷',
- certNo: '璇佷欢鍙风爜',
- jobName: '闆囧憳宸ョ',
- useEmploer: '鐢ㄥ伐鍗曚綅',
- address: '鐢ㄥ伐鍦扮偣',
- note: '澶囨敞',
- },
- });
+ let res = await insuranceOrderServices.importInsStaffToList(params, {
+ timeout: 60 * 1000 * 10,
+ });
+ if (res) {
+ dialogState.dialogVisible = false;
+ getList(paginationState.pageIndex);
+ // await Message.tipMessage('瀛樺湪閿欒鏁版嵁锛屾槸鍚﹀鍑猴紵');
+ if (res.errorList.length > 0) {
+ await Message.tipMessage(
+ `鎬绘姇淇濅汉鏁�${res.importAllCount}浜猴紝鎶曚繚鎴愬姛${res.successCount}浜猴紝鎶曚繚澶辫触${res.errorList.length}浜烘槸鍚﹀鍑烘姇淇濆け璐ヤ汉鍛樻竻鍗曪紵`,
+ {
+ confirmButtonText: '瀵煎嚭',
+ }
+ );
+ XLSXUtils.exportToXLSX({
+ workbookDataList: res.errorList,
+ fileName: '閿欒浜哄憳鍚嶅崟',
+ workbookHeaderMap: {
+ name: '闆囧憳濮撳悕',
+ sex: '鎬у埆',
+ certType: '璇佷欢绫诲瀷',
+ certNo: '璇佷欢鍙风爜',
+ jobName: '闆囧憳宸ョ',
+ useEmploer: '鐢ㄥ伐鍗曚綅',
+ address: '鐢ㄥ伐鍦扮偣',
+ note: '澶囨敞',
+ },
+ });
+ } else {
+ await Message.tipMessage(
+ `鎬绘姇淇濅汉鏁�${res.importAllCount}浜猴紝鎶曚繚鎴愬姛${res.successCount}浜篳,
+ {
+ showCancelButton: false,
+ }
+ );
+ }
}
- dialogState.dialogVisible = false;
- getList(paginationState.pageIndex);
} catch (error) {}
}
-const { dialogProps: dialogInstructionsProps, dialogState: dialogInstructionsState } = useDialog();
+const { dialogProps: dialogInstructionsProps, dialogState: dialogInstructionsState } = useDialog({
+ onConfirm: handleUpload,
+});
function handleOpenInstructions() {
dialogInstructionsState.dialogVisible = true;
}
-function handleUpload() {
+async function handleUpload() {
handleAdd({
serialNum: `${dayjs().format('YYYYMMDD')}${_.random(0, 9999).toString().padStart(4, '0')}`,
url: [] as UploadUserFile[],
diff --git a/src/views/Home/components/InsureOrderInfoView.vue b/src/views/Home/components/InsureOrderInfoView.vue
index f95d235..cac8745 100644
--- a/src/views/Home/components/InsureOrderInfoView.vue
+++ b/src/views/Home/components/InsureOrderInfoView.vue
@@ -249,7 +249,7 @@
},
{
id: '101',
- enCode: 'serialNum',
+ enCode: 'payOrder',
name: '鎵规鍙�',
width: 140,
},
@@ -261,7 +261,7 @@
},
{
id: '103',
- enCode: 'remark',
+ enCode: 'auditRemark',
name: '澶囨敞',
width: 140,
},
@@ -365,7 +365,12 @@
keyWord: '',
orderInput: [{ property: 'id', order: OrderInputType.Asc }],
},
- columnsRenderProps: {},
+ columnsRenderProps: {
+ status: {
+ type: 'enum',
+ valueEnum: InsurancePolicyStatusEnumText,
+ },
+ },
}
);
--
Gitblit v1.9.1