13 Commits

20 changed files with 1458 additions and 252 deletions

View File

@@ -0,0 +1,23 @@
create or replace package Telsaler_twr_pkg is
-- Author : KANE
-- Created : 2023/11/26 18:19:22
-- Purpose : TWRϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>pkg
procedure <20><><EFBFBD><EFBFBD>TWR<57><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϯԱ<CFAF><D4B1><EFBFBD><EFBFBD>;
end Telsaler_twr_pkg;
/
create or replace package body Telsaler_twr_pkg is
procedure <20><><EFBFBD><EFBFBD>TWR<57><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϯԱ<CFAF><D4B1><EFBFBD><EFBFBD>
is
begin
execute immediate 'truncate table twr_telsaler';
end;
begin
-- Initialization
null;
end Telsaler_twr_pkg;
/

View File

@@ -154,20 +154,26 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS
BEGIN BEGIN
--<2D><>ѯ<EFBFBD><D1AF>ϯ<EFBFBD><CFAF><EFBFBD>ƣ<EFBFBD><C6A3>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD> --<2D><>ѯ<EFBFBD><D1AF>ϯ<EFBFBD><CFAF><EFBFBD>ƣ<EFBFBD><C6A3>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD>
BEGIN BEGIN
SELECT zx.saler_name, /*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 ry.<2E><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>,
bm.department_name bm.department_name
INTO l_caller_name, INTO l_caller_name,
l_department_name l_department_name
FROM tele_saler zx, FROM twr_telsaler ry,
tele_saler_team team, twr_telsaler_team team,
idst0.bm_t bm idst0.bm_t bm
WHERE zx.saler_code = a_caller_code WHERE ry.<2E>Ŷ<EFBFBD><C5B6><EFBFBD><EFBFBD><EFBFBD> = team.team_name
AND zx.team_code = team.team_code AND team.department_code = bm.department_code
AND team.department_code = bm.department_code; AND ry.<2E><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD> = a_caller_code;
/* SELECT saler_name
INTO l_caller_name
FROM tele_saler
WHERE saler_code = a_caller_code;*/
EXCEPTION EXCEPTION
-- <20><><EFBFBD><EFBFBD>û<EFBFBD>в<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ϯ<EFBFBD><CFAF><EFBFBD>ƣ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׳<EFBFBD><D7B3> -- <20><><EFBFBD><EFBFBD>û<EFBFBD>в<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ϯ<EFBFBD><CFAF><EFBFBD>ƣ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׳<EFBFBD><D7B3>
WHEN no_data_found THEN WHEN no_data_found THEN

17
code/db/twr_常用.sql Normal file
View File

@@ -0,0 +1,17 @@
select *
from twr_telsaler_team;
SELECT ry.<EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
ry.<EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
team.team_code,
team.team_name,
bm.department_code,
bm.department_name
FROM twr_telsaler ry,
twr_telsaler_team team,
idst0.bm_t bm
WHERE ry.<EFBFBD>Ŷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = team.team_name
AND team.department_code = bm.department_code
AND (ry.<EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD> = '<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>' OR ry.<EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD> = '<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>');

View File

@@ -0,0 +1,39 @@
drop table twr_telsaler;
create table twr_telsaler
(
<EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
<EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
<EFBFBD>μӹ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> varchar2(20),
<EFBFBD><EFBFBD>ְ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(20),
<EFBFBD><EFBFBD>˾<EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(20),
ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
<EFBFBD><EFBFBD><EFBFBD>ʡ varchar2(40),
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
<EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
<EFBFBD><EFBFBD><EFBFBD>θ<EFBFBD>λ varchar2(40),
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ְ<EFBFBD><EFBFBD> varchar2(40),
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
ְ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
<EFBFBD>Ŷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
<EFBFBD>Կڷֹ<EFBFBD>˾ varchar2(40),
չҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
<EFBFBD><EFBFBD>Ƹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ varchar2(40),
ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD> varchar2(40),
ѧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
<EFBFBD>ù<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
<EFBFBD><EFBFBD>ͬǩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> integer,
<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(20),
<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(20),
<EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
ְ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD> varchar2(40),
<EFBFBD><EFBFBD>Ա״̬ varchar2(40)
);

View File

@@ -0,0 +1,7 @@
drop table twr_telsaler_team;
create table twr_telsaler_team
(
team_name varchar2(40) not null,
team_code varchar2(20),
department_code varchar2(6) not null
);

View File

