Browse Source

删除多余的类

yaoyq 3 years ago
parent
commit
2c70d9fbca
26 changed files with 1231 additions and 2230 deletions
  1. 321 323
      imcs-admin-boot/imcs-authority-server/src/main/java/com/github/zuihou/job/SimulationTaskJobs.java
  2. 317 319
      imcs-admin-boot/imcs-authority-server/src/main/java/com/github/zuihou/job/TaskJobs.java
  3. 519 522
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/mq/TaskWork.java
  4. 0 22
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/dao/BomProcedureProgramGroupDetailMapper.java
  5. 0 26
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/dao/BomProcedureProgramGroupMapper.java
  6. 0 4
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/dao/BomProcedureVersionMapper.java
  7. 0 18
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/BomProcedureProgramGroupDetailService.java
  8. 0 25
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/BomProcedureProgramGroupService.java
  9. 0 29
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/impl/BomProcedureProgramGroupDetailServiceImpl.java
  10. 0 37
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/impl/BomProcedureProgramGroupServiceImpl.java
  11. 38 38
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/impl/BomProcedureVersionServiceImpl.java
  12. 19 15
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionResourceCenter/service/impl/MachineNodeServiceImpl.java
  13. 0 27
      imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/productionReadyCenter/BomProcedureProgramGroupDetailMapper.xml
  14. 0 46
      imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/productionReadyCenter/BomProcedureProgramGroupMapper.xml
  15. 14 14
      imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/productionReadyCenter/BomProcedureVersionMapper.xml
  16. 0 66
      imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/productionReadyCenter/BomProcedureProgramGroupController.java
  17. 0 54
      imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/productionReadyCenter/BomProcedureProgramGroupDetailController.java
  18. 0 65
      imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/dto/BomProcedureProgramGroupDetailPageDTO.java
  19. 0 64
      imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/dto/BomProcedureProgramGroupDetailSaveDTO.java
  20. 0 68
      imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/dto/BomProcedureProgramGroupDetailUpdateDTO.java
  21. 0 75
      imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/dto/BomProcedureProgramGroupPageDTO.java
  22. 0 73
      imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/dto/BomProcedureProgramGroupSaveDTO.java
  23. 0 77
      imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/dto/BomProcedureProgramGroupUpdateDTO.java
  24. 3 3
      imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/entity/BomProcedureProgram.java
  25. 0 129
      imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/entity/BomProcedureProgramGroup.java
  26. 0 91
      imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/entity/BomProcedureProgramGroupDetail.java

+ 321 - 323
imcs-admin-boot/imcs-authority-server/src/main/java/com/github/zuihou/job/SimulationTaskJobs.java

@@ -1,323 +1,321 @@
-package com.github.zuihou.job;
-
-import com.alibaba.fastjson.JSONObject;
-import com.github.zuihou.authority.service.common.ParameterService;
-import com.github.zuihou.business.operationManagementCenter.dao.OrderMapper;
-import com.github.zuihou.business.operationManagementCenter.dao.PlanMapper;
-import com.github.zuihou.business.operationManagementCenter.dao.TTaskMapper;
-import com.github.zuihou.business.operationManagementCenter.entity.TTask;
-import com.github.zuihou.business.operationManagementCenter.service.TaskService;
-import com.github.zuihou.business.productionReadyCenter.dao.AutoNodeLogMapper;
-import com.github.zuihou.business.productionReadyCenter.dao.AutoNodeMapper;
-import com.github.zuihou.business.productionReadyCenter.dao.BomProcedureProgramGroupMapper;
-import com.github.zuihou.business.productionReadyCenter.entity.AAutoNodeLog;
-import com.github.zuihou.business.productionReadyCenter.entity.AutoNode;
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgramGroup;
-import com.github.zuihou.business.productionReadyCenter.service.AutoNodeService;
-import com.github.zuihou.business.websocket.WebSocketServer;
-import com.github.zuihou.common.constant.CacheKey;
-import com.github.zuihou.common.constant.ParameterKey;
-import com.github.zuihou.context.BaseContextHandler;
-import com.github.zuihou.database.mybatis.conditions.Wraps;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Component;
-import org.springframework.web.client.RestTemplate;
-
-import javax.annotation.Resource;
-import java.text.NumberFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class SimulationTaskJobs {
-    @Autowired
-    private TaskService taskService;
-    @Autowired
-    private AutoNodeService autoNodeService;
-    @Autowired
-    private OrderMapper orderMapper;
-    @Autowired
-    private PlanMapper planMapper;
-    @Autowired
-    private AutoNodeMapper autoNodeMapper;
-    @Autowired
-    private TTaskMapper taskMapper;
-    @Autowired
-    private AutoNodeLogMapper autoNodeLogMapper;
-    @Autowired
-    private BomProcedureProgramGroupMapper bomProcedureProgramGroupMapper;
-    @Autowired
-    private ParameterService parameterService;
-    @Resource
-    private RestTemplate restTemplate;
-    @Autowired
-    private RedisTemplate<String,Object> redisTemplate;
-    @Autowired
-    private WebSocketServer webSocketServer;
-    private static Logger logger = LoggerFactory.getLogger(SimulationTaskJobs.class);
-    //@Scheduled(cron="*/9 * * * * ?")  //9秒执行一次
-    public void updateTaskStatusJob(){
-        BaseContextHandler.setTenant("0000");
-
-        String temUrl = parameterService.getValue(ParameterKey.AUTOPROGRAMEURL, null);
-        //String autoProgrameUrl = parameterService.getValue(ParameterKey.AUTOPROGRAMEURL, null);
-        //查出待执行的任务
-        //List<TTask> taskList = taskService.list(Wraps.<TTask>lbQ().eq(TTask::getStatus,"1").eq(TTask::getDraftFlag,"0").le(TTask::getExpectStartTime,new Date()));
-        Map qMap = new HashMap();
-        qMap.put("mulstatus","1");
-        List<TTask> taskList = taskMapper.getPrepareTask(qMap);
-
-        //计划,订单MAP,用做提升性能,本次更新过的就不更新了
-        Map<String,String>planMap = new HashMap<String,String>();
-        Map<String,String>OrderMap = new HashMap<String,String>();
-        if(taskList!=null&&taskList.size()>0){
-            for(TTask task:taskList){
-                try{
-                    //把本次待执行任务全部改成进行中
-                    //taskMapper.updateTaskBegin();
-                    task.setStatus("2");
-                    task.setStartTime(new Date());
-                    taskMapper.updateById(task);
-                    if(!planMap.containsKey(String.valueOf(task.getPlanId()))){
-                        //设置计划开始
-                        planMapper.updateproduceStatusBegin();
-                        planMap.put(String.valueOf(task.getPlanId()),String.valueOf(task.getPlanId()));
-                    }
-
-                    if(!OrderMap.containsKey(String.valueOf(task.getOrderId()))){
-                        ////设置订单开始
-                        orderMapper.updateproduceStatusBegin();
-                        OrderMap.put(String.valueOf(task.getOrderId()),String.valueOf(task.getOrderId()));
-                    }
-                    redisTemplate.opsForValue().set(CacheKey.PRESOURCE_CURRENT_TASK+"_"+task.getResourceId(), task.getId());
-                    redisTemplate.opsForValue().set(CacheKey.PRESOURCE_CURRENT_TASK_OBJECT+"_"+task.getResourceId(), task);
-                    boolean f = false;
-                    //执行任务对应的自动化程序
-                    AutoNode model = new AutoNode();
-                    model.setProcedureId(task.getProcedureId());
-                    List<AutoNode> autoNodeList = autoNodeMapper.getNodeList(model);
-                    if(autoNodeList!=null&&autoNodeList.size()>0){
-                        Map queryMap = new HashMap<>();
-                        queryMap.put("procedureId",task.getProcedureId());
-                        queryMap.put("haveFile","1");
-                        List<BomProcedureProgramGroup>bomProcedureProgramGroupList = bomProcedureProgramGroupMapper.getProgramGroupList(queryMap);
-                        for(int i = 0;i<autoNodeList.size();i++){
-                            String autoProgrameUrl = temUrl;
-                            AutoNode autoNode = autoNodeList.get(i);
-                            //把当前节点存放缓存
-                            redisTemplate.opsForValue().set(CacheKey.TASK_CURRENT_NODE+"_"+task.getResourceId(), autoNode.getId());
-                            String code = autoNode.getCode();
-                            autoProgrameUrl+="?func="+code;
-                            autoProgrameUrl+="&ip="+task.getIp()+"&port="+task.getPort();
-                            String fileName = "";
-                            if(bomProcedureProgramGroupList!=null&&bomProcedureProgramGroupList.size()>0){
-                                fileName = bomProcedureProgramGroupList.get(0).getSubmittedFileName();
-                                autoProgrameUrl+="&fileName="+fileName;
-                            }
-                            List<AAutoNodeLog> autoNodeLogList = autoNodeLogMapper.selectList(Wraps.<AAutoNodeLog>lbQ().eq(AAutoNodeLog::getAutoNodeId,autoNode.getId()).eq(AAutoNodeLog::getTaskId,task.getId()));
-                            //插入执行日志
-                            AAutoNodeLog log = new AAutoNodeLog();
-                            if(autoNodeLogList==null||autoNodeLogList.size()==0){
-                                log.setAutoNodeId(autoNode.getId());
-                                log.setOrderId(task.getOrderId());
-                                log.setTaskId(task.getId());
-                                log.setExeStatus("2");
-                                log.setStartTime(new Date());
-                                log.setFeedbackFile(fileName);
-                                autoNodeLogMapper.insert(log);
-                            }else{
-                                log = autoNodeLogList.get(0);
-                                log.setFeedbackFile(fileName);
-                            }
-                            //推送
-                            this.pushTask(task);
-
-                            logger.info("===============================请求地址"+autoProgrameUrl);
-                            String returnData = "";
-                            try {
-                                returnData = restTemplate.getForObject(autoProgrameUrl, String.class);
-                            }catch(Exception e){
-                                e.printStackTrace();
-                                logger.error("调用接口发生异常"+e.getMessage());
-                            }
-                            logger.info("===============================接口返回"+returnData);
-                            //if("success".equals(returnData)){
-                            //TODO
-                            if(1==1){
-                                //判断值是否需要循环自检
-                                /*if("1".equals(autoNode.getSelfExamine())){//需要自检的,需要停顿一会,避免取数不及时
-                                    Thread.sleep(1500L);
-                                    String b = polling(task,autoNode,fileName);
-                                    if("0".equals(b)){//需要跳出
-                                        //插入执行日志
-                                        log.setExeResult("0");
-                                        autoNodeLogMapper.updateAllById(log);
-                                        f = true;
-                                        break;
-                                    }
-
-                                }*/
-                                //插入执行日志
-                                log.setExeStatus("3");
-                                log.setExeResult("1");
-                                log.setEndTime(new Date());
-                                autoNodeLogMapper.updateAllById(log);
-                                //把当前完成的节点放入缓存,用于推送任务完成的百分比
-                                NumberFormat numberFormat = NumberFormat.getInstance();
-                                numberFormat.setMaximumFractionDigits(2);
-                                redisTemplate.opsForValue().set(CacheKey.TASK_CURRENT_NODE_PERCENT+"_"+task.getResourceId(), numberFormat.format(100*(float)(i+1) /(float)autoNodeList.size()));
-                                task.setProcess(Double.parseDouble(numberFormat.format(100*(float)(i+1) /(float)autoNodeList.size())));
-                                if(i==autoNodeList.size()-1){
-                                    task.setStatus("3");
-                                    task.setEndTime(new Date());
-                                    taskMapper.updateById(task);
-                                    //推送
-                                    //删除正在执行的缓存
-                                    redisTemplate.delete(CacheKey.PRESOURCE_CURRENT_TASK+"_"+task.getResourceId());
-                                    redisTemplate.delete(CacheKey.PRESOURCE_CURRENT_TASK_OBJECT+"_"+task.getResourceId());
-                                    redisTemplate.delete(CacheKey.TASK_CURRENT_NODE+"_"+task.getResourceId());
-                                    this.pushTask(task);
-                                }else{//主要更新完成比例
-                                    taskMapper.updateById(task);
-                                }
-                            }else{//TODO
-                                //插入执行日志
-                                log.setExeResult("0");
-                                autoNodeLogMapper.updateAllById(log);
-                                f = true;
-                                break;
-                            }
-                        }
-                    }else{//没有节点直接改成已完成
-                        task.setStatus("3");
-                        task.setEndTime(new Date());
-                        taskMapper.updateById(task);
-                    }
-                    if(f){
-                        break;
-                    }
-                }catch (Exception e){
-                    e.printStackTrace();
-                    logger.info("===============================接口返回",e);
-                }finally {
-                    //删除正在执行的缓存
-                    redisTemplate.delete(CacheKey.PRESOURCE_CURRENT_TASK+"_"+task.getResourceId());
-                    redisTemplate.delete(CacheKey.PRESOURCE_CURRENT_TASK_OBJECT+"_"+task.getResourceId());
-                    redisTemplate.delete(CacheKey.TASK_CURRENT_NODE+"_"+task.getResourceId());
-
-                }
-            }
-        }
-
-        //设置计划结束
-        planMapper.updateproduceStatusFinish();
-        ////设置订单结束
-        orderMapper.updateproduceStatusFinish();
-
-
-    }
-
-    public String polling(TTask task,AutoNode autoNode,String fileName)throws Exception{
-        String ip = task.getIp();
-        String port = task.getPort();
-        String redisData = "";
-        try {
-            redisData =   redisTemplate.opsForValue().get(ip+":"+port).toString();
-        }catch (Exception e){
-            Thread.sleep(1000);
-            logger.error("缓存获取异常",e);
-            return polling(task,autoNode,fileName);
-        }
-
-        JSONObject returnJson = JSONObject.parseObject(redisData);
-        String conf = autoNode.getExamineMatchConf();
-        JSONObject confJson = JSONObject.parseObject(conf);
-
-        /*if(!testbreak(returnJson,confJson)){//需要跳出
-            return "0";
-        }*/
-
-        if(!testSuccess(returnJson,confJson,fileName)){//尚未成功
-            Thread.sleep(1000);
-            return polling(task,autoNode,fileName);
-        }else{
-            return "1";
-        }
-    }
-
-
-    /**
-     * 自检的数据,从缓存验证是否成功
-     * @param returnJson
-     * @param confJson
-     * @return
-     */
-    public boolean testbreak(JSONObject returnJson,JSONObject confJson){
-        boolean f = true;
-        String proRunState = returnJson.get("ProRunState")==null?"":returnJson.get("ProRunState").toString();
-        //先写死,后面要考虑怎么配置。
-        if("2".equals(proRunState)||"3".equals(proRunState)){
-            f = false;
-        }
-        /*for(String key:confJson.keySet()){
-            if(returnJson.containsKey(key)){
-                if(returnJson.getString(key)!=null&&returnJson.getString(key).equals(confJson.getString(key))){
-                    f = false;
-                    break;
-                }
-            }
-        }*/
-        return f;
-    }
-
-    /**
-     * 自检的数据,从缓存验证是否成功
-     * @param returnJson
-     * @param confJson
-     * @return
-     */
-    public boolean testSuccess(JSONObject returnJson,JSONObject confJson,String fileName){
-        boolean f = true;
-        String mainProgNo = returnJson.getString("MainProgNo").toUpperCase();
-        String tmpFileName = fileName.replace(".","_").toUpperCase();
-
-        for(String key:confJson.keySet()){
-            if(!mainProgNo.endsWith(tmpFileName)){
-                logger.info("================================hhh"+mainProgNo);
-                logger.info("*****************************"+tmpFileName);
-                f = false;
-                break;
-            }
-            if(returnJson.containsKey(key)){
-                if(returnJson.getString(key)!=null&&!returnJson.getString(key).equals(confJson.getString(key))){
-                    f = false;
-                    break;
-                }
-            }
-        }
-        return f;
-    }
-
-
-    public void pushTask(TTask task){
-        Map<String,Object>rmap = new HashMap<>();
-        rmap.put("id",task.getResourceId());
-        Map<String,Object> pmap = taskService.getExeTaskByResourceList(rmap);
-        try {
-                Object o = pmap.get("orderList");
-                Map<String,Object >pushMap = new HashMap<>();
-                pushMap.put("type",WebSocketServer.PUSH_TYPE_RESOURCE_TASK);
-                pushMap.put(String.valueOf(task.getResourceId()),pmap);
-                String pushMsg = JSONObject.toJSONString(pushMap);
-                webSocketServer.BroadCastInfo(pushMsg);
-        }catch (Exception e){
-            logger.error("推送异常======"+logger);
-        }
-    }
-}
-
+//package com.github.zuihou.job;
+//
+//import com.alibaba.fastjson.JSONObject;
+//import com.github.zuihou.authority.service.common.ParameterService;
+//import com.github.zuihou.business.operationManagementCenter.dao.OrderMapper;
+//import com.github.zuihou.business.operationManagementCenter.dao.PlanMapper;
+//import com.github.zuihou.business.operationManagementCenter.dao.TTaskMapper;
+//import com.github.zuihou.business.operationManagementCenter.entity.TTask;
+//import com.github.zuihou.business.operationManagementCenter.service.TaskService;
+//import com.github.zuihou.business.productionReadyCenter.dao.AutoNodeLogMapper;
+//import com.github.zuihou.business.productionReadyCenter.dao.AutoNodeMapper;
+//import com.github.zuihou.business.productionReadyCenter.entity.AAutoNodeLog;
+//import com.github.zuihou.business.productionReadyCenter.entity.AutoNode;
+//import com.github.zuihou.business.productionReadyCenter.service.AutoNodeService;
+//import com.github.zuihou.business.websocket.WebSocketServer;
+//import com.github.zuihou.common.constant.CacheKey;
+//import com.github.zuihou.common.constant.ParameterKey;
+//import com.github.zuihou.context.BaseContextHandler;
+//import com.github.zuihou.database.mybatis.conditions.Wraps;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.data.redis.core.RedisTemplate;
+//import org.springframework.stereotype.Component;
+//import org.springframework.web.client.RestTemplate;
+//
+//import javax.annotation.Resource;
+//import java.text.NumberFormat;
+//import java.util.Date;
+//import java.util.HashMap;
+//import java.util.List;
+//import java.util.Map;
+//
+//@Component
+//public class SimulationTaskJobs {
+//    @Autowired
+//    private TaskService taskService;
+//    @Autowired
+//    private AutoNodeService autoNodeService;
+//    @Autowired
+//    private OrderMapper orderMapper;
+//    @Autowired
+//    private PlanMapper planMapper;
+//    @Autowired
+//    private AutoNodeMapper autoNodeMapper;
+//    @Autowired
+//    private TTaskMapper taskMapper;
+//    @Autowired
+//    private AutoNodeLogMapper autoNodeLogMapper;
+//    @Autowired
+//    private BomProcedureProgramGroupMapper bomProcedureProgramGroupMapper;
+//    @Autowired
+//    private ParameterService parameterService;
+//    @Resource
+//    private RestTemplate restTemplate;
+//    @Autowired
+//    private RedisTemplate<String,Object> redisTemplate;
+//    @Autowired
+//    private WebSocketServer webSocketServer;
+//    private static Logger logger = LoggerFactory.getLogger(SimulationTaskJobs.class);
+//    //@Scheduled(cron="*/9 * * * * ?")  //9秒执行一次
+//    public void updateTaskStatusJob(){
+//        BaseContextHandler.setTenant("0000");
+//
+//        String temUrl = parameterService.getValue(ParameterKey.AUTOPROGRAMEURL, null);
+//        //String autoProgrameUrl = parameterService.getValue(ParameterKey.AUTOPROGRAMEURL, null);
+//        //查出待执行的任务
+//        //List<TTask> taskList = taskService.list(Wraps.<TTask>lbQ().eq(TTask::getStatus,"1").eq(TTask::getDraftFlag,"0").le(TTask::getExpectStartTime,new Date()));
+//        Map qMap = new HashMap();
+//        qMap.put("mulstatus","1");
+//        List<TTask> taskList = taskMapper.getPrepareTask(qMap);
+//
+//        //计划,订单MAP,用做提升性能,本次更新过的就不更新了
+//        Map<String,String>planMap = new HashMap<String,String>();
+//        Map<String,String>OrderMap = new HashMap<String,String>();
+//        if(taskList!=null&&taskList.size()>0){
+//            for(TTask task:taskList){
+//                try{
+//                    //把本次待执行任务全部改成进行中
+//                    //taskMapper.updateTaskBegin();
+//                    task.setStatus("2");
+//                    task.setStartTime(new Date());
+//                    taskMapper.updateById(task);
+//                    if(!planMap.containsKey(String.valueOf(task.getPlanId()))){
+//                        //设置计划开始
+//                        planMapper.updateproduceStatusBegin();
+//                        planMap.put(String.valueOf(task.getPlanId()),String.valueOf(task.getPlanId()));
+//                    }
+//
+//                    if(!OrderMap.containsKey(String.valueOf(task.getOrderId()))){
+//                        ////设置订单开始
+//                        orderMapper.updateproduceStatusBegin();
+//                        OrderMap.put(String.valueOf(task.getOrderId()),String.valueOf(task.getOrderId()));
+//                    }
+//                    redisTemplate.opsForValue().set(CacheKey.PRESOURCE_CURRENT_TASK+"_"+task.getResourceId(), task.getId());
+//                    redisTemplate.opsForValue().set(CacheKey.PRESOURCE_CURRENT_TASK_OBJECT+"_"+task.getResourceId(), task);
+//                    boolean f = false;
+//                    //执行任务对应的自动化程序
+//                    AutoNode model = new AutoNode();
+//                    model.setProcedureId(task.getProcedureId());
+//                    List<AutoNode> autoNodeList = autoNodeMapper.getNodeList(model);
+//                    if(autoNodeList!=null&&autoNodeList.size()>0){
+//                        Map queryMap = new HashMap<>();
+//                        queryMap.put("procedureId",task.getProcedureId());
+//                        queryMap.put("haveFile","1");
+//                        List<BomProcedureProgramGroup>bomProcedureProgramGroupList = bomProcedureProgramGroupMapper.getProgramGroupList(queryMap);
+//                        for(int i = 0;i<autoNodeList.size();i++){
+//                            String autoProgrameUrl = temUrl;
+//                            AutoNode autoNode = autoNodeList.get(i);
+//                            //把当前节点存放缓存
+//                            redisTemplate.opsForValue().set(CacheKey.TASK_CURRENT_NODE+"_"+task.getResourceId(), autoNode.getId());
+//                            String code = autoNode.getCode();
+//                            autoProgrameUrl+="?func="+code;
+//                            autoProgrameUrl+="&ip="+task.getIp()+"&port="+task.getPort();
+//                            String fileName = "";
+//                            if(bomProcedureProgramGroupList!=null&&bomProcedureProgramGroupList.size()>0){
+//                                fileName = bomProcedureProgramGroupList.get(0).getSubmittedFileName();
+//                                autoProgrameUrl+="&fileName="+fileName;
+//                            }
+//                            List<AAutoNodeLog> autoNodeLogList = autoNodeLogMapper.selectList(Wraps.<AAutoNodeLog>lbQ().eq(AAutoNodeLog::getAutoNodeId,autoNode.getId()).eq(AAutoNodeLog::getTaskId,task.getId()));
+//                            //插入执行日志
+//                            AAutoNodeLog log = new AAutoNodeLog();
+//                            if(autoNodeLogList==null||autoNodeLogList.size()==0){
+//                                log.setAutoNodeId(autoNode.getId());
+//                                log.setOrderId(task.getOrderId());
+//                                log.setTaskId(task.getId());
+//                                log.setExeStatus("2");
+//                                log.setStartTime(new Date());
+//                                log.setFeedbackFile(fileName);
+//                                autoNodeLogMapper.insert(log);
+//                            }else{
+//                                log = autoNodeLogList.get(0);
+//                                log.setFeedbackFile(fileName);
+//                            }
+//                            //推送
+//                            this.pushTask(task);
+//
+//                            logger.info("===============================请求地址"+autoProgrameUrl);
+//                            String returnData = "";
+//                            try {
+//                                returnData = restTemplate.getForObject(autoProgrameUrl, String.class);
+//                            }catch(Exception e){
+//                                e.printStackTrace();
+//                                logger.error("调用接口发生异常"+e.getMessage());
+//                            }
+//                            logger.info("===============================接口返回"+returnData);
+//                            //if("success".equals(returnData)){
+//                            //TODO
+//                            if(1==1){
+//                                //判断值是否需要循环自检
+//                                /*if("1".equals(autoNode.getSelfExamine())){//需要自检的,需要停顿一会,避免取数不及时
+//                                    Thread.sleep(1500L);
+//                                    String b = polling(task,autoNode,fileName);
+//                                    if("0".equals(b)){//需要跳出
+//                                        //插入执行日志
+//                                        log.setExeResult("0");
+//                                        autoNodeLogMapper.updateAllById(log);
+//                                        f = true;
+//                                        break;
+//                                    }
+//
+//                                }*/
+//                                //插入执行日志
+//                                log.setExeStatus("3");
+//                                log.setExeResult("1");
+//                                log.setEndTime(new Date());
+//                                autoNodeLogMapper.updateAllById(log);
+//                                //把当前完成的节点放入缓存,用于推送任务完成的百分比
+//                                NumberFormat numberFormat = NumberFormat.getInstance();
+//                                numberFormat.setMaximumFractionDigits(2);
+//                                redisTemplate.opsForValue().set(CacheKey.TASK_CURRENT_NODE_PERCENT+"_"+task.getResourceId(), numberFormat.format(100*(float)(i+1) /(float)autoNodeList.size()));
+//                                task.setProcess(Double.parseDouble(numberFormat.format(100*(float)(i+1) /(float)autoNodeList.size())));
+//                                if(i==autoNodeList.size()-1){
+//                                    task.setStatus("3");
+//                                    task.setEndTime(new Date());
+//                                    taskMapper.updateById(task);
+//                                    //推送
+//                                    //删除正在执行的缓存
+//                                    redisTemplate.delete(CacheKey.PRESOURCE_CURRENT_TASK+"_"+task.getResourceId());
+//                                    redisTemplate.delete(CacheKey.PRESOURCE_CURRENT_TASK_OBJECT+"_"+task.getResourceId());
+//                                    redisTemplate.delete(CacheKey.TASK_CURRENT_NODE+"_"+task.getResourceId());
+//                                    this.pushTask(task);
+//                                }else{//主要更新完成比例
+//                                    taskMapper.updateById(task);
+//                                }
+//                            }else{//TODO
+//                                //插入执行日志
+//                                log.setExeResult("0");
+//                                autoNodeLogMapper.updateAllById(log);
+//                                f = true;
+//                                break;
+//                            }
+//                        }
+//                    }else{//没有节点直接改成已完成
+//                        task.setStatus("3");
+//                        task.setEndTime(new Date());
+//                        taskMapper.updateById(task);
+//                    }
+//                    if(f){
+//                        break;
+//                    }
+//                }catch (Exception e){
+//                    e.printStackTrace();
+//                    logger.info("===============================接口返回",e);
+//                }finally {
+//                    //删除正在执行的缓存
+//                    redisTemplate.delete(CacheKey.PRESOURCE_CURRENT_TASK+"_"+task.getResourceId());
+//                    redisTemplate.delete(CacheKey.PRESOURCE_CURRENT_TASK_OBJECT+"_"+task.getResourceId());
+//                    redisTemplate.delete(CacheKey.TASK_CURRENT_NODE+"_"+task.getResourceId());
+//
+//                }
+//            }
+//        }
+//
+//        //设置计划结束
+//        planMapper.updateproduceStatusFinish();
+//        ////设置订单结束
+//        orderMapper.updateproduceStatusFinish();
+//
+//
+//    }
+//
+//    public String polling(TTask task,AutoNode autoNode,String fileName)throws Exception{
+//        String ip = task.getIp();
+//        String port = task.getPort();
+//        String redisData = "";
+//        try {
+//            redisData =   redisTemplate.opsForValue().get(ip+":"+port).toString();
+//        }catch (Exception e){
+//            Thread.sleep(1000);
+//            logger.error("缓存获取异常",e);
+//            return polling(task,autoNode,fileName);
+//        }
+//
+//        JSONObject returnJson = JSONObject.parseObject(redisData);
+//        String conf = autoNode.getExamineMatchConf();
+//        JSONObject confJson = JSONObject.parseObject(conf);
+//
+//        /*if(!testbreak(returnJson,confJson)){//需要跳出
+//            return "0";
+//        }*/
+//
+//        if(!testSuccess(returnJson,confJson,fileName)){//尚未成功
+//            Thread.sleep(1000);
+//            return polling(task,autoNode,fileName);
+//        }else{
+//            return "1";
+//        }
+//    }
+//
+//
+//    /**
+//     * 自检的数据,从缓存验证是否成功
+//     * @param returnJson
+//     * @param confJson
+//     * @return
+//     */
+//    public boolean testbreak(JSONObject returnJson,JSONObject confJson){
+//        boolean f = true;
+//        String proRunState = returnJson.get("ProRunState")==null?"":returnJson.get("ProRunState").toString();
+//        //先写死,后面要考虑怎么配置。
+//        if("2".equals(proRunState)||"3".equals(proRunState)){
+//            f = false;
+//        }
+//        /*for(String key:confJson.keySet()){
+//            if(returnJson.containsKey(key)){
+//                if(returnJson.getString(key)!=null&&returnJson.getString(key).equals(confJson.getString(key))){
+//                    f = false;
+//                    break;
+//                }
+//            }
+//        }*/
+//        return f;
+//    }
+//
+//    /**
+//     * 自检的数据,从缓存验证是否成功
+//     * @param returnJson
+//     * @param confJson
+//     * @return
+//     */
+//    public boolean testSuccess(JSONObject returnJson,JSONObject confJson,String fileName){
+//        boolean f = true;
+//        String mainProgNo = returnJson.getString("MainProgNo").toUpperCase();
+//        String tmpFileName = fileName.replace(".","_").toUpperCase();
+//
+//        for(String key:confJson.keySet()){
+//            if(!mainProgNo.endsWith(tmpFileName)){
+//                logger.info("================================hhh"+mainProgNo);
+//                logger.info("*****************************"+tmpFileName);
+//                f = false;
+//                break;
+//            }
+//            if(returnJson.containsKey(key)){
+//                if(returnJson.getString(key)!=null&&!returnJson.getString(key).equals(confJson.getString(key))){
+//                    f = false;
+//                    break;
+//                }
+//            }
+//        }
+//        return f;
+//    }
+//
+//
+//    public void pushTask(TTask task){
+//        Map<String,Object>rmap = new HashMap<>();
+//        rmap.put("id",task.getResourceId());
+//        Map<String,Object> pmap = taskService.getExeTaskByResourceList(rmap);
+//        try {
+//                Object o = pmap.get("orderList");
+//                Map<String,Object >pushMap = new HashMap<>();
+//                pushMap.put("type",WebSocketServer.PUSH_TYPE_RESOURCE_TASK);
+//                pushMap.put(String.valueOf(task.getResourceId()),pmap);
+//                String pushMsg = JSONObject.toJSONString(pushMap);
+//                webSocketServer.BroadCastInfo(pushMsg);
+//        }catch (Exception e){
+//            logger.error("推送异常======"+logger);
+//        }
+//    }
+//}
+//

