root 2 年 前
コミット
2e2b9ca283

+ 3 - 0
api-common/src/main/java/api/common/pojo/po/system/SceneImportPO.java

@@ -2,7 +2,9 @@ package api.common.pojo.po.system;
 
 import api.common.pojo.common.CommonPO;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
+@EqualsAndHashCode(callSuper = true)
 @Data
 public class SceneImportPO extends CommonPO {
     
@@ -24,4 +26,5 @@ public class SceneImportPO extends CommonPO {
     private String errorMessage;
     //总用时长
     private String totalTime;
+    private String sceneNames;
 }

+ 6 - 0
api-common/src/main/java/api/common/util/CollectionUtil.java

@@ -30,6 +30,12 @@ public class CollectionUtil {
     public static <T> Set<T> listToSet(List<T> list) {
         return new HashSet<>(list);
     }
+    public static <E> String listToSequence(List<E> list) {
+        StringBuilder stringBuilder = new StringBuilder();
+        list.forEach(element -> stringBuilder.append(element).append(","));
+        stringBuilder.deleteCharAt(stringBuilder.length() - 1);
+        return stringBuilder.toString();
+    }
 
     public static <T> List<T> setToList(Set<T> set) {
         return new ArrayList<>(set);

+ 14 - 13
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/SceneAccidentController.java

@@ -25,14 +25,13 @@ import java.util.List;
 public class SceneAccidentController {
 
     @Resource
-    SceneAccidentService sceneAccidentService;
+   private  SceneAccidentService sceneAccidentService;
     @Resource
-    SceneImportService sceneImportService;
+    private SceneImportService sceneImportService;
 
     //查询列表
     @PostMapping("/querySceneAccidentList")
-    
-    public ResponseBodyVO<List<SceneAccidentVO>> querySceneAccidentList(@RequestBody SceneAccidentParam params) {
+    public ResponseBodyVO<PageInfo<SceneAccidentVO>> querySceneAccidentList(@RequestBody SceneAccidentParam params) {
         PageUtil.setPageInfo(params);
         List<SceneAccidentPO> list = sceneAccidentService.querySceneAccidentList(params);
         PageInfo<SceneAccidentPO> objectPageInfo = new PageInfo<>(list);
@@ -42,15 +41,14 @@ public class SceneAccidentController {
             BeanUtils.copyProperties(po, vo);
             list1.add(vo);
         }
-        PageInfo pageInfo = new PageInfo<>(list1);
+        PageInfo<SceneAccidentVO> pageInfo = new PageInfo<>(list1);
         pageInfo.setTotal(objectPageInfo.getTotal());
-        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS, pageInfo);
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, pageInfo);
     }
 
 
     //新增交通事故
     @PostMapping("/saveSceneAccident")
-    
     public ResponseBodyVO<String> saveSceneAccident(@RequestBody SceneAccidentParam params) {
         return sceneAccidentService.importJtSg(params);
 
@@ -58,7 +56,6 @@ public class SceneAccidentController {
 
     //删除交通事故
     @PostMapping("/deleteSceneAccident")
-    
     public ResponseBodyVO<String> deleteSceneAccident(@RequestBody SceneAccidentPO params) {
         if (ObjectUtil.isNull(params.getAccidentId())) {
             return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "参数场景 id 不能为空,请检查。", null);
@@ -67,23 +64,27 @@ public class SceneAccidentController {
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
     }
 
-    //测试批量导入
+    /**
+     * 场景上传任务
+     */
     @PostMapping("/saveSceneAccidentBatch")
-    
     public ResponseBodyVO<String> saveSceneAccidentBatch(@RequestBody SceneImportParam sceneImportParam) {
+        //1 更新任务状态
         SceneImportPO sceneImportPO = new SceneImportPO();
         sceneImportPO.setId(sceneImportParam.getId());
         sceneImportPO.setStatus(DictConstants.SCENE_IMPORT_STATUS_3);
         sceneImportService.updateStatus(sceneImportPO);
-        // 解析参数
+        //2 上传场景
         sceneImportPO = sceneAccidentService.importMiNio(sceneImportParam);
+        //3 更新任务状态
         sceneImportService.updateInfo(sceneImportPO);
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
     }
 
-    //分享交通事故
+    /**
+     * 分享交通事故
+     */
     @PostMapping("/instShareSceneAccident")
-    
     public ResponseBodyVO<String> instShareSceneAccident(@RequestBody SceneAccidentPO params) {
          sceneAccidentService.instShareSceneAccident(params);
 

+ 0 - 2
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/SceneNaturalController.java

@@ -60,8 +60,6 @@ public class SceneNaturalController {
 
     /**
      * 删除
-     * @param params
-     * @return
      */
     @PostMapping("/deleteSceneNatural")
     public ResponseBodyVO<String> deleteSceneNatural(@RequestBody SceneNaturalPO params) {

+ 8 - 2
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/StandardsRegulationsController.java

@@ -85,13 +85,19 @@ public class StandardsRegulationsController {
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
     }
 
-    //查詢法规类型
+
+    /**
+     * 查詢法规类型
+     */
     @PostMapping("/queryRegulationType")
     public ResponseBodyVO<List<String>> queryRegulationType() {
         return standardsRegulationsService.queryRegulationType();
     }
 
-    //分享·
+
+    /**
+     * 分享
+     */
     @PostMapping("/instStandardsRegulation")
     public ResponseBodyVO<String> instStandardsRegulation(@RequestBody StandardsRegulationsPO po) {
         standardsRegulationsService.instStandardsRegulation(po);

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

@@ -9,6 +9,7 @@ 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;
+import api.common.util.CollectionUtil;
 import api.common.util.ObjectUtil;
 import api.common.util.StringUtil;
 import api.common.util.TimeUtil;
@@ -654,12 +655,12 @@ public class SceneAccidentService {
     /**
      * 获取交通事故场景数据:现在
      */
-    public SceneImportPO importMiNio(SceneImportParam parms) {
+    public SceneImportPO importMiNio(SceneImportParam params) {
         SceneImportPO sceneImportPO = new SceneImportPO();
-        sceneImportPO.setId(parms.getId());
+        sceneImportPO.setId(params.getId());
         try {
             MinioParameter MI = new MinioParameter();
-            MI.setObjectName(parms.getMinioDirectory());
+            MI.setObjectName(params.getMinioDirectory());
             List<String> list = fileDownService.listDeepOne(MI).getInfo();
             String OsgbPath = null;
             String XodrPath = null;
@@ -673,6 +674,7 @@ public class SceneAccidentService {
                     XodrPath = filePath;
                 }
             }
+            List<String> sceneNames = new ArrayList<>();
             for (String filePath : list) {
                 if (filePath.contains("/Scenarios")) {
                     MI.setObjectName(filePath);
@@ -684,6 +686,7 @@ public class SceneAccidentService {
                             List<String> listAderss = fileDownService.listDeepOne(MI).getInfo();
                             SceneAccidentPO sceneAccidentPO = new SceneAccidentPO();
                             String isupdate = null;
+                            String sceneName = null;
                             for (String adress : listAderss) {
                                 if (adress.contains(".json")) {
                                     MI.setObjectName(adress);
@@ -693,7 +696,7 @@ public class SceneAccidentService {
                                     ObjectMapper objMap = new ObjectMapper();
                                     JsonNode root = objMap.readTree(json);
                                     // 判断场景名称唯一
-                                    String sceneName = root.path("场景名称").asText();
+                                    sceneName = root.path("场景名称").asText();
                                     String selfDriving = root.path("自车驾驶行为").asText();
                                     String conflictBehavior = root.path("冲突行为").asText();
                                     String conflictType = root.path("冲突类型").asText();
@@ -756,19 +759,17 @@ public class SceneAccidentService {
                                 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);
                             }
+
                             successNum = successNum + 1;
                         } catch (Exception e) {
-//                            if (ObjectUtil.isNull(errorMessage)) {
-//                                errorMessage = scenePath;
-//                            } else {
-//                                errorMessage = errorMessage + ";" + scenePath;
-//                            }
                             errorMessage = e.getMessage();
                             e.printStackTrace();
                             falseNum = falseNum + 1;
@@ -780,13 +781,11 @@ public class SceneAccidentService {
             sceneImportPO.setSuccessNum(successNum);
             sceneImportPO.setFalseNum(falseNum);
             sceneImportPO.setErrorMessage(errorMessage);
-            // sceneImportTaskService.updateSceneImportTask(sceneImportTaskPO);
-
+            sceneImportPO.setSceneNames(CollectionUtil.listToSequence(sceneNames));
             return sceneImportPO;
         } catch (Exception e) {
-            sceneImportPO.setErrorMessage("该文件地址:" + parms.getMinioDirectory() + "解析失败,请检查");
+            sceneImportPO.setErrorMessage("该文件地址:" + params.getMinioDirectory() + "解析失败,请检查");
             sceneImportPO.setStatus(DictConstants.SCENE_IMPORT_STATUS_2);
-            // sceneImportTaskService.updateSceneImportTask(sceneImportTaskPO);
             return sceneImportPO;
         }
     }

+ 8 - 1
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SceneNaturalService.java

@@ -10,6 +10,7 @@ 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.system.SceneImportPO;
+import api.common.util.CollectionUtil;
 import api.common.util.ObjectUtil;
 import api.common.util.ParamUtil;
 import api.common.util.TimeUtil;
@@ -439,6 +440,7 @@ public class SceneNaturalService {
                     XodrPath = filePath;
                 }
             }
+            List<String> sceneNames = new ArrayList<>();
             for (String filePath : list) {
                 if (filePath.contains("/Scenarios")) {
                     MI.setObjectName(filePath);
@@ -456,6 +458,7 @@ public class SceneNaturalService {
                             SceneNaturalPO sceneNaturalPO = new SceneNaturalPO();
                             sceneNaturalPO.setShare("0");
                             boolean update = false;
+                            String sceneName = null;
                             for (String address : addressList) {
                                 // 自然驾驶场景取json名称作为场景名称
                                 if (address.contains(".json")) {
@@ -471,6 +474,7 @@ public class SceneNaturalService {
                                     int idx = address.lastIndexOf("/");
                                     int end = address.lastIndexOf(".");
                                     String fileName = address.substring(idx + 1, end);
+                                    sceneName = fileName;
                                     if (checkFileName.containsKey(fileName)) {
                                         log.warn("importMinio() 自然驾驶场景" + fileName + " 重名,路径1:" + checkFileName.get(fileName) + ",路径2:" + address);
                                     } else {
@@ -568,6 +572,7 @@ public class SceneNaturalService {
                                 sceneNaturalPO.setModifyTime(TimeUtil.getNowForMysql());
                                 sceneNaturalPO.setModifyUserId(AuthUtil.getCurrentUserId());
                                 sceneNaturalMapper.updateSceneNatural(sceneNaturalPO);
+                                sceneNames.add(sceneName);
                             } else {
                                 // -------------------------------- 保存数据到 mysql --------------------------------
                                 addNumber++;
@@ -575,6 +580,7 @@ public class SceneNaturalService {
                                 sceneNaturalPO.setCreateUserId(AuthUtil.getCurrentUserId());
                                 sceneNaturalPO.setModifyTime(TimeUtil.getNowForMysql());
                                 sceneNaturalMapper.saveSceneNatural(sceneNaturalPO);
+                                sceneNames.add(sceneName);
                             }
                             successNum = successNum + 1;
 
@@ -591,10 +597,11 @@ public class SceneNaturalService {
             sceneImportPO.setSuccessNum(successNum);
             sceneImportPO.setFalseNum(falseNum);
             sceneImportPO.setErrorMessage(errorMessage);
+            sceneImportPO.setSceneNames(CollectionUtil.listToSequence(sceneNames));
             return sceneImportPO;
         } catch (Exception e) {
             sceneImportPO.setStatus(DictConstants.SCENE_IMPORT_STATUS_2);
-            sceneImportPO.setErrorMessage("该文件地址:" + parms.getMinioDirectory() + "解析失败,请检查");
+            sceneImportPO.setErrorMessage("该文件地址:" + parms.getMinioDirectory() + "解析失败,请检查");
             return sceneImportPO;
         }
     }

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

@@ -9,6 +9,7 @@ import api.common.pojo.param.scene.SceneImportParam;
 import api.common.pojo.param.scene.StandardsRegulationsParam;
 import api.common.pojo.po.scene.StandardsRegulationsPO;
 import api.common.pojo.po.system.SceneImportPO;
+import api.common.util.CollectionUtil;
 import api.common.util.ObjectUtil;
 import api.common.util.StringUtil;
 import api.common.util.TimeUtil;
@@ -234,6 +235,8 @@ public class StandardsRegulationsService {
                     XodrPath = filePath;
                 }
             }
+            String sceneName = null;
+            List<String> sceneNames = new ArrayList<>();
             for (String filePath : list) {
                 if (filePath.contains("/Scenarios")) {
                     MI.setObjectName(filePath);
@@ -254,7 +257,7 @@ public class StandardsRegulationsService {
                                     ObjectMapper objMap = new ObjectMapper();
                                     JsonNode root = objMap.readTree(json);
                                     //判断场景名称唯一
-                                    String sceneName = root.path("场景名称").asText();
+                                   sceneName = root.path("场景名称").asText();
                                     String regulationType = root.path("法规类型").asText();
                                     String standardType = root.path("标准类型").asText();
                                     String osgb = root.path("osgb").asText();
@@ -308,20 +311,17 @@ public class StandardsRegulationsService {
                                 standardsRegulationsPO.setCreateUserId(AuthUtil.getCurrentUserId());
                                 standardsRegulationsPO.setModifyTime(TimeUtil.getNowForMysql());
                                 standardsRegulationsMapper.saveStandardsRegulations(standardsRegulationsPO);
+                                sceneNames.add(sceneName);
                             } else if (isupdate.equals("1")) {
                                 // -------------------------------- 修改数据到 mysql --------------------------------
                                 log.info("StandardsRegulationsService--importMinio 修改标准法规数据:" + standardsRegulationsPO);
                                 standardsRegulationsPO.setModifyTime(TimeUtil.getNowForMysql());
                                 standardsRegulationsPO.setModifyUserId(AuthUtil.getCurrentUserId());
                                 standardsRegulationsMapper.updateStandardsRegulations(standardsRegulationsPO);
+                                sceneNames.add(sceneName);
                             }
                             successNum = successNum + 1;
                         } catch (Exception e) {
-//                            if (ObjectUtil.isNull(errorMessage)) {
-//                                errorMessage = scenePath;
-//                            } else {
-//                                errorMessage = errorMessage + ";" + scenePath;
-//                            }
                             errorMessage = e.getMessage();
                             e.printStackTrace();
                             falseNum = falseNum + 1;
@@ -333,6 +333,7 @@ public class StandardsRegulationsService {
             sceneImportPO.setSuccessNum(successNum);
             sceneImportPO.setFalseNum(falseNum);
             sceneImportPO.setErrorMessage(errorMessage);
+            sceneImportPO.setSceneNames(CollectionUtil.listToSequence(sceneNames));
             return sceneImportPO;
         } catch (Exception e) {
             sceneImportPO.setStatus(DictConstants.SCENE_IMPORT_STATUS_2);
@@ -348,7 +349,6 @@ public class StandardsRegulationsService {
         StandardsRegulationsPO syPo = standardsRegulationsMapper.queryStandardsRegulationsById(po.getRegulationsId());
         syPo.setShare("1");
         StandardsRegulationsPO PoByName = standardsRegulationsMapper.queryStandardsRegulationsByName(syPo);
-
         if (ObjectUtil.isNull(PoByName)) {
             // -------------------------------- 保存数据到 mysql --------------------------------
             syPo.setCreateTime(TimeUtil.getNowForMysql());

+ 9 - 9
simulation-resource-server/src/main/resources/mapper/system/SceneImportMapper.xml

@@ -58,15 +58,15 @@
     </update>
 
     <update id="updateInfo" parameterType="api.common.pojo.po.system.SceneImportPO">
-        update simulation.scene_import_task set
-                status = #{status,jdbcType=VARCHAR},
-                false_num = #{falseNum},
-                success_num = #{successNum},
-                error_message = #{errorMessage},
-                modify_user_id = #{modifyUserId,jdbcType=VARCHAR},
-                 modify_time=#{modifyTime},
-                total_time = TIMESTAMPDIFF(SECOND,create_time,modify_time)
-
+        update simulation.scene_import_task
+        set status         = #{status,jdbcType=VARCHAR},
+            false_num      = #{falseNum},
+            success_num    = #{successNum},
+            error_message  = #{errorMessage},
+            modify_user_id = #{modifyUserId,jdbcType=VARCHAR},
+            modify_time    = #{modifyTime},
+            scene_names    = #{sceneNames},
+            total_time     = TIMESTAMPDIFF(SECOND,create_time, modify_time)
         where id = #{id,jdbcType=VARCHAR}
     </update>