Bladeren bron

feat: 知产动态

许家凯 3 jaren geleden
bovenliggende
commit
e717f812b7

+ 13 - 0
src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_certificate.scala

@@ -0,0 +1,13 @@
+
+
+package com.winhc.bigdata.spark.ng.change.table
+
+import com.winhc.bigdata.spark.ng.change.NgCompanyChangeHandle
+import com.winhc.bigdata.spark.utils.DateUtils
+
+case class company_certificate(equCols: Seq[String], is_inc: Boolean) extends NgCompanyChangeHandle {
+
+  //证书起始时间
+  override protected def getBizDate(newMap: Map[String, String]): String = DateUtils.getBizDate(newMap("start_date"))
+}
+

+ 14 - 0
src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_copyright_reg.scala

@@ -0,0 +1,14 @@
+
+
+package com.winhc.bigdata.spark.ng.change.table
+
+import com.winhc.bigdata.spark.ng.change.NgCompanyChangeHandle
+import com.winhc.bigdata.spark.utils.DateUtils
+
+//软件著作权
+case class company_copyright_reg(equCols: Seq[String], is_inc: Boolean) extends NgCompanyChangeHandle {
+
+  //登记日
+  override protected def getBizDate(newMap: Map[String, String]): String = DateUtils.getBizDate(newMap("reg_time"))
+}
+

+ 14 - 0
src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_copyright_works.scala

@@ -0,0 +1,14 @@
+
+
+package com.winhc.bigdata.spark.ng.change.table
+
+import com.winhc.bigdata.spark.ng.change.NgCompanyChangeHandle
+import com.winhc.bigdata.spark.utils.DateUtils
+
+//作品著作权
+case class company_copyright_works(equCols: Seq[String], is_inc: Boolean) extends NgCompanyChangeHandle {
+
+  //登记日
+  override protected def getBizDate(newMap: Map[String, String]): String = DateUtils.getBizDate(newMap("reg_time"))
+}
+

+ 13 - 0
src/main/scala/com/winhc/bigdata/spark/ng/change/table/company_patent.scala

@@ -0,0 +1,13 @@
+
+
+package com.winhc.bigdata.spark.ng.change.table
+
+import com.winhc.bigdata.spark.ng.change.NgCompanyChangeHandle
+import com.winhc.bigdata.spark.utils.DateUtils
+
+case class company_patent(equCols: Seq[String], is_inc: Boolean) extends NgCompanyChangeHandle {
+
+  //早请日
+  override protected def getBizDate(newMap: Map[String, String]): String = DateUtils.getBizDate(newMap("app_date"))
+}
+

+ 64 - 0
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/agg/intellectual.scala

@@ -0,0 +1,64 @@
+package com.winhc.bigdata.spark.ng.dynamic.agg
+
+import com.winhc.bigdata.spark.ng.dynamic.utils.CompanyDynamicUtils
+import com.winhc.bigdata.spark.ng.dynamic.{AcrossTabAggHandle, CompanyDynamicRecord, RowkeyInfo}
+import com.winhc.bigdata.spark.utils.BaseUtil
+
+/**
+ * @author: XuJiakai
+ * @date: 2021/7/20 16:46
+ */
+case class intellectual() extends AcrossTabAggHandle {
+
+  /**
+   * group_by前置处理程。flat_map
+   *
+   * @return
+   */
+  override def group_by_pre: CompanyDynamicRecord => Seq[CompanyDynamicRecord] = (cdr: CompanyDynamicRecord) => {
+    cdr.association_entity_info.map(e => {
+      CompanyDynamicRecord(id = cdr.id, association_entity_info = Seq(e), rowkey = cdr.rowkey, tn = cdr.tn, update_type = cdr.update_type, dynamic_code = null, dynamic_info = null, agg_detail_text = null, agg_detail_rowkey = null, biz_time = cdr.biz_time, dynamic_time = cdr.dynamic_time, update_time = cdr.update_time, create_time = cdr.create_time)
+    })
+  }
+
+  /**
+   * 需要聚合的维度
+   *
+   * @return
+   */
+  override def getTables: Seq[String] = Seq("company_tm"
+    , "company_patent"
+    , "company_copyright_reg"
+    , "company_copyright_works"
+    , "company_certificate"
+    , "company_icp")
+
+  /**
+   * 聚合的key,相同的key会聚合到一起
+   *
+   * @return
+   */
+  override def group_by_key: CompanyDynamicRecord => String = (cdr: CompanyDynamicRecord) => {
+    cdr.association_entity_info(0).keyno
+  }
+
+  /**
+   * 聚合处理程序  flat_map
+   *
+   * @return
+   */
+  override def group_by_flat_map: Seq[CompanyDynamicRecord] => Seq[CompanyDynamicRecord] = (seq: Seq[CompanyDynamicRecord]) => {
+    val keyno = seq(0).association_entity_info(0).keyno
+    val agg_rowkey = seq.map(r => RowkeyInfo(rowkey = r.rowkey, tn = r.tn))
+    val biz_time = BaseUtil.nowDate()
+    val dynamic_time = biz_time
+    val update_time = biz_time
+    val create_time = biz_time
+    val stringToInt: Map[String, Int] = seq.map(r => (r.tn, 1)).groupBy(_._1)
+      .mapValues(_.foldLeft(0)(_ + _._2))
+    Seq(
+      CompanyDynamicRecord(id = CompanyDynamicUtils.generateId(keyno, BaseUtil.nowDate(), "intellectual"), association_entity_info = seq(0).association_entity_info, rowkey = null, tn = "intellectual", update_type = seq(0).update_type, dynamic_code = "201801", dynamic_info = stringToInt, agg_detail_text = null, agg_detail_rowkey = agg_rowkey, biz_time = biz_time, dynamic_time = dynamic_time, update_time = update_time, create_time = create_time)
+    )
+  }
+
+}