+ 317 - 319
imcs-admin-boot/imcs-authority-server/src/main/java/com/github/zuihou/job/TaskJobs.java

@@ -1,319 +1,317 @@
-package com.github.zuihou.job;
-
-import com.alibaba.fastjson.JSONObject;
-import com.github.zuihou.authority.service.common.ParameterService;
-import com.github.zuihou.business.operationManagementCenter.dao.OrderMapper;
-import com.github.zuihou.business.operationManagementCenter.dao.PlanMapper;
-import com.github.zuihou.business.operationManagementCenter.dao.TTaskMapper;
-import com.github.zuihou.business.operationManagementCenter.entity.TTask;
-import com.github.zuihou.business.operationManagementCenter.service.TaskService;
-import com.github.zuihou.business.productionReadyCenter.dao.AutoNodeLogMapper;
-import com.github.zuihou.business.productionReadyCenter.dao.AutoNodeMapper;
-import com.github.zuihou.business.productionReadyCenter.dao.BomProcedureProgramGroupMapper;
-import com.github.zuihou.business.productionReadyCenter.entity.AAutoNodeLog;
-import com.github.zuihou.business.productionReadyCenter.entity.AutoNode;
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgramGroup;
-import com.github.zuihou.business.productionReadyCenter.service.AutoNodeService;
-import com.github.zuihou.business.websocket.WebSocketServer;
-import com.github.zuihou.common.constant.CacheKey;
-import com.github.zuihou.common.constant.ParameterKey;
-import com.github.zuihou.context.BaseContextHandler;
-import com.github.zuihou.database.mybatis.conditions.Wraps;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Component;
-import org.springframework.web.client.RestTemplate;
-
-import javax.annotation.Resource;
-import java.text.NumberFormat;
-import java.util.*;
-
-@Component
-public class TaskJobs {
-    @Autowired
-    private TaskService taskService;
-    @Autowired
-    private AutoNodeService autoNodeService;
-    @Autowired
-    private OrderMapper orderMapper;
-    @Autowired
-    private PlanMapper planMapper;
-    @Autowired
-    private AutoNodeMapper autoNodeMapper;
-    @Autowired
-    private TTaskMapper taskMapper;
-    @Autowired
-    private AutoNodeLogMapper autoNodeLogMapper;
-    @Autowired
-    private BomProcedureProgramGroupMapper bomProcedureProgramGroupMapper;
-    @Autowired
-    private ParameterService parameterService;
-    @Resource
-    private RestTemplate restTemplate;
-    @Autowired
-    private RedisTemplate<String,Object> redisTemplate;
-    @Autowired
-    private WebSocketServer webSocketServer;
-    private static Logger logger = LoggerFactory.getLogger(TaskJobs.class);
-    //@Scheduled(cron="*/9 * * * * ?")  //9秒执行一次
-    public void updateTaskStatusJob(){
-        BaseContextHandler.setTenant("0000");
-
-        String temUrl = parameterService.getValue(ParameterKey.AUTOPROGRAMEURL, null);
-        //String autoProgrameUrl = parameterService.getValue(ParameterKey.AUTOPROGRAMEURL, null);
-        //查出待执行的任务
-        //List<TTask> taskList = taskService.list(Wraps.<TTask>lbQ().eq(TTask::getStatus,"1").eq(TTask::getDraftFlag,"0").le(TTask::getExpectStartTime,new Date()));
-        Map qMap = new HashMap();
-        qMap.put("mulstatus","1");
-        List<TTask> taskList = taskMapper.getPrepareTask(qMap);
-
-        //计划,订单MAP,用做提升性能,本次更新过的就不更新了
-        Map<String,String>planMap = new HashMap<String,String>();
-        Map<String,String>OrderMap = new HashMap<String,String>();
-        if(taskList!=null&&taskList.size()>0){
-            for(TTask task:taskList){
-                try{
-                    //把本次待执行任务全部改成进行中
-                    //taskMapper.updateTaskBegin();
-                    task.setStatus("2");
-                    task.setStartTime(new Date());
-                    taskMapper.updateById(task);
-                    if(!planMap.containsKey(String.valueOf(task.getPlanId()))){
-                        //设置计划开始
-                        planMapper.updateproduceStatusBegin();
-                        planMap.put(String.valueOf(task.getPlanId()),String.valueOf(task.getPlanId()));
-                    }
-
-                    if(!OrderMap.containsKey(String.valueOf(task.getOrderId()))){
-                        ////设置订单开始
-                        orderMapper.updateproduceStatusBegin();
-                        OrderMap.put(String.valueOf(task.getOrderId()),String.valueOf(task.getOrderId()));
-                    }
-                    redisTemplate.opsForValue().set(CacheKey.PRESOURCE_CURRENT_TASK+"_"+task.getResourceId(), task.getId());
-                    redisTemplate.opsForValue().set(CacheKey.PRESOURCE_CURRENT_TASK_OBJECT+"_"+task.getResourceId(), task);
-                    boolean f = false;
-                    //执行任务对应的自动化程序
-                    AutoNode model = new AutoNode();
-                    model.setProcedureId(task.getProcedureId());
-                    List<AutoNode> autoNodeList = autoNodeMapper.getNodeList(model);
-                    if(autoNodeList!=null&&autoNodeList.size()>0){
-                        Map queryMap = new HashMap<>();
-                        queryMap.put("procedureId",task.getProcedureId());
-                        queryMap.put("haveFile","1");
-                        List<BomProcedureProgramGroup>bomProcedureProgramGroupList = bomProcedureProgramGroupMapper.getProgramGroupList(queryMap);
-                        for(int i = 0;i<autoNodeList.size();i++){
-                            String autoProgrameUrl = temUrl;
-                            AutoNode autoNode = autoNodeList.get(i);
-                            //把当前节点存放缓存
-                            redisTemplate.opsForValue().set(CacheKey.TASK_CURRENT_NODE+"_"+task.getResourceId(), autoNode.getId());
-                            String code = autoNode.getCode();
-                            autoProgrameUrl+="?func="+code;
-                            autoProgrameUrl+="&ip="+task.getIp()+"&port="+task.getPort();
-                            String fileName = "";
-                            if(bomProcedureProgramGroupList!=null&&bomProcedureProgramGroupList.size()>0){
-                                fileName = bomProcedureProgramGroupList.get(0).getSubmittedFileName();
-                                autoProgrameUrl+="&fileName="+fileName;
-                            }
-                            List<AAutoNodeLog> autoNodeLogList = autoNodeLogMapper.selectList(Wraps.<AAutoNodeLog>lbQ().eq(AAutoNodeLog::getAutoNodeId,autoNode.getId()).eq(AAutoNodeLog::getTaskId,task.getId()));
-                            //插入执行日志
-                            AAutoNodeLog log = new AAutoNodeLog();
-                            if(autoNodeLogList==null||autoNodeLogList.size()==0){
-                                log.setAutoNodeId(autoNode.getId());
-                                log.setOrderId(task.getOrderId());
-                                log.setTaskId(task.getId());
-                                log.setExeStatus("2");
-                                log.setStartTime(new Date());
-                                log.setFeedbackFile(fileName);
-                                autoNodeLogMapper.insert(log);
-                            }else{
-                                log = autoNodeLogList.get(0);
-                                log.setFeedbackFile(fileName);
-                            }
-                            //推送
-                            this.pushTask(task);
-
-                            logger.info("===============================请求地址"+autoProgrameUrl);
-                            String returnData = "";
-                            try {
-                                returnData = restTemplate.getForObject(autoProgrameUrl, String.class);
-                            }catch(Exception e){
-                                e.printStackTrace();
-                                logger.error("调用接口发生异常"+e.getMessage());
-                            }
-                            logger.info("===============================接口返回"+returnData);
-                            if("success".equals(returnData)){
-                            //TODO
-                            //if(1==1){
-                                //判断值是否需要循环自检
-                                if("1".equals(autoNode.getSelfExamine())){//需要自检的,需要停顿一会,避免取数不及时
-                                    Thread.sleep(1500L);
-                                    String b = polling(task,autoNode,fileName);
-                                    if("0".equals(b)){//需要跳出
-                                        //插入执行日志
-                                        log.setExeResult("0");
-                                        autoNodeLogMapper.updateAllById(log);
-                                        f = true;
-                                        break;
-                                    }
-
-                                }
-                                //插入执行日志
-                                log.setExeStatus("3");
-                                log.setExeResult("1");
-                                log.setEndTime(new Date());
-                                autoNodeLogMapper.updateAllById(log);
-                                //把当前完成的节点放入缓存,用于推送任务完成的百分比
-                                NumberFormat numberFormat = NumberFormat.getInstance();
-                                numberFormat.setMaximumFractionDigits(2);
-                                redisTemplate.opsForValue().set(CacheKey.TASK_CURRENT_NODE_PERCENT+"_"+task.getResourceId(), numberFormat.format(100*(float)(i+1) /(float)autoNodeList.size()));
-                                task.setProcess(Double.parseDouble(numberFormat.format(100*(float)(i+1) /(float)autoNodeList.size())));
-                                if(i==autoNodeList.size()-1){
-                                    task.setStatus("3");
-                                    task.setEndTime(new Date());
-                                    taskMapper.updateById(task);
-                                    //推送
-                                    //删除正在执行的缓存
-                                    redisTemplate.delete(CacheKey.PRESOURCE_CURRENT_TASK+"_"+task.getResourceId());
-                                    redisTemplate.delete(CacheKey.PRESOURCE_CURRENT_TASK_OBJECT+"_"+task.getResourceId());
-                                    redisTemplate.delete(CacheKey.TASK_CURRENT_NODE+"_"+task.getResourceId());
-                                    this.pushTask(task);
-                                }else{//主要更新完成比例
-                                    taskMapper.updateById(task);
-                                }
-                            }else{//TODO
-                                //插入执行日志
-                                log.setExeResult("0");
-                                autoNodeLogMapper.updateAllById(log);
-                                f = true;
-                                break;
-                            }
-                        }
-                    }else{//没有节点直接改成已完成
-                        task.setStatus("3");
-                        task.setEndTime(new Date());
-                        taskMapper.updateById(task);
-                    }
-                    if(f){
-                        break;
-                    }
-                }catch (Exception e){
-                    e.printStackTrace();
-                    logger.info("===============================接口返回",e);
-                }finally {
-                    //删除正在执行的缓存
-                    redisTemplate.delete(CacheKey.PRESOURCE_CURRENT_TASK+"_"+task.getResourceId());
-                    redisTemplate.delete(CacheKey.PRESOURCE_CURRENT_TASK_OBJECT+"_"+task.getResourceId());
-                    redisTemplate.delete(CacheKey.TASK_CURRENT_NODE+"_"+task.getResourceId());
-
-                }
-            }
-        }
-
-        //设置计划结束
-        planMapper.updateproduceStatusFinish();
-        ////设置订单结束
-        orderMapper.updateproduceStatusFinish();
-
-
-    }
-
-    public String polling(TTask task,AutoNode autoNode,String fileName)throws Exception{
-        String port = task.getPort();
-        String redisData = "";
-        try {
-            redisData =   redisTemplate.opsForValue().get(task.getIp()+":"+port).toString();
-        }catch (Exception e){
-            Thread.sleep(1000);
-            logger.error("缓存获取异常",e);
-            return polling(task,autoNode,fileName);
-        }
-
-        JSONObject returnJson = JSONObject.parseObject(redisData);
-        String conf = autoNode.getExamineMatchConf();
-        JSONObject confJson = JSONObject.parseObject(conf);
-
-        /*if(!testbreak(returnJson,confJson)){//需要跳出
-            return "0";
-        }*/
-
-        if(!testSuccess(returnJson,confJson,fileName)){//尚未成功
-            Thread.sleep(1000);
-            return polling(task,autoNode,fileName);
-        }else{
-            return "1";
-        }
-    }
-
-
-    /**
-     * 自检的数据,从缓存验证是否成功
-     * @param returnJson
-     * @param confJson
-     * @return
-     */
-    public boolean testbreak(JSONObject returnJson,JSONObject confJson){
-        boolean f = true;
-        String proRunState = returnJson.get("ProRunState")==null?"":returnJson.get("ProRunState").toString();
-        //先写死,后面要考虑怎么配置。
-        if("2".equals(proRunState)||"3".equals(proRunState)){
-            f = false;
-        }
-        /*for(String key:confJson.keySet()){
-            if(returnJson.containsKey(key)){
-                if(returnJson.getString(key)!=null&&returnJson.getString(key).equals(confJson.getString(key))){
-                    f = false;
-                    break;
-                }
-            }
-        }*/
-        return f;
-    }
-
-    /**
-     * 自检的数据,从缓存验证是否成功
-     * @param returnJson
-     * @param confJson
-     * @return
-     */
-    public boolean testSuccess(JSONObject returnJson,JSONObject confJson,String fileName){
-        boolean f = true;
-        String mainProgNo = returnJson.getString("MainProgNo").toUpperCase();
-        String tmpFileName = fileName.replace(".","_").toUpperCase();
-
-        for(String key:confJson.keySet()){
-            if(!mainProgNo.endsWith(tmpFileName)){
-                logger.info("================================hhh"+mainProgNo);
-                logger.info("*****************************"+tmpFileName);
-                f = false;
-                break;
-            }
-            if(returnJson.containsKey(key)){
-                if(returnJson.getString(key)!=null&&!returnJson.getString(key).equals(confJson.getString(key))){
-                    f = false;
-                    break;
-                }
-            }
-        }
-        return f;
-    }
-
-
-    public void pushTask(TTask task){
-        Map<String,Object>rmap = new HashMap<>();
-        rmap.put("id",task.getResourceId());
-        Map<String,Object> pmap = taskService.getExeTaskByResourceList(rmap);
-        try {
-                Object o = pmap.get("orderList");
-                Map<String,Object >pushMap = new HashMap<>();
-                pushMap.put("type",WebSocketServer.PUSH_TYPE_RESOURCE_TASK);
-                pushMap.put(String.valueOf(task.getResourceId()),pmap);
-                String pushMsg = JSONObject.toJSONString(pushMap);
-                webSocketServer.BroadCastInfo(pushMsg);
-        }catch (Exception e){
-            logger.error("推送异常======"+logger);
-        }
-    }
-}
-
+//package com.github.zuihou.job;
+//
+//import com.alibaba.fastjson.JSONObject;
+//import com.github.zuihou.authority.service.common.ParameterService;
+//import com.github.zuihou.business.operationManagementCenter.dao.OrderMapper;
+//import com.github.zuihou.business.operationManagementCenter.dao.PlanMapper;
+//import com.github.zuihou.business.operationManagementCenter.dao.TTaskMapper;
+//import com.github.zuihou.business.operationManagementCenter.entity.TTask;
+//import com.github.zuihou.business.operationManagementCenter.service.TaskService;
+//import com.github.zuihou.business.productionReadyCenter.dao.AutoNodeLogMapper;
+//import com.github.zuihou.business.productionReadyCenter.dao.AutoNodeMapper;
+//import com.github.zuihou.business.productionReadyCenter.entity.AAutoNodeLog;
+//import com.github.zuihou.business.productionReadyCenter.entity.AutoNode;
+//import com.github.zuihou.business.productionReadyCenter.service.AutoNodeService;
+//import com.github.zuihou.business.websocket.WebSocketServer;
+//import com.github.zuihou.common.constant.CacheKey;
+//import com.github.zuihou.common.constant.ParameterKey;
+//import com.github.zuihou.context.BaseContextHandler;
+//import com.github.zuihou.database.mybatis.conditions.Wraps;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.data.redis.core.RedisTemplate;
+//import org.springframework.stereotype.Component;
+//import org.springframework.web.client.RestTemplate;
+//
+//import javax.annotation.Resource;
+//import java.text.NumberFormat;
+//import java.util.*;
+//
+//@Component
+//public class TaskJobs {
+//    @Autowired
+//    private TaskService taskService;
+//    @Autowired
+//    private AutoNodeService autoNodeService;
+//    @Autowired
+//    private OrderMapper orderMapper;
+//    @Autowired
+//    private PlanMapper planMapper;
+//    @Autowired
+//    private AutoNodeMapper autoNodeMapper;
+//    @Autowired
+//    private TTaskMapper taskMapper;
+//    @Autowired
+//    private AutoNodeLogMapper autoNodeLogMapper;
+//    @Autowired
+//    private BomProcedureProgramGroupMapper bomProcedureProgramGroupMapper;
+//    @Autowired
+//    private ParameterService parameterService;
+//    @Resource
+//    private RestTemplate restTemplate;
+//    @Autowired
+//    private RedisTemplate<String,Object> redisTemplate;
+//    @Autowired
+//    private WebSocketServer webSocketServer;
+//    private static Logger logger = LoggerFactory.getLogger(TaskJobs.class);
+//    //@Scheduled(cron="*/9 * * * * ?")  //9秒执行一次
+//    public void updateTaskStatusJob(){
+//        BaseContextHandler.setTenant("0000");
+//
+//        String temUrl = parameterService.getValue(ParameterKey.AUTOPROGRAMEURL, null);
+//        //String autoProgrameUrl = parameterService.getValue(ParameterKey.AUTOPROGRAMEURL, null);
+//        //查出待执行的任务
+//        //List<TTask> taskList = taskService.list(Wraps.<TTask>lbQ().eq(TTask::getStatus,"1").eq(TTask::getDraftFlag,"0").le(TTask::getExpectStartTime,new Date()));
+//        Map qMap = new HashMap();
+//        qMap.put("mulstatus","1");
+//        List<TTask> taskList = taskMapper.getPrepareTask(qMap);
+//
+//        //计划,订单MAP,用做提升性能,本次更新过的就不更新了
+//        Map<String,String>planMap = new HashMap<String,String>();
+//        Map<String,String>OrderMap = new HashMap<String,String>();
+//        if(taskList!=null&&taskList.size()>0){
+//            for(TTask task:taskList){
+//                try{
+//                    //把本次待执行任务全部改成进行中
+//                    //taskMapper.updateTaskBegin();
+//                    task.setStatus("2");
+//                    task.setStartTime(new Date());
+//                    taskMapper.updateById(task);
+//                    if(!planMap.containsKey(String.valueOf(task.getPlanId()))){
+//                        //设置计划开始
+//                        planMapper.updateproduceStatusBegin();
+//                        planMap.put(String.valueOf(task.getPlanId()),String.valueOf(task.getPlanId()));
+//                    }
+//
+//                    if(!OrderMap.containsKey(String.valueOf(task.getOrderId()))){
+//                        ////设置订单开始
+//                        orderMapper.updateproduceStatusBegin();
+//                        OrderMap.put(String.valueOf(task.getOrderId()),String.valueOf(task.getOrderId()));
+//                    }
+//                    redisTemplate.opsForValue().set(CacheKey.PRESOURCE_CURRENT_TASK+"_"+task.getResourceId(), task.getId());
+//                    redisTemplate.opsForValue().set(CacheKey.PRESOURCE_CURRENT_TASK_OBJECT+"_"+task.getResourceId(), task);
+//                    boolean f = false;
+//                    //执行任务对应的自动化程序
+//                    AutoNode model = new AutoNode();
+//                    model.setProcedureId(task.getProcedureId());
+//                    List<AutoNode> autoNodeList = autoNodeMapper.getNodeList(model);
+//                    if(autoNodeList!=null&&autoNodeList.size()>0){
+//                        Map queryMap = new HashMap<>();
+//                        queryMap.put("procedureId",task.getProcedureId());
+//                        queryMap.put("haveFile","1");
+//                        List<BomProcedureProgramGroup>bomProcedureProgramGroupList = bomProcedureProgramGroupMapper.getProgramGroupList(queryMap);
+//                        for(int i = 0;i<autoNodeList.size();i++){
+//                            String autoProgrameUrl = temUrl;
+//                            AutoNode autoNode = autoNodeList.get(i);
+//                            //把当前节点存放缓存
+//                            redisTemplate.opsForValue().set(CacheKey.TASK_CURRENT_NODE+"_"+task.getResourceId(), autoNode.getId());
+//                            String code = autoNode.getCode();
+//                            autoProgrameUrl+="?func="+code;
+//                            autoProgrameUrl+="&ip="+task.getIp()+"&port="+task.getPort();
+//                            String fileName = "";
+//                            if(bomProcedureProgramGroupList!=null&&bomProcedureProgramGroupList.size()>0){
+//                                fileName = bomProcedureProgramGroupList.get(0).getSubmittedFileName();
+//                                autoProgrameUrl+="&fileName="+fileName;
+//                            }
+//                            List<AAutoNodeLog> autoNodeLogList = autoNodeLogMapper.selectList(Wraps.<AAutoNodeLog>lbQ().eq(AAutoNodeLog::getAutoNodeId,autoNode.getId()).eq(AAutoNodeLog::getTaskId,task.getId()));
+//                            //插入执行日志
+//                            AAutoNodeLog log = new AAutoNodeLog();
+//                            if(autoNodeLogList==null||autoNodeLogList.size()==0){
+//                                log.setAutoNodeId(autoNode.getId());
+//                                log.setOrderId(task.getOrderId());
+//                                log.setTaskId(task.getId());
+//                                log.setExeStatus("2");
+//                                log.setStartTime(new Date());
+//                                log.setFeedbackFile(fileName);
+//                                autoNodeLogMapper.insert(log);
+//                            }else{
+//                                log = autoNodeLogList.get(0);
+//                                log.setFeedbackFile(fileName);
+//                            }
+//                            //推送
+//                            this.pushTask(task);
+//
+//                            logger.info("===============================请求地址"+autoProgrameUrl);
+//                            String returnData = "";
+//                            try {
+//                                returnData = restTemplate.getForObject(autoProgrameUrl, String.class);
+//                            }catch(Exception e){
+//                                e.printStackTrace();
+//                                logger.error("调用接口发生异常"+e.getMessage());
+//                            }
+//                            logger.info("===============================接口返回"+returnData);
+//                            if("success".equals(returnData)){
+//                            //TODO
+//                            //if(1==1){
+//                                //判断值是否需要循环自检
+//                                if("1".equals(autoNode.getSelfExamine())){//需要自检的,需要停顿一会,避免取数不及时
+//                                    Thread.sleep(1500L);
+//                                    String b = polling(task,autoNode,fileName);
+//                                    if("0".equals(b)){//需要跳出
+//                                        //插入执行日志
+//                                        log.setExeResult("0");
+//                                        autoNodeLogMapper.updateAllById(log);
+//                                        f = true;
+//                                        break;
+//                                    }
+//
+//                                }
+//                                //插入执行日志
+//                                log.setExeStatus("3");
+//                                log.setExeResult("1");
+//                                log.setEndTime(new Date());
+//                                autoNodeLogMapper.updateAllById(log);
+//                                //把当前完成的节点放入缓存,用于推送任务完成的百分比
+//                                NumberFormat numberFormat = NumberFormat.getInstance();
+//                                numberFormat.setMaximumFractionDigits(2);
+//                                redisTemplate.opsForValue().set(CacheKey.TASK_CURRENT_NODE_PERCENT+"_"+task.getResourceId(), numberFormat.format(100*(float)(i+1) /(float)autoNodeList.size()));
+//                                task.setProcess(Double.parseDouble(numberFormat.format(100*(float)(i+1) /(float)autoNodeList.size())));
+//                                if(i==autoNodeList.size()-1){
+//                                    task.setStatus("3");
+//                                    task.setEndTime(new Date());
+//                                    taskMapper.updateById(task);
+//                                    //推送
+//                                    //删除正在执行的缓存
+//                                    redisTemplate.delete(CacheKey.PRESOURCE_CURRENT_TASK+"_"+task.getResourceId());
+//                                    redisTemplate.delete(CacheKey.PRESOURCE_CURRENT_TASK_OBJECT+"_"+task.getResourceId());
+//                                    redisTemplate.delete(CacheKey.TASK_CURRENT_NODE+"_"+task.getResourceId());
+//                                    this.pushTask(task);
+//                                }else{//主要更新完成比例
+//                                    taskMapper.updateById(task);
+//                                }
+//                            }else{//TODO
+//                                //插入执行日志
+//                                log.setExeResult("0");
+//                                autoNodeLogMapper.updateAllById(log);
+//                                f = true;
+//                                break;
+//                            }
+//                        }
+//                    }else{//没有节点直接改成已完成
+//                        task.setStatus("3");
+//                        task.setEndTime(new Date());
+//                        taskMapper.updateById(task);
+//                    }
+//                    if(f){
+//                        break;
+//                    }
+//                }catch (Exception e){
+//                    e.printStackTrace();
+//                    logger.info("===============================接口返回",e);
+//                }finally {
+//                    //删除正在执行的缓存
+//                    redisTemplate.delete(CacheKey.PRESOURCE_CURRENT_TASK+"_"+task.getResourceId());
+//                    redisTemplate.delete(CacheKey.PRESOURCE_CURRENT_TASK_OBJECT+"_"+task.getResourceId());
+//                    redisTemplate.delete(CacheKey.TASK_CURRENT_NODE+"_"+task.getResourceId());
+//
+//                }
+//            }
+//        }
+//
+//        //设置计划结束
+//        planMapper.updateproduceStatusFinish();
+//        ////设置订单结束
+//        orderMapper.updateproduceStatusFinish();
+//
+//
+//    }
+//
+//    public String polling(TTask task,AutoNode autoNode,String fileName)throws Exception{
+//        String port = task.getPort();
+//        String redisData = "";
+//        try {
+//            redisData =   redisTemplate.opsForValue().get(task.getIp()+":"+port).toString();
+//        }catch (Exception e){
+//            Thread.sleep(1000);
+//            logger.error("缓存获取异常",e);
+//            return polling(task,autoNode,fileName);
+//        }
+//
+//        JSONObject returnJson = JSONObject.parseObject(redisData);
+//        String conf = autoNode.getExamineMatchConf();
+//        JSONObject confJson = JSONObject.parseObject(conf);
+//
+//        /*if(!testbreak(returnJson,confJson)){//需要跳出
+//            return "0";
+//        }*/
+//
+//        if(!testSuccess(returnJson,confJson,fileName)){//尚未成功
+//            Thread.sleep(1000);
+//            return polling(task,autoNode,fileName);
+//        }else{
+//            return "1";
+//        }
+//    }
+//
+//
+//    /**
+//     * 自检的数据,从缓存验证是否成功
+//     * @param returnJson
+//     * @param confJson
+//     * @return
+//     */
+//    public boolean testbreak(JSONObject returnJson,JSONObject confJson){
+//        boolean f = true;
+//        String proRunState = returnJson.get("ProRunState")==null?"":returnJson.get("ProRunState").toString();
+//        //先写死,后面要考虑怎么配置。
+//        if("2".equals(proRunState)||"3".equals(proRunState)){
+//            f = false;
+//        }
+//        /*for(String key:confJson.keySet()){
+//            if(returnJson.containsKey(key)){
+//                if(returnJson.getString(key)!=null&&returnJson.getString(key).equals(confJson.getString(key))){
+//                    f = false;
+//                    break;
+//                }
+//            }
+//        }*/
+//        return f;
+//    }
+//
+//    /**
+//     * 自检的数据,从缓存验证是否成功
+//     * @param returnJson
+//     * @param confJson
+//     * @return
+//     */
+//    public boolean testSuccess(JSONObject returnJson,JSONObject confJson,String fileName){
+//        boolean f = true;
+//        String mainProgNo = returnJson.getString("MainProgNo").toUpperCase();
+//        String tmpFileName = fileName.replace(".","_").toUpperCase();
+//
+//        for(String key:confJson.keySet()){
+//            if(!mainProgNo.endsWith(tmpFileName)){
+//                logger.info("================================hhh"+mainProgNo);
+//                logger.info("*****************************"+tmpFileName);
+//                f = false;
+//                break;
+//            }
+//            if(returnJson.containsKey(key)){
+//                if(returnJson.getString(key)!=null&&!returnJson.getString(key).equals(confJson.getString(key))){
+//                    f = false;
+//                    break;
+//                }
+//            }
+//        }
+//        return f;
+//    }
+//
+//
+//    public void pushTask(TTask task){
+//        Map<String,Object>rmap = new HashMap<>();
+//        rmap.put("id",task.getResourceId());
+//        Map<String,Object> pmap = taskService.getExeTaskByResourceList(rmap);
+//        try {
+//                Object o = pmap.get("orderList");
+//                Map<String,Object >pushMap = new HashMap<>();
+//                pushMap.put("type",WebSocketServer.PUSH_TYPE_RESOURCE_TASK);
+//                pushMap.put(String.valueOf(task.getResourceId()),pmap);
+//                String pushMsg = JSONObject.toJSONString(pushMap);
+//                webSocketServer.BroadCastInfo(pushMsg);
+//        }catch (Exception e){
+//            logger.error("推送异常======"+logger);
+//        }
+//    }
+//}
+//

