续保率报表格式修改,还未完成。

This commit is contained in:
Kane Wang 2024-01-10 18:24:10 +08:00
parent 962c22400e
commit afccb2a88c
14 changed files with 223 additions and 162 deletions

View File

@ -112,7 +112,7 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_DEV_PKG IS
2)
INTO A_RENEWAL_RATE,
A_RENEWAL_RATE_TARGET
FROM BI机构当月个车续保率跟踪表 T
FROM "BI机构续保率跟踪表-24年" T
WHERE T.责任部门 = L_DEPARTMENT_NAME;
--解决round导致小数缺0的问题
@ -229,7 +229,7 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_DEV_PKG IS
2)
INTO L_ROWNUM,
A_RENEWAL_RATE
FROM BI电销坐席续保率跟踪表 T
FROM "BI电销坐席续保率跟踪表-24年" T
WHERE T.责任人 = L_CALLER_NAME
AND ROWNUM = 1;
EXCEPTION

View File

@ -86,7 +86,7 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS
2)
INTO A_ATTACHING_RATE,
A_ATTACHING_RATE_TARGET
FROM DESKTOP_ARCHIEVEMENT_ADMIN.BI机构渗透率跟踪表 DEPT
FROM BI机构渗透率跟踪表 DEPT
WHERE DEPT.部门 = L_DEPARTMENT_NAME;
--解决round导致小数缺0的问题
@ -112,7 +112,7 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS
2)
INTO A_RENEWAL_RATE,
A_RENEWAL_RATE_TARGET
FROM BI机构当月个车续保率跟踪表 T
FROM "BI机构续保率跟踪表-24年" T
WHERE T.责任部门 = L_DEPARTMENT_NAME;
--解决round导致小数缺0的问题
@ -229,7 +229,7 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS
2)
INTO L_ROWNUM,
A_RENEWAL_RATE
FROM BI电销坐席续保率跟踪表 T
FROM "BI电销坐席续保率跟踪表-24年" T
WHERE T.责任人 = L_CALLER_NAME
AND ROWNUM = 1;
EXCEPTION

View File

@ -1,4 +1,4 @@
CREATE OR REPLACE PACKAGE telsale_bi_utils IS
CREATE OR REPLACE PACKAGE TELSALE_BI_UTILS IS
-- Author : WANGWEI-202
-- Created : 2023/10/12 15:31:13
@ -12,9 +12,9 @@ CREATE OR REPLACE PACKAGE telsale_bi_utils IS
PROCEDURE 清理BI部门续保率跟踪表;
END telsale_bi_utils;
END TELSALE_BI_UTILS;
/
CREATE OR REPLACE PACKAGE BODY telsale_bi_utils IS
CREATE OR REPLACE PACKAGE BODY TELSALE_BI_UTILS IS
PROCEDURE 清理BI电销坐席车非渗透率跟踪表 IS
BEGIN
@ -24,6 +24,7 @@ CREATE OR REPLACE PACKAGE BODY telsale_bi_utils IS
PROCEDURE 清理BI电销坐席续保率跟踪表 IS
BEGIN
EXECUTE IMMEDIATE 'truncate table BI电销坐席续保率跟踪表';
--EXECUTE IMMEDIATE 'truncate table BI电销坐席续保率跟踪表-24年';
END;
PROCEDURE 清理BI部门渗透率跟踪表 IS
@ -34,10 +35,11 @@ CREATE OR REPLACE PACKAGE BODY telsale_bi_utils IS
PROCEDURE 清理BI部门续保率跟踪表 IS
BEGIN
EXECUTE IMMEDIATE 'truncate table BI机构当月个车续保率跟踪表';
--EXECUTE IMMEDIATE 'truncate table BI机构续保率跟踪表-24年';
END;
BEGIN
-- Initialization
NULL;
END telsale_bi_utils;
END TELSALE_BI_UTILS;
/

View File

