|
@@ -1,18 +1,115 @@
|
|
package com.winhc.bigdata.spark.ng.dynamic.handle
|
|
package com.winhc.bigdata.spark.ng.dynamic.handle
|
|
|
|
|
|
-import com.winhc.bigdata.spark.ng.dynamic.{ChangeExtract, CompanyDynamicRecord, NgCompanyDynamicHandle}
|
|
|
|
|
|
+import com.winhc.bigdata.spark.ng.dynamic.{AssociationEntityInfo, ChangeExtract, CompanyDynamicRecord, NgCompanyDynamicHandle, NgCompanyRiskLevelType}
|
|
|
|
+
|
|
|
|
+import scala.collection.mutable
|
|
|
|
|
|
/**
|
|
/**
|
|
* @author: XuJiakai
|
|
* @author: XuJiakai
|
|
* @date: 2021/6/23 10:43
|
|
* @date: 2021/6/23 10:43
|
|
*/
|
|
*/
|
|
case class company_holder() extends NgCompanyDynamicHandle {
|
|
case class company_holder() extends NgCompanyDynamicHandle {
|
|
- override def flat_map:( ChangeExtract)=> Seq[CompanyDynamicRecord] = (c:ChangeExtract)=>{
|
|
|
|
- null
|
|
|
|
|
|
+ override def flat_map: (ChangeExtract) => Seq[CompanyDynamicRecord] = (change_extract: ChangeExtract) => {
|
|
|
|
+ val change_fields = change_extract.change_fields
|
|
|
|
+ val tn = change_extract.tn
|
|
|
|
+ val company_id = change_extract.company_id
|
|
|
|
+ val company_name = change_extract.company_name
|
|
|
|
+ val update_type = change_extract.update_type
|
|
|
|
+ val old_data = change_extract.old_data
|
|
|
|
+ val new_data = change_extract.new_data
|
|
|
|
+ val biz_date = change_extract.biz_date
|
|
|
|
+ val rowkey = change_extract.rowkey
|
|
|
|
+ val update_time = change_extract.update_time
|
|
|
|
+ var list: mutable.Seq[CompanyDynamicRecord] = mutable.Seq.empty
|
|
|
|
+ update_type match {
|
|
|
|
+ case "insert" => {
|
|
|
|
+ val n_company_id = new_data("company_id")
|
|
|
|
+ val n_company_name = new_data("company_name")
|
|
|
|
+ val n_holder_name = new_data("holder_name")
|
|
|
|
+ val n_holder_id = new_data("holder_id")
|
|
|
|
+
|
|
|
|
+ val entityInfo: Seq[AssociationEntityInfo] = Seq(
|
|
|
|
+ AssociationEntityInfo(keyno = n_company_id, name = n_company_name, risk_level = NgCompanyRiskLevelType.Prompt, rta_info = null)
|
|
|
|
+ , AssociationEntityInfo(keyno = n_holder_id, name = n_holder_name, risk_level = NgCompanyRiskLevelType.Prompt, rta_info = null)
|
|
|
|
+ )
|
|
|
|
+ val code = "100200"
|
|
|
|
+ val dynamic_info = Map(
|
|
|
|
+ "code" -> code,
|
|
|
|
+ "description" -> "新增股东"
|
|
|
|
+ )
|
|
|
|
+ list = list :+ getCompanyDynamicRecord(change_extract, dynamic_info, null, entityInfo)
|
|
|
|
+ }
|
|
|
|
+ case "create" => {
|
|
|
|
+ val n_holder_name = new_data("holder_name")
|
|
|
|
+ val n_holder_id = new_data("holder_id")
|
|
|
|
+
|
|
|
|
+ val entityInfo: Seq[AssociationEntityInfo] = Seq(
|
|
|
|
+ AssociationEntityInfo(keyno = n_holder_id, name = n_holder_name, risk_level = NgCompanyRiskLevelType.Prompt, rta_info = null)
|
|
|
|
+ )
|
|
|
|
+ val code = "100201"
|
|
|
|
+ val dynamic_info = Map(
|
|
|
|
+ "code" -> code,
|
|
|
|
+ "description" -> "公司创始股东"
|
|
|
|
+ )
|
|
|
|
+ list = list :+ getCompanyDynamicRecord(change_extract, dynamic_info, code, entityInfo)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ case "update" => {
|
|
|
|
+ if (change_fields.contains("amount")) {
|
|
|
|
+ val old_amount = old_data("amount")
|
|
|
|
+ val new_amount = new_data("amount")
|
|
|
|
+
|
|
|
|
+ val n_company_id = new_data("company_id")
|
|
|
|
+ val n_company_name = new_data("company_name")
|
|
|
|
+ val n_holder_name = new_data("holder_name")
|
|
|
|
+ val n_holder_id = new_data("holder_id")
|
|
|
|
+
|
|
|
|
+ val entityInfo: Seq[AssociationEntityInfo] = Seq(
|
|
|
|
+ AssociationEntityInfo(keyno = n_company_id, name = n_company_name, risk_level = NgCompanyRiskLevelType.Prompt, rta_info = null)
|
|
|
|
+ , AssociationEntityInfo(keyno = n_holder_id, name = n_holder_name, risk_level = NgCompanyRiskLevelType.Prompt, rta_info = null)
|
|
|
|
+ )
|
|
|
|
+ val code = "100202"
|
|
|
|
+ val dynamic_info = Map(
|
|
|
|
+ "code" -> code,
|
|
|
|
+ "description" -> "股东出资额发变化"
|
|
|
|
+ )
|
|
|
|
+ list = list :+ getCompanyDynamicRecord(change_extract, dynamic_info, code, entityInfo)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ case "deleted" => {
|
|
|
|
+ val n_company_id = new_data("company_id")
|
|
|
|
+ val n_company_name = new_data("company_name")
|
|
|
|
+ val n_holder_name = new_data("holder_name")
|
|
|
|
+ val n_holder_id = new_data("holder_id")
|
|
|
|
+
|
|
|
|
+ val entityInfo: Seq[AssociationEntityInfo] = Seq(
|
|
|
|
+ AssociationEntityInfo(keyno = n_company_id, name = n_company_name, risk_level = NgCompanyRiskLevelType.Prompt, rta_info = null)
|
|
|
|
+ , AssociationEntityInfo(keyno = n_holder_id, name = n_holder_name, risk_level = NgCompanyRiskLevelType.Prompt, rta_info = null)
|
|
|
|
+ )
|
|
|
|
+ val code = "100203"
|
|
|
|
+ val dynamic_info = Map(
|
|
|
|
+ "code" -> code,
|
|
|
|
+ "description" -> "股东退出"
|
|
|
|
+ )
|
|
|
|
+ list = list :+ getCompanyDynamicRecord(change_extract, dynamic_info, code, entityInfo)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ list
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ override def group_by_key: CompanyDynamicRecord => String = (cdr: CompanyDynamicRecord) => {
|
|
|
|
+ val info = cdr.association_entity_info.filter(_.keyno != null).find(r => r.keyno.length == 32).orNull
|
|
|
|
+ if (info == null) {
|
|
|
|
+ cdr.id
|
|
|
|
+ } else {
|
|
|
|
+ info.keyno
|
|
|
|
+ }
|
|
}
|
|
}
|
|
-/*
|
|
|
|
- override def group_by_key: (CompanyDynamicRecord) => String = (c: CompanyDynamicRecord) => {
|
|
|
|
- println("group_by_key")
|
|
|
|
- "xjk"
|
|
|
|
- }*/
|
|
|
|
|
|
+
|
|
|
|
+ override def group_by_flat_map: Seq[CompanyDynamicRecord] => Seq[CompanyDynamicRecord] = (seq: Seq[CompanyDynamicRecord]) => {
|
|
|
|
+ seq
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|