+ 519 - 522
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/mq/TaskWork.java

@@ -1,523 +1,520 @@
-package com.github.zuihou.business.mq;
-
-import com.alibaba.fastjson.JSONObject;
-import com.github.zuihou.authority.service.common.ParameterService;
-import com.github.zuihou.base.R;
-import com.github.zuihou.business.operationManagementCenter.dao.OrderMapper;
-import com.github.zuihou.business.operationManagementCenter.dao.PlanMapper;
-import com.github.zuihou.business.operationManagementCenter.dao.TTaskMapper;
-import com.github.zuihou.business.operationManagementCenter.dao.TaskNodeMapper;
-import com.github.zuihou.business.operationManagementCenter.entity.Order;
-import com.github.zuihou.business.operationManagementCenter.entity.TTask;
-import com.github.zuihou.business.operationManagementCenter.entity.TaskNode;
-import com.github.zuihou.business.operationManagementCenter.service.TaskNodeService;
-import com.github.zuihou.business.operationManagementCenter.service.TaskService;
-import com.github.zuihou.business.productionReadyCenter.dao.AutoNodeLogMapper;
-import com.github.zuihou.business.productionReadyCenter.dao.AutoNodeMapper;
-import com.github.zuihou.business.productionReadyCenter.dao.BomProcedureProgramGroupMapper;
-import com.github.zuihou.business.productionReadyCenter.entity.AAutoNodeLog;
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgramGroup;
-import com.github.zuihou.business.productionReadyCenter.service.AutoNodeService;
-import com.github.zuihou.business.util.DynamicRabbitMq;
-import com.github.zuihou.business.util.MsgUtil;
-import com.github.zuihou.business.websocket.WebSocketServer;
-import com.github.zuihou.common.constant.BizConstant;
-import com.github.zuihou.common.constant.CacheKey;
-import com.github.zuihou.common.constant.ParameterKey;
-import com.github.zuihou.common.util.StringUtil;
-import com.github.zuihou.context.BaseContextHandler;
-import com.github.zuihou.database.mybatis.conditions.Wraps;
-import com.google.common.collect.Maps;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.http.HttpEntity;
-import org.springframework.stereotype.Component;
-import org.springframework.web.client.RestTemplate;
-
-import java.text.NumberFormat;
-import java.util.*;
-
-@Component
-public class TaskWork {
-    @Autowired
-    private TaskService taskService;
-    @Autowired
-    private AutoNodeService autoNodeService;
-    @Autowired
-    private OrderMapper orderMapper;
-    @Autowired
-    private PlanMapper planMapper;
-    @Autowired
-    private TTaskMapper taskMapper;
-    @Autowired
-    private AutoNodeLogMapper autoNodeLogMapper;
-    @Autowired
-    private BomProcedureProgramGroupMapper bomProcedureProgramGroupMapper;
-    @Autowired
-    private ParameterService parameterService;
-    @Autowired
-    private RestTemplate restTemplate;
-    @Autowired
-    private RedisTemplate<String,Object> redisTemplate;
-    @Autowired
-    private TaskNodeService taskNodeService;
-
-    @Autowired
-    private TaskNodeMapper taskNodeMapper;
-
-    @Autowired
-    private DynamicRabbitMq dynamicRabbitMq;
-
-    //总控IP
-    private String ZK_ip = "192.168.1.41";
-
-    //总控端口
-    private String ZK_port="4840";
-
-    @Autowired
-    private MsgUtil msgUtil;
-
-    private static Logger logger = LoggerFactory.getLogger(TaskWork.class);
-    //@Scheduled(cron="*/9 * * * * ?")  //9秒执行一次
-    public void updateTaskStatusJob1(String taskId){
-        logger.info("======================="+taskId);
-        BaseContextHandler.setTenant("0000");
-
-        //String temUrl = parameterService.getValue(ParameterKey.AUTOPROGRAMEURL, null);
-        //String autoProgrameUrl = parameterService.getValue(ParameterKey.AUTOPROGRAMEURL, null);
-        //查出待执行的任务
-        //List<TTask> taskList = taskService.list(Wraps.<TTask>lbQ().eq(TTask::getStatus,"1").eq(TTask::getDraftFlag,"0").le(TTask::getExpectStartTime,new Date()));
-        Map qMap = new HashMap();
-        qMap.put("mulstatus",StringUtil.changeIdsArrToSubQueryStr("1,2"));
-        qMap.put("id",taskId);
-        List<TTask> taskList = taskMapper.getPrepareTask(qMap);
-
-        //计划,订单MAP,用做提升性能,本次更新过的就不更新了
-        Map<String,String>planMap = new HashMap<String,String>();
-        Map<String,String>OrderMap = new HashMap<String,String>();
-        if(taskList!=null&&taskList.size()>0){
-            for(TTask task:taskList){
-                try{
-                    //把本次待执行任务全部改成进行中
-                    //taskMapper.updateTaskBegin();
-                    if("1".equals(task.getStatus())){//下发的数据才更新状态
-                        task.setStatus("2").setStartTime(new Date());
-                        taskMapper.updateById(task);
-                        if(!planMap.containsKey(String.valueOf(task.getPlanId()))){
-                            //设置计划开始
-                            planMapper.updateproduceStatusBegin();
-                            planMap.put(String.valueOf(task.getPlanId()),String.valueOf(task.getPlanId()));
-                        }
-
-                        if(!OrderMap.containsKey(String.valueOf(task.getOrderId()))){
-                            ////设置订单开始
-                            orderMapper.updateproduceStatusBegin();
-                            OrderMap.put(String.valueOf(task.getOrderId()),String.valueOf(task.getOrderId()));
-                        }
-                    }
-                    msgUtil.redis_set(CacheKey.PRESOURCE_CURRENT_TASK+"_"+task.getResourceId(), task.getId());
-                    msgUtil.redis_set(CacheKey.PRESOURCE_CURRENT_TASK_OBJECT+"_"+task.getResourceId(), task);
-                    boolean f = false;
-                    //执行任务对应的自动化程序
-                    /*AutoNode model = new AutoNode();
-                    model.setProcedureId(task.getProcedureId());
-                    List<AutoNode> autoNodeList = autoNodeMapper.getNodeList(model);*/
-                    Map map = new HashMap();
-                    map.put("taskId",task.getId());
-                    List<TaskNode>taskNodeList = taskNodeService.getTaskNodeList(map);
-
-                    if(taskNodeList!=null&&taskNodeList.size()>0){
-                        Map queryMap = new HashMap<>();
-                        queryMap.put("procedureId",task.getProcedureId());
-                        queryMap.put("haveFile","1");
-                        List<BomProcedureProgramGroup>bomProcedureProgramGroupList = bomProcedureProgramGroupMapper.getProgramGroupList(queryMap);
-                        for(int i = 0;i<taskNodeList.size();i++){
-                            String autoProgrameUrl = "";
-                            TaskNode taskNode = taskNodeList.get(i);
-                            //对接接口类型
-                            if("01".equals(taskNode.getInterfaceType())){//总控
-                                autoProgrameUrl = parameterService.getValue(ParameterKey.PLCPROGRAMEURL, null);
-                            }else{
-                                autoProgrameUrl = parameterService.getValue(ParameterKey.AUTOPROGRAMEURL, null);
-                            }
-
-                            //把当前节点存放缓存
-                            msgUtil.redis_set(CacheKey.TASK_CURRENT_NODE+"_"+task.getResourceId(), taskNode.getAutoNode().getId());
-//                            String code = taskNode.getAutoNodeCode();
-//                            autoProgrameUrl+="?func="+code;
-//                            autoProgrameUrl+="&ip="+task.getIp()+"&port="+task.getPort();
-                            String fileName = "";
-                            if(bomProcedureProgramGroupList!=null&&bomProcedureProgramGroupList.size()>0){
-                                    fileName = bomProcedureProgramGroupList.get(0).getSubmittedFileName();
-                                    //autoProgrameUrl+="&fileName="+fileName;
-                            }
-                            List<AAutoNodeLog> autoNodeLogList = autoNodeLogMapper.selectList(Wraps.<AAutoNodeLog>lbQ().eq(AAutoNodeLog::getTaskNodeId,taskNode.getId()));
-                            //插入执行日志
-                            AAutoNodeLog log = new AAutoNodeLog();
-                            if(autoNodeLogList==null||autoNodeLogList.size()==0){
-                                log.setTaskNodeId(taskNode.getId()).setAutoNodeId(taskNode.getAutoNode().getTaskId())
-                                   .setOrderId(task.getOrderId()).setTaskId(task.getId()).setExeStatus("2")
-                                   .setStartTime(new Date()).setFeedbackFile(fileName);
-                                autoNodeLogMapper.insert(log);
-                            }else{
-                                log = autoNodeLogList.get(0);
-                                log.setFeedbackFile(fileName);
-                            }
-
-                            //更新节点任务
-                            taskNode.setExeStatus("2");
-                            taskNode.setStartTime(new Date());
-                            taskNodeMapper.updateAllById(taskNode);
-
-                            //推送
-                            this.pushTask(task);
-
-                            logger.info("===============================请求地址"+autoProgrameUrl);
-                            String returnData = "";
-                            try {
-                                if(!"0".equals(taskNode.getNodeType())){//人工上下料或质检
-                                    //不用调接口,直接返回成功
-                                    returnData = "success";
-                                }else{
-                                    String jsonParam = getRequestParam(taskNode,task,bomProcedureProgramGroupList);
-                                    HttpEntity<String> formEntity = new HttpEntity<String>(jsonParam);
-                                    returnData = restTemplate.postForObject(autoProgrameUrl,formEntity, String.class);
-                                }
-                            }catch(Exception e){
-                                e.printStackTrace();
-                                JSONObject errJsonObject = new JSONObject();
-                                errJsonObject.put("msg",e.getMessage());
-                                returnData = errJsonObject.toJSONString();
-                                logger.error("调用接口发生异常"+e.getMessage());
-                            }
-                            logger.info("===============================接口返回"+returnData);
-                            if(returnData.indexOf("success")>=0){
-                            //TODO
-//                            if(1==1){
-                                //判断值是否需要循环自检
-                                if(!"0".equals(taskNode.getNodeType())){//人工上下料或质检
-                                    msgUtil.redis_set(CacheKey.TASK_CURRENT_NODE_STATUS+"_"+taskNode.getId(), "0");
-                                    String b = checkLoading(taskNode);
-                                }else{//调用机器
-                                    if("1".equals(taskNode.getSelfExamine())){//需要自检的,需要停顿一会,避免取数不及时
-                                        Thread.sleep(1500L);
-                                        String b = polling(task,taskNode,fileName);
-                                        if("0".equals(b)){//需要跳出
-                                            //插入执行日志
-                                            log.setExeResult("0");
-                                            autoNodeLogMapper.updateAllById(log);
-                                            f = true;
-                                            break;
-                                        }else{//需要复位
-                                            //成功后需要复位
-                                            if(autoNodeService.getNodeTypeReset(taskNode.getAutoNodeCode())){
-                                                String jsonParam = getResetRequestParam(taskNode,task);
-                                                HttpEntity<String> formEntity = new HttpEntity<String>(jsonParam);
-                                                returnData = restTemplate.postForObject(autoProgrameUrl,formEntity, String.class);
-                                                if(returnData.indexOf("success")<0){
-                                                    //插入执行日志
-                                                    log.setExeResult("0");
-                                                    JSONObject jsonErrorObject  = JSONObject.parseObject(returnData);
-                                                    log.setFeedback(jsonErrorObject.getString("msg"));
-                                                    autoNodeLogMapper.updateAllById(log);
-                                                    f = true;
-                                                    break;
-                                                }
-                                            }
-                                        }
-                                    }
-                                }
-                                //处理出库入库
-                                R<String> r = taskNodeService.taskNodeStock(taskNode, task);
-                                //插入执行日志
-                                log.setExeStatus("3");
-                                if(r.getIsSuccess()){
-                                    log.setExeResult("1").setEndTime(new Date());
-                                    autoNodeLogMapper.updateAllById(log);
-                                }else{
-                                    log.setExeResult("0").setFeedback(r.getMsg()).setEndTime(new Date());
-                                    autoNodeLogMapper.updateAllById(log);
-                                    f = true;
-                                    break;
-                                }
-
-                                //更新节点任务
-                                taskNode.setExeStatus("3").setExeResult("1").setEndTime(new Date());
-                                taskNodeMapper.updateAllById(taskNode);
-
-                                //把当前完成的节点放入缓存,用于推送任务完成的百分比
-                                NumberFormat numberFormat = NumberFormat.getInstance();
-                                numberFormat.setMaximumFractionDigits(2);
-                                msgUtil.redis_set(CacheKey.TASK_CURRENT_NODE_PERCENT+"_"+task.getResourceId(), numberFormat.format(100*(float)(i+1) /(float)taskNodeList.size()));
-                                task.setProcess(Double.parseDouble(numberFormat.format(100*(float)(i+1) /(float)taskNodeList.size())));
-                                if(i==taskNodeList.size()-1){
-                                    task.setStatus("3");
-                                    task.setEndTime(new Date());
-                                    taskMapper.updateById(task);
-                                    //推送
-                                    //删除正在执行的缓存
-                                    msgUtil.redis_del(Arrays.asList(new String[] {CacheKey.PRESOURCE_CURRENT_TASK+"_"+task.getResourceId(),CacheKey.PRESOURCE_CURRENT_TASK_OBJECT+"_"+task.getResourceId(),CacheKey.TASK_CURRENT_NODE+"_"+task.getResourceId()}));
-                                    this.pushTask(task);
-                                }else{//主要更新完成比例
-                                    taskMapper.updateById(task);
-                                }
-                            }else{//TODO
-                                //插入执行日志
-                                log.setExeResult("0");
-                                JSONObject jsonErrorObject  = JSONObject.parseObject(returnData);
-                                log.setFeedback(jsonErrorObject.getString("msg"));
-                                autoNodeLogMapper.updateAllById(log);
-                                f = true;
-                                break;
-                            }
-
-                            //更新订单表里的完成数量等等字段
-                            if(i==0&&"1".equals(task.getFirstProcedureFlag())){
-                                Order order = orderMapper.selectById(task.getOrderId());
-                                order.setProduceNum((order.getProduceNum()==null?0:order.getProduceNum())+1);
-                                orderMapper.updateAllById(order);
-                            }
-                            //更新订单表里的完成数量等等字段,一个任务执行完的时候更相信
-                            if(i==taskNodeList.size()-1&&"1".equals(task.getLastProcedureFlag())){
-                                Order order = orderMapper.selectById(task.getOrderId());
-                                order.setCompleteNum((order.getCompleteNum()==null?0:order.getCompleteNum())+1);
-                                orderMapper.updateAllById(order);
-
-                                //设置计划结束
-                                planMapper.updateproduceStatusFinish();
-                                ////设置订单结束
-                                orderMapper.updateproduceStatusFinish();
-                            }
-                        }
-                    }else{//没有节点直接改成已完成
-                        task.setStatus("3").setEndTime(new Date());
-                        taskMapper.updateById(task);
-                    }
-                    if(f){
-                        break;
-                    }
-                }catch (Exception e){
-                    e.printStackTrace();
-                    logger.info("===============================接口返回",e);
-                }finally {
-                    //删除正在执行的缓存
-                    msgUtil.redis_del(Arrays.asList(new String[] {CacheKey.PRESOURCE_CURRENT_TASK+"_"+task.getResourceId(),CacheKey.PRESOURCE_CURRENT_TASK_OBJECT+"_"+task.getResourceId(),CacheKey.TASK_CURRENT_NODE+"_"+task.getResourceId()}));
-                }
-            }
-            //查询出下一个任务,并推送到设备上
-            TTask task = taskList.get(0);
-            List<TTask>nextTaskList = taskService.list(Wraps.<TTask>lbQ().eq(TTask::getBomBatchNo,task.getBomBatchNo()).gt(TTask::getProcedureSort,task.getProcedureSort()).orderByAsc(TTask::getProcedureSort));
-            if(nextTaskList!=null&&nextTaskList.size()>0){
-                TTask t = nextTaskList.get(0);
-                dynamicRabbitMq.sendMsg(t.getResourceId().toString(),t.getId().toString());
-            }
-        }
-
-    }
-
-
-    public String checkLoading(TaskNode taskNode)throws Exception{
-        String redisData = "";
-        try {
-            redisData =   msgUtil.redis_get(CacheKey.TASK_CURRENT_NODE_STATUS+"_"+taskNode.getId()).toString();
-        }catch (Exception e){
-            Thread.sleep(1000);
-            logger.error("缓存获取异常",e);
-            return checkLoading(taskNode);
-        }
-
-        if(!"1".equals(redisData)){
-            Thread.sleep(1000);
-            return checkLoading(taskNode);
-        }else{
-            msgUtil.redis_del(CacheKey.TASK_CURRENT_NODE_STATUS+"_"+taskNode.getId());
-            return "1";
-        }
-    }
-
-    public String polling(TTask task,TaskNode taskNode,String fileName)throws Exception{
-        String ip = task.getIp();
-        String port = task.getPort();
-        if(autoNodeService.getNodeTypeResourceLoading(taskNode.getAutoNodeCode())){
-            ip = ZK_ip;
-            port = ZK_port;
-        }
-        String redisData = "";
-        try {
-            redisData =   msgUtil.redis_get(ip+":"+port).toString();
-        }catch (Exception e){
-            Thread.sleep(1000);
-            logger.error("缓存获取异常",e);
-            return polling(task,taskNode,fileName);
-        }
-
-        JSONObject returnJson = JSONObject.parseObject(redisData);
-        String conf = taskNode.getExamineMatchConf();
-        JSONObject confJson = JSONObject.parseObject(conf);
-
-        /*if(!testbreak(returnJson,confJson)){//需要跳出
-            return "0";
-        }*/
-
-        if(autoNodeService.getNodeTypeResourceLoading(taskNode.getAutoNodeCode())){
-            if(!testSuccessResourceLoading(returnJson,confJson,fileName)){//尚未成功
-                Thread.sleep(1000);
-                return polling(task,taskNode,fileName);
-            }else{
-                return "1";
-            }
-        }else{
-            if(!testSuccess(returnJson,confJson,fileName)){//尚未成功
-                Thread.sleep(1000);
-                return polling(task,taskNode,fileName);
-            }else{
-                return "1";
-            }
-        }
-
-
-
-    }
-
-
-    /**
-     * 自检的数据,从缓存验证是否成功
-     * @param returnJson
-     * @param confJson
-     * @return
-     */
-    public boolean testbreak(JSONObject returnJson,JSONObject confJson){
-        boolean f = true;
-        String proRunState = returnJson.get("ProRunState")==null?"":returnJson.get("ProRunState").toString();
-        //先写死,后面要考虑怎么配置。
-        if("2".equals(proRunState)||"3".equals(proRunState)){
-            f = false;
-        }
-        /*for(String key:confJson.keySet()){
-            if(returnJson.containsKey(key)){
-                if(returnJson.getString(key)!=null&&returnJson.getString(key).equals(confJson.getString(key))){
-                    f = false;
-                    break;
-                }
-            }
-        }*/
-        return f;
-    }
-
-    /**
-     * 自检的数据,从缓存验证是否成功
-     * @param returnJson
-     * @param confJson
-     * @return
-     */
-    public boolean testSuccess(JSONObject returnJson,JSONObject confJson,String fileName){
-        boolean f = true;
-        String mainProgNo = returnJson.getString("MainProgNo").toUpperCase();
-        String tmpFileName = fileName.replace(".","_").toUpperCase();
-
-        for(String key:confJson.keySet()){
-            if(!mainProgNo.endsWith(tmpFileName)){
-                logger.info("================================hhh"+mainProgNo);
-                logger.info("*****************************"+tmpFileName);
-                f = false;
-                break;
-            }
-            if(returnJson.containsKey(key)){
-                if(returnJson.getString(key)!=null&&!returnJson.getString(key).equals(confJson.getString(key))){
-                    f = false;
-                    break;
-                }
-            }
-        }
-        return f;
-    }
-
-    /**
-     * 自检的数据,从缓存验证是否成功
-     * @param returnJson
-     * @param confJson
-     * @return
-     */
-    public boolean testSuccessResourceLoading(JSONObject returnJson,JSONObject confJson,String fileName){
-        boolean f = true;
-        for(String key:confJson.keySet()){
-            if(returnJson.containsKey(key)){
-                if(returnJson.getString(key)!=null&&!returnJson.getString(key).toUpperCase().equals(confJson.getString(key)==null?"":confJson.getString(key).toUpperCase())){
-                    f = false;
-                    break;
-                }
-            }
-        }
-        return f;
-    }
-
-
-    public void pushTask(TTask task){
-        Map<String,Object> rmap = Maps.newHashMap();
-        rmap.put("id",task.getResourceId());
-        Map<String,Object> pmap = taskService.getExeTaskByResourceList(rmap);
-        Object o = pmap.get("orderList");
-        Map<String,Object >pushMap = new HashMap<>();
-        pushMap.put("type",WebSocketServer.PUSH_TYPE_RESOURCE_TASK);
-        pushMap.put(String.valueOf(task.getResourceId()),pmap);
-        msgUtil.pushTask(task, pushMap);
-    }
-
-    /**
-     * 生成请求参数
-     * @param task
-     * @return
-     */
-    public String getRequestParam(TaskNode taskNode , TTask task, List<BomProcedureProgramGroup>bomProcedureProgramGroupList){
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("businessType",taskNode.getAutoNodeCode());
-        //机器上下料相关
-        if(autoNodeService.getNodeTypeResourceLoading(taskNode.getAutoNodeCode())){
-            jsonObject.put("url",ZK_ip);
-            jsonObject.put("port",ZK_port);
-        }else{
-            jsonObject.put("url",task.getIp());
-            jsonObject.put("port",task.getPort());
-        }
-
-        if(bomProcedureProgramGroupList!=null&&bomProcedureProgramGroupList.size()>0){
-            String fileName = bomProcedureProgramGroupList.get(0).getSubmittedFileName();
-            jsonObject.put("data",fileName);
-        }
-        logger.info("节点请求参数"+jsonObject.toJSONString());
-        return jsonObject.toJSONString();
-    }
-
-
-    /**
-     * 生成复位请求参数
-     * @param task
-     * @return
-     */
-    public String getResetRequestParam(TaskNode taskNode , TTask task){
-        JSONObject jsonObject = new JSONObject();
-
-        jsonObject.put("businessType",taskNode.getAutoNodeCode()+BizConstant.TASK_NODE_RESET_KEYWORD);
-//        if(BizConstant.TASK_NODE_DRYREQUEST.equals(taskNode.getAutoNodeCode())){
-//            jsonObject.put("businessType",BizConstant.TASK_NODE_RESET_DRYREQUEST);
-//        }else if(BizConstant.TASK_NODE_CLEANREQUEST.equals(taskNode.getAutoNodeCode())){
-//            jsonObject.put("businessType",BizConstant.TASK_NODE_RESET_CLEANREQUEST);
-//        }else if(BizConstant.TASK_NODE_MARKREQUEST.equals(taskNode.getAutoNodeCode())){
-//            jsonObject.put("businessType",BizConstant.TASK_NODE_RESET_MARKREQUEST);
+//package com.github.zuihou.business.mq;
+//
+//import com.alibaba.fastjson.JSONObject;
+//import com.github.zuihou.authority.service.common.ParameterService;
+//import com.github.zuihou.base.R;
+//import com.github.zuihou.business.operationManagementCenter.dao.OrderMapper;
+//import com.github.zuihou.business.operationManagementCenter.dao.PlanMapper;
+//import com.github.zuihou.business.operationManagementCenter.dao.TTaskMapper;
+//import com.github.zuihou.business.operationManagementCenter.dao.TaskNodeMapper;
+//import com.github.zuihou.business.operationManagementCenter.entity.Order;
+//import com.github.zuihou.business.operationManagementCenter.entity.TTask;
+//import com.github.zuihou.business.operationManagementCenter.entity.TaskNode;
+//import com.github.zuihou.business.operationManagementCenter.service.TaskNodeService;
+//import com.github.zuihou.business.operationManagementCenter.service.TaskService;
+//import com.github.zuihou.business.productionReadyCenter.dao.AutoNodeLogMapper;
+//import com.github.zuihou.business.productionReadyCenter.entity.AAutoNodeLog;
+//import com.github.zuihou.business.productionReadyCenter.service.AutoNodeService;
+//import com.github.zuihou.business.util.DynamicRabbitMq;
+//import com.github.zuihou.business.util.MsgUtil;
+//import com.github.zuihou.business.websocket.WebSocketServer;
+//import com.github.zuihou.common.constant.BizConstant;
+//import com.github.zuihou.common.constant.CacheKey;
+//import com.github.zuihou.common.constant.ParameterKey;
+//import com.github.zuihou.common.util.StringUtil;
+//import com.github.zuihou.context.BaseContextHandler;
+//import com.github.zuihou.database.mybatis.conditions.Wraps;
+//import com.google.common.collect.Maps;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.data.redis.core.RedisTemplate;
+//import org.springframework.http.HttpEntity;
+//import org.springframework.stereotype.Component;
+//import org.springframework.web.client.RestTemplate;
+//
+//import java.text.NumberFormat;
+//import java.util.*;
+//
+//@Component
+//public class TaskWork {
+//    @Autowired
+//    private TaskService taskService;
+//    @Autowired
+//    private AutoNodeService autoNodeService;
+//    @Autowired
+//    private OrderMapper orderMapper;
+//    @Autowired
+//    private PlanMapper planMapper;
+//    @Autowired
+//    private TTaskMapper taskMapper;
+//    @Autowired
+//    private AutoNodeLogMapper autoNodeLogMapper;
+////    @Autowired
+////    private BomProcedureProgramGroupMapper bomProcedureProgramGroupMapper;
+//    @Autowired
+//    private ParameterService parameterService;
+//    @Autowired
+//    private RestTemplate restTemplate;
+//    @Autowired
+//    private RedisTemplate<String,Object> redisTemplate;
+//    @Autowired
+//    private TaskNodeService taskNodeService;
+//
+//    @Autowired
+//    private TaskNodeMapper taskNodeMapper;
+//
+//    @Autowired
+//    private DynamicRabbitMq dynamicRabbitMq;
+//
+//    //总控IP
+//    private String ZK_ip = "192.168.1.41";
+//
+//    //总控端口
+//    private String ZK_port="4840";
+//
+//    @Autowired
+//    private MsgUtil msgUtil;
+//
+//    private static Logger logger = LoggerFactory.getLogger(TaskWork.class);
+//    //@Scheduled(cron="*/9 * * * * ?")  //9秒执行一次
+//    public void updateTaskStatusJob1(String taskId){
+//        logger.info("======================="+taskId);
+//        BaseContextHandler.setTenant("0000");
+//
+//        //String temUrl = parameterService.getValue(ParameterKey.AUTOPROGRAMEURL, null);
+//        //String autoProgrameUrl = parameterService.getValue(ParameterKey.AUTOPROGRAMEURL, null);
+//        //查出待执行的任务
+//        //List<TTask> taskList = taskService.list(Wraps.<TTask>lbQ().eq(TTask::getStatus,"1").eq(TTask::getDraftFlag,"0").le(TTask::getExpectStartTime,new Date()));
+//        Map qMap = new HashMap();
+//        qMap.put("mulstatus",StringUtil.changeIdsArrToSubQueryStr("1,2"));
+//        qMap.put("id",taskId);
+//        List<TTask> taskList = taskMapper.getPrepareTask(qMap);
+//
+//        //计划,订单MAP,用做提升性能,本次更新过的就不更新了
+//        Map<String,String>planMap = new HashMap<String,String>();
+//        Map<String,String>OrderMap = new HashMap<String,String>();
+//        if(taskList!=null&&taskList.size()>0){
+//            for(TTask task:taskList){
+//                try{
+//                    //把本次待执行任务全部改成进行中
+//                    //taskMapper.updateTaskBegin();
+//                    if("1".equals(task.getStatus())){//下发的数据才更新状态
+//                        task.setStatus("2").setStartTime(new Date());
+//                        taskMapper.updateById(task);
+//                        if(!planMap.containsKey(String.valueOf(task.getPlanId()))){
+//                            //设置计划开始
+//                            planMapper.updateproduceStatusBegin();
+//                            planMap.put(String.valueOf(task.getPlanId()),String.valueOf(task.getPlanId()));
+//                        }
+//
+//                        if(!OrderMap.containsKey(String.valueOf(task.getOrderId()))){
+//                            ////设置订单开始
+//                            orderMapper.updateproduceStatusBegin();
+//                            OrderMap.put(String.valueOf(task.getOrderId()),String.valueOf(task.getOrderId()));
+//                        }
+//                    }
+//                    msgUtil.redis_set(CacheKey.PRESOURCE_CURRENT_TASK+"_"+task.getResourceId(), task.getId());
+//                    msgUtil.redis_set(CacheKey.PRESOURCE_CURRENT_TASK_OBJECT+"_"+task.getResourceId(), task);
+//                    boolean f = false;
+//                    //执行任务对应的自动化程序
+//                    /*AutoNode model = new AutoNode();
+//                    model.setProcedureId(task.getProcedureId());
+//                    List<AutoNode> autoNodeList = autoNodeMapper.getNodeList(model);*/
+//                    Map map = new HashMap();
+//                    map.put("taskId",task.getId());
+//                    List<TaskNode>taskNodeList = taskNodeService.getTaskNodeList(map);
+//
+//                    if(taskNodeList!=null&&taskNodeList.size()>0){
+//                        Map queryMap = new HashMap<>();
+//                        queryMap.put("procedureId",task.getProcedureId());
+//                        queryMap.put("haveFile","1");
+//                        List<BomProcedureProgramGroup>bomProcedureProgramGroupList = bomProcedureProgramGroupMapper.getProgramGroupList(queryMap);
+//                        for(int i = 0;i<taskNodeList.size();i++){
+//                            String autoProgrameUrl = "";
+//                            TaskNode taskNode = taskNodeList.get(i);
+//                            //对接接口类型
+//                            if("01".equals(taskNode.getInterfaceType())){//总控
+//                                autoProgrameUrl = parameterService.getValue(ParameterKey.PLCPROGRAMEURL, null);
+//                            }else{
+//                                autoProgrameUrl = parameterService.getValue(ParameterKey.AUTOPROGRAMEURL, null);
+//                            }
+//
+//                            //把当前节点存放缓存
+//                            msgUtil.redis_set(CacheKey.TASK_CURRENT_NODE+"_"+task.getResourceId(), taskNode.getAutoNode().getId());
+////                            String code = taskNode.getAutoNodeCode();
+////                            autoProgrameUrl+="?func="+code;
+////                            autoProgrameUrl+="&ip="+task.getIp()+"&port="+task.getPort();
+//                            String fileName = "";
+//                            if(bomProcedureProgramGroupList!=null&&bomProcedureProgramGroupList.size()>0){
+//                                    fileName = bomProcedureProgramGroupList.get(0).getSubmittedFileName();
+//                                    //autoProgrameUrl+="&fileName="+fileName;
+//                            }
+//                            List<AAutoNodeLog> autoNodeLogList = autoNodeLogMapper.selectList(Wraps.<AAutoNodeLog>lbQ().eq(AAutoNodeLog::getTaskNodeId,taskNode.getId()));
+//                            //插入执行日志
+//                            AAutoNodeLog log = new AAutoNodeLog();
+//                            if(autoNodeLogList==null||autoNodeLogList.size()==0){
+//                                log.setTaskNodeId(taskNode.getId()).setAutoNodeId(taskNode.getAutoNode().getTaskId())
+//                                   .setOrderId(task.getOrderId()).setTaskId(task.getId()).setExeStatus("2")
+//                                   .setStartTime(new Date()).setFeedbackFile(fileName);
+//                                autoNodeLogMapper.insert(log);
+//                            }else{
+//                                log = autoNodeLogList.get(0);
+//                                log.setFeedbackFile(fileName);
+//                            }
+//
+//                            //更新节点任务
+//                            taskNode.setExeStatus("2");
+//                            taskNode.setStartTime(new Date());
+//                            taskNodeMapper.updateAllById(taskNode);
+//
+//                            //推送
+//                            this.pushTask(task);
+//
+//                            logger.info("===============================请求地址"+autoProgrameUrl);
+//                            String returnData = "";
+//                            try {
+//                                if(!"0".equals(taskNode.getNodeType())){//人工上下料或质检
+//                                    //不用调接口,直接返回成功
+//                                    returnData = "success";
+//                                }else{
+//                                    String jsonParam = getRequestParam(taskNode,task,bomProcedureProgramGroupList);
+//                                    HttpEntity<String> formEntity = new HttpEntity<String>(jsonParam);
+//                                    returnData = restTemplate.postForObject(autoProgrameUrl,formEntity, String.class);
+//                                }
+//                            }catch(Exception e){
+//                                e.printStackTrace();
+//                                JSONObject errJsonObject = new JSONObject();
+//                                errJsonObject.put("msg",e.getMessage());
+//                                returnData = errJsonObject.toJSONString();
+//                                logger.error("调用接口发生异常"+e.getMessage());
+//                            }
+//                            logger.info("===============================接口返回"+returnData);
+//                            if(returnData.indexOf("success")>=0){
+//                            //TODO
+////                            if(1==1){
+//                                //判断值是否需要循环自检
+//                                if(!"0".equals(taskNode.getNodeType())){//人工上下料或质检
+//                                    msgUtil.redis_set(CacheKey.TASK_CURRENT_NODE_STATUS+"_"+taskNode.getId(), "0");
+//                                    String b = checkLoading(taskNode);
+//                                }else{//调用机器
+//                                    if("1".equals(taskNode.getSelfExamine())){//需要自检的,需要停顿一会,避免取数不及时
+//                                        Thread.sleep(1500L);
+//                                        String b = polling(task,taskNode,fileName);
+//                                        if("0".equals(b)){//需要跳出
+//                                            //插入执行日志
+//                                            log.setExeResult("0");
+//                                            autoNodeLogMapper.updateAllById(log);
+//                                            f = true;
+//                                            break;
+//                                        }else{//需要复位
+//                                            //成功后需要复位
+//                                            if(autoNodeService.getNodeTypeReset(taskNode.getAutoNodeCode())){
+//                                                String jsonParam = getResetRequestParam(taskNode,task);
+//                                                HttpEntity<String> formEntity = new HttpEntity<String>(jsonParam);
+//                                                returnData = restTemplate.postForObject(autoProgrameUrl,formEntity, String.class);
+//                                                if(returnData.indexOf("success")<0){
+//                                                    //插入执行日志
+//                                                    log.setExeResult("0");
+//                                                    JSONObject jsonErrorObject  = JSONObject.parseObject(returnData);
+//                                                    log.setFeedback(jsonErrorObject.getString("msg"));
+//                                                    autoNodeLogMapper.updateAllById(log);
+//                                                    f = true;
+//                                                    break;
+//                                                }
+//                                            }
+//                                        }
+//                                    }
+//                                }
+//                                //处理出库入库
+//                                R<String> r = taskNodeService.taskNodeStock(taskNode, task);
+//                                //插入执行日志
+//                                log.setExeStatus("3");
+//                                if(r.getIsSuccess()){
+//                                    log.setExeResult("1").setEndTime(new Date());
+//                                    autoNodeLogMapper.updateAllById(log);
+//                                }else{
+//                                    log.setExeResult("0").setFeedback(r.getMsg()).setEndTime(new Date());
+//                                    autoNodeLogMapper.updateAllById(log);
+//                                    f = true;
+//                                    break;
+//                                }
+//
+//                                //更新节点任务
+//                                taskNode.setExeStatus("3").setExeResult("1").setEndTime(new Date());
+//                                taskNodeMapper.updateAllById(taskNode);
+//
+//                                //把当前完成的节点放入缓存,用于推送任务完成的百分比
+//                                NumberFormat numberFormat = NumberFormat.getInstance();
+//                                numberFormat.setMaximumFractionDigits(2);
+//                                msgUtil.redis_set(CacheKey.TASK_CURRENT_NODE_PERCENT+"_"+task.getResourceId(), numberFormat.format(100*(float)(i+1) /(float)taskNodeList.size()));
+//                                task.setProcess(Double.parseDouble(numberFormat.format(100*(float)(i+1) /(float)taskNodeList.size())));
+//                                if(i==taskNodeList.size()-1){
+//                                    task.setStatus("3");
+//                                    task.setEndTime(new Date());
+//                                    taskMapper.updateById(task);
+//                                    //推送
+//                                    //删除正在执行的缓存
+//                                    msgUtil.redis_del(Arrays.asList(new String[] {CacheKey.PRESOURCE_CURRENT_TASK+"_"+task.getResourceId(),CacheKey.PRESOURCE_CURRENT_TASK_OBJECT+"_"+task.getResourceId(),CacheKey.TASK_CURRENT_NODE+"_"+task.getResourceId()}));
+//                                    this.pushTask(task);
+//                                }else{//主要更新完成比例
+//                                    taskMapper.updateById(task);
+//                                }
+//                            }else{//TODO
+//                                //插入执行日志
+//                                log.setExeResult("0");
+//                                JSONObject jsonErrorObject  = JSONObject.parseObject(returnData);
+//                                log.setFeedback(jsonErrorObject.getString("msg"));
+//                                autoNodeLogMapper.updateAllById(log);
+//                                f = true;
+//                                break;
+//                            }
+//
+//                            //更新订单表里的完成数量等等字段
+//                            if(i==0&&"1".equals(task.getFirstProcedureFlag())){
+//                                Order order = orderMapper.selectById(task.getOrderId());
+//                                order.setProduceNum((order.getProduceNum()==null?0:order.getProduceNum())+1);
+//                                orderMapper.updateAllById(order);
+//                            }
+//                            //更新订单表里的完成数量等等字段,一个任务执行完的时候更相信
+//                            if(i==taskNodeList.size()-1&&"1".equals(task.getLastProcedureFlag())){
+//                                Order order = orderMapper.selectById(task.getOrderId());
+//                                order.setCompleteNum((order.getCompleteNum()==null?0:order.getCompleteNum())+1);
+//                                orderMapper.updateAllById(order);
+//
+//                                //设置计划结束
+//                                planMapper.updateproduceStatusFinish();
+//                                ////设置订单结束
+//                                orderMapper.updateproduceStatusFinish();
+//                            }
+//                        }
+//                    }else{//没有节点直接改成已完成
+//                        task.setStatus("3").setEndTime(new Date());
+//                        taskMapper.updateById(task);
+//                    }
+//                    if(f){
+//                        break;
+//                    }
+//                }catch (Exception e){
+//                    e.printStackTrace();
+//                    logger.info("===============================接口返回",e);
+//                }finally {
+//                    //删除正在执行的缓存
+//                    msgUtil.redis_del(Arrays.asList(new String[] {CacheKey.PRESOURCE_CURRENT_TASK+"_"+task.getResourceId(),CacheKey.PRESOURCE_CURRENT_TASK_OBJECT+"_"+task.getResourceId(),CacheKey.TASK_CURRENT_NODE+"_"+task.getResourceId()}));
+//                }
+//            }
+//            //查询出下一个任务,并推送到设备上
+//            TTask task = taskList.get(0);
+//            List<TTask>nextTaskList = taskService.list(Wraps.<TTask>lbQ().eq(TTask::getBomBatchNo,task.getBomBatchNo()).gt(TTask::getProcedureSort,task.getProcedureSort()).orderByAsc(TTask::getProcedureSort));
+//            if(nextTaskList!=null&&nextTaskList.size()>0){
+//                TTask t = nextTaskList.get(0);
+//                dynamicRabbitMq.sendMsg(t.getResourceId().toString(),t.getId().toString());
+//            }
 //        }
-
-        //机器上下料相关
-        if(autoNodeService.getNodeTypeResourceLoading(taskNode.getAutoNodeCode())){
-            jsonObject.put("url",ZK_ip);
-            jsonObject.put("port",ZK_port);
-        }else{
-            jsonObject.put("url",task.getIp());
-            jsonObject.put("port",task.getPort());
-        }
-        logger.info("复位请求参数"+jsonObject.toJSONString());
-        return jsonObject.toJSONString();
-    }
-}
-
+//
+//    }
+//
+//
+//    public String checkLoading(TaskNode taskNode)throws Exception{
+//        String redisData = "";
+//        try {
+//            redisData =   msgUtil.redis_get(CacheKey.TASK_CURRENT_NODE_STATUS+"_"+taskNode.getId()).toString();
+//        }catch (Exception e){
+//            Thread.sleep(1000);
+//            logger.error("缓存获取异常",e);
+//            return checkLoading(taskNode);
+//        }
+//
+//        if(!"1".equals(redisData)){
+//            Thread.sleep(1000);
+//            return checkLoading(taskNode);
+//        }else{
+//            msgUtil.redis_del(CacheKey.TASK_CURRENT_NODE_STATUS+"_"+taskNode.getId());
+//            return "1";
+//        }
+//    }
+//
+//    public String polling(TTask task,TaskNode taskNode,String fileName)throws Exception{
+//        String ip = task.getIp();
+//        String port = task.getPort();
+//        if(autoNodeService.getNodeTypeResourceLoading(taskNode.getAutoNodeCode())){
+//            ip = ZK_ip;
+//            port = ZK_port;
+//        }
+//        String redisData = "";
+//        try {
+//            redisData =   msgUtil.redis_get(ip+":"+port).toString();
+//        }catch (Exception e){
+//            Thread.sleep(1000);
+//            logger.error("缓存获取异常",e);
+//            return polling(task,taskNode,fileName);
+//        }
+//
+//        JSONObject returnJson = JSONObject.parseObject(redisData);
+//        String conf = taskNode.getExamineMatchConf();
+//        JSONObject confJson = JSONObject.parseObject(conf);
+//
+//        /*if(!testbreak(returnJson,confJson)){//需要跳出
+//            return "0";
+//        }*/
+//
+//        if(autoNodeService.getNodeTypeResourceLoading(taskNode.getAutoNodeCode())){
+//            if(!testSuccessResourceLoading(returnJson,confJson,fileName)){//尚未成功
+//                Thread.sleep(1000);
+//                return polling(task,taskNode,fileName);
+//            }else{
+//                return "1";
+//            }
+//        }else{
+//            if(!testSuccess(returnJson,confJson,fileName)){//尚未成功
+//                Thread.sleep(1000);
+//                return polling(task,taskNode,fileName);
+//            }else{
+//                return "1";
+//            }
+//        }
+//
+//
+//
+//    }
+//
+//
+//    /**
+//     * 自检的数据,从缓存验证是否成功
+//     * @param returnJson
+//     * @param confJson
+//     * @return
+//     */
+//    public boolean testbreak(JSONObject returnJson,JSONObject confJson){
+//        boolean f = true;
+//        String proRunState = returnJson.get("ProRunState")==null?"":returnJson.get("ProRunState").toString();
+//        //先写死,后面要考虑怎么配置。
+//        if("2".equals(proRunState)||"3".equals(proRunState)){
+//            f = false;
+//        }
+//        /*for(String key:confJson.keySet()){
+//            if(returnJson.containsKey(key)){
+//                if(returnJson.getString(key)!=null&&returnJson.getString(key).equals(confJson.getString(key))){
+//                    f = false;
+//                    break;
+//                }
+//            }
+//        }*/
+//        return f;
+//    }
+//
+//    /**
+//     * 自检的数据,从缓存验证是否成功
+//     * @param returnJson
+//     * @param confJson
+//     * @return
+//     */
+//    public boolean testSuccess(JSONObject returnJson,JSONObject confJson,String fileName){
+//        boolean f = true;
+//        String mainProgNo = returnJson.getString("MainProgNo").toUpperCase();
+//        String tmpFileName = fileName.replace(".","_").toUpperCase();
+//
+//        for(String key:confJson.keySet()){
+//            if(!mainProgNo.endsWith(tmpFileName)){
+//                logger.info("================================hhh"+mainProgNo);
+//                logger.info("*****************************"+tmpFileName);
+//                f = false;
+//                break;
+//            }
+//            if(returnJson.containsKey(key)){
+//                if(returnJson.getString(key)!=null&&!returnJson.getString(key).equals(confJson.getString(key))){
+//                    f = false;
+//                    break;
+//                }
+//            }
+//        }
+//        return f;
+//    }
+//
+//    /**
+//     * 自检的数据,从缓存验证是否成功
+//     * @param returnJson
+//     * @param confJson
+//     * @return
+//     */
+//    public boolean testSuccessResourceLoading(JSONObject returnJson,JSONObject confJson,String fileName){
+//        boolean f = true;
+//        for(String key:confJson.keySet()){
+//            if(returnJson.containsKey(key)){
+//                if(returnJson.getString(key)!=null&&!returnJson.getString(key).toUpperCase().equals(confJson.getString(key)==null?"":confJson.getString(key).toUpperCase())){
+//                    f = false;
+//                    break;
+//                }
+//            }
+//        }
+//        return f;
+//    }
+//
+//
+//    public void pushTask(TTask task){
+//        Map<String,Object> rmap = Maps.newHashMap();
+//        rmap.put("id",task.getResourceId());
+//        Map<String,Object> pmap = taskService.getExeTaskByResourceList(rmap);
+//        Object o = pmap.get("orderList");
+//        Map<String,Object >pushMap = new HashMap<>();
+//        pushMap.put("type",WebSocketServer.PUSH_TYPE_RESOURCE_TASK);
+//        pushMap.put(String.valueOf(task.getResourceId()),pmap);
+//        msgUtil.pushTask(task, pushMap);
+//    }
+//
+//    /**
+//     * 生成请求参数
+//     * @param task
+//     * @return
+//     */
+//    public String getRequestParam(TaskNode taskNode , TTask task, List<BomProcedureProgramGroup>bomProcedureProgramGroupList){
+//        JSONObject jsonObject = new JSONObject();
+//        jsonObject.put("businessType",taskNode.getAutoNodeCode());
+//        //机器上下料相关
+//        if(autoNodeService.getNodeTypeResourceLoading(taskNode.getAutoNodeCode())){
+//            jsonObject.put("url",ZK_ip);
+//            jsonObject.put("port",ZK_port);
+//        }else{
+//            jsonObject.put("url",task.getIp());
+//            jsonObject.put("port",task.getPort());
+//        }
+//
+//        if(bomProcedureProgramGroupList!=null&&bomProcedureProgramGroupList.size()>0){
+//            String fileName = bomProcedureProgramGroupList.get(0).getSubmittedFileName();
+//            jsonObject.put("data",fileName);
+//        }
+//        logger.info("节点请求参数"+jsonObject.toJSONString());
+//        return jsonObject.toJSONString();
+//    }
+//
+//
+//    /**
+//     * 生成复位请求参数
+//     * @param task
+//     * @return
+//     */
+//    public String getResetRequestParam(TaskNode taskNode , TTask task){
+//        JSONObject jsonObject = new JSONObject();
+//
+//        jsonObject.put("businessType",taskNode.getAutoNodeCode()+BizConstant.TASK_NODE_RESET_KEYWORD);
+////        if(BizConstant.TASK_NODE_DRYREQUEST.equals(taskNode.getAutoNodeCode())){
+////            jsonObject.put("businessType",BizConstant.TASK_NODE_RESET_DRYREQUEST);
+////        }else if(BizConstant.TASK_NODE_CLEANREQUEST.equals(taskNode.getAutoNodeCode())){
+////            jsonObject.put("businessType",BizConstant.TASK_NODE_RESET_CLEANREQUEST);
+////        }else if(BizConstant.TASK_NODE_MARKREQUEST.equals(taskNode.getAutoNodeCode())){
+////            jsonObject.put("businessType",BizConstant.TASK_NODE_RESET_MARKREQUEST);
+////        }
+//
+//        //机器上下料相关
+//        if(autoNodeService.getNodeTypeResourceLoading(taskNode.getAutoNodeCode())){
+//            jsonObject.put("url",ZK_ip);
+//            jsonObject.put("port",ZK_port);
+//        }else{
+//            jsonObject.put("url",task.getIp());
+//            jsonObject.put("port",task.getPort());
+//        }
+//        logger.info("复位请求参数"+jsonObject.toJSONString());
+//        return jsonObject.toJSONString();
+//    }
+//}
+//