@@ -113,6 +113,7 @@ module.exports = {
// typescript // typescript
"@typescript-eslint/indent": ["warn", 4,], "@typescript-eslint/indent": ["warn", 4,],
"@typescript-eslint/no-explicit-any": "warn", "@typescript-eslint/no-explicit-any": "warn",
"@typescript-eslint/no-unsafe-argument": "warn",
"@typescript-eslint/no-extra-semi": "off", "@typescript-eslint/no-extra-semi": "off",
"@typescript-eslint/no-inferrable-types": "off", "@typescript-eslint/no-inferrable-types": "off",
"@typescript-eslint/no-unused-vars": "warn", "@typescript-eslint/no-unused-vars": "warn",
@@ -159,6 +160,7 @@ module.exports = {
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off", "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off", "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
"@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-unsafe-argument": "warn",
"@typescript-eslint/indent": ["error", 4,], "@typescript-eslint/indent": ["error", 4,],
"@typescript-eslint/no-extra-semi": "off", "@typescript-eslint/no-extra-semi": "off",
"@typescript-eslint/no-inferrable-types": "off", "@typescript-eslint/no-inferrable-types": "off",

View File

@@ -8,32 +8,32 @@
"name": "task_schedule", "name": "task_schedule",
"version": "0.0.0", "version": "0.0.0",
"dependencies": { "dependencies": {
"@element-plus/icons-vue": "^2.1.0", "@element-plus/icons-vue": "^2.3.1",
"echarts": "^5.4.3", "echarts": "^5.4.3",
"element-plus": "^2.4.2", "element-plus": "^2.4.3",
"mitt": "^3.0.1", "mitt": "^3.0.1",
"moment": "^2.29.4", "moment": "^2.29.4",
"sass-loader": "^13.3.2", "sass-loader": "^13.3.2",
"vue": "^3.3.8", "vue": "^3.3.11",
"vue-router": "^4.2.5", "vue-router": "^4.2.5",
"vuex": "^4.1.0" "vuex": "^4.1.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/eslint-parser": "^7.23.3", "@babel/eslint-parser": "^7.23.3",
"@rushstack/eslint-patch": "^1.5.1", "@rushstack/eslint-patch": "^1.6.0",
"@typescript-eslint/eslint-plugin": "^6.11.0", "@typescript-eslint/eslint-plugin": "^6.14.0",
"@vitejs/plugin-vue": "^4.4.1", "@vitejs/plugin-vue": "^4.5.2",
"@vue/cli-plugin-eslint": "^5.0.8", "@vue/cli-plugin-eslint": "^5.0.8",
"@vue/eslint-config-typescript": "^12.0.0", "@vue/eslint-config-typescript": "^12.0.0",
"axios": "^1.6.1", "axios": "^1.6.2",
"babel": "^6.23.0", "babel": "^6.23.0",
"eslint-config-recommended": "^4.1.0", "eslint-config-recommended": "^4.1.0",
"eslint-config-standard-with-typescript": "^39.1.1", "eslint-config-standard-with-typescript": "^42.0.0",
"eslint-plugin-vue": "^9.18.1", "eslint-plugin-vue": "^9.19.2",
"node-sass": "^9.0.0", "node-sass": "^9.0.0",
"sass": "^1.69.5", "sass": "^1.69.5",
"style-loader": "^3.3.3", "style-loader": "^3.3.3",
"ts-node": "^10.9.1", "ts-node": "^10.9.2",
"vue-eslint-parser": "^9.3.2" "vue-eslint-parser": "^9.3.2"
} }
}, },
@@ -325,9 +325,9 @@
} }
}, },
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
"version": "7.23.0", "version": "7.23.5",
"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.0.tgz", "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.5.tgz",
"integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==",
"bin": { "bin": {
"parser": "bin/babel-parser.js" "parser": "bin/babel-parser.js"
}, },
@@ -425,9 +425,9 @@
} }
}, },
"node_modules/@element-plus/icons-vue": { "node_modules/@element-plus/icons-vue": {
"version": "2.1.0", "version": "2.3.1",
"resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.1.0.tgz", "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz",
"integrity": "sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==", "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==",
"peerDependencies": { "peerDependencies": {
"vue": "^3.2.0" "vue": "^3.2.0"
} }
@@ -1157,9 +1157,9 @@
"integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==" "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
}, },
"node_modules/@rushstack/eslint-patch": { "node_modules/@rushstack/eslint-patch": {
"version": "1.5.1", "version": "1.6.0",
"resolved": "https://registry.npmmirror.com/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz", "resolved": "https://registry.npmmirror.com/@rushstack/eslint-patch/-/eslint-patch-1.6.0.tgz",
"integrity": "sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==", "integrity": "sha512-2/U3GXA6YiPYQDLGwtGlnNgKYBSwCFIHf8Y9LUY5VATHdtbLlU0Y1R3QoBnT0aB4qv/BEiVVsj7LJXoQCgJ2vA==",
"dev": true "dev": true
}, },
"node_modules/@sideway/address": { "node_modules/@sideway/address": {
@@ -1514,9 +1514,9 @@
"peer": true "peer": true
}, },
"node_modules/@types/semver": { "node_modules/@types/semver": {
"version": "7.5.5", "version": "7.5.6",
"resolved": "https://registry.npmmirror.com/@types/semver/-/semver-7.5.5.tgz", "resolved": "https://registry.npmmirror.com/@types/semver/-/semver-7.5.6.tgz",
"integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==", "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==",
"dev": true "dev": true
}, },
"node_modules/@types/send": { "node_modules/@types/send": {
@@ -1578,16 +1578,16 @@
} }
}, },
"node_modules/@typescript-eslint/eslint-plugin": { "node_modules/@typescript-eslint/eslint-plugin": {
"version": "6.11.0", "version": "6.14.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.11.0.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz",
"integrity": "sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==", "integrity": "sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/regexpp": "^4.5.1", "@eslint-community/regexpp": "^4.5.1",
"@typescript-eslint/scope-manager": "6.11.0", "@typescript-eslint/scope-manager": "6.14.0",
"@typescript-eslint/type-utils": "6.11.0", "@typescript-eslint/type-utils": "6.14.0",
"@typescript-eslint/utils": "6.11.0", "@typescript-eslint/utils": "6.14.0",
"@typescript-eslint/visitor-keys": "6.11.0", "@typescript-eslint/visitor-keys": "6.14.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"graphemer": "^1.4.0", "graphemer": "^1.4.0",
"ignore": "^5.2.4", "ignore": "^5.2.4",
@@ -1609,34 +1609,34 @@
} }
}, },
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": {
"version": "6.11.0", "version": "6.14.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz",
"integrity": "sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==", "integrity": "sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.11.0", "@typescript-eslint/types": "6.14.0",
"@typescript-eslint/visitor-keys": "6.11.0" "@typescript-eslint/visitor-keys": "6.14.0"
}, },
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^16.0.0 || >=18.0.0"
} }
}, },
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": {
"version": "6.11.0", "version": "6.14.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.11.0.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.14.0.tgz",
"integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", "integrity": "sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^16.0.0 || >=18.0.0"
} }
}, },
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": {
"version": "6.11.0", "version": "6.14.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz",
"integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", "integrity": "sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.11.0", "@typescript-eslint/types": "6.14.0",
"eslint-visitor-keys": "^3.4.1" "eslint-visitor-keys": "^3.4.1"
}, },
"engines": { "engines": {
@@ -1723,13 +1723,13 @@
} }
}, },
"node_modules/@typescript-eslint/type-utils": { "node_modules/@typescript-eslint/type-utils": {
"version": "6.11.0", "version": "6.14.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.14.0.tgz",
"integrity": "sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==", "integrity": "sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/typescript-estree": "6.11.0", "@typescript-eslint/typescript-estree": "6.14.0",
"@typescript-eslint/utils": "6.11.0", "@typescript-eslint/utils": "6.14.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"ts-api-utils": "^1.0.1" "ts-api-utils": "^1.0.1"
}, },
@@ -1746,22 +1746,22 @@
} }
}, },
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": {
"version": "6.11.0", "version": "6.14.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.11.0.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.14.0.tgz",
"integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", "integrity": "sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^16.0.0 || >=18.0.0"
} }
}, },
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": {
"version": "6.11.0", "version": "6.14.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz",
"integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==", "integrity": "sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.11.0", "@typescript-eslint/types": "6.14.0",
"@typescript-eslint/visitor-keys": "6.11.0", "@typescript-eslint/visitor-keys": "6.14.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"globby": "^11.1.0", "globby": "^11.1.0",
"is-glob": "^4.0.3", "is-glob": "^4.0.3",
@@ -1778,12 +1778,12 @@
} }
}, },
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": {
"version": "6.11.0", "version": "6.14.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz",
"integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", "integrity": "sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.11.0", "@typescript-eslint/types": "6.14.0",
"eslint-visitor-keys": "^3.4.1" "eslint-visitor-keys": "^3.4.1"
}, },
"engines": { "engines": {
@@ -1898,17 +1898,17 @@
"dev": true "dev": true
}, },
"node_modules/@typescript-eslint/utils": { "node_modules/@typescript-eslint/utils": {
"version": "6.11.0", "version": "6.14.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.11.0.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.14.0.tgz",
"integrity": "sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==", "integrity": "sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.4.0", "@eslint-community/eslint-utils": "^4.4.0",
"@types/json-schema": "^7.0.12", "@types/json-schema": "^7.0.12",
"@types/semver": "^7.5.0", "@types/semver": "^7.5.0",
"@typescript-eslint/scope-manager": "6.11.0", "@typescript-eslint/scope-manager": "6.14.0",
"@typescript-eslint/types": "6.11.0", "@typescript-eslint/types": "6.14.0",
"@typescript-eslint/typescript-estree": "6.11.0", "@typescript-eslint/typescript-estree": "6.14.0",
"semver": "^7.5.4" "semver": "^7.5.4"
}, },
"engines": { "engines": {
@@ -1919,35 +1919,35 @@
} }
}, },
"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": {
"version": "6.11.0", "version": "6.14.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz",
"integrity": "sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==", "integrity": "sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.11.0", "@typescript-eslint/types": "6.14.0",
"@typescript-eslint/visitor-keys": "6.11.0" "@typescript-eslint/visitor-keys": "6.14.0"
}, },
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^16.0.0 || >=18.0.0"
} }
}, },
"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": {
"version": "6.11.0", "version": "6.14.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.11.0.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.14.0.tgz",
"integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", "integrity": "sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^16.0.0 || >=18.0.0"
} }
}, },
"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": {
"version": "6.11.0", "version": "6.14.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz",
"integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==", "integrity": "sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.11.0", "@typescript-eslint/types": "6.14.0",
"@typescript-eslint/visitor-keys": "6.11.0", "@typescript-eslint/visitor-keys": "6.14.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"globby": "^11.1.0", "globby": "^11.1.0",
"is-glob": "^4.0.3", "is-glob": "^4.0.3",
@@ -1964,12 +1964,12 @@
} }
}, },
"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": {
"version": "6.11.0", "version": "6.14.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz",
"integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", "integrity": "sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.11.0", "@typescript-eslint/types": "6.14.0",
"eslint-visitor-keys": "^3.4.1" "eslint-visitor-keys": "^3.4.1"
}, },
"engines": { "engines": {
@@ -2041,15 +2041,15 @@
} }
}, },
"node_modules/@vitejs/plugin-vue": { "node_modules/@vitejs/plugin-vue": {
"version": "4.4.1", "version": "4.5.2",
"resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.4.1.tgz", "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.5.2.tgz",
"integrity": "sha512-HCQG8VDFDM7YDAdcj5QI5DvUi+r6xvo9LgvYdk7LSkUNwdpempdB5horkMSZsbdey9Ywsf5aaU8kEPw9M5kREA==", "integrity": "sha512-UGR3DlzLi/SaVBPX0cnSyE37vqxU3O6chn8l0HJNzQzDia6/Au2A4xKv+iIJW8w2daf80G7TYHhi1pAUjdZ0bQ==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^14.18.0 || >=16.0.0" "node": "^14.18.0 || >=16.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"vite": "^4.0.0", "vite": "^4.0.0 || ^5.0.0",
"vue": "^3.2.25" "vue": "^3.2.25"
} }
}, },
@@ -2318,49 +2318,49 @@
"dev": true "dev": true
}, },
"node_modules/@vue/compiler-core": { "node_modules/@vue/compiler-core": {
"version": "3.3.8", "version": "3.3.11",
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.8.tgz", "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.11.tgz",
"integrity": "sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g==", "integrity": "sha512-h97/TGWBilnLuRaj58sxNrsUU66fwdRKLOLQ9N/5iNDfp+DZhYH9Obhe0bXxhedl8fjAgpRANpiZfbgWyruQ0w==",
"dependencies": { "dependencies": {
"@babel/parser": "^7.23.0", "@babel/parser": "^7.23.5",
"@vue/shared": "3.3.8", "@vue/shared": "3.3.11",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"source-map-js": "^1.0.2" "source-map-js": "^1.0.2"
} }
}, },
"node_modules/@vue/compiler-dom": { "node_modules/@vue/compiler-dom": {
"version": "3.3.8", "version": "3.3.11",
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.8.tgz", "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.11.tgz",
"integrity": "sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ==", "integrity": "sha512-zoAiUIqSKqAJ81WhfPXYmFGwDRuO+loqLxvXmfUdR5fOitPoUiIeFI9cTTyv9MU5O1+ZZglJVTusWzy+wfk5hw==",
"dependencies": { "dependencies": {
"@vue/compiler-core": "3.3.8", "@vue/compiler-core": "3.3.11",
"@vue/shared": "3.3.8" "@vue/shared": "3.3.11"
} }
}, },
"node_modules/@vue/compiler-sfc": { "node_modules/@vue/compiler-sfc": {
"version": "3.3.8", "version": "3.3.11",
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.8.tgz", "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.11.tgz",
"integrity": "sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA==", "integrity": "sha512-U4iqPlHO0KQeK1mrsxCN0vZzw43/lL8POxgpzcJweopmqtoYy9nljJzWDIQS3EfjiYhfdtdk9Gtgz7MRXnz3GA==",
"dependencies": { "dependencies": {
"@babel/parser": "^7.23.0", "@babel/parser": "^7.23.5",
"@vue/compiler-core": "3.3.8", "@vue/compiler-core": "3.3.11",
"@vue/compiler-dom": "3.3.8", "@vue/compiler-dom": "3.3.11",
"@vue/compiler-ssr": "3.3.8", "@vue/compiler-ssr": "3.3.11",
"@vue/reactivity-transform": "3.3.8", "@vue/reactivity-transform": "3.3.11",
"@vue/shared": "3.3.8", "@vue/shared": "3.3.11",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"magic-string": "^0.30.5", "magic-string": "^0.30.5",
"postcss": "^8.4.31", "postcss": "^8.4.32",
"source-map-js": "^1.0.2" "source-map-js": "^1.0.2"
} }
}, },
"node_modules/@vue/compiler-ssr": { "node_modules/@vue/compiler-ssr": {
"version": "3.3.8", "version": "3.3.11",
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.8.tgz", "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.11.tgz",
"integrity": "sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w==", "integrity": "sha512-Zd66ZwMvndxRTgVPdo+muV4Rv9n9DwQ4SSgWWKWkPFebHQfVYRrVjeygmmDmPewsHyznCNvJ2P2d6iOOhdv8Qg==",
"dependencies": { "dependencies": {
"@vue/compiler-dom": "3.3.8", "@vue/compiler-dom": "3.3.11",
"@vue/shared": "3.3.8" "@vue/shared": "3.3.11"
} }
}, },
"node_modules/@vue/component-compiler-utils": { "node_modules/@vue/component-compiler-utils": {
@@ -2459,60 +2459,60 @@
} }
}, },
"node_modules/@vue/reactivity": { "node_modules/@vue/reactivity": {
"version": "3.3.8", "version": "3.3.11",
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.8.tgz", "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.11.tgz",
"integrity": "sha512-ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw==", "integrity": "sha512-D5tcw091f0nuu+hXq5XANofD0OXnBmaRqMYl5B3fCR+mX+cXJIGNw/VNawBqkjLNWETrFW0i+xH9NvDbTPVh7g==",
"dependencies": { "dependencies": {
"@vue/shared": "3.3.8" "@vue/shared": "3.3.11"
} }
}, },
"node_modules/@vue/reactivity-transform": { "node_modules/@vue/reactivity-transform": {
"version": "3.3.8", "version": "3.3.11",
"resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.8.tgz", "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.11.tgz",
"integrity": "sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw==", "integrity": "sha512-fPGjH0wqJo68A0wQ1k158utDq/cRyZNlFoxGwNScE28aUFOKFEnCBsvyD8jHn+0kd0UKVpuGuaZEQ6r9FJRqCg==",
"dependencies": { "dependencies": {
"@babel/parser": "^7.23.0", "@babel/parser": "^7.23.5",
"@vue/compiler-core": "3.3.8", "@vue/compiler-core": "3.3.11",
"@vue/shared": "3.3.8", "@vue/shared": "3.3.11",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"magic-string": "^0.30.5" "magic-string": "^0.30.5"
} }
}, },
"node_modules/@vue/runtime-core": { "node_modules/@vue/runtime-core": {
"version": "3.3.8", "version": "3.3.11",
"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.8.tgz", "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.11.tgz",
"integrity": "sha512-qurzOlb6q26KWQ/8IShHkMDOuJkQnQcTIp1sdP4I9MbCf9FJeGVRXJFr2mF+6bXh/3Zjr9TDgURXrsCr9bfjUw==", "integrity": "sha512-g9ztHGwEbS5RyWaOpXuyIVFTschclnwhqEbdy5AwGhYOgc7m/q3NFwr50MirZwTTzX55JY8pSkeib9BX04NIpw==",
"dependencies": { "dependencies": {
"@vue/reactivity": "3.3.8", "@vue/reactivity": "3.3.11",
"@vue/shared": "3.3.8" "@vue/shared": "3.3.11"
} }
}, },
"node_modules/@vue/runtime-dom": { "node_modules/@vue/runtime-dom": {
"version": "3.3.8", "version": "3.3.11",
"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.8.tgz", "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.11.tgz",
"integrity": "sha512-Noy5yM5UIf9UeFoowBVgghyGGPIDPy1Qlqt0yVsUdAVbqI8eeMSsTqBtauaEoT2UFXUk5S64aWVNJN4MJ2vRdA==", "integrity": "sha512-OlhtV1PVpbgk+I2zl+Y5rQtDNcCDs12rsRg71XwaA2/Rbllw6mBLMi57VOn8G0AjOJ4Mdb4k56V37+g8ukShpQ==",
"dependencies": { "dependencies": {
"@vue/runtime-core": "3.3.8", "@vue/runtime-core": "3.3.11",
"@vue/shared": "3.3.8", "@vue/shared": "3.3.11",
"csstype": "^3.1.2" "csstype": "^3.1.2"
} }
}, },
"node_modules/@vue/server-renderer": { "node_modules/@vue/server-renderer": {
"version": "3.3.8", "version": "3.3.11",
"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.8.tgz", "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.11.tgz",
"integrity": "sha512-zVCUw7RFskvPuNlPn/8xISbrf0zTWsTSdYTsUTN1ERGGZGVnRxM2QZ3x1OR32+vwkkCm0IW6HmJ49IsPm7ilLg==", "integrity": "sha512-AIWk0VwwxCAm4wqtJyxBylRTXSy1wCLOKbWxHaHiu14wjsNYtiRCSgVuqEPVuDpErOlRdNnuRgipQfXRLjLN5A==",
"dependencies": { "dependencies": {
"@vue/compiler-ssr": "3.3.8", "@vue/compiler-ssr": "3.3.11",
"@vue/shared": "3.3.8" "@vue/shared": "3.3.11"
}, },
"peerDependencies": { "peerDependencies": {
"vue": "3.3.8" "vue": "3.3.11"
} }
}, },
"node_modules/@vue/shared": { "node_modules/@vue/shared": {
"version": "3.3.8", "version": "3.3.11",
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.8.tgz", "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.11.tgz",
"integrity": "sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==" "integrity": "sha512-u2G8ZQ9IhMWTMXaWqZycnK4UthG1fA238CD+DP4Dm4WJi5hdUKKLg0RMRaRpDPNMdkTwIDkp7WtD0Rd9BH9fLw=="
}, },
"node_modules/@vue/vue-loader-v15": { "node_modules/@vue/vue-loader-v15": {
"name": "vue-loader", "name": "vue-loader",
@@ -3248,9 +3248,9 @@
} }
}, },
"node_modules/axios": { "node_modules/axios": {
"version": "1.6.1", "version": "1.6.2",
"resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.1.tgz", "resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.2.tgz",
"integrity": "sha512-vfBmhDpKafglh0EldBEbVuoe7DyAavGSLWhuSm5ZSEKQnHhBf0xAAwybbNH1IkrJNGnS/VG4I5yxig1pCEXE4g==", "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"follow-redirects": "^1.15.0", "follow-redirects": "^1.15.0",
@@ -4560,9 +4560,9 @@
} }
}, },
"node_modules/csstype": { "node_modules/csstype": {
"version": "3.1.2", "version": "3.1.3",
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz", "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
}, },
"node_modules/dayjs": { "node_modules/dayjs": {
"version": "1.11.10", "version": "1.11.10",
@@ -4962,12 +4962,12 @@
"integrity": "sha512-UdREXMXzLkREF4jA8t89FQjA8WHI6ssP38PMY4/4KhXFQbtImnghh4GkCgrtiZwLKUKVD2iTVXvDVQjfomEQuA==" "integrity": "sha512-UdREXMXzLkREF4jA8t89FQjA8WHI6ssP38PMY4/4KhXFQbtImnghh4GkCgrtiZwLKUKVD2iTVXvDVQjfomEQuA=="
}, },
"node_modules/element-plus": { "node_modules/element-plus": {
"version": "2.4.2", "version": "2.4.3",
"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.4.2.tgz", "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.4.3.tgz",
"integrity": "sha512-E/HwXX7JF1LPvQSjs0fZ8WblIoc0quoXsRXQZiL7QDq7xJdNGSUaXtdk7xiEv7axPmLfEFtxE5du9fFspDrmJw==", "integrity": "sha512-b3q26j+lM4SBqiyzw8HybybGnP2pk4MWgrnzzzYW5qKQUgV6EG1Zg7nMCfgCVccI8tNvZoTiUHb2mFaiB9qT8w==",
"dependencies": { "dependencies": {
"@ctrl/tinycolor": "^3.4.1", "@ctrl/tinycolor": "^3.4.1",
"@element-plus/icons-vue": "^2.0.6", "@element-plus/icons-vue": "^2.3.1",
"@floating-ui/dom": "^1.0.1", "@floating-ui/dom": "^1.0.1",
"@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
"@types/lodash": "^4.14.182", "@types/lodash": "^4.14.182",
@@ -6777,9 +6777,9 @@
} }
}, },
"node_modules/eslint-config-standard-with-typescript": { "node_modules/eslint-config-standard-with-typescript": {
"version": "39.1.1", "version": "42.0.0",
"resolved": "https://registry.npmmirror.com/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-39.1.1.tgz", "resolved": "https://registry.npmmirror.com/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-42.0.0.tgz",
"integrity": "sha512-t6B5Ep8E4I18uuoYeYxINyqcXb2UbC0SOOTxRtBSt2JUs+EzeXbfe2oaiPs71AIdnoWhXDO2fYOHz8df3kV84A==", "integrity": "sha512-m1/2g/Sicun1uFZOFigJVeOqo9fE7OkMsNtilcpHwdCdcGr21qsGqYiyxYSvvHfJwY7w5OTQH0hxk8sM2N5Ohg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/parser": "^6.4.0", "@typescript-eslint/parser": "^6.4.0",
@@ -7060,9 +7060,9 @@
} }
}, },
"node_modules/eslint-plugin-vue": { "node_modules/eslint-plugin-vue": {
"version": "9.18.1", "version": "9.19.2",
"resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.18.1.tgz", "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.19.2.tgz",
"integrity": "sha512-7hZFlrEgg9NIzuVik2I9xSnJA5RsmOfueYgsUGUokEDLJ1LHtxO0Pl4duje1BriZ/jDWb+44tcIlC3yi0tdlZg==", "integrity": "sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.4.0", "@eslint-community/eslint-utils": "^4.4.0",
@@ -10492,9 +10492,9 @@
"devOptional": true "devOptional": true
}, },
"node_modules/nanoid": { "node_modules/nanoid": {
"version": "3.3.6", "version": "3.3.7",
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz", "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz",
"integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
"bin": { "bin": {
"nanoid": "bin/nanoid.cjs" "nanoid": "bin/nanoid.cjs"
}, },
@@ -11572,11 +11572,11 @@
} }
}, },
"node_modules/postcss": { "node_modules/postcss": {
"version": "8.4.31", "version": "8.4.32",
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.31.tgz", "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.32.tgz",
"integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==",
"dependencies": { "dependencies": {
"nanoid": "^3.3.6", "nanoid": "^3.3.7",
"picocolors": "^1.0.0", "picocolors": "^1.0.0",
"source-map-js": "^1.0.2" "source-map-js": "^1.0.2"
}, },
@@ -14037,9 +14037,9 @@
} }
}, },
"node_modules/ts-node": { "node_modules/ts-node": {
"version": "10.9.1", "version": "10.9.2",
"resolved": "https://registry.npmmirror.com/ts-node/-/ts-node-10.9.1.tgz", "resolved": "https://registry.npmmirror.com/ts-node/-/ts-node-10.9.2.tgz",
"integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@cspotcode/source-map-support": "^0.8.0", "@cspotcode/source-map-support": "^0.8.0",
@@ -14412,15 +14412,15 @@
} }
}, },
"node_modules/vue": { "node_modules/vue": {
"version": "3.3.8", "version": "3.3.11",
"resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.8.tgz", "resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.11.tgz",
"integrity": "sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w==", "integrity": "sha512-d4oBctG92CRO1cQfVBZp6WJAs0n8AK4Xf5fNjQCBeKCvMI1efGQ5E3Alt1slFJS9fZuPcFoiAiqFvQlv1X7t/w==",
"dependencies": { "dependencies": {
"@vue/compiler-dom": "3.3.8", "@vue/compiler-dom": "3.3.11",
"@vue/compiler-sfc": "3.3.8", "@vue/compiler-sfc": "3.3.11",
"@vue/runtime-dom": "3.3.8", "@vue/runtime-dom": "3.3.11",
"@vue/server-renderer": "3.3.8", "@vue/server-renderer": "3.3.11",
"@vue/shared": "3.3.8" "@vue/shared": "3.3.11"
}, },
"peerDependencies": { "peerDependencies": {
"typescript": "*" "typescript": "*"

View File

@@ -9,32 +9,32 @@
"preview": "vite preview" "preview": "vite preview"
}, },
"dependencies": { "dependencies": {
"@element-plus/icons-vue": "^2.1.0", "@element-plus/icons-vue": "^2.3.1",
"echarts": "^5.4.3", "echarts": "^5.4.3",
"element-plus": "^2.4.2", "element-plus": "^2.4.3",
"mitt": "^3.0.1", "mitt": "^3.0.1",
"moment": "^2.29.4", "moment": "^2.29.4",
"sass-loader": "^13.3.2", "sass-loader": "^13.3.2",
"vue": "^3.3.8", "vue": "^3.3.11",
"vue-router": "^4.2.5", "vue-router": "^4.2.5",
"vuex": "^4.1.0" "vuex": "^4.1.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/eslint-parser": "^7.23.3", "@babel/eslint-parser": "^7.23.3",
"@rushstack/eslint-patch": "^1.5.1", "@rushstack/eslint-patch": "^1.6.0",
"@typescript-eslint/eslint-plugin": "^6.11.0", "@typescript-eslint/eslint-plugin": "^6.14.0",
"@vitejs/plugin-vue": "^4.4.1", "@vitejs/plugin-vue": "^4.5.2",
"@vue/cli-plugin-eslint": "^5.0.8", "@vue/cli-plugin-eslint": "^5.0.8",
"@vue/eslint-config-typescript": "^12.0.0", "@vue/eslint-config-typescript": "^12.0.0",
"axios": "^1.6.1", "axios": "^1.6.2",
"babel": "^6.23.0", "babel": "^6.23.0",
"eslint-config-recommended": "^4.1.0", "eslint-config-recommended": "^4.1.0",
"eslint-config-standard-with-typescript": "^39.1.1", "eslint-config-standard-with-typescript": "^42.0.0",
"eslint-plugin-vue": "^9.18.1", "eslint-plugin-vue": "^9.19.2",
"node-sass": "^9.0.0", "node-sass": "^9.0.0",
"sass": "^1.69.5", "sass": "^1.69.5",
"style-loader": "^3.3.3", "style-loader": "^3.3.3",
"ts-node": "^10.9.1", "ts-node": "^10.9.2",
"vue-eslint-parser": "^9.3.2" "vue-eslint-parser": "^9.3.2"
} }
} }

