lyhzzz 5 月之前
父节点
当前提交
52cb181343

+ 23 - 1
src/main/java/com/fdkankan/fusion/controller/CaseController.java

@@ -4,6 +4,8 @@ package com.fdkankan.fusion.controller;
 import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.fusion.common.ResultCode;
+import com.fdkankan.fusion.entity.CaseNumEntity;
+import com.fdkankan.fusion.entity.ScenePlus;
 import com.fdkankan.fusion.entity.TmProject;
 import com.fdkankan.fusion.exception.BusinessException;
 import com.fdkankan.fusion.common.ResultData;
@@ -12,12 +14,17 @@ import com.fdkankan.fusion.request.CaseParam;
 import com.fdkankan.fusion.response.CaseVo;
 import com.fdkankan.fusion.service.ICaseNumService;
 import com.fdkankan.fusion.service.ICaseService;
+import com.fdkankan.fusion.service.IScenePlusService;
 import com.fdkankan.fusion.service.ITmProjectService;
 import com.fdkankan.fusion.service.impl.CopyCaseService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * 案件管理
  */
@@ -31,6 +38,10 @@ public class CaseController extends BaseController{
     ITmProjectService tmProjectService;
     @Autowired
     CopyCaseService copyCaseService;
+    @Autowired
+    ICaseNumService caseNumService;
+    @Autowired
+    IScenePlusService scenePlusService;
 
     @PostMapping("/list")
     public ResultData list(@RequestBody CaseParam param ){
@@ -48,7 +59,7 @@ public class CaseController extends BaseController{
     }
 
     @PostMapping("/addOrUpdate")
-    public ResultData addOrUpdate(@RequestBody CaseParam param){
+    public ResultData addOrUpdate(@RequestBody CaseEntity param){
         return ResultData.ok(caseService.addOrUpdate(param));
     }
 
@@ -80,5 +91,16 @@ public class CaseController extends BaseController{
         copyCaseService.copyCase(param.getCaseId());
         return ResultData.ok();
     }
+
+    @GetMapping("/sceneListHasAi")
+    public ResultData sceneListHasAi(@RequestParam(required = false) Integer caseId){
+        List<CaseNumEntity> caseNums = caseNumService.getByCaseId(caseId);
+        List<ScenePlus> collect = new ArrayList<>();
+        if(!caseNums.isEmpty()){
+            List<String> numList = caseNums.stream().map(CaseNumEntity::getNum).collect(Collectors.toList());
+            collect = scenePlusService.getByNumList(numList);
+        }
+        return ResultData.ok(collect);
+    }
 }
 

+ 6 - 0
src/main/java/com/fdkankan/fusion/entity/CaseEntity.java

@@ -5,7 +5,9 @@ import com.baomidou.mybatisplus.annotation.*;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
+import com.fdkankan.fusion.request.SceneNumParam;
 import com.fdkankan.fusion.typehandle.JsonArrayTypeHandler;
 import lombok.Getter;
 import lombok.Setter;
@@ -126,4 +128,8 @@ public class CaseEntity implements Serializable {
 
     @TableField("thumb")
     private String thumb;
+
+    @TableField(exist = false)
+    private List<SceneNumParam> sceneNumParam;
+
 }

+ 3 - 2
src/main/java/com/fdkankan/fusion/entity/ScenePlus.java

@@ -116,6 +116,7 @@ public class ScenePlus implements Serializable {
     @TableLogic(value = "A",delval = "I")
     private String recStatus;
 
-    @TableField("has_ai")
-    private Integer hasAi;
+    //@TableField("has_ai")
+    @TableField(exist = false)
+    private Integer hasAi = 0;
 }

+ 1 - 1
src/main/java/com/fdkankan/fusion/service/ICaseService.java

@@ -23,7 +23,7 @@ public interface ICaseService extends IService<CaseEntity> {
 
     PageInfo pageList(CaseParam param);
 
-    CaseEntity addOrUpdate(CaseParam param);
+    CaseEntity addOrUpdate(CaseEntity param);
 
     void addScene(CaseParam param);
 

+ 2 - 0
src/main/java/com/fdkankan/fusion/service/IScenePlusService.java

@@ -22,4 +22,6 @@ public interface IScenePlusService extends IService<ScenePlus> {
     List<DataGroupVo> groupByCameraId(DataParam param, List<Long> cameraIds);
 
     List<DataGroupVo> groupByType(DataParam param, List<Long> cameraIds);
+
+    List<ScenePlus> getByNumList(List<String> numList);
 }

+ 11 - 14
src/main/java/com/fdkankan/fusion/service/impl/CaseServiceImpl.java

@@ -211,24 +211,20 @@ public class CaseServiceImpl extends ServiceImpl<ICaseMapper, CaseEntity> implem
     }
 
     @Override
-    public CaseEntity addOrUpdate(CaseParam param) {
-        CaseEntity  caseEntity;
-        if(param.getCaseId() == null){
-            caseEntity = new CaseEntity();
-        }else {
-            caseEntity = this.getById(param.getCaseId());
+    public CaseEntity addOrUpdate(CaseEntity caseEntity) {
+        if( StringUtils.isNotBlank(caseEntity.getCaseTitle())){
+            this.saveOrUpdate(caseEntity);
         }
-        caseEntity.setCaseTitle(param.getCaseTitle());
-        caseEntity.setUpdateTime(null);
-        this.saveOrUpdate(caseEntity);
 
-        this.addScene(getAddSceneParam(param,caseEntity.getCaseId()));
+        if(caseEntity.getSceneNumParam() != null){
+            this.addScene(getAddSceneParam(caseEntity,caseEntity.getCaseId()));
+        }
         return caseEntity;
     }
 
     @Autowired
     CaseNumTypeUtil caseNumTypeUtil;
-    private CaseParam getAddSceneParam(CaseParam param,Integer caseId){
+    private CaseParam getAddSceneParam(CaseEntity param,Integer caseId){
         HashMap<Integer,HashSet<String>> numTypeMap = new HashMap<>();
         for (Integer type : CaseNumTypeUtil.getNumType()) {
             numTypeMap.put(type,new HashSet<>());
@@ -245,15 +241,16 @@ public class CaseServiceImpl extends ServiceImpl<ICaseMapper, CaseEntity> implem
             }
         }
         List<SceneNumParam> newParam = new ArrayList<>();
+        CaseParam param1 = new CaseParam();
         for (Integer type : numTypeMap.keySet()) {
             SceneNumParam numType1 = new SceneNumParam();
             numType1.setType(type);
             numType1.setNumList(new ArrayList<>(numTypeMap.get(type)));
             newParam.add(numType1);
         }
-        param.setSceneNumParam(newParam);
-        param.setCaseId(caseId);
-        return param;
+        param1.setSceneNumParam(newParam);
+        param1.setCaseId(caseId);
+        return param1;
     }
 
     @Override

+ 7 - 0
src/main/java/com/fdkankan/fusion/service/impl/ScenePlusServiceImpl.java

@@ -41,4 +41,11 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
     public List<DataGroupVo> groupByType(DataParam param, List<Long> cameraIds) {
         return getBaseMapper().groupByType(param.getStartTime(),param.getEndTime(),cameraIds);
     }
+
+    @Override
+    public List<ScenePlus> getByNumList(List<String> numList) {
+        LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(ScenePlus::getNum,numList);
+        return this.list(wrapper);
+    }
 }