+ 0 - 22
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/dao/BomProcedureProgramGroupDetailMapper.java

@@ -1,22 +0,0 @@
-package com.github.zuihou.business.productionReadyCenter.dao;
-
-import com.github.zuihou.base.mapper.SuperMapper;
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgramGroupDetail;
-
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureVersion;
-import org.springframework.stereotype.Repository;
-
-/**
- * <p>
- * Mapper 接口
- * 工序程序组内明细
- * </p>
- *
- * @author imcs
- * @date 2020-12-20
- */
-@Repository
-public interface BomProcedureProgramGroupDetailMapper extends SuperMapper<BomProcedureProgramGroupDetail> {
-
-    Boolean removeProgramGroupDetail(BomProcedureVersion bean);
-}

+ 0 - 26
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/dao/BomProcedureProgramGroupMapper.java

@@ -1,26 +0,0 @@
-package com.github.zuihou.business.productionReadyCenter.dao;
-
-import com.github.zuihou.base.mapper.SuperMapper;
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgramGroup;
-
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureVersion;
-import org.springframework.stereotype.Repository;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * <p>
- * Mapper 接口
- * 工序程序分组
- * </p>
- *
- * @author imcs
- * @date 2020-12-20
- */
-@Repository
-public interface BomProcedureProgramGroupMapper extends SuperMapper<BomProcedureProgramGroup> {
-    Boolean removeProgramGroup(BomProcedureVersion bean);
-
-    List<BomProcedureProgramGroup> getProgramGroupList(Map map);
-}

