|
@@ -67,6 +67,7 @@ case class CreditPunishmentCaseAgg(s: SparkSession
|
|
|
| ,company_zxr_final_case_num BIGINT COMMENT '终本案件条数'
|
|
|
| ,company_zxr_restrict_num BIGINT COMMENT '限高条数'
|
|
|
| ,deleted BIGINT COMMENT '0:未删除,1:删除'
|
|
|
+ | ,all_rowkey STRING COMMENT '所有rowkey的集合,包含历史非历史'
|
|
|
|)
|
|
|
|COMMENT '信用惩戒查询案件表'
|
|
|
|PARTITIONED BY
|
|
@@ -80,20 +81,40 @@ case class CreditPunishmentCaseAgg(s: SparkSession
|
|
|
|
|
|
private def getCreditPunishmentDataExtraction(ds: String): String = {
|
|
|
val tmp_view = "credit_punishment_data_extraction_calc"
|
|
|
+
|
|
|
+ //去重 tn + rowkey + name
|
|
|
+ //关联 (rowkey + tn) or (case_no + court_name)
|
|
|
+
|
|
|
if (ds == null) {
|
|
|
sql(
|
|
|
s"""
|
|
|
|SELECT *
|
|
|
- |FROM ${CreditPunishment.extractionTargetTab}
|
|
|
- |WHERE ds > '0'
|
|
|
+ |FROM (
|
|
|
+ | SELECT *
|
|
|
+ | ,ROW_NUMBER() OVER(PARTITION BY tn,rowkey,name ORDER BY ds DESC) AS num
|
|
|
+ | FROM (
|
|
|
+ | SELECT *
|
|
|
+ | FROM ${CreditPunishment.extractionTargetTab}
|
|
|
+ | WHERE ds > '0'
|
|
|
+ | )
|
|
|
+ | )
|
|
|
+ |WHERE num = 1
|
|
|
|""".stripMargin)
|
|
|
.createTempView(tmp_view)
|
|
|
} else {
|
|
|
sql(
|
|
|
s"""
|
|
|
|SELECT *
|
|
|
- |FROM ${CreditPunishment.extractionTargetTab}
|
|
|
- |WHERE ds > '$ds'
|
|
|
+ |FROM (
|
|
|
+ | SELECT *
|
|
|
+ | ,ROW_NUMBER() OVER(PARTITION BY tn,rowkey,name ORDER BY ds DESC) AS num
|
|
|
+ | FROM (
|
|
|
+ | SELECT *
|
|
|
+ | FROM ${CreditPunishment.extractionTargetTab}
|
|
|
+ | WHERE ds > '$ds'
|
|
|
+ | )
|
|
|
+ | )
|
|
|
+ |WHERE num = 1
|
|
|
|""".stripMargin)
|
|
|
.createTempView(tmp_view)
|
|
|
}
|
|
@@ -101,13 +122,88 @@ case class CreditPunishmentCaseAgg(s: SparkSession
|
|
|
}
|
|
|
|
|
|
|
|
|
- def calc(ds:String): Unit = {
|
|
|
+ private def getAllDataByTmpData(tmpTab: String): String = {
|
|
|
+
|
|
|
+ val cols = getColumns(CreditPunishment.caseTargetTab)
|
|
|
+ sql(
|
|
|
+ s"""
|
|
|
+ |SELECT
|
|
|
+ | split(xjk_rowkey,'@@') [0 ] AS tn
|
|
|
+ | ,split(xjk_rowkey,'@@') [1 ] AS rowkey
|
|
|
+ |FROM (
|
|
|
+ | SELECT
|
|
|
+ | *
|
|
|
+ | ,ROW_NUMBER() OVER(PARTITION BY xjk_rowkey ORDER BY xjk_rowkey DESC ) AS num
|
|
|
+ | FROM (
|
|
|
+ | SELECT *
|
|
|
+ | FROM (
|
|
|
+ | SELECT t2.*
|
|
|
+ | FROM (
|
|
|
+ | SELECT DISTINCT credit_punishment_case_id
|
|
|
+ | FROM ${tmpTab}
|
|
|
+ | ) AS t1
|
|
|
+ | JOIN (
|
|
|
+ | SELECT *
|
|
|
+ | FROM ${CreditPunishment.caseTargetTab}
|
|
|
+ | WHERE ds > '0'
|
|
|
+ | ) AS t2
|
|
|
+ | ON t1.credit_punishment_case_id = t2.credit_punishment_case_id
|
|
|
+ | UNION ALL
|
|
|
+ | SELECT ${cols.diff(Seq("ds")).mkString(",")},'${BaseUtil.getYesterday()}' as ds
|
|
|
+ | FROM ${tmpTab}
|
|
|
+ | UNION ALL
|
|
|
+ | SELECT tt2.*
|
|
|
+ | FROM (
|
|
|
+ | SELECT DISTINCT credit_punishment_entity_id
|
|
|
+ | FROM ${tmpTab}
|
|
|
+ | ) AS tt1
|
|
|
+ | JOIN (
|
|
|
+ | SELECT *
|
|
|
+ | FROM ${CreditPunishment.caseTargetTab}
|
|
|
+ | WHERE ds > '0'
|
|
|
+ | ) AS tt2
|
|
|
+ | ON tt1.credit_punishment_entity_id = tt2.credit_punishment_entity_id
|
|
|
+ | ) AS tab3
|
|
|
+ | LATERAL VIEW explode(split(all_rowkey,',')) tt AS xjk_rowkey )
|
|
|
+ | )
|
|
|
+ |WHERE num = 1
|
|
|
+ |
|
|
|
+ |""".stripMargin)
|
|
|
+ .createTempView("all_rowkey")
|
|
|
+
|
|
|
+ sql(
|
|
|
+ s"""
|
|
|
+ |SELECT *
|
|
|
+ |FROM (
|
|
|
+ | SELECT *
|
|
|
+ | ,ROW_NUMBER() OVER(PARTITION BY rowkey,tn,name ORDER BY ds DESC) AS num
|
|
|
+ | FROM (
|
|
|
+ | SELECT t1.*
|
|
|
+ | FROM (
|
|
|
+ | SELECT *
|
|
|
+ | FROM winhc_ng.bds_credit_punishment_data_extraction
|
|
|
+ | WHERE ds > '0'
|
|
|
+ | ) AS t1
|
|
|
+ | JOIN all_rowkey AS t2
|
|
|
+ | ON t1.rowkey = t2.rowkey
|
|
|
+ | AND t1.tn = t2.tn
|
|
|
+ | )
|
|
|
+ | )
|
|
|
+ |WHERE num = 1
|
|
|
+ |""".stripMargin)
|
|
|
+
|
|
|
+ .createTempView("all_record")
|
|
|
+ "all_record"
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ def calc(ds: String): Unit = {
|
|
|
val args = StartAndEndDsUtils(spark).get_gt_ds(CreditPunishment.extractionTargetTab, CreditPunishment.caseTargetTab)
|
|
|
|
|
|
val org_tab = getCreditPunishmentDataExtraction(args.inc_tab_gt_ds)
|
|
|
sql(
|
|
|
s"""
|
|
|
- |INSERT ${if (isWindows) "INTO" else "OVERWRITE"} TABLE $target_tab PARTITION(ds='${ds}')
|
|
|
+ |---INSERT ${if (isWindows) "INTO" else "OVERWRITE"} TABLE $target_tab PARTITION(ds='${ds}')
|
|
|
|SELECT md5(cleanup(CONCAT_WS('',name,court_name,case_no))) AS credit_punishment_case_id
|
|
|
| ,generate_entity_id(mm['keyno'],mm['card_num'],md5(CONCAT_WS('',mm['card_num'],name)),md5(cleanup(CONCAT_WS('',name,court_name,case_no)))) as credit_punishment_entity_id
|
|
|
| ,name
|
|
@@ -129,6 +225,7 @@ case class CreditPunishmentCaseAgg(s: SparkSession
|
|
|
| ,CAST(mm['company_zxr_final_case_num'] AS BIGINT) AS company_zxr_final_case_num
|
|
|
| ,CAST(mm['company_zxr_restrict_num'] AS BIGINT) AS company_zxr_restrict_num
|
|
|
| ,cast(mm['deleted'] as bigint) AS deleted
|
|
|
+ | ,mm['all_rowkey'] AS all_rowkey
|
|
|
|FROM (
|
|
|
| SELECT name
|
|
|
| ,court_name
|
|
@@ -141,5 +238,48 @@ case class CreditPunishmentCaseAgg(s: SparkSession
|
|
|
| )
|
|
|
|WHERE name IS NOT NULL and trim(name) <> ''
|
|
|
|""".stripMargin)
|
|
|
+ .cache()
|
|
|
+ .createTempView(s"tmp_data1")
|
|
|
+
|
|
|
+ val all_record = getAllDataByTmpData("tmp_data1")
|
|
|
+
|
|
|
+
|
|
|
+ sql(
|
|
|
+ s"""
|
|
|
+ |INSERT ${if (isWindows) "INTO" else "OVERWRITE"} TABLE $target_tab PARTITION(ds='${ds}')
|
|
|
+ |SELECT md5(cleanup(CONCAT_WS('',name,court_name,case_no))) AS credit_punishment_case_id
|
|
|
+ | ,generate_entity_id(mm['keyno'],mm['card_num'],md5(CONCAT_WS('',mm['card_num'],name)),md5(cleanup(CONCAT_WS('',name,court_name,case_no)))) as credit_punishment_entity_id
|
|
|
+ | ,name
|
|
|
+ | ,court_name
|
|
|
+ | ,case_no
|
|
|
+ | ,mm['rowkey'] AS rowkey
|
|
|
+ | ,mm['card_num'] AS card_num
|
|
|
+ | ,mm['keyno'] AS keyno
|
|
|
+ | ,mm['label'] AS label
|
|
|
+ | ,mm['case_create_time'] AS case_create_time
|
|
|
+ | ,cast(mm['record_num'] as bigint) AS record_num
|
|
|
+ | ,mm['total_exec_amount'] AS total_exec_amount
|
|
|
+ | ,mm['total_no_exec_amount'] AS total_no_exec_amount
|
|
|
+ | ,mm['zxr_total_exec_amount'] AS zxr_total_exec_amount
|
|
|
+ | ,mm['final_case_exec_amount'] AS final_case_exec_amount
|
|
|
+ | ,mm['final_case_no_exec_amount'] AS final_case_no_exec_amount
|
|
|
+ | ,CAST(mm['company_dishonest_info_num'] AS BIGINT) AS company_dishonest_info_num
|
|
|
+ | ,CAST(mm['company_zxr_num'] AS BIGINT) AS company_zxr_num
|
|
|
+ | ,CAST(mm['company_zxr_final_case_num'] AS BIGINT) AS company_zxr_final_case_num
|
|
|
+ | ,CAST(mm['company_zxr_restrict_num'] AS BIGINT) AS company_zxr_restrict_num
|
|
|
+ | ,cast(mm['deleted'] as bigint) AS deleted
|
|
|
+ | ,mm['all_rowkey'] AS all_rowkey
|
|
|
+ |FROM (
|
|
|
+ | SELECT name
|
|
|
+ | ,court_name
|
|
|
+ | ,case_no
|
|
|
+ | ,credit_punishment_case_agg(rowkey,tn,keyno,card_num,case_create_time,deleted,detail_data) AS mm
|
|
|
+ | FROM $all_record
|
|
|
+ | GROUP BY name
|
|
|
+ | ,court_name
|
|
|
+ | ,case_no
|
|
|
+ | )
|
|
|
+ |WHERE name IS NOT NULL and trim(name) <> ''
|
|
|
+ |""".stripMargin)
|
|
|
}
|
|
|
}
|