View File

@@ -46,7 +46,7 @@
</div> </div>
<el-upload <el-upload
drag drag
action="http://222.76.244.118:11101/desktop_archievement_backend/file/file-upload.do" :action="ui.urlFileUpload"
name="files" name="files"
:show-file-list="false" :show-file-list="false"
:data="ui.uploadParameters" :data="ui.uploadParameters"
@@ -62,7 +62,7 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { reactive, ref, onBeforeMount } from "vue"; import { reactive, onBeforeMount } from "vue";
import { import {
type BIReportType, type BIReportType,
type ImportBIReportRequest, type ImportBIReportRequest,
@@ -70,6 +70,7 @@ import {
type ImportBIReportResponseHandler, type ImportBIReportResponseHandler,
importBIReport importBIReport
} from "@/utils/BIReport.js"; } from "@/utils/BIReport.js";
import { API_URL } from "@/utils/api/config.js";
import { type FileUploadResponse } from "@/utils/fileUpload.js"; import { type FileUploadResponse } from "@/utils/fileUpload.js";
// import { UploadFilled } from "@element-plus/icons-vue"; // import { UploadFilled } from "@element-plus/icons-vue";
import { type UploadProps, type UploadFile, type UploadFiles, ElMessage, ElMessageBox } from "element-plus"; import { type UploadProps, type UploadFile, type UploadFiles, ElMessage, ElMessageBox } from "element-plus";
@@ -84,6 +85,7 @@ interface UI
hasCaption: boolean, hasCaption: boolean,
uploadParameters: any, uploadParameters: any,
showFileList: boolean, showFileList: boolean,
urlFileUpload: string,
} }
export default { export default {
@@ -118,12 +120,13 @@ export default {
reportTypeName: "当月个车续保率跟踪报表【机构】", reportTypeName: "当月个车续保率跟踪报表【机构】",
},], },],
sheetIndex: 0, sheetIndex: 0,
firstRow: 2, firstRow: 1,
hasCaption: true, hasCaption: true,
uploadParameters: { uploadParameters: {
"task-name": "1234", "task-name": "1234",
}, },
showFileList: false, showFileList: false,
urlFileUpload: API_URL.URL_UPLOAD_FILE,
}); });
/** /**

View File

@@ -14,6 +14,7 @@
<el-button <el-button
type="warning" type="warning"
icon="upload" icon="upload"
@click="showUploadFileDialog"
> >
上传 上传
</el-button> </el-button>
@@ -96,6 +97,20 @@
@size-change="onTablePageSizeChange" @size-change="onTablePageSizeChange"
/> />
</div> </div>
<div
class="upload-dialog-wrapper"
>
<el-dialog
v-model="ui.showUploadDialog"
title="上传报表"
width="600px"
:close-on-click-modal="false"
:close-on-press-escape="false"
:show-close="true"
>
<BiDataUploadView :report-type="3" />
</el-dialog>
</div>
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
@@ -107,11 +122,12 @@ import {
queryDepartmentRenewalRateData queryDepartmentRenewalRateData
} from "@/utils/BIReport.js"; } from "@/utils/BIReport.js";
import { ElMessageBox, ElMessage } from "element-plus"; import { ElMessageBox, ElMessage } from "element-plus";
import BiDataUploadView from "@/views/data/bi/BiDataUploadView.vue";
interface UI interface UI
{ {
showUI: boolean; showUI: boolean;
showUploadFileDialog: boolean; showUploadDialog: boolean;
tablePageSize: number; tablePageSize: number;
tableCurrentPageIndex: number; tableCurrentPageIndex: number;
BIDepartmentRenewalRateData: BIDepartmentRenewalRateRecord[]; BIDepartmentRenewalRateData: BIDepartmentRenewalRateRecord[];
@@ -119,11 +135,12 @@ interface UI
export default { export default {
name: "DepartmentRenewalRateView", name: "DepartmentRenewalRateView",
components: { BiDataUploadView, },
setup() setup()
{ {
const ui: UI = reactive({ const ui: UI = reactive({
showUI: true, showUI: true,
showUploadFileDialog: false, showUploadDialog: false,
tablePageSize: 10, tablePageSize: 10,
tableCurrentPageIndex: 1, tableCurrentPageIndex: 1,
BIDepartmentRenewalRateData: [], BIDepartmentRenewalRateData: [],
@@ -183,6 +200,11 @@ export default {
} }
}; };
const showUploadFileDialog = (): void =>
{
ui.showUploadDialog = true;
};
onBeforeMount((): void => onBeforeMount((): void =>
{ {
refresh(); refresh();
@@ -197,6 +219,7 @@ export default {
ui, ui,
onCurrentPageIndexChange, onCurrentPageIndexChange,
onTablePageSizeChange, onTablePageSizeChange,
showUploadFileDialog,
// 计算变量 // 计算变量
tableData, tableData,
refresh, refresh,

View File

@@ -0,0 +1,20 @@
/*
* @Author: Kane
* @Date: 2023-11-25 18:48:11
* @LastEditors: Kane
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/TWrTelsalerMapper.java
* @Description:
*
* Copyright (c) ${2023} by Kane, All Rights Reserved.
*/
package com.cpic.xim.mybatis.mapper;
import org.apache.ibatis.annotations.Param;
import com.cpic.xim.mybatis.pojo.TWrTelsalerRecord;
public interface TWrTelsalerMapper
{
public TWrTelsalerRecord queryTWrTelsalerInfo( @Param("telsaler") String telsaler );
public void insertTWrTelsalerRecordToDB( TWrTelsalerRecord record );
}

