diff --git a/code/db/pkg/telsale_archievement_pkg.pck b/code/db/pkg/telsale_archievement_pkg.pck index ea5cd9a..01dc3dd 100644 --- a/code/db/pkg/telsale_archievement_pkg.pck +++ b/code/db/pkg/telsale_archievement_pkg.pck @@ -28,6 +28,7 @@ CREATE OR REPLACE PACKAGE telsale_archievement_pkg IS a_attaching_rate OUT VARCHAR2, a_renewal_rate OUT VARCHAR2, a_total OUT INTEGER, + a_present_month OUT NUMBER, a_mensual_cur OUT cur_type ); @@ -90,7 +91,7 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS SELECT round(dept.当月保费渗透率, 2) INTO A_ATTACHING_RATE - FROM desktop_archievement_admin.bi部门渗透率续保率统计表 dept + FROM desktop_archievement_admin.BI机构渗透率跟踪表 dept WHERE dept.部门 = L_DEPARTMENT_NAME; --续保率 /*SELECT DECODE(SUM(到期数), @@ -141,6 +142,7 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS a_attaching_rate OUT VARCHAR2, a_renewal_rate OUT VARCHAR2, a_total OUT INTEGER, + a_present_month OUT NUMBER, a_mensual_cur OUT cur_type ) IS l_caller_name VARCHAR2(100); @@ -182,11 +184,15 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS SELECT rownum, round(nvl(t.当月保费渗透率, 0), + 2), + round(nvl(t."车险保费(万)" * 10000, + 0), 2) INTO l_rownum, - a_attaching_rate - FROM BI电销坐席车非渗透统计表 t - WHERE t.坐席名称 = l_caller_name + a_attaching_rate, + a_present_month + FROM BI电销坐席车非渗透率跟踪表 t + WHERE t.经办 = l_caller_name AND rownum = 1; /*SELECT decode(nvl(SUM(cf.车险个人客户保费), 0), @@ -211,12 +217,12 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS FROM 坐席续保统计 xb WHERE xb.坐席工号 = a_caller_code;*/ SELECT rownum, - round(nvl(t.个车续保率全月, + round(nvl(t."个车续保率(全月)(%)", 0), 2) INTO l_rownum, a_renewal_rate - FROM BI坐席续保率统计表 t + FROM BI电销坐席续保率跟踪表 t WHERE t.责任人 = l_caller_name AND rownum = 1; @@ -263,14 +269,14 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS -- 车非融合率排行榜 OPEN A_ATTACHING_RANKING_LIST FOR SELECT rownum, - paihang.坐席名称 AS caller_name, + paihang.经办 AS caller_name, paihang.attaching_rate FROM (SELECT DISTINCT * - FROM (SELECT t.坐席名称, + FROM (SELECT t.经办, round(t.当月保费渗透率, 2) attaching_rate, zuoxi.department_name - FROM BI电销坐席车非渗透统计表 t, + FROM BI电销坐席车非渗透率跟踪表 t, (SELECT DISTINCT t.saler_code, t.saler_name, t.team_code, @@ -282,7 +288,7 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS WHERE t.team_code = team.team_code AND team.department_code = bm.department_code AND bm.department_name = L_DEPARTMENT_NAME) zuoxi - WHERE t.坐席名称 = zuoxi.saler_name) st + WHERE t.经办 = zuoxi.saler_name) st ORDER BY st.department_name, st.attaching_rate DESC) paihang; -- 续保率排行榜 @@ -292,10 +298,10 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS paihang.xbl AS RENEWAL_RATE FROM (SELECT DISTINCT * FROM (SELECT t.责任人, - round(t.个车续保率全月, + round(t."个车续保率(全月)(%)", 2) xbl, zuoxi.department_name - FROM BI坐席续保率统计表 t, + FROM BI电销坐席续保率跟踪表 t, (SELECT DISTINCT t.saler_code, t.saler_name, t.team_code, diff --git a/code/db/pkg/telsale_bi_utils.pck b/code/db/pkg/telsale_bi_utils.pck index e5471c8..c4381bb 100644 --- a/code/db/pkg/telsale_bi_utils.pck +++ b/code/db/pkg/telsale_bi_utils.pck @@ -4,9 +4,9 @@ CREATE OR REPLACE PACKAGE telsale_bi_utils IS -- Created : 2023/10/12 15:31:13 -- Purpose : bi数据报表相关的工具 - PROCEDURE 清理BI电销坐席车非渗透统计表; + PROCEDURE 清理BI电销坐席车非渗透率跟踪表; - PROCEDURE 清理BI电销坐席续保率统计表; + PROCEDURE 清理BI电销坐席续保率跟踪表; PROCEDURE 清理BI部门渗透率跟踪表; @@ -16,19 +16,19 @@ END telsale_bi_utils; / CREATE OR REPLACE PACKAGE BODY telsale_bi_utils IS - PROCEDURE 清理BI电销坐席车非渗透统计表 IS + PROCEDURE 清理BI电销坐席车非渗透率跟踪表 IS BEGIN - EXECUTE IMMEDIATE 'truncate table BI电销坐席车非渗透统计表'; + EXECUTE IMMEDIATE 'truncate table BI电销坐席车非渗透率跟踪表'; END; - PROCEDURE 清理BI电销坐席续保率统计表 IS + PROCEDURE 清理BI电销坐席续保率跟踪表 IS BEGIN - EXECUTE IMMEDIATE 'truncate table BI坐席续保率统计表'; + EXECUTE IMMEDIATE 'truncate table BI电销坐席续保率跟踪表'; END; PROCEDURE 清理BI部门渗透率跟踪表 IS BEGIN - EXECUTE IMMEDIATE 'truncate table BI部门渗透率续保率统计表'; + EXECUTE IMMEDIATE 'truncate table BI机构渗透率跟踪表'; END; PROCEDURE 清理BI部门续保率跟踪表 IS diff --git a/code/db/寤鸿〃/BI鐢甸攢鍧愬腑缁繚鐜囩粺璁¤〃.sql b/code/db/寤鸿〃/BI鐢甸攢鍧愬腑缁繚鐜囩粺璁¤〃.sql index ac01831..1f4dfd9 100644 --- a/code/db/寤鸿〃/BI鐢甸攢鍧愬腑缁繚鐜囩粺璁¤〃.sql +++ b/code/db/寤鸿〃/BI鐢甸攢鍧愬腑缁繚鐜囩粺璁¤〃.sql @@ -1,14 +1,15 @@ ---drop table BI坐席续保率统计表; -create table BI坐席续保率统计表 +drop table BI电销坐席续保率跟踪表; +create table BI电销坐席续保率跟踪表 ( - summary_date date default sysdate not null, - 责任人 varchar2(20) not null, - 机构目标值 NUMBER default 0 not null, - 到期数全月 NUMBER default 0 not null, - 序时到期数占比 NUMBER default 0 not null, - 个车续保率序时 NUMBER default 0 not null, - 个车续保率全月 NUMBER default 0 not null, - 环比昨日 NUMBER default 0 not null, - 环比上月 NUMBER default 0 not null -); -comment on table BI坐席续保率统计表 is '用于存放BI导出电销坐席全月续保率数据。'; +"责任部门" varchar2(100), +"责任人" varchar2(30), +"机构目标值1(%)" number default 0, +"到期数-全月" integer default 0, +"序时到期数占比(%)" number default 0, +"个车续保率(序时)(%)" number default 0, +"个车续保率(全月)(%)" number default 0, +"环比昨日(%)" number default 0, +"环比上月(%)" number default 0, +"平均提前签单天数" integer default 0, +"环比" number +) diff --git a/code/db/寤鸿〃/BI鐢甸攢鍧愬腑缁繚鐜囪窡韪〃.sql b/code/db/寤鸿〃/BI鐢甸攢鍧愬腑缁繚鐜囪窡韪〃.sql new file mode 100644 index 0000000..ac01831 --- /dev/null +++ b/code/db/寤鸿〃/BI鐢甸攢鍧愬腑缁繚鐜囪窡韪〃.sql @@ -0,0 +1,14 @@ +--drop table BI坐席续保率统计表; +create table BI坐席续保率统计表 +( + summary_date date default sysdate not null, + 责任人 varchar2(20) not null, + 机构目标值 NUMBER default 0 not null, + 到期数全月 NUMBER default 0 not null, + 序时到期数占比 NUMBER default 0 not null, + 个车续保率序时 NUMBER default 0 not null, + 个车续保率全月 NUMBER default 0 not null, + 环比昨日 NUMBER default 0 not null, + 环比上月 NUMBER default 0 not null +); +comment on table BI坐席续保率统计表 is '用于存放BI导出电销坐席全月续保率数据。'; diff --git a/code/db/寤鸿〃/BI鐢甸攢鍧愬腑杞﹂潪娓楅忕巼璺熻釜琛.sql b/code/db/寤鸿〃/BI鐢甸攢鍧愬腑杞﹂潪娓楅忕巼璺熻釜琛.sql new file mode 100644 index 0000000..feced2e --- /dev/null +++ b/code/db/寤鸿〃/BI鐢甸攢鍧愬腑杞﹂潪娓楅忕巼璺熻釜琛.sql @@ -0,0 +1,14 @@ +create table BI电销坐席车非渗透率跟踪表 +( +"部门" varchar2(100), +"经办" varchar2(100) not null, +"车险保费(万)" number default 0, +"车险保费占比" number default 0, +"非车保费(万)" number default 0, +"当月保费渗透率" number default 0, +"保费渗透率环比上月" number default 0, +"当月客户渗透率" number default 0, +"客户渗透率环比上月" number default 0, +"当月车非客均保费" number default 0, +"客均保费环比上月" number default 0 +); diff --git a/code/db/寤鸿〃/BI鐢甸攢鍧愬腑杞﹂潪娓楅忕粺璁¤〃.sql b/code/db/寤鸿〃/BI鐢甸攢鍧愬腑杞﹂潪娓楅忕粺璁¤〃.sql deleted file mode 100644 index c426302..0000000 --- a/code/db/寤鸿〃/BI鐢甸攢鍧愬腑杞﹂潪娓楅忕粺璁¤〃.sql +++ /dev/null @@ -1,23 +0,0 @@ --- Create table -create table BI电销坐席车非渗透统计表 -( - summary_date DATE default sysdate not null, - 坐席名称 varchar2(20) not null, - 车险保费 NUMBER default 0 not null, - 车险保费占比 NUMBER default 0 not null, - 非车保费 NUMBER default 0 not null, - 当月保费渗透率 NUMBER default 0 not null, - 保费渗透率环比上月 NUMBER default 0 not null, - 当月客户渗透率 NUMBER default 0 not null, - 客户渗透率环比上月 NUMBER default 0 not null, - 当月车非客均保费 NUMBER default 0 not null, - 客均保费环比上月 NUMBER default 0 not null -) -tablespace DESKTOP_ARCHIEVEMENT - pctfree 10 - initrans 1 - maxtrans 255; --- Add comments to the table -comment on table BI电销坐席车非渗透统计表 - is '用于存放BI导出每日电销坐席车险非车险保费和车非渗透率数据。'; - diff --git a/code/web/task_schedule/src/utils/archievement.ts b/code/web/task_schedule/src/utils/archievement.ts index 1d9f49e..130b097 100644 --- a/code/web/task_schedule/src/utils/archievement.ts +++ b/code/web/task_schedule/src/utils/archievement.ts @@ -31,6 +31,7 @@ interface CallerArchievement // 鍧愬腑涓氱哗瀵硅薄 success: boolean; message: string; total_archievement: number; + moto_premium_present_month: number; mensual_archievement_list: number[]; insurance_renewal_rate: string; attaching_rate: string; @@ -134,6 +135,7 @@ function queryCallerArchievement( callerInfo: TelSaler, render: any ): void success: false, message: "", total_archievement: 0, + moto_premium_present_month: 0, mensual_archievement_list: [], insurance_renewal_rate: "0.0", attaching_rate: "0.0", @@ -150,9 +152,12 @@ function queryCallerArchievement( callerInfo: TelSaler, render: any ): void { const data = response.data ?? {}; + console.log( "涓汉涓氱哗鏁版嵁", data ); + callArchievement.success = data.success ?? false; callArchievement.message = data.message ?? "鏈嶅姟鍣ㄦ病鏈夎繑鍥炶皟鐢ㄧ粨鏋滄秷鎭紝璇锋鏌ユ棩蹇楋紒"; callArchievement.total_archievement = data.total_archievement ?? 0; + callArchievement.moto_premium_present_month = data.motoPremiumPresentMonth ?? 0; callArchievement.mensual_archievement_list = []; callArchievement.insurance_renewal_rate = data.insurance_renewal_rate ?? "0.0"; callArchievement.attaching_rate = data.attaching_rate ?? "0.0"; diff --git a/code/web/task_schedule/src/views/DesktopArchievement.vue b/code/web/task_schedule/src/views/DesktopArchievement.vue index 8b7638e..40527d0 100644 --- a/code/web/task_schedule/src/views/DesktopArchievement.vue +++ b/code/web/task_schedule/src/views/DesktopArchievement.vue @@ -238,10 +238,10 @@ export default { ui.totalArchievement = data.total_archievement; ui.callerAttachingRate = data.attaching_rate; ui.callerRenewalRate = data.insurance_renewal_rate; - ui.callerPersentMonthPremium = data.mensual_archievement_list[thisMonth]; + ui.callerPersentMonthPremium = data.moto_premium_present_month; + // ui.callerPersentMonthPremium = data.mensual_archievement_list[thisMonth]; - // console.log( "涓氱哗娓呭崟", ui.chartData ); - // console.log( "褰撴湀", data.mensual_archievement_list ); + console.log( "涓氱哗娓呭崟", data ); ui.showUI = false; setTimeout(() => diff --git a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BIDepartmentAttachingRateRecord.java b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BIDepartmentAttachingRateRecord.java index be5146c..530fd89 100644 --- a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BIDepartmentAttachingRateRecord.java +++ b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BIDepartmentAttachingRateRecord.java @@ -2,7 +2,7 @@ * @Author: Kane * @Date: 2023-10-10 14:50:55 * @LastEditors: Kane - * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/DepartmentArchievementRecord.java + * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BIDepartmentAttachingRateRecord.java * @Description: * * Copyright (c) ${2023} by Kane, All Rights Reserved. @@ -27,19 +27,25 @@ public class BIDepartmentAttachingRateRecord private double attachingRate; // 淇濊垂娓楅忕巼鐜瘮涓婃湀 private double attachingRateChange; + // 杞﹂櫓瀹㈡埛鏁 + private int motoInsuranceCustomerCount; // 褰撴湀瀹㈡埛娓楅忕巼 private double customerHandleRate; + // 瀹㈡埛娓楅忕巼鐜瘮涓婃湀 private double customerHandleRateChange; + // 褰撴湀杞﹂潪瀹㈠潎淇濊垂 private double premiumPerCustomer; + // 瀹㈠潎淇濊垂鐜瘮涓婃湀 private double premiumPerCustomerChange; public BIDepartmentAttachingRateRecord( String departmentName, double departmentObject, double objectGap, double motoPremium, double motoPremiumProPortion, double nomotoPremium, double attachingRate, double attachingRateChange, - double customerHandleRate, double customerHandleRateChange, double premiumPerCustomer, + int motoInsuranceCustomerCount, double customerHandleRate, + double customerHandleRateChange, double premiumPerCustomer, double premiumPerCustomerChange ) { this.departmentName = departmentName; @@ -50,20 +56,32 @@ public class BIDepartmentAttachingRateRecord this.nomotoPremium = nomotoPremium; this.attachingRate = attachingRate; this.attachingRateChange = attachingRateChange; + this.motoInsuranceCustomerCount = motoInsuranceCustomerCount; this.customerHandleRate = customerHandleRate; this.customerHandleRateChange = customerHandleRateChange; this.premiumPerCustomer = premiumPerCustomer; this.premiumPerCustomerChange = premiumPerCustomerChange; } + public int getMotoInsuranceCustomerCount() + { + return motoInsuranceCustomerCount; + } + + public void setMotoInsuranceCustomerCount( int motoInsuranceCustomerCount ) + { + this.motoInsuranceCustomerCount = motoInsuranceCustomerCount; + } + @Override public String toString() { - return "DepartmentArchievementRecord [departmentName=" + departmentName + return "BIDepartmentAttachingRateRecord [departmentName=" + departmentName + ", departmentObject=" + departmentObject + ", objectGap=" + objectGap + ", motoPremium=" + motoPremium + ", motoPremiumProPortion=" + motoPremiumProPortion + ", nomotoPremium=" + nomotoPremium + ", attachingRate=" + attachingRate + ", attachingRateChange=" + attachingRateChange + + ", motoInsuranceCustomerCount=" + motoInsuranceCustomerCount + ", customerHandleRate=" + customerHandleRate + ", customerHandleRateChange=" + customerHandleRateChange + ", premiumPerCustomer=" + premiumPerCustomer + ", premiumPerCustomerChange=" + premiumPerCustomerChange + "]"; @@ -90,6 +108,7 @@ public class BIDepartmentAttachingRateRecord result = prime * result + (int) (temp ^ (temp >>> 32)); temp = Double.doubleToLongBits( attachingRateChange ); result = prime * result + (int) (temp ^ (temp >>> 32)); + result = prime * result + motoInsuranceCustomerCount; temp = Double.doubleToLongBits( customerHandleRate ); result = prime * result + (int) (temp ^ (temp >>> 32)); temp = Double.doubleToLongBits( customerHandleRateChange ); @@ -138,6 +157,8 @@ public class BIDepartmentAttachingRateRecord if ( Double.doubleToLongBits( attachingRateChange ) != Double .doubleToLongBits( other.attachingRateChange ) ) return false; + if ( motoInsuranceCustomerCount != other.motoInsuranceCustomerCount ) + return false; if ( Double.doubleToLongBits( customerHandleRate ) != Double .doubleToLongBits( other.customerHandleRate ) ) return false; diff --git a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BITelsalerAttachingRateRecord.java b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BITelsalerAttachingRateRecord.java index df3edd0..2002dd9 100644 --- a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BITelsalerAttachingRateRecord.java +++ b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BITelsalerAttachingRateRecord.java @@ -14,44 +14,61 @@ import com.fasterxml.jackson.annotation.JsonProperty; public class BITelsalerAttachingRateRecord { + // 閮ㄩ棬 + @JsonProperty( "departmentName" ) + private String departmentName; + // 缁熻鏃ユ湡 @JsonProperty( "summaryDate" ) private LocalDate summaryDate; // 鍧愬腑鍚嶇О @JsonProperty( "telsalerName" ) - private String telsalerName; + private String telsalerName; // 杞﹂櫓淇濊垂 @JsonProperty( "motoPremium" ) - private double motoPremium; + private double motoPremium; // 闈炶溅闄╀繚璐 @JsonProperty( "nomotoPremium" ) - private double nomotoPremium; + private double nomotoPremium; // 杞﹂櫓淇濊垂鍗犳瘮 @JsonProperty( "motoPremiumProportion" ) - private double motoPremiumProportion; + private double motoPremiumProportion; // 娓楅忕巼 @JsonProperty( "attachingRate" ) - private double attachingRate; + private double attachingRate; // 娓楅忕巼鐜瘮涓婃湀 @JsonProperty( "attachingRateChange" ) - private double attachingRateChange; + private double attachingRateChange; // 褰撴湀瀹㈡埛娓楅忕巼 @JsonProperty( "customerHandleRateCell" ) - private double customerHandleRate; + private double customerHandleRate; // 瀹㈡埛娓楅忕巼鐜瘮涓婃湀 @JsonProperty( "customerHandleRateChangeCell" ) - private double customerHandleRateChange; + private double customerHandleRateChange; - public BITelsalerAttachingRateRecord( LocalDate summaryDate, String telsalerName, double motoPremium, double nomotoPremium, double motoPremiumProportion, double attachingRate, double attachingRateChange, double customerHandleRate, double customerHandleRateChange, double noMotoPremiumPerCustomer, double noMotoPremiumPerCustomerChange ) + // 褰撴湀杞﹂潪瀹㈠潎淇濊垂 + @JsonProperty( "noMotoPremiumPerCustomerCell" ) + private double noMotoPremiumPerCustomer; + + // 瀹㈠潎淇濊垂鐜瘮涓婃湀 + @JsonProperty( "noMotoPremiumPerCustomerChangeCell" ) + private double noMotoPremiumPerCustomerChange; + + public BITelsalerAttachingRateRecord( String departmentName, LocalDate summaryDate, + String telsalerName, double motoPremium, double nomotoPremium, + double motoPremiumProportion, double attachingRate, double attachingRateChange, + double customerHandleRate, double customerHandleRateChange, + double noMotoPremiumPerCustomer, double noMotoPremiumPerCustomerChange ) { + this.departmentName = departmentName; this.summaryDate = summaryDate; this.telsalerName = telsalerName; this.motoPremium = motoPremium; @@ -65,6 +82,9 @@ public class BITelsalerAttachingRateRecord this.noMotoPremiumPerCustomerChange = noMotoPremiumPerCustomerChange; } + public BITelsalerAttachingRateRecord() + {} + public double getCustomerHandleRate() { return customerHandleRate; @@ -105,28 +125,17 @@ public class BITelsalerAttachingRateRecord this.noMotoPremiumPerCustomerChange = noMotoPremiumPerCustomerChange; } - // 褰撴湀杞﹂潪瀹㈠潎淇濊垂 - @JsonProperty( "noMotoPremiumPerCustomerCell" ) - private double noMotoPremiumPerCustomer; - - // 瀹㈠潎淇濊垂鐜瘮涓婃湀 - @JsonProperty( "noMotoPremiumPerCustomerChangeCell" ) - private double noMotoPremiumPerCustomerChange; - - public BITelsalerAttachingRateRecord() - {} - @Override public String toString() { - return "BITelsalerAttachingRateRecord [summaryDate=" + summaryDate + ", telsalerName=" - + telsalerName + ", motoPremium=" + motoPremium + ", nomotoPremium=" + nomotoPremium - + ", motoPremiumProportion=" + motoPremiumProportion + ", attachingRate=" - + attachingRate + ", attachingRateChange=" + attachingRateChange - + ", customerHandleRate=" + customerHandleRate + ", customerHandleRateChange=" - + customerHandleRateChange + ", noMotoPremiumPerCustomer=" - + noMotoPremiumPerCustomer + ", noMotoPremiumPerCustomerChange=" - + noMotoPremiumPerCustomerChange + "]"; + return "BITelsalerAttachingRateRecord [departmentName=" + departmentName + ", summaryDate=" + + summaryDate + ", telsalerName=" + telsalerName + ", motoPremium=" + motoPremium + + ", nomotoPremium=" + nomotoPremium + ", motoPremiumProportion=" + + motoPremiumProportion + ", attachingRate=" + attachingRate + + ", attachingRateChange=" + attachingRateChange + ", customerHandleRate=" + + customerHandleRate + ", customerHandleRateChange=" + customerHandleRateChange + + ", noMotoPremiumPerCustomer=" + noMotoPremiumPerCustomer + + ", noMotoPremiumPerCustomerChange=" + noMotoPremiumPerCustomerChange + "]"; } @Override @@ -134,6 +143,7 @@ public class BITelsalerAttachingRateRecord { final int prime = 31; int result = 1; + result = prime * result + ((departmentName == null) ? 0 : departmentName.hashCode()); result = prime * result + ((summaryDate == null) ? 0 : summaryDate.hashCode()); result = prime * result + ((telsalerName == null) ? 0 : telsalerName.hashCode()); long temp; @@ -168,6 +178,13 @@ public class BITelsalerAttachingRateRecord if ( getClass() != obj.getClass() ) return false; BITelsalerAttachingRateRecord other = (BITelsalerAttachingRateRecord) obj; + if ( departmentName == null ) + { + if ( other.departmentName != null ) + return false; + } + else if ( !departmentName.equals( other.departmentName ) ) + return false; if ( summaryDate == null ) { if ( other.summaryDate != null ) @@ -281,4 +298,14 @@ public class BITelsalerAttachingRateRecord { this.attachingRateChange = attachingRateChange; } + + public String getDepartmentName() + { + return departmentName; + } + + public void setDepartmentName( String departmentName ) + { + this.departmentName = departmentName; + } } diff --git a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BITelsalerRenewalRateRecord.java b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BITelsalerRenewalRateRecord.java index 7b0b03a..de53e5c 100644 --- a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BITelsalerRenewalRateRecord.java +++ b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BITelsalerRenewalRateRecord.java @@ -2,7 +2,7 @@ * @Author: Kane * @Date: 2023-10-09 21:45:39 * @LastEditors: Kane - * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/TelsalerRenewalRateRecord.java + * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BITelsalerRenewalRateRecord.java * @Description: BI瀵煎嚭鐨勭画淇濈巼Excel鏂囦欢琛岃褰曘 * * Copyright (c) ${2023} by Kane, All Rights Reserved. @@ -11,6 +11,7 @@ package com.cpic.xim.mybatis.pojo; public class BITelsalerRenewalRateRecord { + private String 璐d换閮ㄩ棬; private String 璐d换浜; private double 鏈烘瀯鐩爣鍊; private double 鍒版湡鏁板叏鏈; @@ -19,9 +20,14 @@ public class BITelsalerRenewalRateRecord private double 涓溅缁繚鐜囧叏鏈; private double 鐜瘮鏄ㄦ棩; private double 鐜瘮涓婃湀; - - public BITelsalerRenewalRateRecord( String 璐d换浜, double 鏈烘瀯鐩爣鍊, double 鍒版湡鏁板叏鏈, double 搴忔椂鍒版湡鏁板崰姣, double 涓溅缁繚鐜囧簭鏃, double 涓溅缁繚鐜囧叏鏈, double 鐜瘮鏄ㄦ棩, double 鐜瘮涓婃湀 ) + private double 骞冲潎鎻愬墠绛惧崟澶╂暟; + private double 鐜瘮; + + public BITelsalerRenewalRateRecord( String 璐d换閮ㄩ棬, String 璐d换浜, double 鏈烘瀯鐩爣鍊, double 鍒版湡鏁板叏鏈, + double 搴忔椂鍒版湡鏁板崰姣, double 涓溅缁繚鐜囧簭鏃, double 涓溅缁繚鐜囧叏鏈, double 鐜瘮鏄ㄦ棩, double 鐜瘮涓婃湀, + double 骞冲潎鎻愬墠绛惧崟澶╂暟, double 鐜瘮 ) { + this.璐d换閮ㄩ棬 = 璐d换閮ㄩ棬; this.璐d换浜 = 璐d换浜; this.鏈烘瀯鐩爣鍊 = 鏈烘瀯鐩爣鍊; this.鍒版湡鏁板叏鏈 = 鍒版湡鏁板叏鏈; @@ -30,6 +36,40 @@ public class BITelsalerRenewalRateRecord this.涓溅缁繚鐜囧叏鏈 = 涓溅缁繚鐜囧叏鏈; this.鐜瘮鏄ㄦ棩 = 鐜瘮鏄ㄦ棩; this.鐜瘮涓婃湀 = 鐜瘮涓婃湀; + this.骞冲潎鎻愬墠绛惧崟澶╂暟 = 骞冲潎鎻愬墠绛惧崟澶╂暟; + this.鐜瘮 = 鐜瘮; + } + + public double get骞冲潎鎻愬墠绛惧崟澶╂暟() + { + return 骞冲潎鎻愬墠绛惧崟澶╂暟; + } + + public void set骞冲潎鎻愬墠绛惧崟澶╂暟( double 骞冲潎鎻愬墠绛惧崟澶╂暟 ) + { + this.骞冲潎鎻愬墠绛惧崟澶╂暟 = 骞冲潎鎻愬墠绛惧崟澶╂暟; + } + + public double get鐜瘮() + { + return 鐜瘮; + } + + public void set鐜瘮( double 鐜瘮 ) + { + this.鐜瘮 = 鐜瘮; + } + + + + public String get璐d换閮ㄩ棬() + { + return 璐d换閮ㄩ棬; + } + + public void set璐d换閮ㄩ棬( String 璐d换閮ㄩ棬 ) + { + this.璐d换閮ㄩ棬 = 璐d换閮ㄩ棬; } @Override @@ -37,6 +77,7 @@ public class BITelsalerRenewalRateRecord { final int prime = 31; int result = 1; + result = prime * result + ((璐d换閮ㄩ棬 == null) ? 0 : 璐d换閮ㄩ棬.hashCode()); result = prime * result + ((璐d换浜 == null) ? 0 : 璐d换浜.hashCode()); long temp; temp = Double.doubleToLongBits( 鏈烘瀯鐩爣鍊 ); @@ -53,6 +94,10 @@ public class BITelsalerRenewalRateRecord result = prime * result + (int) (temp ^ (temp >>> 32)); temp = Double.doubleToLongBits( 鐜瘮涓婃湀 ); result = prime * result + (int) (temp ^ (temp >>> 32)); + temp = Double.doubleToLongBits( 骞冲潎鎻愬墠绛惧崟澶╂暟 ); + result = prime * result + (int) (temp ^ (temp >>> 32)); + temp = Double.doubleToLongBits( 鐜瘮 ); + result = prime * result + (int) (temp ^ (temp >>> 32)); return result; } @@ -66,6 +111,13 @@ public class BITelsalerRenewalRateRecord if ( getClass() != obj.getClass() ) return false; BITelsalerRenewalRateRecord other = (BITelsalerRenewalRateRecord) obj; + if ( 璐d换閮ㄩ棬 == null ) + { + if ( other.璐d换閮ㄩ棬 != null ) + return false; + } + else if ( !璐d换閮ㄩ棬.equals( other.璐d换閮ㄩ棬 ) ) + return false; if ( 璐d换浜 == null ) { if ( other.璐d换浜 != null ) @@ -87,15 +139,20 @@ public class BITelsalerRenewalRateRecord return false; if ( Double.doubleToLongBits( 鐜瘮涓婃湀 ) != Double.doubleToLongBits( other.鐜瘮涓婃湀 ) ) return false; + if ( Double.doubleToLongBits( 骞冲潎鎻愬墠绛惧崟澶╂暟 ) != Double.doubleToLongBits( other.骞冲潎鎻愬墠绛惧崟澶╂暟 ) ) + return false; + if ( Double.doubleToLongBits( 鐜瘮 ) != Double.doubleToLongBits( other.鐜瘮 ) ) + return false; return true; } @Override public String toString() { - return "TelsalerRenewalRateRecord [璐d换浜=" + 璐d换浜 + ", 鏈烘瀯鐩爣鍊=" + 鏈烘瀯鐩爣鍊 + ", 鍒版湡鏁板叏鏈=" + 鍒版湡鏁板叏鏈 - + ", 搴忔椂鍒版湡鏁板崰姣=" + 搴忔椂鍒版湡鏁板崰姣 + ", 涓溅缁繚鐜囧簭鏃=" + 涓溅缁繚鐜囧簭鏃 + ", 涓溅缁繚鐜囧叏鏈=" + 涓溅缁繚鐜囧叏鏈 - + ", 鐜瘮鏄ㄦ棩=" + 鐜瘮鏄ㄦ棩 + ", 鐜瘮涓婃湀=" + 鐜瘮涓婃湀 + "]"; + return "BITelsalerRenewalRateRecord [璐d换閮ㄩ棬=" + 璐d换閮ㄩ棬 + ", 璐d换浜=" + 璐d换浜 + ", 鏈烘瀯鐩爣鍊=" + 鏈烘瀯鐩爣鍊 + + ", 鍒版湡鏁板叏鏈=" + 鍒版湡鏁板叏鏈 + ", 搴忔椂鍒版湡鏁板崰姣=" + 搴忔椂鍒版湡鏁板崰姣 + ", 涓溅缁繚鐜囧簭鏃=" + 涓溅缁繚鐜囧簭鏃 + + ", 涓溅缁繚鐜囧叏鏈=" + 涓溅缁繚鐜囧叏鏈 + ", 鐜瘮鏄ㄦ棩=" + 鐜瘮鏄ㄦ棩 + ", 鐜瘮涓婃湀=" + 鐜瘮涓婃湀 + ", 骞冲潎鎻愬墠绛惧崟澶╂暟=" + + 骞冲潎鎻愬墠绛惧崟澶╂暟 + ", 鐜瘮=" + 鐜瘮 + "]"; } public String get璐d换浜() diff --git a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/archievement/CallerArchievement.java b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/archievement/CallerArchievement.java index f8d9c5a..52038bc 100644 --- a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/archievement/CallerArchievement.java +++ b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/archievement/CallerArchievement.java @@ -26,25 +26,6 @@ public class CallerArchievement private static Logger logger = LoggerFactory.getLogger( CallerArchievement.class ); private static ArrayList monthArray = null; - /** - * 鏋勯犲嚱鏁 - * @param callerCode - * @param totalArchievement - * @param mensualArchievementList - * @param insuranceRenewalRate - * @param attachingRate - */ - public CallerArchievement( String callerCode, long totalArchievement, - ArrayList mensualArchievementList, String insuranceRenewalRate, - String attachingRate ) - { - this.callerCode = callerCode; - this.totalArchievement = totalArchievement; - this.mensualArchievementList = mensualArchievementList; - this.insuranceRenewalRate = insuranceRenewalRate; - this.attachingRate = attachingRate; - } - // 闈欐佷唬鐮佸潡 static { @@ -65,15 +46,6 @@ public class CallerArchievement monthArray.add( new MensualArchievementItem( 12, "0" ) ); } - public CallerArchievement() - { - this.totalArchievement = 0; - this.mensualArchievementList = null; - this.insuranceRenewalRate = ""; - this.attachingRate = ""; - this.callerCode = ""; - } - public static CallerArchievement getCallerArchievement( String callerCode ) throws IOException { CallerArchievement archievement = null; @@ -82,6 +54,7 @@ public class CallerArchievement ArchievementMapper mapper = session.getMapper( ArchievementMapper.class ); HashMap params = new HashMap(); Integer totalArchievement = null; + double motoPremiumPresentMonth = 0; String attachingRate = null; String renewalRate = null; ArrayList mensual = null; @@ -100,6 +73,10 @@ public class CallerArchievement totalArchievement = Integer.valueOf( 0 ); } + // 褰撴湀杞﹂櫓淇濊垂 + motoPremiumPresentMonth = ((Double) params.get( "a_present_month" )).doubleValue(); + + // 杞﹂潪铻嶅悎 if ( params.get( "a_attaching_rate" ) instanceof String ) { @@ -129,8 +106,8 @@ public class CallerArchievement mensual = (ArrayList) params.get( "a_mensual_cur" ); } - archievement = new CallerArchievement( callerCode, totalArchievement, mensual, renewalRate, - attachingRate ); + archievement = new CallerArchievement( callerCode, totalArchievement, + motoPremiumPresentMonth, mensual, renewalRate, attachingRate ); return archievement; } @@ -145,6 +122,150 @@ public class CallerArchievement CallerArchievement.logger = logger; } + public static ArrayList getMonthArray() + { + return monthArray; + } + + public static void setMonthArray( ArrayList monthArray ) + { + CallerArchievement.monthArray = monthArray; + } + + @JsonProperty( "caller_code" ) + private String callerCode; + + @JsonProperty( "total_archievement" ) + private long totalArchievement; // 鎬讳笟缁 + + @JsonProperty( "motoPremiumPresentMonth" ) + private double motoPremiumPresentMonth; // 褰撴湀杞﹂櫓淇濊垂 + + // 姣忔湀涓氱哗鍒楄〃 + // 瑕佷繚璇佹暟鎹槸鎸夌収鏈堜唤鎺掑簭銆 + @JsonProperty( "mensual_archievement_list" ) + private ArrayList mensualArchievementList; + + @JsonProperty( "insurance_renewal_rate" ) + private String insuranceRenewalRate; // 缁繚鐜 + + @JsonProperty( "attaching_rate" ) + private String attachingRate; // 杞﹂潪娓楅忕巼 + + /** + * 鏋勯犲嚱鏁 + * @param callerCode + * @param totalArchievement + * @param mensualArchievementList + * @param insuranceRenewalRate + * @param attachingRate + */ + public CallerArchievement( String callerCode, long totalArchievement, + double motoPremiumPresentMonth, + ArrayList mensualArchievementList, String insuranceRenewalRate, + String attachingRate ) + { + this.callerCode = callerCode; + this.totalArchievement = totalArchievement; + this.motoPremiumPresentMonth = motoPremiumPresentMonth; + this.mensualArchievementList = mensualArchievementList; + this.insuranceRenewalRate = insuranceRenewalRate; + this.attachingRate = attachingRate; + } + + public CallerArchievement() + { + this.totalArchievement = 0; + this.motoPremiumPresentMonth = 0; + this.mensualArchievementList = null; + this.insuranceRenewalRate = ""; + this.attachingRate = ""; + this.callerCode = ""; + } + + @Override + public String toString() + { + return "CallerArchievement [callerCode=" + callerCode + ", totalArchievement=" + + totalArchievement + ", motoPremiumPresentMonth=" + motoPremiumPresentMonth + + ", mensualArchievementList=" + mensualArchievementList + ", insuranceRenewalRate=" + + insuranceRenewalRate + ", attachingRate=" + attachingRate + "]"; + } + + @Override + public int hashCode() + { + final int prime = 31; + int result = 1; + result = prime * result + ((callerCode == null) ? 0 : callerCode.hashCode()); + result = prime * result + (int) (totalArchievement ^ (totalArchievement >>> 32)); + long temp; + temp = Double.doubleToLongBits( motoPremiumPresentMonth ); + result = prime * result + (int) (temp ^ (temp >>> 32)); + result = prime * result + + ((mensualArchievementList == null) ? 0 : mensualArchievementList.hashCode()); + result = prime * result + + ((insuranceRenewalRate == null) ? 0 : insuranceRenewalRate.hashCode()); + result = prime * result + ((attachingRate == null) ? 0 : attachingRate.hashCode()); + return result; + } + + @Override + public boolean equals( Object obj ) + { + if ( this == obj ) + return true; + if ( obj == null ) + return false; + if ( getClass() != obj.getClass() ) + return false; + CallerArchievement other = (CallerArchievement) obj; + if ( callerCode == null ) + { + if ( other.callerCode != null ) + return false; + } + else if ( !callerCode.equals( other.callerCode ) ) + return false; + if ( totalArchievement != other.totalArchievement ) + return false; + if ( Double.doubleToLongBits( motoPremiumPresentMonth ) != Double + .doubleToLongBits( other.motoPremiumPresentMonth ) ) + return false; + if ( mensualArchievementList == null ) + { + if ( other.mensualArchievementList != null ) + return false; + } + else if ( !mensualArchievementList.equals( other.mensualArchievementList ) ) + return false; + if ( insuranceRenewalRate == null ) + { + if ( other.insuranceRenewalRate != null ) + return false; + } + else if ( !insuranceRenewalRate.equals( other.insuranceRenewalRate ) ) + return false; + if ( attachingRate == null ) + { + if ( other.attachingRate != null ) + return false; + } + else if ( !attachingRate.equals( other.attachingRate ) ) + return false; + return true; + } + + public double getMotoPremiumPresentMonth() + { + return motoPremiumPresentMonth; + } + + public void setMotoPremiumPresentMonth( double motoPremiumPresentMonth ) + { + this.motoPremiumPresentMonth = motoPremiumPresentMonth; + } + public String getCallerCode() { return callerCode; @@ -195,21 +316,4 @@ public class CallerArchievement { this.attachingRate = attachingRate; } - - @JsonProperty( "caller_code" ) - private String callerCode; - - @JsonProperty( "total_archievement" ) - private long totalArchievement; // 鎬讳笟缁 - - // 姣忔湀涓氱哗鍒楄〃 - // 瑕佷繚璇佹暟鎹槸鎸夌収鏈堜唤鎺掑簭銆 - @JsonProperty( "mensual_archievement_list" ) - private ArrayList mensualArchievementList; - - @JsonProperty( "insurance_renewal_rate" ) - private String insuranceRenewalRate; // 缁繚鐜 - - @JsonProperty( "attaching_rate" ) - private String attachingRate; // 杞﹂潪娓楅忕巼 } diff --git a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/data/ImportBIExcelData.java b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/data/ImportBIExcelData.java index 2bd3894..fcb18c6 100644 --- a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/data/ImportBIExcelData.java +++ b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/data/ImportBIExcelData.java @@ -39,11 +39,11 @@ public final class ImportBIExcelData "褰撴湀杞﹂潪瀹㈠潎淇濊垂", "瀹㈠潎淇濊垂鐜瘮涓婃湀"}; private static String[] TelSalerRenewalRateExcelTitle = new String[] - { "璐d换浜", "鏈烘瀯鐩爣鍊1(%)", "鍒版湡鏁-鍏ㄦ湀", "搴忔椂鍒版湡鏁板崰姣(%)", "涓溅缁繚鐜囷紙搴忔椂锛(%)", "涓溅缁繚鐜囷紙鍏ㄦ湀锛(%)", "鐜瘮鏄ㄦ棩(%)", - "鐜瘮涓婃湀(%)"}; + { "璐d换閮ㄩ棬", "璐d换浜", "鏈烘瀯鐩爣鍊1(%)", "鍒版湡鏁-鍏ㄦ湀", "搴忔椂鍒版湡鏁板崰姣(%)", "涓溅缁繚鐜囷紙搴忔椂锛(%)", "涓溅缁繚鐜囷紙鍏ㄦ湀锛(%)", "鐜瘮鏄ㄦ棩(%)", + "鐜瘮涓婃湀(%)", "骞冲潎鎻愬墠绛惧崟澶╂暟", "鐜瘮"}; private static String[] DepartmentAttachingRateExcelTitle = new String[] - { "閮ㄩ棬", "鐩爣鍊-鏈烘瀯", "鐩爣宸窛", "杞﹂櫓淇濊垂(涓)", "杞﹂櫓淇濊垂鍗犳瘮", "闈炶溅淇濊垂(涓)", "褰撴湀淇濊垂娓楅忕巼", "淇濊垂娓楅忕巼鐜瘮涓婃湀", "褰撴湀瀹㈡埛娓楅忕巼", + { "閮ㄩ棬", "鐩爣鍊-鏈烘瀯", "鐩爣宸窛", "杞﹂櫓淇濊垂(涓)", "杞﹂櫓淇濊垂鍗犳瘮", "闈炶溅淇濊垂(涓)", "褰撴湀淇濊垂娓楅忕巼", "淇濊垂娓楅忕巼鐜瘮涓婃湀", "杞﹂櫓瀹㈡埛鏁", "褰撴湀瀹㈡埛娓楅忕巼", "瀹㈡埛娓楅忕巼鐜瘮涓婃湀", "褰撴湀杞﹂潪瀹㈠潎淇濊垂", "瀹㈠潎淇濊垂鐜瘮涓婃湀"}; private static String[] DepartmentRenewalRateExcelTitle = new String[] @@ -130,6 +130,9 @@ public final class ImportBIExcelData Workbook wb = null; Sheet sheet = null; + String name = null; + String departmentName = null; + String departmentCurrentRow = null; try { @@ -144,7 +147,7 @@ public final class ImportBIExcelData for ( Row row : sheet ) { - String name = ""; + int rowIndex = row.getRowNum(); // 浠庢暟鎹寮濮 @@ -155,6 +158,24 @@ public final class ImportBIExcelData try { + // 閮ㄩ棬 + try + { + departmentCurrentRow = MyPOIUtils.getStringCellValue( row, 0 ); + + // 鍥犱负鏄悎骞跺垪锛屾墍浠ヨ鍒ゆ柇涓涓嬫槸涓嶆槸绌虹殑 + if ( !departmentCurrentRow.equals( "" ) + && !departmentCurrentRow.equals( "鍚堣" ) ) + { + // 涓嶆槸绌虹殑锛屼篃涓嶆槸鍚堣锛岃鏄庢槸鏂伴儴闂ㄧ殑鏁版嵁锛屾洿鏂伴儴闂ㄥ悕绉 + departmentName = departmentCurrentRow; + } + } + catch ( NullPointerException error ) + { + // cell鏄┖鐨勶紝璇存槑杩樻槸涓婁竴琛岀殑閮ㄩ棬 + } + // 鍧愬腑鍚嶇О name = MyPOIUtils.getStringCellValue( row, 1 ); @@ -165,9 +186,9 @@ public final class ImportBIExcelData } // 杞﹂櫓淇濊垂 - double motoPremium = MyPOIUtils.getNumbericCellValue( row, 2 ) * 10000; + double motoPremium = MyPOIUtils.getNumbericCellValue( row, 2 ); // 闈炶溅闄╀繚璐 - double nomotoPremium = MyPOIUtils.getNumbericCellValue( row, 4 ) * 10000; + double nomotoPremium = MyPOIUtils.getNumbericCellValue( row, 4 ); // 杞﹂櫓淇濊垂鍗犳瘮 double motoPremiumProPortion = MyPOIUtils.getNumbericCellValue( row, 3 ) * 100; // 褰撴湀淇濊垂娓楅忕巼 @@ -187,7 +208,7 @@ public final class ImportBIExcelData MyPOIUtils.getNumbericCellValue( row, 10 ) * 100; BITelsalerAttachingRateRecord record = new BITelsalerAttachingRateRecord( - LocalDate.now(), name, motoPremium, nomotoPremium, + departmentName, LocalDate.now(), name, motoPremium, nomotoPremium, motoPremiumProPortion, attachingRate, attachingRateChange, customerHandleRateCell, customerHandleRateChangeCell, noMotoPremiumPerCustomerCell, noMotoPremiumPerCustomerChangeCell ); @@ -235,7 +256,7 @@ public final class ImportBIExcelData * @return */ public static ArrayList importBITelsalerRenewalRateFromXlsx( - String filePath, int sheetIndex, int firstRow, LocalDate summaryDate ) + String filePath, int sheetIndex, int firstRow ) throws IOException, InvalidFormatException { ArrayList records = new ArrayList<>( 200 ); @@ -248,6 +269,9 @@ public final class ImportBIExcelData wb = WorkbookFactory.create( new File( filePath ) ); sheet = wb.getSheetAt( sheetIndex ); int rowIndex = 0; + String 璐d换閮ㄩ棬 = null; + String 褰撳墠琛岃矗浠婚儴闂 = null; + String 璐d换浜 = null; if ( !checkExcelFormat( sheet, null, 0, TelSalerRenewalRateExcelTitle, 0 ) ) { @@ -266,23 +290,41 @@ public final class ImportBIExcelData try { - String 璐d换浜 = MyPOIUtils.getStringCellValue( row, 0 ); + // 澶勭悊璐d换閮ㄩ棬鍒 + // 濡傛灉璇诲彇鍒扮殑褰撳墠琛岃矗浠婚儴闂ㄤ笉涓虹┖涓斾笌鍓嶄竴琛岃矗浠婚儴闂ㄤ笉鍚岋紝璇存槑鏄彟涓涓儴闂ㄧ殑鏁版嵁 + try + { + 褰撳墠琛岃矗浠婚儴闂 = MyPOIUtils.getStringCellValue( row, 0 ); + + if ( !褰撳墠琛岃矗浠婚儴闂.isEmpty() && !褰撳墠琛岃矗浠婚儴闂.equals( 璐d换閮ㄩ棬 ) ) + { + 璐d换閮ㄩ棬 = 褰撳墠琛岃矗浠婚儴闂; + } + } + catch ( NullPointerException error ) + { + } + + // 鍒ゆ柇璐d换浜猴紝濡傛灉鏄┖鍊硷紝灏辫烦杩囨琛 + 璐d换浜 = MyPOIUtils.getStringCellValue( row, 1 ); if ( 璐d换浜.isEmpty() == true ) { continue; } - double 鏈烘瀯鐩爣鍊 = MyPOIUtils.getNumbericCellValue( row, 1 ) * 100; - double 鍒版湡鏁板叏鏈 = MyPOIUtils.getNumbericCellValue( row, 2 ) * 100; - double 搴忔椂鍒版湡鏁板崰姣 = MyPOIUtils.getNumbericCellValue( row, 3 ) * 100; - double 涓溅缁繚鐜囧簭鏃 = MyPOIUtils.getNumbericCellValue( row, 4 ) * 100; - double 涓溅缁繚鐜囧叏鏈 = MyPOIUtils.getNumbericCellValue( row, 5 ) * 100; - double 鐜瘮鏄ㄦ棩 = MyPOIUtils.getNumbericCellValue( row, 6 ) * 100; - double 鐜瘮涓婃湀 = MyPOIUtils.getNumbericCellValue( row, 7 ) * 100; + double 鏈烘瀯鐩爣鍊 = MyPOIUtils.getNumbericCellValue( row, 2 ) * 100; + double 鍒版湡鏁板叏鏈 = MyPOIUtils.getNumbericCellValue( row, 3 ); + double 搴忔椂鍒版湡鏁板崰姣 = MyPOIUtils.getNumbericCellValue( row, 4 ) * 100; + double 涓溅缁繚鐜囧簭鏃 = MyPOIUtils.getNumbericCellValue( row, 5 ) * 100; + double 涓溅缁繚鐜囧叏鏈 = MyPOIUtils.getNumbericCellValue( row, 6 ) * 100; + double 鐜瘮鏄ㄦ棩 = MyPOIUtils.getNumbericCellValue( row, 7 ) * 100; + double 鐜瘮涓婃湀 = MyPOIUtils.getNumbericCellValue( row, 8 ) * 100; + double 骞冲潎鎻愬墠绛惧崟澶╂暟 = MyPOIUtils.getNumbericCellValue( row, 9 ); + double 鐜瘮 = MyPOIUtils.getNumbericCellValue( row, 10 ); - BITelsalerRenewalRateRecord record = new BITelsalerRenewalRateRecord( 璐d换浜, - 鏈烘瀯鐩爣鍊, 鍒版湡鏁板叏鏈, 搴忔椂鍒版湡鏁板崰姣, 涓溅缁繚鐜囧簭鏃, 涓溅缁繚鐜囧叏鏈, 鐜瘮鏄ㄦ棩, 鐜瘮涓婃湀 ); + BITelsalerRenewalRateRecord record = new BITelsalerRenewalRateRecord( 璐d换閮ㄩ棬, 璐d换浜, + 鏈烘瀯鐩爣鍊, 鍒版湡鏁板叏鏈, 搴忔椂鍒版湡鏁板崰姣, 涓溅缁繚鐜囧簭鏃, 涓溅缁繚鐜囧叏鏈, 鐜瘮鏄ㄦ棩, 鐜瘮涓婃湀, 骞冲潎鎻愬墠绛惧崟澶╂暟, 鐜瘮 ); records.add( record ); } @@ -362,22 +404,23 @@ public final class ImportBIExcelData double departmentObject = MyPOIUtils.getNumbericCellValue( row, 1 ) * 100; double objectGap = MyPOIUtils.getNumbericCellValue( row, 2 ) * 100; - double motoPremium = MyPOIUtils.getNumbericCellValue( row, 3 ) * 10000; + double motoPremium = MyPOIUtils.getNumbericCellValue( row, 3 ); double motoPremiumProPortion = MyPOIUtils.getNumbericCellValue( row, 4 ) * 100; - double nomotoPremium = MyPOIUtils.getNumbericCellValue( row, 5 ) * 10000; + double nomotoPremium = MyPOIUtils.getNumbericCellValue( row, 5 ); double attachingRate = MyPOIUtils.getNumbericCellValue( row, 6 ) * 100; double attachingRateChange = MyPOIUtils.getNumbericCellValue( row, 7 ) * 100; - double customerHandleRate = MyPOIUtils.getNumbericCellValue( row, 8 ) * 100; + int motoInsuranceCustomerCount = (int)MyPOIUtils.getNumbericCellValue( row, 8 ); + double customerHandleRate = MyPOIUtils.getNumbericCellValue( row, 9 ) * 100; double customerHandleRateChange = - MyPOIUtils.getNumbericCellValue( row, 9 ) * 100; - double premiumPerCustomer = MyPOIUtils.getNumbericCellValue( row, 10 ) * 100; + MyPOIUtils.getNumbericCellValue( row, 10 ) * 100; + double premiumPerCustomer = MyPOIUtils.getNumbericCellValue( row, 11 ) * 100; double premiumPerCustomerChange = - MyPOIUtils.getNumbericCellValue( row, 11 ) * 100; + MyPOIUtils.getNumbericCellValue( row, 12 ) * 100; BIDepartmentAttachingRateRecord record = new BIDepartmentAttachingRateRecord( departmentName, departmentObject, objectGap, motoPremium, motoPremiumProPortion, nomotoPremium, attachingRate, - attachingRateChange, customerHandleRate, customerHandleRateChange, + attachingRateChange, motoInsuranceCustomerCount, customerHandleRate, customerHandleRateChange, premiumPerCustomer, premiumPerCustomerChange ); records.add( record ); diff --git a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/ArchievementQueryController.java b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/ArchievementQueryController.java index 8bce9b3..f6959e0 100644 --- a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/ArchievementQueryController.java +++ b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/ArchievementQueryController.java @@ -29,7 +29,7 @@ import com.cpic.xim.utils.ranking.CallerRankingList; import com.cpic.xim.web.controllers.archievement.RankingList.RankingListRequest; import com.cpic.xim.web.controllers.archievement.RankingList.RankingListResponse; import com.cpic.xim.web.controllers.archievement.caller.CallerArchievementQueryRequest; -import com.cpic.xim.web.controllers.archievement.caller.CallerArchievementQueryResult; +import com.cpic.xim.web.controllers.archievement.caller.CallerArchievementQueryResponse; import com.cpic.xim.web.controllers.archievement.department.DepartmentArchievementQueryRequest; import com.cpic.xim.web.controllers.archievement.department.DepartmentArchievementQueryResult; @@ -90,24 +90,24 @@ public class ArchievementQueryController @ResponseBody @PostMapping( "/query_caller_archievement.do" ) - public CallerArchievementQueryResult queryCallerArchievement( + public CallerArchievementQueryResponse queryCallerArchievement( @RequestBody CallerArchievementQueryRequest request ) { - CallerArchievementQueryResult result = null; + CallerArchievementQueryResponse result = null; try { CallerArchievement archievement = CallerArchievement.getCallerArchievement( request.getCallerCode() ); - result = new CallerArchievementQueryResult( true, "鏌ヨ鎴愬姛", archievement.getCallerCode(), - request.getCallName(), archievement.getTotalArchievement(), + result = new CallerArchievementQueryResponse( true, "鏌ヨ鎴愬姛", archievement.getCallerCode(), + request.getCallName(), archievement.getTotalArchievement(), archievement.getMotoPremiumPresentMonth(), archievement.getMensualArchievementList(), archievement.getInsuranceRenewalRate(), archievement.getAttachingRate() ); } catch ( IOException error ) { - result = new CallerArchievementQueryResult(false, error.getMessage(), null, null, 0, null, null, null); + result = new CallerArchievementQueryResponse(false, error.getMessage(), null, null, 0, 0, null, null, null); } return result; diff --git a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/caller/CallerArchievementQueryResponse.java b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/caller/CallerArchievementQueryResponse.java new file mode 100644 index 0000000..0b6df82 --- /dev/null +++ b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/caller/CallerArchievementQueryResponse.java @@ -0,0 +1,222 @@ +/* + * @Author: Kane + * @Date: 2023-06-06 17:35:54 + * @LastEditors: Kane + * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/caller/CallerArchievementQueryResponse.java + * @Description: + * + * Copyright (c) ${2022} by Kane, All Rights Reserved. + */ +package com.cpic.xim.web.controllers.archievement.caller; + +import com.cpic.xim.mybatis.pojo.MensualArchievementItem; +import com.cpic.xim.web.controllers.QueryResponse; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.ArrayList; + +public class CallerArchievementQueryResponse extends QueryResponse +{ + @JsonProperty("callerCode") + String callerCode; + + @JsonProperty("callerName") + String callerName; + + @JsonProperty( "total_archievement" ) + private long totalArchievement; // 鎬讳笟缁 + + @JsonProperty( "motoPremiumPresentMonth" ) + private double motoPremiumPresentMonth; // 褰撴湀杞﹂櫓淇濊垂 + + // 姣忔湀涓氱哗鍒楄〃 + // 瑕佷繚璇佹暟鎹槸鎸夌収鏈堜唤鎺掑簭銆 + @JsonProperty( "mensual_archievement_list" ) + private ArrayList mensualArchievementList; + + @JsonProperty( "insurance_renewal_rate" ) + private String insuranceRenewalRate; // 缁繚鐜 + + @JsonProperty( "attaching_rate" ) + private String attachingRate; // 杞﹂潪娓楅忕巼 + + public CallerArchievementQueryResponse( boolean success, String message, String callerCode, + String callerName, long totalArchievement, double motoPremiumPresentMonth, + ArrayList mensualArchievementList, String insuranceRenewalRate, + String attachingRate ) + { + super( success, message ); + this.callerCode = callerCode; + this.callerName = callerName; + this.totalArchievement = totalArchievement; + this.motoPremiumPresentMonth = motoPremiumPresentMonth; + this.mensualArchievementList = mensualArchievementList; + this.insuranceRenewalRate = insuranceRenewalRate; + this.attachingRate = attachingRate; + } + + public CallerArchievementQueryResponse( String callerCode, String callerName, + long totalArchievement, double motoPremiumPresentMonth, + ArrayList mensualArchievementList, String insuranceRenewalRate, + String attachingRate ) + { + this.callerCode = callerCode; + this.callerName = callerName; + this.totalArchievement = totalArchievement; + this.motoPremiumPresentMonth = motoPremiumPresentMonth; + this.mensualArchievementList = mensualArchievementList; + this.insuranceRenewalRate = insuranceRenewalRate; + this.attachingRate = attachingRate; + } + + @Override + public String toString() + { + return "CallerArchievementQueryResponse [callerCode=" + callerCode + ", callerName=" + + callerName + ", totalArchievement=" + totalArchievement + + ", motoPremiumPresentMonth=" + motoPremiumPresentMonth + + ", mensualArchievementList=" + mensualArchievementList + ", insuranceRenewalRate=" + + insuranceRenewalRate + ", attachingRate=" + attachingRate + "]"; + } + + @Override + public int hashCode() + { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + ((callerCode == null) ? 0 : callerCode.hashCode()); + result = prime * result + ((callerName == null) ? 0 : callerName.hashCode()); + result = prime * result + (int) (totalArchievement ^ (totalArchievement >>> 32)); + long temp; + temp = Double.doubleToLongBits( motoPremiumPresentMonth ); + result = prime * result + (int) (temp ^ (temp >>> 32)); + result = prime * result + + ((mensualArchievementList == null) ? 0 : mensualArchievementList.hashCode()); + result = prime * result + + ((insuranceRenewalRate == null) ? 0 : insuranceRenewalRate.hashCode()); + result = prime * result + ((attachingRate == null) ? 0 : attachingRate.hashCode()); + return result; + } + + public void setMotoPremiumPresentMonth( double motoPremiumPresentMonth ) + { + this.motoPremiumPresentMonth = motoPremiumPresentMonth; + } + + @Override + public boolean equals( Object obj ) + { + if ( this == obj ) + return true; + if ( !super.equals( obj ) ) + return false; + if ( getClass() != obj.getClass() ) + return false; + CallerArchievementQueryResponse other = (CallerArchievementQueryResponse) obj; + if ( callerCode == null ) + { + if ( other.callerCode != null ) + return false; + } + else if ( !callerCode.equals( other.callerCode ) ) + return false; + if ( callerName == null ) + { + if ( other.callerName != null ) + return false; + } + else if ( !callerName.equals( other.callerName ) ) + return false; + if ( totalArchievement != other.totalArchievement ) + return false; + if ( Double.doubleToLongBits( motoPremiumPresentMonth ) != Double + .doubleToLongBits( other.motoPremiumPresentMonth ) ) + return false; + if ( mensualArchievementList == null ) + { + if ( other.mensualArchievementList != null ) + return false; + } + else if ( !mensualArchievementList.equals( other.mensualArchievementList ) ) + return false; + if ( insuranceRenewalRate == null ) + { + if ( other.insuranceRenewalRate != null ) + return false; + } + else if ( !insuranceRenewalRate.equals( other.insuranceRenewalRate ) ) + return false; + if ( attachingRate == null ) + { + if ( other.attachingRate != null ) + return false; + } + else if ( !attachingRate.equals( other.attachingRate ) ) + return false; + return true; + } + + public String getCallerCode() + { + return callerCode; + } + + public void setCallerCode( String callerCode ) + { + this.callerCode = callerCode; + } + + public String getCallerName() + { + return callerName; + } + + public void setCallerName( String callerName ) + { + this.callerName = callerName; + } + + public long getTotalArchievement() + { + return totalArchievement; + } + + public void setTotalArchievement( long totalArchievement ) + { + this.totalArchievement = totalArchievement; + } + + public ArrayList getMensualArchievementList() + { + return mensualArchievementList; + } + + public void setMensualArchievementList( ArrayList mensualArchievementList ) + { + this.mensualArchievementList = mensualArchievementList; + } + + public String getInsuranceRenewalRate() + { + return insuranceRenewalRate; + } + + public void setInsuranceRenewalRate( String insuranceRenewalRate ) + { + this.insuranceRenewalRate = insuranceRenewalRate; + } + + public String getAttachingRate() + { + return attachingRate; + } + + public void setAttachingRate( String attachingRate ) + { + this.attachingRate = attachingRate; + } + + public double getMotoPremiumPresentMonth() + { + return motoPremiumPresentMonth; + } +} diff --git a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/caller/CallerArchievementQueryResult.java b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/caller/CallerArchievementQueryResult.java deleted file mode 100644 index a5a36a7..0000000 --- a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/caller/CallerArchievementQueryResult.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * @Author: Kane - * @Date: 2023-06-06 17:35:54 - * @LastEditors: Kane - * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/caller/CallerArchievementQueryResult.java - * @Description: - * - * Copyright (c) ${2022} by Kane, All Rights Reserved. - */ -package com.cpic.xim.web.controllers.archievement.caller; - -import com.cpic.xim.mybatis.pojo.MensualArchievementItem; -import com.cpic.xim.web.controllers.QueryResponse; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.ArrayList; - -public class CallerArchievementQueryResult extends QueryResponse -{ - /** - * - * @param success - * @param message - * @param callerCode - * @param callerName - * @param totalArchievement - * @param mensualArchievementList - * @param insuranceRenewalRate - * @param attachingRate - */ - public CallerArchievementQueryResult( boolean success, String message, String callerCode, - String callerName, long totalArchievement, - ArrayList mensualArchievementList, String insuranceRenewalRate, - String attachingRate) - { - super( success, message ); - this.callerCode = callerCode; - this.callerName = callerName; - this.totalArchievement = totalArchievement; - this.mensualArchievementList = mensualArchievementList; - this.insuranceRenewalRate = insuranceRenewalRate; - this.attachingRate = attachingRate; - } - - @JsonProperty("callerCode") - String callerCode; - - public String getCallerCode() - { - return callerCode; - } - - public void setCallerCode( String callerCode ) - { - this.callerCode = callerCode; - } - - public String getCallerName() - { - return callerName; - } - - public void setCallerName( String callerName ) - { - this.callerName = callerName; - } - - public long getTotalArchievement() - { - return totalArchievement; - } - - public void setTotalArchievement( long totalArchievement ) - { - this.totalArchievement = totalArchievement; - } - - public ArrayList getMensualArchievementList() - { - return mensualArchievementList; - } - - public void setMensualArchievementList( ArrayList mensualArchievementList ) - { - this.mensualArchievementList = mensualArchievementList; - } - - public String getInsuranceRenewalRate() - { - return insuranceRenewalRate; - } - - public void setInsuranceRenewalRate( String insuranceRenewalRate ) - { - this.insuranceRenewalRate = insuranceRenewalRate; - } - - public String getAttachingRate() - { - return attachingRate; - } - - public void setAttachingRate( String attachingRate ) - { - this.attachingRate = attachingRate; - } - - @JsonProperty("callerName") - String callerName; - - @JsonProperty( "total_archievement" ) - private long totalArchievement; // 鎬讳笟缁 - - // 姣忔湀涓氱哗鍒楄〃 - // 瑕佷繚璇佹暟鎹槸鎸夌収鏈堜唤鎺掑簭銆 - @JsonProperty( "mensual_archievement_list" ) - private ArrayList mensualArchievementList; - - @JsonProperty( "insurance_renewal_rate" ) - private String insuranceRenewalRate; // 缁繚鐜 - - @JsonProperty( "attaching_rate" ) - private String attachingRate; // 杞﹂潪娓楅忕巼 -} diff --git a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/bi/ImportBIDataController.java b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/bi/ImportBIDataController.java index dd3e180..5a0c095 100644 --- a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/bi/ImportBIDataController.java +++ b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/bi/ImportBIDataController.java @@ -149,7 +149,7 @@ public class ImportBIDataController try { records = ImportBIExcelData.importBITelsalerRenewalRateFromXlsx( filePath, sheetIndex, - firstRow, LocalDate.now() ); + firstRow ); session = MybatisUtils.getSqlSessionBatch(); mapper = session.getMapper( ImportBIArchievementDataMapper.class ); diff --git a/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mapper/ArchievementMapper.xml b/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mapper/ArchievementMapper.xml index e08362f..b417c2e 100644 --- a/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mapper/ArchievementMapper.xml +++ b/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mapper/ArchievementMapper.xml @@ -15,6 +15,7 @@ #{a_attaching_rate, mode=OUT, jdbcType=VARCHAR}, #{a_renewal_rate, mode=OUT, jdbcType=VARCHAR}, #{a_total, mode=OUT, jdbcType=INTEGER, javaType=Integer}, + #{a_present_month, mode=OUT, jdbcType=DOUBLE, javaType=Double}, #{a_mensual_cur, mode=OUT, jdbcType=CURSOR, resultMap=MensualArchievementMapper}) diff --git a/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mapper/ImportBIArchievementDataMapper.xml b/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mapper/ImportBIArchievementDataMapper.xml index c3287cc..8a919f4 100644 --- a/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mapper/ImportBIArchievementDataMapper.xml +++ b/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mapper/ImportBIArchievementDataMapper.xml @@ -2,27 +2,31 @@ - insert into BI鐢甸攢鍧愬腑杞﹂潪娓楅忕粺璁¤〃 ( 鍧愬腑鍚嶇О, 杞﹂櫓淇濊垂, 闈炶溅淇濊垂, 杞﹂櫓淇濊垂鍗犳瘮, - 褰撴湀淇濊垂娓楅忕巼, 淇濊垂娓楅忕巼鐜瘮涓婃湀, 褰撴湀瀹㈡埛娓楅忕巼, 瀹㈡埛娓楅忕巼鐜瘮涓婃湀, - 褰撴湀杞﹂潪瀹㈠潎淇濊垂, 瀹㈠潎淇濊垂鐜瘮涓婃湀 ) - values ( #{telsalerName}, #{motoPremium}, #{nomotoPremium}, #{motoPremiumProportion}, + insert into BI鐢甸攢鍧愬腑杞﹂潪娓楅忕巼璺熻釜琛 ( "閮ㄩ棬","缁忓姙","杞﹂櫓淇濊垂(涓)","杞﹂櫓淇濊垂鍗犳瘮","闈炶溅淇濊垂(涓)", + "褰撴湀淇濊垂娓楅忕巼","淇濊垂娓楅忕巼鐜瘮涓婃湀","褰撴湀瀹㈡埛娓楅忕巼","瀹㈡埛娓楅忕巼鐜瘮涓婃湀", + "褰撴湀杞﹂潪瀹㈠潎淇濊垂","瀹㈠潎淇濊垂鐜瘮涓婃湀" ) + values ( #{departmentName}, #{telsalerName}, #{motoPremium}, #{motoPremiumProportion}, #{nomotoPremium}, #{attachingRate}, #{attachingRateChange}, #{customerHandleRate}, #{customerHandleRateChange}, #{noMotoPremiumPerCustomer}, #{noMotoPremiumPerCustomerChange} ) - insert into BI鍧愬腑缁繚鐜囩粺璁¤〃 (璐d换浜,鏈烘瀯鐩爣鍊,鍒版湡鏁板叏鏈,搴忔椂鍒版湡鏁板崰姣,涓溅缁繚鐜囧簭鏃,涓溅缁繚鐜囧叏鏈,鐜瘮鏄ㄦ棩,鐜瘮涓婃湀) - values (#{璐d换浜簘,#{鏈烘瀯鐩爣鍊紏,#{鍒版湡鏁板叏鏈坿,#{搴忔椂鍒版湡鏁板崰姣攠, - #{涓溅缁繚鐜囧簭鏃秨,#{涓溅缁繚鐜囧叏鏈坿,#{鐜瘮鏄ㄦ棩},#{鐜瘮涓婃湀}) + insert into BI鐢甸攢鍧愬腑缁繚鐜囪窡韪〃 ("璐d换閮ㄩ棬","璐d换浜","鏈烘瀯鐩爣鍊1(%)","鍒版湡鏁-鍏ㄦ湀", + "搴忔椂鍒版湡鏁板崰姣(%)","涓溅缁繚鐜囷紙搴忔椂锛(%)","涓溅缁繚鐜囷紙鍏ㄦ湀锛(%)", + "鐜瘮鏄ㄦ棩(%)","鐜瘮涓婃湀(%)","骞冲潎鎻愬墠绛惧崟澶╂暟","鐜瘮") + values (#{璐d换閮ㄩ棬},#{璐d换浜簘,#{鏈烘瀯鐩爣鍊紏,#{鍒版湡鏁板叏鏈坿,#{搴忔椂鍒版湡鏁板崰姣攠, + #{涓溅缁繚鐜囧簭鏃秨,#{涓溅缁繚鐜囧叏鏈坿,#{鐜瘮鏄ㄦ棩},#{鐜瘮涓婃湀}, + #{骞冲潎鎻愬墠绛惧崟澶╂暟},#{鐜瘮}) - insert into BI閮ㄩ棬娓楅忕巼缁繚鐜囩粺璁¤〃 ( 閮ㄩ棬,"鐩爣鍊-鏈烘瀯",鐩爣宸窛,"杞﹂櫓淇濊垂", + insert into BI鏈烘瀯娓楅忕巼璺熻釜琛 ( 閮ㄩ棬,"鐩爣鍊-鏈烘瀯",鐩爣宸窛,"杞﹂櫓淇濊垂", 杞﹂櫓淇濊垂鍗犳瘮,"闈炶溅淇濊垂",褰撴湀淇濊垂娓楅忕巼,淇濊垂娓楅忕巼鐜瘮涓婃湀,褰撴湀瀹㈡埛娓楅忕巼, - 瀹㈡埛娓楅忕巼鐜瘮涓婃湀,褰撴湀杞﹂潪瀹㈠潎淇濊垂,瀹㈠潎淇濊垂鐜瘮涓婃湀) + 瀹㈡埛娓楅忕巼鐜瘮涓婃湀,褰撴湀杞﹂潪瀹㈠潎淇濊垂,瀹㈠潎淇濊垂鐜瘮涓婃湀,杞﹂櫓瀹㈡埛鏁) values (#{departmentName},#{departmentObject},#{objectGap},#{motoPremium}, #{motoPremiumProPortion},#{nomotoPremium},#{attachingRate},#{attachingRateChange}, - #{customerHandleRate},#{customerHandleRateChange},#{premiumPerCustomer},#{premiumPerCustomerChange} ) + #{customerHandleRate},#{customerHandleRateChange},#{premiumPerCustomer},#{premiumPerCustomerChange}, + #{motoInsuranceCustomerCount} ) @@ -34,10 +38,10 @@