From a3cc1d220f8a1de11874bebceba0130d32157ff1 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期二, 30 九月 2025 09:26:32 +0800
Subject: [PATCH] 2025.9.30 1. 联合前端调试数据产品接口(待完成)

---
 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/DomaincatalogServiceImpl.kt |   80 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 77 insertions(+), 3 deletions(-)

diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/DomaincatalogServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/DomaincatalogServiceImpl.kt
index 34c5a2e..94b7445 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/DomaincatalogServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/DomaincatalogServiceImpl.kt
@@ -1,14 +1,26 @@
 package cn.flightfeather.supervision.lightshare.service.impl
 
-import cn.flightfeather.supervision.domain.ds1.entity.Domaincatalog
-import cn.flightfeather.supervision.domain.ds1.mapper.DomaincatalogMapper
+import cn.flightfeather.supervision.common.utils.Constant
+import cn.flightfeather.supervision.common.utils.UUIDGenerator
+import cn.flightfeather.supervision.domain.ds1.entity.*
+import cn.flightfeather.supervision.domain.ds1.mapper.*
 import cn.flightfeather.supervision.lightshare.service.DomaincatalogService
+import cn.flightfeather.supervision.lightshare.vo.AreaVo
 import cn.flightfeather.supervision.lightshare.vo.DomaincatalogVo
 import org.springframework.beans.BeanUtils
 import org.springframework.stereotype.Service
+import org.springframework.transaction.annotation.Transactional
+import tk.mybatis.mapper.entity.Example
+import java.util.*
 
 @Service
-class DomaincatalogServiceImpl(val domaincatalogMapper: DomaincatalogMapper) : DomaincatalogService {
+class DomaincatalogServiceImpl(
+    private val domaincatalogMapper: DomaincatalogMapper,
+    private val problemtypeMapper: ProblemtypeMapper,
+    private val changeAdviceMapper: ChangeAdviceMapper,
+    private val evaluationruleMapper: EvaluationruleMapper,
+    private val evaluationsubruleMapper: EvaluationsubruleMapper,
+) : DomaincatalogService {
     //鏍规嵁name鏌ヨ
     override fun findOneByName(name: String): Domaincatalog? {
         val domaincatalog = Domaincatalog()
@@ -35,4 +47,66 @@
     override fun update(domaincatalog: Domaincatalog): Int = domaincatalogMapper.updateByPrimaryKey(domaincatalog)
 
     override fun delete(id: String): Int = domaincatalogMapper.deleteByPrimaryKey(id)
+
+    @Transactional
+    override fun quickConfiguration(
+        target: Constant.SceneType,
+        targetArea: AreaVo,
+        source: Constant.SceneType,
+        sourceArea: AreaVo,
+    ): Boolean {
+        //1. 闂绫诲瀷鍜屾暣鏀瑰缓璁�
+        val adviceList = changeAdviceMapper.selectByExample(Example(ChangeAdvice::class.java).apply {
+            createCriteria().andEqualTo("adExtension1", sourceArea.districtname)
+                .andEqualTo("adExtension2", source.text)
+        })
+        problemtypeMapper.selectByExample(Example(Problemtype::class.java).apply {
+            createCriteria().andEqualTo("scensetypeid", source.value.toByte())
+                .andEqualTo("districtname", sourceArea.districtname)
+        }).forEach {
+            val newProblemGuid = UUIDGenerator.generate16ShortUUID()
+            adviceList.find { ad -> ad.adProblemtypeguid == it.guid }?.let { ad ->
+                ad.adGuid = UUIDGenerator.generate16ShortUUID()
+                ad.adProblemtypeguid = newProblemGuid
+                ad.adCreatedate = Date()
+                ad.adUpdatedate = Date()
+                ad.adExtension1 = targetArea.districtname
+                ad.adExtension2 = target.text
+                changeAdviceMapper.insert(ad)
+            }
+
+            it.guid = newProblemGuid
+            it.scensetypeid = target.value.toByte()
+            it.scensetype = target.text
+            it.createdate = Date()
+            it.updatedate = Date()
+            it.provincecode = targetArea.provincecode
+            it.provincename = targetArea.provincename
+            it.citycode = targetArea.citycode
+            it.cityname = targetArea.cityname
+            it.districtcode = targetArea.districtcode
+            it.districtname = targetArea.districtname
+
+            problemtypeMapper.insert(it)
+        }
+
+        return true
+
+        //2. 闂浣嶇疆锛堥粯璁ゅ伐鍦帮紝鍙笉淇敼锛�
+        //3. 鑷瘎瑙勫垯琛�
+//        evaluationruleMapper.selectByExample(Example(Evaluationrule::class.java).apply {
+//            createCriteria().andEqualTo("tasktypeid", 99)
+//                .andEqualTo("scensetypeid", source.value)
+//            and(createCriteria().orEqualTo("provincecode", sourceArea.provincecode).orIsNull("provincecode"))
+//            and(createCriteria().orEqualTo("citycode", sourceArea.citycode).orIsNull("citycode"))
+//            and(createCriteria().orEqualTo("districtcode", sourceArea.districtcode).orIsNull("districtcode"))
+//            and(createCriteria().orEqualTo("towncode", sourceArea.towncode).orIsNull("towncode"))
+//        }).takeIf { it.isNotEmpty() }?.get(0).let {sourceRule ->
+//            if (sourceRule != null) {
+//                evaluationsubruleMapper.selectByExample(Example(Evaluationsubrule::class.java).apply {
+//                    createCriteria().andEqualTo("", sourceRule)
+//                })
+//            }
+//        }
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3