root 2 jaren geleden
bovenliggende
commit
70feb52312

+ 14 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/SceneAccidentMapper.java

@@ -2,7 +2,10 @@ package com.css.simulation.resource.scene.mapper;
 
 import api.common.pojo.param.scene.SceneAccidentParam;
 import api.common.pojo.po.scene.SceneAccidentPO;
+import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 import org.springframework.stereotype.Repository;
 import java.util.List;
 
@@ -27,4 +30,15 @@ public interface SceneAccidentMapper {
     void updateSceneAccidentList(List<SceneAccidentPO> list);
     SceneAccidentPO querySceneAccidentById(String id);
 
+    @Select("select accident_id\n" +
+            "from scene_accident\n" +
+            "where scene_name = #{sceneName}")
+    List<String> selectIdByName(@Param("sceneName") String sceneName);
+
+    @Delete("update scene_accident\n" +
+            "set is_deleted  = '1',\n" +
+            "    modify_time = now(),\n" +
+            "    modify_user_id = #{modifyUserId} \n" +
+            "where scene_name = #{sceneName}")
+    void deleteByName(@Param("sceneName") String sceneName, @Param("modifyUserId") String modifyUserId);
 }

+ 61 - 42
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SceneAccidentService.java

@@ -5,6 +5,7 @@ import api.common.pojo.constants.DictConstants;
 import api.common.pojo.constants.LogConstants;
 import api.common.pojo.param.MinioParameter;
 import api.common.pojo.param.scene.SceneAccidentParam;
+import api.common.pojo.param.scene.SceneDeleteParam;
 import api.common.pojo.param.scene.SceneImportParam;
 import api.common.pojo.po.scene.SceneAccidentPO;
 import api.common.pojo.po.system.SceneImportPO;
@@ -14,13 +15,15 @@ import api.common.util.TimeUtil;
 import com.css.simulation.resource.common.utils.AuthUtil;
 import com.css.simulation.resource.feign.FileDownService;
 import com.css.simulation.resource.log.service.LogService;
-import com.css.simulation.resource.system.service.DictService;
+import com.css.simulation.resource.scene.mapper.SceneAccidentMapper;
+import com.css.simulation.resource.scene.mapper.ScenePackageMapper;
+import com.css.simulation.resource.scene.mapper.ScenePackageSublistMapper;
+import com.css.simulation.resource.scene.mapper.SystemScenePackageSublistMapper;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import feign.Response;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -34,16 +37,17 @@ import java.util.Map;
 public class SceneAccidentService {
 
     @Resource
-    com.css.simulation.resource.scene.mapper.SceneAccidentMapper SceneAccidentMapper;
-
-
+    private SceneAccidentMapper sceneAccidentMapper;
+    @Resource
+    private ScenePackageSublistMapper scenePackageSublistMapper;
+    @Resource
+    private ScenePackageMapper scenePackageMapper;
+    @Resource
+    private SystemScenePackageSublistMapper systemScenePackageSublistMapper;
     @Resource
     private FileDownService fileDownService;
-
-    @Autowired
-    LogService logService;
-    @Autowired
-    DictService dictService;
+    @Resource
+    private LogService logService;
 
     /**
      * 获取交通事故场景数据:
@@ -65,7 +69,7 @@ public class SceneAccidentService {
         SceneAccidentPO sceneAccidentPO = new SceneAccidentPO();
         sceneAccidentPO.setShare("0");
         sceneAccidentPO.setSceneName(sceneName);
-        SceneAccidentPO sceneAccidentPOByName = SceneAccidentMapper.querySceneAccidentByNmae(sceneAccidentPO);
+        SceneAccidentPO sceneAccidentPOByName = sceneAccidentMapper.querySceneAccidentByNmae(sceneAccidentPO);
 
         sceneAccidentPO = sceneAccidentPO.builder()
                 .accidentId(StringUtil.getRandomUUID())
@@ -106,13 +110,13 @@ public class SceneAccidentService {
          /*   if (null != param.getVideoPreview() && !param.getVideoPreview().equals("")) {
                 sceneAccidentPO.setVideoPreview(param.getVideoPreview());
             }*/
-            SceneAccidentMapper.saveSceneAccident(sceneAccidentPO);
+            sceneAccidentMapper.saveSceneAccident(sceneAccidentPO);
         } else {
             // -------------------------------- 修改数据到 mysql --------------------------------
             sceneAccidentPO.setAccidentId(sceneAccidentPOByName.getAccidentId());
             sceneAccidentPO.setModifyTime(TimeUtil.getNowForMysql());
             sceneAccidentPO.setModifyUserId(AuthUtil.getCurrentUserId());
-            SceneAccidentMapper.updateSceneAccident(sceneAccidentPO);
+            sceneAccidentMapper.updateSceneAccident(sceneAccidentPO);
         }
         return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
 
