diff --git a/code/db/pkg/telsale_pkg.pck b/code/db/pkg/telsale_pkg.pck index 109b899..3bcc477 100644 --- a/code/db/pkg/telsale_pkg.pck +++ b/code/db/pkg/telsale_pkg.pck @@ -37,28 +37,28 @@ CREATE OR REPLACE PACKAGE BODY telsale_pkg IS a_end_date); FOR caller_record IN (SELECT * - FROM desktop_archievement_admin.车非每日保费_t) + FROM desktop_archievement_admin.坐席车非每日保费_t) LOOP BEGIN - DELETE desktop_archievement_admin.车非每日保费 cf + DELETE desktop_archievement_admin.坐席车非每日保费 cf WHERE cf.签单日期 = caller_record.签单日期 AND cf.部门 = caller_record.部门 AND cf.经办人n = caller_record.经办人n AND cf.坐席工号 = caller_record.坐席工号; EXCEPTION WHEN no_data_found THEN - NULL; + dbms_output.put_line(caller_record.签单日期 || '无重复数据'); END; - INSERT INTO desktop_archievement_admin.车非每日保费 + INSERT INTO desktop_archievement_admin.坐席车非每日保费 VALUES caller_record; END LOOP; COMMIT; - EXCEPTION + /*EXCEPTION WHEN OTHERS THEN - NULL; + NULL;*/ END; /**********************************************************************/ @@ -359,10 +359,10 @@ CREATE OR REPLACE PACKAGE BODY telsale_pkg IS nvl(SUM(融合保费), 0) 车非融合保费 FROM ff - WHERE ff.签单日期 >= to_char(a_start_date, - 'yyyy-mm-dd') - AND ff.签单日期 <= to_char(a_end_date, - 'yyyy-mm-dd') + WHERE to_date(ff.签单日期, + 'yyyy-mm-dd') >= a_start_date + AND to_date(ff.签单日期, + 'yyyy-mm-dd') < a_end_date AND bm IN ('续保业务部', '湖里支公司') GROUP BY 签单日期, diff --git a/code/db/pkg/telsale_pkg_07-26.pck b/code/db/pkg/telsale_pkg_07-26.pck new file mode 100644 index 0000000..3bcc477 --- /dev/null +++ b/code/db/pkg/telsale_pkg_07-26.pck @@ -0,0 +1,918 @@ +CREATE OR REPLACE PACKAGE telsale_pkg IS + + -- Author : WANGWEI-202 + -- Created : 2023/3/10 15:13:34 + -- Purpose : 桌面霸屏项目基础数据生成包 + + PROCEDURE 车非基础数据 + ( + a_start_date IN DATE, + a_end_date IN DATE + ); + + PROCEDURE gen_车非临时数据 + ( + a_start_date IN DATE, + a_end_date IN DATE + ); + + PROCEDURE 续保基本数据; + + PROCEDURE chefei_daily_job; + PROCEDURE xubao_daily_job; + +END telsale_pkg; +/ +CREATE OR REPLACE PACKAGE BODY telsale_pkg IS + + PROCEDURE 车非基础数据 + ( + a_start_date IN DATE, + a_end_date IN DATE + ) IS + --l_count INTEGER; --已有记录的数量 + BEGIN + --产生临时数据 + gen_车非临时数据(a_start_date, + a_end_date); + + FOR caller_record IN (SELECT * + FROM desktop_archievement_admin.坐席车非每日保费_t) + LOOP + BEGIN + DELETE desktop_archievement_admin.坐席车非每日保费 cf + WHERE cf.签单日期 = caller_record.签单日期 + AND cf.部门 = caller_record.部门 + AND cf.经办人n = caller_record.经办人n + AND cf.坐席工号 = caller_record.坐席工号; + EXCEPTION + WHEN no_data_found THEN + dbms_output.put_line(caller_record.签单日期 || '无重复数据'); + END; + + INSERT INTO desktop_archievement_admin.坐席车非每日保费 + VALUES caller_record; + + END LOOP; + + COMMIT; + /*EXCEPTION + WHEN OTHERS THEN + NULL;*/ + END; + + /**********************************************************************/ + + PROCEDURE gen_车非临时数据 + ( + a_start_date IN DATE, + a_end_date IN DATE + ) IS + BEGIN + desktop_archievement_admin.clean_temp_data; + + INSERT INTO desktop_archievement_admin.坐席车非每日保费_t + WITH aa AS + (SELECT to_char(t.signature_date, + 'yyyy-mm-dd') 签单日期, + (to_char(T.signature_date, + 'yyyy')) the_year, + (to_char(T.signature_date, + 'mm')) the_month, + t.policy_no bdh, + t.endorsement_no pdh, + qt.t_cre tid, + QT.B_CRE BTID, -----添加字段 + e.inception_date qbsj, + e.planned_end_date zzsj, + pt.premium_amount - nvl(pt.tax_amount, + 0) bf + --,qt.qdbf - nvl(qt.qdbf_tax_amount,0) bf + , + nt.ecompensation_rate * (pt.premium_amount - nvl(pt.tax_amount, + 0)) fxbf, + z.department_name bm, + z.department_code bmdm, + CASE + WHEN (et.telpartnercode LIKE '%HC%' OR + zx.workerno IN (SELECT code + FROM datacenter.dc_lsj_zx_hc)) THEN + '海沧丰骏' + ELSE + '' + END 是否丰骏, + nvl(zx.workerno, + et.telpartnercode) 坐席工号, + (CASE + WHEN nvl(zx.workerno, + et.telpartnercode) = 'DX001' AND + xx.staff_name LIKE '%建发凯迪%' THEN + '林伟华' + WHEN nvl(zx.workerno, + et.telpartnercode) = 'DX001' AND + xx.staff_name NOT LIKE '%建发凯迪%' THEN + '其他' + ELSE + to_char(ys.坐席姓名) + END) 坐席名称, + YS.团队 坐席团队, + nvl(YS.团队, + y.section_office_name) 科室N, + nvl((CASE + WHEN nvl(zx.workerno, + et.telpartnercode) = 'DX001' AND + xx.staff_name LIKE '%建发凯迪%' THEN + '林伟华' + WHEN nvl(zx.workerno, + et.telpartnercode) = 'DX001' AND + xx.staff_name NOT LIKE '%建发凯迪%' THEN + '其他' + ELSE + to_char(ys.坐席姓名) + END), + xx.staff_name) 经办人N + FROM idst0.auto_agreement_request_t t + LEFT JOIN idst0.auto_agreement_t e + ON e.policy_no = t.policy_no + LEFT JOIN idst0.motorised_vehicle_t v + ON v.policy_no = e.policy_no + LEFT JOIN idst0.auto_premium_t pt + ON pt.policy_no = t.policy_no + AND pt.endorsement_no = t.endorsement_no + LEFT JOIN ywglxt.w_dxbd_i i + ON e.policy_no = i.bdh + LEFT JOIN idst0.rydm_t xx + ON xx.staff_code = nvl(i.zhjywy, + e.operator_code) + LEFT JOIN idst0.ks_t y + ON y.section_office_code = nvl(xx.section_office_code, + e.section_office_code) + LEFT JOIN idst0.bm_t z + ON z.department_code = nvl(xx.department_code, + e.department_code) + --left join datacenter.dc_cx_csteam ct on ct.jbrcode = xx.staff_code + LEFT JOIN idst0.auto_new_product_info_t nt + ON nt.policy_no = t.policy_no + AND nt.endorsement_no = t.endorsement_no + --left join ywglxt.q_auto_agreement_extend_t qe on qe.policy_no = e.policy_no + LEFT JOIN ywglxt.q_auto_agreement_t qt + ON qt.policy_no = e.policy_no + LEFT JOIN datacenter.dc_yangg_qdcode qd + ON qd.code = e.selling_channel_type + LEFT JOIN datacenter.dc_tb_jc_c_tag cl + ON cl.保单号 = e.policy_no + LEFT JOIN datacenter.dc_yangg_basecode_teams fg + ON fg.bm = z.department_name + AND fg.ks = y.section_office_name + --left join idst0.t_sell_policy_autobase_t zx on zx.policy_no=e.policy_no + --left join idst0.auto_agreement_extend_t et on et.policy_no = e.policy_no + LEFT JOIN idst0.auto_agreement_extend_t et + ON et.policy_no = e.policy_no + LEFT JOIN idst0.t_sell_policy_autobase_t zx + ON zx.policy_no = e.policy_no + LEFT JOIN datacenter.dc_YZH_ZXYS YS + ON YS.坐席工号 = nvl(zx.workerno, + et.telpartnercode) + --left join v_lsj_dimian dm on dm.vin=v.vin and e.selling_channel_type='25' and dm.MEMO like'%地面续保%' + --left join datacenter.dc_lsj_zx_team zt on zt.name=coalesce(zc.name,zc1.name,bc.name,dm.JBRMC) + WHERE t.signature_date >= to_date('2023-01-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss') + AND t.signature_date < to_date(to_char(SYSDATE - 1, + 'yyyy-mm-dd') || ' 23:59:59', + 'yyyy-mm-dd hh24:mi:ss') + --and t.endorsement_no = '无' + AND e.policy_status = '1' --条件:保单有效 + AND qt.tflag = '0' --条件:类型为个人 + AND qt.usage_xm = '家庭自用车' + --条件:单程提车、摩托车、拖拉机 + --and e.policy_no in ('AXIMC90Y1419B038594J','AXIMC90CTP19B039593R','AXIMC04CTP19B013473X') + AND e.planned_end_date - e.inception_date >= 360 + --条件:保单周期 + ) + -----添加字段 + , + dd2 AS + (SELECT 签单日期, + the_year, + the_month, + bm, + bmdm, + 坐席工号, + 坐席名称, + 坐席团队, + 科室N, + 经办人N, + CASE + WHEN pdh = '无' THEN + tid + END tid, + to_number('1') 客户数, + COUNT(DISTINCT CASE + WHEN pdh = '无' THEN + bdh + END) 保单数, + SUM(bf) 保费 + FROM (SELECT DISTINCT * + FROM aa) aa + GROUP BY bm, + bmdm, + CASE + WHEN pdh = '无' THEN + tid + END, + the_year, + the_month, + BTID, + 坐席工号, + 坐席名称, + 坐席团队, + 签单日期, + 科室N, + 经办人N + UNION + SELECT 签单日期, + the_year, + the_month, + bm, + bmdm, + 坐席工号, + 坐席名称, + 坐席团队, + 科室N, + 经办人N, + CASE + WHEN btid = tid THEN + '' + ELSE + btid + END btid, + to_number('0') 客户数, + to_number('0') 保单数, + to_number('0') 保费 + FROM (SELECT DISTINCT * + FROM aa) aa), + DD AS + (SELECT * + FROM DD2 + WHERE TID IS NOT NULL) + --select * from dd + , + bb AS + (SELECT DISTINCT q.policy_no bdh, + q.endorsement_no pdh, + qna.t_cre tid, + to_number(to_char(q.signature_date, + 'yyyy')) || '年' nf, + (to_char(q.signature_date, + 'mm')) mm_f, + to_char(q.signature_date, + 'dd') || '日' dd, + q.signature_date sj, + round((pt.premium_amount - nvl(pt.taxamount, + 0)) * c.rate / 100, + 2) bf, + z.department_name bm + FROM idst0.nonauto_agreement_request_t q + LEFT JOIN idst0.nonauto_agreement_t e + ON e.policy_no = q.policy_no + LEFT JOIN idst0.nonauto_premium_t pt + ON pt.endorsement_no = q.endorsement_no + AND pt.policy_no = q.policy_no + LEFT JOIN idst0.reinsurance_t r + ON r.reinsurance_policy_no = e.policy_no + LEFT JOIN idst0.exrate_month_t c + ON pt.currency_code = c.bzh + AND to_char(q.signature_date, + 'YYYY') = c.theyear + AND to_char(q.signature_date, + 'fmmm') = c.themonth + + LEFT JOIN idst0.rydm_t x + ON x.staff_code = e.operator_code + LEFT JOIN idst0.ks_t y + ON y.section_office_code = x.section_office_code + LEFT JOIN idst0.bm_t z + ON z.department_code = x.department_code + LEFT JOIN ywglxt.q_nonauto_agreement_t qna + ON qna.policy_no = q.policy_no + LEFT JOIN datacenter.dc_yangg_gkxzh gk + ON gk.product_code = e.product_code --分散型险种 + --left join datacenter.dc_yangg_zbxzh zb on zb.product_code = e.product_code --政保险种 + LEFT JOIN dd + ON dd.tid = qna.t_cre + WHERE qna.tflag = '0' + AND (CASE + WHEN q.endorsement_no != '无' AND + round((pt.premium_amount - nvl(pt.taxamount, + 0)) * c.rate / 100, + 2) != 0 THEN + '是' + END) IS NULL + --and q.endorsement_no = '无' + AND e.policy_status = '1' + AND gk.product_code IS NOT NULL + AND (e.product_code LIKE '2%' OR e.product_code LIKE '1106%' --意健 --责任 + OR e.product_code LIKE '1107%' OR e.product_code LIKE '1108%' OR e.product_code LIKE '1307%' OR e.product_code LIKE '1304A400%' --家财 + + ) + --and e.product_code not in ('22KC9800') + AND q.signature_date >= to_date('2023-01-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss') + AND q.signature_date < to_date(to_char(SYSDATE - 1, + 'yyyy-mm-dd') || ' 23:59:59', + 'yyyy-mm-dd hh24:mi:ss') + AND e.planned_end_date - e.inception_date >= 90 + AND dd.tid IS NOT NULL + --车险个人客户) + ) + --SELECT * FROM BB + , + cc AS + (SELECT mm_f, + tid 融合证件, + COUNT(DISTINCT bdh) 融合保数, + SUM(bf) 融合保费 + FROM bb + GROUP BY tid, + mm_f), + ff AS + (SELECT dd.*, + cc.* + FROM dd + LEFT JOIN cc + ON cc.融合证件 = dd.tid + AND cc.mm_f = dd.the_month) --OR cc.融合证件 = dd.btid + --select * from ff + SELECT to_date(签单日期, + 'yyyy-mm-dd') 签单日期, + the_year 年份, + the_month 月份, + bm 部门, + bmdm 部门代码, + 科室N, + 经办人N, + 坐席工号, + 坐席名称, + 坐席团队, + nvl(SUM(保费), + 0) 车险个人客户保费, + nvl(SUM(融合保费), + 0) 车非融合保费 + FROM ff + WHERE to_date(ff.签单日期, + 'yyyy-mm-dd') >= a_start_date + AND to_date(ff.签单日期, + 'yyyy-mm-dd') < a_end_date + AND bm IN ('续保业务部', + '湖里支公司') + GROUP BY 签单日期, + the_year, + the_month, + bm, + bmdm, + 坐席工号, + 坐席名称, + 坐席团队, + 科室N, + 经办人N + ORDER BY 部门, + 坐席名称; + COMMIT; + END; + + /**********************************************************************/ + + PROCEDURE 续保基本数据 IS + BEGIN + --清理旧数据 + desktop_archievement_admin.clean_mensual_renewal; + + --生成新数据 + INSERT INTO desktop_archievement_admin.坐席续保统计 + WITH cc AS + (SELECT pt.policy_no policy_no, + SUM(pt.premium_amount) premium_amount, + SUM(pt.tax_amount) tax_amount + FROM idst0.auto_premium_t pt + GROUP BY pt.policy_no) + + , + bb AS + (SELECT t.policy_no 保单号, + (CASE + WHEN e.product_code LIKE '1102%' AND + e.product_code NOT LIKE '110224%' AND + e.product_code != '11026000' THEN + '机动车险保险' + WHEN e.product_code LIKE '1101%' OR + e.product_code LIKE '1301%' OR + e.product_code LIKE '11110000%' THEN + '财产险' + WHEN e.product_code LIKE '1107%' OR + e.product_code LIKE '1307%' OR + e.product_code LIKE '1304A400%' THEN + '责任险' + WHEN e.product_code LIKE '1106%' OR + e.product_code LIKE '51015700' THEN + '家财险' + WHEN (e.product_code LIKE '1104%' OR e.product_code LIKE '1204%' OR e.product_code LIKE '13040000%') AND + e.product_code NOT LIKE '120404%' THEN + '货运险' + WHEN e.product_code LIKE '1203%' OR + e.product_code LIKE '1103%' OR + e.product_code LIKE '120404%' THEN + '船舶险' + WHEN e.product_code LIKE '1305%' THEN + '工程险' + WHEN e.product_code LIKE '111%' AND + e.product_code NOT LIKE '11110000%' THEN + '农业险' + WHEN e.product_code LIKE '1109%' OR + e.product_code LIKE '1309%' THEN + '保证保险' + WHEN e.product_code LIKE '1312%' THEN + '特殊风险' + WHEN e.product_code LIKE '1308%' THEN + '信用险' + WHEN e.product_code LIKE '23%' THEN + '意外险' + WHEN e.product_code LIKE '22%' THEN + '健康险' + WHEN e.product_code LIKE '110224%' OR + e.product_code = '11026000' THEN + '交强险' + ELSE + '未分配' + END) AS 险种大类 + FROM idst0.auto_agreement_request_t t + LEFT JOIN idst0.auto_agreement_t e + ON e.policy_no = t.policy_no) + + , + aa1 AS + (SELECT a.policy_no 旧保单, + a.selling_shop_code 车商代码, + a.planned_end_date 到期时间, + CASE + WHEN to_number(to_char(a.planned_end_date, + 'yyyy')) = '2022' AND + a.selling_shop_code || a.tel_sale_4s_code = '00GK' THEN + '个车专业化销售一科' + WHEN a.planned_end_date > to_date('2023-04-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss') AND + (a.selling_shop_code || a.tel_sale_4s_code IN ('00EA', + '00F1', + '00G9')) THEN + '个车专业化销售一科' + ELSE + nvl(dt.科室名称, + z.section_office_name) + END 科室, + (CASE + WHEN to_number(to_char(a.planned_end_date, + 'yyyy')) = '2023' AND + nvl(dt.部门, + y.department_name) NOT LIKE '湖里支公司' and(cd.memo LIKE '%深圳%' OR + cd.memo LIKE '%地面%' )and v.vehicle_brand IN ('特斯拉', + '蔚来', + '理想', + '小鹏', + '极氪', + '极狐', + 'AITO', + 'ARCFOX极狐', + '特斯拉(中国)', + '特斯拉(中国)') AND + v.vin NOT IN ('LJ1E6A2UXL7744108', + 'LW433B10XL1001411', + 'LJ1E6A3U2L7742089', + 'L1NSPGHB0MA002652') THEN + '新能源车事业发展中心厦门分中心' + WHEN (CASE + WHEN to_number(to_char(a.planned_end_date, + 'yyyy')) = '2022' AND + a.selling_shop_code || a.tel_sale_4s_code = '00GK' THEN + '集美支公司' + ELSE + nvl(dt.部门, + y.department_name) + END) = '湖里支公司' THEN + (CASE + WHEN to_number(to_char(a.planned_end_date, + 'yyyy')) = '2022' AND + a.selling_shop_code || a.tel_sale_4s_code = '00GK' THEN + '集美支公司' + ELSE + nvl(dt.部门, + y.department_name) + END) + WHEN (cd.memo LIKE '%地面%' OR + cd.memo LIKE '%深圳%' ) THEN + '续保业务部' + WHEN a.planned_end_date > to_date('2023-04-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss') AND + (a.selling_shop_code || a.tel_sale_4s_code IN ('00EA', + '00F1', + '00G9')) THEN + '同安支公司' + ELSE + (CASE + WHEN to_number(to_char(a.planned_end_date, + 'yyyy')) = '2022' AND + a.selling_shop_code || a.tel_sale_4s_code = '00GK' THEN + '集美支公司' + ELSE + nvl(dt.部门, + y.department_name) + END) + END) 责任部门, + qa.USAGE_XM 使用性质, + decode(qa.bd_type, + '1', + '单交强', + '2', + '单商业', + '3', + '交商共保', + '其它') 保单类型, + (CASE + WHEN (qa.bd_type = '1' AND nt.ecompensation_rate > 1) THEN + '是' + END) 高预赔, + x.staff_name AS 经办, + bb.险种大类, + cc.signature_date 新保单签发时间, + (SELECT hmd.管控类型 + FROM (SELECT DISTINCT * + FROM dc_lsj_xb_hmd) hmd + WHERE hmd.vin = v.vin) 管控类型 + + FROM idst0.auto_agreement_t a + LEFT JOIN bb + ON bb.保单号 = a.policy_no + LEFT JOIN ywglxt.w_dxbd_i i + ON a.policy_no = i.bdh + LEFT JOIN idst0.motorised_vehicle_t v + ON a.policy_no = v.policy_no + LEFT JOIN ywglxt.q_auto_agreement_t qa + ON qa.policy_no = a.policy_no + + LEFT JOIN idst0.auto_new_product_info_t nt + ON nt.policy_no = a.policy_no + AND nt.endorsement_no = '无' + LEFT JOIN idst0.rydm_t x + ON x.staff_code = nvl(upper(i.zhjywy), + a.operator_code) + LEFT JOIN idst0.bm_t y + ON x.department_code = y.department_code + LEFT JOIN idst0.ks_t z + ON x.section_office_code = z.section_office_code + LEFT JOIN cc pt + ON pt.policy_no = a.policy_no + LEFT JOIN (SELECT DISTINCT aa.policy_no, + vv.vin, + aa.inception_date, + t.signature_date, + (pt.premium_amount - nvl(pt.tax_amount, + 0)) qdbf, + (CASE + WHEN aa.inception_date - aa.issue_date >= '30' THEN + vv.vin + END) if30, + bb.险种大类 + FROM idst0.auto_agreement_t aa + LEFT JOIN bb + ON bb.保单号 = aa.policy_no + LEFT JOIN idst0.motorised_vehicle_t vv + ON vv.policy_no = aa.policy_no + LEFT JOIN idst0.auto_agreement_request_t t + ON t.policy_no = aa.policy_no + AND t.endorsement_no = '无' + LEFT JOIN idst0.auto_premium_t pt + ON pt.policy_no = aa.policy_no + AND pt.endorsement_no = '无' + WHERE aa.policy_no = vv.policy_no + AND aa.policy_status = '1' --and aa.product_code not in ('11022400','11023900','11024000','11024600','11026000') + AND aa.branch_company_code = '3080100' + AND (pt.premium_amount - nvl(pt.tax_amount, + 0)) > 100 + AND aa.inception_date >= to_date('2022-12-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss') + AND aa.inception_date < to_date('2023-11-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss') + AND aa.branch_company_code = vv.branch_company_code) cc + ON (cc.vin = v.vin AND cc.险种大类 = bb.险种大类) + AND cc.inception_date > a.planned_end_date - 30 --时间限制放宽为30天 + LEFT JOIN dc_yangg_cx_dianxiaodoudi cd + ON cd.policy_no = a.policy_no + LEFT JOIN dc_tb_jc_c_tag dt + ON dt.保单号 = a.policy_no + LEFT JOIN idst0.auto_agreement_t aa + ON aa.policy_no = cc.policy_no + LEFT JOIN cc pt1 + ON pt1.policy_no = aa.policy_no + WHERE a.policy_status = '1' + AND a.planned_end_date - a.inception_date > 270 + AND a.planned_end_date >= to_date('2023-01-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss') + AND a.planned_end_date < to_date('2023-10-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss')), + aa2 AS + (SELECT a.policy_no 旧保单, + a.selling_shop_code 车商代码, + a.planned_end_date 到期时间, + CASE + WHEN to_number(to_char(a.planned_end_date, + 'yyyy')) = '2022' AND + a.selling_shop_code || a.tel_sale_4s_code = '00GK' THEN + '个车专业化销售一科' + WHEN a.planned_end_date > to_date('2023-04-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss') AND + (a.selling_shop_code || a.tel_sale_4s_code IN ('00EA', + '00F1', + '00G9')) THEN + '个车专业化销售一科' + ELSE + nvl(dt.科室名称, + z.section_office_name) + END 科室, + (CASE + WHEN to_number(to_char(a.planned_end_date, + 'yyyy')) = '2023' AND + nvl(dt.部门, + y.department_name) NOT LIKE '湖里支公司' and(cd.memo LIKE '%深圳%' OR + cd.memo LIKE '%地面%' )and v.vehicle_brand IN ('特斯拉', + '蔚来', + '理想', + '小鹏', + '极氪', + '极狐', + 'AITO', + 'ARCFOX极狐', + '特斯拉(中国)', + '特斯拉(中国)') AND + v.vin NOT IN ('LJ1E6A2UXL7744108', + 'LW433B10XL1001411', + 'LJ1E6A3U2L7742089', + 'L1NSPGHB0MA002652') THEN + '新能源车事业发展中心厦门分中心' + WHEN (CASE + WHEN to_number(to_char(a.planned_end_date, + 'yyyy')) = '2022' AND + a.selling_shop_code || a.tel_sale_4s_code = '00GK' THEN + '集美支公司' + ELSE + nvl(dt.部门, + y.department_name) + END) = '湖里支公司' THEN + (CASE + WHEN to_number(to_char(a.planned_end_date, + 'yyyy')) = '2022' AND + a.selling_shop_code || a.tel_sale_4s_code = '00GK' THEN + '集美支公司' + ELSE + nvl(dt.部门, + y.department_name) + END) + WHEN (cd.memo LIKE '%地面%' OR + cd.memo LIKE '%深圳%' ) THEN + '续保业务部' + WHEN a.planned_end_date > to_date('2023-04-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss') AND + (a.selling_shop_code || a.tel_sale_4s_code IN ('00EA', + '00F1', + '00G9')) THEN + '同安支公司' + ELSE + (CASE + WHEN to_number(to_char(a.planned_end_date, + 'yyyy')) = '2022' AND + a.selling_shop_code || a.tel_sale_4s_code = '00GK' THEN + '集美支公司' + ELSE + nvl(dt.部门, + y.department_name) + END) + END) 责任部门, + qa.USAGE_XM 使用性质, + decode(qa.bd_type, + '1', + '单交强', + '2', + '单商业', + '3', + '交商共保', + '其它') 保单类型, + (CASE + WHEN (qa.bd_type = '1' AND nt.ecompensation_rate > 1) THEN + '是' + END) 高预赔, + x.staff_name AS 经办, + bb.险种大类, + cc.signature_date 新保单签发时间, + (SELECT hmd.管控类型 + FROM (SELECT DISTINCT * + FROM dc_lsj_xb_hmd) hmd + WHERE hmd.vin = v.vin) 管控类型 + + FROM idst0.auto_agreement_t a + LEFT JOIN bb + ON bb.保单号 = a.policy_no + LEFT JOIN ywglxt.w_dxbd_i i + ON a.policy_no = i.bdh + LEFT JOIN idst0.motorised_vehicle_t v + ON a.policy_no = v.policy_no + LEFT JOIN ywglxt.q_auto_agreement_t qa + ON qa.policy_no = a.policy_no + LEFT JOIN idst0.auto_new_product_info_t nt + ON nt.policy_no = a.policy_no + AND nt.endorsement_no = '无' + LEFT JOIN idst0.rydm_t x + ON x.staff_code = nvl(upper(i.zhjywy), + a.operator_code) + LEFT JOIN idst0.bm_t y + ON x.department_code = y.department_code + LEFT JOIN idst0.ks_t z + ON x.section_office_code = z.section_office_code + LEFT JOIN cc pt + ON pt.policy_no = a.policy_no + LEFT JOIN (SELECT DISTINCT aa.policy_no, + vv.vin, + aa.inception_date, + t.signature_date, + (pt.premium_amount - nvl(pt.tax_amount, + 0)) qdbf, + (CASE + WHEN aa.inception_date - aa.issue_date >= '30' THEN + vv.vin + END) if30, + bb.险种大类 + FROM idst0.auto_agreement_t aa + LEFT JOIN bb + ON bb.保单号 = aa.policy_no + LEFT JOIN idst0.motorised_vehicle_t vv + ON vv.policy_no = aa.policy_no + LEFT JOIN idst0.auto_agreement_request_t t + ON t.policy_no = aa.policy_no + AND t.endorsement_no = '无' + LEFT JOIN idst0.auto_premium_t pt + ON pt.policy_no = aa.policy_no + AND pt.endorsement_no = '无' + WHERE aa.policy_no = vv.policy_no + AND aa.policy_status = '1' --and aa.product_code not in ('11022400','11023900','11024000','11024600','11026000') + AND aa.branch_company_code = '3080100' + AND (pt.premium_amount - nvl(pt.tax_amount, + 0)) > 100 + AND aa.inception_date >= to_date('2022-12-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss') + AND aa.inception_date < to_date('2023-11-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss') + AND aa.branch_company_code = vv.branch_company_code) cc + ON (cc.vin = v.vin AND cc.险种大类 = bb.险种大类) + AND cc.inception_date > a.planned_end_date - 30 --时间限制放宽为30天 + LEFT JOIN dc_yangg_cx_dianxiaodoudi cd + ON cd.policy_no = a.policy_no + LEFT JOIN dc_tb_jc_c_tag dt + ON dt.保单号 = a.policy_no + LEFT JOIN idst0.auto_agreement_t aa + ON aa.policy_no = cc.policy_no + LEFT JOIN cc pt1 + ON pt1.policy_no = aa.policy_no + WHERE a.policy_status = '1' + AND a.planned_end_date - a.inception_date > 270 + AND a.planned_end_date >= to_date('2023-10-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss') + AND a.planned_end_date < to_date('2024-01-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss')) + + , + aa3 AS + (SELECT DISTINCT * + FROM aa1 + UNION ALL (SELECT DISTINCT * + FROM aa2)) + + , + AA AS + (SELECT AA3.*, + nvl(zx.workerno, + et.telpartnercode) 坐席工号, + (CASE WHEN nvl(zx.workerno, + et.telpartnercode) = + 'DX001' AND aa3.经办 LIKE + '%建发凯迪%' THEN + '林伟华' WHEN nvl(zx.workerno, + et.telpartnercode) = + 'DX001' AND aa3.经办 NOT LIKE + '%建发凯迪%' THEN + '其他' ELSE to_char + (ys.坐席姓名) END) 坐席名称, + YS.团队 坐席团队 FROM AA3 LEFT JOIN idst0.auto_agreement_extend_t et ON et.policy_no = AA3.旧保单 LEFT JOIN idst0.t_sell_policy_autobase_t zx ON zx.policy_no = AA3.旧保单 LEFT JOIN dc_YZH_ZXYS YS ON YS.坐席工号 = nvl(zx.workerno, + et.telpartnercode)) + + , + yxb AS + ( + ---已续保 + SELECT aa.责任部门 部门, + aa.科室, + aa.经办, + aa.坐席团队, + aa.坐席名称, + aa.坐席工号, + --(case when a.标识='非首续'and A.责任部门='续保业务部' then '续保业务部' else A.部门 end) 部门, + (CASE + WHEN COUNT(1) IS NULL THEN + 0 + ELSE + COUNT(1) + END) 已续保累计 + FROM aa + WHERE aa.使用性质 IN ('家庭自用车', + '企业客车') + AND aa.高预赔 IS NULL + AND aa.管控类型 IS NULL + AND aa.保单类型 IN ( '交商共保', '单交强' ) + AND aa.到期时间 >= to_date(to_char(SYSDATE, + 'yyyy-mm') || '-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss') + AND aa.到期时间 < to_date(to_char(SYSDATE - 1, + 'yyyy-mm-dd') || ' 23:59:59', + 'yyyy-mm-dd hh24:mi:ss') + AND aa.新保单签发时间 <= to_date(to_char(SYSDATE - 1, + 'yyyy-mm-dd') || ' 23:59:59', + 'yyyy-mm-dd hh24:mi:ss') + GROUP BY aa.责任部门, + aa.科室, + aa.经办, + aa.坐席团队, + aa.坐席名称, + aa.坐席工号) + --个车续保率=已续数-累计/到期数-累计 + , + dqs AS + ( + ---到期数 + SELECT aa.责任部门 部门, + aa.科室, + aa.经办, + aa.坐席团队, + aa.坐席名称, + aa.坐席工号, + (CASE + WHEN COUNT(1) IS NULL THEN + 0 + ELSE + COUNT(1) + END) 到期数 + FROM aa + WHERE aa.使用性质 IN ('家庭自用车', + '企业客车') + AND aa.高预赔 IS NULL + AND aa.管控类型 IS NULL + AND aa.保单类型 IN ( '交商共保', '单交强' ) + AND aa.到期时间 >= to_date(to_char(SYSDATE, + 'yyyy-mm') || '-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss') + AND aa.到期时间 < to_date(to_char(SYSDATE - 1, + 'yyyy-mm-dd') || ' 23:59:59', + 'yyyy-mm-dd hh24:mi:ss') + GROUP BY aa.责任部门, + aa.科室, + aa.经办, + aa.坐席团队, + aa.坐席名称, + aa.坐席工号) + SELECT dqs.部门, + dqs.科室, + dqs.经办, + dqs.坐席团队, + dqs.坐席名称, + dqs.坐席工号, + yxb.已续保累计, + dqs.到期数 + FROM yxb, + dqs --,sdqs,syxs,cyxs,cdqs + WHERE dqs.部门 = yxb.部门 + AND dqs.经办 = yxb.经办 + AND dqs.科室 = yxb.科室 + AND dqs.坐席名称 = yxb.坐席名称 + AND dqs.坐席工号 = yxb.坐席工号; + COMMIT; + END; + + PROCEDURE chefei_daily_job IS + BEGIN + 车非基础数据(SYSDATE - 3, + SYSDATE); + END; + + PROCEDURE xubao_daily_job IS + BEGIN + 续保基本数据; + END; + +BEGIN + NULL; +END telsale_pkg; +/ diff --git a/code/db/杞﹂潪鍩虹鏁版嵁.sql b/code/db/杞﹂潪鍩虹鏁版嵁.sql index 8a137b1..3ca206c 100644 --- a/code/db/杞﹂潪鍩虹鏁版嵁.sql +++ b/code/db/杞﹂潪鍩虹鏁版嵁.sql @@ -1,36 +1,50 @@ -INSERT INTO desktop_archievement_admin.坐席车非每日保费 - WITH aa AS - (SELECT to_char(t.signature_date, - 'yyyy-mm-dd') 签单日期, - (to_char(T.signature_date, - 'yyyy')) the_year, - (to_char(T.signature_date, - 'mm')) the_month, - t.policy_no bdh, - t.endorsement_no pdh, - qt.t_cre tid, - QT.B_CRE BTID, -----添加字段 - e.inception_date qbsj, - e.planned_end_date zzsj, - pt.premium_amount - nvl(pt.tax_amount, - 0) bf - --,qt.qdbf - nvl(qt.qdbf_tax_amount,0) bf - , - nt.ecompensation_rate * (pt.premium_amount - nvl(pt.tax_amount, - 0)) fxbf, - z.department_name bm, - z.department_code bmdm, - CASE - WHEN (et.telpartnercode LIKE '%HC%' OR - zx.workerno IN (SELECT code - FROM datacenter.dc_lsj_zx_hc)) THEN - '海沧丰骏' - ELSE - '' - END 是否丰骏, - nvl(zx.workerno, - et.telpartnercode) 坐席工号, - (CASE +--INSERT INTO desktop_archievement_admin.坐席车非每日保费 +WITH aa AS + (SELECT to_char(t.signature_date, + 'yyyy-mm-dd') 签单日期, + (to_char(T.signature_date, + 'yyyy')) the_year, + (to_char(T.signature_date, + 'mm')) the_month, + t.policy_no bdh, + t.endorsement_no pdh, + qt.t_cre tid, + QT.B_CRE BTID, -----添加字段 + e.inception_date qbsj, + e.planned_end_date zzsj, + pt.premium_amount - nvl(pt.tax_amount, + 0) bf + --,qt.qdbf - nvl(qt.qdbf_tax_amount,0) bf + , + nt.ecompensation_rate * (pt.premium_amount - nvl(pt.tax_amount, + 0)) fxbf, + z.department_name bm, + z.department_code bmdm, + CASE + WHEN (et.telpartnercode LIKE '%HC%' OR zx.workerno IN (SELECT code + FROM datacenter.dc_lsj_zx_hc)) THEN + '海沧丰骏' + ELSE + '' + END 是否丰骏, + nvl(zx.workerno, + et.telpartnercode) 坐席工号, + (CASE + WHEN nvl(zx.workerno, + et.telpartnercode) = 'DX001' AND + xx.staff_name LIKE '%建发凯迪%' THEN + '林伟华' + WHEN nvl(zx.workerno, + et.telpartnercode) = 'DX001' AND + xx.staff_name NOT LIKE '%建发凯迪%' THEN + '其他' + ELSE + to_char(ys.坐席姓名) + END) 坐席名称, + YS.团队 坐席团队, + nvl(YS.团队, + y.section_office_name) 科室N, + nvl((CASE WHEN nvl(zx.workerno, et.telpartnercode) = 'DX001' AND xx.staff_name LIKE '%建发凯迪%' THEN @@ -41,269 +55,256 @@ INSERT INTO desktop_archievement_admin. '其他' ELSE to_char(ys.坐席姓名) - END) 坐席名称, - YS.团队 坐席团队, - nvl(YS.团队, - y.section_office_name) 科室N, - nvl((CASE - WHEN nvl(zx.workerno, - et.telpartnercode) = 'DX001' AND - xx.staff_name LIKE '%建发凯迪%' THEN - '林伟华' - WHEN nvl(zx.workerno, - et.telpartnercode) = 'DX001' AND - xx.staff_name NOT LIKE '%建发凯迪%' THEN - '其他' - ELSE - to_char(ys.坐席姓名) - END), - xx.staff_name) 经办人N - FROM idst0.auto_agreement_request_t t - LEFT JOIN idst0.auto_agreement_t e - ON e.policy_no = t.policy_no - LEFT JOIN idst0.motorised_vehicle_t v - ON v.policy_no = e.policy_no - LEFT JOIN idst0.auto_premium_t pt - ON pt.policy_no = t.policy_no - AND pt.endorsement_no = t.endorsement_no - LEFT JOIN ywglxt.w_dxbd_i i - ON e.policy_no = i.bdh - LEFT JOIN idst0.rydm_t xx - ON xx.staff_code = nvl(i.zhjywy, - e.operator_code) - LEFT JOIN idst0.ks_t y - ON y.section_office_code = nvl(xx.section_office_code, - e.section_office_code) - LEFT JOIN idst0.bm_t z - ON z.department_code = nvl(xx.department_code, - e.department_code) - --left join datacenter.dc_cx_csteam ct on ct.jbrcode = xx.staff_code - LEFT JOIN idst0.auto_new_product_info_t nt - ON nt.policy_no = t.policy_no - AND nt.endorsement_no = t.endorsement_no - --left join ywglxt.q_auto_agreement_extend_t qe on qe.policy_no = e.policy_no - LEFT JOIN ywglxt.q_auto_agreement_t qt - ON qt.policy_no = e.policy_no - LEFT JOIN datacenter.dc_yangg_qdcode qd - ON qd.code = e.selling_channel_type - LEFT JOIN datacenter.dc_tb_jc_c_tag cl - ON cl.保单号 = e.policy_no - LEFT JOIN datacenter.dc_yangg_basecode_teams fg - ON fg.bm = z.department_name - AND fg.ks = y.section_office_name - --left join idst0.t_sell_policy_autobase_t zx on zx.policy_no=e.policy_no - --left join idst0.auto_agreement_extend_t et on et.policy_no = e.policy_no - LEFT JOIN idst0.auto_agreement_extend_t et - ON et.policy_no = e.policy_no - LEFT JOIN idst0.t_sell_policy_autobase_t zx - ON zx.policy_no = e.policy_no - LEFT JOIN datacenter.dc_YZH_ZXYS YS - ON YS.坐席工号 = nvl(zx.workerno, - et.telpartnercode) - --left join v_lsj_dimian dm on dm.vin=v.vin and e.selling_channel_type='25' and dm.MEMO like'%地面续保%' - --left join datacenter.dc_lsj_zx_team zt on zt.name=coalesce(zc.name,zc1.name,bc.name,dm.JBRMC) - WHERE t.signature_date >= to_date('2023-01-01 00:00:00', - 'yyyy-mm-dd hh24:mi:ss') - AND t.signature_date < to_date(to_char(SYSDATE - 1, - 'yyyy-mm-dd') || ' 23:59:59', - 'yyyy-mm-dd hh24:mi:ss') - --and t.endorsement_no = '无' - AND e.policy_status = '1' --条件:保单有效 - AND qt.tflag = '0' --条件:类型为个人 - AND qt.usage_xm = '家庭自用车' - --条件:单程提车、摩托车、拖拉机 - --and e.policy_no in ('AXIMC90Y1419B038594J','AXIMC90CTP19B039593R','AXIMC04CTP19B013473X') - AND e.planned_end_date - e.inception_date >= 360 - --条件:保单周期 - ) - -----添加字段 - , - dd2 AS - (SELECT 签单日期, - the_year, - the_month, - bm, - bmdm, - 坐席工号, - 坐席名称, - 坐席团队, - 科室N, - 经办人N, - CASE - WHEN pdh = '无' THEN - tid - END tid, - to_number('1') 客户数, - COUNT(DISTINCT CASE - WHEN pdh = '无' THEN - bdh - END) 保单数, - SUM(bf) 保费 - FROM (SELECT DISTINCT * - FROM aa) aa - GROUP BY bm, - bmdm, - CASE - WHEN pdh = '无' THEN - tid - END, - the_year, - the_month, - BTID, - 坐席工号, - 坐席名称, - 坐席团队, - 签单日期, - 科室N, - 经办人N - UNION - SELECT 签单日期, - the_year, - the_month, - bm, - bmdm, - 坐席工号, - 坐席名称, - 坐席团队, - 科室N, - 经办人N, - CASE - WHEN btid = tid THEN - '' - ELSE - btid - END btid, - to_number('0') 客户数, - to_number('0') 保单数, - to_number('0') 保费 - FROM (SELECT DISTINCT * - FROM aa) aa), - DD AS - (SELECT * - FROM DD2 - WHERE TID IS NOT NULL) - --select * from dd - , - bb AS - (SELECT DISTINCT q.policy_no bdh, - q.endorsement_no pdh, - qna.t_cre tid, - to_number(to_char(q.signature_date, - 'yyyy')) || '年' nf, - (to_char(q.signature_date, - 'mm')) mm_f, - to_char(q.signature_date, - 'dd') || '日' dd, - q.signature_date sj, - round((pt.premium_amount - nvl(pt.taxamount, - 0)) * c.rate / 100, - 2) bf, - z.department_name bm - FROM idst0.nonauto_agreement_request_t q - LEFT JOIN idst0.nonauto_agreement_t e - ON e.policy_no = q.policy_no - LEFT JOIN idst0.nonauto_premium_t pt - ON pt.endorsement_no = q.endorsement_no - AND pt.policy_no = q.policy_no - LEFT JOIN idst0.reinsurance_t r - ON r.reinsurance_policy_no = e.policy_no - LEFT JOIN idst0.exrate_month_t c - ON pt.currency_code = c.bzh - AND to_char(q.signature_date, - 'YYYY') = c.theyear - AND to_char(q.signature_date, - 'fmmm') = c.themonth - - LEFT JOIN idst0.rydm_t x - ON x.staff_code = e.operator_code - LEFT JOIN idst0.ks_t y - ON y.section_office_code = x.section_office_code - LEFT JOIN idst0.bm_t z - ON z.department_code = x.department_code - LEFT JOIN ywglxt.q_nonauto_agreement_t qna - ON qna.policy_no = q.policy_no - LEFT JOIN datacenter.dc_yangg_gkxzh gk - ON gk.product_code = e.product_code --分散型险种 - --left join datacenter.dc_yangg_zbxzh zb on zb.product_code = e.product_code --政保险种 - LEFT JOIN dd - ON dd.tid = qna.t_cre - WHERE qna.tflag = '0' - AND (CASE - WHEN q.endorsement_no != '无' AND - round((pt.premium_amount - nvl(pt.taxamount, - 0)) * c.rate / 100, - 2) != 0 THEN - '是' - END) IS NULL - --and q.endorsement_no = '无' - AND e.policy_status = '1' - AND gk.product_code IS NOT NULL - AND (e.product_code LIKE '2%' OR e.product_code LIKE '1106%' --意健 --责任 - OR e.product_code LIKE '1107%' OR e.product_code LIKE '1108%' OR e.product_code LIKE '1307%' OR e.product_code LIKE '1304A400%' --家财 - - ) - --and e.product_code not in ('22KC9800') - AND q.signature_date >= to_date('2023-01-01 00:00:00', - 'yyyy-mm-dd hh24:mi:ss') - AND q.signature_date < to_date(to_char(SYSDATE - 1, - 'yyyy-mm-dd') || ' 23:59:59', - 'yyyy-mm-dd hh24:mi:ss') - AND e.planned_end_date - e.inception_date >= 90 - AND dd.tid IS NOT NULL - --车险个人客户) - ) - --SELECT * FROM BB - , - cc AS - (SELECT mm_f, - tid 融合证件, - COUNT(DISTINCT bdh) 融合保数, - SUM(bf) 融合保费 - FROM bb - GROUP BY tid, - mm_f), - ff AS - (SELECT dd.*, - cc.* - FROM dd - LEFT JOIN cc - ON cc.融合证件 = dd.tid - AND cc.mm_f = dd.the_month) --OR cc.融合证件 = dd.btid - --select * from ff - SELECT to_date(签单日期, - 'yyyy-mm-dd') 签单日期, - the_year 年份, - the_month 月份, - bm 部门, - bmdm 部门代码, - 科室N, - 经办人N, - 坐席工号, - 坐席名称, - 坐席团队, - nvl(SUM(保费), - 0) 车险个人客户保费, - nvl(SUM(融合保费), - 0) 车非融合保费 - FROM ff - WHERE to_date(ff.签单日期, - 'yyyy-mm-dd') >= DATE '2023-01-01' - AND to_date(ff.签单日期, - 'yyyy-mm-dd') <= SYSDATE - AND bm IN ('续保业务部', - '湖里支公司') - GROUP BY 签单日期, - the_year, - the_month, - bm, - bmdm, - 坐席工号, - 坐席名称, - 坐席团队, - 科室N, - 经办人N - ORDER BY 部门, - 坐席名称; + END), + xx.staff_name) 经办人N + FROM idst0.auto_agreement_request_t t + LEFT JOIN idst0.auto_agreement_t e + ON e.policy_no = t.policy_no + LEFT JOIN idst0.motorised_vehicle_t v + ON v.policy_no = e.policy_no + LEFT JOIN idst0.auto_premium_t pt + ON pt.policy_no = t.policy_no + AND pt.endorsement_no = t.endorsement_no + LEFT JOIN ywglxt.w_dxbd_i i + ON e.policy_no = i.bdh + LEFT JOIN idst0.rydm_t xx + ON xx.staff_code = nvl(i.zhjywy, + e.operator_code) + LEFT JOIN idst0.ks_t y + ON y.section_office_code = nvl(xx.section_office_code, + e.section_office_code) + LEFT JOIN idst0.bm_t z + ON z.department_code = nvl(xx.department_code, + e.department_code) + --left join datacenter.dc_cx_csteam ct on ct.jbrcode = xx.staff_code + LEFT JOIN idst0.auto_new_product_info_t nt + ON nt.policy_no = t.policy_no + AND nt.endorsement_no = t.endorsement_no + --left join ywglxt.q_auto_agreement_extend_t qe on qe.policy_no = e.policy_no + LEFT JOIN ywglxt.q_auto_agreement_t qt + ON qt.policy_no = e.policy_no + LEFT JOIN datacenter.dc_yangg_qdcode qd + ON qd.code = e.selling_channel_type + LEFT JOIN datacenter.dc_tb_jc_c_tag cl + ON cl.保单号 = e.policy_no + LEFT JOIN datacenter.dc_yangg_basecode_teams fg + ON fg.bm = z.department_name + AND fg.ks = y.section_office_name + --left join idst0.t_sell_policy_autobase_t zx on zx.policy_no=e.policy_no + --left join idst0.auto_agreement_extend_t et on et.policy_no = e.policy_no + LEFT JOIN idst0.auto_agreement_extend_t et + ON et.policy_no = e.policy_no + LEFT JOIN idst0.t_sell_policy_autobase_t zx + ON zx.policy_no = e.policy_no + LEFT JOIN datacenter.dc_YZH_ZXYS YS + ON YS.坐席工号 = nvl(zx.workerno, + et.telpartnercode) + --left join v_lsj_dimian dm on dm.vin=v.vin and e.selling_channel_type='25' and dm.MEMO like'%地面续保%' + --left join datacenter.dc_lsj_zx_team zt on zt.name=coalesce(zc.name,zc1.name,bc.name,dm.JBRMC) + WHERE t.signature_date >= to_date('2023-01-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss') + AND t.signature_date < to_date(to_char(SYSDATE - 1, + 'yyyy-mm-dd') || ' 23:59:59', + 'yyyy-mm-dd hh24:mi:ss') + --and t.endorsement_no = '无' + AND e.policy_status = '1' --条件:保单有效 + AND qt.tflag = '0' --条件:类型为个人 + AND qt.usage_xm = '家庭自用车' + --条件:单程提车、摩托车、拖拉机 + --and e.policy_no in ('AXIMC90Y1419B038594J','AXIMC90CTP19B039593R','AXIMC04CTP19B013473X') + AND e.planned_end_date - e.inception_date >= 360 + --条件:保单周期 + ) +-----添加字段 +, +dd2 AS + (SELECT 签单日期, + the_year, + the_month, + bm, + bmdm, + 坐席工号, + 坐席名称, + 坐席团队, + 科室N, + 经办人N, + CASE + WHEN pdh = '无' THEN + tid + END tid, + to_number('1') 客户数, + COUNT(DISTINCT CASE + WHEN pdh = '无' THEN + bdh + END) 保单数, + SUM(bf) 保费 + FROM (SELECT DISTINCT * + FROM aa) aa + GROUP BY bm, + bmdm, + CASE + WHEN pdh = '无' THEN + tid + END, + the_year, + the_month, + BTID, + 坐席工号, + 坐席名称, + 坐席团队, + 签单日期, + 科室N, + 经办人N + UNION + SELECT 签单日期, + the_year, + the_month, + bm, + bmdm, + 坐席工号, + 坐席名称, + 坐席团队, + 科室N, + 经办人N, + CASE + WHEN btid = tid THEN + '' + ELSE + btid + END btid, + to_number('0') 客户数, + to_number('0') 保单数, + to_number('0') 保费 + FROM (SELECT DISTINCT * + FROM aa) aa), +DD AS + (SELECT * + FROM DD2 + WHERE TID IS NOT NULL) +--select * from dd +, +bb AS + (SELECT DISTINCT q.policy_no bdh, + q.endorsement_no pdh, + qna.t_cre tid, + to_number(to_char(q.signature_date, + 'yyyy')) || '年' nf, + (to_char(q.signature_date, + 'mm')) mm_f, + to_char(q.signature_date, + 'dd') || '日' dd, + q.signature_date sj, + round((pt.premium_amount - nvl(pt.taxamount, + 0)) * c.rate / 100, + 2) bf, + z.department_name bm + FROM idst0.nonauto_agreement_request_t q + LEFT JOIN idst0.nonauto_agreement_t e + ON e.policy_no = q.policy_no + LEFT JOIN idst0.nonauto_premium_t pt + ON pt.endorsement_no = q.endorsement_no + AND pt.policy_no = q.policy_no + LEFT JOIN idst0.reinsurance_t r + ON r.reinsurance_policy_no = e.policy_no + LEFT JOIN idst0.exrate_month_t c + ON pt.currency_code = c.bzh + AND to_char(q.signature_date, + 'YYYY') = c.theyear + AND to_char(q.signature_date, + 'fmmm') = c.themonth + + LEFT JOIN idst0.rydm_t x + ON x.staff_code = e.operator_code + LEFT JOIN idst0.ks_t y + ON y.section_office_code = x.section_office_code + LEFT JOIN idst0.bm_t z + ON z.department_code = x.department_code + LEFT JOIN ywglxt.q_nonauto_agreement_t qna + ON qna.policy_no = q.policy_no + LEFT JOIN datacenter.dc_yangg_gkxzh gk + ON gk.product_code = e.product_code --分散型险种 + --left join datacenter.dc_yangg_zbxzh zb on zb.product_code = e.product_code --政保险种 + LEFT JOIN dd + ON dd.tid = qna.t_cre + WHERE qna.tflag = '0' + AND (CASE + WHEN q.endorsement_no != '无' AND + round((pt.premium_amount - nvl(pt.taxamount, + 0)) * c.rate / 100, + 2) != 0 THEN + '是' + END) IS NULL + --and q.endorsement_no = '无' + AND e.policy_status = '1' + AND gk.product_code IS NOT NULL + AND (e.product_code LIKE '2%' OR e.product_code LIKE '1106%' --意健 --责任 + OR e.product_code LIKE '1107%' OR e.product_code LIKE '1108%' OR e.product_code LIKE '1307%' OR e.product_code LIKE '1304A400%' --家财 + + ) + --and e.product_code not in ('22KC9800') + AND q.signature_date >= to_date('2023-01-01 00:00:00', + 'yyyy-mm-dd hh24:mi:ss') + AND q.signature_date < to_date(to_char(SYSDATE - 1, + 'yyyy-mm-dd') || ' 23:59:59', + 'yyyy-mm-dd hh24:mi:ss') + AND e.planned_end_date - e.inception_date >= 90 + AND dd.tid IS NOT NULL + --车险个人客户) + ) +--SELECT * FROM BB +, +cc AS + (SELECT mm_f, + tid 融合证件, + COUNT(DISTINCT bdh) 融合保数, + SUM(bf) 融合保费 + FROM bb + GROUP BY tid, + mm_f), +ff AS + (SELECT dd.*, + cc.* + FROM dd + LEFT JOIN cc + ON cc.融合证件 = dd.tid + AND cc.mm_f = dd.the_month) --OR cc.融合证件 = dd.btid +--select * from ff +SELECT to_date(签单日期, + 'yyyy-mm-dd') 签单日期, + the_year 年份, + the_month 月份, + bm 部门, + bmdm 部门代码, + 科室N, + 经办人N, + 坐席工号, + 坐席名称, + 坐席团队, + nvl(SUM(保费), + 0) 车险个人客户保费, + nvl(SUM(融合保费), + 0) 车非融合保费 + FROM ff + WHERE to_date(ff.签单日期, + 'yyyy-mm-dd') >= DATE '2023-06-01' + AND to_date(ff.签单日期, + 'yyyy-mm-dd') < DATE '2023-07-01' + AND bm IN ('续保业务部', + '湖里支公司') + GROUP BY 签单日期, + the_year, + the_month, + bm, + bmdm, + 坐席工号, + 坐席名称, + 坐席团队, + 科室N, + 经办人N + ORDER BY 部门, + 坐席名称; +/* SELECT * FROM desktop_archievement_admin.坐席车非每日保费; + */ diff --git a/code/web/task_schedule/package-lock.json b/code/web/task_schedule/package-lock.json index 9106e2f..0e9dce2 100644 --- a/code/web/task_schedule/package-lock.json +++ b/code/web/task_schedule/package-lock.json @@ -22,7 +22,7 @@ }, "devDependencies": { "@babel/eslint-parser": "^7.22.9", - "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/eslint-plugin": "^6.2.0", "@vitejs/plugin-vue": "^4.2.3", "@vue/cli-plugin-eslint": "^5.0.8", "eslint-config-recommended": "^4.1.0", @@ -1557,6 +1557,50 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.2.0.tgz", + "integrity": "sha512-1ZMNVgm5nnHURU8ZSJ3snsHzpFeNK84rdZjluEVBGNu7jDymfqceB3kdIZ6A4xCfEFFhRIB6rF8q/JIqJd2R0Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.2.0", + "@typescript-eslint/visitor-keys": "6.2.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.2.0.tgz", + "integrity": "sha512-1nRRaDlp/XYJQLvkQJG5F3uBTno5SHPT7XVcJ5n1/k2WfNI28nJsvLakxwZRNY5spuatEKO7d5nZWsQpkqXwBA==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.2.0.tgz", + "integrity": "sha512-QbaYUQVKKo9bgCzpjz45llCfwakyoxHetIy8CAvYCtd16Zu1KrpzNHofwF8kGkpPOxZB2o6kz+0nqH8ZkIzuoQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.2.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", @@ -1591,16 +1635,16 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "6.2.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-6.2.0.tgz", - "integrity": "sha512-igVYOqtiK/UsvKAmmloQAruAdUHihsOCvplJpplPZ+3h4aDkC/UKZZNKgB6h93ayuYLuEymU3h8nF1xMRbh37g==", + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-6.1.0.tgz", + "integrity": "sha512-hIzCPvX4vDs4qL07SYzyomamcs2/tQYXg5DtdAfj35AyJ5PIUqhsLf4YrEIFzZcND7R2E8tpQIZKayxg8/6Wbw==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.2.0", - "@typescript-eslint/types": "6.2.0", - "@typescript-eslint/typescript-estree": "6.2.0", - "@typescript-eslint/visitor-keys": "6.2.0", + "@typescript-eslint/scope-manager": "6.1.0", + "@typescript-eslint/types": "6.1.0", + "@typescript-eslint/typescript-estree": "6.1.0", + "@typescript-eslint/visitor-keys": "6.1.0", "debug": "^4.3.4" }, "engines": { @@ -1616,13 +1660,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.2.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.2.0.tgz", - "integrity": "sha512-1ZMNVgm5nnHURU8ZSJ3snsHzpFeNK84rdZjluEVBGNu7jDymfqceB3kdIZ6A4xCfEFFhRIB6rF8q/JIqJd2R0Q==", + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.1.0.tgz", + "integrity": "sha512-AxjgxDn27hgPpe2rQe19k0tXw84YCOsjDJ2r61cIebq1t+AIxbgiXKvD4999Wk49GVaAcdJ/d49FYel+Pp3jjw==", "dev": true, + "peer": true, "dependencies": { - "@typescript-eslint/types": "6.2.0", - "@typescript-eslint/visitor-keys": "6.2.0" + "@typescript-eslint/types": "6.1.0", + "@typescript-eslint/visitor-keys": "6.1.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1651,7 +1696,7 @@ } } }, - "node_modules/@typescript-eslint/types": { + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { "version": "6.2.0", "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.2.0.tgz", "integrity": "sha512-1nRRaDlp/XYJQLvkQJG5F3uBTno5SHPT7XVcJ5n1/k2WfNI28nJsvLakxwZRNY5spuatEKO7d5nZWsQpkqXwBA==", @@ -1660,7 +1705,7 @@ "node": "^16.0.0 || >=18.0.0" } }, - "node_modules/@typescript-eslint/typescript-estree": { + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { "version": "6.2.0", "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.2.0.tgz", "integrity": "sha512-Mts6+3HQMSM+LZCglsc2yMIny37IhUgp1Qe8yJUYVyO6rHP7/vN0vajKu3JvHCBIy8TSiKddJ/Zwu80jhnGj1w==", @@ -1683,6 +1728,93 @@ } } }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.2.0.tgz", + "integrity": "sha512-QbaYUQVKKo9bgCzpjz45llCfwakyoxHetIy8CAvYCtd16Zu1KrpzNHofwF8kGkpPOxZB2o6kz+0nqH8ZkIzuoQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.2.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/types": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.1.0.tgz", + "integrity": "sha512-+Gfd5NHCpDoHDOaU/yIF3WWRI2PcBRKKpP91ZcVbL0t5tQpqYWBs3z/GGhvU+EV1D0262g9XCnyqQh19prU0JQ==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.1.0.tgz", + "integrity": "sha512-nUKAPWOaP/tQjU1IQw9sOPCDavs/iU5iYLiY/6u7gxS7oKQoi4aUxXS1nrrVGTyBBaGesjkcwwHkbkiD5eBvcg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.1.0", + "@typescript-eslint/visitor-keys": "6.1.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", @@ -1737,6 +1869,73 @@ "eslint": "^7.0.0 || ^8.0.0" } }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.2.0.tgz", + "integrity": "sha512-1ZMNVgm5nnHURU8ZSJ3snsHzpFeNK84rdZjluEVBGNu7jDymfqceB3kdIZ6A4xCfEFFhRIB6rF8q/JIqJd2R0Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.2.0", + "@typescript-eslint/visitor-keys": "6.2.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.2.0.tgz", + "integrity": "sha512-1nRRaDlp/XYJQLvkQJG5F3uBTno5SHPT7XVcJ5n1/k2WfNI28nJsvLakxwZRNY5spuatEKO7d5nZWsQpkqXwBA==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.2.0.tgz", + "integrity": "sha512-Mts6+3HQMSM+LZCglsc2yMIny37IhUgp1Qe8yJUYVyO6rHP7/vN0vajKu3JvHCBIy8TSiKddJ/Zwu80jhnGj1w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.2.0", + "@typescript-eslint/visitor-keys": "6.2.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.2.0.tgz", + "integrity": "sha512-QbaYUQVKKo9bgCzpjz45llCfwakyoxHetIy8CAvYCtd16Zu1KrpzNHofwF8kGkpPOxZB2o6kz+0nqH8ZkIzuoQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.2.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", @@ -1771,12 +1970,13 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.2.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.2.0.tgz", - "integrity": "sha512-QbaYUQVKKo9bgCzpjz45llCfwakyoxHetIy8CAvYCtd16Zu1KrpzNHofwF8kGkpPOxZB2o6kz+0nqH8ZkIzuoQ==", + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.1.0.tgz", + "integrity": "sha512-yQeh+EXhquh119Eis4k0kYhj9vmFzNpbhM3LftWQVwqVjipCkwHBQOZutcYW+JVkjtTG9k8nrZU1UoNedPDd1A==", "dev": true, + "peer": true, "dependencies": { - "@typescript-eslint/types": "6.2.0", + "@typescript-eslint/types": "6.1.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -1788,6 +1988,7 @@ "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true, + "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } diff --git a/code/web/task_schedule/src/types/cpicxim/Department.ts b/code/web/task_schedule/src/types/cpicxim/Department.ts index e3bc06b..e20de37 100644 --- a/code/web/task_schedule/src/types/cpicxim/Department.ts +++ b/code/web/task_schedule/src/types/cpicxim/Department.ts @@ -12,6 +12,6 @@ interface Department { departmentName: string; departmentCode: string; -}; +} export { type Department }; diff --git a/code/web/task_schedule/src/types/cpicxim/RankingListItem.ts b/code/web/task_schedule/src/types/cpicxim/RankingListItem.ts index bf331ea..fcf5a12 100644 --- a/code/web/task_schedule/src/types/cpicxim/RankingListItem.ts +++ b/code/web/task_schedule/src/types/cpicxim/RankingListItem.ts @@ -13,6 +13,6 @@ interface RankingListItem index: number; callerName: string; appraiseValue: string; -}; +} export { type RankingListItem }; diff --git a/code/web/task_schedule/src/types/cpicxim/TelSaler.ts b/code/web/task_schedule/src/types/cpicxim/TelSaler.ts index 9b061bb..03d7e37 100644 --- a/code/web/task_schedule/src/types/cpicxim/TelSaler.ts +++ b/code/web/task_schedule/src/types/cpicxim/TelSaler.ts @@ -16,6 +16,6 @@ interface TelSaler teamName: string; departmentCode: string; departmentName: string; -}; +} export { type TelSaler }; diff --git a/code/web/task_schedule/src/utils/ranking.ts b/code/web/task_schedule/src/utils/ranking.ts index 233a7f3..134b21b 100644 --- a/code/web/task_schedule/src/utils/ranking.ts +++ b/code/web/task_schedule/src/utils/ranking.ts @@ -19,7 +19,7 @@ interface RankingListRequest departmentCode: string; year: string; month: string; -}; +} interface RankingListResponse { @@ -30,7 +30,7 @@ interface RankingListResponse month: string; attachingRateRankingList: RankingListItem[]; renewalRateRankingList: RankingListItem[]; -}; +} /** * 璇锋眰鍧愬腑鎺掕姒溿 diff --git a/code/web/task_schedule/src/views/DesktopArchievement.vue b/code/web/task_schedule/src/views/DesktopArchievement.vue index d51e4d2..4740188 100644 --- a/code/web/task_schedule/src/views/DesktopArchievement.vue +++ b/code/web/task_schedule/src/views/DesktopArchievement.vue @@ -113,7 +113,7 @@ interface ui showUI: boolean; // 鐢ㄦ潵鍒锋柊椤甸潰鐨勫紑鍏 attachingRankingList: RankingListItem[]; // 鍧愬腑杞﹂潪娓楅忕巼姒滃崟 renewalRankingList: RankingListItem[]; -}; +} export default { name: "DesktopArchievement", diff --git a/code/鍚庣/desktop_archievement_backend/pom.xml b/code/鍚庣/desktop_archievement_backend/pom.xml index d7a35d6..35b18a5 100644 --- a/code/鍚庣/desktop_archievement_backend/pom.xml +++ b/code/鍚庣/desktop_archievement_backend/pom.xml @@ -14,7 +14,7 @@ 17 17 5.3.24 - + @@ -86,8 +86,8 @@ jackson-annotations 2.13.4 - diff --git a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/ArchievementMapper.java b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/ArchievementMapper.java new file mode 100644 index 0000000..286a78f --- /dev/null +++ b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/ArchievementMapper.java @@ -0,0 +1,17 @@ +/* + * @Author: Kane + * @Date: 2023-07-27 11:05:53 + * @LastEditors: Kane + * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/ArchivementMapper.java + * @Description: + * + * Copyright (c) ${2022} by Kane, All Rights Reserved. + */ +package com.cpic.xim.mybatis.mapper; + +import java.util.HashMap; + +public interface ArchievementMapper +{ + public void getDepartmentArchievement(HashMap params); +} \ No newline at end of file diff --git a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/MensualArchievementItem.java b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/MensualArchievementItem.java new file mode 100644 index 0000000..8e2e344 --- /dev/null +++ b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/MensualArchievementItem.java @@ -0,0 +1,93 @@ +/* + * @Author: Kane + * @Date: 2023-07-27 11:12:19 + * @LastEditors: Kane + * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/MensualArchievementItem.java + * @Description: 姣忔湀涓氱哗瀵硅薄銆 + * + * Copyright (c) ${2022} by Kane, All Rights Reserved. + */ +package com.cpic.xim.mybatis.pojo; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class MensualArchievementItem +{ + public MensualArchievementItem() + {} + + public MensualArchievementItem( String month, String premium) + { + this.month = month; + this.premium = premium; + } + + public String getMonth() + { + return month; + } + + public void setMonth( String month ) + { + this.month = month; + } + + public String getPremium() + { + return premium; + } + + public void setPremium( String premium ) + { + this.premium = premium; + } + + @Override + public String toString() + { + return "MensualArchievementItem [month=" + month + ", premium=" + premium + "]"; + } + + @Override + public int hashCode() + { + final int prime = 31; + int result = 1; + result = prime * result + ((month == null) ? 0 : month.hashCode()); + result = prime * result + ((premium == null) ? 0 : premium.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; + MensualArchievementItem other = (MensualArchievementItem) obj; + if ( month == null ) + { + if ( other.month != null ) + return false; + } else if ( !month.equals( other.month ) ) + return false; + if ( premium == null ) + { + if ( other.premium != null ) + return false; + } else if ( !premium.equals( other.premium ) ) + return false; + return true; + } + + // 鏈堜唤 + @JsonProperty( "month" ) + private String month; + + // 鏈堟讳繚璐 + @JsonProperty( "premium" ) + private String premium; +} diff --git a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/utils/MybatisUtils.java b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/utils/MybatisUtils.java new file mode 100644 index 0000000..18866cc --- /dev/null +++ b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/utils/MybatisUtils.java @@ -0,0 +1,52 @@ +/* + * @Author: Kane + * @Date: 2023-07-27 17:22:55 + * @LastEditors: Kane + * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/utils/MybatisUtils.java + * @Description: mybatis鐨勫伐鍏烽泦鍚 + * + * Copyright (c) ${2022} by Kane, All Rights Reserved. + */ +package com.cpic.xim.mybatis.utils; + +import java.io.IOException; +import java.io.InputStream; +import java.util.HashMap; +import org.apache.ibatis.io.Resources; +import org.apache.ibatis.session.SqlSession; +import org.apache.ibatis.session.SqlSessionFactory; +import org.apache.ibatis.session.SqlSessionFactoryBuilder; + +public class MybatisUtils +{ + private static HashMap SessionMap = new HashMap<>(); + + /** + * + * @param configFile + * @return + * @throws IOException + */ + public static SqlSession getSqlSession(String configFile ) + throws IOException + { + // 鏍规嵁閰嶇疆鏂囦欢鐨勮矾寰勶紝鏌ユ壘鏄惁宸茬粡鍒涘缓浜嗗搴旂殑session + SqlSession session = SessionMap.get(configFile); + + // 鎵惧埌灏辩洿鎺ヨ繑鍥 + if ( session != null ) + { + return session; + } + + // 娌℃壘鍒板氨鍒涘缓涓涓 + InputStream configIS = Resources.getResourceAsStream(configFile); + SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(configIS); + session = factory.openSession(); + + // 淇濆瓨 + SessionMap.put(configFile, session); + + return session; + } +} \ No newline at end of file diff --git a/code/鍚庣/desktop_archievement_backend/src/main/resources/log4j2.xml b/code/鍚庣/desktop_archievement_backend/src/main/resources/log4j2.xml index 143e348..6817bea 100644 --- a/code/鍚庣/desktop_archievement_backend/src/main/resources/log4j2.xml +++ b/code/鍚庣/desktop_archievement_backend/src/main/resources/log4j2.xml @@ -4,8 +4,8 @@ - + [%t][%level][%d{HH:mm:ss.SSS}][%logger.%M{36}#%L] %msg%n diff --git a/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mapper/ArchievementMapper.xml b/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mapper/ArchievementMapper.xml new file mode 100644 index 0000000..c16ad05 --- /dev/null +++ b/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mapper/ArchievementMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mapper/StaffMapper.xml b/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mapper/StaffMapper.xml new file mode 100644 index 0000000..e21c614 --- /dev/null +++ b/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mapper/StaffMapper.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mybatis.xml b/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mybatis-config.xml similarity index 69% rename from code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mybatis.xml rename to code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mybatis-config.xml index f6cbdfb..5794368 100644 --- a/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mybatis.xml +++ b/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mybatis-config.xml @@ -1,7 +1,13 @@ - + + + + + + + @@ -13,7 +19,9 @@ + - + + \ No newline at end of file diff --git a/code/鍚庣/desktop_archievement_backend/src/test/java/com/cpic/xim/DesktopArchievement/test/DesktopArchievementTest.java b/code/鍚庣/desktop_archievement_backend/src/test/java/com/cpic/xim/DesktopArchievement/test/DesktopArchievementTest.java index ca5ec32..25cdbc5 100644 --- a/code/鍚庣/desktop_archievement_backend/src/test/java/com/cpic/xim/DesktopArchievement/test/DesktopArchievementTest.java +++ b/code/鍚庣/desktop_archievement_backend/src/test/java/com/cpic/xim/DesktopArchievement/test/DesktopArchievementTest.java @@ -9,14 +9,28 @@ */ package com.cpic.xim.DesktopArchievement.test; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import java.io.IOException; +import java.io.InputStream; import java.sql.SQLException; +import java.util.HashMap; +import org.apache.ibatis.io.Resources; +import org.apache.ibatis.session.SqlSession; +import org.apache.ibatis.session.SqlSessionFactory; +import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test; +import com.cpic.xim.mybatis.mapper.ArchievementMapper; import com.cpic.xim.utils.archievement.DepartmentArchievement; import com.cpic.xim.utils.ranking.CallerRankingList; + + @SuppressWarnings( "all" ) public class DesktopArchievementTest { + private static String configFilePath = "mybatis/mybatis-config.xml"; + @Test public void testQueryArchievement() { @@ -37,10 +51,11 @@ public class DesktopArchievementTest @Test public void testCallerRankingList() { + CallerRankingList rankingList = null; + try { - CallerRankingList rankingList = - CallerRankingList.getCallerRankingList( "QDI", "2023", "05" ); + rankingList = CallerRankingList.getCallerRankingList( "QDI", "2023", "06" ); } catch ( SQLException error ) { @@ -50,17 +65,34 @@ public class DesktopArchievementTest { error.printStackTrace(); } + + assertNotNull( rankingList ); } @Test - public void testArray() + public void testDepartmentArchievement() { - int[] num = - { 12, 3, 4, 5, 4, 45654,}; - - for ( int item : num ) + try { + InputStream configFile = Resources.getResourceAsStream( configFilePath ); + SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); + SqlSessionFactory factory = builder.build( configFile ); + SqlSession session = factory.openSession(); + + ArchievementMapper mapper = session.getMapper( ArchievementMapper.class ); + HashMap params = new HashMap<>(); + params.put("a_department_code", "QDI"); + + mapper.getDepartmentArchievement( params ); + + System.out.println(params.toString()); + + assertTrue( params.size() > 1 ); + } + catch (IOException error ) + { + assert( false ); } } }