Ver Fonte

车辆名称/算法、车辆配置、打分规则、测试包公有私有分组

wangzhiqiang há 2 anos atrás
pai
commit
49da7d1d94

+ 6 - 1
api-common/src/main/java/api/common/pojo/param/project/SimulationManualProjectParam.java

@@ -57,5 +57,10 @@ public class SimulationManualProjectParam extends PageVO {
     private String parentId;    //父级项目id
     private String projectType; //项目类型 1.手动;2.自动
 
-
+    //算法数组(公私有)
+    private String[] algorithmArrayS;
+    //车辆模型数组(公私有)
+    private String[] vehicleArrayS;
+    //场景测试包数组(公私有)
+    private String[] sceneArrayS;
 }

+ 6 - 2
api-common/src/main/java/api/common/pojo/po/project/SimulationManualProjectPo.java

@@ -81,8 +81,12 @@ public class SimulationManualProjectPo extends BasePo {
     private String algorithmType;
     private String details;
 
-
-
+    //算法数组(公私有)
+    private String algorithmArray;
+    //车辆模型数组(公私有)
+    private String vehicleArray;
+    //场景测试包数组(公私有)
+    private String sceneArray;
 
 
 }

+ 1 - 1
api-common/src/main/java/api/common/pojo/vo/project/DropDownTypeNewVo.java

