From bda3bf8923acb5216f6f46b5d903cac24c842143 Mon Sep 17 00:00:00 2001
From: Riku <risaku@163.com>
Date: 星期六, 28 九月 2024 22:25:29 +0800
Subject: [PATCH] 1. 新增监测数据得分批量更新接口(待完成)

---
 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/ItemevaluationService.kt          |    4 ++
 src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/EvaluationUpdateVo.kt                  |   22 +++++++++++
 src/main/kotlin/cn/flightfeather/supervision/business/autooutput/datasource/AopDataSource.kt      |    7 +++
 src/main/kotlin/cn/flightfeather/supervision/lightshare/web/ItemevaluationController.kt           |    9 +++-
 src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/AreaEvaVo.kt                           |    2 
 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ItemevaluationServiceImpl.kt |   24 ++++++++++++
 6 files changed, 65 insertions(+), 3 deletions(-)

diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/datasource/AopDataSource.kt b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/datasource/AopDataSource.kt
index 23bcf93..e8f9e4e 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/datasource/AopDataSource.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/datasource/AopDataSource.kt
@@ -7,6 +7,7 @@
 import cn.flightfeather.supervision.domain.ds2.entity.LedgerSubType
 import cn.flightfeather.supervision.domain.ds2.entity.UserMap
 import cn.flightfeather.supervision.domain.ds2.entity.UserinfoTZ
+import cn.flightfeather.supervision.lightshare.vo.AreaVo
 import cn.flightfeather.supervision.lightshare.vo.EvaluationSubRuleVo
 import org.springframework.beans.BeanUtils
 import tk.mybatis.mapper.entity.Example
@@ -39,6 +40,12 @@
         }
     }
 
+//    fun setResource(areaVo: AreaVo) {
+//        val task = taskRep.findOneTask(areaVo)
+//        val taskId = task?.tguid
+//        val sceneType = areaVo.scensetypeid?.toInt() ?: throw BizException("鍦烘櫙绫诲瀷鏈缃紝鏃犳硶璇勪及")
+//    }
+
     fun setResource(config: AopDataConfig) {
         config.sceneType ?: return
         evaluationScene.config = config
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/ItemevaluationService.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/ItemevaluationService.kt
index 48c0bf3..e160f2a 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/ItemevaluationService.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/ItemevaluationService.kt
@@ -1,6 +1,8 @@
 package cn.flightfeather.supervision.lightshare.service
 
 import cn.flightfeather.supervision.domain.ds1.entity.Itemevaluation
+import cn.flightfeather.supervision.lightshare.vo.AreaVo
+import cn.flightfeather.supervision.lightshare.vo.EvaluationUpdateVo
 import cn.flightfeather.supervision.lightshare.vo.ItemEvaluationVo
 
 
@@ -29,4 +31,6 @@
     fun createItemEvaluation(subTaskId: String, ruleId: String?, itemList: List<String>): Boolean
 
     fun updateItemEvaluation(subTaskId: String, ruleId: String?, itemList: List<String>): Boolean
+
+    fun updateMonitorDataEva(evaVo: EvaluationUpdateVo): Boolean
 }
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ItemevaluationServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ItemevaluationServiceImpl.kt
index 4ea547f..b3d99bc 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ItemevaluationServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ItemevaluationServiceImpl.kt
@@ -9,7 +9,10 @@
 import cn.flightfeather.supervision.domain.ds1.entity.Itemevaluation
 import cn.flightfeather.supervision.domain.ds1.mapper.ItemevaluationMapper
 import cn.flightfeather.supervision.domain.ds1.repository.SubTaskRep
+import cn.flightfeather.supervision.domain.ds1.repository.TaskRep
 import cn.flightfeather.supervision.lightshare.service.ItemevaluationService
+import cn.flightfeather.supervision.lightshare.vo.AreaVo
+import cn.flightfeather.supervision.lightshare.vo.EvaluationUpdateVo
 import cn.flightfeather.supervision.lightshare.vo.ItemEvaluationVo
 import org.springframework.beans.BeanUtils
 import org.springframework.stereotype.Service
@@ -22,6 +25,7 @@
     private val aopOutput: AopOutput,
     private val aopSceneTypeCheck: AopSceneTypeCheck,
     private val subTaskRep: SubTaskRep,
+    private val taskRep: TaskRep,
 ) : ItemevaluationService {
 
     //鎵归噺淇敼鍗曢」璇勪及
@@ -106,4 +110,24 @@
             throw BizException("鍑虹幇绯荤粺鍐呴儴閿欒")
         }
     }