+ 0 - 4
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/dao/BomProcedureVersionMapper.java

@@ -2,11 +2,9 @@ package com.github.zuihou.business.productionReadyCenter.dao;
 
 import com.github.zuihou.base.mapper.SuperMapper;
 import com.github.zuihou.business.modelingCenter.entity.MModuleField;
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgramGroup;
 import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureTray;
 import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureVersion;
 
-import com.github.zuihou.business.productionReadyCenter.entity.BomVersionInfo;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -30,6 +28,4 @@ public interface BomProcedureVersionMapper extends SuperMapper<BomProcedureVersi
 
     List<BomProcedureTray> getProcedureTray(BomProcedureVersion bean);
 
-    List<BomProcedureProgramGroup> getPosition(List<Long> list);
-
 }

+ 0 - 18
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/BomProcedureProgramGroupDetailService.java

@@ -1,18 +0,0 @@
-package com.github.zuihou.business.productionReadyCenter.service;
-
-import com.github.zuihou.base.service.SuperService;
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgramGroupDetail;
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureVersion;
-
-/**
- * <p>
- * 业务接口
- * 工序程序组内明细
- * </p>
- *
- * @author imcs
- * @date 2020-12-20
- */
-public interface BomProcedureProgramGroupDetailService extends SuperService<BomProcedureProgramGroupDetail> {
-    Boolean removeProgramGroupDetail(BomProcedureVersion bean);
-}