@ -0,0 +1,45 @@
CREATE OR REPLACE PACKAGE TELSALE_BI_UTILS_DEV IS
-- Author : WANGWEI-202
-- Created : 2023/10/12 15:31:13
-- Purpose : bi数据报表相关的工具
PROCEDURE 清理BI电销坐席车非渗透率跟踪表;
PROCEDURE 清理BI电销坐席续保率跟踪表;
PROCEDURE 清理BI部门渗透率跟踪表;
PROCEDURE 清理BI部门续保率跟踪表;
END TELSALE_BI_UTILS_DEV;
/
CREATE OR REPLACE PACKAGE BODY TELSALE_BI_UTILS_DEV IS
PROCEDURE 清理BI电销坐席车非渗透率跟踪表 IS
BEGIN
EXECUTE IMMEDIATE 'truncate table BI电销坐席车非渗透率跟踪表';
END;
PROCEDURE 清理BI电销坐席续保率跟踪表 IS
BEGIN
--EXECUTE IMMEDIATE 'truncate table BI电销坐席续保率跟踪表';
EXECUTE IMMEDIATE 'truncate table "BI电销坐席续保率跟踪表-24年"';
END;
PROCEDURE 清理BI部门渗透率跟踪表 IS
BEGIN
EXECUTE IMMEDIATE 'truncate table BI机构渗透率跟踪表';
END;
PROCEDURE 清理BI部门续保率跟踪表 IS
BEGIN
--EXECUTE IMMEDIATE 'truncate table BI机构当月个车续保率跟踪表';
EXECUTE IMMEDIATE 'truncate table "BI机构续保率跟踪表-24年"';
END;
BEGIN
-- Initialization
NULL;
END TELSALE_BI_UTILS_DEV;
/

View File