View File

@@ -0,0 +1,755 @@
/*
* @Author: Kane
* @Date: 2023-11-24 14:34:16
* @LastEditors: Kane
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/TwrTelsalerRecord.java
* @Description:
*
* Copyright (c) ${2023} by Kane, All Rights Reserved.
*/
package com.cpic.xim.mybatis.pojo;
public class TWrTelsalerRecord
{
private String 人员姓名;
private String 人员工号;
private String 籍贯;
private String 参加工作时间;
private String 入职日期;
private String 入司日期;
private String 业务类型;
private String 办公地省;
private String 办公地市;
private String 人员类别;
private String 现任岗位;
private String 现任职级;
private String 机构名称;
private String 职场分类;
private String 片区名称;
private String 团队名称;
private String 对口分公司;
private String 展业地区;
private String 招聘渠道;
private String 渠道明细;
private String 全日制最高学历;
private String 学历类型;
private String 用工性质名称;
private String 合同种类;
private String 合同类型;
private String 合同性质;
private int 合同签订次数;
private String 合同生效日期;
private String 合同到期日期;
private String 人员属性;
private String 保代员工号;
private String 职场属性;
private String 办公性质;
private String 保代人员属性;
private String 人员状态;
public TWrTelsalerRecord( String 人员姓名, String 人员工号, String 籍贯, String 参加工作时间, String 入职日期,
String 入司日期, String 业务类型, String 办公地省, String 办公地市, String 人员类别, String 现任岗位,
String 现任职级, String 机构名称, String 职场分类, String 片区名称, String 团队名称, String 对口分公司,
String 展业地区, String 招聘渠道, String 渠道明细, String 全日制最高学历, String 学历类型, String 用工性质名称,
String 合同种类, String 合同类型, String 合同性质, int 合同签订次数, String 合同生效日期, String 合同到期日期,
String 人员属性, String 保代员工号, String 职场属性, String 办公性质, String 保代人员属性, String 人员状态 )
{
this.人员姓名 = 人员姓名;
this.人员工号 = 人员工号;
this.籍贯 = 籍贯;
this.参加工作时间 = 参加工作时间;
this.入职日期 = 入职日期;
this.入司日期 = 入司日期;
this.业务类型 = 业务类型;
this.办公地省 = 办公地省;
this.办公地市 = 办公地市;
this.人员类别 = 人员类别;
this.现任岗位 = 现任岗位;
this.现任职级 = 现任职级;
this.机构名称 = 机构名称;
this.职场分类 = 职场分类;
this.片区名称 = 片区名称;
this.团队名称 = 团队名称;
this.对口分公司 = 对口分公司;
this.展业地区 = 展业地区;
this.招聘渠道 = 招聘渠道;
this.渠道明细 = 渠道明细;
this.全日制最高学历 = 全日制最高学历;
this.学历类型 = 学历类型;
this.用工性质名称 = 用工性质名称;
this.合同种类 = 合同种类;
this.合同类型 = 合同类型;
this.合同性质 = 合同性质;
this.合同签订次数 = 合同签订次数;
this.合同生效日期 = 合同生效日期;
this.合同到期日期 = 合同到期日期;
this.人员属性 = 人员属性;
this.保代员工号 = 保代员工号;
this.职场属性 = 职场属性;
this.办公性质 = 办公性质;
this.保代人员属性 = 保代人员属性;
this.人员状态 = 人员状态;
}
@Override
public String toString()
{
return "TWrTelsalerRecord [人员姓名=" + 人员姓名 + ", 人员工号=" + 人员工号 + ", 籍贯=" + 籍贯 + ", 参加工作时间="
+ 参加工作时间 + ", 入职日期=" + 入职日期 + ", 入司日期=" + 入司日期 + ", 业务类型=" + 业务类型 + ", 办公地省=" + 办公地省
+ ", 办公地市=" + 办公地市 + ", 人员类别=" + 人员类别 + ", 现任岗位=" + 现任岗位 + ", 现任职级=" + 现任职级
+ ", 机构名称=" + 机构名称 + ", 职场分类=" + 职场分类 + ", 片区名称=" + 片区名称 + ", 团队名称=" + 团队名称
+ ", 对口分公司=" + 对口分公司 + ", 展业地区=" + 展业地区 + ", 招聘渠道=" + 招聘渠道 + ", 渠道明细=" + 渠道明细
+ ", 全日制最高学历=" + 全日制最高学历 + ", 学历类型=" + 学历类型 + ", 用工性质名称=" + 用工性质名称 + ", 合同种类="
+ 合同种类 + ", 合同类型=" + 合同类型 + ", 合同性质=" + 合同性质 + ", 合同签订次数=" + 合同签订次数 + ", 合同生效日期="
+ 合同生效日期 + ", 合同到期日期=" + 合同到期日期 + ", 人员属性=" + 人员属性 + ", 保代员工号=" + 保代员工号 + ", 职场属性="
+ 职场属性 + ", 办公性质=" + 办公性质 + ", 保代人员属性=" + 保代人员属性 + ", 人员状态=" + 人员状态 + "]";
}
@Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + ((人员姓名 == null) ? 0 : 人员姓名.hashCode());
result = prime * result + ((人员工号 == null) ? 0 : 人员工号.hashCode());
result = prime * result + ((籍贯 == null) ? 0 : 籍贯.hashCode());
result = prime * result + ((参加工作时间 == null) ? 0 : 参加工作时间.hashCode());
result = prime * result + ((入职日期 == null) ? 0 : 入职日期.hashCode());
result = prime * result + ((入司日期 == null) ? 0 : 入司日期.hashCode());
result = prime * result + ((业务类型 == null) ? 0 : 业务类型.hashCode());
result = prime * result + ((办公地省 == null) ? 0 : 办公地省.hashCode());
result = prime * result + ((办公地市 == null) ? 0 : 办公地市.hashCode());
result = prime * result + ((人员类别 == null) ? 0 : 人员类别.hashCode());
result = prime * result + ((现任岗位 == null) ? 0 : 现任岗位.hashCode());
result = prime * result + ((现任职级 == null) ? 0 : 现任职级.hashCode());
result = prime * result + ((机构名称 == null) ? 0 : 机构名称.hashCode());
result = prime * result + ((职场分类 == null) ? 0 : 职场分类.hashCode());
result = prime * result + ((片区名称 == null) ? 0 : 片区名称.hashCode());
result = prime * result + ((团队名称 == null) ? 0 : 团队名称.hashCode());
result = prime * result + ((对口分公司 == null) ? 0 : 对口分公司.hashCode());
result = prime * result + ((展业地区 == null) ? 0 : 展业地区.hashCode());
result = prime * result + ((招聘渠道 == null) ? 0 : 招聘渠道.hashCode());
result = prime * result + ((渠道明细 == null) ? 0 : 渠道明细.hashCode());
result = prime * result + ((全日制最高学历 == null) ? 0 : 全日制最高学历.hashCode());
result = prime * result + ((学历类型 == null) ? 0 : 学历类型.hashCode());
result = prime * result + ((用工性质名称 == null) ? 0 : 用工性质名称.hashCode());
result = prime * result + ((合同种类 == null) ? 0 : 合同种类.hashCode());
result = prime * result + ((合同类型 == null) ? 0 : 合同类型.hashCode());
result = prime * result + ((合同性质 == null) ? 0 : 合同性质.hashCode());
result = prime * result + 合同签订次数;
result = prime * result + ((合同生效日期 == null) ? 0 : 合同生效日期.hashCode());
result = prime * result + ((合同到期日期 == null) ? 0 : 合同到期日期.hashCode());
result = prime * result + ((人员属性 == null) ? 0 : 人员属性.hashCode());
result = prime * result + ((保代员工号 == null) ? 0 : 保代员工号.hashCode());
result = prime * result + ((职场属性 == null) ? 0 : 职场属性.hashCode());
result = prime * result + ((办公性质 == null) ? 0 : 办公性质.hashCode());
result = prime * result + ((保代人员属性 == null) ? 0 : 保代人员属性.hashCode());
result = prime * result + ((人员状态 == null) ? 0 : 人员状态.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;
TWrTelsalerRecord other = (TWrTelsalerRecord) obj;
if ( 人员姓名 == null )
{
if ( other.人员姓名 != null )
return false;
}
else if ( !人员姓名.equals( other.人员姓名 ) )
return false;
if ( 人员工号 == null )
{
if ( other.人员工号 != null )
return false;
}
else if ( !人员工号.equals( other.人员工号 ) )
return false;
if ( 籍贯 == null )
{
if ( other.籍贯 != null )
return false;
}
else if ( !籍贯.equals( other.籍贯 ) )
return false;
if ( 参加工作时间 == null )
{
if ( other.参加工作时间 != null )
return false;
}
else if ( !参加工作时间.equals( other.参加工作时间 ) )
return false;
if ( 入职日期 == null )
{
if ( other.入职日期 != null )
return false;
}
else if ( !入职日期.equals( other.入职日期 ) )
return false;
if ( 入司日期 == null )
{
if ( other.入司日期 != null )
return false;
}
else if ( !入司日期.equals( other.入司日期 ) )
return false;
if ( 业务类型 == null )
{
if ( other.业务类型 != null )
return false;
}
else if ( !业务类型.equals( other.业务类型 ) )
return false;
if ( 办公地省 == null )
{
if ( other.办公地省 != null )
return false;
}
else if ( !办公地省.equals( other.办公地省 ) )
return false;
if ( 办公地市 == null )
{
if ( other.办公地市 != null )
return false;
}
else if ( !办公地市.equals( other.办公地市 ) )
return false;
if ( 人员类别 == null )
{
if ( other.人员类别 != null )
return false;
}
else if ( !人员类别.equals( other.人员类别 ) )
return false;
if ( 现任岗位 == null )
{
if ( other.现任岗位 != null )
return false;
}
else if ( !现任岗位.equals( other.现任岗位 ) )
return false;
if ( 现任职级 == null )
{
if ( other.现任职级 != null )
return false;
}
else if ( !现任职级.equals( other.现任职级 ) )
return false;
if ( 机构名称 == null )
{
if ( other.机构名称 != null )
return false;
}
else if ( !机构名称.equals( other.机构名称 ) )
return false;
if ( 职场分类 == null )
{
if ( other.职场分类 != null )
return false;
}
else if ( !职场分类.equals( other.职场分类 ) )
return false;
if ( 片区名称 == null )
{
if ( other.片区名称 != null )
return false;
}
else if ( !片区名称.equals( other.片区名称 ) )
return false;
if ( 团队名称 == null )
{
if ( other.团队名称 != null )
return false;
}
else if ( !团队名称.equals( other.团队名称 ) )
return false;
if ( 对口分公司 == null )
{
if ( other.对口分公司 != null )
return false;
}
else if ( !对口分公司.equals( other.对口分公司 ) )
return false;
if ( 展业地区 == null )
{
if ( other.展业地区 != null )
return false;
}
else if ( !展业地区.equals( other.展业地区 ) )
return false;
if ( 招聘渠道 == null )
{
if ( other.招聘渠道 != null )
return false;
}
else if ( !招聘渠道.equals( other.招聘渠道 ) )
return false;
if ( 渠道明细 == null )
{
if ( other.渠道明细 != null )
return false;
}
else if ( !渠道明细.equals( other.渠道明细 ) )
return false;
if ( 全日制最高学历 == null )
{
if ( other.全日制最高学历 != null )
return false;
}
else if ( !全日制最高学历.equals( other.全日制最高学历 ) )
return false;
if ( 学历类型 == null )
{
if ( other.学历类型 != null )
return false;
}
else if ( !学历类型.equals( other.学历类型 ) )
return false;
if ( 用工性质名称 == null )
{
if ( other.用工性质名称 != null )
return false;
}
else if ( !用工性质名称.equals( other.用工性质名称 ) )
return false;
if ( 合同种类 == null )
{
if ( other.合同种类 != null )
return false;
}
else if ( !合同种类.equals( other.合同种类 ) )
return false;
if ( 合同类型 == null )
{
if ( other.合同类型 != null )
return false;
}
else if ( !合同类型.equals( other.合同类型 ) )
return false;
if ( 合同性质 == null )
{
if ( other.合同性质 != null )
return false;
}
else if ( !合同性质.equals( other.合同性质 ) )
return false;
if ( 合同签订次数 != other.合同签订次数 )
return false;
if ( 合同生效日期 == null )
{
if ( other.合同生效日期 != null )
return false;
}
else if ( !合同生效日期.equals( other.合同生效日期 ) )
return false;
if ( 合同到期日期 == null )
{
if ( other.合同到期日期 != null )
return false;
}
else if ( !合同到期日期.equals( other.合同到期日期 ) )
return false;
if ( 人员属性 == null )
{
if ( other.人员属性 != null )
return false;
}
else if ( !人员属性.equals( other.人员属性 ) )
return false;
if ( 保代员工号 == null )
{
if ( other.保代员工号 != null )
return false;
}
else if ( !保代员工号.equals( other.保代员工号 ) )
return false;
if ( 职场属性 == null )
{
if ( other.职场属性 != null )
return false;
}
else if ( !职场属性.equals( other.职场属性 ) )
return false;
if ( 办公性质 == null )
{
if ( other.办公性质 != null )
return false;
}
else if ( !办公性质.equals( other.办公性质 ) )
return false;
if ( 保代人员属性 == null )
{
if ( other.保代人员属性 != null )
return false;
}
else if ( !保代人员属性.equals( other.保代人员属性 ) )
return false;
if ( 人员状态 == null )
{
if ( other.人员状态 != null )
return false;
}
else if ( !人员状态.equals( other.人员状态 ) )
return false;
return true;
}
public String get人员姓名()
{
return 人员姓名;
}
public void set人员姓名( String 人员姓名 )
{
this.人员姓名 = 人员姓名;
}
public String get人员工号()
{
return 人员工号;
}
public void set人员工号( String 人员工号 )
{
this.人员工号 = 人员工号;
}
public String get籍贯()
{
return 籍贯;
}
public void set籍贯( String 籍贯 )
{
this.籍贯 = 籍贯;
}
public String get参加工作时间()
{
return 参加工作时间;
}
public void set参加工作时间( String 参加工作时间 )
{
this.参加工作时间 = 参加工作时间;
}
public String get入职日期()
{
return 入职日期;
}
public void set入职日期( String 入职日期 )
{
this.入职日期 = 入职日期;
}
public String get入司日期()
{
return 入司日期;
}
public void set入司日期( String 入司日期 )
{
this.入司日期 = 入司日期;
}
public String get业务类型()
{
return 业务类型;
}
public void set业务类型( String 业务类型 )
{
this.业务类型 = 业务类型;
}
public String get办公地省()
{
return 办公地省;
}
public void set办公地省( String 办公地省 )
{
this.办公地省 = 办公地省;
}
public String get办公地市()
{
return 办公地市;
}
public void set办公地市( String 办公地市 )
{
this.办公地市 = 办公地市;
}
public String get人员类别()
{
return 人员类别;
}
public void set人员类别( String 人员类别 )
{
this.人员类别 = 人员类别;
}
public String get现任岗位()
{
return 现任岗位;
}
public void set现任岗位( String 现任岗位 )
{
this.现任岗位 = 现任岗位;
}
public String get现任职级()
{
return 现任职级;
}
public void set现任职级( String 现任职级 )
{
this.现任职级 = 现任职级;
}
public String get机构名称()
{
return 机构名称;
}
public void set机构名称( String 机构名称 )
{
this.机构名称 = 机构名称;
}
public String get职场分类()
{
return 职场分类;
}
public void set职场分类( String 职场分类 )
{
this.职场分类 = 职场分类;
}
public String get片区名称()
{
return 片区名称;
}
public void set片区名称( String 片区名称 )
{
this.片区名称 = 片区名称;
}
public String get团队名称()
{
return 团队名称;
}
public void set团队名称( String 团队名称 )
{
this.团队名称 = 团队名称;
}
public String get对口分公司()
{
return 对口分公司;
}
public void set对口分公司( String 对口分公司 )
{
this.对口分公司 = 对口分公司;
}
public String get展业地区()
{
return 展业地区;
}
public void set展业地区( String 展业地区 )
{
this.展业地区 = 展业地区;
}
public String get招聘渠道()
{
return 招聘渠道;
}
public void set招聘渠道( String 招聘渠道 )
{
this.招聘渠道 = 招聘渠道;
}
public String get渠道明细()
{
return 渠道明细;
}
public void set渠道明细( String 渠道明细 )
{
this.渠道明细 = 渠道明细;
}
public String get全日制最高学历()
{
return 全日制最高学历;
}
public void set全日制最高学历( String 全日制最高学历 )
{
this.全日制最高学历 = 全日制最高学历;
}
public String get学历类型()
{
return 学历类型;
}
public void set学历类型( String 学历类型 )
{
this.学历类型 = 学历类型;
}
public String get用工性质名称()
{
return 用工性质名称;
}
public void set用工性质名称( String 用工性质名称 )
{
this.用工性质名称 = 用工性质名称;
}
public String get合同种类()
{
return 合同种类;
}
public void set合同种类( String 合同种类 )
{
this.合同种类 = 合同种类;
}
public String get合同类型()
{
return 合同类型;
}
public void set合同类型( String 合同类型 )
{
this.合同类型 = 合同类型;
}
public String get合同性质()
{
return 合同性质;
}
public void set合同性质( String 合同性质 )
{
this.合同性质 = 合同性质;
}
public int get合同签订次数()
{
return 合同签订次数;
}
public void set合同签订次数( int 合同签订次数 )
{
this.合同签订次数 = 合同签订次数;
}
public String get合同生效日期()
{
return 合同生效日期;
}
public void set合同生效日期( String 合同生效日期 )
{
this.合同生效日期 = 合同生效日期;
}
public String get合同到期日期()
{
return 合同到期日期;
}
public void set合同到期日期( String 合同到期日期 )
{
this.合同到期日期 = 合同到期日期;
}
public String get人员属性()
{
return 人员属性;
}
public void set人员属性( String 人员属性 )
{
this.人员属性 = 人员属性;
}
public String get保代员工号()
{
return 保代员工号;
}
public void set保代员工号( String 保代员工号 )
{
this.保代员工号 = 保代员工号;
}
public String get职场属性()
{
return 职场属性;
}
public void set职场属性( String 职场属性 )
{
this.职场属性 = 职场属性;
}
public String get办公性质()
{
return 办公性质;
}
public void set办公性质( String 办公性质 )
{
this.办公性质 = 办公性质;
}
public String get保代人员属性()
{
return 保代人员属性;
}
public void set保代人员属性( String 保代人员属性 )
{
this.保代人员属性 = 保代人员属性;
}
public String get人员状态()
{
return 人员状态;
}
public void set人员状态( String 人员状态 )
{
this.人员状态 = 人员状态;
}
}

