|
@@ -62,6 +62,9 @@ case class CreditPunishmentCaseAggUDF() extends UserDefinedAggregateFunction {
|
|
|
|
|
|
, StructField("final_case_exec_info", StringType) //11
|
|
|
, StructField("dishonest_exec_info", StringType) //12
|
|
|
+
|
|
|
+ , StructField("zxr_exec_amount", DoubleType) //13 被执行人标的额
|
|
|
+ , StructField("final_case_exec_amount", DoubleType) //14 终本案件标的额
|
|
|
))
|
|
|
|
|
|
override def dataType: DataType = DataTypes.createMapType(StringType, StringType)
|
|
@@ -83,6 +86,9 @@ case class CreditPunishmentCaseAggUDF() extends UserDefinedAggregateFunction {
|
|
|
|
|
|
buffer.update(11, null)
|
|
|
buffer.update(12, null)
|
|
|
+
|
|
|
+ buffer.update(13, 0d)
|
|
|
+ buffer.update(14, 0d)
|
|
|
}
|
|
|
|
|
|
override def update(buffer: MutableAggregationBuffer, input: Row): Unit = {
|
|
@@ -133,10 +139,14 @@ case class CreditPunishmentCaseAggUDF() extends UserDefinedAggregateFunction {
|
|
|
case "company_zxr" => {
|
|
|
buffer(5) = buffer.getDouble(5) + getAmount(detail_data, "$.exec_money")
|
|
|
buffer(7) = buffer.getDouble(7) + getAmount(detail_data, "$.exec_money")
|
|
|
+
|
|
|
+ buffer(13) = buffer.getDouble(13) + getAmount(detail_data, "$.exec_money")
|
|
|
}
|
|
|
case "company_zxr_final_case" => {
|
|
|
buffer(8) = buffer.getDouble(8) + getAmount(detail_data, "$.exec_amount")
|
|
|
buffer(9) = buffer.getDouble(9) + getAmount(detail_data, "$.no_exec_amount")
|
|
|
+
|
|
|
+ buffer(14) = buffer.getDouble(14) + getAmount(detail_data, "$.exec_amount")
|
|
|
}
|
|
|
case _ => {}
|
|
|
}
|
|
@@ -162,6 +172,9 @@ case class CreditPunishmentCaseAggUDF() extends UserDefinedAggregateFunction {
|
|
|
if (buffer1.getString(12) == null) {
|
|
|
buffer1(12) = buffer2.getString(12)
|
|
|
}
|
|
|
+
|
|
|
+ buffer1(13) = buffer1.getDouble(13) + buffer2.getDouble(13)
|
|
|
+ buffer1(14) = buffer1.getDouble(14) + buffer2.getDouble(14)
|
|
|
}
|
|
|
|
|
|
override def evaluate(buffer: Row): Any = {
|
|
@@ -198,6 +211,12 @@ case class CreditPunishmentCaseAggUDF() extends UserDefinedAggregateFunction {
|
|
|
val e2 = buffer.getString(12)
|
|
|
|
|
|
val exec_info = if (e1 == null) if (e2 == null) "未知" else e2 else e1
|
|
|
+
|
|
|
+ val a1 = getAmountInvolved(buffer.getDouble(13))
|
|
|
+ val a2 = getAmountInvolved(buffer.getDouble(14))
|
|
|
+
|
|
|
+ val amount_involved = if (a1 == null) if (a2 == null) "未知" else a2 else a1
|
|
|
+
|
|
|
Map(
|
|
|
"rowkey" -> rowkey.mkString(",")
|
|
|
, "card_num" -> card_num.headOption.getOrElse(null)
|
|
@@ -207,6 +226,7 @@ case class CreditPunishmentCaseAggUDF() extends UserDefinedAggregateFunction {
|
|
|
, "record_num" -> s"${rowkey.length}"
|
|
|
|
|
|
, "exec_info" -> exec_info
|
|
|
+ , "amount_involved" -> amount_involved
|
|
|
|
|
|
, "total_exec_amount" -> double2String(total_exec_amount)
|
|
|
, "total_no_exec_amount" -> double2String(total_no_exec_amount)
|
|
@@ -230,6 +250,9 @@ case class CreditPunishmentCaseAggUDF() extends UserDefinedAggregateFunction {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ private def getAmountInvolved(d: Double): String = if (d == 0d) null else NumberUtil.decimalFormat("#.##万元", NumberUtil.div(d, 10000))
|
|
|
+
|
|
|
+
|
|
|
private def getStr(json: String, jsonPath: String): String = {
|
|
|
JSONPath.eval(JSON.parseObject(json), jsonPath).asInstanceOf[String]
|
|
|
}
|