Bläddra i källkod

feat(ng.dynamic): 简单维度的动态配置化

JimZhang 3 år sedan
förälder
incheckning
ea7b11d9be
31 ändrade filer med 305 tillägg och 83 borttagningar
  1. 1 1
      src/main/scala/com/winhc/bigdata/spark/ng/change/utils/Bool.scala
  2. 1 1
      src/main/scala/com/winhc/bigdata/spark/ng/change/table/auction_tracking.scala
  3. 1 1
      src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_abnormal_info.scala
  4. 1 1
      src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_court_announcement.scala
  5. 1 1
      src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_court_open_announcement.scala
  6. 1 1
      src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_court_register.scala
  7. 1 1
      src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_env_punishment.scala
  8. 1 1
      src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_illegal_info.scala
  9. 1 1
      src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_own_tax.scala
  10. 1 1
      src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_punishment_info.scala
  11. 1 1
      src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_punishment_info_creditchina.scala
  12. 1 1
      src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_send_announcement.scala
  13. 1 1
      src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_tax_contravention.scala
  14. 1 1
      src/main/scala/com/winhc/bigdata/spark/ng/change/table/zxr_evaluate_results.scala
  15. 1 0
      src/main/scala/com/winhc/bigdata/spark/ng/dynamic/NgCompanyDynamicHandle.scala
  16. 3 5
      src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/auction_tracking.scala
  17. 3 8
      src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_abnormal_info.scala
  18. 4 5
      src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_court_announcement.scala
  19. 4 5
      src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_court_open_announcement.scala
  20. 4 5
      src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_court_register.scala
  21. 3 5
      src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_env_punishment.scala
  22. 3 5
      src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_illegal_info.scala
  23. 3 5
      src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_own_tax.scala
  24. 3 5
      src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_punishment_info.scala
  25. 4 5
      src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_punishment_info_creditchina.scala
  26. 3 8
      src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_send_announcement.scala
  27. 3 8
      src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_tax_contravention.scala
  28. 21 0
      src/main/scala/com/winhc/bigdata/spark/ng/dynamic/utils/ComplexDailyDynamic.scala
  29. 164 0
      src/main/scala/com/winhc/bigdata/spark/ng/dynamic/utils/DynamicDimConfiguration.scala
  30. 45 0
      src/main/scala/com/winhc/bigdata/spark/ng/dynamic/utils/DynamicFiledUtils.scala
  31. 20 0
      src/main/scala/com/winhc/bigdata/spark/ng/dynamic/utils/SimpleDailyDynamic.scala

+ 1 - 1
src/main/scala/com/winhc/bigdata/spark/ng/change/utils/Bool.scala

@@ -1,4 +1,4 @@
-package com.winhc.bigdata.spark.ng.change.utils
+package com.winhc.bigdata.spark.implicits
 
 import scala.language.implicitConversions
 

+ 1 - 1
src/main/scala/com/winhc/bigdata/spark/ng/change/table/auction_tracking.scala

@@ -4,7 +4,7 @@ package com.winhc.bigdata.spark.ng.change.table
 
 import com.winhc.bigdata.spark.ng.change.NgCompanyChangeHandle
 import com.winhc.bigdata.spark.utils.DateUtils
