wangzhiqiang пре 2 година
родитељ
комит
d87d469dd5

+ 32 - 0
api-common/src/main/java/api/common/pojo/param/scene/SceneDeleteParam.java

@@ -0,0 +1,32 @@
+package api.common.pojo.param.scene;
+
+import api.common.pojo.common.PageVO;
+import lombok.*;
+
+import java.io.Serializable;
+import java.sql.Timestamp;
+import java.util.List;
+
+/**
+ * 删除场景测试包中场景
+ */
+@EqualsAndHashCode()
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SceneDeleteParam  implements Serializable {
+
+    private String sceneZrId;   // (自然场景)
+
+    private String sceneJtId;   // (交通场景)
+    private String sceneBzId;   // (标准场景)
+    private String sceneFhId;   // (泛华场景)
+
+    public Timestamp modifyTime;
+    /**
+     * 记录最后更新人(包括删除)(用户id)
+     */
+    public String modifyUserId;
+
+}

+ 2 - 0
api-common/src/main/java/api/common/pojo/po/scene/ScenePackagePO.java

@@ -4,6 +4,7 @@ import lombok.*;
 
 import java.io.Serializable;
 import java.sql.Timestamp;
+import java.util.List;
 
 /**
  * 测试场景包
@@ -30,4 +31,5 @@ public class ScenePackagePO implements Serializable {
     public String modifyUserId; // 记录最后更新人(包括删除)(用户id)
     public String isDeleted;    // 是否已删除
     public String isUnavailable;    // 是否禁用(0未禁用1已禁用)
+    public List<String> rootIds;    // 修改是否删除状态时用
 }

+ 3 - 2
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/SceneGeneralTemplateMapper.java

@@ -16,12 +16,13 @@ public interface SceneGeneralTemplateMapper {
     List<SceneGeneralTemplatePO> querySceneGeneralTemplateList(SceneGeneralTemplateParam params);
     SceneGeneralTemplatePO querySceneGeneralTemplateById(String id);
     void deleteSceneGeneralTemplateAll(SceneGeneralTemplatePO po);
-    void deleteSceneGeneralTemplateById(SceneGeneralTemplatePO po);
+    void deleteSceneGeneralTemplateByScendId(SceneGeneralTemplatePO po);
     List<String> queryType( );
 
     List<SceneGeneralTemplatePO> querySceneGeneralTemplateListByQx(SceneGeneralTemplateParam params);
 
     SceneGeneralTemplatePO querySceneGeneralTemplateByName(SceneGeneralTemplatePO sceneGeneralTemplatePO);
     void updateSceneGeneralTemplate(SceneGeneralTemplatePO po);
-
+    //根据名称查询所有场景id
+    List<String> queryIdByScendId( String  scendId);
 }

+ 3 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/ScenePackageMapper.java

@@ -42,4 +42,7 @@ public interface ScenePackageMapper {
             "where is_deleted = '0'\n" +
             " and package_id = #{packageId}")
     String selectShareById(@Param("packageId")String packageId);
+
+    //改变状态是否禁用
+    void updateIsUnavailable(ScenePackagePO params);
 }

+ 6 - 17
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/ScenePackageSublistMapper.java

@@ -1,5 +1,6 @@
 package com.css.simulation.resource.scene.mapper;
 
+import api.common.pojo.param.scene.SceneDeleteParam;
 import api.common.pojo.po.scene.ScenePackageSublistPO;
 import api.common.pojo.vo.scene.ScenePackageSublistVO;
 import org.apache.ibatis.annotations.*;
@@ -25,21 +26,9 @@ 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);
+    List<String> selectPackageIdById(SceneDeleteParam param);
+
+
+    void deleteScenePackageSublistById(SceneDeleteParam param);
+
 }

+ 46 - 1
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SceneGeneralTemplateService.java

@@ -4,7 +4,10 @@ package com.css.simulation.resource.scene.service;
 import api.common.pojo.common.ResponseBodyVO;
 import api.common.pojo.constants.DictConstants;
 import api.common.pojo.constants.LogConstants;
+import api.common.pojo.param.scene.SceneDeleteParam;
 import api.common.pojo.param.scene.SceneGeneralTemplateParam;
+import api.common.pojo.po.scene.ScenePackagePO;
+import api.common.pojo.po.scene.SystemScenePackageSublistPO;
 import api.common.pojo.po.system.SceneImportPO;
 import api.common.pojo.vo.scene.SceneGeneralTemplateMbVO;
 import api.common.pojo.vo.scene.SceneGeneralTemplateVO;
@@ -16,6 +19,9 @@ import com.css.simulation.resource.common.utils.AuthUtil;
 import com.css.simulation.resource.log.service.LogService;
 import com.css.simulation.resource.scene.mapper.SceneGeneralTemplateMapper;
 import api.common.pojo.po.scene.SceneGeneralTemplatePO;
+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.css.simulation.resource.system.service.DictService;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import lombok.SneakyThrows;
@@ -38,6 +44,12 @@ public class SceneGeneralTemplateService {
 
     @Resource
     SceneGeneralTemplateMapper mapper;
+    @Resource
+    SystemScenePackageSublistMapper systemScenePackageSublistMapper;
+    @Resource
+    ScenePackageSublistMapper scenePackageSublistMapper;
+    @Resource
+    ScenePackageMapper scenePackageMapper;
     @Autowired
     DictService dictService;
     @Autowired
@@ -343,7 +355,40 @@ public class SceneGeneralTemplateService {
     public  ResponseBodyVO<String> deleteSceneGeneralTemplateById(SceneGeneralTemplatePO po) {
         po.setModifyUserId(AuthUtil.getCurrentUserId());
         po.setModifyTime(TimeUtil.getNowForMysql());
-        mapper.deleteSceneGeneralTemplateById(po);
+
+        //根据名称查询所有共有及私有场景
+        List<String>  idS=mapper.queryIdByScendId(po.getSceneId());
+        mapper.deleteSceneGeneralTemplateByScendId(po);
+        //删除场景包
+        SystemScenePackageSublistPO systemScenePackageSublistPO=new SystemScenePackageSublistPO();
+        systemScenePackageSublistPO.setModifyUserId(AuthUtil.getCurrentUserId());
+        systemScenePackageSublistPO.setModifyTime(TimeUtil.getNowForMysql());
+        systemScenePackageSublistPO.setSceneName(po.getSceneId());
+        systemScenePackageSublistMapper.deleteSystemScenePackageSublist(systemScenePackageSublistPO);
+
+        //删除测试包中场景
+        SceneDeleteParam parm=new SceneDeleteParam();
+        parm.setModifyUserId(AuthUtil.getCurrentUserId());
+
+        Set<String> set = new HashSet<>();
+        for (String id: idS) {
+            parm.setModifyTime(TimeUtil.getNowForMysql());
+            parm.setSceneFhId(id);
+            List<String> packageIdS=scenePackageSublistMapper.selectPackageIdById(parm);
+            set.addAll(packageIdS);
+            //删除场景测试包
+            scenePackageSublistMapper.deleteScenePackageSublistById(parm);
+        }
+        //改变测试包状态
+        List<String> listIds = new ArrayList<>(set);
+        ScenePackagePO scenePackagePO=new ScenePackagePO();
+        scenePackagePO.setModifyUserId(AuthUtil.getCurrentUserId());
+        scenePackagePO.setModifyTime(TimeUtil.getNowForMysql());
+        scenePackagePO.setIsUnavailable("1");
+        scenePackagePO.setRootIds(listIds);
+        scenePackageMapper.updateIsUnavailable(scenePackagePO);
+
+
         Map map=new HashMap();
         map.put("sceneId",po.getId());
         map.put("sceneName",po.getSceneId());

+ 6 - 3
simulation-resource-server/src/main/resources/mapper/scene/SceneGeneralTemplateMapper.xml

@@ -174,7 +174,7 @@
 
     </update>
 
-    <update id="deleteSceneGeneralTemplateById" parameterType="api.common.pojo.po.scene.SceneGeneralTemplatePO">
+    <update id="deleteSceneGeneralTemplateByScendId" parameterType="api.common.pojo.po.scene.SceneGeneralTemplatePO">
         update simulation.scene_general_template
         <set>
             <if test="modifyUserId != null and modifyUserId!=''">
@@ -185,7 +185,7 @@
             </if>
             is_deleted = '1'
         </set>
-        where id=#{id}
+        where is_deleted = '0'  and scend_id=#{scendId}
     </update>
 
     <select id="querySceneGeneralTemplateListByQx" parameterType="api.common.pojo.param.scene.SceneGeneralTemplateParam"
@@ -282,7 +282,6 @@
             </if>
         </where>
     </select>
-
     <update id="updateSceneGeneralTemplate" parameterType="api.common.pojo.po.scene.SceneGeneralTemplatePO">
         update simulation.scene_general_template
         set scene_id=#{sceneId,jdbcType=VARCHAR},
@@ -327,4 +326,8 @@
         obs_type=#{obsType}
         where id = #{id,jdbcType=VARCHAR}
     </update>
+
+    <select id="queryIdByScendId" resultType="java.lang.String">
+        select id from simulation.scene_general_template where scend_id=#{scendId} and is_deleted='0'
+    </select>
 </mapper>

+ 15 - 1
simulation-resource-server/src/main/resources/mapper/scene/ScenePackageMapper.xml

@@ -200,5 +200,19 @@
             </if>
         </where>
     </select>
-
+    <update id="updateIsUnavailable" parameterType="api.common.pojo.po.scene.ScenePackagePO">
+        update simulation.scene_package
+        <set>
+            <if test="isUnavailable != null and isUnavailable!=''">
+                is_unavailable = #{isUnavailable,jdbcType=VARCHAR},
+            </if>
+            <if test="modifyUserId != null and modifyUserId!=''">
+                modify_user_id = #{modifyUserId},
+            </if>
+            <if test="modifyTime != null ">
+                modify_time = #{modifyTime},
+            </if>
+        </set>
+        where is_deleted = '0' and package_id in #{rootIds}
+    </update>
 </mapper>

+ 61 - 0
simulation-resource-server/src/main/resources/mapper/scene/ScenePackageSublistMapper.xml

@@ -111,4 +111,65 @@
         </where>
     </select>
 
+    <update id="deleteScenePackageSublistById" parameterType="api.common.pojo.param.scene.SceneDeleteParam">
+        update simulation.scene_package_sublist
+        <set>
+            <if test="sceneZrId != null and sceneZrId!=''">
+                replace(replace(replace(scene_natural_ids, concat(#{sceneZrId}, ','), ''), concat(',', #{sceneZrId}), ''),#{sceneZrId}, '')
+            </if>
+            <if test="sceneJtId != null and sceneJtId!=''">
+                replace(replace(replace(scene_traffic_ids, concat(#{sceneJtId}, ','), ''), concat(',', #{sceneJtId}), ''),#{sceneJtId}, '')
+            </if>
+            <if test="sceneBzId != null and sceneBzId!=''">
+                replace(replace(replace(scene_statue_ids, concat(#{sceneBzId}, ','), ''), concat(',', #{sceneBzId}), ''),#{sceneBzId}, '')
+            </if>
+            <if test="sceneFhId != null and sceneFhId!=''">
+                replace(replace(replace(scene_generalization_ids, concat(#{sceneFhId}, ','), ''), concat(',', #{sceneFhId}), ''),#{sceneFhId}, '')
+            </if>
+            <if test="modifyUserId != null and modifyUserId!=''">
+                modify_user_id = #{modifyUserId,jdbcType=VARCHAR},
+            </if>
+            <if test="modifyTime != null">
+                modify_time = #{modifyTime},
+            </if>
+
+        </set>
+        where
+        is_deleted='0'
+        <if test="sceneZrId != null and sceneZrId != ''">
+            and scene_natural_ids  like CONCAT('%',#{sceneZrId,jdbcType=VARCHAR},'%')
+        </if>
+        <if test="sceneJtId != null and sceneJtId != ''">
+            and scene_traffic_ids  like CONCAT('%',#{sceneJtId,jdbcType=VARCHAR},'%')
+        </if>
+        <if test="sceneBzId != null and sceneBzId != ''">
+            and scene_statue_ids  like CONCAT('%',#{sceneBzId,jdbcType=VARCHAR},'%')
+        </if>
+        <if test="sceneFhId != null and sceneFhId != ''">
+            and scene_generalization_ids  like CONCAT('%',#{sceneFhId,jdbcType=VARCHAR},'%')
+        </if>
+
+    </update>
+
+
+    <select id="selectPackageIdById" parameterType="api.common.pojo.param.scene.SceneDeleteParam"
+            resultType="java.lang.String">
+        select root_id
+        from simulation.scene_package_sublist
+        <where>
+            is_deleted = '0'
+            <if test="sceneZrId != null and sceneZrId != ''">
+                and scene_natural_ids  like CONCAT('%',#{sceneZrId,jdbcType=VARCHAR},'%')
+            </if>
+            <if test="sceneJtId != null and sceneJtId != ''">
+                and scene_traffic_ids  like CONCAT('%',#{sceneJtId,jdbcType=VARCHAR},'%')
+            </if>
+            <if test="sceneBzId != null and sceneBzId != ''">
+                and scene_statue_ids  like CONCAT('%',#{sceneBzId,jdbcType=VARCHAR},'%')
+            </if>
+            <if test="sceneFhId != null and sceneFhId != ''">
+                and scene_generalization_ids  like CONCAT('%',#{sceneFhId,jdbcType=VARCHAR},'%')
+            </if>
+        </where>
+    </select>
 </mapper>

+ 3 - 0
simulation-resource-server/src/main/resources/mapper/scene/SystemScenePackageSublistMapper.xml

@@ -63,6 +63,9 @@
         <if test="sceneAndPackage != null and sceneAndPackage != ''">
             and scene_and_package=#{sceneAndPackage}
         </if>
+        <if test="sceneName != null and sceneName != ''">
+            and scene_name=#{sceneName}
+        </if>
     </update>
 
 </mapper>