|
@@ -2,13 +2,27 @@
|
|
|
|
|
|
package com.winhc.bigdata.spark.ng.change.table
|
|
|
|
|
|
+import com.winhc.bigdata.spark.implicits.Bool._
|
|
|
import com.winhc.bigdata.spark.ng.change.NgCompanyChangeHandle
|
|
|
import com.winhc.bigdata.spark.utils.DateUtils
|
|
|
-import com.winhc.bigdata.spark.implicits.Bool._
|
|
|
+import org.apache.commons.lang3.StringUtils
|
|
|
+
|
|
|
+import scala.util.matching.Regex
|
|
|
|
|
|
case class company_brief_cancel_announcement(equCols: Seq[String], is_inc: Boolean) extends NgCompanyChangeHandle {
|
|
|
|
|
|
- //todo
|
|
|
- override protected def getBizDate(newMap: Map[String, String]): String = is_inc ? DateUtils.getBizDate(newMap("update_time")) | DateUtils.getBizDate(newMap("publish_date"))
|
|
|
-}
|
|
|
+ override protected def getBizDate(newMap: Map[String, String]): String = is_inc ? DateUtils.getBizDate(newMap("update_time")) | DateUtils.getBizDate(get_announcement_start_date(newMap("publish_date")).orNull, newMap("update_time"))
|
|
|
+
|
|
|
+ private val p = "(?<start>[1-2]\\d{3}年[0-1][1-9]月[0-3]\\d日) - (?<end>[1-2]\\d{3}年[0-1][1-9]月[0-3]\\d日)".r
|
|
|
+
|
|
|
+ private def get_announcement_start_date(announcement_term: String): Option[String] = {
|
|
|
+ if (StringUtils.isEmpty(announcement_term))
|
|
|
+ return Option.empty
|
|
|
|
|
|
+ val f: Option[Regex.Match] = p.findFirstMatchIn(announcement_term)
|
|
|
+ if (f.isEmpty)
|
|
|
+ Option.empty
|
|
|
+ else
|
|
|
+ Option(f.get.group(1))
|
|
|
+ }
|
|
|
+}
|