From 506f18abfe903974a4e319e4298be4270085dd15 Mon Sep 17 00:00:00 2001 From: Kane Wang Date: Wed, 25 Oct 2023 18:11:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9oracle=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E9=83=A8=E9=97=A8=E5=92=8C=E5=9D=90=E5=B8=AD=E4=B8=9A=E7=BB=A9?= =?UTF-8?q?=E7=9A=84=E4=BB=A3=E7=A0=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/db/pkg/telsale_archievement_pkg.pck | 171 +++++++++++------- .../src/components/HonorListComponent.vue | 1 + .../src/components/RankingListComponent.vue | 40 +++- .../src/views/DesktopArchievement.vue | 38 +--- .../ArchievementQueryController.java | 8 +- 5 files changed, 158 insertions(+), 100 deletions(-) diff --git a/code/db/pkg/telsale_archievement_pkg.pck b/code/db/pkg/telsale_archievement_pkg.pck index bcf583f..ea5cd9a 100644 --- a/code/db/pkg/telsale_archievement_pkg.pck +++ b/code/db/pkg/telsale_archievement_pkg.pck @@ -52,18 +52,18 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS A_TOTAL OUT INTEGER, A_MENSUAL_CUR OUT CUR_TYPE ) IS - L_THIS_MONTH VARCHAR2(4); - L_THIS_YEAR VARCHAR2(4); + --L_THIS_MONTH VARCHAR2(4); + --L_THIS_YEAR VARCHAR2(4); L_FIRSTDAY DATE; L_DEPARTMENT_NAME VARCHAR2(100); BEGIN - L_THIS_MONTH := TO_CHAR(SYSDATE, + /*L_THIS_MONTH := TO_CHAR(SYSDATE, 'mm'); L_THIS_YEAR := TO_CHAR(SYSDATE, - 'yyyy'); - L_FIRSTDAY := TO_DATE(TO_CHAR(SYSDATE, - 'yyyy') || '-01-01 00:00:00', - 'yyyy-mm-dd hh24:mi:ss'); + 'yyyy');*/ + L_FIRSTDAY := TO_DATE(TO_CHAR(SYSDATE, + 'yyyy') || '-01-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss'); -- 获取部门名称 BEGIN SELECT DEPARTMENT_NAME @@ -87,19 +87,25 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS WHERE CF.月份 = L_THIS_MONTH AND CF.年份 = L_THIS_YEAR AND 部门代码 = A_DEPARTMENT_CODE;*/ - SELECT dept.当月保费渗透率 + SELECT round(dept.当月保费渗透率, + 2) INTO A_ATTACHING_RATE FROM desktop_archievement_admin.bi部门渗透率续保率统计表 dept WHERE dept.部门 = L_DEPARTMENT_NAME; --续保率 - SELECT DECODE(SUM(到期数), - 0, - 0, - ROUND(SUM(已续保累计) / SUM(到期数) * 100, - 2)) + /*SELECT DECODE(SUM(到期数), + 0, + 0, + ROUND(SUM(已续保累计) / SUM(到期数) * 100, + 2)) + INTO A_RENEWAL_RATE + FROM 坐席续保统计 + WHERE 部门 = L_DEPARTMENT_NAME;*/ + SELECT round(t."个车续保率(全月)(%)", + 2) INTO A_RENEWAL_RATE - FROM 坐席续保统计 - WHERE 部门 = L_DEPARTMENT_NAME; + FROM BI机构当月个车续保率跟踪表 t + WHERE t.责任部门 = L_DEPARTMENT_NAME; --总业绩 SELECT ROUND(NVL(SUM(CF.车险个人客户保费 + CF.车非融合保费), 0), @@ -141,6 +147,7 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS l_this_month VARCHAR2(4); l_this_year VARCHAR2(4); l_firstday DATE; + l_rownum INTEGER; BEGIN --查询坐席名称,验证代码 BEGIN @@ -172,28 +179,46 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS AND cf.年份 = l_this_year; --渗透率 - SELECT decode(nvl(SUM(cf.车险个人客户保费), - 0), - 0, - 0, - round(SUM(cf.车非融合保费) / SUM(cf.车险个人客户保费) * 100, - 2)) - INTO a_attaching_rate - FROM 坐席车非每日保费 cf - WHERE cf.坐席工号 = a_caller_code - AND cf.年份 = l_this_year - AND cf.月份 = l_this_month; + SELECT rownum, + round(nvl(t.当月保费渗透率, + 0), + 2) + INTO l_rownum, + a_attaching_rate + FROM BI电销坐席车非渗透统计表 t + WHERE t.坐席名称 = l_caller_name + AND rownum = 1; + /*SELECT decode(nvl(SUM(cf.车险个人客户保费), + 0), + 0, + 0, + round(SUM(cf.车非融合保费) / SUM(cf.车险个人客户保费) * 100, + 2)) + INTO a_attaching_rate + FROM 坐席车非每日保费 cf + WHERE cf.坐席工号 = a_caller_code + AND cf.年份 = l_this_year + AND cf.月份 = l_this_month;*/ --续保率 - SELECT decode(nvl(SUM(xb.到期数), - 0), - 0, - 0, - round(SUM(xb.已续保累计) / SUM(xb.到期数) * 100, - 2)) xbl - INTO a_renewal_rate - FROM 坐席续保统计 xb - WHERE xb.坐席工号 = a_caller_code; + /*SELECT decode(nvl(SUM(xb.到期数), + 0), + 0, + 0, + round(SUM(xb.已续保累计) / SUM(xb.到期数) * 100, + 2)) xbl + INTO a_renewal_rate + FROM 坐席续保统计 xb + WHERE xb.坐席工号 = a_caller_code;*/ + SELECT rownum, + round(nvl(t.个车续保率全月, + 0), + 2) + INTO l_rownum, + a_renewal_rate + FROM BI坐席续保率统计表 t + WHERE t.责任人 = l_caller_name + AND rownum = 1; --每月业绩 OPEN A_MENSUAL_CUR FOR @@ -237,38 +262,54 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS END; -- 车非融合率排行榜 OPEN A_ATTACHING_RANKING_LIST FOR - SELECT ROWNUM, - 坐席名称 AS CALLER_NAME, - 车非渗透率 AS ATTACHING_RATE - FROM (SELECT 坐席名称, - ROUND(DECODE(nvl(SUM(车险个人客户保费), - 0), - 0, - 0, - (SUM(车非融合保费) / SUM(车险个人客户保费)) * 100), - 2) 车非渗透率 - FROM 坐席车非每日保费 - WHERE 月份 = A_MONTH - AND 年份 = A_YEAR - AND 部门代码 = A_DEPARTMENT_CODE - GROUP BY 坐席名称 - ORDER BY 车非渗透率 DESC); + SELECT rownum, + paihang.坐席名称 AS caller_name, + paihang.attaching_rate + FROM (SELECT DISTINCT * + FROM (SELECT t.坐席名称, + round(t.当月保费渗透率, + 2) attaching_rate, + zuoxi.department_name + FROM BI电销坐席车非渗透统计表 t, + (SELECT DISTINCT t.saler_code, + t.saler_name, + t.team_code, + team.team, + bm.department_name + FROM tele_saler t, + tele_saler_team team, + idst0.bm_t bm + 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 + ORDER BY st.department_name, + st.attaching_rate DESC) paihang; -- 续保率排行榜 OPEN A_RENEWAL_RANKING_LIST FOR - SELECT ROWNUM, - 坐席名称 AS CALLER_NAME, - 续保率 AS RENEWAL_RATE - FROM (SELECT 坐席名称, - decode(nvl(SUM(xb.到期数), - 0), - 0, - 0, - round(SUM(xb.已续保累计) / SUM(xb.到期数) * 100, - 2)) 续保率 - FROM 坐席续保统计 XB - WHERE XB.部门 = L_DEPARTMENT_NAME - GROUP BY 坐席名称 - ORDER BY 续保率 DESC); + SELECT rownum, + paihang.责任人 AS CALLER_NAME, + paihang.xbl AS RENEWAL_RATE + FROM (SELECT DISTINCT * + FROM (SELECT t.责任人, + round(t.个车续保率全月, + 2) xbl, + zuoxi.department_name + FROM BI坐席续保率统计表 t, + (SELECT DISTINCT t.saler_code, + t.saler_name, + t.team_code, + team.team, + bm.department_name + FROM tele_saler t, + tele_saler_team team, + idst0.bm_t bm + 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) xb + ORDER BY xb.department_name, + xb.xbl DESC) paihang; END; BEGIN NULL; diff --git a/code/web/task_schedule/src/components/HonorListComponent.vue b/code/web/task_schedule/src/components/HonorListComponent.vue index 2ca6820..d5081b8 100644 --- a/code/web/task_schedule/src/components/HonorListComponent.vue +++ b/code/web/task_schedule/src/components/HonorListComponent.vue @@ -157,6 +157,7 @@ export default { display: inline-block; text-align: center; color: #fff; + margin-top: 0px; font: { size: 1.5rem; diff --git a/code/web/task_schedule/src/components/RankingListComponent.vue b/code/web/task_schedule/src/components/RankingListComponent.vue index efd7309..58a8dab 100644 --- a/code/web/task_schedule/src/components/RankingListComponent.vue +++ b/code/web/task_schedule/src/components/RankingListComponent.vue @@ -9,6 +9,9 @@ --> 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 07ef49a..8bce9b3 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 @@ -71,10 +71,10 @@ public class ArchievementQueryController result.setTotalArchievement( departmentArch.getTotalArchievement() ); result.setInsuranceRenewalRate( departmentArch.getInsuranceRenewalRate() ); result.setAttachingRate( departmentArch.getAttachingRate() ); - result.addAdvanceRewardGainer( "娌堢兢" ); - result.addLeadingRewardGainer( "鐜嬮缚娲" ); - result.addLeadingRewardGainer( "鏋楀畻娉" ); - result.addBackwardStaff( "鐜嬬倻" ); + // result.addAdvanceRewardGainer( "娌堢兢" ); + // result.addLeadingRewardGainer( "鐜嬮缚娲" ); + // result.addLeadingRewardGainer( "鏋楀畻娉" ); + // result.addBackwardStaff( "鐜嬬倻" ); result.setMensualArchievementList( departmentArch.getMensualArchievementList() ); } catch ( IOException error )