diff --git a/code/db/pkg/telsale_archievement_dev_pkg.pck b/code/db/pkg/telsale_archievement_dev_pkg.pck new file mode 100644 index 0000000..67ec4fd --- /dev/null +++ b/code/db/pkg/telsale_archievement_dev_pkg.pck @@ -0,0 +1,285 @@ +CREATE OR REPLACE PACKAGE TELSALE_ARCHIEVEMENT_DEV_PKG IS + + -- Author : WANGWEI-202 + -- Created : 2023/3/10 15:13:34 + -- Purpose : 桌面霸屏项目基础数据生成包 + + TYPE CUR_TYPE IS REF CURSOR; + + -- 异常 + DEPARTMENTCODE_EXCEPTION_CODE CONSTANT INTEGER := -20000; + DEPARTMENTCODE_EXCEPTION_MSG CONSTANT VARCHAR2(100) := '部门代码无效。'; + + CALLERCODE_EXCEPTION_CODE CONSTANT INTEGER := -20001; + CALLERCODE_EXCEPTION_MSG CONSTANT VARCHAR2(100) := '坐席工号无效。'; + + PROCEDURE DEPARTMENT_ARCHIEVEMENT + ( + A_DEPARTMENT_CODE IN VARCHAR2, + A_ATTACHING_RATE OUT VARCHAR2, + A_ATTACHING_RATE_TARGET OUT VARCHAR2, + A_RENEWAL_RATE OUT VARCHAR2, + A_RENEWAL_RATE_TARGET OUT VARCHAR2, + A_TOTAL OUT INTEGER, + A_MENSUAL_CUR OUT CUR_TYPE + ); + + PROCEDURE CALLER_ARCHIEVEMENT + ( + A_CALLER_CODE IN VARCHAR2, + 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 + ); + + PROCEDURE CALLER_ARCH_RANKING_LIST + ( + A_DEPARTMENT_CODE IN VARCHAR2, + A_YEAR IN VARCHAR2, + A_MONTH IN VARCHAR2, + A_ATTACHING_RANKING_LIST OUT CUR_TYPE, + A_RENEWAL_RANKING_LIST OUT CUR_TYPE + ); + +END TELSALE_ARCHIEVEMENT_DEV_PKG; +/ +CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_DEV_PKG IS + + -- 部门业绩 + PROCEDURE DEPARTMENT_ARCHIEVEMENT + ( + A_DEPARTMENT_CODE IN VARCHAR2, + A_ATTACHING_RATE OUT VARCHAR2, + A_ATTACHING_RATE_TARGET OUT VARCHAR2, + A_RENEWAL_RATE OUT VARCHAR2, + A_RENEWAL_RATE_TARGET OUT VARCHAR2, + A_TOTAL OUT INTEGER, + A_MENSUAL_CUR OUT CUR_TYPE + ) IS + L_FIRSTDAY DATE; + L_DEPARTMENT_NAME VARCHAR2(100); + BEGIN + L_FIRSTDAY := TO_DATE(TO_CHAR(SYSDATE, + 'yyyy') || '-01-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss'); + -- 获取部门名称 + BEGIN + SELECT DEPARTMENT_NAME + INTO L_DEPARTMENT_NAME + FROM IDST0.BM_T BM + WHERE BM.DEPARTMENT_CODE = A_DEPARTMENT_CODE; + EXCEPTION + -- 如果没有找到部门名称,说明代码错误,抛出异常 + WHEN NO_DATA_FOUND THEN + RAISE_APPLICATION_ERROR(DEPARTMENTCODE_EXCEPTION_CODE, + DEPARTMENTCODE_EXCEPTION_MSG); + END; + + --车非渗透率&目标差距 + BEGIN + SELECT ROUND(DEPT.当月保费渗透率, + 2), + ROUND(DEPT.目标差距, + 2) + INTO A_ATTACHING_RATE, + A_ATTACHING_RATE_TARGET + FROM DESKTOP_ARCHIEVEMENT_ADMIN.BI机构渗透率跟踪表 DEPT + WHERE DEPT.部门 = L_DEPARTMENT_NAME; + EXCEPTION + WHEN NO_DATA_FOUND THEN + A_ATTACHING_RATE := '0.0'; + END; + + --续保率 + BEGIN + SELECT ROUND(t."个车续保率(全月)(%)", + 2) + INTO A_RENEWAL_RATE + FROM BI机构当月个车续保率跟踪表 T + WHERE T.责任部门 = L_DEPARTMENT_NAME; + EXCEPTION + WHEN NO_DATA_FOUND THEN + A_RENEWAL_RATE := '0.0'; + END; + -- 续保率模板差值 + A_RENEWAL_RATE_TARGET := '0.0'; + + --总业绩 + A_TOTAL := 0; + + --每月业绩 + OPEN A_MENSUAL_CUR FOR + SELECT CF.月份 MM, + ROUND(NVL(SUM(CF.车险个人客户保费 + CF.车非融合保费) / 10000, + 0), + 0) BF + FROM 坐席车非每日保费 CF + WHERE 部门代码 = A_DEPARTMENT_CODE + AND 签单日期 >= TO_DATE(TO_CHAR(SYSDATE, + 'yyyy') || '-01-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss') + AND 签单日期 < TO_DATE(TO_CHAR(SYSDATE, + 'yyyy-mm') || '-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss') + GROUP BY CF.月份 + ORDER BY CF.月份; + END; + + /*******************************************************/ + -- 坐席业绩 + PROCEDURE CALLER_ARCHIEVEMENT + ( + A_CALLER_CODE IN VARCHAR2, + 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); + L_DEPARTMENT_NAME VARCHAR2(100); + L_THIS_YEAR VARCHAR2(4); + L_ROWNUM INTEGER; + BEGIN + --查询坐席名称,和部门名称,验证代码 + BEGIN + SELECT ZX.人员姓名, + BM.DEPARTMENT_NAME + INTO L_CALLER_NAME, + L_DEPARTMENT_NAME + FROM TWR_TELSALER ZX, + TWR_TELSALER_TEAM T, + IDST0.BM_T BM + WHERE ZX.人员工号 = A_CALLER_CODE + AND ZX.团队名称 = T.TEAM_NAME + AND T.DEPARTMENT_CODE = BM.DEPARTMENT_CODE; + EXCEPTION + -- 如果没有查询到坐席名称,说明代码有误,抛出异常 + WHEN NO_DATA_FOUND THEN + RAISE_APPLICATION_ERROR(CALLERCODE_EXCEPTION_CODE, + CALLERCODE_EXCEPTION_MSG); + END; + + L_THIS_YEAR := TO_CHAR(SYSDATE, + 'yyyy'); + + --总车险保费 + SELECT ROUND(NVL(SUM(CF.车险个人客户保费), + 0), + 2) BF + INTO A_TOTAL + FROM 坐席车非每日保费 CF + WHERE CF.坐席名称 = L_CALLER_NAME + AND CF.部门 = L_DEPARTMENT_NAME + AND CF.年份 = L_THIS_YEAR; + + --渗透率 + BEGIN + SELECT ROWNUM, + ROUND(NVL(T.当月保费渗透率, + 0), + 2), + ROUND(NVL(t."车险保费(万)" * 10000, + 0), + 2) + INTO L_ROWNUM, + A_ATTACHING_RATE, + A_PRESENT_MONTH + FROM BI电销坐席车非渗透率跟踪表 T + WHERE T.经办 = L_CALLER_NAME + AND ROWNUM = 1; + EXCEPTION + WHEN NO_DATA_FOUND THEN + L_ROWNUM := 1; + A_ATTACHING_RATE := 0.0; + A_PRESENT_MONTH := 0.0; + END; + + --续保率 + BEGIN + SELECT ROWNUM, + ROUND(NVL(t."个车续保率(全月)(%)", + 0), + 2) + INTO L_ROWNUM, + A_RENEWAL_RATE + FROM BI电销坐席续保率跟踪表 T + WHERE T.责任人 = L_CALLER_NAME + AND ROWNUM = 1; + EXCEPTION + WHEN NO_DATA_FOUND THEN + L_ROWNUM := 1; + A_RENEWAL_RATE := 0.0; + END; + + --每月业绩 + OPEN A_MENSUAL_CUR FOR + SELECT CF.月份 MM, + ROUND(NVL(SUM(CF.车险个人客户保费), + 0), + 0) BF + FROM 坐席车非每日保费 CF + WHERE CF.坐席名称 = L_CALLER_NAME + AND CF.部门 = L_DEPARTMENT_NAME + AND 签单日期 >= TO_DATE(TO_CHAR(SYSDATE, + 'yyyy') || '-01-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss') + AND 签单日期 <= SYSDATE + GROUP BY CF.月份 + ORDER BY CF.月份; + END; + + /*******************************************************/ + -- 坐席排行榜 + PROCEDURE CALLER_ARCH_RANKING_LIST + ( + A_DEPARTMENT_CODE IN VARCHAR2, + A_YEAR IN VARCHAR2, + A_MONTH IN VARCHAR2, + A_ATTACHING_RANKING_LIST OUT CUR_TYPE, + A_RENEWAL_RANKING_LIST OUT CUR_TYPE + ) IS + L_DEPARTMENT_NAME VARCHAR2(100); + BEGIN + -- 获取部门名称 + BEGIN + SELECT DEPARTMENT_NAME + INTO L_DEPARTMENT_NAME + FROM IDST0.BM_T BM + WHERE BM.DEPARTMENT_CODE = A_DEPARTMENT_CODE; + EXCEPTION + -- 如果没有找到部门名称,说明代码错误,抛出异常 + WHEN NO_DATA_FOUND THEN + RAISE_APPLICATION_ERROR(DEPARTMENTCODE_EXCEPTION_CODE, + DEPARTMENTCODE_EXCEPTION_MSG); + END; + -- 车非融合率排行榜 + OPEN A_ATTACHING_RANKING_LIST FOR + SELECT ROWNUM, + PAIHANG.经办 AS CALLER_NAME, + PAIHANG.XBL AS ATTACHING_RATE + FROM (SELECT T.经办, + ROUND(T.当月保费渗透率, + 2) XBL + FROM BI电销坐席车非渗透率跟踪表 T + WHERE T.部门 = L_DEPARTMENT_NAME + ORDER BY T.当月保费渗透率 DESC) PAIHANG; + + -- 续保率排行榜 + OPEN A_RENEWAL_RANKING_LIST FOR + SELECT ROWNUM, + PAIHANG.责任人 AS CALLER_NAME, + PAIHANG.XBL AS RENEWAL_RATE + FROM (SELECT T.责任人, + ROUND(t."个车续保率(全月)(%)", + 2) XBL + FROM BI电销坐席续保率跟踪表 T + WHERE T.责任部门 = L_DEPARTMENT_NAME + ORDER BY XBL DESC) PAIHANG; + END; +BEGIN + NULL; +END TELSALE_ARCHIEVEMENT_DEV_PKG; +/ diff --git a/code/db/pkg/telsale_archievement_pkg.pck b/code/db/pkg/telsale_archievement_pkg.pck index 65338b6..43ba8b1 100644 --- a/code/db/pkg/telsale_archievement_pkg.pck +++ b/code/db/pkg/telsale_archievement_pkg.pck @@ -1,4 +1,4 @@ -CREATE OR REPLACE PACKAGE telsale_archievement_pkg IS +CREATE OR REPLACE PACKAGE telsale_archievement_dev_pkg IS -- Author : WANGWEI-202 -- Created : 2023/3/10 15:13:34 @@ -32,16 +32,6 @@ CREATE OR REPLACE PACKAGE telsale_archievement_pkg IS a_mensual_cur OUT cur_type ); - PROCEDURE caller_archievement2 - ( - a_caller_code IN VARCHAR2, - 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 - ); - PROCEDURE caller_arch_ranking_list ( a_department_code IN VARCHAR2, @@ -53,7 +43,7 @@ CREATE OR REPLACE PACKAGE telsale_archievement_pkg IS END telsale_archievement_pkg; / -CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS +CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_dev_PKG IS -- 部门业绩 PROCEDURE DEPARTMENT_ARCHIEVEMENT ( @@ -258,104 +248,6 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS ORDER BY CF.月份; END; - PROCEDURE caller_archievement2 - ( - a_caller_code IN VARCHAR2, - 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); - l_department_name VARCHAR2(100); - --l_this_month VARCHAR2(4); - l_this_year VARCHAR2(4); - --l_firstday DATE; - l_rownum INTEGER; - BEGIN - --查询坐席名称,和部门名称,验证代码 - BEGIN - SELECT zx.saler_name, - bm.department_name - INTO l_caller_name, - l_department_name - FROM tele_saler zx, - tele_saler_team team, - idst0.bm_t bm - WHERE zx.saler_code = a_caller_code - AND zx.team_code = team.team_code - AND team.department_code = bm.department_code; - /* SELECT saler_name - INTO l_caller_name - FROM tele_saler - WHERE saler_code = a_caller_code;*/ - EXCEPTION - -- 如果没有查询到坐席名称,说明代码有误,抛出异常 - WHEN no_data_found THEN - raise_application_error(CALLERCODE_EXCEPTION_CODE, - CALLERCODE_EXCEPTION_MSG); - END; - - --l_this_month := to_char(SYSDATE, - -- 'mm'); - l_this_year := to_char(SYSDATE, - 'yyyy'); - --l_firstday := to_date(l_this_year || '-01-01 00:00:00', - -- 'yyyy-mm-dd hh24:mi:ss'); - - --总车险保费 - SELECT round(nvl(SUM(cf.车险个人客户保费), - 0), - 2) bf - INTO a_total - FROM 坐席车非每日保费 cf - WHERE cf.坐席名称 = l_caller_name - AND cf.部门 = l_department_name - AND cf.年份 = l_this_year; - - --渗透率 - SELECT rownum, - round(nvl(t.当月保费渗透率, - 0), - 2), - round(nvl(t."车险保费(万)" * 10000, - 0), - 2) - INTO l_rownum, - a_attaching_rate, - a_present_month - FROM BI电销坐席车非渗透率跟踪表 t - WHERE t.经办 = l_caller_name - AND rownum = 1; - --续保率 - 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 - SELECT CF.月份 MM, - ROUND(NVL(SUM(CF.车险个人客户保费), - 0), - 0) BF - FROM 坐席车非每日保费 CF - WHERE cf.坐席名称 = l_caller_name - AND cf.部门 = l_department_name - AND 签单日期 >= TO_DATE(TO_CHAR(SYSDATE, - 'yyyy') || '-01-01 00:00:00', - 'yyyy-mm-dd hh24:mi:ss') - AND 签单日期 <= SYSDATE - GROUP BY CF.月份 - ORDER BY CF.月份; - END; - /*******************************************************/ -- 坐席排行榜 PROCEDURE CALLER_ARCH_RANKING_LIST diff --git a/code/web/task_schedule/package-lock.json b/code/web/task_schedule/package-lock.json index 5779513..b9b0a3d 100644 --- a/code/web/task_schedule/package-lock.json +++ b/code/web/task_schedule/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@element-plus/icons-vue": "^2.3.1", "echarts": "^5.4.3", - "element-plus": "^2.4.3", + "element-plus": "^2.4.4", "mitt": "^3.0.1", "moment": "^2.29.4", "sass-loader": "^13.3.2", @@ -4962,9 +4962,9 @@ "integrity": "sha512-UdREXMXzLkREF4jA8t89FQjA8WHI6ssP38PMY4/4KhXFQbtImnghh4GkCgrtiZwLKUKVD2iTVXvDVQjfomEQuA==" }, "node_modules/element-plus": { - "version": "2.4.3", - "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.4.3.tgz", - "integrity": "sha512-b3q26j+lM4SBqiyzw8HybybGnP2pk4MWgrnzzzYW5qKQUgV6EG1Zg7nMCfgCVccI8tNvZoTiUHb2mFaiB9qT8w==", + "version": "2.4.4", + "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.4.4.tgz", + "integrity": "sha512-TlKubXJgxwhER0dw+8ULn9hr9kZjraV4R6Q/eidwWUwCKxwXYPBGmMKsZ/85tlxlhMYbcLZd/YZh6G3QkHX4fg==", "dependencies": { "@ctrl/tinycolor": "^3.4.1", "@element-plus/icons-vue": "^2.3.1", diff --git a/code/web/task_schedule/src/components/ArchievementCompleteRateComponent.vue b/code/web/task_schedule/src/components/ArchievementCompleteRateComponent.vue index e5b44ea..56127bb 100644 --- a/code/web/task_schedule/src/components/ArchievementCompleteRateComponent.vue +++ b/code/web/task_schedule/src/components/ArchievementCompleteRateComponent.vue @@ -12,7 +12,7 @@