@@ -185,7 +189,7 @@ public class SceneAccidentService {
                     }
                 }
             }
-            SceneAccidentMapper.saveSceneAccident(sceneAccidentPO);
+            sceneAccidentMapper.saveSceneAccident(sceneAccidentPO);
         } catch (Exception e) {
             log.error("标准法规场景" + fileName + " 解析出错:", e);
         }
@@ -198,35 +202,35 @@ public class SceneAccidentService {
         log.info("交通事故查询------" + roleCode);
         String userId = AuthUtil.getCurrentUserId();
         if (DictConstants.ROLE_CODE_ADMIN.equals(roleCode) || DictConstants.ROLE_CODE_SYSADMIN.equals(roleCode)) { //管理员账户
-            list = SceneAccidentMapper.querySceneAccidentList(params);
+            list = sceneAccidentMapper.querySceneAccidentList(params);
             log.info("泛华----list--" + list.size() + "----------" + params);
         } else if (DictConstants.ROLE_CODE_SUBUESR.equals(roleCode)) {
             //查询父账户
             userId = AuthUtil.getCreateUserId();
             params.setUserId(userId);
             if (params.getShare().equals("0")) {
-                list = SceneAccidentMapper.querySceneAccidentList(params);
+                list = sceneAccidentMapper.querySceneAccidentList(params);
             } else {
-                list = SceneAccidentMapper.querySceneAccidentListByQx(params);
+                list = sceneAccidentMapper.querySceneAccidentListByQx(params);
             }
 
         } else if (DictConstants.ROLE_CODE_UESR.equals(roleCode)) {
             //查询普通账户
             params.setUserId(userId);
             if (params.getShare().equals("0")) {
-                list = SceneAccidentMapper.querySceneAccidentList(params);
+                list = sceneAccidentMapper.querySceneAccidentList(params);
             } else {
-                list = SceneAccidentMapper.querySceneAccidentListByQx(params);
+                list = sceneAccidentMapper.querySceneAccidentListByQx(params);
             }
 
         }
 
      /*   if ((params.getXlk().equals("1") && params.getBq().equals(1)) || (params.getXlk().equals("0") && params.getBq().equals(0)) || (params.getXlk().equals("1") && params.getBq().equals(0))) {
-            list = SceneAccidentMapper.querySceneAccidentList(params);
+            list = sceneAccidentMapper.querySceneAccidentList(params);
         }*//*else if(params.getXlk().equals("1")&&params.getBq().equals("0")){
-            list = SceneAccidentMapper.querySceneAccidentListByXlk(params);
+            list = sceneAccidentMapper.querySceneAccidentListByXlk(params);
         }*//* else if (params.getXlk().equals("0") && params.getBq().equals(1)) {
-            list = SceneAccidentMapper.querySceneAccidentListByBq(params);
+            list = sceneAccidentMapper.querySceneAccidentListByBq(params);
         }*/
 
         //追尾
@@ -328,9 +332,9 @@ public class SceneAccidentService {
         }
         List<SceneAccidentPO> list = new ArrayList<>();
         if ((params.getXlk().equals("1") && params.getBq().equals(1)) || (params.getXlk().equals("0") && params.getBq().equals(0)) || (params.getXlk().equals("1") && params.getBq().equals(0))) {
-            list = SceneAccidentMapper.querySceneAccidentList(params);
+            list = sceneAccidentMapper.querySceneAccidentList(params);
         } else if (params.getXlk().equals("0") && params.getBq().equals(1)) {
-            list = SceneAccidentMapper.querySceneAccidentListByBq(params);
+            list = sceneAccidentMapper.querySceneAccidentListByBq(params);
         }
 
 
@@ -367,11 +371,26 @@ public class SceneAccidentService {
     }
 
     public void deleteSceneAccidentList(SceneAccidentPO params) {
-        params.setIsDeleted("1");
-        params.setModifyTime(TimeUtil.getNowForMysql());
-        params.setModifyUserId(AuthUtil.getCurrentUserId());
-        SceneAccidentMapper.deleteSceneAccidentList(params);
-        Map map = new HashMap();
+        //1 获取参数
+        String sceneName = params.getSceneName(); // 场景名称
+        //2 根据场景名称查询出同名的所有场景id,包括公有和私有
+        List<String> sceneIdList = sceneAccidentMapper.selectIdByName(sceneName);
+        for (String sceneId : sceneIdList) {
+            //3 将所有场景测试包指标中的该场景删除
+            SceneDeleteParam param = new SceneDeleteParam();
+            param.setModifyTime(TimeUtil.getNowForMysql());
+            param.setSceneJtId(sceneId);
+            param.setModifyUserId(AuthUtil.getCurrentUserId());
+            scenePackageSublistMapper.updateScenePackageSublistById(param);
+            //4 将所有包含该场景的场景测试包状态为已禁用
+            scenePackageMapper.updateIsUnavailableByAccidentId("1", sceneId);
+        }
+        //5 将所有场景包中的该场景删除
+        systemScenePackageSublistMapper.deleteBySceneName(sceneName);
+        //6 删除所有同名场景(包括公有和私有)
+        sceneAccidentMapper.deleteByName(sceneName, AuthUtil.getCreateUserId());
+        //7 记录日志
+        Map<String, String> map = new HashMap<>();
         map.put("sceneId", params.getAccidentId());
         map.put("sceneName", params.getSceneName());
         map.put("type", DictConstants.SCENE_ACCIDENT);
@@ -429,7 +448,7 @@ public class SceneAccidentService {
                         JsonNode root = objMap.readTree(json);
                         //判断是否存在
                         String sceneName = root.path("场景名称").asText();
-                        String sceneId = SceneAccidentMapper.querySceneAccidentByNmae(root.path("场景名称").asText());
+                        String sceneId = sceneAccidentMapper.querySceneAccidentByNmae(root.path("场景名称").asText());
                         sceneAccidentPO = sceneAccidentPO.builder()
                                 .accidentId(StringUtil.getRandomUUID())
                                 .sceneName(root.path("场景名称").asText())
@@ -480,10 +499,10 @@ public class SceneAccidentService {
                 wJNum++;
             }
             if (ObjectUtil.isNotNull(list)) {
-                SceneAccidentMapper.saveSceneAccidentList(list);
+                sceneAccidentMapper.saveSceneAccidentList(list);
             }
             if (ObjectUtil.isNotNull(updateList)) {
-                SceneAccidentMapper.updateSceneAccidentList(updateList);
+                sceneAccidentMapper.updateSceneAccidentList(updateList);
             }
             return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
         } catch (Exception e) {
@@ -535,7 +554,7 @@ public class SceneAccidentService {
                                 JsonNode root = objMap.readTree(json);
                                 //判断是否存在
                                 String sceneName = root.path("场景名称").asText();
-                                String sceneId = SceneAccidentMapper.querySceneAccidentByNmae(sceneName);
+                                String sceneId = sceneAccidentMapper.querySceneAccidentByNmae(sceneName);
                                 sceneAccidentPO = sceneAccidentPO.builder()
                                         .accidentId(StringUtil.getRandomUUID())
                                         .sceneName(sceneName)
@@ -598,10 +617,10 @@ public class SceneAccidentService {
 
             }
             if (ObjectUtil.isNotNull(list)) {
-                SceneAccidentMapper.saveSceneAccidentList(list);
+                sceneAccidentMapper.saveSceneAccidentList(list);
             }
             if (ObjectUtil.isNotNull(updateList)) {
-                SceneAccidentMapper.updateSceneAccidentList(updateList);
+                sceneAccidentMapper.updateSceneAccidentList(updateList);
             }
             return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
         } catch (Exception e) {
@@ -689,7 +708,7 @@ public class SceneAccidentService {
 
                                     sceneAccidentPO.setSceneName(sceneName);
                                     sceneAccidentPO.setShare("0");
-                                    SceneAccidentPO sceneAccidentPOByName = SceneAccidentMapper.querySceneAccidentByNmae(sceneAccidentPO);
+                                    SceneAccidentPO sceneAccidentPOByName = sceneAccidentMapper.querySceneAccidentByNmae(sceneAccidentPO);
                                     if (ObjectUtil.isNull(sceneAccidentPOByName)) { // 新增数据
                                         isupdate = "0";
                                     } else {    // 覆盖(更新)数据
@@ -736,12 +755,12 @@ public class SceneAccidentService {
                                 sceneAccidentPO.setCreateTime(TimeUtil.getNowForMysql());
                                 sceneAccidentPO.setCreateUserId(AuthUtil.getCurrentUserId());
                                 sceneAccidentPO.setModifyTime(TimeUtil.getNowForMysql());
-                                SceneAccidentMapper.saveSceneAccident(sceneAccidentPO);
+                                sceneAccidentMapper.saveSceneAccident(sceneAccidentPO);
                             } else if (isupdate.equals("1")) {
                                 // -------------------------------- 修改数据到 mysql --------------------------------
                                 sceneAccidentPO.setModifyTime(TimeUtil.getNowForMysql());
                                 sceneAccidentPO.setModifyUserId(AuthUtil.getCurrentUserId());
-                                SceneAccidentMapper.updateSceneAccident(sceneAccidentPO);
+                                sceneAccidentMapper.updateSceneAccident(sceneAccidentPO);
                             }
                             successNum = successNum + 1;
                         } catch (Exception e) {
@@ -777,9 +796,9 @@ public class SceneAccidentService {
      * 分享
      */
     public void instShareSceneAccident(SceneAccidentPO po) {
-        SceneAccidentPO syPO = SceneAccidentMapper.querySceneAccidentById(po.getAccidentId());
+        SceneAccidentPO syPO = sceneAccidentMapper.querySceneAccidentById(po.getAccidentId());
         syPO.setShare("1");
-        SceneAccidentPO sceneAccidentPOByName = SceneAccidentMapper.querySceneAccidentByNmae(syPO);
+        SceneAccidentPO sceneAccidentPOByName = sceneAccidentMapper.querySceneAccidentByNmae(syPO);
         if (ObjectUtil.isNull(sceneAccidentPOByName)) {
             // -------------------------------- 保存数据到 mysql --------------------------------
             syPO.setCreateTime(TimeUtil.getNowForMysql());
@@ -787,13 +806,13 @@ public class SceneAccidentService {
             syPO.setModifyTime(TimeUtil.getNowForMysql());
             syPO.setModifyUserId("");
             syPO.setAccidentId(StringUtil.getRandomUUID());
-            SceneAccidentMapper.saveSceneAccident(syPO);
+            sceneAccidentMapper.saveSceneAccident(syPO);
         } else {
             // -------------------------------- 修改数据到 mysql --------------------------------
             syPO.setModifyTime(TimeUtil.getNowForMysql());
             syPO.setModifyUserId(AuthUtil.getCurrentUserId());
             syPO.setAccidentId(sceneAccidentPOByName.getAccidentId());
-            SceneAccidentMapper.updateSceneAccident(syPO);
+            sceneAccidentMapper.updateSceneAccident(syPO);
         }
 
     }