@ -1,30 +1,30 @@
SELECT *
FROM reward_gainers
FROM REWARD_GAINERS
FOR UPDATE;
SELECT b.reward_name,
a.*
FROM reward_gainers a,
reward_projects b
WHERE a.reward_index = b.reward_index;
SELECT B.REWARD_NAME,
A.*
FROM REWARD_GAINERS A,
REWARD_PROJECTS B
WHERE A.REWARD_INDEX = B.REWARD_INDEX;
--
SELECT DISTINCT s.saler_code,
s.saler_name,
t.team_code,
t.team,
bm.department_code,
bm.department_name
FROM tele_saler s,
tele_saler_team t,
idst0.bm_t bm
WHERE s.team_code = t.team_code
AND t.department_code = bm.department_code
AND s.saler_code = '61136';
SELECT DISTINCT S.SALER_CODE,
S.SALER_NAME,
T.TEAM_CODE,
T.TEAM,
BM.DEPARTMENT_CODE,
BM.DEPARTMENT_NAME
FROM TELE_SALER S,
TELE_SALER_TEAM T,
IDST0.BM_T BM
WHERE S.TEAM_CODE = T.TEAM_CODE
AND T.DEPARTMENT_CODE = BM.DEPARTMENT_CODE
AND S.SALER_CODE = '61136';
SELECT *
FROM tele_saler_team t
WHERE t.team_code = '107077'
FROM TELE_SALER_TEAM T
WHERE T.TEAM_CODE = '107077'
SELECT *
FROM
@ -35,7 +35,7 @@ SELECT *
SELECT ,
SUM() ,
SUM() ,
round((SUM() / SUM()) * 100,
ROUND((SUM() / SUM()) * 100,
0) || '%'
FROM
GROUP BY ;
@ -46,7 +46,7 @@ SELECT
,
SUM(),
SUM(),
round(SUM() / SUM() * 100,
ROUND(SUM() / SUM() * 100,
2)
FROM
GROUP BY ,
@ -57,7 +57,7 @@ HAVING
DESC;
SELECT ,
round(SUM() / SUM() * 100,
ROUND(SUM() / SUM() * 100,
2)
FROM
WHERE = 'QDI'
@ -68,37 +68,37 @@ SELECT
--
SELECT ,
round(nvl(SUM() / SUM() * 100,
ROUND(NVL(SUM() / SUM() * 100,
0),
2)
FROM xb
WHERE xb. = '续保业务部'
FROM XB
WHERE XB. = '续保业务部'
GROUP BY
ORDER BY DESC;
-------------------------------------
SELECT zx.saler_name,
bm.department_name
FROM tele_saler zx,
tele_saler_team team,
idst0.bm_t bm
WHERE zx.saler_name = '张楚沂'
AND zx.team_code = team.team_code
AND team.department_code = bm.department_code;
SELECT ZX.SALER_NAME,
BM.DEPARTMENT_NAME
FROM TELE_SALER ZX,
TELE_SALER_TEAM TEAM,
IDST0.BM_T BM
WHERE ZX.SALER_NAME = '张楚沂'
AND ZX.TEAM_CODE = TEAM.TEAM_CODE
AND TEAM.DEPARTMENT_CODE = BM.DEPARTMENT_CODE;
----------------------------------------
/*
truncate table BI机构渗透率跟踪表;
*/
SELECT *
FROM BI电销坐席车非渗透率跟踪表 t
WHERE t. = '杨苗';
FROM BI电销坐席车非渗透率跟踪表 T
WHERE T. = '杨苗';
SELECT *
FROM BI电销坐席续保率跟踪表
FROM "BI电销坐席续保率跟踪表-24年"
WHERE = '杨苗';
SELECT *
FROM BI机构渗透率跟踪表;
SELECT *
FROM BI机构当月个车续保率跟踪表;
FROM "BI机构续保率跟踪表-24年";

View File

@ -14,7 +14,7 @@
"mitt": "^3.0.1",
"moment": "^2.30.1",
"sass-loader": "^13.3.3",
"vue": "^3.4.6",
"vue": "^3.4.7",
"vue-router": "^4.2.5",
"vuex": "^4.1.0"
},
@ -22,7 +22,7 @@
"@babel/eslint-parser": "^7.23.3",
"@rushstack/eslint-patch": "^1.6.1",
"@typescript-eslint/eslint-plugin": "^6.18.1",
"@vitejs/plugin-vue": "^5.0.2",
"@vitejs/plugin-vue": "^5.0.3",
"@vue/cli-plugin-eslint": "^5.0.8",
"@vue/eslint-config-typescript": "^12.0.0",
"axios": "^1.6.5",
@ -32,7 +32,7 @@
"eslint-plugin-vue": "^9.19.2",
"node-sass": "^9.0.0",
"sass": "^1.69.7",
"style-loader": "^3.3.3",
"style-loader": "^3.3.4",
"ts-node": "^10.9.2",
"vue-eslint-parser": "^9.4.0"
}
@ -2284,9 +2284,9 @@
}
},
"node_modules/@vitejs/plugin-vue": {
"version": "5.0.2",
"resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.0.2.tgz",
"integrity": "sha512-kEjJHrLb5ePBvjD0SPZwJlw1QTRcjjCA9sB5VyfonoXVBxTS7TMnqL6EkLt1Eu61RDeiuZ/WN9Hf6PxXhPI2uA==",
"version": "5.0.3",
"resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.0.3.tgz",
"integrity": "sha512-b8S5dVS40rgHdDrw+DQi/xOM9ed+kSRZzfm1T74bMmBDCd8XO87NKlFYInzCtwvtWwXZvo1QxE2OSspTATWrbA==",
"dev": true,
"engines": {
"node": "^18.0.0 || >=20.0.0"
@ -2561,12 +2561,12 @@
"dev": true
},
"node_modules/@vue/compiler-core": {
"version": "3.4.6",
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.6.tgz",
"integrity": "sha512-9SmkpHsXqhHGMIOp4cawUqp0AxLN2fJJfxh3sR2RaouVx/Y/ww5ts3dfpD9SCvD0n8cdO/Xw+kWEpa6EkH/vTQ==",
"version": "3.4.7",
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.7.tgz",
"integrity": "sha512-hhCaE3pTMrlIJK7M/o3Xf7HV8+JoNTGOQ/coWS+V+pH6QFFyqtoXqQzpqsNp7UK17xYKua/MBiKj4e1vgZOBYw==",
"dependencies": {
"@babel/parser": "^7.23.6",
"@vue/shared": "3.4.6",
"@vue/shared": "3.4.7",
"entities": "^4.5.0",
"estree-walker": "^2.0.2",
"source-map-js": "^1.0.2"
@ -2581,24 +2581,24 @@
}
},
"node_modules/@vue/compiler-dom": {
"version": "3.4.6",
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.6.tgz",
"integrity": "sha512-i39ZuyHPzPb0v5yXZbvODGwLr+T7lS1rYSjMd1oCTa14aDP80kYpWXrWPF1JVD4QJJNyLgFnJ2hxvFLM7dy9NQ==",
"version": "3.4.7",
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.7.tgz",
"integrity": "sha512-qDKBAIurCTub4n/6jDYkXwgsFuriqqmmLrIq1N2QDfYJA/mwiwvxi09OGn28g+uDdERX9NaKDLji0oTjE3sScg==",
"dependencies": {
"@vue/compiler-core": "3.4.6",
"@vue/shared": "3.4.6"
"@vue/compiler-core": "3.4.7",
"@vue/shared": "3.4.7"
}
},
"node_modules/@vue/compiler-sfc": {
"version": "3.4.6",
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.6.tgz",
"integrity": "sha512-kTFOiyMtuetFqi5yEPA4hR6FTD36zKKY3qaBonxGb4pgj0yK1eACqH+iycTAsEqr2u4cOhcGkx3Yjecpgh6FTQ==",
"version": "3.4.7",
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.7.tgz",
"integrity": "sha512-Gec6CLkReVswDYjQFq79O5rktri4R7TsD/VPCiUoJw40JhNNxaNJJa8mrQrWoJluW4ETy6QN0NUyC/JO77OCOw==",
"dependencies": {
"@babel/parser": "^7.23.6",
"@vue/compiler-core": "3.4.6",
"@vue/compiler-dom": "3.4.6",
"@vue/compiler-ssr": "3.4.6",
"@vue/shared": "3.4.6",
"@vue/compiler-core": "3.4.7",
"@vue/compiler-dom": "3.4.7",
"@vue/compiler-ssr": "3.4.7",
"@vue/shared": "3.4.7",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.5",
"postcss": "^8.4.32",
@ -2606,12 +2606,12 @@
}
},
"node_modules/@vue/compiler-ssr": {
"version": "3.4.6",
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.6.tgz",
"integrity": "sha512-XqeojjDitjMLyOogDePNSxw9XL4FAXchO9oOfqdzLVEtYES5j+AEilPJyP0KhQPfGecY2mJ3Y7/e6kkiJQLKvg==",
"version": "3.4.7",
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.7.tgz",
"integrity": "sha512-PvYeSOvnCkST5mGS0TLwEn5w+4GavtEn6adcq8AspbHaIr+mId5hp7cG3ASy3iy8b+LuXEG2/QaV/nj5BQ/Aww==",
"dependencies": {
"@vue/compiler-dom": "3.4.6",
"@vue/shared": "3.4.6"
"@vue/compiler-dom": "3.4.7",
"@vue/shared": "3.4.7"
}
},
"node_modules/@vue/component-compiler-utils": {
@ -2710,48 +2710,48 @@
}
},
"node_modules/@vue/reactivity": {
"version": "3.4.6",
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.4.6.tgz",
"integrity": "sha512-/VuOxdWDyAeKFHjOuSKEtH9jEVPRgsXxu84utBP1SiXFcFRx2prwiC9cSR8hKOfj5nBwhLXYb6XEU69mLpuk0w==",
"version": "3.4.7",
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.4.7.tgz",
"integrity": "sha512-F539DO0ogH0+L8F9Pnw7cjqibcmSOh5UTk16u5f4MKQ8fraqepI9zdh+sozPX6VmEHOcjo8qw3Or9ZcFFw4SZA==",
"dependencies": {
"@vue/shared": "3.4.6"
"@vue/shared": "3.4.7"
}
},
"node_modules/@vue/runtime-core": {
"version": "3.4.6",
"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.4.6.tgz",
"integrity": "sha512-XDOx8iiNmP66p+goUHT5XL1AnV8406VVFQARbylqmSCBZEtxchfu2ZoQk7U07ze8G/E0/BtX/C5o29zB1W4o5A==",
"version": "3.4.7",
"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.4.7.tgz",
"integrity": "sha512-QMMsWRQaD3BpGyjjChthpl4Mji4Fjx1qfdufsXlDkKU3HV+hWNor2z+29F+E1MmVcP0ZfRZUfqYgtsQoL7IGwQ==",
"dependencies": {
"@vue/reactivity": "3.4.6",
"@vue/shared": "3.4.6"
"@vue/reactivity": "3.4.7",
"@vue/shared": "3.4.7"
}
},
"node_modules/@vue/runtime-dom": {
"version": "3.4.6",
"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.4.6.tgz",
"integrity": "sha512-8bdQR5CLfzClGvAOfbbCF8adE9oko0pRfe+dj297i0JCdCJ8AuyUMsXkt6vGPcRPqIKX4Z8f/bDPrwl+c7e4Wg==",
"version": "3.4.7",
"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.4.7.tgz",
"integrity": "sha512-XwegyUY1rw8zxsX1Z36vwYcqo+uOgih5ti7y9vx+pPFhNdSQmN4LqK2RmSeAJG1oKV8NqSUmjpv92f/x6h0SeQ==",
"dependencies": {
"@vue/runtime-core": "3.4.6",
"@vue/shared": "3.4.6",
"@vue/runtime-core": "3.4.7",
"@vue/shared": "3.4.7",
"csstype": "^3.1.3"
}
},
"node_modules/@vue/server-renderer": {
"version": "3.4.6",
"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.4.6.tgz",
"integrity": "sha512-0LS+GXf3M93KloaK/S0ZPq5PnKERgPAV5iNCCpjyBLhAQGGEeqfJojs3yXOAMQLSvXi9FLYDHzDEOLWoLaYbTQ==",
"version": "3.4.7",
"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.4.7.tgz",
"integrity": "sha512-3bWnYLEkLLhkDWqvNk7IvbQD4UcxvFKxELBiOO2iG3m6AniFIsBWfHOO5tLVQnjdWkODu4rq0GipmfEenVAK5Q==",
"dependencies": {
"@vue/compiler-ssr": "3.4.6",
"@vue/shared": "3.4.6"
"@vue/compiler-ssr": "3.4.7",
"@vue/shared": "3.4.7"
},
"peerDependencies": {
"vue": "3.4.6"
"vue": "3.4.7"
}
},
"node_modules/@vue/shared": {
"version": "3.4.6",
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.6.tgz",
"integrity": "sha512-O16vewA05D0IwfG2N/OFEuVeb17pieaI32mmYXp36V8lp+/pI1YV04rRL9Eyjndj3xQO5SNjAxTh6ul4IlBa3A=="
"version": "3.4.7",
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.7.tgz",
"integrity": "sha512-G+i4glX1dMJk88sbJEcQEGWRQnVm9eIY7CcQbO5dpdsD9SF8jka3Mr5OqZYGjczGN1+D6EUwdu6phcmcx9iuPA=="
},
"node_modules/@vue/vue-loader-v15": {
"name": "vue-loader",
@ -13889,9 +13889,9 @@
}
},
"node_modules/style-loader": {
"version": "3.3.3",
"resolved": "https://registry.npmmirror.com/style-loader/-/style-loader-3.3.3.tgz",
"integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==",
"version": "3.3.4",
"resolved": "https://registry.npmmirror.com/style-loader/-/style-loader-3.3.4.tgz",
"integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==",
"dev": true,
"engines": {
"node": ">= 12.13.0"
@ -14665,15 +14665,15 @@
}
},
"node_modules/vue": {
"version": "3.4.6",
"resolved": "https://registry.npmmirror.com/vue/-/vue-3.4.6.tgz",
"integrity": "sha512-gAzw5oP0/h34/yq1LjLNpn4wrCKYMuWp2jbs/JirFiZAFWYhd9jTkXp4wIi5ApgMJrMgD6YFyyXwKsqFYR31IQ==",
"version": "3.4.7",
"resolved": "https://registry.npmmirror.com/vue/-/vue-3.4.7.tgz",
"integrity": "sha512-4urmkWpudekq0CPNMO7p6mBGa9qmTXwJMO2r6CT4EzIJVG7WoSReiysiNb7OSi/WI113oX0Srn9Rz1k/DCXKFQ==",
"dependencies": {
"@vue/compiler-dom": "3.4.6",
"@vue/compiler-sfc": "3.4.6",
"@vue/runtime-dom": "3.4.6",
"@vue/server-renderer": "3.4.6",
"@vue/shared": "3.4.6"
"@vue/compiler-dom": "3.4.7",
"@vue/compiler-sfc": "3.4.7",
"@vue/runtime-dom": "3.4.7",
"@vue/server-renderer": "3.4.7",
"@vue/shared": "3.4.7"
},
"peerDependencies": {
"typescript": "*"

View File

@ -15,7 +15,7 @@
"mitt": "^3.0.1",
"moment": "^2.30.1",
"sass-loader": "^13.3.3",
"vue": "^3.4.6",
"vue": "^3.4.7",
"vue-router": "^4.2.5",
"vuex": "^4.1.0"
},
@ -23,7 +23,7 @@
"@babel/eslint-parser": "^7.23.3",
"@rushstack/eslint-patch": "^1.6.1",
"@typescript-eslint/eslint-plugin": "^6.18.1",
"@vitejs/plugin-vue": "^5.0.2",
"@vitejs/plugin-vue": "^5.0.3",
"@vue/cli-plugin-eslint": "^5.0.8",
"@vue/eslint-config-typescript": "^12.0.0",
"axios": "^1.6.5",
@ -33,7 +33,7 @@
"eslint-plugin-vue": "^9.19.2",
"node-sass": "^9.0.0",
"sass": "^1.69.7",
"style-loader": "^3.3.3",
"style-loader": "^3.3.4",
"ts-node": "^10.9.2",
"vue-eslint-parser": "^9.4.0"
}