+ 0 - 25
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/BomProcedureProgramGroupService.java

@@ -1,25 +0,0 @@
-package com.github.zuihou.business.productionReadyCenter.service;
-
-import com.github.zuihou.base.service.SuperService;
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgramGroup;
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureVersion;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * <p>
- * 业务接口
- * 工序程序分组
- * </p>
- *
- * @author imcs
- * @date 2020-12-20
- */
-public interface BomProcedureProgramGroupService extends SuperService<BomProcedureProgramGroup> {
-
-    Boolean removeProgramGroup(BomProcedureVersion bean);
-
-    List<BomProcedureProgramGroup> getProgramGroupList(Map map);
-
-}

+ 0 - 29
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/impl/BomProcedureProgramGroupDetailServiceImpl.java

@@ -1,29 +0,0 @@
-package com.github.zuihou.business.productionReadyCenter.service.impl;
-
-import com.github.zuihou.business.productionReadyCenter.dao.BomProcedureProgramGroupDetailMapper;
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgramGroupDetail;
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureVersion;
-import com.github.zuihou.business.productionReadyCenter.service.BomProcedureProgramGroupDetailService;
-import com.github.zuihou.base.service.SuperServiceImpl;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- * 业务实现类
- * 工序程序组内明细
- * </p>
- *
- * @author imcs
- * @date 2020-12-20
- */
-@Slf4j
-@Service
-public class BomProcedureProgramGroupDetailServiceImpl extends SuperServiceImpl<BomProcedureProgramGroupDetailMapper, BomProcedureProgramGroupDetail> implements BomProcedureProgramGroupDetailService {
-
-    @Override
-    public Boolean removeProgramGroupDetail(BomProcedureVersion bean){
-        return baseMapper.removeProgramGroupDetail(bean);
-    }
-}

+ 0 - 37
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/impl/BomProcedureProgramGroupServiceImpl.java