+ 33 - 0
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_certificate.scala

@@ -0,0 +1,33 @@
+
+
+package com.winhc.bigdata.spark.ng.dynamic.handle
+
+import com.winhc.bigdata.spark.ng.dynamic.{AssociationEntityInfo, ChangeExtract, CompanyDynamicRecord, NgCompanyDynamicHandle, NgCompanyRiskLevelType}
+import com.winhc.bigdata.spark.implicits.MapHelper._
+import org.apache.commons.lang3.StringUtils
+
+import scala.collection.mutable
+
+/**
+ * @author: XuJiakai
+ * @date: 2021/7/20 16:40
+ */
+case class company_certificate(is_inc: Boolean) extends NgCompanyDynamicHandle {
+  override def flat_map: ChangeExtract => Seq[CompanyDynamicRecord] = (change_extract: ChangeExtract) => {
+    val new_data = change_extract.new_data
+    var list: mutable.Seq[CompanyDynamicRecord] = mutable.Seq.empty
+    val entityInfo: Seq[AssociationEntityInfo] = Seq(
+      AssociationEntityInfo(keyno = new_data.getOrEmptyStr("company_id")
+        , name = new_data.getOrEmptyStr("company_name")
+        , risk_level = NgCompanyRiskLevelType.Positive
+        , rta_info = null)
+    )
+    val info = entityInfo.filter(r => StringUtils.isNotEmpty(r.keyno))
+    if(info.nonEmpty){
+      list = list :+ getCompanyDynamicRecord(change_extract, null, null, null, info)
+    }
+    list
+  }
+}
+
+

+ 28 - 0
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_copyright_reg.scala

@@ -0,0 +1,28 @@
+
+
+package com.winhc.bigdata.spark.ng.dynamic.handle
+
+import com.winhc.bigdata.spark.ng.dynamic.{AssociationEntityInfo, ChangeExtract, CompanyDynamicRecord, NgCompanyDynamicHandle, NgCompanyRiskLevelType}
+import com.winhc.bigdata.spark.implicits.MapHelper._
+import org.apache.commons.lang3.StringUtils
+
+import scala.collection.mutable
+
+/**
+ * @author: XuJiakai
+ * @date: 2021/7/20 16:40
+ */
+case class company_copyright_reg(is_inc: Boolean) extends NgCompanyDynamicHandle {
+  override def flat_map: ChangeExtract => Seq[CompanyDynamicRecord] = (change_extract: ChangeExtract) => {
+    val new_data = change_extract.new_data
+    var list: mutable.Seq[CompanyDynamicRecord] = mutable.Seq.empty
+    val entityInfo: Seq[AssociationEntityInfo] = getEntity(new_data.getOrEmptyStr("author_nationality_info"), id_key = "keyno", name_key = "name", NgCompanyRiskLevelType.Positive, null)
+    val info = entityInfo.filter(r => StringUtils.isNotEmpty(r.keyno))
+    if(info.nonEmpty){
+      list = list :+ getCompanyDynamicRecord(change_extract, null, null, null, info)
+    }
+    list
+  }
+}
+
+

+ 29 - 0
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_copyright_works.scala