View File

@@ -20,8 +20,10 @@ import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MybatisUtils public class MybatisUtils
{ {
private static HashMap<String, SqlSession> SessionMap = new HashMap<>(5); private static HashMap<String, SqlSession> SessionMap = new HashMap<>( 5 );
private static HashMap<String, SqlSession> SessionMapBatch = new HashMap<>(5); private static HashMap<String, SqlSession> SessionMapBatch = new HashMap<>( 5 );
private static HashMap<String, SqlSessionFactory> SessionFactoryMap = new HashMap<>( 5 );
private static HashMap<String, SqlSessionFactory> SessionFactoryMapBatch = new HashMap<>( 5 );
private static String DEFAULT_CONFIGFILE = "mybatis/mybatis-config.xml"; private static String DEFAULT_CONFIGFILE = "mybatis/mybatis-config.xml";
/** /**
@@ -33,43 +35,45 @@ public class MybatisUtils
public static SqlSession getSqlSession( String configFile ) throws IOException public static SqlSession getSqlSession( String configFile ) throws IOException
{ {
// 根据配置文件的路径查找是否已经创建了对应的session // 根据配置文件的路径查找是否已经创建了对应的session
SqlSession session = SessionMap.get( configFile ); SqlSessionFactory factory = SessionFactoryMap.get( configFile );
// 找到就直接返回 // 找到就直接返回
if ( session != null ) if ( factory != null )
{ {
return session; return factory.openSession();
} }
// 没找到就创建一个 // 没找到就创建一个
InputStream configIS = Resources.getResourceAsStream( configFile ); InputStream configIS = Resources.getResourceAsStream( configFile );
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build( configIS ); factory = new SqlSessionFactoryBuilder().build( configIS );
session = factory.openSession(); SqlSession session = factory.openSession();
// 保存 // 保存
SessionMap.put( configFile, session ); SessionFactoryMap.put( configFile, factory );
return session; return session;
} }
public static SqlSession getSqlSessionBatch( String configFile ) throws IOException public static SqlSession getSqlSessionBatch( String configFile ) throws IOException
{ {
SqlSession sessionBatch = SessionMapBatch.get( configFile ); // 根据配置文件的路径查找是否已经创建了对应的session
SqlSessionFactory factory = SessionFactoryMap.get( configFile );
if ( sessionBatch != null ) // 找到就直接返回
if ( factory != null )
{ {
return sessionBatch; return factory.openSession();
} }
// 没有缓存的就创建一个新的 // 没找到就创建一个
InputStream configIS = Resources.getResourceAsStream( configFile ); InputStream configIS = Resources.getResourceAsStream( configFile );
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build( configIS ); factory = new SqlSessionFactoryBuilder().build( configIS );
sessionBatch = factory.openSession(ExecutorType.BATCH, false ); SqlSession session = factory.openSession( ExecutorType.BATCH, false );
//保存 // 保存
SessionMapBatch.put( configFile, sessionBatch ); SessionFactoryMap.put( configFile, factory );
return sessionBatch; return session;
} }
/** /**
@@ -80,21 +84,21 @@ public class MybatisUtils
public static SqlSession getSqlSession() throws IOException public static SqlSession getSqlSession() throws IOException
{ {
// 根据配置文件的路径查找是否已经创建了对应的session // 根据配置文件的路径查找是否已经创建了对应的session
SqlSession session = SessionMap.get( DEFAULT_CONFIGFILE ); SqlSessionFactory factory = SessionFactoryMap.get( DEFAULT_CONFIGFILE );
// 找到就直接返回 // 找到就直接返回
if ( session != null ) if ( factory != null )
{ {
return session; return factory.openSession();
} }
// 没找到就创建一个 // 没找到就创建一个
InputStream configIS = Resources.getResourceAsStream( DEFAULT_CONFIGFILE ); InputStream configIS = Resources.getResourceAsStream( DEFAULT_CONFIGFILE );
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build( configIS ); factory = new SqlSessionFactoryBuilder().build( configIS );
session = factory.openSession(); SqlSession session = factory.openSession();
// 保存 // 保存
SessionMap.put( DEFAULT_CONFIGFILE, session ); SessionFactoryMap.put( DEFAULT_CONFIGFILE, factory );
return session; return session;
} }
@@ -108,21 +112,23 @@ public class MybatisUtils
*/ */
public static SqlSession getSqlSessionBatch() throws IOException public static SqlSession getSqlSessionBatch() throws IOException
{ {
SqlSession sessionBatch = SessionMapBatch.get( DEFAULT_CONFIGFILE ); // 根据配置文件的路径查找是否已经创建了对应的session
SqlSessionFactory factory = SessionFactoryMap.get( DEFAULT_CONFIGFILE );
if ( sessionBatch != null ) // 找到就直接返回
if ( factory != null )
{ {
return sessionBatch; return factory.openSession();
} }
// 没有缓存的就创建一个新的 // 没找到就创建一个
InputStream configIS = Resources.getResourceAsStream( DEFAULT_CONFIGFILE ); InputStream configIS = Resources.getResourceAsStream( DEFAULT_CONFIGFILE );
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build( configIS ); factory = new SqlSessionFactoryBuilder().build( configIS );
sessionBatch = factory.openSession(ExecutorType.BATCH, false ); SqlSession session = factory.openSession( ExecutorType.BATCH, false );
//保存 // 保存
SessionMapBatch.put( DEFAULT_CONFIGFILE, sessionBatch ); SessionFactoryMap.put( DEFAULT_CONFIGFILE, factory );
return sessionBatch; return session;
} }
} }

