From 7964f8fbe068efb4f43f68b63266129663bf2e02 Mon Sep 17 00:00:00 2001 From: Kane Wang Date: Thu, 12 Oct 2023 18:24:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90mybatis=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/db/BI相关常用语句.sql | 18 +++ code/db/pkg/telsale_bi_utils.pck | 36 ++++++ .../BI电销坐席续保率统计表.sql | 14 +++ .../BI电销坐席车非渗透统计表.sql | 23 ++++ .../BI部门渗透率续保率统计表.sql | 17 +++ .../电销坐席车非渗透统计表.sql | 33 ----- .../mapper/ImportArchievementDataMapper.java | 17 --- .../ImportBIArchievementDataMapper.java | 29 +++++ ...va => BIDepartmentArchievementRecord.java} | 6 +- ...ava => BITelsalerAttachingRateRecord.java} | 113 +++++++++--------- ....java => BITelsalerRenewalRateRecord.java} | 6 +- ...rchievementData.java => ImportBIData.java} | 24 ++-- .../ImportTelsalerArchievementController.java | 14 +-- .../mapper/ImportArchievementDataMapper.xml | 8 -- .../mapper/ImportBIArchievementDataMapper.xml | 37 ++++++ .../main/resources/mybatis/mybatis-config.xml | 2 +- .../测试用/BI部门渗透率续保率.xlsx | Bin 0 -> 6065 bytes ...机构】.xlsx => 坐席续保率 .xlsx} | Bin 数据/测试用/坐席车非渗透.xlsx | Bin 24579 -> 24579 bytes 19 files changed, 256 insertions(+), 141 deletions(-) create mode 100644 code/db/BI相关常用语句.sql create mode 100644 code/db/pkg/telsale_bi_utils.pck create mode 100644 code/db/建表/BI电销坐席续保率统计表.sql create mode 100644 code/db/建表/BI电销坐席车非渗透统计表.sql create mode 100644 code/db/建表/BI部门渗透率续保率统计表.sql delete mode 100644 code/db/建表/电销坐席车非渗透统计表.sql delete mode 100644 code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/ImportArchievementDataMapper.java create mode 100644 code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/ImportBIArchievementDataMapper.java rename code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/{DepartmentArchievementRecord.java => BIDepartmentArchievementRecord.java} (97%) rename code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/{TelsalerAttachingRateRecord.java => BITelsalerAttachingRateRecord.java} (71%) rename code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/{TelsalerRenewalRateRecord.java => BITelsalerRenewalRateRecord.java} (94%) rename code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/data/{TelsalerArchievementData.java => ImportBIData.java} (90%) delete mode 100644 code/后端/desktop_archievement_backend/src/main/resources/mybatis/mapper/ImportArchievementDataMapper.xml create mode 100644 code/后端/desktop_archievement_backend/src/main/resources/mybatis/mapper/ImportBIArchievementDataMapper.xml create mode 100644 数据/测试用/BI部门渗透率续保率.xlsx rename 数据/测试用/{坐席续保率 - 当月个车续保率跟踪报表【机构】.xlsx => 坐席续保率 .xlsx} (100%) diff --git a/code/db/BI相关常用语句.sql b/code/db/BI相关常用语句.sql new file mode 100644 index 0000000..ac3eec1 --- /dev/null +++ b/code/db/BI相关常用语句.sql @@ -0,0 +1,18 @@ +SELECT * + FROM BI͸ͳƱ; + +SELECT * + FROM BIϯ͸ͳƱ; + +SELECT * + FROM BIϯͳƱ; + +/* +truncate table BIϯ͸ͳƱ; + +BEGIN + telsale_bi_utils.BIϯ͸ͳƱ; + telsale_bi_utils.BIϯͳƱ; + telsale_bi_utils.BIҵͳƱ; +END; +*/ diff --git a/code/db/pkg/telsale_bi_utils.pck b/code/db/pkg/telsale_bi_utils.pck new file mode 100644 index 0000000..0527b8d --- /dev/null +++ b/code/db/pkg/telsale_bi_utils.pck @@ -0,0 +1,36 @@ +CREATE OR REPLACE PACKAGE telsale_bi_utils IS + + -- Author : WANGWEI-202 + -- Created : 2023/10/12 15:31:13 + -- Purpose : biݱصĹ + + PROCEDURE BIϯ͸ͳƱ; + + PROCEDURE BIϯͳƱ; + + PROCEDURE BIҵͳƱ; + +END telsale_bi_utils; +/ +CREATE OR REPLACE PACKAGE BODY telsale_bi_utils IS + + PROCEDURE BIϯ͸ͳƱ IS + BEGIN + EXECUTE IMMEDIATE 'truncate table BIϯ͸ͳƱ'; + END; + + PROCEDURE BIϯͳƱ IS + BEGIN + EXECUTE IMMEDIATE 'truncate table BIϯͳƱ'; + END; + + PROCEDURE BIҵͳƱ IS + BEGIN + EXECUTE IMMEDIATE 'truncate table BI͸ͳƱ'; + END; + +BEGIN + -- Initialization + NULL; +END telsale_bi_utils; +/ 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..c426302 --- /dev/null +++ b/code/db/建表/BI电销坐席车非渗透统计表.sql @@ -0,0 +1,23 @@ +-- 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, + dz 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ÿյϯշdzձѺͳ͸ݡ'; + diff --git a/code/db/建表/BI部门渗透率续保率统计表.sql b/code/db/建表/BI部门渗透率续保率统计表.sql new file mode 100644 index 0000000..f08d07c --- /dev/null +++ b/code/db/建表/BI部门渗透率续保率统计表.sql @@ -0,0 +1,17 @@ +drop table BI͸ͳƱ; +create table BI͸ͳƱ +( + varchar2(100) not null, + "Ŀֵ-" number default 0 not null, + Ŀ number default 0 not null, + "ձ()" number default 0 not null, + ձռ number default 0 not null, + "dz()" 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/建表/电销坐席车非渗透统计表.sql b/code/db/建表/电销坐席车非渗透统计表.sql deleted file mode 100644 index 5c3500c..0000000 --- a/code/db/建表/电销坐席车非渗透统计表.sql +++ /dev/null @@ -1,33 +0,0 @@ --- Create table -create table 电销坐席车非渗透统计表 -( - summary_date DATE default sysdate not null, - telsaler_name VARCHAR2(20) not null, - moto_premium NUMBER default 0 not null, - nomoto_premium NUMBER default 0 not null, - moto_premium_proportion NUMBER default 0 not null, - attaching_rate NUMBER default 0 not null, - attaching_rate_change NUMBER default 0 not null -) -tablespace DESKTOP_ARCHIEVEMENT - pctfree 10 - initrans 1 - maxtrans 255; --- Add comments to the table -comment on table 电销坐席车非渗透统计表 - is '用于存放BI导出每日电销坐席车险非车险保费和车非渗透率数据。'; --- Add comments to the columns -comment on column 电销坐席车非渗透统计表.summary_date - is '统计日期'; -comment on column 电销坐席车非渗透统计表.telsaler_name - is '坐席名称'; -comment on column 电销坐席车非渗透统计表.moto_premium - is '车险保费'; -comment on column 电销坐席车非渗透统计表.nomoto_premium - is '非车险保费'; -comment on column 电销坐席车非渗透统计表.moto_premium_proportion - is '车险保费占比'; -comment on column 电销坐席车非渗透统计表.attaching_rate - is '渗透率'; -comment on column 电销坐席车非渗透统计表.attaching_rate_change - is '渗透率环比上月'; diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/ImportArchievementDataMapper.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/ImportArchievementDataMapper.java deleted file mode 100644 index 52a79c6..0000000 --- a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/ImportArchievementDataMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -/* - * @Author: Kane - * @Date: 2023-10-11 16:47:59 - * @LastEditors: Kane - * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/ImportArchievementDataMapper.java - * @Description: - * - * Copyright (c) ${2023} by Kane, All Rights Reserved. - */ -package com.cpic.xim.mybatis.mapper; - -import com.cpic.xim.mybatis.pojo.TelsalerAttachingRateRecord; - -public interface ImportArchievementDataMapper -{ - public void importTesalerAttachingRateDataToDB( TelsalerAttachingRateRecord record); -} \ No newline at end of file diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/ImportBIArchievementDataMapper.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/ImportBIArchievementDataMapper.java new file mode 100644 index 0000000..4790398 --- /dev/null +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/ImportBIArchievementDataMapper.java @@ -0,0 +1,29 @@ +/* + * @Author: Kane + * @Date: 2023-10-11 16:47:59 + * @LastEditors: Kane + * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/ImportArchievementDataMapper.java + * @Description: + * + * Copyright (c) ${2023} by Kane, All Rights Reserved. + */ +package com.cpic.xim.mybatis.mapper; + +import com.cpic.xim.mybatis.pojo.BITelsalerAttachingRateRecord; +import com.cpic.xim.mybatis.pojo.BITelsalerRenewalRateRecord; +import com.cpic.xim.mybatis.pojo.BIDepartmentArchievementRecord; + +public interface ImportBIArchievementDataMapper +{ + public void insertTelsalerAttachingRateDataToDB( BITelsalerAttachingRateRecord record); + + public void insertTelsalerRenewalRateDataToDB( BITelsalerRenewalRateRecord record ); + + public void insertDepartmentAttachingRenewalRateDataToDB(BIDepartmentArchievementRecord record); + + public void cleanTelsalerAttachingRateData(); + + public void cleanTelsalerRenewalRateData(); + + public void cleanDepartmentAttachingRenewalRateData(); +} \ No newline at end of file diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/DepartmentArchievementRecord.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BIDepartmentArchievementRecord.java similarity index 97% rename from code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/DepartmentArchievementRecord.java rename to code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BIDepartmentArchievementRecord.java index 63f8a0a..e8924f7 100644 --- a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/DepartmentArchievementRecord.java +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BIDepartmentArchievementRecord.java @@ -9,7 +9,7 @@ */ package com.cpic.xim.mybatis.pojo; -public class DepartmentArchievementRecord +public class BIDepartmentArchievementRecord { // 部门 private String departmentName; @@ -36,7 +36,7 @@ public class DepartmentArchievementRecord // 客均保费环比上月 private double premiumPerCustomerChange; - public DepartmentArchievementRecord( String departmentName, double departmentObject, + public BIDepartmentArchievementRecord( String departmentName, double departmentObject, double objectGap, double motoPremium, double motoPremiumProPortion, double nomotoPremium, double attachingRate, double attachingRateChange, double customerHandleRate, double customerHandleRateChange, double premiumPerCustomer, @@ -110,7 +110,7 @@ public class DepartmentArchievementRecord return false; if ( getClass() != obj.getClass() ) return false; - DepartmentArchievementRecord other = (DepartmentArchievementRecord) obj; + BIDepartmentArchievementRecord other = (BIDepartmentArchievementRecord) obj; if ( departmentName == null ) { if ( other.departmentName != null ) diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/TelsalerAttachingRateRecord.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BITelsalerAttachingRateRecord.java similarity index 71% rename from code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/TelsalerAttachingRateRecord.java rename to code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BITelsalerAttachingRateRecord.java index 74e2393..a6d2733 100644 --- a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/TelsalerAttachingRateRecord.java +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BITelsalerAttachingRateRecord.java @@ -12,7 +12,7 @@ package com.cpic.xim.mybatis.pojo; import java.time.LocalDate; import com.fasterxml.jackson.annotation.JsonProperty; -public class TelsalerAttachingRateRecord +public class BITelsalerAttachingRateRecord { // 统计日期 @JsonProperty( "summaryDate" ) @@ -44,28 +44,17 @@ public class TelsalerAttachingRateRecord // 当月客户渗透率 @JsonProperty( "customerHandleRateCell" ) - private double customerHandleRateCell; + private double customerHandleRate; // 客户渗透率环比上月 @JsonProperty( "customerHandleRateChangeCell" ) - private double customerHandleRateChangeCell; + private double customerHandleRateChange; - // 当月车非客均保费 - @JsonProperty( "noMotoPremiumPerCustomerCell" ) - private double noMotoPremiumPerCustomerCell; - - // 客均保费环比上月 - @JsonProperty( "noMotoPremiumPerCustomerChangeCell" ) - private double noMotoPremiumPerCustomerChangeCell; - - public TelsalerAttachingRateRecord() - {} - - public TelsalerAttachingRateRecord( LocalDate summaryDate, String telsalerName, + public BITelsalerAttachingRateRecord( LocalDate summaryDate, String telsalerName, double motoPremium, double nomotoPremium, double motoPremiumProportion, - double attachingRate, double attachingRateChange, double customerHandleRateCell, - double customerHandleRateChangeCell, double noMotoPremiumPerCustomerCell, - double noMotoPremiumPerCustomerChangeCell ) + double attachingRate, double attachingRateChange, double customerHandleRate, + double customerHandleRateChange, double noMotoPremiumPerCustomer, + double noMotoPremiumPerCustomerChange ) { this.summaryDate = summaryDate; this.telsalerName = telsalerName; @@ -74,64 +63,74 @@ public class TelsalerAttachingRateRecord this.motoPremiumProportion = motoPremiumProportion; this.attachingRate = attachingRate; this.attachingRateChange = attachingRateChange; - this.customerHandleRateCell = customerHandleRateCell; - this.customerHandleRateChangeCell = customerHandleRateChangeCell; - this.noMotoPremiumPerCustomerCell = noMotoPremiumPerCustomerCell; - this.noMotoPremiumPerCustomerChangeCell = noMotoPremiumPerCustomerChangeCell; + this.customerHandleRate = customerHandleRate; + this.customerHandleRateChange = customerHandleRateChange; + this.noMotoPremiumPerCustomer = noMotoPremiumPerCustomer; + this.noMotoPremiumPerCustomerChange = noMotoPremiumPerCustomerChange; } - public double getCustomerHandleRateCell() + public double getCustomerHandleRate() { - return customerHandleRateCell; + return customerHandleRate; } - public void setCustomerHandleRateCell( double customerHandleRateCell ) + public void setCustomerHandleRate( double customerHandleRate ) { - this.customerHandleRateCell = customerHandleRateCell; + this.customerHandleRate = customerHandleRate; } - public double getCustomerHandleRateChangeCell() + public double getCustomerHandleRateChange() { - return customerHandleRateChangeCell; + return customerHandleRateChange; } - public void setCustomerHandleRateChangeCell( double customerHandleRateChangeCell ) + public void setCustomerHandleRateChange( double customerHandleRateChange ) { - this.customerHandleRateChangeCell = customerHandleRateChangeCell; + this.customerHandleRateChange = customerHandleRateChange; } - public double getNoMotoPremiumPerCustomerCell() + public double getNoMotoPremiumPerCustomer() { - return noMotoPremiumPerCustomerCell; + return noMotoPremiumPerCustomer; } - public void setNoMotoPremiumPerCustomerCell( double noMotoPremiumPerCustomerCell ) + public void setNoMotoPremiumPerCustomer( double noMotoPremiumPerCustomer ) { - this.noMotoPremiumPerCustomerCell = noMotoPremiumPerCustomerCell; + this.noMotoPremiumPerCustomer = noMotoPremiumPerCustomer; } - public double getNoMotoPremiumPerCustomerChangeCell() + public double getNoMotoPremiumPerCustomerChange() { - return noMotoPremiumPerCustomerChangeCell; + return noMotoPremiumPerCustomerChange; } - public void setNoMotoPremiumPerCustomerChangeCell( double noMotoPremiumPerCustomerChangeCell ) + public void setNoMotoPremiumPerCustomerChange( double noMotoPremiumPerCustomerChange ) { - this.noMotoPremiumPerCustomerChangeCell = noMotoPremiumPerCustomerChangeCell; + this.noMotoPremiumPerCustomerChange = noMotoPremiumPerCustomerChange; } + // 当月车非客均保费 + @JsonProperty( "noMotoPremiumPerCustomerCell" ) + private double noMotoPremiumPerCustomer; + + // 客均保费环比上月 + @JsonProperty( "noMotoPremiumPerCustomerChangeCell" ) + private double noMotoPremiumPerCustomerChange; + + public BITelsalerAttachingRateRecord() + {} + @Override public String toString() { - return "TelsalerAttachingRateRecord [summaryDate=" + summaryDate + ", telsalerName=" + return "BITelsalerAttachingRateRecord [summaryDate=" + summaryDate + ", telsalerName=" + telsalerName + ", motoPremium=" + motoPremium + ", nomotoPremium=" + nomotoPremium + ", motoPremiumProportion=" + motoPremiumProportion + ", attachingRate=" + attachingRate + ", attachingRateChange=" + attachingRateChange - + ", customerHandleRateCell=" + customerHandleRateCell - + ", customerHandleRateChangeCell=" + customerHandleRateChangeCell - + ", noMotoPremiumPerCustomerCell=" + noMotoPremiumPerCustomerCell - + ", noMotoPremiumPerCustomerChangeCell=" + noMotoPremiumPerCustomerChangeCell - + "]"; + + ", customerHandleRate=" + customerHandleRate + ", customerHandleRateChange=" + + customerHandleRateChange + ", noMotoPremiumPerCustomer=" + + noMotoPremiumPerCustomer + ", noMotoPremiumPerCustomerChange=" + + noMotoPremiumPerCustomerChange + "]"; } @Override @@ -152,13 +151,13 @@ public class TelsalerAttachingRateRecord result = prime * result + (int) (temp ^ (temp >>> 32)); temp = Double.doubleToLongBits( attachingRateChange ); result = prime * result + (int) (temp ^ (temp >>> 32)); - temp = Double.doubleToLongBits( customerHandleRateCell ); + temp = Double.doubleToLongBits( customerHandleRate ); result = prime * result + (int) (temp ^ (temp >>> 32)); - temp = Double.doubleToLongBits( customerHandleRateChangeCell ); + temp = Double.doubleToLongBits( customerHandleRateChange ); result = prime * result + (int) (temp ^ (temp >>> 32)); - temp = Double.doubleToLongBits( noMotoPremiumPerCustomerCell ); + temp = Double.doubleToLongBits( noMotoPremiumPerCustomer ); result = prime * result + (int) (temp ^ (temp >>> 32)); - temp = Double.doubleToLongBits( noMotoPremiumPerCustomerChangeCell ); + temp = Double.doubleToLongBits( noMotoPremiumPerCustomerChange ); result = prime * result + (int) (temp ^ (temp >>> 32)); return result; } @@ -172,7 +171,7 @@ public class TelsalerAttachingRateRecord return false; if ( getClass() != obj.getClass() ) return false; - TelsalerAttachingRateRecord other = (TelsalerAttachingRateRecord) obj; + BITelsalerAttachingRateRecord other = (BITelsalerAttachingRateRecord) obj; if ( summaryDate == null ) { if ( other.summaryDate != null ) @@ -202,17 +201,17 @@ public class TelsalerAttachingRateRecord if ( Double.doubleToLongBits( attachingRateChange ) != Double .doubleToLongBits( other.attachingRateChange ) ) return false; - if ( Double.doubleToLongBits( customerHandleRateCell ) != Double - .doubleToLongBits( other.customerHandleRateCell ) ) + if ( Double.doubleToLongBits( customerHandleRate ) != Double + .doubleToLongBits( other.customerHandleRate ) ) return false; - if ( Double.doubleToLongBits( customerHandleRateChangeCell ) != Double - .doubleToLongBits( other.customerHandleRateChangeCell ) ) + if ( Double.doubleToLongBits( customerHandleRateChange ) != Double + .doubleToLongBits( other.customerHandleRateChange ) ) return false; - if ( Double.doubleToLongBits( noMotoPremiumPerCustomerCell ) != Double - .doubleToLongBits( other.noMotoPremiumPerCustomerCell ) ) + if ( Double.doubleToLongBits( noMotoPremiumPerCustomer ) != Double + .doubleToLongBits( other.noMotoPremiumPerCustomer ) ) return false; - if ( Double.doubleToLongBits( noMotoPremiumPerCustomerChangeCell ) != Double - .doubleToLongBits( other.noMotoPremiumPerCustomerChangeCell ) ) + if ( Double.doubleToLongBits( noMotoPremiumPerCustomerChange ) != Double + .doubleToLongBits( other.noMotoPremiumPerCustomerChange ) ) return false; return true; } diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/TelsalerRenewalRateRecord.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BITelsalerRenewalRateRecord.java similarity index 94% rename from code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/TelsalerRenewalRateRecord.java rename to code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BITelsalerRenewalRateRecord.java index 9c38c07..7b0b03a 100644 --- a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/TelsalerRenewalRateRecord.java +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/BITelsalerRenewalRateRecord.java @@ -9,7 +9,7 @@ */ package com.cpic.xim.mybatis.pojo; -public class TelsalerRenewalRateRecord +public class BITelsalerRenewalRateRecord { private String 责任人; private double 机构目标值; @@ -20,7 +20,7 @@ public class TelsalerRenewalRateRecord private double 环比昨日; private double 环比上月; - public TelsalerRenewalRateRecord( String 责任人, double 机构目标值, double 到期数全月, double 序时到期数占比, double 个车续保率序时, double 个车续保率全月, double 环比昨日, double 环比上月 ) + public BITelsalerRenewalRateRecord( String 责任人, double 机构目标值, double 到期数全月, double 序时到期数占比, double 个车续保率序时, double 个车续保率全月, double 环比昨日, double 环比上月 ) { this.责任人 = 责任人; this.机构目标值 = 机构目标值; @@ -65,7 +65,7 @@ public class TelsalerRenewalRateRecord return false; if ( getClass() != obj.getClass() ) return false; - TelsalerRenewalRateRecord other = (TelsalerRenewalRateRecord) obj; + BITelsalerRenewalRateRecord other = (BITelsalerRenewalRateRecord) obj; if ( 责任人 == null ) { if ( other.责任人 != null ) diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/data/TelsalerArchievementData.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/data/ImportBIData.java similarity index 90% rename from code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/data/TelsalerArchievementData.java rename to code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/data/ImportBIData.java index cc4a02f..635840e 100644 --- a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/data/TelsalerArchievementData.java +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/data/ImportBIData.java @@ -26,9 +26,9 @@ import com.cpic.xim.utils.poi.MyPOIUtils; /** * 坐席业绩相关的数据操作方法。 */ -public class TelsalerArchievementData +public class ImportBIData { - private static Logger logger = LoggerFactory.getLogger( TelsalerArchievementData.class ); + private static Logger logger = LoggerFactory.getLogger( ImportBIData.class ); /** * 从excel文件读取坐席的车非渗透率数据 @@ -38,11 +38,11 @@ public class TelsalerArchievementData * @throws IOException 打开excel文件错误时抛出。 * @throws InvalidFormatException excel单元格格式错误时抛出 */ - public static ArrayList importTelsalerAttachingRateRecordFromXlsx( + public static ArrayList importBITelsalerAttachingRateRecordFromXlsx( String filePath, LocalDate summaryDate, boolean hasCaptionRow ) throws IOException, InvalidFormatException { - ArrayList records = new ArrayList<>( 200 ); + ArrayList records = new ArrayList<>( 200 ); Workbook wb = null; Sheet sheet = null; @@ -94,7 +94,7 @@ public class TelsalerArchievementData double noMotoPremiumPerCustomerChangeCell = MyPOIUtils.getNumbericCellValue( row, 10 ); - TelsalerAttachingRateRecord record = new TelsalerAttachingRateRecord( + BITelsalerAttachingRateRecord record = new BITelsalerAttachingRateRecord( summaryDate, name, motoPremium, nomotoPremium, motoPremiumProPortion, attachingRate, attachingRateChange, customerHandleRateCell, customerHandleRateChangeCell, noMotoPremiumPerCustomerCell, @@ -142,11 +142,11 @@ public class TelsalerArchievementData * @param summaryDate * @return */ - public static ArrayList importTelsalerRenewalRateFromXlsx( + public static ArrayList importBITelsalerRenewalRateFromXlsx( String filePath, String sheetName, boolean hasCaptionRow, LocalDate summaryDate ) throws IOException { - ArrayList records = new ArrayList<>( 200 ); + ArrayList records = new ArrayList<>( 200 ); Workbook wb = null; Sheet sheet = null; @@ -183,7 +183,7 @@ public class TelsalerArchievementData double 环比昨日 = MyPOIUtils.getNumbericCellValue( row, 6 ); double 环比上月 = MyPOIUtils.getNumbericCellValue( row, 7 ); - TelsalerRenewalRateRecord record = new TelsalerRenewalRateRecord( 责任人, 机构目标值, + BITelsalerRenewalRateRecord record = new BITelsalerRenewalRateRecord( 责任人, 机构目标值, 到期数全月, 序时到期数占比, 个车续保率序时, 个车续保率全月, 环比昨日, 环比上月 ); records.add( record ); @@ -214,10 +214,10 @@ public class TelsalerArchievementData return records; } - public static ArrayList importDepartmentArchievementRecords( + public static ArrayList importBIDepartmentArchievementRecords( String filePath, String sheetName, boolean hasCaptionRow ) throws IOException { - ArrayList records = new ArrayList<>( 5 ); + ArrayList records = new ArrayList<>( 5 ); Workbook wb = null; @@ -241,7 +241,7 @@ public class TelsalerArchievementData { String departmentName = MyPOIUtils.getStringCellValue( row, 0 ); - if ( departmentName.isEmpty() ) + if ( departmentName.isEmpty() || departmentName.equals("合计") ) { continue; } @@ -258,7 +258,7 @@ public class TelsalerArchievementData double premiumPerCustomer = MyPOIUtils.getNumbericCellValue( row, 1 ); double premiumPerCustomerChange = MyPOIUtils.getNumbericCellValue( row, 1 ); - DepartmentArchievementRecord record = new DepartmentArchievementRecord( + BIDepartmentArchievementRecord record = new BIDepartmentArchievementRecord( departmentName, departmentObject, objectGap, motoPremium, motoPremiumProPortion, nomotoPremium, attachingRate, attachingRateChange, customerHandleRate, customerHandleRateChange, diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/TelsalerArchievement/ImportTelsalerArchievementController.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/TelsalerArchievement/ImportTelsalerArchievementController.java index f255559..39a793a 100644 --- a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/TelsalerArchievement/ImportTelsalerArchievementController.java +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/TelsalerArchievement/ImportTelsalerArchievementController.java @@ -16,10 +16,10 @@ import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; -import com.cpic.xim.mybatis.mapper.ImportArchievementDataMapper; -import com.cpic.xim.mybatis.pojo.TelsalerAttachingRateRecord; +import com.cpic.xim.mybatis.mapper.ImportBIArchievementDataMapper; +import com.cpic.xim.mybatis.pojo.BITelsalerAttachingRateRecord; import com.cpic.xim.mybatis.utils.MybatisUtils; -import com.cpic.xim.utils.data.TelsalerArchievementData; +import com.cpic.xim.utils.data.ImportBIData; @Controller @RequestMapping(method=RequestMethod.POST, path="/import_telsaler_archievement") @@ -32,14 +32,14 @@ public class ImportTelsalerArchievementController try { - ArrayList records = TelsalerArchievementData.importTelsalerAttachingRateRecordFromXlsx( filePath, null, + ArrayList records = ImportBIData.importBITelsalerAttachingRateRecordFromXlsx( filePath, null, true ); session = MybatisUtils.getSqlSessionBatch(); - ImportArchievementDataMapper mapper = session.getMapper( ImportArchievementDataMapper.class ); + ImportBIArchievementDataMapper mapper = session.getMapper( ImportBIArchievementDataMapper.class ); - for ( TelsalerAttachingRateRecord record : records ) + for ( BITelsalerAttachingRateRecord record : records ) { - mapper.importTesalerAttachingRateDataToDB(record); + mapper.insertTelsalerAttachingRateDataToDB(record); } session.commit(); diff --git a/code/后端/desktop_archievement_backend/src/main/resources/mybatis/mapper/ImportArchievementDataMapper.xml b/code/后端/desktop_archievement_backend/src/main/resources/mybatis/mapper/ImportArchievementDataMapper.xml deleted file mode 100644 index baf0b0f..0000000 --- a/code/后端/desktop_archievement_backend/src/main/resources/mybatis/mapper/ImportArchievementDataMapper.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - insert into 电销坐席车非渗透统计表 ( telsaler_name, moto_premium, nomoto_premium, moto_premium_proportion, attaching_rate, attaching_rate_change ) - values ( #{telsalerName}, #{motoPremium}, #{nomotoPremium}, #{motoPremiumProportion}, #{attachingRate}, #{attachingRateChange} ) - - \ No newline at end of file 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 new file mode 100644 index 0000000..a679ba8 --- /dev/null +++ b/code/后端/desktop_archievement_backend/src/main/resources/mybatis/mapper/ImportBIArchievementDataMapper.xml @@ -0,0 +1,37 @@ + + + + + insert into BI电销坐席车非渗透统计表 ( 坐席名称, 车险保费, 非车保费, 车险保费占比, + 当月保费渗透率, 保费渗透率环比上月, 当月客户渗透率, 客户渗透率环比上月, + 当月车非客均保费, 客均保费环比上月 ) + values ( #{telsalerName}, #{motoPremium}, #{nomotoPremium}, #{motoPremiumProportion}, + #{attachingRate}, #{attachingRateChange}, #{customerHandleRate}, + #{customerHandleRateChange}, #{noMotoPremiumPerCustomer}, #{noMotoPremiumPerCustomerChange} ) + + + + insert into BI坐席续保率统计表 (责任人,机构目标值,到期数全月,序时到期数占比,个车续保率序时,个车续保率全月,环比昨日,环比上月) + values (#{责任人},#{机构目标值},#{到期数全月},#{序时到期数占比}, + #{个车续保率序时},#{个车续保率全月},#{环比昨日},#{环比上月}) + + + + insert into BI部门渗透率续保率统计表 ( 部门,"目标值-机构",目标差距,"车险保费(万)", + 车险保费占比,"非车保费(万)",当月保费渗透率,保费渗透率环比上月,当月客户渗透率, + 客户渗透率环比上月,当月车非客均保费,客均保费环比上月) + values (#{departmentName},#{departmentObject},#{objectGap},#{motoPremium}, + #{motoPremiumProPortion},#{nomotoPremium},#{attachingRate},#{attachingRateChange}, + #{customerHandleRate},#{customerHandleRateChange},#{premiumPerCustomer},#{premiumPerCustomerChange} ) + + + + + + \ No newline at end of file diff --git a/code/后端/desktop_archievement_backend/src/main/resources/mybatis/mybatis-config.xml b/code/后端/desktop_archievement_backend/src/main/resources/mybatis/mybatis-config.xml index 01d45cf..bf44152 100644 --- a/code/后端/desktop_archievement_backend/src/main/resources/mybatis/mybatis-config.xml +++ b/code/后端/desktop_archievement_backend/src/main/resources/mybatis/mybatis-config.xml @@ -26,6 +26,6 @@ - + \ No newline at end of file diff --git a/数据/测试用/BI部门渗透率续保率.xlsx b/数据/测试用/BI部门渗透率续保率.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..16aecf1f2e231011d52a005cbc59e376e7203ca3 GIT binary patch literal 6065 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 literal 0 HcmV?d00001 diff --git a/数据/测试用/坐席续保率 - 当月个车续保率跟踪报表【机构】.xlsx b/数据/测试用/坐席续保率 .xlsx similarity index 100% rename from 数据/测试用/坐席续保率 - 当月个车续保率跟踪报表【机构】.xlsx rename to 数据/测试用/坐席续保率 .xlsx diff --git a/数据/测试用/坐席车非渗透.xlsx b/数据/测试用/坐席车非渗透.xlsx index 0d863868a8d6b75a9910098a4dd9e596fa3188a1..e57de6c2d98a87e8b31ac4a6672df0e7969ed97d 100644 GIT binary patch delta 167 zcmZoZz}S3%kte{LnMH(wgM))XuYDs=JtLD|`{rIoDG)t*CDU0Dw}ROT%-zGX1H>(3 z-M|E*H8||Ssxvti!E_JT89$J&9xm0*^^sqhLF}?vdl0of)*M8Ah_wMxdU3WODmTsn bM6Hjr1W~WztU;7|yc>whk9Pr4TjTuziD)&< delta 167 zcmZoZz}S3%kte{LnMH(wgM))1hG`>DJtI>L)8<}ADG)t*CDU0Dw}ROT%-zGX1H>(3 z-M|E*H8||Ssxvti!E_JT89$J&9xm0*^^sqhLF}?vdl0of)*M8Ah_wMxdU3WODmTsn bM6Hjr1W~WztU;7|yc>whk9Pr4TjTuziLNgI