|
@@ -3,6 +3,7 @@ package com.winhc.bigdata.spark.ng.dynamic
|
|
|
import com.winhc.bigdata.spark.implicits.CaseClass2JsonHelper._
|
|
|
import com.winhc.bigdata.spark.ng.dynamic.NgCompanyRiskLevelType.NgCompanyRiskLevelType
|
|
|
import com.winhc.bigdata.spark.ng.dynamic.utils.CollapseKeyArgs
|
|
|
+import org.apache.commons.lang3.StringUtils
|
|
|
import org.apache.spark.sql.Row
|
|
|
|
|
|
/**
|
|
@@ -43,11 +44,46 @@ case class CompanyDynamicRecord(id: String,
|
|
|
dynamic_info: Map[String, Any],
|
|
|
agg_detail_text: String,
|
|
|
agg_detail_rowkey: Seq[RowkeyInfo],
|
|
|
- biz_time:String,
|
|
|
- dynamic_time:String,
|
|
|
+ biz_time: String,
|
|
|
+ dynamic_time: String,
|
|
|
update_time: String,
|
|
|
create_time: String
|
|
|
) {
|
|
|
+
|
|
|
+ import com.winhc.bigdata.spark.implicits.Bool._
|
|
|
+
|
|
|
+ def customCopy(id: String = null,
|
|
|
+ association_entity_info: Seq[AssociationEntityInfo] = null,
|
|
|
+ rowkey: String = null,
|
|
|
+ tn: String = null,
|
|
|
+ update_type: String = null,
|
|
|
+ dynamic_code: String = null,
|
|
|
+ dynamic_info: Map[String, Any] = null,
|
|
|
+ agg_detail_text: String = null,
|
|
|
+ agg_detail_rowkey: Seq[RowkeyInfo] = null,
|
|
|
+ biz_time: String = null,
|
|
|
+ dynamic_time: String = null,
|
|
|
+ update_time: String = null,
|
|
|
+ create_time: String = null
|
|
|
+ ): CompanyDynamicRecord = {
|
|
|
+
|
|
|
+ val _id = (id == null) ? this.id | id
|
|
|
+ val _association_entity_info = (association_entity_info == null) ? this.association_entity_info | association_entity_info
|
|
|
+ val _rowkey = (rowkey == null) ? this.rowkey | rowkey
|
|
|
+ val _tn = (tn == null) ? this.tn | tn
|
|
|
+ val _update_type = (update_type == null) ? this.update_type | update_type
|
|
|
+ val _dynamic_code = (dynamic_code == null) ? this.dynamic_code | dynamic_code
|
|
|
+ val _dynamic_info = (dynamic_info == null) ? this.dynamic_info | dynamic_info
|
|
|
+ val _agg_detail_text = (agg_detail_text == null) ? this.agg_detail_text | agg_detail_text
|
|
|
+ val _agg_detail_rowkey = (agg_detail_rowkey == null) ? this.agg_detail_rowkey | agg_detail_rowkey
|
|
|
+ val _biz_time = (biz_time == null) ? this.biz_time | biz_time
|
|
|
+ val _dynamic_time = (dynamic_time == null) ? this.dynamic_time | dynamic_time
|
|
|
+ val _update_time = (update_time == null) ? this.update_time | update_time
|
|
|
+ val _create_time = (create_time == null) ? this.create_time | create_time
|
|
|
+ CompanyDynamicRecord(id = _id, association_entity_info = _association_entity_info, rowkey = _rowkey, tn = _tn, update_type = _update_type, dynamic_code = _dynamic_code, dynamic_info = _dynamic_info, agg_detail_text = _agg_detail_text, agg_detail_rowkey = _agg_detail_rowkey, biz_time = _biz_time, dynamic_time = _dynamic_time, update_time = _update_time, create_time = _create_time)
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
def format(): CompanyDynamicRecord = {
|
|
|
if (id == null) {
|
|
|
return null
|
|
@@ -56,31 +92,33 @@ case class CompanyDynamicRecord(id: String,
|
|
|
return null
|
|
|
}
|
|
|
// todo 留下人名,为后期补id
|
|
|
- /* val rec = association_entity_info.filter(r => StringUtils.isNotEmpty(r.keyno))
|
|
|
- if (rec.isEmpty) return null
|
|
|
-
|
|
|
- if (rec.length != association_entity_info.length)
|
|
|
- return CompanyDynamicRecord(id,
|
|
|
- rec,
|
|
|
- rowkey,
|
|
|
- tn,
|
|
|
- update_type,
|
|
|
- dynamic_code,
|
|
|
- dynamic_info,
|
|
|
- agg_detail_text,
|
|
|
- agg_detail_rowkey,
|
|
|
- biz_time,
|
|
|
- dynamic_time,
|
|
|
- update_time,
|
|
|
- create_time
|
|
|
- )*/
|
|
|
+ /* val rec = association_entity_info.filter(r => StringUtils.isNotEmpty(r.keyno))
|
|
|
+ if (rec.isEmpty) return null
|
|
|
+
|
|
|
+ if (rec.length != association_entity_info.length)
|
|
|
+ return CompanyDynamicRecord(id,
|
|
|
+ rec,
|
|
|
+ rowkey,
|
|
|
+ tn,
|
|
|
+ update_type,
|
|
|
+ dynamic_code,
|
|
|
+ dynamic_info,
|
|
|
+ agg_detail_text,
|
|
|
+ agg_detail_rowkey,
|
|
|
+ biz_time,
|
|
|
+ dynamic_time,
|
|
|
+ update_time,
|
|
|
+ create_time
|
|
|
+ )*/
|
|
|
this
|
|
|
}
|
|
|
|
|
|
+ import com.winhc.bigdata.spark.implicits.BaseHelper._
|
|
|
+
|
|
|
def to_row(): Row = {
|
|
|
val risk_level_str = association_entity_info.map(_.risk_level).distinct.mkString(",")
|
|
|
- val risk_level_detail = association_entity_info.map(r => s"${r.keyno}@@${r.risk_level}").distinct.mkString(",")
|
|
|
- val agg_detail_rowkey_str: String = if (agg_detail_rowkey == null) null else agg_detail_rowkey.map(_.toStr).mkString(",")
|
|
|
+ val risk_level_detail = association_entity_info.filter(r => StringUtils.isNotBlank(r.keyno)).map(r => s"${r.keyno}@@${r.risk_level}").distinct.mkStringOrNull(",")
|
|
|
+ val agg_detail_rowkey_str: String = if (agg_detail_rowkey == null || agg_detail_rowkey.isEmpty) null else agg_detail_rowkey.map(_.toStr).mkString(",")
|
|
|
Row(id
|
|
|
, association_entity_info.toJson()
|
|
|
, rowkey
|