Sfoglia il codice sorgente

场景上传覆盖

LingxinMeng 2 anni fa
parent
commit
3a4f0e652a

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

@@ -26,6 +26,7 @@ public interface SceneAccidentMapper {
     void deleteSceneAccidentList(SceneAccidentPO params);
 
     SceneAccidentPO querySceneAccidentByNmae(SceneAccidentPO sceneAccidentPO);
+    List<SceneAccidentPO> selectAllByName(SceneAccidentPO sceneAccidentPO);
     void updateSceneAccident(SceneAccidentPO params);
     void updateSceneAccidentList(List<SceneAccidentPO> list);
     SceneAccidentPO querySceneAccidentById(String id);

+ 1 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/SceneNaturalMapper.java

@@ -28,6 +28,7 @@ public interface SceneNaturalMapper {
     void deleteSceneNatural(SceneNaturalPO params);
 
     SceneNaturalPO querySceneNaturaByName(SceneNaturalPO sceneNaturalPO);
+    List<SceneNaturalPO> selectAllByName(SceneNaturalPO sceneNaturalPO);
 
     Integer querySceneNumBySy(SceneNaturalParam params);
 

+ 2 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/StandardsRegulationsMapper.java

@@ -25,6 +25,8 @@ public interface StandardsRegulationsMapper {
 
     StandardsRegulationsPO queryStandardsRegulationsByName(StandardsRegulationsPO standardsRegulationsPO);
 
+    List<StandardsRegulationsPO> selectAllByName(StandardsRegulationsPO standardsRegulationsPO);
+
     void updateStandardsRegulations(StandardsRegulationsPO params);
     void updateStandardsRegulationsList(List<StandardsRegulationsPO> list);
 

+ 13 - 10
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SceneAccidentService.java

@@ -699,6 +699,7 @@ public class SceneAccidentService {
                             SceneAccidentPO sceneAccidentPO = new SceneAccidentPO();
                             String isupdate = null;
                             String sceneName = null;
+                            List<SceneAccidentPO> scenes = new ArrayList<>();
                             for (String adress : listAderss) {
                                 if (adress.contains(".json")) {
                                     MI.setObjectName(adress);
@@ -709,6 +710,7 @@ public class SceneAccidentService {
                                     JsonNode root = objMap.readTree(json);
                                     // 判断场景名称唯一
                                     sceneName = root.path("场景名称").asText();
+                                    sceneNames.add(sceneName);
                                     String selfDriving = root.path("自车驾驶行为").asText();
                                     String conflictBehavior = root.path("冲突行为").asText();
                                     String conflictType = root.path("冲突类型").asText();
@@ -724,17 +726,15 @@ public class SceneAccidentService {
                                     sceneAccidentPO.setSceneName(sceneName);
                                     sceneAccidentPO.setShare(null);// 覆盖全部场景,包括share为0、1、2
 //                                    sceneAccidentPO.setShare("0");
-                                    SceneAccidentPO sceneAccidentPOByName = sceneAccidentMapper.querySceneAccidentByNmae(sceneAccidentPO);
-                                    if (ObjectUtil.isNull(sceneAccidentPOByName)) { // 新增数据
+//                                    SceneAccidentPO sceneAccidentPOByName = sceneAccidentMapper.querySceneAccidentByNmae(sceneAccidentPO);
+                                    scenes = sceneAccidentMapper.selectAllByName(sceneAccidentPO);
+                                    if (CollectionUtil.isEmpty(scenes)) { // 新增数据
                                         isupdate = "0";
                                     } else {    // 覆盖(更新)数据
                                         isupdate = "1";
-                                        sceneAccidentPO.setAccidentId(sceneAccidentPOByName.getAccidentId());
                                     }
                                     String osgbAdress = OsgbPath + "/" + root.path("osgb").asText();
                                     String xodrAdress = XodrPath + "/" + root.path("xodr").asText();
-                                    sceneAccidentPO.setAccidentId(StringUtil.getRandomUUID());
-
                                     sceneAccidentPO.setScenceResume(root.path("场景描述").asText());
                                     sceneAccidentPO.setSelfDriving(selfDriving);
                                     sceneAccidentPO.setTargetDriving(root.path("目标驾驶行为").asText());
@@ -768,17 +768,20 @@ public class SceneAccidentService {
                             }
                             if (isupdate.equals("0")) {
                                 // -------------------------------- 保存数据到 mysql --------------------------------
+                                sceneAccidentPO.setAccidentId(StringUtil.getRandomUUID());
                                 sceneAccidentPO.setCreateTime(TimeUtil.getNowForMysql());
                                 sceneAccidentPO.setCreateUserId(AuthUtil.getCurrentUserId());
                                 sceneAccidentPO.setModifyTime(TimeUtil.getNowForMysql());
                                 sceneAccidentMapper.saveSceneAccident(sceneAccidentPO);
-                                sceneNames.add(sceneName);
+
                             } else if (isupdate.equals("1")) {
                                 // -------------------------------- 修改数据到 mysql --------------------------------
-                                sceneAccidentPO.setModifyTime(TimeUtil.getNowForMysql());
-                                sceneAccidentPO.setModifyUserId(AuthUtil.getCurrentUserId());
-                                sceneAccidentMapper.updateSceneAccident(sceneAccidentPO);
-                                sceneNames.add(sceneName);
+                                scenes.forEach(scene -> {
+                                    sceneAccidentPO.setAccidentId(scene.getAccidentId());
+                                    sceneAccidentPO.setModifyTime(TimeUtil.getNowForMysql());
+                                    sceneAccidentPO.setModifyUserId(AuthUtil.getCurrentUserId());
+                                    sceneAccidentMapper.updateSceneAccident(sceneAccidentPO);
+                                });
                             }
 
                             successNum = successNum + 1;

+ 12 - 13
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SceneNaturalService.java

@@ -471,7 +471,8 @@ public class SceneNaturalService {
                             SceneNaturalPO sceneNaturalPO = new SceneNaturalPO();
                             sceneNaturalPO.setShare("0");
                             boolean update = false;
-                            String sceneName = null;
+                            String sceneName;
+                            List<SceneNaturalPO> scenes = new ArrayList<>();
                             for (String address : addressList) {
                                 // 自然驾驶场景取json名称作为场景名称
                                 if (address.contains(".json")) {
@@ -488,6 +489,7 @@ public class SceneNaturalService {
                                     int end = address.lastIndexOf(".");
                                     String fileName = address.substring(idx + 1, end);
                                     sceneName = fileName;
+                                    sceneNames.add(sceneName);
                                     if (checkFileName.containsKey(fileName)) {
                                         log.warn("自然驾驶场景" + fileName + " 重名,路径1:" + checkFileName.get(fileName) + ",路径2:" + address);
                                     } else {
@@ -496,7 +498,7 @@ public class SceneNaturalService {
                                     sceneNaturalPO.setNaturalName(fileName);
 //                                    sceneNaturalPO.setShare("0");
                                     sceneNaturalPO.setShare(null); // 覆盖全部场景,包括share为0、1、2
-                                    SceneNaturalPO sceneNaturalPOByName = sceneNaturalMapper.querySceneNaturaByName(sceneNaturalPO);
+                                    scenes = sceneNaturalMapper.selectAllByName(sceneNaturalPO);
                                     String osgbAdress = OsgbPath + "/" + root.path("osgb").asText();
                                     String xodrAdress = XodrPath + "/" + root.path("xodr").asText();
                                     // -------------------------------- 自然环境 --------------------------------
@@ -522,12 +524,7 @@ public class SceneNaturalService {
                                         return sceneImportPO;
                                     }
                                     // 同名就会替换,不同名是新增
-                                    if (ObjectUtil.isNotNull(sceneNaturalPOByName)) {
-                                        update = true;
-                                        sceneNaturalPO.setNaturalId(sceneNaturalPOByName.getNaturalId());
-                                    } else {
-                                        sceneNaturalPO.setNaturalId(api.common.util.StringUtil.getRandomUUID());
-                                    }
+                                    update = CollectionUtil.isEmpty(scenes);
                                     sceneNaturalPO.setNaturalName(fileName);
                                     sceneNaturalPO.setWeather(getSequenceNew(naturalEnvironment, "天气情况"));
                                     sceneNaturalPO.setBacklight(getSequenceNew(naturalEnvironment, "逆光"));
@@ -584,18 +581,20 @@ public class SceneNaturalService {
                             if (update) {
                                 // -------------------------------- 修改数据到 mysql --------------------------------
                                 updateNumber++;
-                                sceneNaturalPO.setModifyTime(TimeUtil.getNowForMysql());
-                                sceneNaturalPO.setModifyUserId(AuthUtil.getCurrentUserId());
-                                sceneNaturalMapper.updateSceneNatural(sceneNaturalPO);
-                                sceneNames.add(sceneName);
+                                scenes.forEach(scene -> {
+                                    sceneNaturalPO.setNaturalId(scene.getNaturalId());
+                                    sceneNaturalPO.setModifyTime(TimeUtil.getNowForMysql());
+                                    sceneNaturalPO.setModifyUserId(AuthUtil.getCurrentUserId());
+                                    sceneNaturalMapper.updateSceneNatural(sceneNaturalPO);
+                                });
                             } else {
                                 // -------------------------------- 保存数据到 mysql --------------------------------
                                 addNumber++;
+                                sceneNaturalPO.setNaturalId(api.common.util.StringUtil.getRandomUUID());
                                 sceneNaturalPO.setCreateTime(TimeUtil.getNowForMysql());
                                 sceneNaturalPO.setCreateUserId(AuthUtil.getCurrentUserId());
                                 sceneNaturalPO.setModifyTime(TimeUtil.getNowForMysql());
                                 sceneNaturalMapper.saveSceneNatural(sceneNaturalPO);
-                                sceneNames.add(sceneName);
                             }
                             successNum = successNum + 1;
 

+ 13 - 11
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/StandardsRegulationsService.java

@@ -260,6 +260,7 @@ public class StandardsRegulationsService {
                             List<String> addressList = fileDownService.listDeepOne(MI).getInfo();
                             StandardsRegulationsPO standardsRegulationsPO = new StandardsRegulationsPO();
                             String isupdate = null;
+                            List<StandardsRegulationsPO> scenes = new ArrayList<>();
                             for (String address : addressList) {
                                 if (address.contains(".json")) {
                                     MI.setObjectName(address);
@@ -270,6 +271,7 @@ public class StandardsRegulationsService {
                                     JsonNode root = objMap.readTree(json);
                                     //判断场景名称唯一
                                     sceneName = root.path("场景名称").asText();
+                                    sceneNames.add(sceneName);
                                     String regulationType = root.path("法规类型").asText();
                                     String standardType = root.path("标准类型").asText();
                                     String osgb = root.path("osgb").asText();
@@ -286,14 +288,13 @@ public class StandardsRegulationsService {
 //                                    standardsRegulationsPO.setShare("0");
                                     standardsRegulationsPO.setShare(null);// 覆盖全部场景,包括share为0、1、2
                                     standardsRegulationsPO.setSceneName(sceneName);
-                                    StandardsRegulationsPO PoByName = standardsRegulationsMapper.queryStandardsRegulationsByName(standardsRegulationsPO);
-                                    if (ObjectUtil.isNull(PoByName)) {  // 新增数据
+//                                    StandardsRegulationsPO PoByName = standardsRegulationsMapper.queryStandardsRegulationsByName(standardsRegulationsPO);
+                                    scenes = standardsRegulationsMapper.selectAllByName(standardsRegulationsPO);
+                                    if (CollectionUtil.isEmpty(scenes)) {  // 新增数据
                                         isupdate = "0";
                                     } else {    // 覆盖(更新)数据
                                         isupdate = "1";
-                                        standardsRegulationsPO.setRegulationsId(PoByName.getRegulationsId());
                                     }
-                                    standardsRegulationsPO.setRegulationsId(StringUtil.getRandomUUID());
                                     standardsRegulationsPO.setRegulationType(regulationType);
                                     standardsRegulationsPO.setStandardType(standardType);
                                     standardsRegulationsPO.setMaxTime(root.path("max_time").asText());
@@ -319,19 +320,20 @@ public class StandardsRegulationsService {
                             }
                             if (isupdate.equals("0")) {
                                 // -------------------------------- 保存数据到 mysql --------------------------------
-                                log.info("添加标准法规数据:" + standardsRegulationsPO);
+                                standardsRegulationsPO.setRegulationsId(StringUtil.getRandomUUID());
                                 standardsRegulationsPO.setCreateTime(TimeUtil.getNowForMysql());
                                 standardsRegulationsPO.setCreateUserId(AuthUtil.getCurrentUserId());
                                 standardsRegulationsPO.setModifyTime(TimeUtil.getNowForMysql());
                                 standardsRegulationsMapper.saveStandardsRegulations(standardsRegulationsPO);
-                                sceneNames.add(sceneName);
+
                             } else if (isupdate.equals("1")) {
                                 // -------------------------------- 修改数据到 mysql --------------------------------
-                                log.info("修改标准法规数据:" + standardsRegulationsPO);
-                                standardsRegulationsPO.setModifyTime(TimeUtil.getNowForMysql());
-                                standardsRegulationsPO.setModifyUserId(AuthUtil.getCurrentUserId());
-                                standardsRegulationsMapper.updateStandardsRegulations(standardsRegulationsPO);
-                                sceneNames.add(sceneName);
+                                scenes.forEach(scene -> {
+                                    standardsRegulationsPO.setRegulationsId(scene.getRegulationsId());
+                                    standardsRegulationsPO.setModifyTime(TimeUtil.getNowForMysql());
+                                    standardsRegulationsPO.setModifyUserId(AuthUtil.getCurrentUserId());
+                                    standardsRegulationsMapper.updateStandardsRegulations(standardsRegulationsPO);
+                                });
                             }
                             successNum = successNum + 1;
                         } catch (Exception e) {

+ 41 - 14
simulation-resource-server/src/main/resources/mapper/scene/SceneAccidentMapper.xml

@@ -270,19 +270,46 @@
         is_deleted,share,video_preview,video_address,osgb_address,xml_address,xodr_address,
         json_address,max_time
         from simulation.scene_accident
-        <where>
-            is_deleted = '0'
-            <if test="sceneName != null and sceneName != ''">
-                and scene_name =#{sceneName,jdbcType=VARCHAR}
-            </if>
-            <if test="share != null and share==0">
-                and share =#{share}
-            </if>
-            <if test="share != null and share!= '' and share!=0">
-                and share !='0'
-            </if>
-
-        </where>
+        where
+        is_deleted = '0'
+        <if test="sceneName != null and sceneName != ''">
+            and scene_name =#{sceneName,jdbcType=VARCHAR}
+        </if>
+        <if test="share != null and share==0">
+            and share =#{share}
+        </if>
+        <if test="share != null and share!= '' and share!=0">
+            and share !='0'
+        </if>
+    </select>
+    <select id="selectAllByName" parameterType="api.common.pojo.po.scene.SceneAccidentPO"
+            resultType="api.common.pojo.po.scene.SceneAccidentPO">
+        select accident_id,
+               scene_name,
+               self_driving,
+               target_driving,
+               self_reaction,
+               conflict_behavior,
+               conflict_type,
+               scence_resume,
+               scene_time,
+               scene_weather,
+               create_user_id,
+               create_time,
+               modify_user_id,
+               modify_time,
+               is_deleted,
+               share,
+               video_preview,
+               video_address,
+               osgb_address,
+               xml_address,
+               xodr_address,
+               json_address,
+               max_time
+        from simulation.scene_accident
+        where is_deleted = '0'
+          and scene_name = #{sceneName,jdbcType=VARCHAR}
     </select>
 
 
@@ -485,4 +512,4 @@
     </select>
 
 
-</mapper>
+</mapper>

+ 30 - 1
simulation-resource-server/src/main/resources/mapper/scene/SceneNaturalMapper.xml

@@ -440,6 +440,35 @@
         </where>
     </select>
 
+    <select id="selectAllByName" parameterType="api.common.pojo.po.scene.SceneNaturalPO"
+            resultType="api.common.pojo.po.scene.SceneNaturalPO">
+        select natural_id,natural_name,weather,backlight,
+        light_change,road_type,road_matrrial,driveway_num,
+        driveway_type,road_flatness,road_curvature,ramp,
+        intersection_type,plane_intersection,bridge,tunnel,
+        speed_limit,min_speed_limit,no_entry,no_stopping,
+        left_lane_line,right_lane_line,conductor_marking,pedestrian_crossing,
+        traffic_light,deceleration_marking,pavement_condition,natural_disaster,
+        road_safety_signs,safety_warning_board,traffic_accident,patency,
+        special_vehicle_yield,violation,double_flashing_car,self_behavior,
+        target_behavior,create_user_id,create_time,modify_user_id,modify_time,
+        is_deleted,share,video_preview,video_address,osgb_address,xodr_address,xosc_address,
+        json_address,max_time
+        from simulation.scene_natural
+        <where>
+            is_deleted = '0'
+            <if test="naturalName != null and naturalName!=''">
+                and natural_name =#{naturalName}
+            </if>
+            <if test="share != null and share==0">
+                and share =#{share}
+            </if>
+            <if test="share != null and share!= '' and share!=0">
+                and share !='0'
+            </if>
+        </where>
+    </select>
+
     <select id="querySceneNumBySy" parameterType="api.common.pojo.param.scene.SceneNaturalParam"
             resultType="java.lang.Integer">
         select SUM(num) from(
@@ -2737,4 +2766,4 @@
         where natural_id = #{id}
     </select>
 
-</mapper>
+</mapper>

+ 24 - 0
simulation-resource-server/src/main/resources/mapper/scene/StandardsRegulationsMapper.xml

@@ -160,6 +160,30 @@
         </if>
     </select>
 
+    <select id="selectAllByName" parameterType="api.common.pojo.po.scene.StandardsRegulationsPO"
+            resultType="api.common.pojo.po.scene.StandardsRegulationsPO">
+        select regulations_id,
+               scene_name,
+               regulation_type,
+               standard_type,
+               create_user_id,
+               create_time,
+               modify_user_id,
+               modify_time,
+               is_deleted,
+               share,
+               video_preview,
+               video_address,
+               osgb_address,
+               xml_address,
+               xodr_address,
+               json_address,
+               max_time
+        from simulation.scene_standards_regulations
+        where is_deleted = '0'
+          and scene_name = #{sceneName,jdbcType=VARCHAR}
+    </select>
+
     <update id="updateStandardsRegulations" parameterType="api.common.pojo.po.scene.StandardsRegulationsPO">
         update simulation.scene_standards_regulations
         set scene_name=#{sceneName},