root 2 yıl önce
ebeveyn
işleme
117d1896db

+ 4 - 4
api-common/src/main/java/api/common/pojo/param/scene/ScenePackageParam.java

@@ -8,7 +8,7 @@ import java.io.Serializable;
 /**
  * 测试场景包
  */
-@EqualsAndHashCode()
+@EqualsAndHashCode(callSuper = false)
 @Data
 @Builder
 @NoArgsConstructor
@@ -19,7 +19,7 @@ public class ScenePackageParam extends PageVO implements Serializable {
     private String packageCode  ;//测试包指标Id
     private String packageName ; //指标名称
     private String share ; //是否分析  1为分享
-    public String yearMax;//结束时间
-    public String yearMin;//开始时间
-    public String createUserId;//创建人Id
+    private String yearMax;//结束时间
+    private String yearMin;//开始时间
+    private String createUserId;//创建人Id
 }

+ 9 - 7
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/SceneNaturalController.java

@@ -14,7 +14,10 @@ import com.css.simulation.resource.scene.service.SceneNaturalService;
 import com.css.simulation.resource.system.service.SceneImportService;
 import com.github.pagehelper.PageInfo;
 import org.springframework.beans.BeanUtils;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
@@ -32,7 +35,6 @@ public class SceneNaturalController {
 
     //查询列表
     @PostMapping("/querySceneNaturalList")
-    @ResponseBody
     public ResponseBodyVO<PageInfo<SceneNaturalVO>> querySceneNaturalList(@RequestBody SceneNaturalNewParam params) {
         PageUtil.setPageInfo(params);
         List<SceneNaturalPO> list = sceneNaturalService.querySceneNaturalList(params);
@@ -51,15 +53,17 @@ public class SceneNaturalController {
 
     //新增自然场景
     @PostMapping("/saveSceneNatural")
-    @ResponseBody
     public ResponseBodyVO<String> saveSceneNatural(@RequestBody SceneNaturalParam params) {
 
         return sceneNaturalService.importZrjsSceneCicv(params);
     }
 
-    //删除
+    /**
+     * 删除
+     * @param params
+     * @return
+     */
     @PostMapping("/deleteSceneNatural")
-    @ResponseBody
     public ResponseBodyVO<String> deleteSceneNatural(@RequestBody SceneNaturalPO params) {
         if (ObjectUtil.isNull(params.getNaturalId())) {
             return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "参数场景Id不能为空,请检查");
@@ -72,7 +76,6 @@ public class SceneNaturalController {
      * 解析已经上传好的数据
      */
     @PostMapping("/saveSceneNaturalBatch")
-    @ResponseBody
     public ResponseBodyVO<String> saveSceneNaturalBatch(@RequestBody SceneImportParam sceneImportParam) {
         SceneImportPO sceneImportPO = new SceneImportPO();
         sceneImportPO.setId(sceneImportParam.getId());
@@ -87,7 +90,6 @@ public class SceneNaturalController {
 
     //分享
     @PostMapping("/instShareSceneNatural")
-    @ResponseBody
     public ResponseBodyVO<String> instShareSceneNatural(@RequestBody SceneNaturalPO po) {
         sceneNaturalService.instShareSceneNatural(po);
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);

+ 22 - 3
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/ScenePackageSublistMapper.java

@@ -2,13 +2,13 @@ package com.css.simulation.resource.scene.mapper;
 
 import api.common.pojo.po.scene.ScenePackageSublistPO;
 import api.common.pojo.vo.scene.ScenePackageSublistVO;
-import org.apache.ibatis.annotations.Mapper;
-import org.springframework.stereotype.Repository;
+import org.apache.ibatis.annotations.*;
+import org.apache.ibatis.type.JdbcType;
+
 import java.util.List;
 
 
 @Mapper
-@Repository
 public interface ScenePackageSublistMapper {
 
     void saveScenePackageSublist(ScenePackageSublistPO params);
@@ -16,6 +16,7 @@ public interface ScenePackageSublistMapper {
     void saveScenePackageSublistAll(List<ScenePackageSublistPO> treeList);
 
     void deleteScenePackageSublist(String rootId);
+
     void deleteScenePackageSublistById(String sublistId);
 
     List<ScenePackageSublistVO> queryScenePackageSublistList(ScenePackageSublistPO params);
@@ -23,4 +24,22 @@ public interface ScenePackageSublistMapper {
     //指标名查唯一
     List<ScenePackageSublistVO> queryBySublistName(ScenePackageSublistPO params);
 
+
+    @Results(id = "scenePackageSublist", value = {
+            @Result(column = "sublist_id", property = "id", jdbcType = JdbcType.VARCHAR),
+            @Result(column = "root_id", property = "rootId", jdbcType = JdbcType.VARCHAR),
+            @Result(column = "scene_natural_ids", property = "sceneNaturalIds", jdbcType = JdbcType.VARCHAR)
+    })
+    @Select("select sublist_id, root_id, scene_natural_ids\n" +
+            "from scene_package_sublist\n" +
+            "where scene_natural_ids like concat('%',#{naturalId},'%')")
+    List<ScenePackageSublistPO> selectIdByNaturalId(@Param("naturalId") String naturalId);
+
+    @Update("update scene_package_sublist\n" +
+            "set scene_natural_ids =\n" +
+            "        if(scene_natural_ids like concat( '%',#{sceneId}, '%'),\n" +
+            "           replace(replace(replace(scene_natural_ids, concat(#{sceneId}, ','), ''), concat(',', #{sceneId}), ''),\n" +
+            "                   #{sceneId}, ''),\n" +
+            "           scene_natural_ids)")
+    void updateSceneNaturalIdsBySceneId(@Param("sceneId") String sceneId);
 }

+ 34 - 6
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SceneNaturalService.java

@@ -8,6 +8,7 @@ import api.common.pojo.param.scene.SceneImportParam;
 import api.common.pojo.param.scene.SceneNaturalNewParam;
 import api.common.pojo.param.scene.SceneNaturalParam;
 import api.common.pojo.po.scene.SceneNaturalPO;
+import api.common.pojo.po.scene.ScenePackageSublistPO;
 import api.common.pojo.po.system.SceneImportPO;
 import api.common.util.ObjectUtil;
 import api.common.util.ParamUtil;
@@ -16,6 +17,8 @@ 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.scene.mapper.SceneNaturalMapper;
+import com.css.simulation.resource.scene.mapper.ScenePackageMapper;
+import com.css.simulation.resource.scene.mapper.ScenePackageSublistMapper;
 import com.css.simulation.resource.scene.mapper.SystemScenePackageMapper;
 import com.css.simulation.resource.system.service.DictService;
 import com.fasterxml.jackson.databind.JsonNode;
@@ -24,11 +27,11 @@ import com.github.pagehelper.util.StringUtil;
 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;
 import java.util.*;
+import java.util.stream.Collectors;
 
 
 @Slf4j
@@ -38,14 +41,17 @@ public class SceneNaturalService {
     @Resource
     private SceneNaturalMapper sceneNaturalMapper;
     @Resource
+    private ScenePackageSublistMapper scenePackageSublistMapper;
+    @Resource
+    private ScenePackageMapper scenePackageMapper;
+    @Resource
     private SystemScenePackageMapper systemScenePackageMapper;
-
-    @Autowired
-    LogService logService;
+    @Resource
+    private LogService logService;
     @Resource
     private FileDownService fileDownService;
-    @Autowired
-    DictService dictService;
+    @Resource
+    private DictService dictService;
 
     /**
      * 获取自然驾驶场景数据:包括切分数据和标注数据
@@ -430,11 +436,33 @@ public class SceneNaturalService {
         return list;
     }
 
+    @SneakyThrows
     public void deleteSceneNatural(SceneNaturalPO params) {
+
+        //1 获取参数
+        String sceneId = params.getNaturalId();     // 场景id
+        String sceneName = params.getNaturalName(); // 场景名称
+        //2 根据场景id查询所有指标id和场景测试包id
+        List<ScenePackageSublistPO> scenePackageSublistPOS = scenePackageSublistMapper.selectIdByNaturalId(sceneId);
+        List<String> sceneIdList = scenePackageSublistPOS.stream().map(ScenePackageSublistPO::getId).collect(Collectors.toList());
+        Set<String> sceneTestPackageIdSet = scenePackageSublistPOS.stream().map(ScenePackageSublistPO::getRootId).collect(Collectors.toSet());
+        //3 删除场景测试包中的场景
+        for (String sceneIdTemp : sceneIdList) {
+            scenePackageSublistMapper.updateSceneNaturalIdsBySceneId(sceneIdTemp);
+        }
+        //4 修改场景测试包状态为已禁用
+
+
+        //4 根据参数名称查询场景包所有 id
+        //5 删除场景包中的场景兵修改场景数量
+
+
         params.setIsDeleted("1");
         params.setModifyTime(TimeUtil.getNowForMysql());
         params.setModifyUserId(AuthUtil.getCurrentUserId());
         sceneNaturalMapper.deleteSceneNatural(params);
+
+        // 日志
         Map<String, String> map = new HashMap<>();
         map.put("sceneId", params.getNaturalId());
         map.put("sceneName", params.getNaturalName());