Selaa lähdekoodia

场景模块代码

wangzhiqiang 3 vuotta sitten
vanhempi
commit
21948df6b5
34 muutettua tiedostoa jossa 1593 lisäystä ja 279 poistoa
  1. 33 0
      api-common/src/main/java/api/common/pojo/param/scene/SystemScenePackageParam.java
  2. 27 0
      api-common/src/main/java/api/common/pojo/po/scene/SystemScenePackageNewPO.java
  3. 22 0
      api-common/src/main/java/api/common/pojo/po/scene/SystemScenePackagePO.java
  4. 23 0
      api-common/src/main/java/api/common/pojo/po/scene/SystemScenePackageSublistPO.java
  5. 2 3
      api-common/src/main/java/api/common/pojo/po/scene/SystemUserScenePO.java
  6. 20 0
      api-common/src/main/java/api/common/pojo/vo/scene/PackageVO.java
  7. 34 0
      api-common/src/main/java/api/common/pojo/vo/scene/SystemScenePackageVO.java
  8. 23 0
      api-common/src/main/java/api/common/pojo/vo/scene/SystemUserSceneVO.java
  9. 21 0
      api-common/src/main/java/api/common/pojo/vo/scene/UserSceneVO.java
  10. 41 12
      api-common/src/main/java/api/common/util/TimeUtil.java
  11. 12 6
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/SceneAccidentController.java
  12. 20 29
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/SceneGeneralTemplateController.java
  13. 17 1
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/SceneNaturalController.java
  14. 7 0
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/ScenePackageController.java
  15. 17 0
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/StandardsRegulationsController.java
  16. 128 0
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/SystemScenePackageController.java
  17. 2 0
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/ScenePackageMapper.java
  18. 26 0
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/SystemScenePackageMapper.java
  19. 18 0
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/SystemScenePackageSublistMapper.java
  20. 6 5
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/SystemUserSceneMapper.java
  21. 118 95
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SceneAccidentService.java
  22. 8 3
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SceneGeneralExampleService.java
  23. 174 2
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SceneNaturalService.java
  24. 92 76
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/ScenePackageService.java
  25. 117 2
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/StandardsRegulationsService.java
  26. 342 0
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SystemScenePackageService.java
  27. 5 17
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SystemUserSceneService.java
  28. 1 0
      simulation-resource-server/src/main/java/com/css/simulation/resource/system/mapper/SceneImportMapper.java
  29. 14 0
      simulation-resource-server/src/main/java/com/css/simulation/resource/system/service/SceneImportService.java
  30. 16 0
      simulation-resource-server/src/main/resources/mapper/scene/ScenePackageMapper.xml
  31. 117 0
      simulation-resource-server/src/main/resources/mapper/scene/SystemScenePackageMapper.xml
  32. 49 0
      simulation-resource-server/src/main/resources/mapper/scene/SystemScenePackageSublistMapper.xml
  33. 27 28
      simulation-resource-server/src/main/resources/mapper/scene/SystemUserSceneMapper.xml
  34. 14 0
      simulation-resource-server/src/main/resources/mapper/system/SceneImportMapper.xml

+ 33 - 0
api-common/src/main/java/api/common/pojo/param/scene/SystemScenePackageParam.java

@@ -0,0 +1,33 @@
+package api.common.pojo.param.scene;
+
+import api.common.pojo.common.CommonPO;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * 人员场景包表。
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class SystemScenePackageParam extends CommonPO   implements Serializable {
+    private String id;              // 主键
+    private String packageName;        // 场景包名
+    private String sceneDescribe;          // 场景包描述
+    private String userName;          // 账号名称
+
+    public String yearMax;//结束时间
+
+    public String yearMin;//开始时间
+
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    private Integer currentPage=1;
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    private Integer pageSize=10;
+}

+ 27 - 0
api-common/src/main/java/api/common/pojo/po/scene/SystemScenePackageNewPO.java

@@ -0,0 +1,27 @@
+package api.common.pojo.po.scene;
+
+import api.common.pojo.common.CommonPO;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 人员场景包表。
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class SystemScenePackageNewPO extends CommonPO implements Serializable {
+    private String id;              // 主键
+    private String packageName;        // 场景包名
+    private String sceneDescribe;          // 场景包描述
+    private List<String> zrIds;          // 自然场景ids
+    private List<String> bzIds;          // 标准法规场景ids
+    private List<String> jtIds;          // 交通事故自然场景ids
+    private List<String> fhIds;          // 泛化模板场景ids
+}

+ 22 - 0
api-common/src/main/java/api/common/pojo/po/scene/SystemScenePackagePO.java

@@ -0,0 +1,22 @@
+package api.common.pojo.po.scene;
+
+import api.common.pojo.common.CommonPO;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * 人员场景包表。
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class SystemScenePackagePO extends CommonPO implements Serializable {
+    private String id;              // 主键
+    private String packageName;        // 场景包名
+    private String sceneDescribe;          // 场景包描述
+}

+ 23 - 0
api-common/src/main/java/api/common/pojo/po/scene/SystemScenePackageSublistPO.java

@@ -0,0 +1,23 @@
+package api.common.pojo.po.scene;
+
+import api.common.pojo.common.CommonPO;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * 人员场景包子表。
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class SystemScenePackageSublistPO extends CommonPO implements Serializable {
+    private String sublistId;              // 主键
+    private String sceneType;        // 场景类型
+    private String sceneId;        // 场景id
+    private String sceneAndPackage;          // 关联场景包id
+}

+ 2 - 3
api-common/src/main/java/api/common/pojo/po/scene/SystemUserScenePO.java

@@ -7,7 +7,6 @@ import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
-import java.util.List;
 
 /**
  * 用户场景关联表。
@@ -19,6 +18,6 @@ import java.util.List;
 public class SystemUserScenePO extends CommonPO implements Serializable {
     private String id;              // 主键
     private String userId;        // 用户id
-    private String sceneId;          // 场景id
-    private String sceneType;          // 场景类型
+    private String packageId;          // 场景包id
+
 }

+ 20 - 0
api-common/src/main/java/api/common/pojo/vo/scene/PackageVO.java

@@ -0,0 +1,20 @@
+package api.common.pojo.vo.scene;
+
+import lombok.*;
+
+import java.io.Serializable;
+
+/**
+ * 场景包用
+ */
+@EqualsAndHashCode()
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class PackageVO implements Serializable {
+    private String id;
+    private String packageId;              // 场景包id
+    private String packageName;        // 场景包名称
+
+}

+ 34 - 0
api-common/src/main/java/api/common/pojo/vo/scene/SystemScenePackageVO.java

@@ -0,0 +1,34 @@
+package api.common.pojo.vo.scene;
+
+import api.common.pojo.common.CommonPO;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * 人员场景包表。
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class SystemScenePackageVO extends CommonPO implements Serializable {
+    private String id;              // 主键
+    private String packageName;        // 场景包名
+    private String sceneDescribe;          // 场景包描述
+    private Integer userCount;            // 配置人数
+    private Integer zrCount;             // 自然场景数量
+    private Integer bzCount;            // 标准法规数量
+    private Integer jtCount;            // 交通事故数量
+    private Integer fhCount;          // 泛化数量
+
+    private String userId;
+    private String userName;
+    private String packageId;
+
+
+
+}

+ 23 - 0
api-common/src/main/java/api/common/pojo/vo/scene/SystemUserSceneVO.java

@@ -0,0 +1,23 @@
+package api.common.pojo.vo.scene;
+
+import lombok.*;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 用户场景关联表。
+ */
+@EqualsAndHashCode()
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SystemUserSceneVO  implements Serializable {
+    private String id;              // 主键
+    private String packageId;        // 场景包id
+    private String userId;//用户id
+    private List<UserSceneVO> userIds;//用户集合
+    private List<PackageVO> packageList;//场景包集合
+
+}

+ 21 - 0
api-common/src/main/java/api/common/pojo/vo/scene/UserSceneVO.java

@@ -0,0 +1,21 @@
+package api.common.pojo.vo.scene;
+
+import lombok.*;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 场景包用
+ */
+@EqualsAndHashCode()
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class UserSceneVO implements Serializable {
+    private String id;
+    private String userId;              // 用户id
+    private String userName;        // 用户名
+
+}

+ 41 - 12
api-common/src/main/java/api/common/util/TimeUtil.java