@@ -1,37 +0,0 @@
-package com.github.zuihou.business.productionReadyCenter.service.impl;
-
-import com.github.zuihou.business.productionReadyCenter.dao.BomProcedureProgramGroupMapper;
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgramGroup;
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureVersion;
-import com.github.zuihou.business.productionReadyCenter.service.BomProcedureProgramGroupService;
-import com.github.zuihou.base.service.SuperServiceImpl;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * <p>
- * 业务实现类
- * 工序程序分组
- * </p>
- *
- * @author imcs
- * @date 2020-12-20
- */
-@Slf4j
-@Service
-public class BomProcedureProgramGroupServiceImpl extends SuperServiceImpl<BomProcedureProgramGroupMapper, BomProcedureProgramGroup> implements BomProcedureProgramGroupService {
-
-    @Override
-    public Boolean removeProgramGroup(BomProcedureVersion bean){
-        return baseMapper.removeProgramGroup(bean);
-    }
-
-    @Override
-    public List<BomProcedureProgramGroup> getProgramGroupList(Map map) {
-        return baseMapper.getProgramGroupList(map);
-    }
-}

+ 38 - 38
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/impl/BomProcedureVersionServiceImpl.java

@@ -73,10 +73,10 @@ public class BomProcedureVersionServiceImpl extends SuperServiceImpl<BomProcedur
     private BomProcedureTrayPositionService bomProcedureTrayPositionService;
     @Autowired
     private BomProcedureProgramService bomProcedureProgramService;
-    @Autowired
-    private BomProcedureProgramGroupService bomProcedureProgramGroupService;
-    @Autowired
-    private BomProcedureProgramGroupDetailService bomProcedureProgramGroupDetailService;
+//    @Autowired
+//    private BomProcedureProgramGroupService bomProcedureProgramGroupService;
+//    @Autowired
+//    private BomProcedureProgramGroupDetailService bomProcedureProgramGroupDetailService;
     @Autowired
     private DictionaryItemService dictionaryItemService;
     @Autowired
@@ -577,10 +577,10 @@ public class BomProcedureVersionServiceImpl extends SuperServiceImpl<BomProcedur
             }
         }
 
-        //删除程序相关,分组表
-        bomProcedureProgramGroupService.removeProgramGroup(bean);
-        //删除明细
-        bomProcedureProgramGroupDetailService.removeProgramGroupDetail(bean);
+//        //删除程序相关,分组表
+//        bomProcedureProgramGroupService.removeProgramGroup(bean);
+//        //删除明细
+//        bomProcedureProgramGroupDetailService.removeProgramGroupDetail(bean);
         //删除程序表
         bomProcedureProgramService.remove(Wraps.<BomProcedureProgram>lbQ().eq(BomProcedureProgram::getProcedureId,bean.getId()));
 
@@ -724,36 +724,36 @@ public class BomProcedureVersionServiceImpl extends SuperServiceImpl<BomProcedur
         List<Long> idList = programList.stream().map(p -> p.getId()).collect(Collectors.toList());
         //根据IDList取出明细
         //List<BomProcedureProgramGroup> detailList = bomProcedureProgramGroupService.list(Wraps.<BomProcedureProgramGroup>lbQ().in(BomProcedureProgramGroup::getMainId, idList));
-        List<BomProcedureProgramGroup> detailList = baseMapper.getPosition(idList);
-
-        //程序组明细
-        List<BomProcedureProgramGroupDetail> programGroupDetailList = bomProcedureProgramGroupDetailService.list();
-
-        Map<Long,List<BomProcedureProgramGroup>>map = new HashMap<Long,List<BomProcedureProgramGroup>>();
-        for(BomProcedureProgramGroup ms:detailList){
-            if(map.containsKey(ms.getMainId())){
-                map.get(ms.getMainId()).add(ms);
-            }else{
-                List a = new ArrayList<BomProcedureProgramGroup>();
-                a.add(ms);
-                map.put(ms.getMainId(),a);
-            }
-
-            //遍历位置明细,属于相同组的放进list
-            List<Long> detailIdList = new ArrayList<>();
-            for(BomProcedureProgramGroupDetail detailBean:programGroupDetailList){
-                if(ms.getId().longValue() == detailBean.getGroupId().longValue()){
-                    detailIdList.add(detailBean.getTrayPositionId());
-                }
-            }
-
-            ms.setPositionList(detailIdList);
-        }
-        for(BomProcedureProgram m:programList){
-            if(map.containsKey(m.getId())){
-                m.setProgramGroupList(map.get(m.getId()));
-            }
-        }
+//        List<BomProcedureProgramGroup> detailList = baseMapper.getPosition(idList);
+//
+//        //程序组明细
+//        List<BomProcedureProgramGroupDetail> programGroupDetailList = bomProcedureProgramGroupDetailService.list();
+//
+//        Map<Long,List<BomProcedureProgramGroup>>map = new HashMap<Long,List<BomProcedureProgramGroup>>();
+//        for(BomProcedureProgramGroup ms:detailList){
+//            if(map.containsKey(ms.getMainId())){
+//                map.get(ms.getMainId()).add(ms);
+//            }else{
+//                List a = new ArrayList<BomProcedureProgramGroup>();
+//                a.add(ms);
+//                map.put(ms.getMainId(),a);
+//            }
+//
+//            //遍历位置明细,属于相同组的放进list
+//            List<Long> detailIdList = new ArrayList<>();
+//            for(BomProcedureProgramGroupDetail detailBean:programGroupDetailList){
+//                if(ms.getId().longValue() == detailBean.getGroupId().longValue()){
+//                    detailIdList.add(detailBean.getTrayPositionId());
+//                }
+//            }
+//
+//            ms.setPositionList(detailIdList);
+//        }
+//        for(BomProcedureProgram m:programList){
+//            if(map.containsKey(m.getId())){
+//                m.setProgramGroupList(map.get(m.getId()));
+//            }
+//        }
         model.setProgramList(programList);
 
         //人工质检

+ 19 - 15
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionResourceCenter/service/impl/MachineNodeServiceImpl.java

@@ -8,13 +8,14 @@ import com.github.zuihou.business.DemoLine.DemoCacheKey;
 import com.github.zuihou.business.DemoLine.DemoLineConstant;
 import com.github.zuihou.business.edgeLibrary.entity.Storge;
 import com.github.zuihou.business.edgeLibrary.service.StorgeService;
+import com.github.zuihou.business.modelingCenter.entity.MModuleField;
 import com.github.zuihou.business.operationManagementCenter.entity.TTask;
 import com.github.zuihou.business.operationManagementCenter.entity.TaskNode;
 import com.github.zuihou.business.operationManagementCenter.service.TaskNodeService;
 import com.github.zuihou.business.operationManagementCenter.service.WorkpieceService;
-import com.github.zuihou.business.productionReadyCenter.dao.BomProcedureProgramGroupMapper;
+import com.github.zuihou.business.productionReadyCenter.dao.BomProcedureProgramMapper;
 import com.github.zuihou.business.productionReadyCenter.entity.BomProcedure;
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgramGroup;
+import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgram;
 import com.github.zuihou.business.productionReadyCenter.service.BomProcedureService;
 import com.github.zuihou.business.productionResourceCenter.dao.ProductionresourcePositionMapper;
 import com.github.zuihou.business.productionResourceCenter.entity.ProductionresourcePosition;
@@ -22,6 +23,7 @@ import com.github.zuihou.business.productionResourceCenter.service.NodeOperation
 import com.github.zuihou.business.productionResourceCenter.service.ProductionresourcePositionService;
 import com.github.zuihou.business.util.MsgUtil;
 import com.github.zuihou.common.util.StringUtil;