View File

@@ -60,19 +60,32 @@ public final class TeleSalerInfo
PreparedStatement statement = null; PreparedStatement statement = null;
ResultSet result = null; ResultSet result = null;
String sql = """ // String sql = """
SELECT s.saler_code, // SELECT s.saler_code,
s.saler_name, // s.saler_name,
t.team_code, // t.team_code,
t.team, // t.team,
bm.department_code, // bm.department_code,
bm.department_name // bm.department_name
FROM tele_saler s, // FROM tele_saler s,
tele_saler_team t, // tele_saler_team t,
idst0.bm_t bm // idst0.bm_t bm
WHERE s.team_code = t.team_code // WHERE s.team_code = t.team_code
AND t.department_code = bm.department_code // AND t.department_code = bm.department_code
AND (s.saler_code = ? or s.saler_name = ?) """; // AND (s.saler_code = ? or s.saler_name = ?) """;
String sql2 = """
select ry.人员工号 ,
ry.人员姓名,
team.team_code,
team.team_name,
bm.department_code,
bm.department_name
from twr_telsaler ry,
twr_telsaler_team team,
idst0.bm_t bm
where trim(ry.团队名称) = trim(team.team_name)
and team.department_code = bm.department_code
AND (ry.人员工号 = ? or ry.人员姓名 = ?)""";
// String sql = "SELECT DISTINCT s.saler_code, s.saler_name, \n" // String sql = "SELECT DISTINCT s.saler_code, s.saler_name, \n"
// + " t.team_code, t.team, \n" // + " t.team_code, t.team, \n"
// + " bm.department_code, bm.department_name \n" // + " bm.department_code, bm.department_name \n"
@@ -84,7 +97,7 @@ public final class TeleSalerInfo
{ {
Class.forName( "oracle.jdbc.driver.OracleDriver" ); Class.forName( "oracle.jdbc.driver.OracleDriver" );
connection = DriverManager.getConnection( jdbcURL, userName, password ); connection = DriverManager.getConnection( jdbcURL, userName, password );
statement = connection.prepareStatement( sql ); statement = connection.prepareStatement( sql2 );
statement.setString( 1, telsaler ); statement.setString( 1, telsaler );
statement.setString( 2, telsaler ); statement.setString( 2, telsaler );

View File

@@ -0,0 +1,190 @@
/*
* @Author: Kane
* @Date: 2023-11-24 11:09:46
* @LastEditors: Kane
* @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/utils/data/ImportTWRTelsalerData.java
* @Description:
*
* Copyright (c) ${2023} by Kane, All Rights Reserved.
*/
package com.cpic.xim.utils.data;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.cpic.xim.mybatis.pojo.TWrTelsalerRecord;
import com.cpic.xim.utils.poi.MyPOIUtils;
public class ImportTWRTelsalerData
{
private static Logger logger = LoggerFactory.getLogger( ImportTWRTelsalerData.class );
private static String[] TwrTelsalerListExcelTitle = new String[]
{ "人员姓名", "人员工号", "籍 贯", "参加工作时间", "入职日期", "入司日期", "业务类型", "办公地省", "办公地市", "人员类别", "现任岗位",
"现任职级", "机构名称", "职场分类", "片区名称", "团队名称", "对口分公司", "展业地区", "招聘渠道", "渠道明细", "全日制最高学历",
"学历类型", "用工性质名称", "合同种类", "合同类型", "合同性质", "合同签订次数", "合同生效日期", "合同到期日期", "人员属性", "保代员工号",
"职场属性", "办公性质", "保代人员属性", "人员状态",};
public static void importTWrTelsalerDataFromExcel( String filePath, int sheetIndex,
int firstRow ) throws IOException, InvalidFormatException
{
ArrayList<TWrTelsalerRecord> records = new ArrayList<>( 200 );
Workbook wb = null;
Sheet sheet = null;
try
{
wb = WorkbookFactory.create( new File( filePath ) );
sheet = wb.getSheetAt( sheetIndex );
// 先验证格式,不对就抛出错误
if ( !checkExcelFormat( sheet, null, 0, TwrTelsalerListExcelTitle, 0 ) )
{
throw new InvalidFormatException( "Excel文件格式错误请检查报表内容" );
}
for ( Row row : sheet )
{
int rowIndex = row.getRowNum();
// 从数据行开始
if ( row.getRowNum() < firstRow )
{
continue;
}
try
{
String 人员姓名 = MyPOIUtils.getStringCellValue( row, 0 );
String 人员工号 = MyPOIUtils.getStringCellValue( row, 1 );
String 籍贯 = MyPOIUtils.getStringCellValue( row, 2 );
String 参加工作时间 = MyPOIUtils.getStringCellValue( row, 3 );
String 入职日期 = MyPOIUtils.getStringCellValue( row, 4 );
String 入司日期 = MyPOIUtils.getStringCellValue( row, 5 );
String 业务类型 = MyPOIUtils.getStringCellValue( row, 6 );
String 办公地省 = MyPOIUtils.getStringCellValue( row, 7 );
String 办公地市 = MyPOIUtils.getStringCellValue( row, 8 );
String 人员类别 = MyPOIUtils.getStringCellValue( row, 9 );
String 现任岗位 = MyPOIUtils.getStringCellValue( row, 10 );
String 现任职级 = MyPOIUtils.getStringCellValue( row, 11 );
String 机构名称 = MyPOIUtils.getStringCellValue( row, 12 );
String 职场分类 = MyPOIUtils.getStringCellValue( row, 13 );
String 片区名称 = MyPOIUtils.getStringCellValue( row, 14 );
String 团队名称 = MyPOIUtils.getStringCellValue( row, 15 );
String 对口分公司 = MyPOIUtils.getStringCellValue( row, 16 );
String 展业地区 = MyPOIUtils.getStringCellValue( row, 17 );
String 招聘渠道 = MyPOIUtils.getStringCellValue( row, 18 );
String 渠道明细 = MyPOIUtils.getStringCellValue( row, 19 );
String 全日制最高学历 = MyPOIUtils.getStringCellValue( row, 20 );
String 学历类型 = MyPOIUtils.getStringCellValue( row, 21 );
String 用工性质名称 = MyPOIUtils.getStringCellValue( row, 22 );
String 合同种类 = MyPOIUtils.getStringCellValue( row, 23 );
String 合同类型 = MyPOIUtils.getStringCellValue( row, 24 );
String 合同性质 = MyPOIUtils.getStringCellValue( row, 25 );
int 合同签订次数 = (int)MyPOIUtils.getNumbericCellValue( row, 26 );
String 合同生效日期 = MyPOIUtils.getStringCellValue( row, 27 );
String 合同到期日期 = MyPOIUtils.getStringCellValue( row, 28 );
String 人员属性 = MyPOIUtils.getStringCellValue( row, 29 );
String 保代员工号 = MyPOIUtils.getStringCellValue( row, 30 );
String 职场属性 = MyPOIUtils.getStringCellValue( row, 31 );
String 办公性质 = MyPOIUtils.getStringCellValue( row, 32 );
String 保代人员属性 = MyPOIUtils.getStringCellValue( row, 33 );
String 人员状态 = MyPOIUtils.getStringCellValue( row, 34 );
TWrTelsalerRecord record = new TWrTelsalerRecord(人员姓名, 人员工号, 籍贯, 参加工作时间, 入职日期, 入司日期, 业务类型, 办公地省, 办公地市, 人员类别, 现任岗位, 现任职级, 机构名称, 职场分类, 片区名称, 团队名称, 对口分公司, 展业地区, 招聘渠道, 渠道明细, 全日制最高学历, 学历类型, 用工性质名称, 合同种类, 合同类型, 合同性质, 合同签订次数, 合同生效日期, 合同到期日期, 人员属性, 保代员工号, 职场属性, 办公性质, 保代人员属性, 人员状态);
records.add(record);
}
catch ( IllegalStateException error )
{
error.printStackTrace();
}
catch ( NumberFormatException error )
{
error.printStackTrace();
}
catch ( NullPointerException error )
{
String message = "" + String.valueOf( rowIndex ) + "行出现NullPointerException异常";
logger.error( message, error );
}
}
}
finally
{
try
{
if ( wb != null )
{
wb.close();
}
}
catch ( IOException error )
{
error.printStackTrace();
}
}
}
private static boolean checkExcelFormat( Sheet sheet, String caption, int captionRowIndex,
String[] title, int titleRowIndex )
{
boolean result = true;
Row captionRow = sheet.getRow( captionRowIndex );
Row titleRow = sheet.getRow( titleRowIndex );
if ( caption != null && !caption.isEmpty() )
{
try
{
int captionCellNum = captionRow.getFirstCellNum();
String captionString = MyPOIUtils.getStringCellValue( captionRow, captionCellNum );
if ( !caption.equals( captionString ) )
{
result = false;
}
}
catch ( NullPointerException error )
{
result = false;
}
}
if ( title.length != 0 )
{
int cellIndex = 0;
try
{
for ( Cell cell : titleRow )
{
String cellString = MyPOIUtils.getStringCellValue( cell );
if ( !cellString.equals( title[cellIndex] ) )
{
result = false;
break;
}
cellIndex++;
}
}
catch ( NullPointerException error )
{
result = false;
}
}
return result;
}
}

View File

@@ -10,6 +10,7 @@
package com.cpic.xim.utils.poi; package com.cpic.xim.utils.poi;
import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Row.MissingCellPolicy; import org.apache.poi.ss.usermodel.Row.MissingCellPolicy;
@@ -17,7 +18,7 @@ public class MyPOIUtils
{ {
public static String getStringCellValue( Cell cell ) public static String getStringCellValue( Cell cell )
{ {
switch( cell.getCellType() ) switch ( cell.getCellType())
{ {
case STRING: case STRING:
return cell.getStringCellValue(); return cell.getStringCellValue();
@@ -28,9 +29,9 @@ public class MyPOIUtils
public static String getStringCellValue( Row row, int columnIndex ) public static String getStringCellValue( Row row, int columnIndex )
{ {
Cell cell = row.getCell(columnIndex, MissingCellPolicy.RETURN_NULL_AND_BLANK); Cell cell = row.getCell( columnIndex, MissingCellPolicy.RETURN_NULL_AND_BLANK );
switch( cell.getCellType() ) switch ( cell.getCellType())
{ {
case STRING: case STRING:
return cell.getStringCellValue(); return cell.getStringCellValue();
@@ -43,7 +44,7 @@ public class MyPOIUtils
{ {
double value = 0.0; double value = 0.0;
switch ( cell.getCellType() ) switch ( cell.getCellType())
{ {
case NUMERIC: case NUMERIC:
value = cell.getNumericCellValue(); value = cell.getNumericCellValue();
@@ -59,12 +60,29 @@ public class MyPOIUtils
public static double getNumbericCellValue( Row row, int columnIndex ) public static double getNumbericCellValue( Row row, int columnIndex )
{ {
double value = 0.0; double value = 0.0;
String strValue;
Cell cell = row.getCell( columnIndex, MissingCellPolicy.RETURN_NULL_AND_BLANK ); Cell cell = row.getCell( columnIndex, MissingCellPolicy.RETURN_NULL_AND_BLANK );
CellType type = cell.getCellType();
switch ( cell.getCellType() ) switch ( type )
{ {
case NUMERIC: case NUMERIC:
value = cell.getNumericCellValue(); value = cell.getNumericCellValue();
break;
case STRING:
// 字符串类型,尝试转换成数字
strValue = cell.getStringCellValue();
try
{
value = Double.parseDouble( strValue );
}
// 任何异常都视为转换失败
catch ( Exception error )
{
value = 0.0;
}
break; break;
default: default:
value = 0.0; value = 0.0;
@@ -73,4 +91,4 @@ public class MyPOIUtils
return value; return value;
} }
} }

View File

@@ -38,7 +38,7 @@
</insert> </insert>
<select id="cleanTelsalerAttachingRateData" statementType="CALLABLE"> <select id="cleanTelsalerAttachingRateData" statementType="CALLABLE">
call telsale_bi_utils.清理BI电销坐席车非渗透跟踪表() call telsale_bi_utils.清理BI电销坐席车非渗透跟踪表()
</select> </select>
<select id="cleanTelsalerRenewalRateData" statementType="CALLABLE"> <select id="cleanTelsalerRenewalRateData" statementType="CALLABLE">
call telsale_bi_utils.清理BI电销坐席续保率跟踪表() call telsale_bi_utils.清理BI电销坐席续保率跟踪表()

View File

@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cpic.xim.mybatis.mapper.TWrTelsalerMapper">
<select id="queryTWrTelsalerInfo" resultMap="TWrTelsaler">
select t.人员姓名,
t.人员工号,
t.籍贯,
t.参加工作时间,
t.入职日期,
t.入司日期,
t.业务类型,
t.办公地省,
t.办公地市,
t.人员类别,
t.现任岗位,
t.现任职级,
t.机构名称,
t.职场分类,
t.片区名称,
t.团队名称,
t.对口分公司,
t.展业地区,
t.招聘渠道,
t.渠道明细,
t.全日制最高学历,
t.学历类型,
t.用工性质名称,
t.合同种类,
t.合同类型,
t.合同性质,
t.合同签订次数,
t.合同生效日期,
t.合同到期日期,
t.人员属性,
t.保代员工号,
t.职场属性,
t.办公性质,
t.保代人员属性,
t.人员状态
from telsaler t
where t.人员姓名 = #{telsaler} or t.人员工号 = #{telsaler}
</select>
<resultMap id="TWrTelsaler" type="TWrTelsalerRecord">
<result column="人员姓名" property="人员姓名" jdbcType="VARCHAR" javaType="String" />
<result column="人员工号" property="人员工号" jdbcType="VARCHAR" javaType="String" />
<result column="籍贯" property="籍贯" jdbcType="VARCHAR" javaType="String" />
<result column="参加工作时间" property="参加工作时间" jdbcType="VARCHAR" javaType="String" />
<result column="入职日期" property="入职日期" jdbcType="VARCHAR" javaType="String" />
<result column="入司日期" property="入司日期" jdbcType="VARCHAR" javaType="String" />
<result column="业务类型" property="业务类型" jdbcType="VARCHAR" javaType="String" />
<result column="办公地省" property="办公地省" jdbcType="VARCHAR" javaType="String"/>
<result column="办公地市" property="办公地市" jdbcType="VARCHAR" javaType="String"/>
<result column="人员类别" property="人员类别" jdbcType="VARCHAR" javaType="String"/>
<result column="现任岗位" property="现任岗位" jdbcType="VARCHAR" javaType="String"/>
<result column="现任职级" property="现任职级" jdbcType="VARCHAR" javaType="String"/>
<result column="机构名称" property="机构名称" jdbcType="VARCHAR" javaType="String"/>
<result column="职场分类" property="职场分类" jdbcType="VARCHAR" javaType="String"/>
<result column="片区名称" property="片区名称" jdbcType="VARCHAR" javaType="String"/>
<result column="团队名称" property="团队名称" jdbcType="VARCHAR" javaType="String"/>
<result column="对口分公司" property="对口分公司" jdbcType="VARCHAR" javaType="String"/>
<result column="展业地区" property="展业地区" jdbcType="VARCHAR" javaType="String"/>
<result column="招聘渠道" property="招聘渠道" jdbcType="VARCHAR" javaType="String"/>
<result column="渠道明细" property="渠道明细" jdbcType="VARCHAR" javaType="String"/>
<result column="全日制最高学历" property="全日制最高学历" jdbcType="VARCHAR" javaType="String"/>
<result column="学历类型" property="学历类型" jdbcType="VARCHAR" javaType="String"/>
<result column="用工性质名称" property="用工性质名称" jdbcType="VARCHAR" javaType="String"/>
<result column="合同种类" property="合同种类" jdbcType="VARCHAR" javaType="String"/>
<result column="合同类型" property="合同类型" jdbcType="VARCHAR" javaType="String"/>
<result column="合同性质" property="合同性质" jdbcType="VARCHAR" javaType="String"/>
<result column="合同签订次数" property="合同签订次数" jdbcType="VARCHAR" javaType="String"/>
<result column="合同生效日期" property="合同生效日期" jdbcType="VARCHAR" javaType="String"/>
<result column="合同到期日期" property="合同到期日期" jdbcType="VARCHAR" javaType="String"/>
<result column="人员属性" property="人员属性" jdbcType="VARCHAR" javaType="String"/>
<result column="保代员工号" property="保代员工号" jdbcType="VARCHAR" javaType="String"/>
<result column="职场属性" property="职场属性" jdbcType="VARCHAR" javaType="String"/>
<result column="办公性质" property="办公性质" jdbcType="VARCHAR" javaType="String"/>
<result column="保代人员属性" property="保代人员属性" jdbcType="VARCHAR" javaType="String"/>
<result column="人员状态" property="人员状态" jdbcType="VARCHAR" javaType="String"/>
</resultMap>
<!-- insertTWrTelsalerRecordToDB -->
<insert id="insertTWrTelsalerRecordToDB">
</insert>
</mapper>

Binary file not shown.

Binary file not shown.