+
+    override fun updateMonitorDataEva(evaVo: EvaluationUpdateVo): Boolean {
+        val task = taskRep.findOneTask(evaVo)
+        val taskId = task?.tguid
+        val sceneType = evaVo.scensetypeid?.toInt() ?: throw BizException("鍦烘櫙绫诲瀷鏈缃紝鏃犳硶鏇存柊鍒嗘暟")
+        val source = AopDataSource(aopDbMapper, aopSceneTypeCheck)
+        source.setResource(taskId, sceneType, null, null)
+        try {
+            source.loop() { _, evaluationScene ->
+                if (evaluationScene.noRecord()) throw BizException("宸℃煡浠诲姟涓嶅瓨鍦�")
+                // 灏嗗垎鏁拌祴鍊煎埌瀵瑰簲鐨勮瘎浼拌鍒欎笅锛屽苟涓旇嚜鍔ㄨ绠楀叾浣欒鍒欑殑寰楀垎
+                ScoreUtil.scoreAssign(evaluationScene, itemList)
+                // 鑾峰彇鎬诲垎鍜屽瓙椤瑰緱鍒嗘暟鎹簱琛ㄧ粨鏋勪綋锛屽苟鍏ュ簱
+                ScoreUtil.updateEvaRecord(evaluationScene)?.let { aopOutput.updateDbEvaluation(evaluationScene, it) }
+            }
+            return true
+        } catch (e: Exception) {
+            throw BizException("鍑虹幇绯荤粺鍐呴儴閿欒")
+        }
+    }
 }
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/AreaEvaVo.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/AreaEvaVo.kt
index 50bf37d..cd749f2 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/AreaEvaVo.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/AreaEvaVo.kt
@@ -6,7 +6,7 @@
  * 璇勪及瑙勫垯鏌ヨ鏉′欢
  */
 @JsonInclude(JsonInclude.Include.NON_NULL)
-class AreaEvaVo : AreaVo() {
+open class AreaEvaVo : AreaVo() {
     // 璇勪及瑙勫垯绫诲瀷锛�1锛氬贰鏌ユ儏鍐佃瘎浼帮紱99锛氳嚜鍔ㄨ瘎浼�
     var taskTypeId: Int = 1
 }
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/EvaluationUpdateVo.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/EvaluationUpdateVo.kt
new file mode 100644
index 0000000..75f1f1a
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/EvaluationUpdateVo.kt
@@ -0,0 +1,22 @@
+package cn.flightfeather.supervision.lightshare.vo
+
+import io.swagger.annotations.ApiModel
+import io.swagger.annotations.ApiModelProperty
+
+/**
+ * 宸℃煡浠诲姟鐩戞祴鏁版嵁寮傚父鎵e垎
+ * @date 2024/9/28
+ * @author feiyu02
+ */
+@ApiModel("宸℃煡浠诲姟鐩戞祴鏁版嵁寮傚父鎵e垎")
+class EvaluationUpdateVo : AreaEvaVo() {
+
+    @ApiModelProperty("宸℃煡浠诲姟涓婚敭")
+    var subTaskId: String? = null
+
+    @ApiModelProperty("璇勪及瑙勫垯id")
+    var ruleId: String? = null
+
+    @ApiModelProperty("鍏蜂綋璇勪及鏉$洰鏄惁鍕鹃��", notes = "瀵硅薄缁撴瀯涓鸿瘎浼版潯鐩殑涓婚敭鍜屾槸鍚﹀嬀閫夊舰鎴愮殑閿�煎鍒楄〃")
+    var subRule: List<Pair<String, Boolean>>? = null
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/ItemevaluationController.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/ItemevaluationController.kt
index bd4c0fd..c6c9a34 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/ItemevaluationController.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/ItemevaluationController.kt
@@ -3,12 +3,11 @@
 import cn.flightfeather.supervision.domain.ds1.entity.Itemevaluation
 import cn.flightfeather.supervision.lightshare.service.ItemevaluationService
 import cn.flightfeather.supervision.lightshare.vo.AreaVo
+import cn.flightfeather.supervision.lightshare.vo.EvaluationUpdateVo
 import io.swagger.annotations.Api
 import io.swagger.annotations.ApiOperation
 import io.swagger.annotations.ApiParam
 import org.springframework.web.bind.annotation.*
-import springfox.documentation.annotations.ApiIgnore
-import javax.servlet.http.HttpServletResponse
 
 @Api(tags = ["ItemevaluationController"], description = "璇勪及瀛愰」寰楀垎API鎺ュ彛")
 @RestController
@@ -55,4 +54,10 @@
         @RequestParam(required = false) ruleId: String?,
         @ApiParam(value = "鍏蜂綋鎵e垎鏉$洰涓婚敭锛堝彧浼犳渶灏忕骇鍒殑璇勪及椤癸級") @RequestBody itemList: List<String>,
     ) = resPack { itemevaluationService.updateItemEvaluation(subTaskId, ruleId, itemList) }
+
+    @ApiOperation(value = "鎵归噺鏇存柊璇勪及缁撴灉")
+    @PostMapping("/update/multiple")
+    fun updateMonitorDataEva(
+        @ApiParam("寰楀垎淇敼缁嗚妭") @RequestBody evaVo: EvaluationUpdateVo,
+    ) = resPack { itemevaluationService.updateMonitorDataEva(evaVo) }
 }
\ No newline at end of file

--
Gitblit v1.9.3