View File

@ -19,14 +19,14 @@ public class BIDepartmentRenewalRateRecord
private double 个车续保率全月;
private double 环比昨日;
private double 环比上月;
private int 平均提前签单天数;
private double 环比;
// private int 平均提前签单天数;
// private double 环比;
public BIDepartmentRenewalRateRecord()
{}
public BIDepartmentRenewalRateRecord( String 责任部门, double 机构目标值, int 到期数全月, double 序时到期数占比,
double 个车续保率序时, double 个车续保率全月, double 环比昨日, double 环比上月, int 平均提前签单天数, double 环比 )
double 个车续保率序时, double 个车续保率全月, double 环比昨日, double 环比上月 )
{
this.责任部门 = 责任部门;
this.机构目标值 = 机构目标值;
@ -36,8 +36,8 @@ public class BIDepartmentRenewalRateRecord
this.个车续保率全月 = 个车续保率全月;
this.环比昨日 = 环比昨日;
this.环比上月 = 环比上月;
this.平均提前签单天数 = 平均提前签单天数;
this.环比 = 环比;
// this.平均提前签单天数 = 平均提前签单天数;
// this.环比 = 环比;
}
public String get责任部门()
@ -120,25 +120,6 @@ public class BIDepartmentRenewalRateRecord
this.环比上月 = 环比上月;
}
public int get平均提前签单天数()
{
return 平均提前签单天数;
}
public void set平均提前签单天数( int 平均提前签单天数 )
{
this.平均提前签单天数 = 平均提前签单天数;
}
public double get环比()
{
return 环比;
}
public void set环比( double 环比 )
{
this.环比 = 环比;
}
@Override
public int hashCode()
@ -160,9 +141,6 @@ public class BIDepartmentRenewalRateRecord
result = prime * result + (int) (temp ^ (temp >>> 32));
temp = Double.doubleToLongBits( 环比上月 );
result = prime * result + (int) (temp ^ (temp >>> 32));
result = prime * result + 平均提前签单天数;
temp = Double.doubleToLongBits( 环比 );
result = prime * result + (int) (temp ^ (temp >>> 32));
return result;
}
@ -197,10 +175,6 @@ public class BIDepartmentRenewalRateRecord
return false;
if ( Double.doubleToLongBits( 环比上月 ) != Double.doubleToLongBits( other.环比上月 ) )
return false;
if ( 平均提前签单天数 != other.平均提前签单天数 )
return false;
if ( Double.doubleToLongBits( 环比 ) != Double.doubleToLongBits( other.环比 ) )
return false;
return true;
}
@ -209,7 +183,6 @@ public class BIDepartmentRenewalRateRecord
{
return "BIDepartmentRenewalRateRecord [责任部门=" + 责任部门 + ", 机构目标值=" + 机构目标值 + ", 到期数全月="
+ 到期数全月 + ", 序时到期数占比=" + 序时到期数占比 + ", 个车续保率序时=" + 个车续保率序时 + ", 个车续保率全月=" + 个车续保率全月
+ ", 环比昨日=" + 环比昨日 + ", 环比上月=" + 环比上月 + ", 平均提前签单天数=" + 平均提前签单天数 + ", 环比=" + 环比
+ "]";
+ ", 环比昨日=" + 环比昨日 + ", 环比上月=" + 环比上月 + "]";
}
}