@@ -12,7 +12,7 @@ import java.util.List;
 @Setter
 public class DropDownTypeNewVo {
 
-    private List<DropDownNewVo> dropDownList;
+    private List dropDownList;
 
     private String type;
 

+ 6 - 0
api-common/src/main/java/api/common/pojo/vo/project/SimulationManualProjectSingleVo.java

@@ -43,5 +43,11 @@ public class SimulationManualProjectSingleVo {
 
     //规则查看
     private String ruleView;
+    //算法数组(公私有)
+    private String[] algorithmArrayS;
+    //车辆模型数组(公私有)
+    private String[] vehicleArrayS;
+    //场景测试包数组(公私有)
+    private String[] sceneArrayS;
 
 }

+ 22 - 6
simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/ConfigService.java

@@ -12,14 +12,12 @@ import com.css.simulation.resource.model.mapper.RelationConfigSensorMapper;
 import com.css.simulation.resource.model.mapper.VehicleMapper;
 import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.tomcat.util.buf.StringUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Slf4j
@@ -78,7 +76,9 @@ public class ConfigService {
         List<ConfigSensorVO> sensorList = configMapper.getConfigSensors(configVO);
         Map<String, List<ConfigSensorVO>> configSensors = sensorList.stream().collect(Collectors.groupingBy(ConfigSensorVO::getSensorType));
         configVO.setConfigSensors(configSensors);
+        if (ObjectUtil.isNotNull(configVO.getVehicleArray())) {
         configVO.setVehicleArrayS(configVO.getVehicleArray().split(","));
+        }
         return configVO;
     }
 
@@ -94,7 +94,9 @@ public class ConfigService {
         configPO.setModifyTime(currentTime);
         configPO.setIsDeleted(DictConstants.NO);
         configPO.setShare(DictConstants.NO);//私有
-        configPO.setVehicleArray(configVO.getVehicleArrayS().toString());
+        if (ObjectUtil.isNotNull(configVO.getVehicleArrayS())) {
+            configPO.setVehicleArray(StringUtils.join(Arrays.asList(configVO.getVehicleArrayS()), ','));
+        }
         //单独处理配置描述
         configPO.setDescription(configVO.getConfigDescription());
         //名称校验
@@ -158,6 +160,10 @@ public class ConfigService {
         configPO.setModifyTime(currentTime);
         configPO.setIsDeleted(DictConstants.NO);
         configPO.setShare(DictConstants.NO);//私有
+        //新增公私有展示
+        if (ObjectUtil.isNotNull(configVO.getVehicleArrayS())) {
+            configPO.setVehicleArray(StringUtils.join(Arrays.asList(configVO.getVehicleArrayS()), ','));
+        }
         //单独处理配置描述
         configPO.setDescription(configVO.getConfigDescription());
         //名称校验
@@ -237,7 +243,9 @@ public class ConfigService {
             VehicleParam vehicleParam = new VehicleParam();
             vehicleParam.setId(configPO.getVehicleId());
             VehicleVO vehicleInfo = vehicleMapper.getVehicleInfo(vehicleParam);
-            vehicleInfo.setVehicleType(vehicleInfo.getVehicleTypeStr().split(","));
+            if(ObjectUtil.isNotNull(vehicleInfo.getVehicleTypeStr())){
+                vehicleInfo.setVehicleType(vehicleInfo.getVehicleTypeStr().split(","));
+            }
             VehiclePO vehiclePO = vehicleService.shareVehicle(vehicleInfo);
             vehicleId = vehiclePO.getId();
         }
@@ -328,6 +336,10 @@ public class ConfigService {
             configPO.setModifyUserId(currentUserId);
             configPO.setModifyTime(currentTime);
             configPO.setIsDeleted(DictConstants.NO);
+            //新增公私有展示
+            if (ObjectUtil.isNotNull(configVO.getVehicleArrayS())) {
+                configPO.setVehicleArray(StringUtils.join(Arrays.asList(configVO.getVehicleArrayS()), ','));
+            }
             configMapper.updateConfig(configPO);
             LogUtil.update();
         } else {    // 为空说明是新增
@@ -337,6 +349,10 @@ public class ConfigService {
             configPO.setModifyUserId(currentUserId);
             configPO.setModifyTime(currentTime);
             configPO.setIsDeleted(DictConstants.NO);
+            //新增公私有展示
+            if (ObjectUtil.isNotNull(configVO.getVehicleArrayS())) {
+                configPO.setVehicleArray(StringUtils.join(Arrays.asList(configVO.getVehicleArrayS()), ','));
+            }
             // 单独处理配置描述
             configPO.setDescription(configVO.getConfigDescription());
             // 主表主键

+ 2 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/VehicleService.java

@@ -65,7 +65,9 @@ public class VehicleService {
         }
         VehiclePO vehiclePO = ObjectUtil.vehicleVoToVehiclePo(vehicleVO);
         //车辆模型字段解析
+        if(ObjectUtil.isNotNull(vehicleVO.getVehicleType())){
         vehiclePO.setVehicleType(StringUtils.join(Arrays.asList(vehicleVO.getVehicleType()), ','));
+        }
         //常规字段赋值
         String currentUserId = AuthUtil.getCurrentUserId();
         Timestamp currentTime = TimeUtil.getNowForMysql();

+ 338 - 300
simulation-resource-server/src/main/java/com/css/simulation/resource/project/impl/SimulationProjectServiceImpl.java

@@ -46,6 +46,7 @@ import feign.Response;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.kafka.clients.admin.Admin;
+import org.apache.tomcat.util.buf.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.kafka.core.KafkaTemplate;
 import org.springframework.scheduling.support.CronExpression;
@@ -218,7 +219,15 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
 
         SimulationManualProjectSingleVo vo = new SimulationManualProjectSingleVo();
         convertPoToVo(po, vo);
-
+        if (ObjectUtil.isNotNull(po.getAlgorithmArray())) {
+            vo.setAlgorithmArrayS(po.getAlgorithmArray().split(","));
+        }
+        if (ObjectUtil.isNotNull(po.getVehicleArray())) {
+            vo.setVehicleArrayS(po.getVehicleArray().split(","));
+        }
+        if (ObjectUtil.isNotNull(po.getSceneArray())) {
+            vo.setSceneArrayS(po.getSceneArray().split(","));
+        }
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, vo);
 
     }
@@ -1364,7 +1373,6 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
      * @param algorithmType 算法类型
      */
     private void setAlgorithmDropDown(List<DropDownTypeVo> result, String algorithmType) {
-
         List<DropDownVo> algorithmList = new ArrayList<>();
         if (DictConstants.FILE.equals(algorithmType) || DictConstants.GIT.equals(algorithmType)) {
             AlgorithmPO algorithmPO = new AlgorithmPO();
@@ -1503,6 +1511,16 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         po.setIsChoiceGpu(param.getIsChoiceGpu());
         po.setNowRunState(param.getNowRunState());
         po.setAlgorithmType(param.getAlgorithmType());
+
+        if (ObjectUtil.isNotNull(param.getVehicleArrayS())) {
+            po.setVehicleArray(StringUtils.join(Arrays.asList(param.getVehicleArrayS()), ','));
+        }
+        if (ObjectUtil.isNotNull(param.getAlgorithmArrayS())) {
+            po.setAlgorithmArray(StringUtils.join(Arrays.asList(param.getAlgorithmArrayS()), ','));
+        }
+        if (ObjectUtil.isNotNull(param.getSceneArrayS())) {
+            po.setSceneArray(StringUtils.join(Arrays.asList(param.getSceneArrayS()), ','));
+        }
         return po;
 
     }
@@ -2606,333 +2624,280 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
     @Override
     @SneakyThrows
     public void exportProjectReport(SimulationManualProjectParam param) {
-        Document document = new Document(PageSize.A4);
-        OutputStream os = null;
-        try {
-            HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
-
-            //获取要生成的数据
-            ResponseBodyVO bodyVO = selectProjectReportById(param);
-            ProjectReportVo vo = (ProjectReportVo) bodyVO.getInfo();
-
-            //下载 or 保存本地
-            if (param.getIsCreateLocalPdfFile() != null && param.getIsCreateLocalPdfFile()) {
-                File file = new File(param.getLocalPdfFilePath());
-                os = new BufferedOutputStream(Files.newOutputStream(file.toPath()));
-            } else {
-                String fileName = vo.getProjectId() + "_" + vo.getProjectName();
-                response.setContentType("application/x-download");
-                response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") + ".pdf");
-                os = new BufferedOutputStream(response.getOutputStream());
-            }
-
-
-            // 监听生成pdf数据
-            PdfWriter.getInstance(document, os);
-
-            // 以下生成PDF
-            BaseFont font = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
-
-            //标题
-            document.open();
-            Font titleFont = new Font(font, 20); //字体
-            Paragraph titleElements = new Paragraph("评价报告", titleFont);
-            titleElements.setAlignment(Element.ALIGN_CENTER); //居中
-            document.add(titleElements);
-
-
-            //算法名称、算法得分、测试等级
-            Paragraph algorithmNanmeElements = new Paragraph(
-                    50,
-                    "          算法名称:" + vo.getAlgorithmName()
-                            + "         算法得分:" + vo.getAlgorithmScore()
-                            + "         测试等级:" + vo.getEvaluationLevel(),
-                    defaultFont(font));
-            algorithmNanmeElements.setAlignment(Element.ALIGN_LEFT); //靠左
-            document.add(algorithmNanmeElements);
-
-
-            //算法描述
-            Paragraph algorithmDescribeFontElements = new Paragraph(
-                    30,
-                    "          算法描述:" + vo.getAlgorithmDescribe(),
-                    defaultFont(font));
-            algorithmDescribeFontElements.setAlignment(Element.ALIGN_LEFT); //居中
-            document.add(algorithmDescribeFontElements);
-
-            //算法简评
-            Font algorithmEvaluateFont = new Font(font, 14); //字体
-            Paragraph algorithmEvaluateElements = new Paragraph(
-                    30,
-                    "          算法简评:" + vo.getAlgorithmEvaluation(),
-                    algorithmEvaluateFont);
-            algorithmEvaluateElements.setAlignment(Element.ALIGN_LEFT); //居中
-            document.add(algorithmEvaluateElements);
 
+        OutputStream os;
+        HttpServletResponse response = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getResponse();
+        //获取要生成的数据
+        ResponseBodyVO<ProjectReportVo> bodyVO = selectProjectReportById(param);
+        ProjectReportVo vo = bodyVO.getInfo();
+        //下载 or 保存本地
+        if (param.getIsCreateLocalPdfFile() != null && param.getIsCreateLocalPdfFile()) {
+            File file = new File(param.getLocalPdfFilePath());
+            os = new BufferedOutputStream(Files.newOutputStream(file.toPath()));
+        } else {
+            String fileName = vo.getProjectId() + "_" + vo.getProjectName();
+            response.setContentType("application/x-download");
+            response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") + ".pdf");
+            os = new BufferedOutputStream(response.getOutputStream());
+        }
+        // 监听生成pdf数据
+        Document document = new Document(PageSize.A4);
+        document.open();
+        PdfWriter.getInstance(document, os);
+        BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
+        //* -------------------------------- 第一页 --------------------------------
+        Paragraph paragraph1 = new Paragraph("评价报告", new Font(baseFont, 20));
+        paragraph1.setAlignment(Element.ALIGN_CENTER); //居中
+        document.add(paragraph1);
+
+//        // 新的一页,横向显示
+//        document.setPageSize(PageSize.A4.rotate());
+//        document.newPage();
+
+        //算法名称、算法得分、测试等级
+        Paragraph algorithmNanmeElements = new Paragraph(
+                50,
+                "          算法名称:" + vo.getAlgorithmName()
+                        + "         算法得分:" + vo.getAlgorithmScore()
+                        + "         测试等级:" + vo.getEvaluationLevel(),
+                defaultFont(baseFont));
+        algorithmNanmeElements.setAlignment(Element.ALIGN_LEFT); //靠左
+        document.add(algorithmNanmeElements);
+        //算法描述
+        Paragraph algorithmDescribeFontElements = new Paragraph(
+                30,
+                "          算法描述:" + vo.getAlgorithmDescribe(),
+                defaultFont(baseFont));
+        algorithmDescribeFontElements.setAlignment(Element.ALIGN_LEFT); //居中
+        document.add(algorithmDescribeFontElements);
+        //算法简评
+        Font algorithmEvaluateFont = new Font(baseFont, 14); //字体
+        Paragraph algorithmEvaluateElements = new Paragraph(
+                30,
+                "          算法简评:" + vo.getAlgorithmEvaluation(),
+                algorithmEvaluateFont);
+        algorithmEvaluateElements.setAlignment(Element.ALIGN_LEFT); //居中
+        document.add(algorithmEvaluateElements);
             /*
             测试得分表
              */
-            Paragraph scoreTableElements = new Paragraph(
-                    50,
-                    "测试得分表",
-                    defaultFont(font));
-            scoreTableElements.setAlignment(Element.ALIGN_CENTER); //居中
-            document.add(scoreTableElements);
-
-            setBlankLineSpacing(20, font, document);
-
-            // 表头
-            PdfPTable pdfPTable = new PdfPTable(5);
-            pdfPTable.setHeaderRows(1);//换页每页显示表头
-            addTitleList(pdfPTable, font, new String[]{"测试项目", "场景数量", "测试权重(%)", "测试得分", "得分率(%)"});
-
-            // 数据
-            List<AlgorithmScoreVo> algorithmScoreList = vo.getAlgorithmScoreList();
-            for (AlgorithmScoreVo asv : algorithmScoreList) {
-                String[] data = new String[]{
-                        asv.getProjectName(), String.valueOf(asv.getSceneNum()), asv.getWeight(), String.valueOf(asv.getScore()), String.valueOf(asv.getScoreRatio())
-                };
-
-                addDataList(pdfPTable, font, data);
-            }
-            document.add(pdfPTable);
-
-            // 评价等级(已去掉)
-//            Paragraph levelTableElements = new Paragraph(
-//                    50,
-//                    "评价等级",
-//                    defaultFont(font));
-//            levelTableElements.setAlignment(Element.ALIGN_CENTER); //居中
-//            document.add(levelTableElements);
-//
-//            setBlankLineSpacing(20, font, document);
-//
-//            PdfPTable pdfPTable1 = new PdfPTable(5);
-//            addTitleList(pdfPTable1, font, new String[]{"测试项目", "90<总分<100", "80<总分<90", "70<总分<80", "0<总分<70"});
-//            addDataList(pdfPTable1, font, new String[]{"评价等级", "优秀(G)", "良好(A)", "一般(M)", "较差(P)",
-//                    "评价等级", "++++++", "+++++", "++++", "+++",});
-//            document.add(pdfPTable1);
-
-
-            // 新的一页,横向显示
-            document.setPageSize(PageSize.A4.rotate());
-            document.newPage();
-
-            // 算法测试评分细则(指标得分列表)
-            Paragraph subListScoreElements = new Paragraph(
-                    50,
-                    "算法测试评分细则",
-                    defaultFont(font));
-            subListScoreElements.setAlignment(Element.ALIGN_CENTER); //居中
-            document.add(subListScoreElements);
-            setBlankLineSpacing(20, font, document);
-            List<Map> subListScoreLiTitle = vo.getSubListScoreLiTitle();
-            int size = subListScoreLiTitle.size();
-            PdfPTable pdfPTable2 = new PdfPTable(size);
-            pdfPTable2.setHeaderRows(1);
-            String[] slt = new String[size];
+        Paragraph scoreTableElements = new Paragraph(
+                50,
+                "测试得分表",
+                defaultFont(baseFont));
+        scoreTableElements.setAlignment(Element.ALIGN_CENTER); //居中
+        document.add(scoreTableElements);
+        setBlankLineSpacing(20, baseFont, document);
+        // 表头
+        PdfPTable pdfPTable = new PdfPTable(5);
+        pdfPTable.setHeaderRows(1);//换页每页显示表头
+        addTitleList(pdfPTable, baseFont, new String[]{"测试项目", "场景数量", "测试权重(%)", "测试得分", "得分率(%)"});
+
+        // 数据
+        List<AlgorithmScoreVo> algorithmScoreList = vo.getAlgorithmScoreList();
+        for (AlgorithmScoreVo asv : algorithmScoreList) {
+            String[] data = new String[]{
+                    asv.getProjectName(), String.valueOf(asv.getSceneNum()), asv.getWeight(), String.valueOf(asv.getScore()), String.valueOf(asv.getScoreRatio())
+            };
+            addDataList(pdfPTable, baseFont, data);
+        }
+        document.add(pdfPTable);
+
+        // 新的一页,横向显示
+        document.setPageSize(PageSize.A4.rotate());
+        document.newPage();
+
+        // 算法测试评分细则(指标得分列表)
+        Paragraph subListScoreElements = new Paragraph(
+                50,
+                "算法测试评分细则",
+                defaultFont(baseFont));
+        subListScoreElements.setAlignment(Element.ALIGN_CENTER); //居中
+        document.add(subListScoreElements);
+        setBlankLineSpacing(20, baseFont, document);
+        List<Map> subListScoreLiTitle = vo.getSubListScoreLiTitle();
+        int size = subListScoreLiTitle.size();
+        PdfPTable pdfPTable2 = new PdfPTable(size);
+        pdfPTable2.setHeaderRows(1);
+        String[] slt = new String[size];
+        for (int i = 0; i < size; i++) {
+            slt[i] = subListScoreLiTitle.get(i).get("label").toString();
+        }
+        addTitleList(pdfPTable2, baseFont, slt);
+        List<SubScListVo> subListScoreLi = vo.getSubListScoreLi();
+        List<String[]> list = new ArrayList<>();
+        int fieldNumber = 7;
+        for (SubScListVo slv : subListScoreLi) {
+            String[] slsi = new String[size];
             for (int i = 0; i < size; i++) {
-                slt[i] = subListScoreLiTitle.get(i).get("label").toString();
+                slsi[i] = "";
             }
-            addTitleList(pdfPTable2, font, slt);
-            List<SubScListVo> subListScoreLi = vo.getSubListScoreLi();
-            List<String[]> list = new ArrayList<>();
-            int fieldNumber = 7;
-            for (SubScListVo slv : subListScoreLi) {
-                String[] slsi = new String[size];
-                for (int i = 0; i < size; i++) {
-                    slsi[i] = "";
-                }
-                //目前最多支持到6级指标
-                for (int i = 0; i < size - fieldNumber; i++) {
-                    if (i == 0) {
-                        if (slv.getSublistName1() != null) {
-                            slsi[i] = slv.getSublistName1();
-                        }
-                    } else if (i == 1) {
-                        if (slv.getSublistName2() != null) {
-                            slsi[i] = slv.getSublistName2();
-                        }
-                    } else if (i == 2) {
-                        if (slv.getSublistName3() != null) {
-                            slsi[i] = slv.getSublistName3();
-                        }
-                    } else if (i == 3) {
-                        if (slv.getSublistName4() != null) {
-                            slsi[i] = slv.getSublistName4();
-                        }
-                    } else if (i == 4) {
-                        if (slv.getSublistName5() != null) {
-                            slsi[i] = slv.getSublistName5();
-                        }
-                    } else if (i == 5) {
-                        if (slv.getSublistName6() != null) {
-                            slsi[i] = slv.getSublistName6();
-                        }
+            //目前最多支持到6级指标
+            for (int i = 0; i < size - fieldNumber; i++) {
+                if (i == 0) {
+                    if (slv.getSublistName1() != null) {
+                        slsi[i] = slv.getSublistName1();
+                    }
+                } else if (i == 1) {
+                    if (slv.getSublistName2() != null) {
+                        slsi[i] = slv.getSublistName2();
+                    }
+                } else if (i == 2) {
+                    if (slv.getSublistName3() != null) {
+                        slsi[i] = slv.getSublistName3();
+                    }
+                } else if (i == 3) {
+                    if (slv.getSublistName4() != null) {
+                        slsi[i] = slv.getSublistName4();
+                    }
+                } else if (i == 4) {
+                    if (slv.getSublistName5() != null) {
+                        slsi[i] = slv.getSublistName5();
+                    }
+                } else if (i == 5) {
+                    if (slv.getSublistName6() != null) {
+                        slsi[i] = slv.getSublistName6();
                     }
                 }
-                slsi[size - 7] = slv.getSceneNum();
-                slsi[size - 6] = slv.getErrorSceneNum();
-                slsi[size - 5] = slv.getNotScoredSceneNum();
-                slsi[size - 4] = slv.getNotStandardSceneNum();
-                slsi[size - 3] = slv.getStandardSceneNum();
-                slsi[size - 2] = slv.getLastScore();
-                slsi[size - 1] = slv.getFirstScore();
-
-                list.add(slsi);
-
-//                addDataList(pdfPTable2, font, slsi);
             }
+            slsi[size - 7] = slv.getSceneNum();
+            slsi[size - 6] = slv.getErrorSceneNum();
+            slsi[size - 5] = slv.getNotScoredSceneNum();
+            slsi[size - 4] = slv.getNotStandardSceneNum();
+            slsi[size - 3] = slv.getStandardSceneNum();
+            slsi[size - 2] = slv.getLastScore();
+            slsi[size - 1] = slv.getFirstScore();
 
+            list.add(slsi);
+        }
 
-            Map map = getSubScListCombineCoord(subListScoreLi, size);
-
-            Map<String, Integer> combineCoordList = (Map<String, Integer>) map.get("combineCoordList");
-            List<String> skipCoordList = (List<String>) map.get("skipCoordList");
-
-            for (int i = 0; i < list.size(); i++) {
-                String[] strings = list.get(i);
-                for (int j = 0; j < strings.length; j++) {
-                    String coord = i + "," + j;
-
-                    //是否要跳过
-                    boolean contains = skipCoordList.contains(coord);
-                    if (contains) {
-                        continue;
-                    }
-                    PdfPCell pdfPCell = new PdfPCell(new Paragraph(strings[j], defaultFont(font)));
 
-                    //是否要合并
-                    Integer n = combineCoordList.get(coord);
-                    if (n != null) {
-                        pdfPCell.setRowspan(n);
-                    }
+        Map map = getSubScListCombineCoord(subListScoreLi, size);
 
-                    pdfPTable2.addCell(pdfPCell);
+        Map<String, Integer> combineCoordList = (Map<String, Integer>) map.get("combineCoordList");
+        List<String> skipCoordList = (List<String>) map.get("skipCoordList");
 
+        for (int i = 0; i < list.size(); i++) {
+            String[] strings = list.get(i);
+            for (int j = 0; j < strings.length; j++) {
+                String coord = i + "," + j;
 
+                //是否要跳过
+                boolean contains = skipCoordList.contains(coord);
+                if (contains) {
+                    continue;
                 }
+                PdfPCell pdfPCell = new PdfPCell(new Paragraph(strings[j], defaultFont(baseFont)));
+                //是否要合并
+                Integer n = combineCoordList.get(coord);
+                if (n != null) {
+                    pdfPCell.setRowspan(n);
+                }
+                pdfPTable2.addCell(pdfPCell);
             }
+        }
 
-            document.add(pdfPTable2);
+        document.add(pdfPTable2);
 
             /*
             场景得分列表
              */
-            Paragraph sceneScoreElements = new Paragraph(50, "详细得分情况", defaultFont(font));
-            sceneScoreElements.setAlignment(Element.ALIGN_CENTER); //居中
-            document.add(sceneScoreElements);
-
-            setBlankLineSpacing(20, font, document);
+        Paragraph sceneScoreElements = new Paragraph(50, "详细得分情况", defaultFont(baseFont));
+        sceneScoreElements.setAlignment(Element.ALIGN_CENTER); //居中
+        document.add(sceneScoreElements);
 
-            List<Map> scoreLiTitle = vo.getSceneScoreLiTitle();
-            int size2 = scoreLiTitle.size();
-            PdfPTable pdfPTable3 = new PdfPTable(size2);
-            pdfPTable3.setHeaderRows(1);
-            String[] slt2 = new String[size2];
-            for (int i = 0; i < size2; i++) {
-                slt2[i] = scoreLiTitle.get(i).get("label").toString();
-            }
-            addTitleList(pdfPTable3, font, slt2);
-            List<SceneScListVo> sceneScoreLi = vo.getSceneScoreLi();
+        setBlankLineSpacing(20, baseFont, document);
 
-            List<String[]> list2 = new ArrayList<>();
-
-            for (SceneScListVo sslv : sceneScoreLi) {
-                String[] ssli = new String[size2];
-                for (int i = 0; i < size2; i++) {
-                    ssli[i] = "";
-                }
-                //目前最多支持到6级指标
-                for (int i = 0; i < size2 - 5; i++) {
-                    if (i == 0) {
-                        if (sslv.getSublistName1() != null) {
-                            ssli[i] = sslv.getSublistName1();
-                        }
+        List<Map> scoreLiTitle = vo.getSceneScoreLiTitle();
+        int size2 = scoreLiTitle.size();
+        PdfPTable pdfPTable3 = new PdfPTable(size2);
+        pdfPTable3.setHeaderRows(1);
+        String[] slt2 = new String[size2];
+        for (int i = 0; i < size2; i++) {
+            slt2[i] = scoreLiTitle.get(i).get("label").toString();
+        }
+        addTitleList(pdfPTable3, baseFont, slt2);
+        List<SceneScListVo> sceneScoreLi = vo.getSceneScoreLi();
 
-                    } else if (i == 1) {
-                        if (sslv.getSublistName2() != null) {
-                            ssli[i] = sslv.getSublistName2();
-                        }
+        List<String[]> list2 = new ArrayList<>();
 
-                    } else if (i == 2) {
-                        if (sslv.getSublistName3() != null) {
-                            ssli[i] = sslv.getSublistName3();
-                        }
+        for (SceneScListVo sslv : sceneScoreLi) {
+            String[] ssli = new String[size2];
+            for (int i = 0; i < size2; i++) {
+                ssli[i] = "";
+            }
+            //目前最多支持到6级指标
+            for (int i = 0; i < size2 - 5; i++) {
+                if (i == 0) {
+                    if (sslv.getSublistName1() != null) {
+                        ssli[i] = sslv.getSublistName1();
+                    }
 
-                    } else if (i == 3) {
-                        if (sslv.getSublistName4() != null) {
-                            ssli[i] = sslv.getSublistName4();
-                        }
+                } else if (i == 1) {
+                    if (sslv.getSublistName2() != null) {
+                        ssli[i] = sslv.getSublistName2();
+                    }
 
-                    } else if (i == 4) {
-                        if (sslv.getSublistName5() != null) {
-                            ssli[i] = sslv.getSublistName5();
-                        }
+                } else if (i == 2) {
+                    if (sslv.getSublistName3() != null) {
+                        ssli[i] = sslv.getSublistName3();
+                    }
 
-                    } else if (i == 5) {
-                        if (sslv.getSublistName6() != null) {
-                            ssli[i] = sslv.getSublistName6();
-                        }
+                } else if (i == 3) {
+                    if (sslv.getSublistName4() != null) {
+                        ssli[i] = sslv.getSublistName4();
+                    }
 
+                } else if (i == 4) {
+                    if (sslv.getSublistName5() != null) {
+                        ssli[i] = sslv.getSublistName5();
                     }
-                }
-                ssli[size2 - 5] = sslv.getSceneId();
-                ssli[size2 - 4] = sslv.getSceneIdType();
-                ssli[size2 - 3] = sslv.getSceneScore();
-                ssli[size2 - 2] = sslv.getTargetEvaluate();
-                ssli[size2 - 1] = sslv.getScoreExplain();
 
-                list2.add(ssli);
+                } else if (i == 5) {
+                    if (sslv.getSublistName6() != null) {
+                        ssli[i] = sslv.getSublistName6();
+                    }
 
-//                addDataList(pdfPTable3, font, ssli);
+                }
             }
+            ssli[size2 - 5] = sslv.getSceneId();
+            ssli[size2 - 4] = sslv.getSceneIdType();
+            ssli[size2 - 3] = sslv.getSceneScore();
+            ssli[size2 - 2] = sslv.getTargetEvaluate();
+            ssli[size2 - 1] = sslv.getScoreExplain();
 
-            Map map2 = getSceneScListCombineCoord(sceneScoreLi, size2);
-
-            Map<String, Integer> combineCoordList2 = (Map<String, Integer>) map2.get("combineCoordList");
-            List<String> skipCoordList2 = (List<String>) map2.get("skipCoordList");
+            list2.add(ssli);
 
-            boolean b2 = false;
-            int num2 = 0;
-            for (int i = 0; i < list2.size(); i++) {
-                String[] strings = list2.get(i);
-                for (int j = 0; j < strings.length; j++) {
-                    String coord = i + "," + j;
+        }
 
-                    //是否要跳过
-                    boolean contains = skipCoordList2.contains(coord);
-                    if (contains) {
-                        continue;
-                    }
-                    PdfPCell pdfPCell = new PdfPCell(new Paragraph(strings[j], defaultFont(font)));
-                    //是否要合并
-                    Integer n = combineCoordList2.get(coord);
-                    if (n != null) {
-                        pdfPCell.setRowspan(n);
-                    }
+        Map map2 = getSceneScListCombineCoord(sceneScoreLi, size2);
 
-                    pdfPTable3.addCell(pdfPCell);
+        Map<String, Integer> combineCoordList2 = (Map<String, Integer>) map2.get("combineCoordList");
+        List<String> skipCoordList2 = (List<String>) map2.get("skipCoordList");
 
+        for (int i = 0; i < list2.size(); i++) {
+            String[] strings = list2.get(i);
+            for (int j = 0; j < strings.length; j++) {
+                String coord = i + "," + j;
 
+                //是否要跳过
+                boolean contains = skipCoordList2.contains(coord);
+                if (contains) {
+                    continue;
+                }
+                PdfPCell pdfPCell = new PdfPCell(new Paragraph(strings[j], defaultFont(baseFont)));
+                //是否要合并
+                Integer n = combineCoordList2.get(coord);
+                if (n != null) {
+                    pdfPCell.setRowspan(n);
                 }
-            }
 
-            document.add(pdfPTable3);
+                pdfPTable3.addCell(pdfPCell);
 
 
-        } catch (Exception e) {
-            e.printStackTrace();
-
-        } finally {
-            document.close();
-            try {
-                os.close();
-            } catch (IOException e) {
-                e.printStackTrace();
             }
         }
-
+        document.add(pdfPTable3);
     }
 
 
@@ -4410,7 +4375,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
      * @param algorithmType 算法类型
      */
     private void setAlgorithmDropDownNew(List<DropDownTypeNewVo> result, String algorithmType) {
-
+        List<Map> treeList = new ArrayList<>();
         List<DropDownVo> algorithmListSy = new ArrayList<>();
         List<DropDownVo> algorithmListGy = new ArrayList<>();
         if (DictConstants.FILE.equals(algorithmType) || DictConstants.GIT.equals(algorithmType)) {
@@ -4452,7 +4417,34 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
             algorithmListSy = getOtherAlgorithmInfo(urlParam);
 
         }
-        List<DropDownNewVo> listGSy = new ArrayList<>();
+
+        Map typeMap = new HashMap();
+        typeMap.put("code", "公有");
+        typeMap.put("name", "公有");
+        List<Map> colourList = new LinkedList();
+        algorithmListGy.forEach(vo -> {
+            Map colourMap = new HashMap();
+            colourMap.put("code",vo.getId());
+            colourMap.put("name", vo.getName());
+            colourMap.put("vo", vo);
+            colourList.add(colourMap);
+        });
+        typeMap.put("children", colourList);
+        Map typeMap1 = new HashMap();
+        typeMap1.put("code", "私有");
+        typeMap1.put("name", "私有");
+        List<Map> colourList1 = new LinkedList();
+        algorithmListSy.forEach(vo -> {
+            Map colourMap = new HashMap();
+            colourMap.put("code",vo.getId());
+            colourMap.put("name", vo.getName());
+            colourMap.put("vo", vo);
+            colourList1.add(colourMap);
+        });
+        typeMap1.put("children",colourList1 );
+        treeList.add(typeMap);
+        treeList.add(typeMap1);
+     /*   List<DropDownNewVo> listGSy = new ArrayList<>();
         DropDownNewVo dropDownNewSyVo = new DropDownNewVo();
         dropDownNewSyVo.setLabel("私有");
         dropDownNewSyVo.setOptions(algorithmListSy);
@@ -4460,15 +4452,16 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         DropDownNewVo dropDownNewGyVo = new DropDownNewVo();
         dropDownNewGyVo.setLabel("公有");
         dropDownNewGyVo.setOptions(algorithmListGy);
-        listGSy.add(dropDownNewGyVo);
+        listGSy.add(dropDownNewGyVo);*/
         DropDownTypeNewVo dropDownTypeNewVo = new DropDownTypeNewVo();
-        dropDownTypeNewVo.setDropDownList(listGSy);
+        dropDownTypeNewVo.setDropDownList(treeList);
         dropDownTypeNewVo.setType("1");
         result.add(dropDownTypeNewVo);
 
     }
 
     private void setVehicleDropDownNew(List<DropDownTypeNewVo> result, String ConfigId) {
+        List<Map> treeList = new ArrayList<>();
         ConfigPO configPO = new ConfigPO();
         if (StringUtil.isNotEmpty(ConfigId)) {
             configPO.setId(ConfigId);
@@ -4521,7 +4514,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
 
             vehicleGyList.add(dropDownVo);
         }
-        List<DropDownNewVo> listGSy = new ArrayList<>();
+       /* List<DropDownNewVo> listGSy = new ArrayList<>();
         DropDownNewVo dropDownNewSyVo = new DropDownNewVo();
         dropDownNewSyVo.setLabel("私有");
         dropDownNewSyVo.setOptions(vehicleSyList);
@@ -4529,14 +4522,42 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         DropDownNewVo dropDownNewGyVo = new DropDownNewVo();
         dropDownNewGyVo.setLabel("公有");
         dropDownNewGyVo.setOptions(vehicleGyList);
-        listGSy.add(dropDownNewGyVo);
+        listGSy.add(dropDownNewGyVo);*/
+        Map typeMap = new HashMap();
+        typeMap.put("code", "公有");
+        typeMap.put("name", "公有");
+        List<Map> colourList = new LinkedList();
+        vehicleGyList.forEach(vo -> {
+            Map colourMap = new HashMap();
+            colourMap.put("code",vo.getId());
+            colourMap.put("name", vo.getName());
+            colourMap.put("vo", vo);
+            colourList.add(colourMap);
+        });
+        typeMap.put("children", colourList);
+        Map typeMap1 = new HashMap();
+        typeMap1.put("code", "私有");
+        typeMap1.put("name", "私有");
+        List<Map> colourList1 = new LinkedList();
+        vehicleSyList.forEach(vo -> {
+            Map colourMap = new HashMap();
+            colourMap.put("code",vo.getId());
+            colourMap.put("name", vo.getName());
+            colourMap.put("vo", vo);
+            colourList1.add(colourMap);
+        });
+        typeMap1.put("children",colourList1 );
+        treeList.add(typeMap);
+        treeList.add(typeMap1);
+
         DropDownTypeNewVo dropDownTypeNewVo = new DropDownTypeNewVo();
-        dropDownTypeNewVo.setDropDownList(listGSy);
+        dropDownTypeNewVo.setDropDownList(treeList);
         dropDownTypeNewVo.setType("2");
         result.add(dropDownTypeNewVo);
     }
 
     private void setScenePackageDropDownNew(List<DropDownTypeNewVo> result) {
+        List<Map> treeList = new ArrayList<>();
         ScenePackagePO scenePackagePO = new ScenePackagePO();
         scenePackagePO.setCreateUserId(AuthUtil.getCurrentUserId());
         List<ScenePackagePO> scenePackageBaseSyVo = simulationProjectMapper.selectScenePackageBaseByIdSy(scenePackagePO);
@@ -4559,17 +4580,34 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
             dropDownVo.setShare(v.getShare());
             scenePackageGyList.add(dropDownVo);
         }
-        List<DropDownNewVo> listGSy = new ArrayList<>();
-        DropDownNewVo dropDownNewSyVo = new DropDownNewVo();
-        dropDownNewSyVo.setLabel("私有");
-        dropDownNewSyVo.setOptions(scenePackageSyList);
-        listGSy.add(dropDownNewSyVo);
-        DropDownNewVo dropDownNewGyVo = new DropDownNewVo();
-        dropDownNewGyVo.setLabel("公有");
-        dropDownNewGyVo.setOptions(scenePackageGyList);
-        listGSy.add(dropDownNewGyVo);
+        Map typeMap = new HashMap();
+        typeMap.put("code", "公有");
+        typeMap.put("name", "公有");
+        List<Map> colourList = new LinkedList();
+        scenePackageGyList.forEach(vo -> {
+            Map colourMap = new HashMap();
+            colourMap.put("code",vo.getId());
+            colourMap.put("name", vo.getName());
+            colourMap.put("vo", vo);
+            colourList.add(colourMap);
+        });
+        typeMap.put("children", colourList);
+        Map typeMap1 = new HashMap();
+        typeMap1.put("code", "私有");
+        typeMap1.put("name", "私有");
+        List<Map> colourList1 = new LinkedList();
+        scenePackageSyList.forEach(vo -> {
+            Map colourMap = new HashMap();
+            colourMap.put("code",vo.getId());
+            colourMap.put("name", vo.getName());
+            colourMap.put("vo", vo);
+            colourList1.add(colourMap);
+        });
+        typeMap1.put("children",colourList1 );
+        treeList.add(typeMap);
+        treeList.add(typeMap1);
         DropDownTypeNewVo dropDownTypeNewVo = new DropDownTypeNewVo();
-        dropDownTypeNewVo.setDropDownList(listGSy);
+        dropDownTypeNewVo.setDropDownList(treeList);
         dropDownTypeNewVo.setType("3");
         result.add(dropDownTypeNewVo);
     }

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

@@ -162,4 +162,39 @@ public class ScenePackageController {
         }
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, map);
     }
+
+    /**
+     * 1. 新增场景测试包
+     * 2. 修改保存
+     * 3. 私有另存为成私有
+     * 4. 公有另存为成私有
+     */
+    @PostMapping("/saveScenePackageNew")
+    public ResponseBodyVO<String> saveScenePackageNew(@RequestBody Map<String, List<ScenePackageSublistVO>> map) {
+        List<ScenePackageSublistVO> params = map.get("params");
+        ScenePackageSublistVO scenePackageSublistVO = params.get(0);
+        String packageId = scenePackageSublistVO.getId();
+        int packageLevel = scenePackageSublistVO.getPackageLevel();
+        sceneUtil.checkRules(packageId);
+        if ("1".equals(packageId)) {
+            log.info("新增场景测试包(传 id 为 1)");
+            params.get(0).setId("");
+            scenePackageService.saveScenePackage(scenePackageSublistVO, packageLevel);
+        } else if (0 == packageLevel) {
+            log.info("修改保存。");
+            scenePackageService.updateScenePackage(params);
+        } else if (1 == packageLevel) {
+            log.info("私有另存为成私有 或 公有另存为成私有");
+            params.get(0).setId("");
+            scenePackageService.saveScenePackage(scenePackageSublistVO, packageLevel);
+        }
+        // 将场景测试包修改成未禁用
+        ScenePackagePO scenePackagePO = new ScenePackagePO();
+        scenePackagePO.setPackageId(packageId);
+        scenePackagePO.setModifyTime(TimeUtil.getNowForMysql());
+        scenePackagePO.setModifyUserId(AuthUtil.getCurrentUserId());
+        scenePackageMapper.updateIsUnavailable2(scenePackagePO);
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
+    }
+
 }

+ 9 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/ScoringRulesController.java

@@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 //打分规则
 @RestController
@@ -151,6 +152,14 @@ public class ScoringRulesController {
         List<ScoringRulesPO> list = scoringRulesService.queryScoringRulesListCSB(params);
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, list);
     }
+    //测试包里面对应查询打分规则列表
+    @PostMapping("/queryCsbNew")
+    @ResponseBody
+    public ResponseBodyVO<List<Map>> queryCsbNew() {
+        ScoringRulesParam params = new ScoringRulesParam();
+        params.setShare("0");
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, scoringRulesService.queryScoringRulesListCSBNew(params));
+    }
 
     //该打分规则是否被引用
     @PostMapping("/queryCsbById")

+ 44 - 1
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/ScoringRulesService.java

@@ -11,7 +11,7 @@ import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
-import java.util.List;
+import java.util.*;
 
 @Slf4j
 @Service
@@ -97,4 +97,47 @@ public class ScoringRulesService {
         Integer num = scoringRulesMapper.queryCsbById(params);
         return num;
     }
+
+    @SneakyThrows
+    public List<Map> queryScoringRulesListCSBNew(ScoringRulesParam params) {
+        if (params != null && params.getShare() != null && params.getShare().equals("0")) {
+            params.setCreateUserId(AuthUtil.getCurrentUserId());
+        }
+        List<Map> treeList = new ArrayList<>();
+        List<ScoringRulesPO> listSy = scoringRulesMapper.queryScoringRulesList(params);
+
+        //查询共有
+        params.setCreateUserId("");
+        params.setShare("1");
+        List<ScoringRulesPO> listGy = scoringRulesMapper.queryScoringRulesList(params);
+
+        Map typeMap = new HashMap();
+        typeMap.put("code", "公有");
+        typeMap.put("name", "公有");
+        List<Map> colourList = new LinkedList();
+        listGy.forEach(vo -> {
+            Map colourMap = new HashMap();
+            colourMap.put("code",vo.getRulesId());
+            colourMap.put("name", vo.getRuleName());
+            colourMap.put("vo", vo);
+            colourList.add(colourMap);
+        });
+        typeMap.put("children", colourList);
+        Map typeMap1 = new HashMap();
+        typeMap1.put("code", "私有");
+        typeMap1.put("name", "私有");
+        List<Map> colourList1 = new LinkedList();
+        listSy.forEach(vo -> {
+            Map colourMap = new HashMap();
+            colourMap.put("code",vo.getRulesId());
+            colourMap.put("name", vo.getRuleName());
+            colourMap.put("vo", vo);
+            colourList1.add(colourMap);
+        });
+        typeMap1.put("children",colourList1 );
+        treeList.add(typeMap);
+        treeList.add(typeMap1);
+        return treeList;
+    }
+
 }

+ 1 - 0
simulation-resource-server/src/main/resources/mapper/model/ConfigMapper.xml

@@ -155,6 +155,7 @@
             config_name = #{configName,jdbcType=VARCHAR},
             description = #{description,jdbcType=VARCHAR},
             vehicle_id = #{vehicleId,jdbcType=VARCHAR},
+            vehicle_array = #{vehicleArray,jdbcType=VARCHAR},
             modify_time = #{modifyTime,jdbcType=TIMESTAMP},
             modify_user_id = #{modifyUserId,jdbcType=VARCHAR}
         where id = #{id,jdbcType=VARCHAR}

+ 26 - 13
simulation-resource-server/src/main/resources/mapper/project/SimulationProjectMapper.xml

@@ -32,7 +32,10 @@
          create_user_id,
          modify_time,
          modify_user_id,
-         is_deleted)
+         is_deleted,
+         algorithm_array,
+         vehicle_array,
+         scene_array)
         values (#{id,jdbcType=VARCHAR},
                 #{projectDate,jdbcType=INTEGER},
                 #{projectNum,jdbcType=INTEGER},
@@ -59,7 +62,11 @@
                 #{createUserId,jdbcType=VARCHAR},
                 #{modifyTime,jdbcType=TIMESTAMP},
                 #{modifyUserId,jdbcType=VARCHAR},
-                #{isDeleted,jdbcType=VARCHAR})
+                #{isDeleted,jdbcType=VARCHAR},
+                #{algorithmArray,jdbcType=VARCHAR},
+                #{vehicleArray,jdbcType=VARCHAR},
+                #{sceneArray,jdbcType=VARCHAR}
+                )
     </insert>
 
     <!--修改-->
@@ -73,7 +80,10 @@
             scene               = #{scene,jdbcType=VARCHAR},
             max_simulation_time = #{maxSimulationTime,jdbcType=BIGINT},
             parallelism         = #{parallelism,jdbcType=VARCHAR},
-            is_choice_gpu       = #{isChoiceGpu,jdbcType=VARCHAR}
+            is_choice_gpu       = #{isChoiceGpu,jdbcType=VARCHAR},
+            algorithm_array       = #{algorithmArray,jdbcType=VARCHAR},
+            vehicle_array       = #{vehicleArray,jdbcType=VARCHAR},
+            scene_array       = #{sceneArray,jdbcType=VARCHAR}
         where id = #{id,jdbcType=VARCHAR}
           and is_deleted = '0'
     </update>
@@ -198,7 +208,10 @@
                modify_time,
                modify_user_id,
                is_deleted,
-               details
+               details,
+               algorithm_array,
+               vehicle_array,
+               scene_array
         from simulation_manual_project
         where id = #{id,jdbcType=VARCHAR}
           and is_deleted = '0'
@@ -712,22 +725,22 @@
 
     <!--获取车辆配置信息-->
     <select id="selectConfigVehicleGy" resultType="api.common.pojo.po.model.ConfigPO">
-       select id, config_name, vehicle_id, description,share,modify_time
-        from model_config
-        where  is_deleted = '0' and share='1' order by modify_time desc
+        select a.id, a.config_name, a.vehicle_id, a.description,a.share,a.modify_time
+        from model_config a left join model_vehicle b on a.vehicle_id=b.id
+        where a.is_deleted = '0' and a.share='1' and b.is_deleted='0'   order by a.modify_time desc
     </select>
     <select id="selectConfigVehicleSy" resultType="api.common.pojo.po.model.ConfigPO">
 
-        select id, config_name, vehicle_id, description,share,modify_time
-        from model_config
-        where  is_deleted = '0' and share='0'
+        select a.id, a.config_name, a.vehicle_id, a.description,a.share,a.modify_time
+        from model_config a left join model_vehicle b on a.vehicle_id=b.id
+        where a.is_deleted = '0' and a.share='0' and b.is_deleted='0'
         <if test="id != null and id != ''">
-            and id = #{id,jdbcType=VARCHAR}
+            and a.id = #{id,jdbcType=VARCHAR}
         </if>
         <if test="createUserId != null and createUserId !=''">
-            and create_user_id=#{createUserId,jdbcType=VARCHAR}
+            and a.create_user_id=#{createUserId,jdbcType=VARCHAR}
         </if>
-        order by modify_time desc
+        order by a.modify_time desc
     </select>
     <!--获取场景包基本信息-->
     <select id="selectScenePackageBaseByIdGy" resultType="api.common.pojo.po.scene.ScenePackagePO">