参与方事件.sql 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397
  1. CREATE OR REPLACE PROCEDURE shanglifeecif.partytimeline_tb() -- 创建主存储过程
  2. IS
  3. BEGIN
  4. insert into shanglifeecif.partytimeline (
  5. TripID,
  6. PolicyNo,
  7. PartyID,
  8. name,
  9. PCertID,
  10. PRole,
  11. Scenario,
  12. SDate,
  13. enddate,
  14. created_by ,
  15. created_time
  16. ) select
  17. reflect("java.util.UUID", "randomUUID"),
  18. trim(contno) as contno,
  19. trim(max(customerno)) as customerno,
  20. trim(max(name)) as name,
  21. trim(max(idno)) as idno,
  22. '投保人',
  23. '投保',
  24. trim(max(polapplydate)) as polapplydate,
  25. trim(max(enddate)) as enddate,
  26. 'admin',
  27. sysdate()
  28. from dsj.policy_information WHERE contno IS NOT NULL GROUP BY contno;
  29. EXCEPTION
  30. WHEN HIVE_EXCEPTION THEN
  31. INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
  32. WHEN Others THEN
  33. INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
  34. END;
  35. /
  36. CREATE OR REPLACE PROCEDURE shanglifeecif.partytimeline_lp()
  37. IS
  38. DECLARE
  39. p_count int
  40. BEGIN
  41. insert into shanglifeecif.partytimeline (
  42. TripID,
  43. PolicyNo,
  44. PartyID,
  45. name,
  46. PCertID,
  47. PRole,
  48. Scenario,
  49. SDate,
  50. describe,
  51. created_by ,
  52. created_time
  53. ) select
  54. reflect("java.util.UUID", "randomUUID"),
  55. trim(contno) as contno,
  56. trim(INSUREDNO) as INSUREDNO,
  57. trim(INSUREDNAME) as INSUREDNAME,
  58. trim(idno) as idno,
  59. '投保人',
  60. '理赔',
  61. CASE
  62. WHEN APPLYDATE IS NOT NULL THEN APPLYDATE
  63. WHEN APPLYDATE IS NULL THEN RPTDATE
  64. END AS SDate,
  65. trim(ACCIDENTTYPE) as ACCIDENTTYPE,
  66. 'admin',
  67. sysdate()
  68. from dsj.insurance_claim WHERE contno IS NOT NULL;
  69. EXCEPTION
  70. WHEN HIVE_EXCEPTION THEN
  71. INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
  72. WHEN Others THEN
  73. INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
  74. END;
  75. /
  76. CREATE OR REPLACE PROCEDURE shanglifeecif.partytimeline_zx()
  77. IS
  78. DECLARE
  79. p_count int
  80. BEGIN
  81. insert into shanglifeecif.partytimeline (
  82. TripID,
  83. PolicyNo,
  84. PartyID,
  85. name,
  86. PRole,
  87. Scenario,
  88. SDate,
  89. DESCRIBE,
  90. created_by ,
  91. created_time
  92. ) SELECT
  93. reflect("java.util.UUID", "randomUUID"),
  94. m.contnos,
  95. max(i.customerno) customerno,
  96. max(m.econtactsName) econtactsName,
  97. '投保人' AS tbr,
  98. '咨询' AS zx,
  99. m.starttime,
  100. max(m.reasonsecondname) reasonsecondname,
  101. 'admin',
  102. sysdate()
  103. from dsj.cc_record_main m
  104. LEFT JOIN dsj.policy_information i ON m.contnos = i.contno
  105. WHERE m.contnos IS NOT NULL GROUP BY m.contnos,m.starttime;
  106. EXCEPTION
  107. WHEN HIVE_EXCEPTION THEN
  108. INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
  109. WHEN Others THEN
  110. INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
  111. END;
  112. /
  113. CREATE OR REPLACE PROCEDURE shanglifeecif.partytimeline_bq()
  114. IS
  115. DECLARE
  116. p_count int
  117. BEGIN
  118. insert into shanglifeecif.partytimeline (
  119. TripID,
  120. PolicyNo,
  121. PartyID,
  122. name,
  123. PRole,
  124. Scenario,
  125. SDate,
  126. DESCRIBE,
  127. created_by ,
  128. created_time
  129. )select
  130. reflect("java.util.UUID", "randomUUID"),
  131. e.contno,
  132. max(i.customerno),
  133. max(i.name),
  134. '投保人' AS tbr,
  135. '保全' AS bq,
  136. e.edorappdate,
  137. CASE max(e.edortype)
  138. WHEN 'AE' THEN '投保人变更'
  139. WHEN 'AM' THEN '客户联系方式变更'
  140. WHEN 'AP' THEN '自垫选择权变更'
  141. WHEN 'BB' THEN '客户基本资料变更'
  142. WHEN 'BC' THEN '受益人及受益人资料变更'
  143. WHEN 'BM' THEN '红利领取方式变更'
  144. WHEN 'BS' THEN '签名变更'
  145. WHEN 'CM' THEN '客户重要资料变更(客户层)'
  146. WHEN 'CT' THEN '退保'
  147. WHEN 'DB' THEN '红利领取'
  148. WHEN 'EN' THEN '续保方式变更'
  149. WHEN 'FM' THEN '交费期间变更'
  150. WHEN 'GC' THEN '生存金转账领取授权申请/取消'
  151. WHEN 'GM' THEN '领取方式变更'
  152. WHEN 'GT' THEN '保险公司解除合同'
  153. WHEN 'HI' THEN '补充告知'
  154. WHEN 'IC' THEN '客户重要资料变更(保单层)'
  155. WHEN 'IO' THEN '职业类别变更'
  156. WHEN 'LG' THEN '生存给付'
  157. WHEN 'LN' THEN '保单借款'
  158. WHEN 'LR' THEN '保单补发'
  159. WHEN 'NS' THEN '新增附加险'
  160. WHEN 'OP' THEN '万能险部分领取'
  161. WHEN 'PC' THEN '交费方式及交费账号变更'
  162. WHEN 'PL' THEN '保单挂失与挂失解除'
  163. WHEN 'PM' THEN '交费间隔变更'
  164. WHEN 'PR' THEN '保单迁移'
  165. WHEN 'PT' THEN '减保'
  166. WHEN 'PU' THEN '减额交清'
  167. WHEN 'RB' THEN '保全回退'
  168. WHEN 'RE' THEN '保单复效'
  169. WHEN 'RF' THEN '贷款清偿'
  170. WHEN 'SC' THEN '特别约定变更'
  171. WHEN 'TR' THEN '保费自垫清偿'
  172. WHEN 'WT' THEN '犹豫期退保'
  173. WHEN 'XS' THEN '协议减保'
  174. WHEN 'XT' THEN '协议退保'
  175. END AS edortype,
  176. 'admin',
  177. sysdate()
  178. from dsj.edorinfo e
  179. LEFT JOIN dsj.policy_information i ON e.contno = i.contno
  180. WHERE e.contno IS NOT NULL
  181. GROUP BY e.contno,e.edorappdate;
  182. EXCEPTION
  183. WHEN HIVE_EXCEPTION THEN
  184. INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
  185. WHEN Others THEN
  186. INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
  187. END
  188. CREATE OR REPLACE PROCEDURE shanglifeecif.partytimeline_hf()
  189. IS
  190. DECLARE
  191. p_count int
  192. BEGIN
  193. insert into shanglifeecif.partytimeline (
  194. TripID,
  195. PolicyNo,
  196. PartyID,
  197. name,
  198. PRole,
  199. Scenario,
  200. SDate,
  201. DESCRIBE,
  202. created_by ,
  203. created_time
  204. ) SELECT
  205. reflect("java.util.UUID", "randomUUID"),
  206. cad.productno,
  207. cac.customerno,
  208. max(cac.customername),
  209. '投保人',
  210. '回访',
  211. cad.inserttime,
  212. CASE max(cad.actiondefguid)
  213. when '402837815c1a4fc6015c1a735351122d' then '特殊回访'
  214. when '402837815c1a4fc6015c1a735350012a' then '其他回访'
  215. when '402837815c2ff6b5015c3005e7fb0004' then '失效回访'
  216. when '402837815c2ff6b5015c3005e7fb2222' then '回执超期回访'
  217. when '402837815c2ff6b5015c3005e7fb0003' then '宽限期50天'
  218. when '402837815c2ff6b5015c3005e7fb0002' then '宽限期30天'
  219. when '402837815c1a4fc6015c1a735350012f' then '新契约回访'
  220. when '402837815c2ff6b5015c3005e7fb0001' then '续期回访'
  221. end ,
  222. 'admin',
  223. sysdate()
  224. FROM dsj.CC_ACTION_DATA cad,dsj.cc_action_customerinfo cac
  225. WHERE cac.unioncustomerid = cad.unioncustomerid AND cad.inserttime IS NOT null GROUP BY cad.productno,cac.customerno,cad.inserttime;
  226. EXCEPTION
  227. WHEN HIVE_EXCEPTION THEN
  228. INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
  229. WHEN Others THEN
  230. INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
  231. END;
  232. CREATE OR REPLACE PROCEDURE shanglifeecif.partytimeline_ts()
  233. IS
  234. DECLARE
  235. p_count int
  236. BEGIN
  237. insert into shanglifeecif.partytimeline (
  238. TripID,
  239. PolicyNo,
  240. PartyID,
  241. name,
  242. PRole,
  243. Scenario,
  244. SDate,
  245. DESCRIBE,
  246. created_by ,
  247. created_time
  248. ) SELECT
  249. reflect("java.util.UUID", "randomUUID"),
  250. max(ac.productnos),
  251. max(i.customerno),
  252. max(ac.complaintsname),
  253. '投保人'||CASE max(ac.complaintsrelation)
  254. WHEN '201' THEN ''
  255. WHEN '202' THEN '子女'
  256. WHEN '203' THEN '配偶'
  257. WHEN '204' THEN '父母'
  258. WHEN '205' THEN '其他关系'
  259. END AS complaintsrelation,
  260. '投诉',
  261. ac.inserttime ,
  262. CASE max(ac.resultclassification)
  263. WHEN '101' THEN '销售纠纷'
  264. WHEN '102' THEN '理赔纠纷'
  265. WHEN '103' THEN '退保纠纷'
  266. WHEN '104' THEN '承保纠纷'
  267. WHEN '105' THEN '续收续保纠纷'
  268. WHEN '106' THEN '保全纠纷'
  269. WHEN '107' THEN '其他'
  270. END as resultclassification,
  271. 'admin',
  272. sysdate
  273. FROM dsj.cc_action_complaints ac
  274. LEFT JOIN dsj.policy_information i ON ac.productnos = i.contno
  275. WHERE ac.productnos IS NOT NULL AND i.customerno IS NOT NULL
  276. GROUP BY ac.inserttime ;
  277. EXCEPTION
  278. WHEN HIVE_EXCEPTION THEN
  279. INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
  280. WHEN Others THEN
  281. INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
  282. END;
  283. CREATE OR REPLACE PROCEDURE shanglifeecif.partytimeline_tuibao()
  284. IS
  285. DECLARE
  286. p_count int
  287. BEGIN
  288. insert into shanglifeecif.partytimeline (
  289. TripID,
  290. PolicyNo,
  291. PartyID,
  292. name,
  293. PRole,
  294. Scenario,
  295. SDate,
  296. DESCRIBE,
  297. created_by ,
  298. created_time
  299. ) SELECT
  300. reflect("java.util.UUID", "randomUUID"),
  301. trim(t.contno) as contno,
  302. trim(t.customerno) as customerno,
  303. trim(t.name) as name,
  304. trim(t.tbr) as tbr,
  305. trim(t.tb) as tb,
  306. trim(t.edorappdate) as edorappdate,
  307. t.edorreason,
  308. 'admin',
  309. sysdate()
  310. FROM (
  311. SELECT
  312. row_number() over(partition by i.contno) rn,
  313. lm.contno,
  314. i.customerno,
  315. i.name,
  316. '投保人' AS tbr,
  317. '退保' AS tb,
  318. to_char(lm.edorappdate,"yyyy-MM-dd") edorappdate,
  319. CASE lm.edorreasoncode
  320. WHEN '01' THEN '死亡'
  321. WHEN '02' THEN '失踪'
  322. WHEN '03' THEN '离异'
  323. WHEN '04' THEN '债权转移'
  324. WHEN '05' THEN '被保险人成年'
  325. WHEN '06' THEN '其它'
  326. ELSE '其它'
  327. END AS edorreason
  328. FROM dsj.lpedoritem lm,dsj.policy_information i
  329. where lm.contno = i.contno AND lm.edortype='CT' AND lm.edorstate = 0
  330. ) t WHERE t.rn = 1;
  331. EXCEPTION
  332. WHEN HIVE_EXCEPTION THEN
  333. INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
  334. WHEN Others THEN
  335. INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
  336. END;
  337. CREATE OR REPLACE PROCEDURE shanglifeecif.partytimeline_xq() -- 创建主存储过程
  338. IS
  339. BEGIN
  340. insert into shanglifeecif.partytimeline (
  341. TripID,
  342. PolicyNo,
  343. PartyID,
  344. name,
  345. PRole,
  346. Scenario,
  347. SDate,
  348. created_by ,
  349. created_time
  350. ) select
  351. reflect("java.util.UUID", "randomUUID"),
  352. lp.contno,
  353. lp.appntno,
  354. '',
  355. '投保人',
  356. '续期',
  357. to_char(lp.paydate,'yyyy-MM-dd'),
  358. 'admin',
  359. sysdate
  360. FROM dsj.ljapayperson lp WHERE lp.paycount > 1;
  361. EXCEPTION
  362. WHEN HIVE_EXCEPTION THEN
  363. INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
  364. WHEN Others THEN
  365. INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
  366. END;
  367. CREATE OR REPLACE PROCEDURE shanglifeecif.partytimeline_main()
  368. IS
  369. BEGIN
  370. DELETE FROM shanglifeecif.partytimeline;
  371. shanglifeecif.partytimeline_tb();
  372. shanglifeecif.partytimeline_lp();
  373. shanglifeecif.partytimeline_zx();
  374. shanglifeecif.partytimeline_bq();
  375. END;