@@ -0,0 +1,29 @@
+
+
+package com.winhc.bigdata.spark.ng.dynamic.handle
+
+import com.winhc.bigdata.spark.ng.dynamic.{AssociationEntityInfo, ChangeExtract, CompanyDynamicRecord, NgCompanyDynamicHandle, NgCompanyRiskLevelType}
+import com.winhc.bigdata.spark.implicits.MapHelper._
+import org.apache.commons.lang3.StringUtils
+
+import scala.collection.mutable
+
+/**
+ * @author: XuJiakai
+ * @date: 2021/7/20 16:40
+ */
+case class company_copyright_works(is_inc: Boolean) extends NgCompanyDynamicHandle {
+  override def flat_map: ChangeExtract => Seq[CompanyDynamicRecord] = (change_extract: ChangeExtract) => {
+    val new_data = change_extract.new_data
+    var list: mutable.Seq[CompanyDynamicRecord] = mutable.Seq.empty
+
+    val entityInfo: Seq[AssociationEntityInfo] = getEntity(new_data.getOrEmptyStr("author_info"), id_key = "keyno", name_key = "name", NgCompanyRiskLevelType.Positive, null)
+    val info = entityInfo.filter(r => StringUtils.isNotEmpty(r.keyno))
+    if(info.nonEmpty){
+      list = list :+ getCompanyDynamicRecord(change_extract, null, null, null, info)
+    }
+    list
+  }
+}
+
+

+ 33 - 0
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_icp.scala

@@ -0,0 +1,33 @@
+
+
+package com.winhc.bigdata.spark.ng.dynamic.handle
+
+import com.winhc.bigdata.spark.ng.dynamic.{AssociationEntityInfo, ChangeExtract, CompanyDynamicRecord, NgCompanyDynamicHandle, NgCompanyRiskLevelType}
+import com.winhc.bigdata.spark.implicits.MapHelper._
+import org.apache.commons.lang3.StringUtils
+
+import scala.collection.mutable
+
+/**
+ * @author: XuJiakai
+ * @date: 2021/7/20 16:40
+ */
+case class company_icp(is_inc: Boolean) extends NgCompanyDynamicHandle {
+  override def flat_map: ChangeExtract => Seq[CompanyDynamicRecord] = (change_extract: ChangeExtract) => {
+    val new_data = change_extract.new_data
+    var list: mutable.Seq[CompanyDynamicRecord] = mutable.Seq.empty
+    val entityInfo: Seq[AssociationEntityInfo] = Seq(
+      AssociationEntityInfo(keyno = new_data.getOrEmptyStr("company_id")
+        , name = new_data.getOrEmptyStr("company_name")
+        , risk_level = NgCompanyRiskLevelType.Positive
+        , rta_info = null)
+    )
+    val info = entityInfo.filter(r => StringUtils.isNotEmpty(r.keyno))
+    if(info.nonEmpty){
+      list = list :+ getCompanyDynamicRecord(change_extract, null, null, null, info)
+    }
+    list
+  }
+}
+
+

+ 29 - 0
src/main/scala/com/winhc/bigdata/spark/ng/dynamic/handle/company_patent.scala

@@ -0,0 +1,29 @@
+
+
+package com.winhc.bigdata.spark.ng.dynamic.handle
+
+import com.winhc.bigdata.spark.ng.dynamic.{AssociationEntityInfo, ChangeExtract, CompanyDynamicRecord, NgCompanyDynamicHandle, NgCompanyRiskLevelType}
+import com.winhc.bigdata.spark.implicits.MapHelper._
+import org.apache.commons.lang3.StringUtils
+
+import scala.collection.mutable
+
+/**
+ * @author: XuJiakai
+ * @date: 2021/7/20 16:40
+ */
+case class company_patent(is_inc: Boolean) extends NgCompanyDynamicHandle {
+  override def flat_map: ChangeExtract => Seq[CompanyDynamicRecord] = (change_extract: ChangeExtract) => {
+    val new_data = change_extract.new_data
+    var list: mutable.Seq[CompanyDynamicRecord] = mutable.Seq.empty
+
+    val entityInfo: Seq[AssociationEntityInfo] = getEntity(new_data.getOrEmptyStr("applicant_name_info"), id_key = "keyno", name_key = "name", NgCompanyRiskLevelType.Positive, null)
+    val info = entityInfo.filter(r => StringUtils.isNotEmpty(r.keyno))
+    if(info.nonEmpty){
+      list = list :+ getCompanyDynamicRecord(change_extract, null, null, null, info)
+    }
+    list
+  }
+}
+
+