-import com.winhc.bigdata.spark.ng.change.utils.Bool._
+import com.winhc.bigdata.spark.implicits.Bool._
 
 case class auction_tracking(equCols: Seq[String],is_inc:Boolean) extends NgCompanyChangeHandle {
 

+ 1 - 1
src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_abnormal_info.scala

@@ -4,7 +4,7 @@ package com.winhc.bigdata.spark.ng.change.table
 
 import com.winhc.bigdata.spark.ng.change.NgCompanyChangeHandle
 import com.winhc.bigdata.spark.utils.DateUtils
-import com.winhc.bigdata.spark.ng.change.utils.Bool._
+import com.winhc.bigdata.spark.implicits.Bool._
 
 case class company_abnormal_info(equCols: Seq[String],is_inc:Boolean) extends NgCompanyChangeHandle {
 

+ 1 - 1
src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_court_announcement.scala

@@ -4,7 +4,7 @@ package com.winhc.bigdata.spark.ng.change.table
 
 import com.winhc.bigdata.spark.ng.change.NgCompanyChangeHandle
 import com.winhc.bigdata.spark.utils.DateUtils
-import com.winhc.bigdata.spark.ng.change.utils.Bool._
+import com.winhc.bigdata.spark.implicits.Bool._
 
 
 case class company_court_announcement(equCols: Seq[String],is_inc:Boolean) extends NgCompanyChangeHandle {

+ 1 - 1
src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_court_open_announcement.scala

@@ -4,7 +4,7 @@ package com.winhc.bigdata.spark.ng.change.table
 
 import com.winhc.bigdata.spark.ng.change.NgCompanyChangeHandle
 import com.winhc.bigdata.spark.utils.DateUtils
-import com.winhc.bigdata.spark.ng.change.utils.Bool._
+import com.winhc.bigdata.spark.implicits.Bool._
 
 case class company_court_open_announcement(equCols: Seq[String],is_inc:Boolean) extends NgCompanyChangeHandle {
 

+ 1 - 1
src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_court_register.scala

@@ -4,7 +4,7 @@ package com.winhc.bigdata.spark.ng.change.table
 
 import com.winhc.bigdata.spark.ng.change.NgCompanyChangeHandle
 import com.winhc.bigdata.spark.utils.DateUtils
-import com.winhc.bigdata.spark.ng.change.utils.Bool._
+import com.winhc.bigdata.spark.implicits.Bool._
 
 case class company_court_register(equCols: Seq[String],is_inc:Boolean) extends NgCompanyChangeHandle {
 

+ 1 - 1
src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_env_punishment.scala

@@ -4,7 +4,7 @@ package com.winhc.bigdata.spark.ng.change.table
 
 import com.winhc.bigdata.spark.ng.change.NgCompanyChangeHandle
 import com.winhc.bigdata.spark.utils.DateUtils
-import com.winhc.bigdata.spark.ng.change.utils.Bool._
+import com.winhc.bigdata.spark.implicits.Bool._
 
 case class company_env_punishment(equCols: Seq[String],is_inc:Boolean) extends NgCompanyChangeHandle {
 

+ 1 - 1
src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_illegal_info.scala

@@ -4,7 +4,7 @@ package com.winhc.bigdata.spark.ng.change.table
 
 import com.winhc.bigdata.spark.ng.change.NgCompanyChangeHandle
 import com.winhc.bigdata.spark.utils.DateUtils
-import com.winhc.bigdata.spark.ng.change.utils.Bool._
+import com.winhc.bigdata.spark.implicits.Bool._
 
 case class company_illegal_info(equCols: Seq[String],is_inc:Boolean) extends NgCompanyChangeHandle {
 

+ 1 - 1
src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_own_tax.scala

@@ -4,7 +4,7 @@ package com.winhc.bigdata.spark.ng.change.table
 
 import com.winhc.bigdata.spark.ng.change.NgCompanyChangeHandle
 import com.winhc.bigdata.spark.utils.DateUtils
-import com.winhc.bigdata.spark.ng.change.utils.Bool._
+import com.winhc.bigdata.spark.implicits.Bool._
 
 case class company_own_tax(equCols: Seq[String],is_inc:Boolean) extends NgCompanyChangeHandle {
 

+ 1 - 1
src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_punishment_info.scala

@@ -4,7 +4,7 @@ package com.winhc.bigdata.spark.ng.change.table
 
 import com.winhc.bigdata.spark.ng.change.NgCompanyChangeHandle
 import com.winhc.bigdata.spark.utils.DateUtils
-import com.winhc.bigdata.spark.ng.change.utils.Bool._
+import com.winhc.bigdata.spark.implicits.Bool._
 
 case class company_punishment_info(equCols: Seq[String],is_inc:Boolean) extends NgCompanyChangeHandle {
 

+ 1 - 1
src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_punishment_info_creditchina.scala

@@ -4,7 +4,7 @@ package com.winhc.bigdata.spark.ng.change.table
 
 import com.winhc.bigdata.spark.ng.change.NgCompanyChangeHandle
 import com.winhc.bigdata.spark.utils.DateUtils
-import com.winhc.bigdata.spark.ng.change.utils.Bool._
+import com.winhc.bigdata.spark.implicits.Bool._
 
 case class company_punishment_info_creditchina(equCols: Seq[String],is_inc:Boolean) extends NgCompanyChangeHandle {
 

+ 1 - 1
src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_send_announcement.scala

@@ -4,7 +4,7 @@ package com.winhc.bigdata.spark.ng.change.table
 
 import com.winhc.bigdata.spark.ng.change.NgCompanyChangeHandle
 import com.winhc.bigdata.spark.utils.DateUtils
-import com.winhc.bigdata.spark.ng.change.utils.Bool._
+import com.winhc.bigdata.spark.implicits.Bool._
 
 case class company_send_announcement(equCols: Seq[String],is_inc:Boolean) extends NgCompanyChangeHandle {
 

+ 1 - 1
src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_tax_contravention.scala

@@ -4,7 +4,7 @@ package com.winhc.bigdata.spark.ng.change.table
 
 import com.winhc.bigdata.spark.ng.change.NgCompanyChangeHandle
 import com.winhc.bigdata.spark.utils.DateUtils
-import com.winhc.bigdata.spark.ng.change.utils.Bool._
+import com.winhc.bigdata.spark.implicits.Bool._
 
 case class company_tax_contravention(equCols: Seq[String],is_inc:Boolean) extends NgCompanyChangeHandle {
 

+ 1 - 1
src/main/scala/com/winhc/bigdata/spark/ng/change/table/zxr_evaluate_results.scala

@@ -4,7 +4,7 @@ package com.winhc.bigdata.spark.ng.change.table
 
 import com.winhc.bigdata.spark.ng.change.NgCompanyChangeHandle
 import com.winhc.bigdata.spark.utils.DateUtils
-import com.winhc.bigdata.spark.ng.change.utils.Bool._
+import com.winhc.bigdata.spark.implicits.Bool._
 
 case class zxr_evaluate_results(equCols: Seq[String],is_inc:Boolean) extends NgCompanyChangeHandle {
 

+ 1 - 0
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/NgCompanyDynamicHandle.scala

@@ -13,6 +13,7 @@ trait NgCompanyDynamicHandle extends Serializable with Logging {
 
   def flat_map: (ChangeExtract) => Seq[CompanyDynamicRecord]
 
+
   /**
    * group_by前置处理程。flat_map
    *

+ 3 - 5
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/auction_tracking.scala

@@ -3,8 +3,8 @@
 package com.winhc.bigdata.spark.ng.dynamic.handle
 
 import com.winhc.bigdata.spark.implicits.MapHelper._
+import com.winhc.bigdata.spark.ng.dynamic.utils.{DailyAggHandle, SimpleDailyDynamic}
 import com.winhc.bigdata.spark.ng.dynamic.{AssociationEntityInfo, NgCompanyRiskLevelType}
-import com.winhc.bigdata.spark.ng.dynamic.utils.DailyAggHandle
 
 import scala.collection.mutable
 
@@ -12,10 +12,8 @@ import scala.collection.mutable
  * @author: XuJiakai
  * @date: 2021/6/29 15:07
  */
-case class auction_tracking() extends DailyAggHandle {
-  override def getDynamicInfo(new_data: Map[String, String]): (String, Map[String, Any]) = {
-    null
-  }
+case class auction_tracking() extends DailyAggHandle with SimpleDailyDynamic {
+
 
   override def getAssociationEntityInfo(new_data: Map[String, String]): Seq[AssociationEntityInfo] = {
     try {

+ 3 - 8
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_abnormal_info.scala

@@ -3,21 +3,16 @@
 package com.winhc.bigdata.spark.ng.dynamic.handle
 
 import com.winhc.bigdata.spark.implicits.MapHelper._
+import com.winhc.bigdata.spark.ng.dynamic.utils.{DailyAggHandle, SimpleDailyDynamic}
 import com.winhc.bigdata.spark.ng.dynamic.{AssociationEntityInfo, NgCompanyRiskLevelType}
-import com.winhc.bigdata.spark.ng.dynamic.utils.DailyAggHandle
 
 /**
  * @author: XuJiakai
  * @date: 2021/6/29 15:07
  *        经营异常
  */
-case class company_abnormal_info() extends DailyAggHandle {
-  override def getDynamicInfo(new_data: Map[String, String]): (String, Map[String, Any]) = {
-    ("", Map(
-      "code" -> "301901"
-      , "description" -> "新增经营异常"
-    ))
-  }
+case class company_abnormal_info() extends DailyAggHandle  with SimpleDailyDynamic{
+
 
   override def getAssociationEntityInfo(new_data: Map[String, String]): Seq[AssociationEntityInfo] = {
     val keyno = new_data.getOrEmptyStr("company_id")

+ 4 - 5
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_court_announcement.scala

@@ -3,7 +3,8 @@
 package com.winhc.bigdata.spark.ng.dynamic.handle
 import com.winhc.bigdata.spark.implicits.MapHelper._
 import com.winhc.bigdata.spark.ng.dynamic.{AssociationEntityInfo, NgCompanyRiskLevelType}
-import com.winhc.bigdata.spark.ng.dynamic.utils.DailyAggHandle
+import com.winhc.bigdata.spark.ng.dynamic.utils.{ComplexDailyDynamic, DailyAggHandle}
+import com.winhc.bigdata.spark.ng.dynamic.utils.DynamicFiledUtils.createDynamicInfo
 
 import scala.collection.mutable
 
@@ -11,10 +12,8 @@ import scala.collection.mutable
  * @author: XuJiakai
  * @date: 2021/6/29 15:07
  */
-case class company_court_announcement() extends DailyAggHandle {
-  override def getDynamicInfo(new_data: Map[String, String]): (String, Map[String, Any]) = {
-    null
-  }
+case class company_court_announcement() extends DailyAggHandle with ComplexDailyDynamic{
+
 
   override def getAssociationEntityInfo(new_data: Map[String, String]): Seq[AssociationEntityInfo] = {
     try {

+ 4 - 5
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_court_open_announcement.scala

@@ -3,7 +3,8 @@
 package com.winhc.bigdata.spark.ng.dynamic.handle
 import com.winhc.bigdata.spark.implicits.MapHelper._
 import com.winhc.bigdata.spark.ng.dynamic.{AssociationEntityInfo, NgCompanyRiskLevelType}
-import com.winhc.bigdata.spark.ng.dynamic.utils.DailyAggHandle
+import com.winhc.bigdata.spark.ng.dynamic.utils.{DailyAggHandle, SimpleDailyDynamic}
+import com.winhc.bigdata.spark.ng.dynamic.utils.DynamicFiledUtils.createSimpleDynamicInfo
 
 import scala.collection.mutable
 
@@ -11,10 +12,8 @@ import scala.collection.mutable
  * @author: XuJiakai
  * @date: 2021/6/29 15:07
  */
-case class company_court_open_announcement() extends DailyAggHandle {
-  override def getDynamicInfo(new_data: Map[String, String]): (String, Map[String, Any]) = {
-    null
-  }
+case class company_court_open_announcement() extends DailyAggHandle  with SimpleDailyDynamic{
+
 
   override def getAssociationEntityInfo(new_data: Map[String, String]): Seq[AssociationEntityInfo] = {
     try {

+ 4 - 5
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_court_register.scala

@@ -3,7 +3,8 @@
 package com.winhc.bigdata.spark.ng.dynamic.handle
 import com.winhc.bigdata.spark.implicits.MapHelper._
 import com.winhc.bigdata.spark.ng.dynamic.{AssociationEntityInfo, NgCompanyRiskLevelType}
-import com.winhc.bigdata.spark.ng.dynamic.utils.DailyAggHandle
+import com.winhc.bigdata.spark.ng.dynamic.utils.{ComplexDailyDynamic, DailyAggHandle, SimpleDailyDynamic}
+import com.winhc.bigdata.spark.ng.dynamic.utils.DynamicFiledUtils.createDynamicInfo
 
 import scala.collection.mutable
 
@@ -11,10 +12,8 @@ import scala.collection.mutable
  * @author: XuJiakai
  * @date: 2021/6/29 15:07
  */
-case class company_court_register() extends DailyAggHandle {
-  override def getDynamicInfo(new_data: Map[String, String]): (String, Map[String, Any]) = {
-    null
-  }
+case class company_court_register() extends DailyAggHandle  with ComplexDailyDynamic{
+
 
   override def getAssociationEntityInfo(new_data: Map[String, String]): Seq[AssociationEntityInfo] = {
     try {

+ 3 - 5
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_env_punishment.scala

@@ -2,17 +2,15 @@
 
 package com.winhc.bigdata.spark.ng.dynamic.handle
 import com.winhc.bigdata.spark.implicits.MapHelper._
+import com.winhc.bigdata.spark.ng.dynamic.utils.{DailyAggHandle, SimpleDailyDynamic}
 import com.winhc.bigdata.spark.ng.dynamic.{AssociationEntityInfo, NgCompanyRiskLevelType}
-import com.winhc.bigdata.spark.ng.dynamic.utils.DailyAggHandle
 
 /**
  * @author: XuJiakai
  * @date: 2021/6/29 15:07
  */
-case class company_env_punishment() extends DailyAggHandle {
-  override def getDynamicInfo(new_data: Map[String, String]): (String, Map[String, Any]) = {
-    null
-  }
+case class company_env_punishment() extends DailyAggHandle  with SimpleDailyDynamic{
+
 
   override def getAssociationEntityInfo(new_data: Map[String, String]): Seq[AssociationEntityInfo] = {
     val keyno = new_data.getOrEmptyStr("company_id")

+ 3 - 5
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_illegal_info.scala

@@ -2,17 +2,15 @@
 
 package com.winhc.bigdata.spark.ng.dynamic.handle
 import com.winhc.bigdata.spark.implicits.MapHelper._
+import com.winhc.bigdata.spark.ng.dynamic.utils.{DailyAggHandle, SimpleDailyDynamic}
 import com.winhc.bigdata.spark.ng.dynamic.{AssociationEntityInfo, NgCompanyRiskLevelType}
-import com.winhc.bigdata.spark.ng.dynamic.utils.DailyAggHandle
 
 /**
  * @author: XuJiakai
  * @date: 2021/6/29 15:07
  */
-case class company_illegal_info() extends DailyAggHandle {
-  override def getDynamicInfo(new_data: Map[String, String]): (String, Map[String, Any]) = {
-    null
-  }
+case class company_illegal_info() extends DailyAggHandle  with SimpleDailyDynamic{
+
 
   override def getAssociationEntityInfo(new_data: Map[String, String]): Seq[AssociationEntityInfo] = {
     val keyno = new_data.getOrEmptyStr("company_id")

+ 3 - 5
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_own_tax.scala

@@ -2,17 +2,15 @@
 
 package com.winhc.bigdata.spark.ng.dynamic.handle
 import com.winhc.bigdata.spark.implicits.MapHelper._
+import com.winhc.bigdata.spark.ng.dynamic.utils.{DailyAggHandle, SimpleDailyDynamic}
 import com.winhc.bigdata.spark.ng.dynamic.{AssociationEntityInfo, NgCompanyRiskLevelType}
-import com.winhc.bigdata.spark.ng.dynamic.utils.DailyAggHandle
 
 /**
  * @author: XuJiakai
  * @date: 2021/6/29 15:07
  */
-case class company_own_tax() extends DailyAggHandle {
-  override def getDynamicInfo(new_data: Map[String, String]): (String, Map[String, Any]) = {
-    null
-  }
+case class company_own_tax() extends DailyAggHandle  with SimpleDailyDynamic{
+
 
   override def getAssociationEntityInfo(new_data: Map[String, String]): Seq[AssociationEntityInfo] = {
     val keyno = new_data.getOrEmptyStr("company_id")

+ 3 - 5
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_punishment_info.scala

@@ -2,17 +2,15 @@
 
 package com.winhc.bigdata.spark.ng.dynamic.handle
 import com.winhc.bigdata.spark.implicits.MapHelper._
+import com.winhc.bigdata.spark.ng.dynamic.utils.{DailyAggHandle, SimpleDailyDynamic}
 import com.winhc.bigdata.spark.ng.dynamic.{AssociationEntityInfo, NgCompanyRiskLevelType}
-import com.winhc.bigdata.spark.ng.dynamic.utils.DailyAggHandle
 
 /**
  * @author: XuJiakai
  * @date: 2021/6/29 15:07
  */
-case class company_punishment_info() extends DailyAggHandle {
-  override def getDynamicInfo(new_data: Map[String, String]): (String, Map[String, Any]) = {
-    null
-  }
+case class company_punishment_info() extends DailyAggHandle  with SimpleDailyDynamic{
+
 
   override def getAssociationEntityInfo(new_data: Map[String, String]): Seq[AssociationEntityInfo] = {
     val keyno = new_data.getOrEmptyStr("company_id")

+ 4 - 5
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_punishment_info_creditchina.scala

@@ -1,18 +1,17 @@
 
 
 package com.winhc.bigdata.spark.ng.dynamic.handle
+
 import com.winhc.bigdata.spark.implicits.MapHelper._
 import com.winhc.bigdata.spark.ng.dynamic.{AssociationEntityInfo, NgCompanyRiskLevelType}
-import com.winhc.bigdata.spark.ng.dynamic.utils.DailyAggHandle
+import com.winhc.bigdata.spark.ng.dynamic.utils.{ComplexDailyDynamic, DailyAggHandle}
+import com.winhc.bigdata.spark.ng.dynamic.utils.DynamicFiledUtils.createDynamicInfo
 
 /**
  * @author: XuJiakai
  * @date: 2021/6/29 15:07
  */
-case class company_punishment_info_creditchina() extends DailyAggHandle {
-  override def getDynamicInfo(new_data: Map[String, String]): (String, Map[String, Any]) = {
-    null
-  }
+case class company_punishment_info_creditchina() extends DailyAggHandle with ComplexDailyDynamic{
 
   override def getAssociationEntityInfo(new_data: Map[String, String]): Seq[AssociationEntityInfo] = {
     val keyno = new_data.getOrEmptyStr("company_id")

+ 3 - 8
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_send_announcement.scala

@@ -3,7 +3,8 @@
 package com.winhc.bigdata.spark.ng.dynamic.handle
 
 import com.winhc.bigdata.spark.implicits.MapHelper._
-import com.winhc.bigdata.spark.ng.dynamic.utils.DailyAggHandle
+import com.winhc.bigdata.spark.ng.dynamic.utils.{DailyAggHandle, SimpleDailyDynamic}
+import com.winhc.bigdata.spark.ng.dynamic.utils.DynamicFiledUtils.createSimpleDynamicInfo
 import com.winhc.bigdata.spark.ng.dynamic.{AssociationEntityInfo, NgCompanyRiskLevelType}
 
 import scala.collection.mutable
@@ -12,13 +13,7 @@ import scala.collection.mutable
  * @author: XuJiakai
  * @date: 2021/6/29 15:07
  */
-case class company_send_announcement() extends DailyAggHandle {
-  override def getDynamicInfo(new_data: Map[String, String]): (String, Map[String, Any]) = {
-    ("",Map(
-      "code" -> "301701"
-      , "description" -> "新增送达公告"
-    ))
-  }
+case class company_send_announcement() extends DailyAggHandle  with SimpleDailyDynamic{
 
   override def getAssociationEntityInfo(new_data: Map[String, String]): Seq[AssociationEntityInfo] = {
     try {

+ 3 - 8
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_tax_contravention.scala

@@ -3,20 +3,15 @@
 package com.winhc.bigdata.spark.ng.dynamic.handle
 
 import com.winhc.bigdata.spark.implicits.MapHelper._
+import com.winhc.bigdata.spark.ng.dynamic.utils.{DailyAggHandle, SimpleDailyDynamic}
 import com.winhc.bigdata.spark.ng.dynamic.{AssociationEntityInfo, NgCompanyRiskLevelType}
-import com.winhc.bigdata.spark.ng.dynamic.utils.DailyAggHandle
 
 /**
  * @author: XuJiakai
  * @date: 2021/6/29 15:07
  */
-case class company_tax_contravention() extends DailyAggHandle {
-  override def getDynamicInfo(new_data: Map[String, String]): (String, Map[String, Any]) = {
-    ("", Map(
-      "code" -> "301801"
-      , "description" -> "新增询价评估"
-    ))
-  }
+case class company_tax_contravention() extends DailyAggHandle with SimpleDailyDynamic {
+
 
   override def getAssociationEntityInfo(new_data: Map[String, String]): Seq[AssociationEntityInfo] = {
     val keyno = new_data.getOrEmptyStr("company_id")

+ 21 - 0
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/utils/ComplexDailyDynamic.scala

@@ -0,0 +1,21 @@
+package com.winhc.bigdata.spark.ng.dynamic.utils
+
+import com.winhc.bigdata.spark.ng.dynamic.utils.DynamicFiledUtils.createDynamicInfo
+import org.apache.spark.internal.Logging
+
+/**
+ * @author ZhangJi
+ * @since 2021-07-08 17:29
+ */
+trait ComplexDailyDynamic extends Logging {
+  def getDynamicInfo(new_data: Map[String, String]): (String, Map[String, Any]) = {
+    try {
+      createDynamicInfo(this.getClass.getSimpleName, new_data)
+    }
+    catch {
+      case e: Exception => logError(e.getMessage, e)
+        (null, Map.empty)
+    }
+  }
+
+}

+ 164 - 0
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/utils/DynamicDimConfiguration.scala

@@ -0,0 +1,164 @@
+package com.winhc.bigdata.spark.ng.dynamic.utils
+
+/**
+ * @author ZhangJi
+ * @since 2021-07-08 14:28
+ */
+object DynamicDimConfiguration {
+  val DDC = Map(
+    "auction_tracking" -> Map(
+      "code" -> Map(
+        "insert" -> "302901"
+      ),
+      "sample" -> true,
+      "name" -> "司法拍卖",
+      "list_field" -> Map(
+        "auction_title" -> Map(),
+        "initial_price" -> Map(),
+        "start_time" -> Map()
+      )
+    ),
+    "company_abnormal_info" -> Map(
+      "code" -> Map(
+        "insert" -> "301901",
+        "update" -> "301902"
+      ),
+      "sample" -> true,
+      "name" -> "经营异常",
+      "list_field" -> Map(
+        "put_reason" -> Map(),
+        "put_department" -> Map(),
+        "put_date" -> Map(),
+        "remove_reason" -> Map("when" -> "update"),
+        "remove_department" -> Map("when" -> "update"),
+        "remove_date" -> Map("when" -> "update")
+      )
+    ),
+    "company_court_open_announcement" -> Map(
+      "code" -> Map(
+        "insert" -> "302101"
+      ),
+      "sample" -> true,
+      "name" -> "开庭公告",
+      "list_field" -> Map(
+        "start_date" -> Map(),
+        "case_no" -> Map(),
+        "case_reason" -> Map()
+      )
+    ),
+    "company_env_punishment" -> Map(
+      "code" -> Map(
+        "insert" -> "302401"
+      ),
+      "sample" -> true,
+      "name" -> "环保处罚",
+      "list_field" -> Map(
+        "reason" -> Map(),
+        "performance" -> Map(),
+        "publish_time" -> Map(),
+        "content" -> Map()
+      )
+    ),
+    "company_illegal_info" -> Map(
+      "code" -> Map(
+        "insert" -> "302501"
+      ),
+      "sample" -> true,
+      "name" -> "严重违法",
+      "list_field" -> Map(
+        "put_reason" -> Map(),
+        "put_date" -> Map()
+      )
+    ),
+    "company_own_tax" -> Map(
+      "code" -> Map(
+        "insert" -> "303001"
+      ),
+      "sample" -> true,
+      "name" -> "欠税公告",
+      "list_field" -> Map(
+        "own_tax_amount" -> Map(),
+        "publish_date" -> Map()
+      )
+    ),
+    "company_punishment_info" -> Map(
+      "code" -> Map(
+        "insert" -> "302601"
+      ),
+      "sample" -> true,
+      "name" -> "行政处罚",
+      "list_field" -> Map(
+        "punish_number" -> Map(),
+        "content" -> Map(),
+        "department_name" -> Map(),
+        "decision_date" -> Map()
+      )
+    ),
+    "company_send_announcement" -> Map(
+      "code" -> Map(
+        "insert" -> "302701"
+      ),
+      "sample" -> true,
+      "name" -> "送达公告",
+      "list_field" -> Map(
+        "case_no" -> Map(),
+        "court" -> Map(),
+        "start_date" -> Map()
+      )
+    ),
+    "company_tax_contravention" -> Map(
+      "code" -> Map(
+        "insert" -> "302801"
+      ),
+      "sample" -> true,
+      "name" -> "税收违法",
+      "list_field" -> Map(
+        "case_type" -> Map(),
+        "publish_time" -> Map()
+      )
+    ),
+    "company_court_announcement" -> Map(
+      "code" -> Map(
+        "insert" -> "302001"
+      ),
+      "name" -> "法院公告",
+      "list_field" -> Map(
+        "announcement_type" -> Map(),
+        "litigant" -> Map(
+          "type" -> "array",
+          "from" -> Seq("plaintiff_info", "litigant_info")
+        ),
+        "case_no" -> Map()
+      )
+    ),
+    "company_court_register" -> Map(
+      "code" -> Map(
+        "insert" -> "302201"
+      ),
+      "name" -> "立案信息",
+      "list_field" -> Map(
+        "case_reason" -> Map(),
+        "filing_date" -> Map(),
+        "litigant" -> Map(
+          "type" -> "object",
+          "from" -> Seq("plaintiff_info", "defendant_info")
+        ),
+        "case_no" -> Map()
+      )
+    ),
+    "company_punishment_info_creditchina" -> Map(
+      "code" -> Map(
+        "insert" -> "302601"
+      ),
+
+      "name" -> "行政处罚信用中国",
+      "list_field" -> Map(
+        "punish_number" -> Map(),
+        "content" -> Map("from" -> "reason"),
+        "department_name" -> Map("from" -> "department"),
+        "decision_date" -> Map()
+      )
+    )
+  )
+
+}

+ 45 - 0
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/utils/DynamicFiledUtils.scala

@@ -0,0 +1,45 @@
+package com.winhc.bigdata.spark.ng.dynamic.utils
+
+import cn.hutool.json.JSONUtil
+import com.alibaba.fastjson.{JSON, JSONArray, JSONObject}
+import com.winhc.bigdata.spark.implicits.Bool._
+import com.winhc.bigdata.spark.ng.dynamic.utils.DynamicDimConfiguration.DDC
+import org.json4s.jackson.JsonMethods
+
+import scala.collection.JavaConverters.{asScalaSetConverter, mapAsScalaMapConverter}
+
+/**
+ * @author ZhangJi
+ * @since 2021-07-08 10:51
+ */
+object DynamicFiledUtils {
+  val SIMPLE_FILED_CONFIG: Map[String, Map[String, Map[String, Any]]] = DDC.filter(e => e._2.getOrElse("sample", false).asInstanceOf[Boolean]).map(e => (e._1, e._2("list_field").asInstanceOf[Map[String, Map[String, Any]]]))
+
+  def createSimpleDynamicInfo(tn: String, data: Map[String, String], update_type: String = "insert"): (String, Map[String, Any]) = {
+    val config = SIMPLE_FILED_CONFIG.getOrElse(tn, Map.empty)
+    val filter_set = config.filter(e => e._2.getOrElse("when", "insert").equals(update_type)).map(e => e._2.getOrElse("from", e._1)).toSet
+    (DDC(tn)("code").asInstanceOf[Map[String, String]].getOrElse(update_type, null),
+      data.filterKeys(e => filter_set.contains(e)))
+  }
+
+  def distinctBy[A, B](xs: Seq[A])(f: A => B): List[A] =
+    scala.reflect.internal.util.Collections.distinctBy(xs.toList)(f)
+
+  def createDynamicInfo(tn: String, data: Map[String, String]): (String, Map[String, Any]) = {
+    val lf = DDC(tn)("list_field").asInstanceOf[Map[String, Map[String, Any]]]
+    val dynamicInfo = lf.map(elem => {
+      val from = elem._2.getOrElse("from", Seq(elem._1)).asInstanceOf[Seq[String]]
+      elem._2.get("type") match {
+        case Some("array") => (elem._1, distinctBy(from.flatMap(n => {
+          val v = data.getOrElse(n, null)
+          var array = JSON.parseArray(v)
+          array = (array == null) ? new JSONArray() | array
+          array.toArray[JSONObject](Array.empty)
+        }))(jo => jo.getOrDefault("name", "")))
+        case Some("object") => (elem._1, from.map(e => (e.replace("_info", ""), JSON.parseArray(data.getOrElse(e, null)))).toMap)
+        case _ => (elem._1, data.getOrElse(from.head, null))
+      }
+    })
+    (DDC(tn)("code").asInstanceOf[Map[String, String]]("insert"), dynamicInfo)
+  }
+}

+ 20 - 0
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/utils/SimpleDailyDynamic.scala

@@ -0,0 +1,20 @@
+package com.winhc.bigdata.spark.ng.dynamic.utils
+
+import com.winhc.bigdata.spark.ng.dynamic.utils.DynamicFiledUtils.createSimpleDynamicInfo
+import org.apache.spark.internal.Logging
+
+/**
+ * @author ZhangJi
+ * @since 2021-07-08 17:26
+ */
+trait SimpleDailyDynamic extends Logging {
+  def getDynamicInfo(new_data: Map[String, String]): (String, Map[String, Any]) = {
+    try {
+      createSimpleDynamicInfo(this.getClass.getSimpleName, new_data)
+    } catch {
+      case e: Exception => logError(e.getMessage, e)
+      (null, Map.empty)
+    }
+  }
+
+}