View File

@ -34,18 +34,21 @@ public final class ImportBIExcelData
{
private static Logger logger = LoggerFactory.getLogger( ImportBIExcelData.class );
// 坐席 渗透率
private static String[] TelsalerAttachingRateExcelTitle = new String[]
{ "部门", "经办", "车险保费(万)", "车险保费占比", "非车保费(万)", "当月保费渗透率", "保费渗透率环比上月", "当月客户渗透率", "客户渗透率环比上月",
"当月车非客均保费", "客均保费环比上月"};
// 坐席 续保率
private static String[] TelSalerRenewalRateExcelTitle = new String[]
{ "责任部门", "责任人", "机构目标值1(%)", "到期数-全月", "序时到期数占比(%)", "个车续保率(序时)(%)", "个车续保率(全月)(%)", "环比昨日(%)",
"环比上月(%)", "平均提前签单天数", "环比"};
"环比上月(%)", "序时-部门内", "全月-部门内"};
// 机构 渗透率
private static String[] DepartmentAttachingRateExcelTitle = new String[]
{ "部门", "目标值-机构", "目标差距", "车险保费(万)", "车险保费占比", "非车保费(万)", "当月保费渗透率", "保费渗透率环比上月", "车险客户数", "当月客户渗透率",
"客户渗透率环比上月", "当月车非客均保费", "客均保费环比上月"};
// 机构 续保率
private static String[] DepartmentRenewalRateExcelTitle = new String[]
{ "责任部门", "机构目标值1(%)", "到期数-全月", "序时到期数占比(%)", "个车续保率(序时)(%)", "个车续保率(全月)(%)", "环比昨日(%)",
"环比上月(%)", "序时-部门内", "全月-部门内",};
@ -499,11 +502,11 @@ public final class ImportBIExcelData
double 个车续保率全月 = MyPOIUtils.getNumbericCellValue( row, 5 ) * 100;
double 环比昨日 = MyPOIUtils.getNumbericCellValue( row, 6 ) * 100;
double 环比上月 = MyPOIUtils.getNumbericCellValue( row, 7 ) * 100;
int 平均提前签单天数 = (int) MyPOIUtils.getNumbericCellValue( row, 8 );
double 环比 = MyPOIUtils.getNumbericCellValue( row, 9 ) * 100;
// int 平均提前签单天数 = (int) MyPOIUtils.getNumbericCellValue( row, 8 );
// double 环比 = MyPOIUtils.getNumbericCellValue( row, 9 ) * 100;
BIDepartmentRenewalRateRecord record = new BIDepartmentRenewalRateRecord( 责任部门,
机构目标值, 到期数全月, 序时到期数占比, 个车续保率序时, 个车续保率全月, 环比昨日, 环比上月, 平均提前签单天数, 环比 );
机构目标值, 到期数全月, 序时到期数占比, 个车续保率序时, 个车续保率全月, 环比昨日, 环比上月 );
records.add( record );
}