@@ -7,17 +7,18 @@ import java.util.*;
 
 public class TimeUtil {
 
-    private static String[] dateFmtArr= new String[]{"yyyyMMdd", "yyyy-MM-dd HH:mm:ss","yyyy-MM-dd","HHmmssSS","HH:mm:ss","yyyyMMddHHmmss"};
+    private static String[] dateFmtArr = new String[]{"yyyyMMdd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd", "HHmmssSS", "HH:mm:ss", "yyyyMMddHHmmss"};
 
     public static long getNow() {
         return System.currentTimeMillis();
     }
+
     public static long getNowLong() {
         return System.currentTimeMillis();
     }
 
     public static String getNowString() {
-        return System.currentTimeMillis()+"";
+        return System.currentTimeMillis() + "";
     }
 
     public static Timestamp getNowForMysql() {
@@ -27,19 +28,21 @@ public class TimeUtil {
     public static long zeroOfToday() {
         return System.currentTimeMillis() / (1000 * 3600 * 24) * (1000 * 3600 * 24) - TimeZone.getDefault().getRawOffset();
     }
-        //获取时间类型格式转化
-    public static Integer getRq(Date date, int index){
+
+    //获取时间类型格式转化
+    public static Integer getRq(Date date, int index) {
         SimpleDateFormat sdf = new SimpleDateFormat(dateFmtArr[index]);
-        if(date == null){
+        if (date == null) {
             date = new Date();
         }
         return Integer.valueOf(sdf.format(date));
 
     }
+
     //获取时间类型格式转化
-    public static String getToStringDate(Date date, int index){
+    public static String getToStringDate(Date date, int index) {
         SimpleDateFormat sdf = new SimpleDateFormat(dateFmtArr[index]);
-        if(date == null){
+        if (date == null) {
             date = new Date();
         }
         return sdf.format(date);
@@ -47,17 +50,17 @@ public class TimeUtil {
     }
 
     //获取过去某天的起始日期
-    public static Map<String,Object> getPastTime(Integer num) {
+    public static Map<String, Object> getPastTime(Integer num) {
         Calendar c = Calendar.getInstance();
         c.setTime(new Date());
         c.add(Calendar.DATE, -num);
         Date d = c.getTime();
-        String  startDate=getToStringDate(d,2) + " 00:00:00";
-        String  endDate=getToStringDate(d,2) + " 23:59:59";
-        Map<String,Object> map = new HashMap();
+        String startDate = getToStringDate(d, 2) + " 00:00:00";
+        String endDate = getToStringDate(d, 2) + " 23:59:59";
+        Map<String, Object> map = new HashMap();
         map.put("startDate", startDate);
         map.put("endDate", endDate);
-        map.put("toDate", getToStringDate(d,2));
+        map.put("toDate", getToStringDate(d, 2));
         return map;
     }
 
@@ -65,4 +68,30 @@ public class TimeUtil {
     public static Timestamp getPostTimestamp(int secends) {
         return new Timestamp(System.currentTimeMillis() + secends * 1000);
     }
+
+    //获取两个时间间隔
+    public static String getTimeDifference(Date dateStart, Date dateStop) {
+        String message = "";
+        try {
+            //毫秒ms
+            long diff = dateStop.getTime() - dateStart.getTime();
+            long diffSeconds = diff / 1000 % 60;
+            long diffMinutes = diff / (60 * 1000) % 60;
+            long diffHours = diff / (60 * 60 * 1000) % 24;
+            long diffDays = diff / (24 * 60 * 60 * 1000);
+            if (diffDays > 0) {
+                message = diffDays + "天" + diffHours + "小时" + diffMinutes + "分钟" + diffSeconds + "秒";
+            } else if (diffDays == 0 && diffHours != 0) {
+                message = diffHours + "小时" + diffMinutes + "分钟" + diffSeconds + "秒";
+            } else if (diffDays == 0 && diffHours == 0 && diffMinutes != 0) {
+                message = diffMinutes + "分钟" + diffSeconds + "秒";
+            } else if (diffDays == 0 && diffHours == 0 && diffMinutes == 0 && diffSeconds != 0) {
+                message = diffSeconds + "秒";
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return message;
+    }
+
 }

+ 12 - 6
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/SceneAccidentController.java

@@ -5,11 +5,13 @@ import api.common.pojo.param.MinioParameter;
 import api.common.pojo.param.scene.SceneAccidentParam;
 import api.common.pojo.param.scene.SceneImportParam;
 import api.common.pojo.po.scene.SceneAccidentPO;
+import api.common.pojo.po.system.SceneImportPO;
 import api.common.pojo.vo.scene.SceneAccidentVO;
 import api.common.util.ObjectUtil;
 import com.css.simulation.resource.common.utils.AuthUtil;
 import com.css.simulation.resource.common.utils.PageUtil;
 import com.css.simulation.resource.scene.service.SceneAccidentService;
+import com.css.simulation.resource.system.service.SceneImportService;
 import com.github.pagehelper.PageInfo;
 import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
@@ -25,6 +27,8 @@ public class SceneAccidentController {
 
     @Resource
     SceneAccidentService sceneAccidentService;
+    @Resource
+    SceneImportService sceneImportService;
 
     //查询列表
     @PostMapping("/querySceneAccidentList")
@@ -67,12 +71,14 @@ public class SceneAccidentController {
     //测试批量导入
     @PostMapping("/saveSceneAccidentBatch")
     @ResponseBody
-    public ResponseBodyVO<String> saveAll(@RequestBody SceneImportParam sceneImportParam) {
-        System.out.println("saveSceneAccidentBatch" + AuthUtil.getCurrentUsername());
-        System.out.println(sceneImportParam.getMinioDirectory());
-        return null;
-      //return  sceneAccidentService.importMiNio(parms);
-        //return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
+    public ResponseBodyVO<String> saveSceneAccidentBatch(@RequestBody SceneImportParam sceneImportParam) {
+        SceneImportPO sceneImportPO=new  SceneImportPO();
+        sceneImportPO.setId(sceneImportParam.getId());
+        sceneImportPO.setStatus("3");
+        sceneImportService.updateStatus(sceneImportPO);
+        sceneImportPO= sceneAccidentService.importMiNio(sceneImportParam);
+        sceneImportService.updateStatus(sceneImportPO);
+        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
     }
 
 }

+ 20 - 29
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/SceneGeneralTemplateController.java

@@ -17,7 +17,6 @@ import com.css.simulation.resource.scene.service.SceneGeneralTemplateService;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.github.pagehelper.PageInfo;
-import lombok.SneakyThrows;
 import org.apache.http.client.config.RequestConfig;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -44,20 +43,21 @@ public class SceneGeneralTemplateController {
     SceneGeneralExampleService exampleService;
     @Resource
     private FileDownService fileDownService;
+
     //查询列表
     @PostMapping("/querySceneGeneralTemplateList")
     @ResponseBody
     public ResponseBodyVO<List<SceneGeneralTemplatePO>> querySceneGeneralTemplateList(@RequestBody SceneGeneralTemplateParam po) {
         PageUtil.setPageInfo(po);
         List<SceneGeneralTemplatePO> list = sceneGeneralTemplateService.querySceneGeneralTemplateList(po);
-        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS,  new PageInfo<>(list));
+        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS, new PageInfo<>(list));
     }
 
     //查模板详情
     @PostMapping("/querySceneGeneralTemplateById")
     @ResponseBody
     public ResponseBodyVO<SceneGeneralTemplateVO> querySceneGeneralTemplateById(@RequestBody SceneGeneralTemplateParam param) {
-        if(param!=null&&ObjectUtil.isNotNull(param.getId())){
+        if (param != null && ObjectUtil.isNotNull(param.getId())) {
             SceneGeneralTemplateVO po = sceneGeneralTemplateService.querySceneGeneralTemplateById(param.getId());
             return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS, po);
         }
@@ -65,30 +65,22 @@ public class SceneGeneralTemplateController {
 
     }
 
-    /*
-        //新增泛化模板
-        @PostMapping("/saveSceneGeneralTemplate")
-        @ResponseBody
-        public ResponseBodyVO<String> saveSceneGeneralTemplate() {
-            return   sceneGeneralTemplateService.saveSceneGeneralTemplate1();
-
-        }*/
     //新增泛化模板
     @PostMapping("/saveSceneGeneralTemplate")
     @ResponseBody
     public ResponseBodyVO<String> saveSceneGeneralTemplate(@RequestParam("file") MultipartFile multipartFile) {
         File file = null;
-        String originalFilename =  multipartFile.getOriginalFilename();
-        if(originalFilename.indexOf(".xls")==-1&&originalFilename.indexOf(".xlsx")==-1){
+        String originalFilename = multipartFile.getOriginalFilename();
+        if (originalFilename.indexOf(".xls") == -1 && originalFilename.indexOf(".xlsx") == -1) {
             return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "文件格式错误,请检查模板.");
 
         }
         //版本号
-        String version=TimeUtil.getToStringDate(new Date(),5);
+        String version = TimeUtil.getToStringDate(new Date(), 5);
         try {
             ResponseBodyVO<String> respon;
-            Integer nowTime = TimeUtil.getRq(new Date(), 0);
-          String  fileName = "泛化场景/" + version +"/"+originalFilename;
+           // Integer nowTime = TimeUtil.getRq(new Date(), 0);
+            String fileName = "泛化场景/" + version + "/" + originalFilename;
             respon = fileDownService.upload(multipartFile, fileName);
 
             String[] filename = originalFilename.split("\\.");
@@ -100,7 +92,7 @@ public class SceneGeneralTemplateController {
             return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "模板解析失败,请检查模板.");
 
         }
-        return sceneGeneralTemplateService.saveSceneGeneralTemplate(file,version);
+        return sceneGeneralTemplateService.saveSceneGeneralTemplate(file, version);
 
     }
 
@@ -117,8 +109,8 @@ public class SceneGeneralTemplateController {
     @PostMapping("/queryGeneralTemplateByFh")
     @ResponseBody
     public ResponseBodyVO queryGeneralTemplateByFh(@RequestBody SceneGeneralExamplePO param) {
-        if(param!=null&&ObjectUtil.isNotNull(param.getId())){
-            return  exampleService.querySceneGeneralExampleById(param.getId());
+        if (param != null && ObjectUtil.isNotNull(param.getId())) {
+            return exampleService.querySceneGeneralExampleById(param.getId());
         }
         return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "参数id不能为空,请检查");
     }
@@ -128,8 +120,8 @@ public class SceneGeneralTemplateController {
     @PostMapping("/saveSceneGeneralExample")
     @ResponseBody
     public ResponseBodyVO saveSceneGeneralExample(@RequestBody SceneGeneralTemplateVO vo) {
-        if(ObjectUtil.isNotNull(vo)){
-            return  exampleService.saveSceneGeneralExample(vo);
+        if (ObjectUtil.isNotNull(vo)) {
+            return exampleService.saveSceneGeneralExample(vo);
         }
         return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "参数不能为空,请检查");
     }
@@ -138,21 +130,19 @@ public class SceneGeneralTemplateController {
     @PostMapping("/queryType")
     @ResponseBody
     public ResponseBodyVO queryType() {
-            return  exampleService.queryType();
+        return exampleService.queryType();
     }
 
 
-
-
     //测试
     @PostMapping("/test1")
     @ResponseBody
     public ResponseBodyVO test1(@RequestBody SceneGeneralTemplatePO po) throws IllegalAccessException, IOException, NoSuchAlgorithmException, KeyStoreException, KeyManagementException {
-      Map map=  beanToMap(po);
+        Map map = beanToMap(po);
         RequestConfig requestConfig = RequestConfig.custom()
-                .setSocketTimeout(6*10*1000)
-                .setConnectTimeout(6*10*1000)
-                .setConnectionRequestTimeout(6*10*1000)
+                .setSocketTimeout(6 * 10 * 1000)
+                .setConnectTimeout(6 * 10 * 1000)
+                .setConnectionRequestTimeout(6 * 10 * 1000)
                 .setRedirectsEnabled(false)
                 .setExpectContinueEnabled(false)
                 .build();
@@ -162,12 +152,13 @@ public class SceneGeneralTemplateController {
         // 实例化 ObjectMapper 对象
         ObjectMapper objectMapper = new ObjectMapper();
         String newjson = objectMapper.writeValueAsString(params);
-       List<SceneGeneralDataPO>  list=JsonUtil.jsonToList(newjson,SceneGeneralDataPO.class);
+        List<SceneGeneralDataPO> list = JsonUtil.jsonToList(newjson, SceneGeneralDataPO.class);
         return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "参数不能为空,请检查");
     }
 
     /**
      * 对象转Map
+     *
      * @param object
      * @return
      * @throws IllegalAccessException

+ 17 - 1
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/SceneNaturalController.java

@@ -1,13 +1,16 @@
 package com.css.simulation.resource.scene.ctrl;
 
 import api.common.pojo.common.ResponseBodyVO;
+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.system.SceneImportPO;
 import api.common.pojo.vo.scene.SceneNaturalVO;
 import api.common.util.ObjectUtil;
 import com.css.simulation.resource.common.utils.PageUtil;
 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.*;
@@ -23,6 +26,8 @@ public class SceneNaturalController {
 
     @Resource
     SceneNaturalService sceneNaturalService;
+    @Resource
+    SceneImportService sceneImportService;
 
     //查询列表
     @PostMapping("/querySceneNaturalList")
@@ -61,6 +66,17 @@ public class SceneNaturalController {
         sceneNaturalService.deleteSceneNatural(params);
         return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
     }
-
+    //批量导入
+    @PostMapping("/saveSceneNaturalBatch")
+    @ResponseBody
+    public ResponseBodyVO<String> saveSceneNaturalBatch(@RequestBody SceneImportParam sceneImportParam) {
+        SceneImportPO sceneImportPO=new  SceneImportPO();
+        sceneImportPO.setId(sceneImportParam.getId());
+        sceneImportPO.setStatus("3");
+        sceneImportService.updateStatus(sceneImportPO);
+        sceneImportPO= sceneNaturalService.importMiNio(sceneImportParam);
+        sceneImportService.updateStatus(sceneImportPO);
+       return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
+    }
 
 }

+ 7 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/ScenePackageController.java

@@ -99,5 +99,12 @@ public class ScenePackageController {
         scenePackageService.deleteList(parms);
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
     }
+    //查询测试包数量
+    @PostMapping("/queryPackageCount")
+    @ResponseBody
+    public ResponseBodyVO<Map> queryPackageCount() {
 
+       Map map= scenePackageService.queryPackageCount();
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS,map);
+    }
 }

+ 17 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/StandardsRegulationsController.java

@@ -1,12 +1,15 @@
 package com.css.simulation.resource.scene.ctrl;
 
 import api.common.pojo.common.ResponseBodyVO;
+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.pojo.vo.scene.StandardsRegulationsVO;
 import api.common.util.ObjectUtil;
 import com.css.simulation.resource.common.utils.PageUtil;
 import com.css.simulation.resource.scene.service.StandardsRegulationsService;
+import com.css.simulation.resource.system.service.SceneImportService;
 import com.github.pagehelper.PageInfo;
 import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
@@ -21,6 +24,8 @@ public class StandardsRegulationsController {
 
     @Resource
     StandardsRegulationsService standardsRegulationsService;
+    @Resource
+    SceneImportService sceneImportService;
 
     //查询列表
     @PostMapping("/queryStandardsRegulationsList")
@@ -60,5 +65,17 @@ public class StandardsRegulationsController {
         standardsRegulationsService.deleteStandardsRegulations(params);
         return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
     }
+    //测试批量导入
+    @PostMapping("/saveStandardsRegulationsBatch")
+    @ResponseBody
+    public ResponseBodyVO<String> saveStandardsRegulationsBatch(@RequestBody SceneImportParam sceneImportParam) {
+        SceneImportPO sceneImportPO=new  SceneImportPO();
+        sceneImportPO.setId(sceneImportParam.getId());
+        sceneImportPO.setStatus("3");
+        sceneImportService.updateStatus(sceneImportPO);
+        sceneImportPO= standardsRegulationsService.importMiNio(sceneImportParam);
+        sceneImportService.updateStatus(sceneImportPO);
+        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
+    }
 
 }

+ 128 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/SystemScenePackageController.java

@@ -0,0 +1,128 @@
+package com.css.simulation.resource.scene.ctrl;
+
+import api.common.pojo.common.ResponseBodyVO;
+import api.common.pojo.param.scene.SystemScenePackageParam;
+import api.common.pojo.po.scene.ScoringRulesPO;
+import api.common.pojo.po.scene.SystemScenePackageNewPO;
+import api.common.pojo.po.scene.SystemScenePackagePO;
+import api.common.pojo.vo.scene.SystemScenePackageVO;
+import api.common.pojo.vo.scene.SystemUserSceneVO;
+import api.common.util.ObjectUtil;
+import com.css.simulation.resource.common.utils.PageUtil;
+import com.css.simulation.resource.scene.service.SystemScenePackageService;
+import com.github.pagehelper.PageInfo;
+import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+//场景包
+@RestController
+@RequestMapping("/SystemScenePackage")
+public class SystemScenePackageController {
+
+    @Resource
+    SystemScenePackageService systemScenePackageService;
+
+    //查询列表
+    @PostMapping("/querySystemScenePackageList")
+    @ResponseBody
+    public ResponseBodyVO<List<SystemScenePackageVO> > querySystemScenePackageList(@RequestBody SystemScenePackageParam parms) {
+        PageUtil.setPageInfo(parms);
+        List<SystemScenePackageVO>  list = systemScenePackageService.querySystemScenePackageList(parms);
+
+        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS,  new PageInfo(list));
+    }
+
+    //查询场景包详情
+    @PostMapping("/querySystemScenePackageById")
+    @ResponseBody
+    public ResponseBodyVO<SystemScenePackageNewPO> querySystemScenePackageById(@RequestBody SystemScenePackageParam parms) {
+        if (ObjectUtil.isNull(parms.getId())) {
+            return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "参数id不能为空,请检查");
+        }
+        SystemScenePackageNewPO po = systemScenePackageService.querySystemScenePackageById(parms);
+        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS, po);
+
+    }
+
+    //新增打分规则
+    @PostMapping("/saveSystemScenePackage")
+    @ResponseBody
+    public ResponseBodyVO<String> saveSystemScenePackage(@RequestBody SystemScenePackageNewPO parms) {
+        systemScenePackageService.saveSystemScenePackage(parms);
+        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
+    }
+
+
+    //删除
+    @PostMapping("/deleteSystemScenePackage")
+    @ResponseBody
+    public ResponseBodyVO<String> deleteScoringRules(@RequestBody SystemScenePackagePO params) {
+        systemScenePackageService.deleteSystemScenePackage(params);
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
+    }
+
+    //编辑场景包
+    @PostMapping("/updateSystemScenePackage")
+    @ResponseBody
+    public ResponseBodyVO<List<ScoringRulesPO>> updateSystemScenePackage(@RequestBody SystemScenePackageNewPO params) {
+        systemScenePackageService.updateSystemScenePackage(params);
+        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
+    }
+
+    //场景包配置账号查询
+    @PostMapping("/queryUserByPackageId")
+    @ResponseBody
+    public ResponseBodyVO<SystemUserSceneVO> queryUserByPackageId(@RequestBody SystemScenePackageNewPO params) {
+        SystemUserSceneVO vo=  systemScenePackageService.queryUserByPackageId(params);
+        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS,vo);
+    }
+    //场景包配置账号添加
+    @PostMapping("/saveUserByPackageId")
+    @ResponseBody
+    public ResponseBodyVO<String> saveUserByPackageId(@RequestBody SystemUserSceneVO params) {
+         systemScenePackageService.saveUserByPackageId(params);
+        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
+    }
+    //场景包配置账号删除
+    @PostMapping("/deleteUserByPackageId")
+    @ResponseBody
+    public ResponseBodyVO<String> deleteUserByPackageId(@RequestBody SystemUserSceneVO params) {
+        systemScenePackageService.deleteUserByPackageId(params);
+        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
+    }
+
+    //场景包配置场景列表
+    @PostMapping("/queryPackageList")
+    @ResponseBody
+    public ResponseBodyVO<List<Map>> queryPackageList() {
+        List<Map> list=  systemScenePackageService.queryPackageList();
+        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS,list);
+    }
+
+    //人员添加场景包
+    @PostMapping("/savePackageByUserId")
+    @ResponseBody
+    public ResponseBodyVO<String> savePackageByUserId(@RequestBody SystemUserSceneVO params) {
+        systemScenePackageService.savePackageByUserId(params);
+        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
+    }
+    //配置账号删除场景包
+    @PostMapping("/deletePackageByUserId")
+    @ResponseBody
+    public ResponseBodyVO<String> deletePackageByUserId(@RequestBody SystemUserSceneVO params) {
+        systemScenePackageService.deletePackageByUserId(params);
+        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
+    }
+
+    //人员场景包列表
+    @PostMapping("/queryPackageByUserIdList")
+    @ResponseBody
+    public ResponseBodyVO<String> queryPackageByUserIdList(@RequestBody SystemScenePackageParam parms) {
+            PageUtil.setPageInfo(parms);
+            List<SystemScenePackageVO>  list = systemScenePackageService.queryPackageByUserIdList(parms);
+
+            return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS,  new PageInfo(list));
+    }
+}

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

@@ -28,5 +28,7 @@ public interface ScenePackageMapper {
 
     //测试包名查唯一
     List<ScenePackageNewVO> queryByPackageName(ScenePackagePO params);
+    //测试包数量
+    Integer queryPackageCount(ScenePackagePO params);
 
 }

+ 26 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/SystemScenePackageMapper.java

@@ -0,0 +1,26 @@
+package com.css.simulation.resource.scene.mapper;
+
+import api.common.pojo.param.scene.SystemScenePackageParam;
+import api.common.pojo.po.scene.SystemScenePackagePO;
+import api.common.pojo.vo.scene.SystemScenePackageVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+@Repository
+public interface SystemScenePackageMapper {
+
+    void saveSystemScenePackage(SystemScenePackagePO po);
+
+    List<SystemScenePackageVO> querySystemScenePackageList(SystemScenePackageParam params);
+    List<SystemScenePackageVO> queryPackageByUserIdList(SystemScenePackageParam params);
+    List<Map> queryPackageList( );
+    SystemScenePackagePO querySystemScenePackageById(SystemScenePackageParam params);
+    void deleteSystemScenePackage(SystemScenePackagePO po);
+    void updateSystemScenePackage(SystemScenePackagePO po);
+
+
+}

+ 18 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/SystemScenePackageSublistMapper.java

@@ -0,0 +1,18 @@
+package com.css.simulation.resource.scene.mapper;
+
+import api.common.pojo.param.scene.SystemScenePackageParam;
+import api.common.pojo.po.scene.SystemScenePackagePO;
+import api.common.pojo.po.scene.SystemScenePackageSublistPO;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface SystemScenePackageSublistMapper {
+
+    void saveSystemScenePackageSublist(List<SystemScenePackageSublistPO> list);
+    List<String> querySystemScenePackageSublistList(SystemScenePackageSublistPO po);
+    void deleteSystemScenePackageSublist(SystemScenePackageSublistPO po);
+}

+ 6 - 5
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/SystemUserSceneMapper.java

@@ -1,6 +1,7 @@
 package com.css.simulation.resource.scene.mapper;
 
 import api.common.pojo.po.scene.SystemUserScenePO;
+import api.common.pojo.vo.scene.UserSceneVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Repository;
 
@@ -15,12 +16,12 @@ public interface SystemUserSceneMapper {
 
     List<SystemUserScenePO> querySystemUserScene(SystemUserScenePO po);
 
-    //场景列表展示时使用
-    List<String> querySystemUserSceneByType(SystemUserScenePO po);
+    //场景列表展示时使用根据人查包
+    List<String> querySystemUserSceneByUserId(SystemUserScenePO po);
+    //场景列表展示时使用根据包查人
+    List<UserSceneVO> queryUserByPackageId(String packageId);
 
-    //根据用户id删除
-    void deleteSystemUserSceneByUserId(SystemUserScenePO po);
     //场景删除时关联删除关系表
-    void deleteSystemUserSceneBySceneId(SystemUserScenePO po);
+    void deleteSystemUserScene(SystemUserScenePO po);
 
 }

+ 118 - 95
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SceneAccidentService.java

@@ -3,7 +3,10 @@ package com.css.simulation.resource.scene.service;
 import api.common.pojo.common.ResponseBodyVO;
 import api.common.pojo.param.MinioParameter;
 import api.common.pojo.param.scene.SceneAccidentParam;
+import api.common.pojo.param.scene.SceneImportParam;
 import api.common.pojo.po.scene.SceneAccidentPO;
+import api.common.pojo.po.scene.SceneImportTaskPO;
+import api.common.pojo.po.system.SceneImportPO;
 import api.common.util.FileUtil;
 import api.common.util.ObjectUtil;
 import api.common.util.StringUtil;
@@ -17,9 +20,12 @@ import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.fileupload.FileItem;
 import org.springframework.web.multipart.MultipartFile;
+
 import java.util.Date;
+
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.commons.CommonsMultipartFile;
+
 import javax.annotation.Resource;
 import java.io.File;
 import java.util.ArrayList;
@@ -37,6 +43,8 @@ public class SceneAccidentService {
     private FileDownService fileDownService;
     @Resource
     private SystemUserSceneService systemUserSceneService;
+    @Resource
+    private SceneImportTaskService sceneImportTaskService;
 
     /**
      * 获取交通事故场景数据:
@@ -56,7 +64,7 @@ public class SceneAccidentService {
         //判断场景名称唯一
         String sceneName = root.path("场景名称").asText();
         String sceneId = SceneAccidentMapper.querySceneAccidentByNmae(sceneName);
-        SceneAccidentPO sceneAccidentPO = null;
+        SceneAccidentPO sceneAccidentPO = new SceneAccidentPO();
         sceneAccidentPO = sceneAccidentPO.builder()
                 .accidentId(StringUtil.getRandomUUID())
                 .sceneName(sceneName)
@@ -187,7 +195,7 @@ public class SceneAccidentService {
         if (ObjectUtil.isNotNull(params.getRearEndCollision()) || ObjectUtil.isNotNull(params.getCutIn()) || ObjectUtil.isNotNull(params.getDriveCurve()) || ObjectUtil.isNotNull(params.getCarConflict())) {
             params.setBq(1);
         }
-        List<SceneAccidentPO> list = null;
+        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);
         }/*else if(params.getXlk().equals("1")&&params.getBq().equals("0")){
@@ -316,7 +324,7 @@ public class SceneAccidentService {
                 if (scenes1 == null) {
                     throw new RuntimeException("目录:" + dataUrlNew + " 下没有文件!");
                 }
-                SceneAccidentPO sceneAccidentPO = null;
+                SceneAccidentPO sceneAccidentPO = new SceneAccidentPO();
                 Integer nowTime = TimeUtil.getRq(new Date(), 0);
                 for (File scene : scenes1) {
                     String dataUrl = scene.getAbsolutePath();
@@ -436,7 +444,7 @@ public class SceneAccidentService {
                         if (scenes2 == null) {
                             throw new RuntimeException("目录:" + dataUrlNew1 + " 下没有文件!");
                         }
-                        SceneAccidentPO sceneAccidentPO = null;
+                        SceneAccidentPO sceneAccidentPO = new SceneAccidentPO();
                         String isUpdate = "";
                         for (File scene3 : scenes2) {
                             String dataUrl = scene3.getAbsolutePath();
@@ -548,105 +556,120 @@ public class SceneAccidentService {
     /**
      * 获取交通事故场景数据:
      */
-    public ResponseBodyVO<String> importMiNio(MinioParameter parms) {
-
-        MinioParameter MI = new MinioParameter();
-
-        MI.setObjectName(parms.getObjectName());
-        List<String>  errList=new ArrayList<>();
-        List<String> list = fileDownService.listDeepOne(MI).getInfo();
-        String OsgbPath=null;
-        String XodrPath=null;
-        for (String filePath:list) {
-            if (filePath.indexOf("/OSGB") != -1) {
-                OsgbPath = filePath;
-            } else if (filePath.indexOf("/XODR") != -1) {
-                XodrPath = filePath;
+    public SceneImportPO importMiNio(SceneImportParam parms) {
+        SceneImportPO  sceneImportPO=new  SceneImportPO();
+        sceneImportPO.setId(parms.getId());
+        //sceneImportPO.setStatus("3");
+       // sceneImportTaskService.updateSceneImportTask(sceneImportTaskPO);
+        try {
+            MinioParameter MI = new MinioParameter();
+            MI.setObjectName(parms.getMinioDirectory());
+            List<String> list = fileDownService.listDeepOne(MI).getInfo();
+            String OsgbPath = null;
+            String XodrPath = null;
+            int successNum = 0;
+            int falseNum = 0;
+            String errorMessage = "";
+            for (String filePath : list) {
+                if (filePath.indexOf("/OSGB") != -1) {
+                    OsgbPath = filePath;
+                } else if (filePath.indexOf("/XODR") != -1) {
+                    XodrPath = filePath;
+                }
             }
-        }
-        for (String filePath:list) {
-            if(filePath.indexOf("/Scenarios")!=-1){
-                MI.setObjectName(filePath);
-                List<String> listScene = fileDownService.listDeepOne(MI).getInfo();
-                for (String scenePath:listScene) {
-
-                    try {
-                        MI.setObjectName(scenePath);
-                        List<String> listAderss = fileDownService.list(MI).getInfo();
-                        SceneAccidentPO sceneAccidentPO = null;
-                        String isupdate = null;
-                        for (String adress : listAderss) {
-                            if (adress.indexOf(".json") != -1) {
-                                MI.setObjectName(adress);
-                                Response download = fileDownService.download(MI);
-                                // -------------------------------- label.json --------------------------------
-                                String json = download.body().toString();
-                                ObjectMapper objMap = new ObjectMapper();
-                                JsonNode root = objMap.readTree(json);
-                                //判断场景名称唯一
-                                String sceneName = root.path("场景名称").asText();
-                                String sceneId = SceneAccidentMapper.querySceneAccidentByNmae(sceneName);
-                                String osgbAdress = OsgbPath + "/" + root.path("osgb").asText();
-                                String xodrAdress = XodrPath + "/" + root.path("xodr").asText();
-                                sceneAccidentPO = sceneAccidentPO.builder()
-                                        .accidentId(StringUtil.getRandomUUID())
-                                        .sceneName(sceneName)
-                                        .scenceResume(root.path("场景描述").asText())
-                                        .selfDriving(root.path("自车驾驶行为").asText())
-                                        .targetDriving(root.path("目标驾驶行为").asText())
-                                        .selfReaction(root.path("自车反应行为").asText())
-                                        .conflictBehavior(root.path("冲突行为").asText())
-                                        .conflictType(root.path("冲突类型").asText())
-                                        .sceneTime(root.path("时间").asText())
-                                        .sceneWeather(root.path("天气").asText())
-                                        .maxTime(root.path("max_time").asText())
-                                        .xodrAddress(xodrAdress)
-                                        .osgbAddress(osgbAdress)
-                                        .isDeleted("0")
-                                        .build();
-                                if (ObjectUtil.isNull(sceneId)) {
-                                    isupdate = "0";
-                                } else {
-                                    isupdate = "1";
-                                    sceneAccidentPO.setAccidentId(sceneId);
+            for (String filePath : list) {
+                if (filePath.indexOf("/Scenarios") != -1) {
+                    MI.setObjectName(filePath);
+                    List<String> listScene = fileDownService.listDeepOne(MI).getInfo();
+                    for (String scenePath : listScene) {
+                        try {
+                            MI.setObjectName(scenePath);
+                            List<String> listAderss = fileDownService.list(MI).getInfo();
+                            SceneAccidentPO sceneAccidentPO = new SceneAccidentPO();
+                            String isupdate = null;
+                            for (String adress : listAderss) {
+                                if (adress.indexOf(".json") != -1) {
+                                    MI.setObjectName(adress);
+                                    Response download = fileDownService.download(MI);
+                                    // -------------------------------- label.json --------------------------------
+                                    String json = download.body().toString();
+                                    ObjectMapper objMap = new ObjectMapper();
+                                    JsonNode root = objMap.readTree(json);
+                                    //判断场景名称唯一
+                                    String sceneName = root.path("场景名称").asText();
+                                    String sceneId = SceneAccidentMapper.querySceneAccidentByNmae(sceneName);
+                                    String osgbAdress = OsgbPath + "/" + root.path("osgb").asText();
+                                    String xodrAdress = XodrPath + "/" + root.path("xodr").asText();
+                                    sceneAccidentPO = sceneAccidentPO.builder()
+                                            .accidentId(StringUtil.getRandomUUID())
+                                            .sceneName(sceneName)
+                                            .scenceResume(root.path("场景描述").asText())
+                                            .selfDriving(root.path("自车驾驶行为").asText())
+                                            .targetDriving(root.path("目标驾驶行为").asText())
+                                            .selfReaction(root.path("自车反应行为").asText())
+                                            .conflictBehavior(root.path("冲突行为").asText())
+                                            .conflictType(root.path("冲突类型").asText())
+                                            .sceneTime(root.path("时间").asText())
+                                            .sceneWeather(root.path("天气").asText())
+                                            .maxTime(root.path("max_time").asText())
+                                            .xodrAddress(xodrAdress)
+                                            .osgbAddress(osgbAdress)
+                                            .isDeleted("0")
+                                            .build();
+                                    if (ObjectUtil.isNull(sceneId)) {
+                                        isupdate = "0";
+                                    } else {
+                                        isupdate = "1";
+                                        sceneAccidentPO.setAccidentId(sceneId);
+                                    }
+                                }
+                                if (adress.indexOf(".json") != -1) {
+                                    sceneAccidentPO.setJsonAddress(adress);
+                                } else if (adress.indexOf(".xml") != -1 || adress.indexOf(".xosc") != -1) {
+                                    sceneAccidentPO.setXmlAddress(adress);
+                                } else if (adress.indexOf(".xodr") != -1) {
+                                    sceneAccidentPO.setXodrAddress(adress);
+                                } else if (adress.indexOf(".osgb") != -1) {
+                                    sceneAccidentPO.setOsgbAddress(adress);
+                                } else if (adress.indexOf(".mp4") != -1) {
+                                    sceneAccidentPO.setVideoAddress(adress);
                                 }
-
                             }
-                            if (adress.indexOf(".json") != -1) {
-                                sceneAccidentPO.setJsonAddress(adress);
-                            } else if (adress.indexOf(".xml") != -1 || adress.indexOf(".xosc") != -1) {
-                                sceneAccidentPO.setXmlAddress(adress);
-                            } else if (adress.indexOf(".xodr") != -1) {
-                                sceneAccidentPO.setXodrAddress(adress);
-                            } else if (adress.indexOf(".osgb") != -1) {
-                                sceneAccidentPO.setOsgbAddress(adress);
-                            } else if (adress.indexOf(".mp4") != -1) {
-                                sceneAccidentPO.setVideoAddress(adress);
+                            if (isupdate.equals("0")) {
+                                // -------------------------------- 保存数据到 mysql --------------------------------
+                                sceneAccidentPO.setCreateTime(TimeUtil.getNowForMysql());
+                                sceneAccidentPO.setCreateUserId(AuthUtil.getCurrentUserId());
+                                sceneAccidentPO.setModifyTime(TimeUtil.getNowForMysql());
+                                SceneAccidentMapper.saveSceneAccident(sceneAccidentPO);
+                            } else if (isupdate.equals("1")) {
+                                // -------------------------------- 修改数据到 mysql --------------------------------
+                                sceneAccidentPO.setModifyTime(TimeUtil.getNowForMysql());
+                                sceneAccidentPO.setModifyUserId(AuthUtil.getCurrentUserId());
+                                SceneAccidentMapper.updateSceneAccident(sceneAccidentPO);
                             }
-
-                        }
-                        if (isupdate.equals("0")) {
-                            // -------------------------------- 保存数据到 mysql --------------------------------
-                            sceneAccidentPO.setCreateTime(TimeUtil.getNowForMysql());
-                            sceneAccidentPO.setCreateUserId(AuthUtil.getCurrentUserId());
-                            sceneAccidentPO.setModifyTime(TimeUtil.getNowForMysql());
-                            SceneAccidentMapper.saveSceneAccident(sceneAccidentPO);
-                        } else if (isupdate.equals("1")) {
-                            // -------------------------------- 修改数据到 mysql --------------------------------
-                            sceneAccidentPO.setModifyTime(TimeUtil.getNowForMysql());
-                            sceneAccidentPO.setModifyUserId(AuthUtil.getCurrentUserId());
-                            SceneAccidentMapper.updateSceneAccident(sceneAccidentPO);
+                            successNum = successNum + 1;
+                        } catch (Exception e) {
+                            if (ObjectUtil.isNull(errorMessage)) {
+                                errorMessage = scenePath;
+                            } else {
+                                errorMessage = errorMessage + ";" + scenePath;
+                            }
+                            falseNum = falseNum + 1;
                         }
-                    }catch (Exception e){
-                        errList.add(scenePath);
-                }
+                    }
                 }
             }
-
+            sceneImportPO.setStatus("4");
+            sceneImportPO.setSuccessNum(successNum);
+            sceneImportPO.setFalseNum(falseNum);
+            sceneImportPO.setErrorMessage(errorMessage);
+           // sceneImportTaskService.updateSceneImportTask(sceneImportTaskPO);
+            return sceneImportPO;
+        }catch (Exception e){
+            sceneImportPO.setStatus("2");
+           // sceneImportTaskService.updateSceneImportTask(sceneImportTaskPO);
+            return sceneImportPO;
         }
-
-        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
-
     }
 
 }

+ 8 - 3
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SceneGeneralExampleService.java

@@ -87,9 +87,9 @@ public class SceneGeneralExampleService {
 
     @SneakyThrows
     public  ResponseBodyVO saveSceneGeneralExample(SceneGeneralTemplateVO vo) {
-          /* //测试用
-        SceneGeneralTemplatePO po1=templateMapper.querySceneGeneralTemplateById(po.getTemplateId());
-        BeanUtils.copyProperties(po1, po);*/
+   /*        //测试用
+        SceneGeneralTemplatePO po1=templateMapper.querySceneGeneralTemplateById(vo.getTemplateId());
+        BeanUtils.copyProperties(po1, vo);*/
 
         //查询泛化标志位并赋值
         SceneGeneralTemplatePO poV= templateMapper.querySceneGeneralTemplateById(vo.getTemplateId());
@@ -164,6 +164,11 @@ public class SceneGeneralExampleService {
                 .build();
 
         String post = HttpUtil.post(HttpUtil.getHttpClient(), requestConfig, "http://47.94.105.148:5000/test_1.0", null, map);
+       Boolean success= JsonUtil.readTree(post).get("success").asBoolean();
+       if(!success){
+           String message= JsonUtil.readTree(post).get("message").toString();
+           return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, message);
+       }
         JsonNode params = JsonUtil.readTree(post).get("params");
         // 实例化 ObjectMapper 对象
         ObjectMapper objectMapper = new ObjectMapper();

+ 174 - 2
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SceneNaturalService.java

@@ -3,9 +3,12 @@ package com.css.simulation.resource.scene.service;
 import api.common.pojo.common.ResponseBodyVO;
 import api.common.pojo.constants.DictConstants;
 import api.common.pojo.param.MinioParameter;
+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.SceneImportTaskPO;
 import api.common.pojo.po.scene.SceneNaturalPO;
+import api.common.pojo.po.system.SceneImportPO;
 import api.common.util.ObjectUtil;
 import api.common.util.ParamUtil;
 import api.common.util.TimeUtil;
@@ -33,6 +36,9 @@ public class SceneNaturalService {
     @Resource
     private SystemUserSceneService systemUserSceneService;
 
+    @Resource
+    private SceneImportTaskService sceneImportTaskService;
+
 
     @Resource
     private FileDownService fileDownService;
@@ -67,7 +73,7 @@ public class SceneNaturalService {
         JsonNode selfDrivingBehavior = root.path("自车行为");
         // -------------------------------- 目标行为 --------------------------------
         JsonNode targetBehavior = root.path("目标行为");
-        SceneNaturalPO sceneNaturalPO = null;
+        SceneNaturalPO sceneNaturalPO = new SceneNaturalPO();
         sceneNaturalPO = sceneNaturalPO.builder()
                 .naturalId(api.common.util.StringUtil.getRandomUUID())
                 .naturalName(fileName)
@@ -302,7 +308,7 @@ public class SceneNaturalService {
          map.put("poBq",poBq);
         //List<SceneNaturalPO> list = sceneNaturalMapper.querySceneNaturalList(po);
         //只有标签,或下拉框,或者两者都为空
-        List<SceneNaturalPO> list=null;
+        List<SceneNaturalPO> list=new ArrayList<>();
         if((po.getXlk().equals("0")&&po.getBq().equals("0"))||(po.getXlk().equals("1")&&po.getBq().equals("0"))){
             list = sceneNaturalMapper.querySceneNaturalList(po);
         }else if((po.getXlk().equals("0")&&po.getBq().equals("1"))) {
@@ -378,4 +384,170 @@ public class SceneNaturalService {
         params.setCreateUserId(AuthUtil.getCurrentUserId());
        return sceneNaturalMapper.querySceneNumBySy(params);
     }
+
+
+
+    /**
+     * 获取自然场景数据:
+     */
+    public SceneImportPO importMiNio(SceneImportParam parms) {
+        SceneImportPO sceneImportPO=new  SceneImportPO();
+        sceneImportPO.setId(parms.getId());
+        try {
+            MinioParameter MI = new MinioParameter();
+            MI.setObjectName(parms.getMinioDirectory());
+            List<String> list = fileDownService.listDeepOne(MI).getInfo();
+            String OsgbPath = null;
+            String XodrPath = null;
+            int successNum = 0;
+            int falseNum = 0;
+            String errorMessage = "";
+            for (String filePath : list) {
+                if (filePath.indexOf("/OSGB") != -1) {
+                    OsgbPath = filePath;
+                } else if (filePath.indexOf("/XODR") != -1) {
+                    XodrPath = filePath;
+                }
+            }
+            for (String filePath : list) {
+                if (filePath.indexOf("/Scenarios") != -1) {
+                    MI.setObjectName(filePath);
+                    List<String> listScene = fileDownService.listDeepOne(MI).getInfo();
+                    for (String scenePath : listScene) {
+                        try {
+                            MI.setObjectName(scenePath);
+                            List<String> listAderss = fileDownService.list(MI).getInfo();
+                            SceneNaturalPO sceneNaturalPO = new SceneNaturalPO();
+                            String isupdate = null;
+                            for (String adress : listAderss) {
+                                if (adress.indexOf(".json") != -1) {
+                                    MI.setObjectName(adress);
+                                    Response download = fileDownService.download(MI);
+                                    // -------------------------------- label.json --------------------------------
+                                    String json = download.body().toString();
+                                    ObjectMapper objMap = new ObjectMapper();
+                                    JsonNode root = objMap.readTree(json);
+                                    //判断场景名称唯一
+                                    int idx = adress.lastIndexOf("/");
+                                    int end = adress.lastIndexOf(".");
+                                    String fileName = adress.substring(idx + 1, end);
+                                    String sceneId = sceneNaturalMapper.querySceneNaturaByName(fileName);
+                                    String osgbAdress = OsgbPath + "/" + root.path("osgb").asText();
+                                    String xodrAdress = XodrPath + "/" + root.path("xodr").asText();
+                                    // -------------------------------- 自然环境 --------------------------------
+                                    JsonNode naturalEnvironment = root.path("自然环境");
+                                    // -------------------------------- 道路 --------------------------------
+                                    JsonNode road = root.path("道路");
+                                    // -------------------------------- 基础设施 --------------------------------
+                                    JsonNode infrastructure = root.path("基础设施");
+                                    // -------------------------------- 临时性操纵 --------------------------------
+                                    JsonNode temporaryManipulation = root.path("临时性操纵");
+                                    // -------------------------------- 交通状况 --------------------------------
+                                    JsonNode traffic = root.path("交通状况");
+                                    // -------------------------------- 自车行为 --------------------------------
+                                    JsonNode selfDrivingBehavior = root.path("自车行为");
+                                    // -------------------------------- 目标行为 --------------------------------
+                                    JsonNode targetBehavior = root.path("目标行为");
+                                    sceneNaturalPO.setNaturalId(api.common.util.StringUtil.getRandomUUID());
+                                    sceneNaturalPO.setNaturalName(fileName);
+                                    sceneNaturalPO.setWeather(getSequenceNew(naturalEnvironment, "天气情况"));
+                                    sceneNaturalPO.setBacklight(getSequenceNew(naturalEnvironment, "逆光"));
+                                    sceneNaturalPO.setLightChange(getSequenceNew(naturalEnvironment, "隧道光线变化"));
+                                    sceneNaturalPO.setRoadType(getSequenceNew(road, "道路类型"));
+                                    sceneNaturalPO.setRoadMatrrial(getSequenceNew(road, "路面材质"));
+                                    sceneNaturalPO.setDrivewayNum(getSequenceNew(road, "车道数量"));
+                                    sceneNaturalPO.setDrivewayType(getSequenceNew(road, "车道类型"));
+                                    sceneNaturalPO.setRoadFlatness(getSequenceNew(road, "道路平坦程度"));
+                                    sceneNaturalPO.setRoadCurvature(getSequenceNew(road, "道路弯曲度"));
+                                    sceneNaturalPO.setRamp(getSequenceNew(road, "匝道"));
+                                    sceneNaturalPO.setIntersectionType(getSequenceNew(road, "路口类型"));
+                                    sceneNaturalPO.setPlaneIntersection(getSequenceNew(road, "道路与铁路平面交叉"));
+                                    sceneNaturalPO.setBridge(getSequenceNew(road, "桥梁"));
+                                    sceneNaturalPO.setTunnel(getSequenceNew(road, "隧道"));
+                                    sceneNaturalPO.setSpeedLimit(getSequenceNew(infrastructure, "限速标志"));
+                                    sceneNaturalPO.setMinSpeedLimit(getSequenceNew(infrastructure, "最低限速标志"));
+                                    sceneNaturalPO.setNoEntry(getSequenceNew(infrastructure, "禁止通行"));
+                                    sceneNaturalPO.setNoStopping(getSequenceNew(infrastructure, "禁止停车"));
+                                    sceneNaturalPO.setLeftLaneLine(getSequenceNew(infrastructure, "左侧车道线"));
+                                    sceneNaturalPO.setRightLaneLine(getSequenceNew(infrastructure, "右侧车道线"));
+                                    sceneNaturalPO.setConductorMarking(getSequenceNew(infrastructure, "导线标线及标志"));
+                                    sceneNaturalPO.setPedestrianCrossing(getSequenceNew(infrastructure, "人行横道"));
+                                    sceneNaturalPO.setTrafficLight(getSequenceNew(infrastructure, "交通信号灯"));
+                                    sceneNaturalPO.setDecelerationMarking(getSequenceNew(infrastructure, "减速标线"));
+                                    sceneNaturalPO.setPavementCondition(getSequenceNew(temporaryManipulation, "路面状况"));
+                                    sceneNaturalPO.setNaturalDisaster(getSequenceNew(temporaryManipulation, "自然灾害"));
+                                    sceneNaturalPO.setRoadSafetySigns(getSequenceNew(temporaryManipulation, "道路施工安全标识"));
+                                    sceneNaturalPO.setSafetyWarningBoard(getSequenceNew(temporaryManipulation, "三角安全警示牌"));
+                                    sceneNaturalPO.setTrafficAccident(getSequenceNew(traffic, "交通事故"));
+                                    sceneNaturalPO.setViolation(getSequenceNew(traffic, "违规"));
+                                    sceneNaturalPO.setSpecialVehicleYield(getSequenceNew(traffic, "特种车辆让行"));
+                                    sceneNaturalPO.setPatency(getSequenceNew(traffic, "通畅情况"));
+                                    sceneNaturalPO.setDoubleFlashingCar(getSequenceNew(traffic, "双闪车辆"));
+                                    sceneNaturalPO.setSelfBehavior(getSequenceNew(selfDrivingBehavior));
+                                    sceneNaturalPO.setTargetBehavior(getSequenceNew(targetBehavior));
+                                    sceneNaturalPO.setMaxTime(root.path("max_time").asText());
+                                             sceneNaturalPO.setIsDeleted("0");
+                                    if(ObjectUtil.isNull(sceneNaturalPO.getOsgbAddress())){
+                                        sceneNaturalPO.setOsgbAddress(osgbAdress);
+                                    }
+                                    if(ObjectUtil.isNull(sceneNaturalPO.getXodrAddress())){
+                                        sceneNaturalPO.setXodrAddress(xodrAdress);
+                                    }
+                                    if (ObjectUtil.isNull(sceneId)) {
+                                        isupdate = "0";
+                                    } else {
+                                        isupdate = "1";
+                                        sceneNaturalPO.setNaturalId(sceneId);
+                                    }
+                                }
+                                if (adress.indexOf(".json") != -1) {
+                                    sceneNaturalPO.setJsonAddress(adress);
+                                } else if (adress.indexOf(".xml") != -1 || adress.indexOf(".xosc") != -1) {
+                                    sceneNaturalPO.setXoscAddress(adress);
+                                } else if (adress.indexOf(".xodr") != -1) {
+                                    sceneNaturalPO.setXodrAddress(adress);
+                                } else if (adress.indexOf(".osgb") != -1) {
+                                    sceneNaturalPO.setOsgbAddress(adress);
+                                } else if (adress.indexOf("simulation.mp4") != -1) {
+                                    sceneNaturalPO.setVideoAddress(adress);
+                                }else if (adress.indexOf(".mp4") != -1) {
+                                    sceneNaturalPO.setVideoPreview(adress);
+                                }
+                            }
+                            if (isupdate.equals("0")) {
+                                // -------------------------------- 保存数据到 mysql --------------------------------
+                                sceneNaturalPO.setCreateTime(TimeUtil.getNowForMysql());
+                                sceneNaturalPO.setCreateUserId(AuthUtil.getCurrentUserId());
+                                sceneNaturalPO.setModifyTime(TimeUtil.getNowForMysql());
+                                sceneNaturalMapper.saveSceneNatural(sceneNaturalPO);
+                            } else if (isupdate.equals("1")) {
+                                // -------------------------------- 修改数据到 mysql --------------------------------
+                                sceneNaturalPO.setModifyTime(TimeUtil.getNowForMysql());
+                                sceneNaturalPO.setModifyUserId(AuthUtil.getCurrentUserId());
+                                sceneNaturalMapper.updateSceneNatural(sceneNaturalPO);
+                            }
+                            successNum = successNum + 1;
+                        } catch (Exception e) {
+                            if (ObjectUtil.isNull(errorMessage)) {
+                                errorMessage = scenePath;
+                            } else {
+                                errorMessage = errorMessage + ";" + scenePath;
+                            }
+                            falseNum = falseNum + 1;
+                        }
+                    }
+                }
+            }
+            sceneImportPO.setStatus("4");
+            sceneImportPO.setSuccessNum(successNum);
+            sceneImportPO.setFalseNum(falseNum);
+            sceneImportPO.setErrorMessage(errorMessage);
+          //  sceneImportTaskService.updateSceneImportTask(sceneImportTaskPO);
+            return sceneImportPO;
+        }catch (Exception e){
+            sceneImportPO.setStatus("2");
+           return sceneImportPO;
+        }
+    }
+
 }

+ 92 - 76
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/ScenePackageService.java

@@ -12,10 +12,12 @@ import api.common.util.TimeUtil;
 import com.css.simulation.resource.common.utils.AuthUtil;
 import com.css.simulation.resource.scene.mapper.ScenePackageMapper;
 import com.css.simulation.resource.scene.mapper.ScenePackageSublistMapper;
+import com.css.simulation.resource.system.service.ParameterService;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+
 import javax.annotation.Resource;
 import java.util.*;
 
@@ -27,6 +29,8 @@ public class ScenePackageService {
     private ScenePackageMapper scenePackageMapper;
     @Resource
     private ScenePackageSublistMapper scenePackageSublistMapper;
+    @Resource
+    private ParameterService parameterService;
 
     /**
      * 测试包数据录入大保存:
@@ -41,7 +45,7 @@ public class ScenePackageService {
             po.setShare("0");
             List<ScenePackageNewVO> listName = scenePackageMapper.queryByPackageName(po);
             if (listName != null && listName.size() > 0) {
-                return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "测试包名称packName=" + po.getPackageName() + "已存在,请重新命名");
+                return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "测试包名称:" + po.getPackageName() + "已存在,请重新命名");
             }
             po.setWeight(vo.getWeight());
             po.setRemarks(vo.getRemarks());
@@ -58,24 +62,24 @@ public class ScenePackageService {
         po.setCreateUserId(AuthUtil.getCurrentUserId());
 
         List<ScenePackageSublistPO> poList = new ArrayList<>();
-        List<ScenePackageSublistPO> treeList = instShareListTree(listSublictTree, uuId, uuId, poList, "0",1);
-       //校验指标名称唯一
+        List<ScenePackageSublistPO> treeList = instShareListTree(listSublictTree, uuId, uuId, poList, "0", 1);
+        //校验指标名称唯一
         if (treeList == null || treeList.size() < 1) {
             return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "指标数据为空,请检查");
         }
-        if(treeList!=null && treeList.size()>1){
-            Set set=new HashSet();
-        Map map=new HashMap<>();
-            for (ScenePackageSublistPO vo: treeList ) {
-              Object sublistName=  map.get(vo.getSublistName());
-              if(ObjectUtil.isNull(sublistName)){
-                  map.put(vo.getSublistName(),vo.getSublistName());
-              }else{
-                      set.add(vo.getSublistName());
-              }
+        if (treeList != null && treeList.size() > 1) {
+            Set set = new HashSet();
+            Map map = new HashMap<>();
+            for (ScenePackageSublistPO vo : treeList) {
+                Object sublistName = map.get(vo.getSublistName());
+                if (ObjectUtil.isNull(sublistName)) {
+                    map.put(vo.getSublistName(), vo.getSublistName());
+                } else {
+                    set.add(vo.getSublistName());
+                }
             }
-            if(ObjectUtil.isNotNull(set)){
-                return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "该条数据中指标名称:"+set+"重复,请检查");
+            if (ObjectUtil.isNotNull(set)) {
+                return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "该条数据中指标名称:" + set + "重复,请检查");
             }
         }
         scenePackageMapper.saveScenePackage(po);
@@ -103,7 +107,7 @@ public class ScenePackageService {
             po.setPackageId(vo.getId());
             List<ScenePackageNewVO> listName = scenePackageMapper.queryByPackageName(po);
             if (listName != null && listName.size() > 0) {
-                return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "测试包名称packName=" + po.getPackageName() + "已存在,请重新命名");
+                return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "测试包名称:" + po.getPackageName() + "已存在,请重新命名");
             }
             po.setWeight(vo.getWeight());
             po.setRemarks(vo.getRemarks());
@@ -117,23 +121,23 @@ public class ScenePackageService {
         po.setIsDeleted("0");
         po.setShare("0");
         List<ScenePackageSublistPO> poList = new ArrayList<>();
-        List<ScenePackageSublistPO> treeList = instShareListTree(listSublictTree, po.getPackageId(), po.getPackageId(), poList, "0",1);
+        List<ScenePackageSublistPO> treeList = instShareListTree(listSublictTree, po.getPackageId(), po.getPackageId(), poList, "0", 1);
         if (treeList == null || treeList.size() < 1) {
             return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "指标数据为空,请检查");
         }
-        if(treeList!=null && treeList.size()>1){
-            Set set=new HashSet();
-            Map map=new HashMap<>();
-            for (ScenePackageSublistPO vo: treeList ) {
-                Object sublistName=  map.get(vo.getSublistName());
-                if(ObjectUtil.isNull(sublistName)){
-                    map.put(vo.getSublistName(),vo.getSublistName());
-                }else{
+        if (treeList != null && treeList.size() > 1) {
+            Set set = new HashSet();
+            Map map = new HashMap<>();
+            for (ScenePackageSublistPO vo : treeList) {
+                Object sublistName = map.get(vo.getSublistName());
+                if (ObjectUtil.isNull(sublistName)) {
+                    map.put(vo.getSublistName(), vo.getSublistName());
+                } else {
                     set.add(vo.getSublistName());
                 }
             }
-            if(ObjectUtil.isNotNull(set)){
-                return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "该条数据中指标名称:"+set+"重复,请检查");
+            if (ObjectUtil.isNotNull(set)) {
+                return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "该条数据中指标名称:" + set + "重复,请检查");
             }
         }
         scenePackageMapper.updateScenePackage(po);
@@ -217,12 +221,12 @@ public class ScenePackageService {
         ScenePackageSublistPO params = new ScenePackageSublistPO();
         params.setParentId(scenePackageId);
         if (isRoot) {
-                //查找一级节点
-                parentVoList = scenePackageSublistMapper.queryScenePackageSublistList(params);
-                if (parentVoList != null && parentVoList.size() > 0) {
-                    selectScenePackageSubListTree(parentVoList, false, null);
-                }
-            } else {
+            //查找一级节点
+            parentVoList = scenePackageSublistMapper.queryScenePackageSublistList(params);
+            if (parentVoList != null && parentVoList.size() > 0) {
+                selectScenePackageSubListTree(parentVoList, false, null);
+            }
+        } else {
             //获取子节点集合
             for (ScenePackageSublistVO pvo : parentVoList) {
                 params.setParentId(pvo.getId());
@@ -250,7 +254,7 @@ public class ScenePackageService {
         po.setPackageName(scenePackagePO.getPackageName());
         List<ScenePackageNewVO> listName = scenePackageMapper.queryByPackageName(po);
         if (listName != null && listName.size() > 0) {
-            return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "测试包名称packName=" + listName.get(0).getPackageName() + "的测试包已存在,请检查");
+            return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "测试包名称:" + listName.get(0).getPackageName() + "的测试包已存在,请检查");
         }
         BeanUtils.copyProperties(scenePackagePO, po);
         po.setCreateTime(TimeUtil.getNowForMysql());
@@ -263,20 +267,20 @@ public class ScenePackageService {
         po.setShare("1");
         List<ScenePackageSublistPO> poList = new ArrayList<>();
         List<ScenePackageSublistVO> listSublist = selectScenePackageSubListTree(null, true, params.getPackageId());
-        List<ScenePackageSublistPO> treeList = instShareListTree(listSublist, uuId, uuId, poList, "1",1);
-        if(treeList!=null && treeList.size()>1){
-            Set set=new HashSet();
-            Map map=new HashMap<>();
-            for (ScenePackageSublistPO vo: treeList ) {
-                Object sublistName=  map.get(vo.getSublistName());
-                if(ObjectUtil.isNull(sublistName)){
-                    map.put(vo.getSublistName(),vo.getSublistName());
-                }else{
+        List<ScenePackageSublistPO> treeList = instShareListTree(listSublist, uuId, uuId, poList, "1", 1);
+        if (treeList != null && treeList.size() > 1) {
+            Set set = new HashSet();
+            Map map = new HashMap<>();
+            for (ScenePackageSublistPO vo : treeList) {
+                Object sublistName = map.get(vo.getSublistName());
+                if (ObjectUtil.isNull(sublistName)) {
+                    map.put(vo.getSublistName(), vo.getSublistName());
+                } else {
                     set.add(vo.getSublistName());
                 }
             }
-            if(ObjectUtil.isNotNull(set)){
-                return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "该条数据中指标名称:"+set+"重复,请检查");
+            if (ObjectUtil.isNotNull(set)) {
+                return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "该条数据中指标名称:" + set + "重复,请检查");
             }
         }
         scenePackageMapper.saveScenePackage(po);
@@ -292,38 +296,38 @@ public class ScenePackageService {
      * @return
      */
     public List<ScenePackageSublistPO> instShareListTree(List<ScenePackageSublistVO> parentVoList,
-                                       String scenePackageId, String rootId, List<ScenePackageSublistPO> poList
-            , String share,Integer level) {
-            //获取子节点集合
-            for (int i = 0; i < parentVoList.size(); i++) {
-                ScenePackageSublistPO params = new ScenePackageSublistPO();
-                BeanUtils.copyProperties(parentVoList.get(i), params);
-                params.setParentId(scenePackageId);
-                params.setRootId(rootId);
-                params.setSublistName(parentVoList.get(i).getSublistName());
-                params.setCreateTime(TimeUtil.getNowForMysql());
-                params.setModifyTime(TimeUtil.getNowForMysql());
-                params.setCreateUserId(AuthUtil.getCurrentUserId());
-                //添加泛化后处理
-                if(ObjectUtil.isNull(parentVoList.get(i).getId())){
-                    String uuId = StringUtil.getRandomUUID();
-                    params.setId(uuId);   //主键ID
-                }
-                params.setIsDeleted("0");
-                params.setShare(share);
-                params.setPackageLevel(level);
-                params.setTreeNode(parentVoList.get(i).getTreeNode());
-                List<ScenePackageSublistVO> cvoList = parentVoList.get(i).getChildren();
-                poList.add(params);
-                if (cvoList != null && cvoList.size() > 0) {
-                    //继续查找下一节点
-                    int b=level+1;
-                    instShareListTree(cvoList, params.getId(), rootId, poList, share,b);
-                }
-                parentVoList.remove(parentVoList.get(i));
-                i--;
-
+                                                         String scenePackageId, String rootId, List<ScenePackageSublistPO> poList
+            , String share, Integer level) {
+        //获取子节点集合
+        for (int i = 0; i < parentVoList.size(); i++) {
+            ScenePackageSublistPO params = new ScenePackageSublistPO();
+            BeanUtils.copyProperties(parentVoList.get(i), params);
+            params.setParentId(scenePackageId);
+            params.setRootId(rootId);
+            params.setSublistName(parentVoList.get(i).getSublistName());
+            params.setCreateTime(TimeUtil.getNowForMysql());
+            params.setModifyTime(TimeUtil.getNowForMysql());
+            params.setCreateUserId(AuthUtil.getCurrentUserId());
+            //添加泛化后处理  如果是泛化用返回值中的结果
+            if (ObjectUtil.isNull(parentVoList.get(i).getId())&&parentVoList.get(i).getId().length()<10) {
+                String uuId = StringUtil.getRandomUUID();
+                params.setId(uuId);   //主键ID
             }
+            params.setIsDeleted("0");
+            params.setShare(share);
+            params.setPackageLevel(level);
+            params.setTreeNode(parentVoList.get(i).getTreeNode());
+            List<ScenePackageSublistVO> cvoList = parentVoList.get(i).getChildren();
+            poList.add(params);
+            if (cvoList != null && cvoList.size() > 0) {
+                //继续查找下一节点
+                int b = level + 1;
+                instShareListTree(cvoList, params.getId(), rootId, poList, share, b);
+            }
+            parentVoList.remove(parentVoList.get(i));
+            i--;
+
+        }
 
 
         return poList;
@@ -334,4 +338,16 @@ public class ScenePackageService {
         return scenePackageMapper.queryByPackageName(params);
     }
 
+    //查询个人测试包数量
+    @SneakyThrows
+    public Map queryPackageCount() {
+        ScenePackagePO params=new ScenePackagePO();
+        params.setCreateUserId(AuthUtil.getCurrentUserId());
+        params.setShare("0");
+        int myPackageCount= scenePackageMapper.queryPackageCount(params);
+        HashMap<String, Integer> sceneParam = parameterService.getSceneParam();
+        sceneParam.put("myPackageCount",myPackageCount);//场景包数量
+        return sceneParam;
+    }
+
 }

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

@@ -3,9 +3,12 @@ package com.css.simulation.resource.scene.service;
 import api.common.pojo.common.ResponseBodyVO;
 import api.common.pojo.constants.DictConstants;
 import api.common.pojo.param.MinioParameter;
+import api.common.pojo.param.scene.SceneImportParam;
 import api.common.pojo.param.scene.StandardsRegulationsParam;
 import api.common.pojo.po.scene.SceneAccidentPO;
+import api.common.pojo.po.scene.SceneImportTaskPO;
 import api.common.pojo.po.scene.StandardsRegulationsPO;
+import api.common.pojo.po.system.SceneImportPO;
 import api.common.util.ObjectUtil;
 import api.common.util.StringUtil;
 import api.common.util.TimeUtil;
@@ -33,6 +36,8 @@ public class StandardsRegulationsService {
     private FileDownService fileDownService;
     @Resource
     private SystemUserSceneService systemUserSceneService;
+    @Resource
+    private SceneImportTaskService sceneImportTaskService;
     /**
      * 获取标准法规场景数据:
      */
@@ -48,7 +53,7 @@ public class StandardsRegulationsService {
         String sceneName = root.path("场景名称").asText();
        String sceneId = standardsRegulationsMapper.queryStandardsRegulationsByName(sceneName);
 
-        StandardsRegulationsPO standardsRegulationsPO = null;
+        StandardsRegulationsPO standardsRegulationsPO = new StandardsRegulationsPO();
         standardsRegulationsPO = standardsRegulationsPO.builder()
                 .regulationsId(StringUtil.getRandomUUID())
                 .sceneName(sceneName)
@@ -106,7 +111,7 @@ public class StandardsRegulationsService {
         if(params.getLabel()!=null&&params.getLabel().size()>0){
             params.setBq("1");
         }
-        List<StandardsRegulationsPO> list =null;
+        List<StandardsRegulationsPO> 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 =  standardsRegulationsMapper.queryStandardsRegulationsList(params);
@@ -148,4 +153,114 @@ public class StandardsRegulationsService {
         standardsRegulationsMapper.deleteStandardsRegulations(params);
        // systemUserSceneService.deleteSystemUserSceneBySceneId(params.getRegulationsId());
     }
+
+
+    /**
+     * 获取交通事故场景数据:
+     */
+    public SceneImportPO importMiNio(SceneImportParam parms) {
+        SceneImportPO sceneImportPO=new  SceneImportPO();
+        sceneImportPO.setId(parms.getId());
+        try {
+            MinioParameter MI = new MinioParameter();
+            MI.setObjectName(parms.getMinioDirectory());
+            List<String> list = fileDownService.listDeepOne(MI).getInfo();
+            String OsgbPath = null;
+            String XodrPath = null;
+            int successNum = 0;
+            int falseNum = 0;
+            String errorMessage = "";
+            for (String filePath : list) {
+                if (filePath.indexOf("/OSGB") != -1) {
+                    OsgbPath = filePath;
+                } else if (filePath.indexOf("/XODR") != -1) {
+                    XodrPath = filePath;
+                }
+            }
+            for (String filePath : list) {
+                if (filePath.indexOf("/Scenarios") != -1) {
+                    MI.setObjectName(filePath);
+                    List<String> listScene = fileDownService.listDeepOne(MI).getInfo();
+                    for (String scenePath : listScene) {
+                        try {
+                            MI.setObjectName(scenePath);
+                            List<String> listAderss = fileDownService.list(MI).getInfo();
+                            StandardsRegulationsPO standardsRegulationsPO = new StandardsRegulationsPO();
+                            String isupdate = null;
+                            for (String adress : listAderss) {
+                                if (adress.indexOf(".json") != -1) {
+                                    MI.setObjectName(adress);
+                                    Response download = fileDownService.download(MI);
+                                    // -------------------------------- label.json --------------------------------
+                                    String json = download.body().toString();
+                                    ObjectMapper objMap = new ObjectMapper();
+                                    JsonNode root = objMap.readTree(json);
+                                    //判断场景名称唯一
+                                    String sceneName = root.path("场景名称").asText();
+                                    String sceneId = standardsRegulationsMapper.queryStandardsRegulationsByName(sceneName);
+                                    String osgbAdress = OsgbPath + "/" + root.path("osgb").asText();
+                                    String xodrAdress = XodrPath + "/" + root.path("xodr").asText();
+                                    standardsRegulationsPO = standardsRegulationsPO.builder()
+                                            .regulationsId(StringUtil.getRandomUUID())
+                                            .sceneName(sceneName)
+                                            .regulationType(root.path("法规类型").asText())
+                                            .standardType(root.path("标准类型").asText())
+                                            .maxTime(root.path("max_time").asText())
+                                            .xodrAddress(xodrAdress)
+                                            .osgbAddress(osgbAdress)
+                                            .isDeleted("0")
+                                            .build();
+                                    if (ObjectUtil.isNull(sceneId)) {
+                                        isupdate = "0";
+                                    } else {
+                                        isupdate = "1";
+                                        standardsRegulationsPO.setRegulationsId(sceneId);
+                                    }
+                                }
+                                if (adress.indexOf(".json") != -1) {
+                                    standardsRegulationsPO.setJsonAddress(adress);
+                                } else if (adress.indexOf(".xml") != -1 || adress.indexOf(".xosc") != -1) {
+                                    standardsRegulationsPO.setXmlAddress(adress);
+                                } else if (adress.indexOf(".xodr") != -1) {
+                                    standardsRegulationsPO.setXodrAddress(adress);
+                                } else if (adress.indexOf(".osgb") != -1) {
+                                    standardsRegulationsPO.setOsgbAddress(adress);
+                                } else if (adress.indexOf(".mp4") != -1) {
+                                    standardsRegulationsPO.setVideoAddress(adress);
+                                }
+                            }
+                            if (isupdate.equals("0")) {
+                                // -------------------------------- 保存数据到 mysql --------------------------------
+                                standardsRegulationsPO.setCreateTime(TimeUtil.getNowForMysql());
+                                standardsRegulationsPO.setCreateUserId(AuthUtil.getCurrentUserId());
+                                standardsRegulationsPO.setModifyTime(TimeUtil.getNowForMysql());
+                                standardsRegulationsMapper.saveStandardsRegulations(standardsRegulationsPO);
+                            } else if (isupdate.equals("1")) {
+                                // -------------------------------- 修改数据到 mysql --------------------------------
+                                standardsRegulationsPO.setModifyTime(TimeUtil.getNowForMysql());
+                                standardsRegulationsPO.setModifyUserId(AuthUtil.getCurrentUserId());
+                                standardsRegulationsMapper.updateStandardsRegulations(standardsRegulationsPO);
+                            }
+                            successNum = successNum + 1;
+                        } catch (Exception e) {
+                            if (ObjectUtil.isNull(errorMessage)) {
+                                errorMessage = scenePath;
+                            } else {
+                                errorMessage = errorMessage + ";" + scenePath;
+                            }
+                            falseNum = falseNum + 1;
+                        }
+                    }
+                }
+            }
+            sceneImportPO.setStatus("4");
+            sceneImportPO.setSuccessNum(successNum);
+            sceneImportPO.setFalseNum(falseNum);
+            sceneImportPO.setErrorMessage(errorMessage);
+            return sceneImportPO;
+        }catch (Exception e){
+            sceneImportPO.setStatus("2");
+            return sceneImportPO;
+        }
+    }
 }

+ 342 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SystemScenePackageService.java

@@ -0,0 +1,342 @@
+package com.css.simulation.resource.scene.service;
+
+import api.common.pojo.param.scene.ScoringRulesParam;
+import api.common.pojo.param.scene.SystemScenePackageParam;
+import api.common.pojo.po.scene.*;
+import api.common.pojo.vo.scene.PackageVO;
+import api.common.pojo.vo.scene.SystemScenePackageVO;
+import api.common.pojo.vo.scene.SystemUserSceneVO;
+import api.common.pojo.vo.scene.UserSceneVO;
+import api.common.util.ObjectUtil;
+import api.common.util.StringUtil;
+import api.common.util.TimeUtil;
+import com.css.simulation.resource.common.utils.AuthUtil;
+import com.css.simulation.resource.scene.mapper.ScoringRulesMapper;
+import com.css.simulation.resource.scene.mapper.SystemScenePackageMapper;
+import com.css.simulation.resource.scene.mapper.SystemScenePackageSublistMapper;
+import com.css.simulation.resource.scene.mapper.SystemUserSceneMapper;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+import org.checkerframework.checker.units.qual.A;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@Service
+public class SystemScenePackageService {
+
+    @Resource
+    private SystemScenePackageMapper systemScenePackageMapper;
+    @Resource
+    private SystemScenePackageSublistMapper systemScenePackageSublistMapper;
+    @Resource
+    private SystemUserSceneMapper systemUserSceneMapper;
+
+    /**
+     * 场景包录入
+     */
+    @SneakyThrows
+    public void saveSystemScenePackage(SystemScenePackageNewPO params) {
+
+        SystemScenePackagePO  po=new SystemScenePackagePO();
+        po.setPackageName(params.getPackageName());
+        po.setSceneDescribe(params.getSceneDescribe());
+        String packId=StringUtil.getRandomUUID();
+        po.setId(packId);
+        po.setCreateTime(TimeUtil.getNowForMysql());
+        po.setModifyTime(TimeUtil.getNowForMysql());
+        po.setCreateUserId(AuthUtil.getCurrentUserId());
+        po.setIsDeleted("0");
+        //zr
+        List<String> zrIds=params.getZrIds();
+        if(ObjectUtil.isNotNull(zrIds)){
+            List<SystemScenePackageSublistPO> zrList=new ArrayList<>();
+            for (String id:zrIds) {
+                SystemScenePackageSublistPO zrPo=new SystemScenePackageSublistPO();
+                zrPo.setSublistId(StringUtil.getRandomUUID());
+                zrPo.setSceneType("1");
+                zrPo.setSceneId(id);
+                zrPo.setSceneAndPackage(packId);
+                zrPo.setCreateTime(TimeUtil.getNowForMysql());
+                zrPo.setModifyTime(TimeUtil.getNowForMysql());
+                zrPo.setCreateUserId(AuthUtil.getCurrentUserId());
+                zrList.add(zrPo);
+            }
+            systemScenePackageSublistMapper.saveSystemScenePackageSublist(zrList);
+        }
+//zr
+        List<String> bzIds=params.getBzIds();
+        if(ObjectUtil.isNotNull(bzIds)){
+            List<SystemScenePackageSublistPO> bzList=new ArrayList<>();
+            for (String id:bzIds) {
+                SystemScenePackageSublistPO bzPo=new SystemScenePackageSublistPO();
+                bzPo.setSublistId(StringUtil.getRandomUUID());
+                bzPo.setSceneType("2");
+                bzPo.setSceneId(id);
+                bzPo.setSceneAndPackage(packId);
+                bzPo.setCreateTime(TimeUtil.getNowForMysql());
+                bzPo.setModifyTime(TimeUtil.getNowForMysql());
+                bzPo.setCreateUserId(AuthUtil.getCurrentUserId());
+                bzList.add(bzPo);
+            }
+            systemScenePackageSublistMapper.saveSystemScenePackageSublist(bzList);
+        }
+        //zr
+        List<String> jtIds=params.getJtIds();
+        if(ObjectUtil.isNotNull(jtIds)){
+            List<SystemScenePackageSublistPO> jtList=new ArrayList<>();
+            for (String id:jtIds) {
+                SystemScenePackageSublistPO jtPo=new SystemScenePackageSublistPO();
+                jtPo.setSublistId(StringUtil.getRandomUUID());
+                jtPo.setSceneType("3");
+                jtPo.setSceneId(id);
+                jtPo.setSceneAndPackage(packId);
+                jtPo.setCreateTime(TimeUtil.getNowForMysql());
+                jtPo.setModifyTime(TimeUtil.getNowForMysql());
+                jtPo.setCreateUserId(AuthUtil.getCurrentUserId());
+                jtList.add(jtPo);
+            }
+            systemScenePackageSublistMapper.saveSystemScenePackageSublist(jtList);
+        }
+        //zr
+        List<String> fhIds=params.getFhIds();
+        if(ObjectUtil.isNotNull(fhIds)){
+            List<SystemScenePackageSublistPO> fhList=new ArrayList<>();
+            for (String id:zrIds) {
+                SystemScenePackageSublistPO fhPo=new SystemScenePackageSublistPO();
+                fhPo.setSublistId(StringUtil.getRandomUUID());
+                fhPo.setSceneType("4");
+                fhPo.setSceneId(id);
+                fhPo.setSceneAndPackage(packId);
+                fhPo.setCreateTime(TimeUtil.getNowForMysql());
+                fhPo.setModifyTime(TimeUtil.getNowForMysql());
+                fhPo.setCreateUserId(AuthUtil.getCurrentUserId());
+                fhList.add(fhPo);
+            }
+            systemScenePackageSublistMapper.saveSystemScenePackageSublist(fhList);
+        }
+        systemScenePackageMapper.saveSystemScenePackage(po);
+    }
+    //场景包列表
+    @SneakyThrows
+    public List<SystemScenePackageVO> querySystemScenePackageList(SystemScenePackageParam params) {
+        List<SystemScenePackageVO> list = systemScenePackageMapper.querySystemScenePackageList(params);
+        return list;
+    }
+    //编辑场景包
+    @SneakyThrows
+    public SystemScenePackageNewPO querySystemScenePackageById(SystemScenePackageParam params) {
+        SystemScenePackageNewPO newPo=new SystemScenePackageNewPO();
+        SystemScenePackagePO po = systemScenePackageMapper.querySystemScenePackageById(params);
+        SystemScenePackageSublistPO sublistPo=new SystemScenePackageSublistPO();
+        sublistPo.setSceneAndPackage(params.getId());
+        sublistPo.setSceneType("1");
+       List<String>  zrList=systemScenePackageSublistMapper.querySystemScenePackageSublistList(sublistPo);
+        sublistPo.setSceneType("2");
+        List<String>  bzList=systemScenePackageSublistMapper.querySystemScenePackageSublistList(sublistPo);
+        sublistPo.setSceneType("3");
+        List<String>  jtList=systemScenePackageSublistMapper.querySystemScenePackageSublistList(sublistPo);
+        sublistPo.setSceneType("4");
+        List<String>  fhList=systemScenePackageSublistMapper.querySystemScenePackageSublistList(sublistPo);
+        BeanUtils.copyProperties(po, newPo);
+        newPo.setZrIds(zrList);
+        newPo.setBzIds(bzList);
+        newPo.setJtIds(jtList);
+        newPo.setFhIds(fhList);
+        return newPo;
+    }
+    //编辑场景包
+    @SneakyThrows
+    public void updateSystemScenePackage(SystemScenePackageNewPO params) {
+        SystemScenePackagePO  po=new SystemScenePackagePO();
+        po.setPackageName(params.getPackageName());
+        po.setSceneDescribe(params.getSceneDescribe());
+        String packId=params.getId();
+        po.setId(packId);
+        //删除之前的子表
+        SystemScenePackageSublistPO sublistPO=new SystemScenePackageSublistPO();
+        sublistPO.setModifyTime(TimeUtil.getNowForMysql());
+        sublistPO.setModifyUserId(AuthUtil.getCurrentUserId());
+        sublistPO.setSceneAndPackage(packId);
+        sublistPO.setIsDeleted("1");
+        systemScenePackageSublistMapper.deleteSystemScenePackageSublist(sublistPO);
+        //zr
+        List<String> zrIds=params.getZrIds();
+        if(ObjectUtil.isNotNull(zrIds)){
+            List<SystemScenePackageSublistPO> zrList=new ArrayList<>();
+            for (String id:zrIds) {
+                SystemScenePackageSublistPO zrPo=new SystemScenePackageSublistPO();
+                zrPo.setSublistId(StringUtil.getRandomUUID());
+                zrPo.setSceneType("1");
+                zrPo.setSceneId(id);
+                zrPo.setSceneAndPackage(packId);
+                zrPo.setCreateTime(TimeUtil.getNowForMysql());
+                zrPo.setModifyTime(TimeUtil.getNowForMysql());
+                zrPo.setCreateUserId(AuthUtil.getCurrentUserId());
+                zrList.add(zrPo);
+            }
+            systemScenePackageSublistMapper.saveSystemScenePackageSublist(zrList);
+        }
+//zr
+        List<String> bzIds=params.getBzIds();
+        if(ObjectUtil.isNotNull(bzIds)){
+            List<SystemScenePackageSublistPO> bzList=new ArrayList<>();
+            for (String id:bzIds) {
+                SystemScenePackageSublistPO bzPo=new SystemScenePackageSublistPO();
+                bzPo.setSublistId(StringUtil.getRandomUUID());
+                bzPo.setSceneType("2");
+                bzPo.setSceneId(id);
+                bzPo.setSceneAndPackage(packId);
+                bzPo.setCreateTime(TimeUtil.getNowForMysql());
+                bzPo.setModifyTime(TimeUtil.getNowForMysql());
+                bzPo.setCreateUserId(AuthUtil.getCurrentUserId());
+                bzList.add(bzPo);
+            }
+            systemScenePackageSublistMapper.saveSystemScenePackageSublist(bzList);
+        }
+        //zr
+        List<String> jtIds=params.getJtIds();
+        if(ObjectUtil.isNotNull(jtIds)){
+            List<SystemScenePackageSublistPO> jtList=new ArrayList<>();
+            for (String id:jtIds) {
+                SystemScenePackageSublistPO jtPo=new SystemScenePackageSublistPO();
+                jtPo.setSublistId(StringUtil.getRandomUUID());
+                jtPo.setSceneType("3");
+                jtPo.setSceneId(id);
+                jtPo.setSceneAndPackage(packId);
+                jtPo.setCreateTime(TimeUtil.getNowForMysql());
+                jtPo.setModifyTime(TimeUtil.getNowForMysql());
+                jtPo.setCreateUserId(AuthUtil.getCurrentUserId());
+                jtList.add(jtPo);
+            }
+            systemScenePackageSublistMapper.saveSystemScenePackageSublist(jtList);
+        }
+        //zr
+        List<String> fhIds=params.getFhIds();
+        if(ObjectUtil.isNotNull(fhIds)){
+            List<SystemScenePackageSublistPO> fhList=new ArrayList<>();
+            for (String id:zrIds) {
+                SystemScenePackageSublistPO fhPo=new SystemScenePackageSublistPO();
+                fhPo.setSublistId(StringUtil.getRandomUUID());
+                fhPo.setSceneType("4");
+                fhPo.setSceneId(id);
+                fhPo.setSceneAndPackage(packId);
+                fhPo.setCreateTime(TimeUtil.getNowForMysql());
+                fhPo.setModifyTime(TimeUtil.getNowForMysql());
+                fhPo.setCreateUserId(AuthUtil.getCurrentUserId());
+                fhList.add(fhPo);
+            }
+            systemScenePackageSublistMapper.saveSystemScenePackageSublist(fhList);
+        }
+
+        po.setModifyTime(TimeUtil.getNowForMysql());
+        po.setModifyUserId(AuthUtil.getCurrentUserId());
+        systemScenePackageMapper.updateSystemScenePackage(po);
+    }
+    //删除场景包
+    @SneakyThrows
+    public void deleteSystemScenePackage(SystemScenePackagePO params) {
+        params.setIsDeleted("1");
+        params.setModifyTime(TimeUtil.getNowForMysql());
+        params.setModifyUserId(AuthUtil.getCurrentUserId());
+        systemScenePackageMapper.deleteSystemScenePackage(params);
+    }
+    //根据场景包查询配置账号
+    @SneakyThrows
+    public SystemUserSceneVO queryUserByPackageId(SystemScenePackageNewPO params) {
+        SystemUserSceneVO VO=new SystemUserSceneVO();
+        List<UserSceneVO> userIds=systemUserSceneMapper.queryUserByPackageId(params.getId());
+        VO.setPackageId(params.getId());
+        VO.setUserIds(userIds);
+        return VO;
+    }
+
+    //根据场景包添加配置账号
+    @SneakyThrows
+    public void saveUserByPackageId(SystemUserSceneVO params) {
+        List<UserSceneVO> listVo=params.getUserIds();
+        List<SystemUserScenePO>  list=new ArrayList<>();
+        for (UserSceneVO vo:listVo){
+            SystemUserScenePO po=new SystemUserScenePO();
+            po.setPackageId(params.getPackageId());
+            po.setId(StringUtil.getRandomUUID());
+            po.setCreateTime(TimeUtil.getNowForMysql());
+            po.setModifyTime(TimeUtil.getNowForMysql());
+            po.setCreateUserId(AuthUtil.getCurrentUserId());
+            po.setIsDeleted("0");
+            po.setUserId(vo.getUserId());
+            list.add(po);
+        }
+        systemUserSceneMapper.saveSystemUserScene(list);
+    }
+    //根据场景包删除配置账号
+    @SneakyThrows
+    public void deleteUserByPackageId(SystemUserSceneVO params) {
+        List<UserSceneVO> listVo=params.getUserIds();
+        for (UserSceneVO vo:listVo){
+            SystemUserScenePO po=new SystemUserScenePO();
+            po.setPackageId(params.getPackageId());
+            po.setModifyTime(TimeUtil.getNowForMysql());
+            po.setModifyUserId(AuthUtil.getCurrentUserId());
+            po.setIsDeleted("0");
+            po.setUserId(vo.getUserId());
+            systemUserSceneMapper.deleteSystemUserScene(po);
+
+        }
+    }
+
+    //场景分配时场景包的列表
+    @SneakyThrows
+    public  List<Map> queryPackageList( ) {
+        List<Map> list=systemScenePackageMapper.queryPackageList();
+        return list;
+    }
+
+
+    //根据配置账号添加场景包
+    @SneakyThrows
+    public void savePackageByUserId(SystemUserSceneVO params) {
+        List<PackageVO> listVo=params.getPackageList();
+        List<SystemUserScenePO>  list=new ArrayList<>();
+        for (PackageVO vo:listVo){
+            SystemUserScenePO po=new SystemUserScenePO();
+            po.setPackageId(vo.getPackageId());
+            po.setId(StringUtil.getRandomUUID());
+            po.setCreateTime(TimeUtil.getNowForMysql());
+            po.setModifyTime(TimeUtil.getNowForMysql());
+            po.setCreateUserId(AuthUtil.getCurrentUserId());
+            po.setIsDeleted("0");
+            po.setUserId(params.getUserId());
+            list.add(po);
+        }
+        systemUserSceneMapper.saveSystemUserScene(list);
+    }
+
+    //根据场景包删除配置账号
+    @SneakyThrows
+    public void deletePackageByUserId(SystemUserSceneVO params) {
+        List<PackageVO> listVo=params.getPackageList();
+        for (PackageVO vo:listVo){
+            SystemUserScenePO po=new SystemUserScenePO();
+            po.setPackageId(vo.getPackageId());
+            po.setModifyTime(TimeUtil.getNowForMysql());
+            po.setModifyUserId(AuthUtil.getCurrentUserId());
+            po.setIsDeleted("0");
+            po.setUserId(params.getUserId());
+            systemUserSceneMapper.deleteSystemUserScene(po);
+
+        }
+    }
+
+    //配置人员场景包列表
+    @SneakyThrows
+    public List<SystemScenePackageVO> queryPackageByUserIdList(SystemScenePackageParam params) {
+        List<SystemScenePackageVO> list = systemScenePackageMapper.queryPackageByUserIdList(params);
+        return list;
+    }
+}

+ 5 - 17
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SystemUserSceneService.java

@@ -36,11 +36,10 @@ public class SystemUserSceneService {
 
     //场景列表展示时使用
     @SneakyThrows
-    public  List<String> querySystemUserSceneByType(String type) {
+    public  List<String> querySystemUserSceneByUserId() {
         SystemUserScenePO po=new SystemUserScenePO();
-        po.setSceneType(type);
         po.setUserId(AuthUtil.getCurrentUserId());
-        return systemUserSceneMapper.querySystemUserSceneByType(po);
+        return systemUserSceneMapper.querySystemUserSceneByUserId(po);
     }
 
     @SneakyThrows
@@ -48,24 +47,13 @@ public class SystemUserSceneService {
         po.setUserId(AuthUtil.getCurrentUserId());
        return systemUserSceneMapper.querySystemUserScene(po);
     }
-    //根据用户id删除
-    @SneakyThrows
-    public void deleteSystemUserSceneByUserId() {
-        SystemUserScenePO po=new SystemUserScenePO();
-        po.setUserId(AuthUtil.getCurrentUserId());
-        po.setIsDeleted("1");
-        po.setModifyTime(TimeUtil.getNowForMysql());
-        po.setModifyUserId(AuthUtil.getCurrentUserId());
-        systemUserSceneMapper.deleteSystemUserSceneByUserId(po);
-    }
+
     //场景删除时关联删除关系表
     @SneakyThrows
-    public void deleteSystemUserSceneBySceneId(String sceneId) {
-        SystemUserScenePO po=new SystemUserScenePO();
-        po.setSceneId(sceneId);
+    public void deleteSystemUserScene(SystemUserScenePO po) {
         po.setIsDeleted("1");
         po.setModifyTime(TimeUtil.getNowForMysql());
         po.setModifyUserId(AuthUtil.getCurrentUserId());
-        systemUserSceneMapper.deleteSystemUserSceneBySceneId(po);
+        systemUserSceneMapper.deleteSystemUserScene(po);
     }
 }

+ 1 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/system/mapper/SceneImportMapper.java

@@ -17,4 +17,5 @@ public interface SceneImportMapper {
     void update(SceneImportPO po);
 
     void updateStatus(SceneImportPO po);
+    void updateSceneImportTask(SceneImportPO po);
 }

+ 14 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/system/service/SceneImportService.java

@@ -4,6 +4,8 @@ import api.common.pojo.constants.DictConstants;
 import api.common.pojo.po.system.SceneImportPO;
 import api.common.util.ObjectUtil;
 import api.common.util.StringUtil;
+import api.common.util.TimeUtil;
+import com.css.simulation.resource.common.utils.AuthUtil;
 import com.css.simulation.resource.common.utils.PoUtil;
 import com.css.simulation.resource.system.mapper.SceneImportMapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,4 +41,16 @@ public class SceneImportService {
         return po;
     }
 
+
+    public void updateStatus(SceneImportPO params) {
+        params.setModifyTime(TimeUtil.getNowForMysql());
+        params.setModifyUserId(AuthUtil.getCurrentUserId());
+        sceneImportMapper.updateStatus(params);
+    }
+    public void updateSceneImportTask(SceneImportPO params) {
+        params.setModifyTime(TimeUtil.getNowForMysql());
+        params.setModifyUserId(AuthUtil.getCurrentUserId());
+        sceneImportMapper.updateSceneImportTask(params);
+    }
+
 }

+ 16 - 0
simulation-resource-server/src/main/resources/mapper/scene/ScenePackageMapper.xml

@@ -169,4 +169,20 @@
         </where>
     </select>
 
+    <select id="queryPackageCount" parameterType="api.common.pojo.po.scene.ScenePackagePO"
+            resultType="java.lang.Integer">
+        select
+        count(package_id)
+        from simulation.scene_package
+        <where>
+            is_deleted = '0'
+            <if test="createUserId != null and createUserId != ''">
+                and create_user_id=#{createUserId,jdbcType=VARCHAR}
+            </if>
+            <if test="share != null and share != ''">
+                and share=#{share,jdbcType=VARCHAR}
+            </if>
+        </where>
+    </select>
+
 </mapper>

+ 117 - 0
simulation-resource-server/src/main/resources/mapper/scene/SystemScenePackageMapper.xml

@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.css.simulation.resource.scene.mapper.SystemScenePackageMapper">
+
+    <insert id="saveSystemScenePackage" parameterType="api.common.pojo.po.scene.SystemScenePackagePO">
+        insert into simulation.system_scene_package
+        (id,package_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)
+        values (#{id,jdbcType=VARCHAR},#{packageName,jdbcType=VARCHAR},#{sceneDescribe},
+       #{createUserId,jdbcType=VARCHAR},#{createTime},#{modifyUserId,jdbcType=VARCHAR},#{modifyTime},
+        #{isDeleted,jdbcType=VARCHAR})
+    </insert>
+
+
+
+    <select id="querySystemScenePackageList" parameterType="api.common.pojo.param.scene.SystemScenePackageParam"
+            resultType="api.common.pojo.vo.scene.SystemScenePackageVO">
+        select
+        t.id,
+        t.package_name,
+        t.userCount,t.scene_describe,t.create_time,
+        SUM(CASE WHEN s.scene_type = '1' THEN 1 ELSE 0 END) as zrCount,
+        SUM(CASE WHEN s.scene_type = '2' THEN 1 ELSE 0 END) as bzCount,
+        SUM(CASE WHEN s.scene_type = '3' THEN 1 ELSE 0 END) as jtCount,
+        SUM(CASE WHEN s.scene_type = '4' THEN 1 ELSE 0 END) as fhCount
+        FROM (
+        select
+        p.*,
+        COUNT(u.id) as userCount
+        FROM system_scene_package p
+        JOIN system_user_scene u on p.id = u.scene_id and u.is_deleted = '0' and p.is_deleted = '0'
+        GROUP BY p.id
+        ) t
+        JOIN system_scene_package_sublist s on t.id = s.scene_and_package
+        <where>
+            s.is_deleted='0'
+            <if test="packageName != null and packageName != ''">
+                and s.package_name like CONCAT('%',#{packageName,jdbcType=VARCHAR},'%')
+            </if>
+            <if test="yearMax != null and yearMax != ''">
+                and #{yearMax,jdbcType=VARCHAR} &gt; s.create_time and #{yearMin,jdbcType=VARCHAR} &lt; s.create_time
+            </if>
+        </where>
+        GROUP BY t.id   order by create_time desc
+    </select>
+
+    <select id="queryPackageByUserIdList" parameterType="api.common.pojo.param.scene.SystemScenePackageParam"
+            resultType="api.common.pojo.vo.scene.SystemScenePackageVO">
+        SELECT
+        s.user_id,
+        u.username user_name,
+        s.package_id,
+        s.modify_time,
+        GROUP_CONCAT(p.package_name) as package_name
+        FROM
+        system_user_scene s
+        JOIN system_scene_package p on s.package_id = p.id AND p.is_deleted = '0'
+        JOIN system_user u ON s.user_id = u.id AND u.is_deleted = '0'
+        <where>
+            s.is_deleted='0'
+            <if test="userName != null and userName != ''">
+                and u.username like CONCAT('%',#{userName,jdbcType=VARCHAR},'%')
+            </if>
+            <if test="yearMax != null and yearMax != ''">
+                and #{yearMax,jdbcType=VARCHAR} &gt; s.modify_time and #{yearMin,jdbcType=VARCHAR} &lt; s.modify_time
+            </if>
+        </where>
+        GROUP BY s.user_id
+        ORDER BY s.modify_time DESC
+    </select>
+    <select id="querySystemScenePackageById" parameterType="api.common.pojo.param.scene.SystemScenePackageParam"
+            resultType="api.common.pojo.po.scene.SystemScenePackagePO">
+        select
+        id,package_name,scene_describe,
+        create_user_id,create_time,modify_user_id,modify_time,
+
+        from system_scene_package
+        where  id =#{id}
+
+    </select>
+
+    <select id="queryPackageList" resultType="java.util.Map">
+        select id,package_name packageName
+        from system_scene_package
+        where  is_deleted='0'
+    </select>
+
+    <update id="deleteSystemScenePackage" parameterType="api.common.pojo.po.scene.SystemScenePackagePO">
+        update simulation.system_scene_package
+        <set>
+            <if test="isDeleted != null and isDeleted!=''">
+                is_deleted = #{isDeleted,jdbcType=VARCHAR},
+            </if>
+            <if test="modifyUserId != null and modifyUserId!=''">
+                modify_user_id = #{modifyUserId,jdbcType=VARCHAR},
+            </if>
+            <if test="modifyTime != null">
+                modify_time = #{modifyTime},
+            </if>
+        </set>
+        where id = #{id,jdbcType=VARCHAR}
+    </update>
+
+
+
+    <update id="updateSystemScenePackage" parameterType="api.common.pojo.po.scene.SystemScenePackagePO">
+        update simulation.system_scene_package
+       set package_name=#{packageName},scene_describe=#{sceneDescribe},
+       modify_time=#{modifyTime}, modify_user_id=#{modifyUserId}
+        where id = #{id,jdbcType=VARCHAR}
+    </update>
+
+</mapper>

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

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.css.simulation.resource.scene.mapper.SystemScenePackageSublistMapper">
+
+    <insert id="saveSystemScenePackageSublist" parameterType="java.util.List">
+        insert into simulation.system_scene_package
+        (sublist_id,scene_type,scene_id,scene_and_package,
+       create_user_id,create_time,modify_user_id,modify_time, is_deleted)
+        values
+         <foreach collection="list" index="index" item="item" separator=",">
+        (#{item.sublistId,jdbcType=VARCHAR},#{item.sceneType,jdbcType=VARCHAR},#{item.sceneId,jdbcType=VARCHAR}, #{item.sceneAndPackage,jdbcType=VARCHAR},
+        #{item.createUserId,jdbcType=VARCHAR},#{item.createTime},#{item.modifyUserId,jdbcType=VARCHAR},#{item.modifyTime},
+        #{item.isDeleted,jdbcType=VARCHAR})
+    </foreach>
+    </insert>
+
+
+
+    <select id="querySystemScenePackageSublistList" parameterType="api.common.pojo.po.scene.SystemScenePackageSublistPO"
+            resultType="java.lang.String">
+        select scene_id
+        FROM system_scene_package_sublist
+            is_deleted='0' and scene_and_package =#{sceneAndPackage} and scene_type =#{sceneType}
+    </select>
+
+    <update id="deleteSystemScenePackageSublist" parameterType="api.common.pojo.po.scene.SystemScenePackageSublistPO">
+        update simulation.system_scene_package_sublist
+        <set>
+            <if test="isDeleted != null and isDeleted!=''">
+                is_deleted = #{isDeleted,jdbcType=VARCHAR},
+            </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="id != null and id != ''">
+            and id=#{id}
+        </if>
+        <if test="sceneAndPackage != null and sceneAndPackage != ''">
+            and scene_and_package=#{sceneAndPackage}
+        </if>
+    </update>
+
+</mapper>

+ 27 - 28
simulation-resource-server/src/main/resources/mapper/scene/SystemUserSceneMapper.xml

@@ -4,11 +4,11 @@
 
     <insert id="saveSystemUserScene" parameterType="api.common.pojo.po.scene.SystemUserScenePO">
         insert into simulation.system_user_scene
-        (id,user_id,scene_id,scene_type,
+        (id,user_id,package_id,
         create_user_id,create_time,modify_user_id,modify_time,
         is_deleted) values
         <foreach collection="list" index="index" item="item" separator=",">
-            (#{item.id,jdbcType=VARCHAR},#{item.userId,jdbcType=VARCHAR},#{item.sceneId,jdbcType=VARCHAR},#{item.sceneType,jdbcType=VARCHAR},
+            (#{item.id,jdbcType=VARCHAR},#{item.userId,jdbcType=VARCHAR},#{item.packageId,jdbcType=VARCHAR},
             #{item.createUserId,jdbcType=VARCHAR},#{item.createTime},#{item.modifyUserId,jdbcType=VARCHAR},#{item.modifyTime},
             #{item.isDeleted,jdbcType=VARCHAR})
         </foreach>
@@ -17,7 +17,7 @@
     <select id="querySystemUserScene" parameterType="api.common.pojo.po.scene.SystemUserScenePO"
             resultType="api.common.pojo.po.scene.SystemUserScenePO">
         select
-        id,user_id,scene_id,scene_type,
+        id,user_id,package_id,
         create_time,modify_time,
         is_deleted from simulation.system_user_scene
         <where>
@@ -28,32 +28,36 @@
             <if test="userId != null and userId != ''">
                 and user_id = #{userId,jdbcType=VARCHAR}
             </if>
-            <if test="sceneType != null and sceneType != ''">
-                and scene_type = #{sceneType,jdbcType=VARCHAR}
-            </if>
-            <if test="sceneId != null and sceneId != ''">
-                and scene_id = #{sceneId,jdbcType=VARCHAR}
+            <if test="packageId != null and packageId != ''">
+                and package_id = #{packageId,jdbcType=VARCHAR}
             </if>
             order by modify_time desc
         </where>
     </select>
-    <select id="querySystemUserSceneByType" parameterType="api.common.pojo.po.scene.SystemUserScenePO"
+    <select id="querySystemUserSceneByUserId" parameterType="api.common.pojo.po.scene.SystemUserScenePO"
             resultType="java.lang.String">
         select
-       scene_id from simulation.system_user_scene
+        package_id from simulation.system_user_scene
         <where>
             is_deleted = '0'
             <if test="userId != null and userId != ''">
                 and user_id = #{userId,jdbcType=VARCHAR}
             </if>
-            <if test="sceneType != null and sceneType != ''">
-                and scene_type = #{sceneType,jdbcType=VARCHAR}
+        </where>
+    </select>
+    <select id="queryUserByPackageId" parameterType="java.lang.String"
+            resultType="api.common.pojo.vo.scene.UserSceneVO">
+        select a.id,a.user_id,b.username userName from simulation.system_user_scene a left join system_user b on a.user_id=b.id
+        <where>
+            a.is_deleted = '0' and b.is_deleted = '0'
+            <if test="packageId != null and packageId != ''">
+                and a.package_id = #{packageId,jdbcType=VARCHAR}
             </if>
         </where>
     </select>
 
 
-    <update id="deleteSystemUserSceneByUserId" parameterType="api.common.pojo.po.scene.SystemUserScenePO">
+    <update id="deleteSystemUserScene" parameterType="api.common.pojo.po.scene.SystemUserScenePO">
         update simulation.system_user_scene
         set
         <if test="isDeleted != null and isDeleted!=''">
@@ -65,21 +69,16 @@
         <if test="modifyTime != null">
             modify_time = #{modifyTime},
         </if>
-        where  user_id= #{userId,jdbcType=VARCHAR}
-    </update>
-    <update id="deleteSystemUserSceneBySceneId" parameterType="api.common.pojo.po.scene.SystemUserScenePO">
-        update simulation.system_user_scene
-        set
-        <if test="isDeleted != null and isDeleted!=''">
-            is_deleted = #{isDeleted,jdbcType=VARCHAR},
-        </if>
-        <if test="modifyUserId != null and modifyUserId!=''">
-            modify_user_id = #{modifyUserId,jdbcType=VARCHAR},
-        </if>
-        <if test="modifyTime != null">
-            modify_time = #{modifyTime},
-        </if>
-        where scene_id = #{sceneId,jdbcType=VARCHAR}
+        <where>
+           is_deleted = '0'
+            <if test="packageId != null and packageId != ''">
+                and package_id = #{packageId,jdbcType=VARCHAR}
+            </if>
+            <if test="userId != null and userId != ''">
+                and user_id = #{userId,jdbcType=VARCHAR}
+            </if>
+        </where>
     </update>
 
+
 </mapper>

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

@@ -52,7 +52,21 @@
         update scene_import_task set
           status = #{status,jdbcType=VARCHAR},
           modify_time = #{modifyTime,jdbcType=TIMESTAMP},
+          error_message = #{errorMessage},
           modify_user_id = #{modifyUserId,jdbcType=VARCHAR}
         where id = #{id,jdbcType=VARCHAR}
     </update>
+
+    <update id="updateSceneImportTask" parameterType="api.common.pojo.po.scene.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},
+                total_time = TIMESTAMPDIFF(SECOND,create_time,NOW()),
+                modify_time=NOW()
+        where id = #{id,jdbcType=VARCHAR}
+    </update>
+
 </mapper>