Browse Source

稍改,并添加购地信息维度

晏永年 4 years ago
parent
commit
15f539a093

+ 21 - 3
src/main/scala/com/winhc/bigdata/spark/jobs/chance/CompanyChangeHandle.scala

@@ -76,8 +76,10 @@ trait CompanyChangeHandle extends Serializable with Logging {
 //土地公示
 case class company_land_publicity(equCols: Seq[String]) extends CompanyChangeHandle with Serializable {
 
-  override def getLabel(oldMap: Map[String, String], newMap: Map[String, String]): String = "1"
-
+  override def getLabel(oldMap: Map[String, String], newMap: Map[String, String]): String = {
+    val str = ChangeExtractUtils.getTags(newMap, "地块公示", Array("project_name", "location", "application_name", "area", "final_price", "land_num"))
+    str
+  }
   override def getBizTime(newMap: Map[String, String]): String = "业务时间"
 
   override def getUpdateTitle(newMap: Map[String, String]): String = "更新某地块公示"
@@ -114,7 +116,23 @@ case class company_patent_list(equCols:Seq[String])extends CompanyChangeHandle{
 
   override def getInsertTitle(newMap: Map[String, String]): String =  getValueOrNull(newMap("title"), s"新增${newMap("title")}专利")
 
-  override def getLabel(oldMap: Map[String, String], newMap: Map[String, String]): String = ChangeExtractUtils.get_ip_tags("专利", newMap("title"), newMap("app_date"), newMap("app_number"))
+  override def getLabel(oldMap: Map[String, String], newMap: Map[String, String]): String =
+    ChangeExtractUtils.getTags(newMap,"专利", Array("title", "app_date", "app_number"))
 
   override def getBizTime(newMap: Map[String, String]): String = newMap("app_date")
+
+
+}
+
+//购地信息
+case class company_land_announcement(equCols:Seq[String])extends CompanyChangeHandle{
+  override def getUpdateTitle(newMap: Map[String, String]): String = getValueOrNull(newMap("project_name"), s"${newMap("project_name")}购地信息发生变更")
+
+  override def getInsertTitle(newMap: Map[String, String]): String =  getValueOrNull(newMap("project_name"), s"新增${newMap("project_name")}购地信息")
+
+  override def getLabel(oldMap: Map[String, String], newMap: Map[String, String]): String = ChangeExtractUtils.getTags(newMap,"购地信息", Array("project_name","project_loc", "area", "tran_price", "e_number"))
+
+  override def getBizTime(newMap: Map[String, String]): String = newMap("contract_date")
+
+
 }

+ 9 - 0
src/main/scala/com/winhc/bigdata/spark/utils/ChangeExtractUtils.scala

@@ -12,6 +12,15 @@ object ChangeExtractUtils {
   def get_ip_tags(type_val: String, name: String, date: String, no: String): String = {
     s"""{"type":${getValueOrNull(type_val)},"name":${getValueOrNull(name)},"date":${getValueOrNull(date)},"no":${getValueOrNull(no)}}""".trim
   }
+  //获取指定字段集的标签Json
+  def getTags(fldMap: Map[String, String], type_val: String, fields: Array[String]): String = {
+    var json:StringBuilder = new StringBuilder(s"""{"type":${getValueOrNull(type_val)},""")
+    fields.map {item=>
+      json.append(s"${getValueOrNull(item)}")
+      json.append(s":${getValueOrNull(fldMap(item))},")
+    }
+    json.deleteCharAt(json.lastIndexOf(",")).append("}").toString.trim
+  }
 
   private def getValueOrNull(value:String):String={
     if(StringUtils.isNotBlank(value)){