+import com.github.zuihou.database.mybatis.conditions.Wraps;
 import com.google.common.collect.Maps;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -54,8 +56,8 @@ public class MachineNodeServiceImpl implements NodeOperationService {
     @Autowired
     private ProductionresourcePositionMapper productionresourcePositionMapper;
 
-    @Autowired
-    private BomProcedureProgramGroupMapper bomProcedureProgramGroupMapper;
+//    @Autowired
+//    private BomProcedureProgramGroupMapper bomProcedureProgramGroupMapper;
 
     @Autowired
     private WorkpieceService workpieceService;
@@ -63,6 +65,9 @@ public class MachineNodeServiceImpl implements NodeOperationService {
     @Autowired
     private BomProcedureService bomProcedureService;
 
+    @Autowired
+    private BomProcedureProgramMapper bomProcedureProgramMapper;
+
     //关联接驳位
     private String[] jbwarr = null;
 
@@ -196,17 +201,16 @@ public class MachineNodeServiceImpl implements NodeOperationService {
                 break;
             case "smu50":
                  if ("SMU50_FILE".equals(functionName)) {
-                    queryMap.put("procedureId", task.getProcedureId());
-                    queryMap.put("haveFile", "1");
-                    List<BomProcedureProgramGroup> bomProcedureProgramGroupList = bomProcedureProgramGroupMapper.getProgramGroupList(queryMap);
-                    List<Map<String, String>> fileList = new ArrayList<Map<String, String>>();
-                    bomProcedureProgramGroupList.forEach(i -> {
-                        Map<String, String> m = new HashMap<>();
-                        m.put("fileName", i.getSubmittedFileName());
-                        fileList.add(m);
-                    });
-                    if (fileList != null && fileList.size() > 0) {//先按一个处理
-                        String fileName = bomProcedureProgramGroupList.get(0).getSubmittedFileName();
+                     List<BomProcedureProgram>procedureProgramList = bomProcedureProgramMapper.selectList(Wraps.<BomProcedureProgram>lbQ().eq(BomProcedureProgram::getProcedureId,task.getProcedureId()));
+
+                     List<Map<String, String>> fileList = new ArrayList<Map<String, String>>();
+                    if (procedureProgramList != null && procedureProgramList.size() > 0) {//先按一个处理
+                        procedureProgramList.forEach(i -> {
+                            Map<String, String> m = new HashMap<>();
+                            m.put("fileName", i.getSubmittedFileName());
+                            fileList.add(m);
+                        });
+                        String fileName = procedureProgramList.get(0).getSubmittedFileName();
                         map.put(DemoLineConstant.DEMOLINE_BIZ_TYPE, "uploadProgram");
                         map.put("Data", JSONArray.parseArray(JSONObject.toJSONString(fileList)));
                         msgUtil.redis_set(DemoCacheKey.DEMOLINE_PROGRAME_NAMES + task.getCompleteBatchNo(), fileName, 1, TimeUnit.DAYS);

+ 0 - 27
imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/productionReadyCenter/BomProcedureProgramGroupDetailMapper.xml

@@ -1,27 +0,0 @@
-<?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.github.zuihou.business.productionReadyCenter.dao.BomProcedureProgramGroupDetailMapper">
-
-    <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgramGroupDetail">
-        <id column="id" jdbcType="BIGINT" property="id"/>
-        <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
-        <result column="create_user" jdbcType="BIGINT" property="createUser"/>
-        <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
-        <result column="update_user" jdbcType="BIGINT" property="updateUser"/>
-        <result column="main_id" jdbcType="BIGINT" property="mainId"/>
-        <result column="group_id" jdbcType="BIGINT" property="groupId"/>
-        <result column="tray_position_id" jdbcType="BIGINT" property="trayPositionId"/>
-    </resultMap>
-
-    <!-- 通用查询结果列 -->
-    <sql id="Base_Column_List">
-        id,create_time,create_user,update_time,update_user,
-        main_id, group_id, tray_position_id
-    </sql>
-
-    <delete id="removeProgramGroupDetail" parameterType="com.github.zuihou.business.productionReadyCenter.entity.BomProcedureVersion">
-        delete from imcs_b_bom_procedure_program_group_detail where main_id in(select id from imcs_b_bom_procedure_program where procedure_id = #{id})
-    </delete>
-
-</mapper>

+ 0 - 46
imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/productionReadyCenter/BomProcedureProgramGroupMapper.xml

@@ -1,46 +0,0 @@
-<?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.github.zuihou.business.productionReadyCenter.dao.BomProcedureProgramGroupMapper">
-
-    <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgramGroup">
-        <id column="id" jdbcType="BIGINT" property="id"/>
-        <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
-        <result column="create_user" jdbcType="BIGINT" property="createUser"/>
-        <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
-        <result column="update_user" jdbcType="BIGINT" property="updateUser"/>
-        <result column="main_id" jdbcType="BIGINT" property="mainId"/>
-        <result column="run_time" jdbcType="FLOAT" property="runTime"/>
-        <result column="tool_nums" jdbcType="INTEGER" property="toolNums"/>
-        <result column="file_path" jdbcType="VARCHAR" property="filePath"/>
-        <result column="submitted_file_name" jdbcType="VARCHAR" property="submittedFileName"/>
-    </resultMap>
-
-    <!-- 通用查询结果列 -->
-    <sql id="Base_Column_List">
-        id,create_time,create_user,update_time,update_user,
-        main_id, run_time, tool_nums,file_path,submitted_file_name
-    </sql>
-
-
-    <delete id="removeProgramGroup" parameterType="com.github.zuihou.business.productionReadyCenter.entity.BomProcedureVersion">
-        delete from imcs_b_bom_procedure_program_group where main_id in(select id from imcs_b_bom_procedure_program where procedure_id = #{id})
-    </delete>
-
-    <select id="getProgramGroupList" parameterType="map" resultType="com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgramGroup">
-        select pg.* from imcs_b_bom_procedure_program_group pg left join
-        imcs_b_bom_procedure_program pp on pg.main_id = pp.id
-        where 1=1 and submitted_file_name is not null
-        <if test="procedureId != null and procedureId != ''">
-            and pp.procedure_id = #{procedureId}
-        </if>
-        <if test="haveFile != null and haveFile != ''">
-            and LENGTH(submitted_file_name) >0
-        </if>
-        <if test="resourceId != null and resourceId != ''">
-            and pp.resource_id = #{resourceId}
-        </if>
-        order by pg.priority desc
-    </select>
-
-</mapper>

+ 14 - 14
imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/productionReadyCenter/BomProcedureVersionMapper.xml

@@ -72,19 +72,19 @@
     </select>
 
     <!-- 程序类型对应位置 -->
-    <select id="getPosition" resultType="com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgramGroup">
-        select a.*,(case when a.file_path is not null then '是' else '否' end) as nc,a.id as programId,b.positions from imcs_b_bom_procedure_program_group a
-				left join(
-					select group_id,GROUP_CONCAT(position_sort) as positions from imcs_b_bom_procedure_program_group_detail de
-					left join imcs_t_tray_position po on de.tray_position_id = po.id
-					where 1=1 GROUP BY de.group_id
-				) b on a.id = b.group_id
-        <if test="list != null and list.size() !=0 ">
-            where a.main_id in
-            <foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
-                #{item}
-            </foreach>
-        </if>
-    </select>
+<!--    <select id="getPosition" resultType="com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgramGroup">-->
+<!--        select a.*,(case when a.file_path is not null then '是' else '否' end) as nc,a.id as programId,b.positions from imcs_b_bom_procedure_program_group a-->
+<!--				left join(-->
+<!--					select group_id,GROUP_CONCAT(position_sort) as positions from imcs_b_bom_procedure_program_group_detail de-->
+<!--					left join imcs_t_tray_position po on de.tray_position_id = po.id-->
+<!--					where 1=1 GROUP BY de.group_id-->
+<!--				) b on a.id = b.group_id-->
+<!--        <if test="list != null and list.size() !=0 ">-->
+<!--            where a.main_id in-->
+<!--            <foreach collection="list" item="item" index="index" open="(" close=")" separator=",">-->
+<!--                #{item}-->
+<!--            </foreach>-->
+<!--        </if>-->
+<!--    </select>-->
 
 </mapper>

+ 0 - 66
imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/productionReadyCenter/BomProcedureProgramGroupController.java

@@ -1,66 +0,0 @@
-package com.github.zuihou.business.controller.productionReadyCenter;
-
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgramGroup;
-import com.github.zuihou.business.productionReadyCenter.dto.BomProcedureProgramGroupSaveDTO;
-import com.github.zuihou.business.productionReadyCenter.dto.BomProcedureProgramGroupUpdateDTO;
-import com.github.zuihou.business.productionReadyCenter.dto.BomProcedureProgramGroupPageDTO;
-import com.github.zuihou.business.productionReadyCenter.service.BomProcedureProgramGroupService;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import com.github.zuihou.base.controller.SuperController;
-import com.github.zuihou.base.R;
-import com.github.zuihou.database.mybatis.conditions.Wraps;
-import com.github.zuihou.log.annotation.SysLog;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import com.github.zuihou.security.annotation.PreAuth;
-import org.springframework.web.bind.annotation.RestController;
-
-
-/**
- * <p>
- * 前端控制器
- * 工序程序分组
- * </p>
- *
- * @author imcs
- * @date 2020-12-20
- */
-@Slf4j
-@Validated
-@RestController
-@RequestMapping("/bomProcedureProgramGroup")
-@Api(value = "BomProcedureProgramGroup", tags = "工序程序分组")
-@SysLog(enabled = true)
-public class BomProcedureProgramGroupController extends SuperController<BomProcedureProgramGroupService, Long, BomProcedureProgramGroup, BomProcedureProgramGroupPageDTO, BomProcedureProgramGroupSaveDTO, BomProcedureProgramGroupUpdateDTO> {
-
-
-    @ApiOperation(value = "查询所有", notes = "查询所有")
-    @PostMapping("/all")
-    public R<List<BomProcedureProgramGroup>> list(@RequestBody Map<String, Object> map) {
-        return success(baseService.getProgramGroupList(map));
-
-    }
-    /**
-     * Excel导入后的操作
-     *
-     * @param list
-     */
-    @Override
-    public R<Boolean> handlerImport(List<Map<String, String>> list){
-        List<BomProcedureProgramGroup> bomProcedureProgramGroupList = list.stream().map((map) -> {
-            BomProcedureProgramGroup bomProcedureProgramGroup = BomProcedureProgramGroup.builder().build();
-            //TODO 请在这里完成转换
-            return bomProcedureProgramGroup;
-        }).collect(Collectors.toList());
-
-        return R.success(baseService.saveBatch(bomProcedureProgramGroupList));
-    }
-}

+ 0 - 54
imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/productionReadyCenter/BomProcedureProgramGroupDetailController.java

@@ -1,54 +0,0 @@
-package com.github.zuihou.business.controller.productionReadyCenter;
-
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgramGroupDetail;
-import com.github.zuihou.business.productionReadyCenter.dto.BomProcedureProgramGroupDetailSaveDTO;
-import com.github.zuihou.business.productionReadyCenter.dto.BomProcedureProgramGroupDetailUpdateDTO;
-import com.github.zuihou.business.productionReadyCenter.dto.BomProcedureProgramGroupDetailPageDTO;
-import com.github.zuihou.business.productionReadyCenter.service.BomProcedureProgramGroupDetailService;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import com.github.zuihou.base.controller.SuperController;
-import com.github.zuihou.base.R;
-import com.github.zuihou.log.annotation.SysLog;
-import io.swagger.annotations.Api;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.RequestMapping;
-import com.github.zuihou.security.annotation.PreAuth;
-import org.springframework.web.bind.annotation.RestController;
-
-
-/**
- * <p>
- * 前端控制器
- * 工序程序组内明细
- * </p>
- *
- * @author imcs
- * @date 2020-12-20
- */
-@Slf4j
-@Validated
-@RestController
-@RequestMapping("/bomProcedureProgramGroupDetail")
-@Api(value = "BomProcedureProgramGroupDetail", tags = "工序程序组内明细")
-@SysLog(enabled = true)
-public class BomProcedureProgramGroupDetailController extends SuperController<BomProcedureProgramGroupDetailService, Long, BomProcedureProgramGroupDetail, BomProcedureProgramGroupDetailPageDTO, BomProcedureProgramGroupDetailSaveDTO, BomProcedureProgramGroupDetailUpdateDTO> {
-
-    /**
-     * Excel导入后的操作
-     *
-     * @param list
-     */
-    @Override
-    public R<Boolean> handlerImport(List<Map<String, String>> list){
-        List<BomProcedureProgramGroupDetail> bomProcedureProgramGroupDetailList = list.stream().map((map) -> {
-            BomProcedureProgramGroupDetail bomProcedureProgramGroupDetail = BomProcedureProgramGroupDetail.builder().build();
-            //TODO 请在这里完成转换
-            return bomProcedureProgramGroupDetail;
-        }).collect(Collectors.toList());
-
-        return R.success(baseService.saveBatch(bomProcedureProgramGroupDetailList));
-    }
-}

+ 0 - 65
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/dto/BomProcedureProgramGroupDetailPageDTO.java

@@ -1,65 +0,0 @@
-package com.github.zuihou.business.productionReadyCenter.dto;
-
-import java.time.LocalDateTime;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.github.zuihou.base.entity.Entity;
-import com.baomidou.mybatisplus.annotation.TableField;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-import org.hibernate.validator.constraints.Length;
-import org.hibernate.validator.constraints.Range;
-import lombok.Data;
-import lombok.Builder;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-import lombok.AllArgsConstructor;
-import lombok.ToString;
-import lombok.experimental.Accessors;
-import com.github.zuihou.common.constant.DictionaryType;
-import java.io.Serializable;
-
-/**
- * <p>
- * 实体类
- * 工序程序组内明细
- * </p>
- *
- * @author imcs
- * @since 2020-12-20
- */
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-@Accessors(chain = true)
-@ToString(callSuper = true)
-@EqualsAndHashCode(callSuper = false)
-@Builder
-@ApiModel(value = "BomProcedureProgramGroupDetailPageDTO", description = "工序程序组内明细")
-public class BomProcedureProgramGroupDetailPageDTO implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 主表id
-     */
-    @ApiModelProperty(value = "主表id")
-    @NotNull(message = "主表id不能为空")
-    private Long mainId;
-    /**
-     * 组id
-     */
-    @ApiModelProperty(value = "组id")
-    @NotNull(message = "组id不能为空")
-    private Long groupId;
-    /**
-     *  托盘位置ID
-     */
-    @ApiModelProperty(value = " 托盘位置ID")
-    @NotNull(message = " 托盘位置ID不能为空")
-    private Long trayPositionId;
-
-}

+ 0 - 64
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/dto/BomProcedureProgramGroupDetailSaveDTO.java

@@ -1,64 +0,0 @@
-package com.github.zuihou.business.productionReadyCenter.dto;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.github.zuihou.base.entity.Entity;
-import com.baomidou.mybatisplus.annotation.TableField;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-import org.hibernate.validator.constraints.Length;
-import org.hibernate.validator.constraints.Range;
-import lombok.Data;
-import lombok.Builder;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-import lombok.AllArgsConstructor;
-import lombok.ToString;
-import lombok.experimental.Accessors;
-import com.github.zuihou.common.constant.DictionaryType;
-import java.io.Serializable;
-
-/**
- * <p>
- * 实体类
- * 工序程序组内明细
- * </p>
- *
- * @author imcs
- * @since 2020-12-20
- */
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-@Accessors(chain = true)
-@ToString(callSuper = true)
-@EqualsAndHashCode(callSuper = false)
-@Builder
-@ApiModel(value = "BomProcedureProgramGroupDetailSaveDTO", description = "工序程序组内明细")
-public class BomProcedureProgramGroupDetailSaveDTO implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 主表id
-     */
-    @ApiModelProperty(value = "主表id")
-    @NotNull(message = "主表id不能为空")
-    private Long mainId;
-    /**
-     * 组id
-     */
-    @ApiModelProperty(value = "组id")
-    @NotNull(message = "组id不能为空")
-    private Long groupId;
-    /**
-     *  托盘位置ID
-     */
-    @ApiModelProperty(value = " 托盘位置ID")
-    @NotNull(message = " 托盘位置ID不能为空")
-    private Long trayPositionId;
-
-}

+ 0 - 68
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/dto/BomProcedureProgramGroupDetailUpdateDTO.java

@@ -1,68 +0,0 @@
-package com.github.zuihou.business.productionReadyCenter.dto;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.github.zuihou.base.entity.Entity;
-import com.baomidou.mybatisplus.annotation.TableField;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-import org.hibernate.validator.constraints.Length;
-import org.hibernate.validator.constraints.Range;
-import com.github.zuihou.base.entity.SuperEntity;
-import lombok.Data;
-import lombok.Builder;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-import lombok.AllArgsConstructor;
-import lombok.ToString;
-import lombok.experimental.Accessors;
-import com.github.zuihou.common.constant.DictionaryType;
-import java.io.Serializable;
-
-/**
- * <p>
- * 实体类
- * 工序程序组内明细
- * </p>
- *
- * @author imcs
- * @since 2020-12-20
- */
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-@Accessors(chain = true)
-@ToString(callSuper = true)
-@EqualsAndHashCode(callSuper = false)
-@Builder
-@ApiModel(value = "BomProcedureProgramGroupDetailUpdateDTO", description = "工序程序组内明细")
-public class BomProcedureProgramGroupDetailUpdateDTO implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    @ApiModelProperty(value = "主键")
-    @NotNull(message = "id不能为空", groups = SuperEntity.Update.class)
-    private Long id;
-
-    /**
-     * 主表id
-     */
-    @ApiModelProperty(value = "主表id")
-    @NotNull(message = "主表id不能为空")
-    private Long mainId;
-    /**
-     * 组id
-     */
-    @ApiModelProperty(value = "组id")
-    @NotNull(message = "组id不能为空")
-    private Long groupId;
-    /**
-     *  托盘位置ID
-     */
-    @ApiModelProperty(value = " 托盘位置ID")
-    @NotNull(message = " 托盘位置ID不能为空")
-    private Long trayPositionId;
-}

+ 0 - 75
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/dto/BomProcedureProgramGroupPageDTO.java

@@ -1,75 +0,0 @@
-package com.github.zuihou.business.productionReadyCenter.dto;
-
-import java.time.LocalDateTime;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.github.zuihou.base.entity.Entity;
-import com.baomidou.mybatisplus.annotation.TableField;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-import org.hibernate.validator.constraints.Length;
-import org.hibernate.validator.constraints.Range;
-import lombok.Data;
-import lombok.Builder;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-import lombok.AllArgsConstructor;
-import lombok.ToString;
-import lombok.experimental.Accessors;
-import com.github.zuihou.common.constant.DictionaryType;
-import java.io.Serializable;
-
-/**
- * <p>
- * 实体类
- * 工序程序分组
- * </p>
- *
- * @author imcs
- * @since 2020-12-20
- */
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-@Accessors(chain = true)
-@ToString(callSuper = true)
-@EqualsAndHashCode(callSuper = false)
-@Builder
-@ApiModel(value = "BomProcedureProgramGroupPageDTO", description = "工序程序分组")
-public class BomProcedureProgramGroupPageDTO implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 主表id
-     */
-    @ApiModelProperty(value = "主表id")
-    @NotNull(message = "主表id不能为空")
-    private Long mainId;
-    /**
-     * 运行时间
-     */
-    @ApiModelProperty(value = "运行时间")
-    private Float runTime;
-    /**
-     * 刀具数量
-     */
-    @ApiModelProperty(value = "刀具数量")
-    private Integer toolNums;
-
-    /**
-     * 文件路径
-     */
-    @ApiModelProperty(value = "文件路径")
-    private String filePath;
-
-    /**
-     * 原始文件名
-     */
-    @ApiModelProperty(value = "原始文件名")
-    private String submittedFileName;
-
-}

+ 0 - 73
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/dto/BomProcedureProgramGroupSaveDTO.java

@@ -1,73 +0,0 @@
-package com.github.zuihou.business.productionReadyCenter.dto;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.github.zuihou.base.entity.Entity;
-import com.baomidou.mybatisplus.annotation.TableField;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-import org.hibernate.validator.constraints.Length;
-import org.hibernate.validator.constraints.Range;
-import lombok.Data;
-import lombok.Builder;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-import lombok.AllArgsConstructor;
-import lombok.ToString;
-import lombok.experimental.Accessors;
-import com.github.zuihou.common.constant.DictionaryType;
-import java.io.Serializable;
-
-/**
- * <p>
- * 实体类
- * 工序程序分组
- * </p>
- *
- * @author imcs
- * @since 2020-12-20
- */
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-@Accessors(chain = true)
-@ToString(callSuper = true)
-@EqualsAndHashCode(callSuper = false)
-@Builder
-@ApiModel(value = "BomProcedureProgramGroupSaveDTO", description = "工序程序分组")
-public class BomProcedureProgramGroupSaveDTO implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 主表id
-     */
-    @ApiModelProperty(value = "主表id")
-    @NotNull(message = "主表id不能为空")
-    private Long mainId;
-    /**
-     * 运行时间
-     */
-    @ApiModelProperty(value = "运行时间")
-    private Float runTime;
-    /**
-     * 刀具数量
-     */
-    @ApiModelProperty(value = "刀具数量")
-    private Integer toolNums;
-    /**
-     * 文件路径
-     */
-    @ApiModelProperty(value = "文件路径")
-    private String filePath;
-
-    /**
-     * 原始文件名
-     */
-    @ApiModelProperty(value = "原始文件名")
-    private String submittedFileName;
-
-}

+ 0 - 77
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/dto/BomProcedureProgramGroupUpdateDTO.java

@@ -1,77 +0,0 @@
-package com.github.zuihou.business.productionReadyCenter.dto;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.github.zuihou.base.entity.Entity;
-import com.baomidou.mybatisplus.annotation.TableField;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-import org.hibernate.validator.constraints.Length;
-import org.hibernate.validator.constraints.Range;
-import com.github.zuihou.base.entity.SuperEntity;
-import lombok.Data;
-import lombok.Builder;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-import lombok.AllArgsConstructor;
-import lombok.ToString;
-import lombok.experimental.Accessors;
-import com.github.zuihou.common.constant.DictionaryType;
-import java.io.Serializable;
-
-/**
- * <p>
- * 实体类
- * 工序程序分组
- * </p>
- *
- * @author imcs
- * @since 2020-12-20
- */
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-@Accessors(chain = true)
-@ToString(callSuper = true)
-@EqualsAndHashCode(callSuper = false)
-@Builder
-@ApiModel(value = "BomProcedureProgramGroupUpdateDTO", description = "工序程序分组")
-public class BomProcedureProgramGroupUpdateDTO implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    @ApiModelProperty(value = "主键")
-    @NotNull(message = "id不能为空", groups = SuperEntity.Update.class)
-    private Long id;
-
-    /**
-     * 主表id
-     */
-    @ApiModelProperty(value = "主表id")
-    @NotNull(message = "主表id不能为空")
-    private Long mainId;
-    /**
-     * 运行时间
-     */
-    @ApiModelProperty(value = "运行时间")
-    private Float runTime;
-    /**
-     * 刀具数量
-     */
-    @ApiModelProperty(value = "刀具数量")
-    private Integer toolNums;
-    /**
-     * 文件路径
-     */
-    @ApiModelProperty(value = "文件路径")
-    private String filePath;
-
-    /**
-     * 原始文件名
-     */
-    @ApiModelProperty(value = "原始文件名")
-    private String submittedFileName;
-}

+ 3 - 3
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/entity/BomProcedureProgram.java

@@ -105,9 +105,9 @@ public class BomProcedureProgram extends Entity<Long> {
     @Excel(name = "工艺ID")
     private Long procedureId;
 
-    @ApiModelProperty(value="程序对应的位置程序列表")
-    @TableField(exist = false)
-    private List<BomProcedureProgramGroup> programGroupList;
+//    @ApiModelProperty(value="程序对应的位置程序列表")
+//    @TableField(exist = false)
+//    private List<BomProcedureProgramGroup> programGroupList;
 
     @ApiModelProperty(value="夹具组组序")
     @TableField(exist = false)

+ 0 - 129
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/entity/BomProcedureProgramGroup.java

@@ -1,129 +0,0 @@
-package com.github.zuihou.business.productionReadyCenter.entity;
-
-import cn.afterturn.easypoi.excel.annotation.Excel;
-import cn.afterturn.easypoi.excel.annotation.ExcelEntity;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.github.zuihou.base.entity.Entity;
-import com.baomidou.mybatisplus.annotation.TableField;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-import org.hibernate.validator.constraints.Length;
-import org.hibernate.validator.constraints.Range;
-import java.time.LocalDateTime;
-import java.util.List;
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-import lombok.ToString;
-import lombok.experimental.Accessors;
-import com.github.zuihou.common.constant.DictionaryType;
-import static com.github.zuihou.utils.DateUtils.DEFAULT_DATE_TIME_FORMAT;
-
-import static com.baomidou.mybatisplus.annotation.SqlCondition.LIKE;
-
-/**
- * <p>
- * 实体类
- * 工序程序分组
- * </p>
- *
- * @author imcs
- * @since 2020-12-20
- */
-@Data
-@NoArgsConstructor
-@ToString(callSuper = true)
-@EqualsAndHashCode(callSuper = true)
-@Accessors(chain = true)
-@TableName("imcs_b_bom_procedure_program_group")
-@ApiModel(value = "BomProcedureProgramGroup", description = "工序程序分组")
-@AllArgsConstructor
-public class BomProcedureProgramGroup extends Entity<Long> {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 主表id
-     */
-    @ApiModelProperty(value = "主表id")
-    @NotNull(message = "主表id不能为空")
-    @TableField("main_id")
-    @Excel(name = "主表id")
-    private Long mainId;
-
-    /**
-     * 运行时间
-     */
-    @ApiModelProperty(value = "运行时间")
-    @TableField("run_time")
-    @Excel(name = "运行时间")
-    private Float runTime;
-
-    /**
-     * 刀具数量
-     */
-    @ApiModelProperty(value = "刀具数量")
-    @TableField("tool_nums")
-    @Excel(name = "刀具数量")
-    private Integer toolNums;
-
-    /**
-     * 文件路径
-     */
-    @ApiModelProperty(value = "文件路径")
-    @TableField("file_path")
-    @Excel(name = "文件路径")
-    private String filePath;
-
-    /**
-     * 原始文件名
-     */
-    @ApiModelProperty(value = "原始文件名")
-    @TableField("submitted_file_name")
-    @Excel(name = "原始文件名")
-    private String submittedFileName;
-
-    /**
-     * 加工位置
-     */
-    @ApiModelProperty(value = "加工位置")
-    @TableField(exist = false)
-    private String positions;
-
-    /**
-     * 是否上传
-     */
-    @ApiModelProperty(value = "是否上传")
-    @TableField(exist = false)
-    private String nc;
-
-    @ApiModelProperty(value = "业务id,查附件")
-    @TableField(exist = false)
-    private String programId;
-
-    @ApiModelProperty(value = "托盘位置List")
-    @TableField(exist = false)
-    private List<Long> positionList;
-
-
-    @Builder
-    public BomProcedureProgramGroup(Long id, LocalDateTime createTime, Long createUser, LocalDateTime updateTime, Long updateUser, 
-                    Long mainId, Float runTime, Integer toolNums) {
-        this.id = id;
-        this.createTime = createTime;
-        this.createUser = createUser;
-        this.updateTime = updateTime;
-        this.updateUser = updateUser;
-        this.mainId = mainId;
-        this.runTime = runTime;
-        this.toolNums = toolNums;
-    }
-
-}

+ 0 - 91
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/entity/BomProcedureProgramGroupDetail.java

@@ -1,91 +0,0 @@
-package com.github.zuihou.business.productionReadyCenter.entity;
-
-import cn.afterturn.easypoi.excel.annotation.Excel;
-import cn.afterturn.easypoi.excel.annotation.ExcelEntity;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.github.zuihou.base.entity.Entity;
-import com.baomidou.mybatisplus.annotation.TableField;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-import org.hibernate.validator.constraints.Length;
-import org.hibernate.validator.constraints.Range;
-import java.time.LocalDateTime;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-import lombok.ToString;
-import lombok.experimental.Accessors;
-import com.github.zuihou.common.constant.DictionaryType;
-import static com.github.zuihou.utils.DateUtils.DEFAULT_DATE_TIME_FORMAT;
-
-import static com.baomidou.mybatisplus.annotation.SqlCondition.LIKE;
-
-/**
- * <p>
- * 实体类
- * 工序程序组内明细
- * </p>
- *
- * @author imcs
- * @since 2020-12-20
- */
-@Data
-@NoArgsConstructor
-@ToString(callSuper = true)
-@EqualsAndHashCode(callSuper = true)
-@Accessors(chain = true)
-@TableName("imcs_b_bom_procedure_program_group_detail")
-@ApiModel(value = "BomProcedureProgramGroupDetail", description = "工序程序组内明细")
-@AllArgsConstructor
-public class BomProcedureProgramGroupDetail extends Entity<Long> {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 主表id
-     */
-    @ApiModelProperty(value = "主表id")
-    @NotNull(message = "主表id不能为空")
-    @TableField("main_id")
-    @Excel(name = "主表id")
-    private Long mainId;
-
-    /**
-     * 组id
-     */
-    @ApiModelProperty(value = "组id")
-    @NotNull(message = "组id不能为空")
-    @TableField("group_id")
-    @Excel(name = "组id")
-    private Long groupId;
-
-    /**
-     *  托盘位置ID
-     */
-    @ApiModelProperty(value = " 托盘位置ID")
-    @NotNull(message = " 托盘位置ID不能为空")
-    @TableField("tray_position_id")
-    @Excel(name = " 托盘位置ID")
-    private Long trayPositionId;
-
-
-    @Builder
-    public BomProcedureProgramGroupDetail(Long id, LocalDateTime createTime, Long createUser, LocalDateTime updateTime, Long updateUser, 
-                    Long mainId, Long groupId, Long trayPositionId) {
-        this.id = id;
-        this.createTime = createTime;
-        this.createUser = createUser;
-        this.updateTime = updateTime;
-        this.updateUser = updateUser;
-        this.mainId = mainId;
-        this.groupId = groupId;
-        this.trayPositionId = trayPositionId;
-    }
-
-}