From 484b8a78e965d72ac59546679526980a32de11d0 Mon Sep 17 00:00:00 2001 From: Kane Wang Date: Mon, 6 Nov 2023 19:16:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E8=BF=9B=E5=BA=A6=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/web/task_schedule/src/utils/BIReport.ts | 96 ++++++++++-- .../web/task_schedule/src/utils/api/config.ts | 7 + .../data/bi/TelsalerAttachingRateView.vue | 139 ++++++++++++++++-- .../mapper/QueryBIArchievementDataMapper.java | 6 + .../pojo/BITelsalerAttachingRateRecord.java | 28 +--- .../xim/utils/data/ImportBIExcelData.java | 2 +- .../archievement/bi/BIReportController.java | 125 +++++++++++++++- ...DepartmentAttachingRateReportResponse.java | 91 ++++++++++++ ...ryDepartmentRenewalRateReportResponse.java | 100 +++++++++++++ ...ueryTelsalerRenewalRateReportResponse.java | 92 ++++++++++++ .../mapper/QueryBIArchievementDataMapper.xml | 61 ++++++++ 11 files changed, 688 insertions(+), 59 deletions(-) create mode 100644 code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/bi/QueryDepartmentAttachingRateReportResponse.java create mode 100644 code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/bi/QueryDepartmentRenewalRateReportResponse.java create mode 100644 code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/bi/QueryTelsalerRenewalRateReportResponse.java diff --git a/code/web/task_schedule/src/utils/BIReport.ts b/code/web/task_schedule/src/utils/BIReport.ts index 98a6701..c0c5f61 100644 --- a/code/web/task_schedule/src/utils/BIReport.ts +++ b/code/web/task_schedule/src/utils/BIReport.ts @@ -7,7 +7,7 @@ * * Copyright (c) ${2023} by Kane, All Rights Reserved. */ -import { service as instance } from "./api/request.js"; +import { service as instance, service } from "./api/request.js"; import { API_URL } from "./api/config.js"; import { type AxiosResponse } from "axios"; interface BIReportType @@ -16,6 +16,9 @@ interface BIReportType reportTypeName: string; } +/** + * 导入报表的请求对象 + */ interface ImportBIReportRequest { filePath: string, @@ -24,33 +27,59 @@ interface ImportBIReportRequest sheetIndex: number, } +/** + * 导入报表的相应对象 + */ interface ImportBIReportResponse { - success: boolean, - message: string, - importedCount: number, + success: boolean, // 请求成功标志 + message: string, // 请求结果说明 + importedCount: number, // 导入记录的数量 } // BI坐席渗透率报表记录 -interface BITelsalerAttachingRateReportRecord +interface BITelsalerAttachingRateRecord { - departmentName: string; - telsalerName: string; - motoPremium: number; - nomotoPremium: number; - attachingRatePresentMonth: number; - attachingRateChange: number; + departmentName: string; // 部门 + telsalerName: string; // 经办人 + motoPremium: number; // 车险保费 + nomotoPremium: number; // 非车险保费 + motoPremiumProportion: number; // 车险保费占比 + attachingRate: number; // 保费渗透率 + attachingRateChange: number; // 渗透率环比上月 + customerHandleRate: number; // 当月客户渗透率 + customerHandleRateChange: number; // 客户渗透率环比上月 + noMotoPremiumPerCustomer: number; // 当月车非客均保费 + noMotoPremiumPerCustomerChange: number; // 客均保费环比上月 } interface QueryBITelsalerAttachingRateReportResponse { success: boolean, message: string, - records: BITelsalerAttachingRateReportRecord[]; + records: BITelsalerAttachingRateRecord[]; } -type ImportBIReportResponseHandler = ( response: ImportBIReportResponse, error?: any ) => void; +/** + * BI坐席续保率报表记录 + */ +interface BITelsalerRenewalRateRecord +{ + 责任部门: string; + 责任人: string; + 机构目标值: number; + 到期数全月: number; + 序时到期数占比: number; + 个车续保率序时: number; + 个车续保率全月: number; + 环比昨日: number; + 环比上月: number; + 平均提前签单天数: number; + 环比: number; +} +type ImportBIReportResponseHandler = ( response: ImportBIReportResponse, error: any ) => void; +type QueryBITelsalerAttachingRateDataHandler = ( response: QueryBITelsalerAttachingRateReportResponse, error: any ) => void; /** * * @param request 请求参数 @@ -88,12 +117,49 @@ function importBIReport( request: ImportBIReportRequest, handler: any ): void }); } +function queryBITelsalerAttachingRateData( handler: QueryBITelsalerAttachingRateDataHandler ): void +{ + const queryResponse: QueryBITelsalerAttachingRateReportResponse = { + success: false, + message: "", + records: [], + }; + + instance.request({ + url: API_URL.URL_BI_TELSALER_ATTACHINGRATE, + method: "post", + }) + .then(( response: AxiosResponse ): void => + { + const data = response.data ?? {}; + + queryResponse.success = data.success ?? false; + queryResponse.message = data.message ?? ""; + queryResponse.records = data.records ?? []; + + console.log( "请求BI坐席渗透率数据", queryResponse ); + handler( queryResponse, null ); + }) + .catch(( error ): void => + { + queryResponse.message = "请求BI坐席渗漏率报表数据时出现错误,请查看控制台消息!"; + queryResponse.success = false; + + console.log( error ); + + handler( queryResponse, error ); + }); +} + export { type BIReportType, type ImportBIReportRequest, type ImportBIReportResponse, type ImportBIReportResponseHandler, - type BITelsalerAttachingRateReportRecord, + type BITelsalerAttachingRateRecord, type QueryBITelsalerAttachingRateReportResponse, - importBIReport + type QueryBITelsalerAttachingRateDataHandler, + type BITelsalerRenewalRateRecord, + importBIReport, + queryBITelsalerAttachingRateData }; diff --git a/code/web/task_schedule/src/utils/api/config.ts b/code/web/task_schedule/src/utils/api/config.ts index 7380490..f74f51a 100644 --- a/code/web/task_schedule/src/utils/api/config.ts +++ b/code/web/task_schedule/src/utils/api/config.ts @@ -50,6 +50,13 @@ const API_URL = { // 导入报表 URL_IMPORT_REPORT: "http://10.39.0.41:8081/desktop_archievement_backend/import_bi_data/excel.do", // URL_IMPORT_REPORT: "http://222.76.244.118:11101/desktop_archievement_backend/import_bi_data/excel.do", + + // 请求BI报表数据 + // URL_BI_TELSALER_ATTACHINGRATE: "http://localhost:8080/desktop_archievement_backend/archievement/bi_telsaler_attachingrate.do", + URL_BI_TELSALER_ATTACHINGRATE: "http://10.39.0.41:8081/desktop_archievement_backend/archievement/bi_telsaler_attachingrate.do", + URL_BI_TELSALER_RENEWALRATE: "http://10.39.0.41:8081/desktop_archievement_backend/archievement/bi_telsaler_renewalrate.do", + URL_BI_DEPARTMENT_ATTACHINGRATE: "http://10.39.0.41:8081/desktop_archievement_backend/archievement/bi_department_attachingrate.do", + URL_BI_DEPARTMENT_RENEWALRATE: "http://10.39.0.41:8081/desktop_archievement_backend/archievement/bi_department_renewalrate.do", }; export { API_URL }; diff --git a/code/web/task_schedule/src/views/data/bi/TelsalerAttachingRateView.vue b/code/web/task_schedule/src/views/data/bi/TelsalerAttachingRateView.vue index 28ca0ba..6d8f0d3 100644 --- a/code/web/task_schedule/src/views/data/bi/TelsalerAttachingRateView.vue +++ b/code/web/task_schedule/src/views/data/bi/TelsalerAttachingRateView.vue @@ -18,43 +18,71 @@ > 上传 + + 刷新 + - + width="300" + > + + + > + + + > + + + > + + + > + + + > + +
@@ -87,19 +115,36 @@