View File

@ -29,24 +29,23 @@
</insert>
<insert id="insertDepartmentRenewalRateDataToDB" parameterType="com.cpic.xim.mybatis.pojo.BIDepartmentRenewalRateRecord" >
insert into BI机构当月个车续保率跟踪表( "责任部门","机构目标值1(%)","到期数-全月" ,"序时到期数占比(%)","个车续保率(序时)(%)",
"个车续保率(全月)(%)","环比昨日(%)","环比上月(%)","平均提前签单天数","环比")
insert into "BI机构续保率跟踪表-24年"( "责任部门","机构目标值1(%)","到期数-全月" ,"序时到期数占比(%)","个车续保率(序时)(%)",
"个车续保率(全月)(%)","环比昨日(%)","环比上月(%)")
values (#{责任部门},#{机构目标值},#{到期数全月},#{序时到期数占比},
#{个车续保率序时},#{个车续保率全月},#{环比昨日},#{环比上月},
#{平均提前签单天数},#{环比})
#{个车续保率序时},#{个车续保率全月},#{环比昨日},#{环比上月} )
</insert>
<select id="cleanTelsalerAttachingRateData" statementType="CALLABLE">
call telsale_bi_utils.清理BI电销坐席车非渗透率跟踪表()
call TELSALE_BI_UTILS_dev.清理BI电销坐席车非渗透率跟踪表()
</select>
<select id="cleanTelsalerRenewalRateData" statementType="CALLABLE">
call telsale_bi_utils.清理BI电销坐席续保率跟踪表()
call TELSALE_BI_UTILS_dev.清理BI电销坐席续保率跟踪表()
</select>
<select id="cleanDepartmentAttachingRateData" statementType="CALLABLE">
call telsale_bi_utils.清理BI部门渗透率跟踪表()
call TELSALE_BI_UTILS_dev.清理BI部门渗透率跟踪表()
</select>
<select id="cleanDepartmentRenewalRateData" statementType="CALLABLE">
call telsale_bi_utils.清理BI部门续保率跟踪表()
call TELSALE_BI_UTILS_dev.清理BI部门续保率跟踪表()
</select>
</mapper>

View File

@ -105,7 +105,7 @@
t."环比上月(%)" as 环比上月,
t.平均提前签单天数,
t.环比
from BI机构当月个车续保率跟踪表 t
from "BI机构续保率跟踪表-24年" t
</select>
<resultMap id="BIDepartmentRenewalRate" type="com.cpic.xim.mybatis.pojo.BIDepartmentRenewalRateRecord">
<result column="责任部门" property="责任部门" jdbcType="VARCHAR" javaType="String" />
@ -116,7 +116,7 @@
<result column="个车续保率全月" property="个车续保率全月" jdbcType="DOUBLE" javaType="double" />
<result column="环比昨日" property="环比昨日" jdbcType="DOUBLE" javaType="double" />
<result column="环比上月" property="环比上月" jdbcType="DOUBLE" javaType="double" />
<result column="平均提前签单天数" property="平均提前签单天数" jdbcType="INTEGER" javaType="int" />
<result column="环比" property="环比" jdbcType="DOUBLE" javaType="double" />
<!-- <result column="平均提前签单天数" property="平均提前签单天数" jdbcType="INTEGER" javaType="int" /> -->
<!-- <result column="环比" property="环比" jdbcType="DOUBLE" javaType="double" /> -->
</resultMap>
</mapper>

View File

@ -18,6 +18,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.cpic.xim.mybatis.mapper.ImportBIArchievementDataMapper;
import com.cpic.xim.mybatis.pojo.BIDepartmentAttachingRateRecord;
import com.cpic.xim.mybatis.pojo.BIDepartmentRenewalRateRecord;
import com.cpic.xim.mybatis.pojo.BITelsalerRenewalRateRecord;
import com.cpic.xim.mybatis.utils.MybatisUtils;
import com.cpic.xim.utils.data.ImportBIExcelData;
@ -74,7 +75,7 @@ public class BatchInsertTest
@Test
public void testBatchInsertBITeslsalerRenewalRate()
{
String filePath = "D:/develop/cpicxim/deskop_task_schedule/数据/测试用/坐席-续保.xlsx";
String filePath = "D:\\develop\\cpicxim\\deskop_task_schedule\\数据\\测试用\\24年报表\\坐席-续保.xlsx";
ArrayList<BITelsalerRenewalRateRecord> records = null;
SqlSession session = null;
ImportBIArchievementDataMapper mapper = null;
@ -114,7 +115,7 @@ public class BatchInsertTest
@Test
public void testBatchInsertBIDepartmentAttachingRateToDB()
{
String filePath = "D:/develop/cpicxim/deskop_task_schedule/数据/测试用/机构渗透.xlsx";
String filePath = "D:\\develop\\cpicxim\\deskop_task_schedule\\数据\\测试用\\24年报表\\机构-续保.xlsx";
ArrayList<BIDepartmentAttachingRateRecord> records = null;
SqlSession session = null;
@ -148,4 +149,42 @@ public class BatchInsertTest
assert( false );
}
}
@Test
public void testBatchInsertBIDepartmentRenewalRateToDB()
{
String filePath = "D:\\develop\\cpicxim\\deskop_task_schedule\\数据\\测试用\\24年报表\\机构-续保.xlsx";
ArrayList<BIDepartmentRenewalRateRecord> records = null;
SqlSession session = null;
ImportBIArchievementDataMapper mapper = null;
try
{
records =
ImportBIExcelData.importBIDepartmentRenewalRateRecordsFromXlsx( filePath, 0, 1 );
session = MybatisUtils.getSqlSessionBatch();
mapper = session.getMapper( ImportBIArchievementDataMapper.class );
mapper.cleanDepartmentRenewalRateData();
for ( BIDepartmentRenewalRateRecord record : records )
{
mapper.insertDepartmentRenewalRateDataToDB( record );
}
session.commit();
}
catch ( Exception error )
{
if ( session != null )
{
session.rollback();
}
logger.error("错误", error);
assert( false );
}
}
}

Binary file not shown.

Binary file not shown.