root 2 years ago
parent
commit
18a54bf58a

+ 3 - 3
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/controller/ProjectTaskCtrl.java

@@ -27,12 +27,12 @@ public class ProjectTaskCtrl {
 
     @RequestMapping("/start")
     @ResponseBody
-    public ResponseBodyVO start(@RequestBody ProjectScheduler.ProjectTask task){
+    public ResponseBodyVO<String> start(@RequestBody ProjectScheduler.ProjectTask task){
         boolean b = projectScheduler.start(task);
         if(b){
-            return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
         }
-        return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE);
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE);
     }
 
     @RequestMapping("/stop")

+ 1 - 1
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/feign/ProjectService.java

@@ -14,6 +14,6 @@ import java.util.Map;
 public interface ProjectService {
 
     @PostMapping("/monitor/createAutomaticSubProject")
-    ResponseBodyVO runProject(Map<String,String> projectParam);
+    ResponseBodyVO<String> runProject(Map<String,String> projectParam);
 
 }

+ 2 - 2
simulation-resource-server/src/main/java/com/css/simulation/resource/feign/MonitorService.java

@@ -23,10 +23,10 @@ public interface MonitorService {
     ResponseBodyVO<Integer> init(List<SimulationManualProjectParam> list);
 
     @PostMapping("/projectTask/start")
-    ResponseBodyVO start(SimulationManualProjectParam param);
+    ResponseBodyVO<String> start(SimulationManualProjectParam param);
 
     @PostMapping("/projectTask/stop")
-    ResponseBodyVO stop(SimulationManualProjectParam param);
+    ResponseBodyVO<String> stop(SimulationManualProjectParam param);
 
 
 

+ 5 - 3
simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/VehicleService.java

@@ -189,10 +189,11 @@ public class VehicleService {
                 String replace42 = replace41.replaceAll("shiftTimeUp56", convertArrayToTable(vehiclePO.getShiftTimeUp56()));
                 String replace43 = replace42.replaceAll("shiftTimeDown56", convertArrayToTable(vehiclePO.getShiftTimeDown56()));
 
+                // 制动力矩不再区分左右,前轮使用前左,后轮使用后左
                 String replace44 = replace43.replaceAll("frontLeftWheelBrakingTorque", vehiclePO.getFrontLeftWheelBrakingTorque());
-                String replace45 = replace44.replaceAll("frontRightWheelBrakingTorque", vehiclePO.getFrontRightWheelBrakingTorque());
+                String replace45 = replace44.replaceAll("frontRightWheelBrakingTorque", vehiclePO.getFrontLeftWheelBrakingTorque());
                 String replace46 = replace45.replaceAll("rearLeftWheelBrakingTorque", vehiclePO.getRearLeftWheelBrakingTorque());
-                String replace47 = replace46.replaceAll("rearRightWheelBrakingTorque", vehiclePO.getRearRightWheelBrakingTorque());
+                String replace47 = replace46.replaceAll("rearRightWheelBrakingTorque", vehiclePO.getRearLeftWheelBrakingTorque());
                 String replace48 = replace47.replaceAll("steeringGearRatio", vehiclePO.getSteeringGearRatio());
                 String replace49 = replace48.replaceAll("relationCurveRightWheelAngleAndSteeringGearOutput", convertArrayToTable(vehiclePO.getRelationCurveRightWheelAngleAndSteeringGearOutput()));
                 String replace50 = replace49.replaceAll("relationCurveLeftWheelAngleAndSteeringGearOutput", convertArrayToTable(vehiclePO.getRelationCurveLeftWheelAngleAndSteeringGearOutput()));
@@ -510,12 +511,13 @@ public class VehicleService {
                     .rearLeftWheelBrakingTorque(rearBrakingTorque)
                     .rearRightWheelBrakingTorque(rearBrakingTorque)
                     .steeringType("1")  //TODO  暂时只用前轮转向
-                    .steeringGearType("2")  //TODO  暂时只用齿轮齿条转向器
+                    .steeringGearType("1")  //TODO  暂时只用齿轮齿条转向器
                     .steeringGearRatio(steeringGearRatio)
                     .relationCurveRightWheelAngleAndSteeringGearOutput(relationCurveRightWheelAngleAndSteeringGearOutput)
                     .relationCurveRightWheelAngleAndSteeringGearOutputJson(relationCurveRightWheelAngleAndSteeringGearOutputJson)
                     .relationCurveLeftWheelAngleAndSteeringGearOutput(relationCurveLeftWheelAngleAndSteeringGearOutput)
                     .relationCurveLeftWheelAngleAndSteeringGearOutputJson(relationCurveLeftWheelAngleAndSteeringGearOutputJson)
+                    .driverType("1")    //TODO 暂时只用前轮驱动
                     .build();
         } catch (JsonProcessingException e) {
             throw new RuntimeException(e);

+ 11 - 20
simulation-resource-server/src/main/java/com/css/simulation/resource/open/ctrl/MonitorCtrl.java

@@ -4,42 +4,33 @@ import api.common.pojo.common.ResponseBodyVO;
 import api.common.pojo.param.project.SimulationManualProjectParam;
 import api.common.util.ObjectUtil;
 import com.css.simulation.resource.project.service.SimulationProjectService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
 import java.util.Calendar;
 import java.util.Map;
 
-@Controller
+@RestController
 @RequestMapping("/monitor")
 public class MonitorCtrl {
 
-    @Autowired
-    private SimulationProjectService service;
+    @Resource
+    private SimulationProjectService simulationProjectService;
 
     /**
      * 运行自动任务
      */
-    @RequestMapping("createAutomaticSubProject")
-    @ResponseBody
-    public ResponseBodyVO createAutomaticSubProject(@RequestBody Map<String,String> paramMap){
-
-        if(ObjectUtil.isNull(paramMap) || ObjectUtil.isNull(paramMap.get("id"))){
-            return new ResponseBodyVO(false, 500, "参数必传!",null);
+    @RequestMapping("/createAutomaticSubProject")
+    public ResponseBodyVO<String> createAutomaticSubProject(@RequestBody Map<String, String> paramMap) {
+        if (ObjectUtil.isNull(paramMap) || ObjectUtil.isNull(paramMap.get("id"))) {
+            return new ResponseBodyVO<>(false, 500, "参数必传!", null);
         }
-
         SimulationManualProjectParam param = new SimulationManualProjectParam();
         param.setId(paramMap.get("id"));
-
-        System.out.println("运行自动任务:"+ Calendar.getInstance().getTime()+"/"+paramMap.get("id"));
-
-        //return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
-
-        return service.createAutomaticSubProject(param);
-
+        System.out.println("运行自动任务:" + Calendar.getInstance().getTime() + "/" + paramMap.get("id"));
+        return simulationProjectService.createAutomaticSubProject(param);
     }
 
 }

+ 1 - 9
simulation-resource-server/src/main/java/com/css/simulation/resource/project/ctrl/SimulationProjectCtrl.java

@@ -90,9 +90,6 @@ public class SimulationProjectCtrl {
 
     /**
      * 获取工作详情
-     *
-     * @param param
-     * @return
      */
     @RequestMapping("selectProjectDetailsById")
     @ResponseBody
@@ -102,13 +99,10 @@ public class SimulationProjectCtrl {
 
     /**
      * 获取测试报告详情
-     *
-     * @param param
-     * @return
      */
     @RequestMapping("selectProjectReportById")
     @ResponseBody
-    public ResponseBodyVO selectProjectReportById(@RequestBody SimulationManualProjectParam param) {
+    public ResponseBodyVO<ProjectReportVo> selectProjectReportById(@RequestBody SimulationManualProjectParam param) {
         return service.selectProjectReportById(param);
     }
 
@@ -161,8 +155,6 @@ public class SimulationProjectCtrl {
 
     /**
      * 解析车辆坐标文件
-     *
-     * @return
      */
     @RequestMapping("analysisVehicleCoord")
     @ResponseBody

+ 54 - 84
simulation-resource-server/src/main/java/com/css/simulation/resource/project/impl/SimulationProjectServiceImpl.java

@@ -429,7 +429,6 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
     public ResponseBodyVO<ProjectDetailsVo> selectProjectDetailsById(SimulationManualProjectParam param) {
 
         ProjectDetailsVo projectDetailsVo = null;
-        String evaluationLevel = null;
         if (DictConstants.PROJECT_TYPE_MANUAL.equals(param.getProjectType())) {   // 手动运行任务
             SimulationManualProjectPo po = simulationProjectMapper.selectProjectById(param);
             projectDetailsVo = JsonUtil.jsonToBean(po.getDetails(), ProjectDetailsVo.class);
@@ -3941,7 +3940,6 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         Optional.ofNullable(automaticRunState).orElseThrow(() -> new RuntimeException("自动运行状态不能为空。"));
 
         //1 修改父项目停用状态
-
         SimulationAutomaticProjectPo po = simulationAutomaticProjectMapper.selectById(id);  // 查询父项目信息
         String algorithmId = po.getAlgorithm();
         if ("0".equals(param.getAutomaticRunState())) { // 启动
@@ -3950,48 +3948,18 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
             if (DictConstants.IS_DELETED.equals(isDeleted)) {
                 return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "算法已被删除,无法启动项目。", null);
             }
-//            //获取数据库中的算法版本
-//            AlgorithmPO aPo = algorithmMapper.selectDetailsById(algorithmId);
-//            String gitVersion = aPo.getGitVersion();
-//            //获取当前算法版本
             String currentGitVersion = algorithmService.getGitVersion(algorithmId);
-//            boolean isRun = false; //判断是否启动运行
-//            //首次获取版本
-//            if (StringUtil.isEmpty(gitVersion)) {
-//                isRun = true;
-//            } else {
-//                //非首次,比对版本,校验是否执行任务
-//                if (!gitVersion.equals(currentGitVersion)) {
-//                    isRun = true;
-//                }
-//            }
-//            if (isRun) { //启动运行
             simulationAutomaticProjectMapper.updateAutomaticRunState(param);
             AlgorithmParameter algorithmParam = new AlgorithmParameter();
             algorithmParam.setId(algorithmId);
             algorithmParam.setGitVersion(currentGitVersion);
             runProject(algorithmParam, param, po);
-//            }
         } else if ("1".equals(param.getAutomaticRunState())) {  // 停止
             simulationAutomaticProjectMapper.updateAutomaticRunState(param);
             //推送定时请求
             projectTaskStop(po);
         }
-
-
-        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
-
-
-        /*String automaticRunState = param.getAutomaticRunState();
-        SimulationAutomaticProjectPo po = new SimulationAutomaticProjectPo();
-        po.setId("222222");
-        po.setOperationCycle("0/2 * * * * ?");
-        if("0".equals(automaticRunState)){
-            projectTaskStart(po);
-        }else{
-            projectTaskStop(po);
-        }
-        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);*/
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
     }
 
 
@@ -4044,63 +4012,66 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
 
     }
 
-    @SneakyThrows
+
     @Override
     public ResponseBodyVO<String> createAutomaticSubProject(SimulationManualProjectParam param) {
 
 
-        if (StringUtil.isEmpty(param.getId())) {
-            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "id不能为空");
+        try {
+            if (StringUtil.isEmpty(param.getId())) {
+                return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "id不能为空");
+            }
+            SimulationAutomaticProjectPo po = simulationAutomaticProjectMapper.selectById(param.getId());
+            String projectName = po.getProjectName();
+
+            SimulationAutomaticSubProjectPo subprojectPo = new SimulationAutomaticSubProjectPo();
+            subprojectPo.createPo(po.getCreateUserId());
+            subprojectPo.setParentId(po.getId());
+            subprojectPo.setParentProjectId(po.getProjectId());
+            subprojectPo.setProjectName(projectName);
+            subprojectPo.setStartTime(new Date());
+            subprojectPo.setNowRunState(ProjectRunStateEnum.EXECUTION.getCode());//执行中
+            SimulationAutomaticSubProjectPo sPo = simulationAutomaticSubProjectMapper.selectLastProjectId(param.getId());
+            if (StringUtil.isEmpty(sPo)) {
+                subprojectPo.setProjectNum(1);
+                subprojectPo.setProjectId(po.getProjectId() + "-1");
+            } else {
+                Integer projectNum = sPo.getProjectNum() + 1;
+                subprojectPo.setProjectNum(projectNum);
+                subprojectPo.setProjectId(po.getProjectId() + "-" + projectNum);
+            }
+            //修改自动运行次数
+            Long automaticRunTimes = po.getAutomaticRunTimes();
+            if (automaticRunTimes == null) {
+                po.setAutomaticRunTimes(1L);
+            } else {
+                po.setAutomaticRunTimes(automaticRunTimes + 1);
+            }
+            simulationAutomaticProjectMapper.updateAutomaticRunTimes(po);
+            int i = simulationAutomaticSubProjectMapper.addAutomaticSubProject(subprojectPo);
+            // 查询详情信息并保存
+            String projectId = subprojectPo.getId();
+            ProjectDetailsVo info = selectProjectDetailsByIdBackUp(SimulationManualProjectParam.builder()
+                    .id(projectId)
+                    .projectType(DictConstants.PROJECT_TYPE_AUTO_SUB).build()).getInfo();
+            String infoJson = JsonUtil.beanToJson(info);
+            log.info("updateProjectNowRunState() 项目 " + projectId + " 的详情信息为:" + infoJson);
+            autoSubProjectMapper.updateDetailsById(projectId, infoJson);
+            if (i <= 0) {
+                return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "执行失败");
+            }
+
+            //推送消息到kafka
+            autoProjectRunToKafka(po, subprojectPo.getId());
+
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, null);
+        } catch (JsonProcessingException e) {
+            throw new RuntimeException(e);
         }
-        SimulationAutomaticProjectPo po = simulationAutomaticProjectMapper.selectById(param.getId());
-        String projectName = po.getProjectName();
-
-        SimulationAutomaticSubProjectPo subprojectPo = new SimulationAutomaticSubProjectPo();
-        subprojectPo.createPo(po.getCreateUserId());
-        subprojectPo.setParentId(po.getId());
-        subprojectPo.setParentProjectId(po.getProjectId());
-        subprojectPo.setProjectName(projectName);
-        subprojectPo.setStartTime(new Date());
-        subprojectPo.setNowRunState(ProjectRunStateEnum.EXECUTION.getCode());//执行中
-        SimulationAutomaticSubProjectPo sPo = simulationAutomaticSubProjectMapper.selectLastProjectId(param.getId());
-        if (StringUtil.isEmpty(sPo)) {
-            subprojectPo.setProjectNum(1);
-            subprojectPo.setProjectId(po.getProjectId() + "-1");
-        } else {
-            Integer projectNum = sPo.getProjectNum() + 1;
-            subprojectPo.setProjectNum(projectNum);
-            subprojectPo.setProjectId(po.getProjectId() + "-" + projectNum);
-        }
-        //修改自动运行次数
-        Long automaticRunTimes = po.getAutomaticRunTimes();
-        if (automaticRunTimes == null) {
-            po.setAutomaticRunTimes(1L);
-        } else {
-            po.setAutomaticRunTimes(automaticRunTimes + 1);
-        }
-        simulationAutomaticProjectMapper.updateAutomaticRunTimes(po);
-        int i = simulationAutomaticSubProjectMapper.addAutomaticSubProject(subprojectPo);
-        // 查询详情信息并保存
-        String projectId = subprojectPo.getId();
-        ProjectDetailsVo info = selectProjectDetailsByIdBackUp(SimulationManualProjectParam.builder()
-                .id(projectId)
-                .projectType(DictConstants.PROJECT_TYPE_AUTO_SUB).build()).getInfo();
-        String infoJson = JsonUtil.beanToJson(info);
-        log.info("updateProjectNowRunState() 项目 " + projectId + " 的详情信息为:" + infoJson);
-        autoSubProjectMapper.updateDetailsById(projectId, infoJson);
-        if (i <= 0) {
-            return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "执行失败");
-        }
-
-        //推送消息到kafka
-        autoProjectRunToKafka(po, subprojectPo.getId());
-
-        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, null);
     }
 
     private void autoProjectRunToKafka(SimulationAutomaticProjectPo po, String subId) throws JsonProcessingException {
         SimulationManualProjectKafkaParam kafkaParam = new SimulationManualProjectKafkaParam();
-//        kafkaParam.setProjectId(po.getId());
         kafkaParam.setProjectId(subId); //子任务id
         kafkaParam.setAlgorithmId(po.getAlgorithm());
         kafkaParam.setVehicleConfigId(po.getVehicle());
@@ -4110,11 +4081,10 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         kafkaParam.setType(DictConstants.PROJECT_TYPE_AUTO_SUB);
         KafkaParameter kafkaParameter = new KafkaParameter();
         kafkaParameter.setTopic(ProjectConstants.RUN_TASK_TOPIC);
+        kafkaParam.setModelType(vehicleMapper.selectParameterTypeById(po.getVehicle()));
         String data = JsonUtil.beanToJson(kafkaParam);
         kafkaParameter.setData(data);
         log.info("自动运行项目推送消息到 kafka:" + data);
-//        kafkaService.send(kafkaParameter);
-
         kafkaTemplate.send(kafkaParameter.getTopic(), kafkaParameter.getData()).addCallback(success -> {
             // 消息发送到的topic
             String topic = success.getRecordMetadata().topic();
@@ -4386,7 +4356,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         SimulationManualProjectParam p = new SimulationManualProjectParam();
         p.setProjectId(po.getId());
         p.setCron(po.getOperationCycle());
-        ResponseBodyVO start = monitorService.start(p);
+        ResponseBodyVO<String> start = monitorService.start(p);
         boolean status = start.isStatus();
         if (!status) {
             //定时任务启动失败,抛出异常