Browse Source

Merge remote-tracking branch 'origin/master' into master

姚云青 3 years ago
parent
commit
c0b1784566
19 changed files with 239 additions and 82 deletions
  1. 1 1
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/aps/algorithm/ga/GAScheduler.java
  2. 1 0
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/aps/instance/domain/basicdata/Instance.java
  3. 14 0
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/aps/instance/domain/basicdata/Machine.java
  4. 32 11
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/mq/TaskWorkNode.java
  5. 2 2
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/impl/OrderServiceImpl.java
  6. 1 1
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/MachineCuttingToolService.java
  7. 43 16
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/impl/MachineCuttingToolServiceImpl.java
  8. 6 1
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionResourceCenter/dao/ProductionresourceBizMapper.java
  9. 5 1
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionResourceCenter/service/ProductionresourceBizService.java
  10. 14 2
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionResourceCenter/service/impl/ProductionresourceBizServiceImpl.java
  11. 4 3
      imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/operationManagementCenter/InspectionMapper.xml
  12. 2 1
      imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/productionReadyCenter/MachineCuttingToolMapper.xml
  13. 16 35
      imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/productionResourceCenter/ProductionresourceBizMapper.xml
  14. 17 3
      imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/dispatchRecord/DispatchExceptionController.java
  15. 1 1
      imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/productionReadyCenter/CuttingToolController.java
  16. 5 3
      imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/productionReadyCenter/MachineCuttingToolController.java
  17. 61 0
      imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/productionResourceCenter/ProductionresourceBizController.java
  18. 4 0
      imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/entity/MachineCuttingTool.java
  19. 10 1
      imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionResourceCenter/entity/Productionresource.java

+ 1 - 1
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/aps/algorithm/ga/GAScheduler.java

@@ -57,7 +57,7 @@ public class GAScheduler {
 						.alterers(new Mutator<>(0.2), new SinglePointCrossover<>(0.9)).build();
 
 				Phenotype<IntegerGene, Double> best = engine.stream()
-						.limit(100)
+						.limit(2)
 						.peek(r -> System.out.println( DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss") + " : " + r.getBestPhenotype()))
 						.collect(EvolutionResult.toBestPhenotype());
 				results.add(best.getFitness());

+ 1 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/aps/instance/domain/basicdata/Instance.java

@@ -182,6 +182,7 @@ public class Instance implements Serializable {
 
 			// 清除工时
 			machine.setAssignedTaskWork(0);
+			machine.setAssignedTaskWork(machine.getHisAssignedTaskWork());
 			// 清除负荷率和利用率
 			machine.setLoadRation(0);
 			machine.setUtilRation(0);

+ 14 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/aps/instance/domain/basicdata/Machine.java

@@ -53,6 +53,12 @@ public class Machine implements Serializable {
 	 * 机床已安排的工时
 	 */
 	private double assignedTaskWork;
+
+	/**
+	 * 机床已安排的工时
+	 */
+	private double hisAssignedTaskWork;
+
 	/**
 	 * 利用率
 	 */
@@ -117,4 +123,12 @@ public class Machine implements Serializable {
 	public void setNoUseTime(List<String> noUseTime) {
 		this.noUseTime = noUseTime;
 	}
+
+	public double getHisAssignedTaskWork() {
+		return hisAssignedTaskWork;
+	}
+
+	public void setHisAssignedTaskWork(double hisAssignedTaskWork) {
+		this.hisAssignedTaskWork = hisAssignedTaskWork;
+	}
 }

+ 32 - 11
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/mq/TaskWorkNode.java

@@ -160,6 +160,9 @@ public class TaskWorkNode {
         //多产品搬运类型
         String carryType = jsonObject.getString("carryType");
         if (StringUtil.isEmpty(taskNodeId) || StringUtil.isEmpty(bizType)) {
+            AAutoNodeLog log = AAutoNodeLog.builder().build();
+            log.setExeResult("0").setManual("1").setFeedback("全局异常处理");
+            autoNodeLogService.save(log);
             throw new RuntimeException("全局通知异常");
         }
         logger.info("=======================" + taskNodeId);
@@ -169,10 +172,16 @@ public class TaskWorkNode {
 //
         if (taskNode == null || taskNode.getTaskId() == null) {
             //模拟处理数据
+            AAutoNodeLog log = AAutoNodeLog.builder().build();
+            log.setExeResult("0").setManual("0").setFeedback("当前任务节点为空");
+            autoNodeLogService.save(log);
             throw new RuntimeException("当前任务节点为空");
         }
         TTask tTask = taskMapper.selectById(taskNode.getTaskId());
         if (tTask == null || tTask.getStatus() == "3") {
+            AAutoNodeLog log = AAutoNodeLog.builder().build();
+            log.setTaskNodeId(taskNode.getId()).setExeResult("0").setManual("0").setFeedback("当前任务为空");
+            autoNodeLogService.save(log);
             throw new RuntimeException("当前任务为空");
         }
 //        //获取配置序数据
@@ -197,21 +206,13 @@ public class TaskWorkNode {
         isFinal = resourceAutoCode.isFinal() ? true : false;
         msgUtil.redis_set(CacheKey.TASK_CURRENT_NODE + "_" + taskNode.getResourceId(), resourceAutoCode);
 
-        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().getId()).setOrderId(tTask.getOrderId())
-                    .setTaskId(tTask.getId()).setExeStatus("2").setStartTime(new Date()).setFeedbackFile(fileName);
-        } else {
-            log = autoNodeLogList.get(0);
-            log.setFeedbackFile(fileName);
-        }
-
         //更新节点任务
         taskNode.setExeStatus("2").setStartTime(new Date());
         taskNodeMapper.updateAllById(taskNode);
 
+        //初始化业务日志
+        AAutoNodeLog log = getBusinessLog(tTask, taskNode);
+
 //        logger.info("==================请求地址=============" + autoProgramUrl);
         String returnData = "";
 
@@ -924,5 +925,25 @@ public class TaskWorkNode {
         }
         return false;
     }
+
+    /**
+     * 动态获取业务日志
+     *
+     * @return AAutoNodeLog
+     */
+    public AAutoNodeLog getBusinessLog(TTask tTask, TaskNode taskNode){
+        //插入执行日志
+        AAutoNodeLog log = new AAutoNodeLog();
+        List<AAutoNodeLog> autoNodeLogList = autoNodeLogMapper.selectList(Wraps.<AAutoNodeLog>lbQ().eq(AAutoNodeLog::getTaskNodeId, taskNode.getId()));
+
+        if (autoNodeLogList == null || autoNodeLogList.size() == 0) {
+            log.setTaskNodeId(taskNode.getId()).setAutoNodeId(taskNode.getAutoNode().getId()).setOrderId(tTask.getOrderId())
+                    .setTaskId(tTask.getId()).setExeStatus("2").setStartTime(new Date()).setFeedbackFile(fileName);
+        } else {
+            log = autoNodeLogList.get(0);
+            log.setFeedbackFile(fileName);
+        }
+        return log;
+    }
 }
 

+ 2 - 2
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/impl/OrderServiceImpl.java

@@ -908,10 +908,10 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
             Machine machine = machindeIterator.next().getValue();
             // 查找该设备正在进行中的任务
             Map params = new HashMap();
-            params.put("resoureId",machine.getId());
+            params.put("resourceId",machine.getId());
             params.put("status","2");
             int total = taskService.selectTotalMachineUseTime(params);
-            machine.setAssignedTaskWork(total);
+            machine.setHisAssignedTaskWork(total);
         }
         // end modify by yejian on 20220504 遍历设备查找设备上正在加工的工序时间累积,解决多设备排产时设备分配不均匀问题
 

+ 1 - 1
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/MachineCuttingToolService.java

@@ -42,5 +42,5 @@ public interface MachineCuttingToolService extends SuperCacheService<MachineCutt
      * 同步设备刀具
      * @param param
      */
-    void sysCuttingTools(Map<String, String> param) throws Exception;
+    void sysCuttingTools(MachineCuttingTool machineCuttingTool) throws Exception;
 }

+ 43 - 16
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/impl/MachineCuttingToolServiceImpl.java

@@ -2,17 +2,24 @@ package com.github.zuihou.business.productionReadyCenter.service.impl;
 
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.zuihou.base.service.SuperCacheServiceImpl;
+import com.github.zuihou.business.productionReadyCenter.dao.CuttingToolMapper;
 import com.github.zuihou.business.productionReadyCenter.dao.MachineCuttingToolMapper;
 import com.github.zuihou.business.productionReadyCenter.dto.MachineCuttingToolSaveDTO;
+import com.github.zuihou.business.productionReadyCenter.entity.CuttingTool;
 import com.github.zuihou.business.productionReadyCenter.entity.MachineCuttingTool;
 import com.github.zuihou.business.productionReadyCenter.service.MachineCuttingToolService;
+import com.github.zuihou.business.productionResourceCenter.entity.ResourceBusiness;
+import com.github.zuihou.business.productionResourceCenter.entity.ZZoneProductionresource;
 import com.github.zuihou.common.constant.CacheKey;
+import com.github.zuihou.common.constant.DictionaryKey;
 import com.github.zuihou.common.util.DateUtil;
 import com.github.zuihou.context.BaseContextHandler;
 import com.github.zuihou.database.mybatis.auth.DataScope;
+import com.github.zuihou.database.mybatis.conditions.Wraps;
 import com.github.zuihou.database.mybatis.conditions.query.LbqWrapper;
 import com.github.zuihou.injection.annonation.InjectionResult;
 import com.github.zuihou.tenant.dao.ProductionresourceviewMapper;
@@ -49,10 +56,10 @@ import java.util.Map;
 
 public class MachineCuttingToolServiceImpl extends SuperCacheServiceImpl<MachineCuttingToolMapper, MachineCuttingTool> implements MachineCuttingToolService {
 
-//    @Value("${machineCuttingTools.synUrl}")
-    private String synUrl;
     @Autowired
     private ProductionresourceviewMapper productionresourceviewMapper;
+    @Autowired
+    private CuttingToolMapper cuttingToolMapper;
     @Resource
     private RestTemplate restTemplate;
 
@@ -71,36 +78,56 @@ public class MachineCuttingToolServiceImpl extends SuperCacheServiceImpl<Machine
     }
 
     @Override
-    public void sysCuttingTools(Map<String, String> param) throws Exception{
+    public void sysCuttingTools(MachineCuttingTool data) throws Exception{
         BaseContextHandler.setTenant("0000");
-        String[] synIds = param.get("ids").split(",");
         HttpHeaders headers = new HttpHeaders();
         headers.setContentType(MediaType.APPLICATION_JSON);
-        for(String id : synIds){
-            Productionresource productionresource =  productionresourceviewMapper.selectById(id);
+        for(long resourceId : data.getIds()){
+            Productionresource productionresource =  productionresourceviewMapper.selectById(resourceId);
             // 访问ccs接口查询设备刀具
             JSONObject jsonObject = new JSONObject();
             jsonObject.put("url",productionresource.getIp());
             jsonObject.put("port",productionresource.getPort());
-            jsonObject.put("businessType", "tools");
 
             HttpEntity<String> request = new HttpEntity<>(jsonObject.toJSONString(), headers);
 
             String synMachineCuttingTolls = "";
-            ResponseEntity<String> postForEntity = restTemplate.postForEntity(synUrl, request, String.class);
+            String instructionUrl = DictionaryKey.INSTRUCTION_URL + "/api/GetTools";
+            System.out.println("instructionUrl=" + instructionUrl);
+            System.out.println("jsonParam=" + jsonObject.toJSONString());
+            ResponseEntity<String> postForEntity = restTemplate.postForEntity(instructionUrl, request, String.class);
             synMachineCuttingTolls = postForEntity.getBody();
 
             log.info("设备" + productionresource.getName() + "同步刀具返回{},请求参数{}",synMachineCuttingTolls,jsonObject.toString());
-            JSONObject upResult = JSON.parseObject(synMachineCuttingTolls);
-            if("0".equals(upResult.getString("code"))){
-                productionresource.setToolSynTime(DateUtil.formatTime(Calendar.getInstance().getTime()));
-                productionresourceviewMapper.updateById(productionresource);
-
-                MachineCuttingTool machineCuttingTool = JSONObject.parseObject(synMachineCuttingTolls,MachineCuttingTool.class);
-                machineCuttingTool.setMachineId(Integer.valueOf(id));
-                save(machineCuttingTool);
+            JSONArray upResult = JSONArray.parseArray(synMachineCuttingTolls);
+            productionresource.setToolSynTime(DateUtil.formatTime(Calendar.getInstance().getTime()));
+            productionresource.setToolNum(upResult.size());
+            productionresourceviewMapper.updateById(productionresource);
+
+            baseMapper.delete(Wraps.<MachineCuttingTool>lbQ().eq(MachineCuttingTool::getMachineId, resourceId));
+            for(int i = 0; i<upResult.size(); i++){
+                JSONObject tool = upResult.getJSONObject(i);
+                String name = tool.getString("name");
+                CuttingTool cuttingTool = cuttingToolMapper.selectOne(Wraps.<CuttingTool>lbQ().in(CuttingTool::getCuttingToolName,name));
+                MachineCuttingTool machineCuttingTool = new MachineCuttingTool();
+                machineCuttingTool.setMachineId(resourceId);
+                machineCuttingTool.setCuttingToolName(name);
+                machineCuttingTool.setCuttingToolPicture(cuttingTool.getCuttingToolPicture());
+                machineCuttingTool.setCuttingToolInstallPicture(cuttingTool.getCuttingToolInstallPicture());
+                machineCuttingTool.setCuttingToolPosition(tool.getString("toolPosition"));
+                machineCuttingTool.setCuttingToolId(tool.getString("toolNo"));
+                String cuttingToolType = tool.getString("monitorType");
+                machineCuttingTool.setCuttingToolType(cuttingToolType);
+                machineCuttingTool.setEarlyWarnning(tool.getString("targetLife"));
+                machineCuttingTool.setUseageCount(tool.getString("workPiece"));
+                machineCuttingTool.setSurplusCount(tool.getString("warnLife"));
+                machineCuttingTool.setSisterCuttingToolId(tool.getString("sisterNo"));
+                machineCuttingTool.setKnifeEdgeNumber(tool.getString("toolEdgeNo"));
+                machineCuttingTool.setCuttingToolRadius(tool.getString("toolRadius"));
+                baseMapper.insert(machineCuttingTool);
             }
 
+
         }
     }
 

+ 6 - 1
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionResourceCenter/dao/ProductionresourceBizMapper.java

@@ -1,7 +1,11 @@
 package com.github.zuihou.business.productionResourceCenter.dao;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.github.zuihou.base.mapper.SuperMapper;
 import com.github.zuihou.business.productionResourceCenter.entity.Productionresource;
+import com.github.zuihou.database.mybatis.conditions.query.LbqWrapper;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -18,6 +22,7 @@ import java.util.Map;
 @Repository
 public interface ProductionresourceBizMapper extends SuperMapper<Productionresource> {
 
-
     List<Productionresource> selectResouces(Map queryParams);
+
+    IPage<Productionresource> getPageList(IPage<Productionresource> page,@Param(Constants.WRAPPER) LbqWrapper<Productionresource> wrapper);
 }

+ 5 - 1
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionResourceCenter/service/ProductionresourceBizService.java

@@ -1,7 +1,10 @@
 package com.github.zuihou.business.productionResourceCenter.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.zuihou.base.service.SuperService;
+import com.github.zuihou.business.operationManagementCenter.entity.TTask;
 import com.github.zuihou.business.productionResourceCenter.entity.Productionresource;
+import com.github.zuihou.database.mybatis.conditions.query.LbqWrapper;
 
 import java.util.Map;
 
@@ -14,8 +17,9 @@ import java.util.Map;
  * @author imcs
  * @date 2020-12-02
  */
-public interface ProductionresourceBizService  {
+public interface ProductionresourceBizService extends SuperService<Productionresource> {
 
     Map<String, Object> pageList(Map<String, Object> map);
 
+    IPage<Productionresource> getPageList(IPage<Productionresource> page, LbqWrapper<Productionresource> wrapper);
 }

+ 14 - 2
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionResourceCenter/service/impl/ProductionresourceBizServiceImpl.java

@@ -1,10 +1,17 @@
 package com.github.zuihou.business.productionResourceCenter.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.zuihou.base.service.SuperServiceImpl;
+import com.github.zuihou.business.operationManagementCenter.dao.TaskBizMapper;
+import com.github.zuihou.business.operationManagementCenter.entity.TTask;
+import com.github.zuihou.business.productionResourceCenter.dao.ProductionresourceBizMapper;
+import com.github.zuihou.business.productionResourceCenter.entity.Productionresource;
 import com.github.zuihou.business.productionResourceCenter.entity.ResourceBusiness;
 import com.github.zuihou.business.productionResourceCenter.service.ProductionresourceBizService;
 import com.github.zuihou.business.productionResourceCenter.service.ResourceBusinessService;
 import com.github.zuihou.database.mybatis.conditions.Wraps;
+import com.github.zuihou.database.mybatis.conditions.query.LbqWrapper;
 import com.github.zuihou.tenant.service.ProductionresourceService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,7 +33,7 @@ import java.util.stream.Collectors;
  */
 @Slf4j
 @Service
-public class ProductionresourceBizServiceImpl implements ProductionresourceBizService {
+public class ProductionresourceBizServiceImpl extends SuperServiceImpl<ProductionresourceBizMapper, Productionresource>  implements ProductionresourceBizService {
 
     @Autowired
     private ProductionresourceService productionresourceService;
@@ -34,7 +41,6 @@ public class ProductionresourceBizServiceImpl implements ProductionresourceBizSe
     @Autowired
     private ResourceBusinessService resourceBusinessService;
 
-
     @Override
     public Map<String, Object> pageList(Map<String, Object> map) {
         Map<String, Object> returnMap = productionresourceService.pageList(map);
@@ -47,4 +53,10 @@ public class ProductionresourceBizServiceImpl implements ProductionresourceBizSe
         }).collect(Collectors.toList());
         return returnMap;
     }
+
+    @Override
+    public IPage<Productionresource> getPageList(IPage<Productionresource> page, LbqWrapper<Productionresource> wrapper){
+        return baseMapper.getPageList(page, wrapper);
+    }
+
 }

+ 4 - 3
imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/operationManagementCenter/InspectionMapper.xml

@@ -21,8 +21,8 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id,create_time,update_time,create_user, update_user, bom_id,zone_id,task_id,order_id,plan_id, workpiece_id, result,report,org_id,
-        bomName, partsNo, startTime, endTime,procedureNo, procedureName, zoneNo
+        id,create_time,update_time,create_user, update_user, bom_id,zone_id,task_id,order_id,plan_id, workpiece_id, org_id,
+        bomName, partsNo, startTime, endTime,procedureNo, procedureName, zoneNo, ifnull(ok_flag, result) as result,  measuring_report as report
     </sql>
 
     <!-- 分页 -->
@@ -30,12 +30,13 @@
         select
         <include refid="Base_Column_List"/>
         from (
-           select a.*, b.name as bomName, b.parts_no as partsNo, o.start_time as startTime, o.end_time as endTime, p.name as procedureName, p.no as procedureNo, z.org_id, z.no as zoneNo from imcs_o_order_inspection a
+           select a.*,b.name as bomName, b.parts_no as partsNo, o.start_time as startTime, o.end_time as endTime, p.name as procedureName, p.no as procedureNo, z.org_id, z.no as zoneNo, q.ok_flag, q.measuring_report from imcs_o_order_inspection a
            left join imcs_p_plan o on a.plan_id = o.id
            left join imcs_b_bom b on a.bom_id = b.id
            left join imcs_z_zone z on a.zone_id = z.id
            left join imcs_t_task k on a.task_id = k.id
            left join imcs_b_bom_procedure p on k.procedure_id = p.id
+           left join imcs_order_quality_info q on a.workpiece_id = q.workpiece_id
         ) s ${ew.customSqlSegment}
     </select>
 

+ 2 - 1
imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/productionReadyCenter/MachineCuttingToolMapper.xml

@@ -22,12 +22,13 @@
         <result column="knife_edge_number" jdbcType="VARCHAR" property="knifeEdgeNumber"/>
         <result column="cutting_tool_position" jdbcType="VARCHAR" property="cuttingToolPosition"/>
         <result column="machine_cutting_tool_type" jdbcType="VARCHAR" property="machineCuttingToolType"/>
+        <result column="machine_id" jdbcType="VARCHAR" property="machineId"/>
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
         id,create_user,create_time,update_user,update_time, cutting_tool_name, cutting_tool_type, specifications,cutting_tool_picture,cutting_tool_install_picture,
-        cutting_tool_monitor_type,useage_count,surplus_count,early_warnning,cutting_tool_id,sister_cutting_tool_id,knife_edge_number,cutting_tool_position,machine_cutting_tool_type
+        cutting_tool_monitor_type,useage_count,surplus_count,early_warnning,cutting_tool_id,sister_cutting_tool_id,knife_edge_number,cutting_tool_position,machine_cutting_tool_type,machine_id
     </sql>
 
     <select id="findPage" resultMap="BaseResultMap">

+ 16 - 35
imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/productionResourceCenter/ProductionresourceBizMapper.xml

@@ -31,51 +31,31 @@
         <result column="resources_category" jdbcType="VARCHAR" property="resourcesCategory"/>
         <result column="ip" jdbcType="VARCHAR" property="ip"/>
         <result column="port" jdbcType="VARCHAR" property="port"/>
+        <result column="tool_syn_time" jdbcType="TIMESTAMP" property="toolSynTime"/>
+        <result column="tool_num" jdbcType="INTEGER" property="toolNum"/>
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
         id,create_time,create_user,update_time,update_user,
-        tenant_id, productionline_id, box_id, type, category, module_id, name, code, status, remark, resources_type,resources_category,lineDesc,moduleDesc,tenantDesc,pic,
-        ip,port,capital_no,capital_name,capital_type,mode_specification,capital_price,production_date,production_no,manufacturer,program_num
+        tenant_id, productionline_id, box_id, type, module_id, name, code, status, online_status,remark, resources_type,resources_category,lineDesc,
+        ip,port,capital_no,capital_name,capital_type,mode_specification,capital_price,production_date,production_no,manufacturer,tool_syn_time,tool_num
     </sql>
 
-    <!-- 分页 -->
-    <select id="pageList" resultMap="BaseResultMap">
+    <select id="getPageList" resultType="com.github.zuihou.business.productionResourceCenter.entity.Productionresource">
         select
         <include refid="Base_Column_List"/>
         from (
-        SELECT
-        a.*,b.name as lineDesc,c.name as moduleDesc,d.name as tenantDesc,c.pic,c.category
-        from imcs_tenant_productionresource a
-        left join imcs_tenant_productionline b on a.productionline_id = b.id
-        left join imcs_tenant_module c on a.module_id = c.id
-        left join d_tenant d on a.tenant_id = d.id
-        ) s ${ew.customSqlSegment}
-    </select>
-
-    <!-- 边缘盒子数据 -->
-    <select id="getModelList" parameterType="com.github.zuihou.tenant.entity.Productionresource"  resultType="com.github.zuihou.tenant.entity.Productionresource">
-        SELECT * from imcs_tenant_productionresource
-        WHERE type = #{type}
-    </select>
-
-    <update id="createDynTable" parameterType="java.util.Map">
-        ${sql}
-    </update>
-
-    <!-- 检测数据库 -->
-    <select id="checkDatabase" parameterType="String" resultType="int">
-          ${sql}
-    </select>
-
-    <!-- 检测数据库 -->
-    <select id="checkTable" parameterType="String" resultType="int">
-          ${sql}
-    </select>
-
-    <select id="selectSql" parameterType="String" resultType="map">
-          ${sql}
+            SELECT
+                itp.*,izz.name AS lineDesc
+            FROM imcs_tenant_productionresource itp
+            LEFT JOIN imcs_z_zone_productionresource izzp ON itp.id = izzp.resource_id
+            LEFT JOIN  imcs_z_zone izz ON izzp.zone_id = izz.id
+            LEFT JOIN  imcs_p_productionresource_conf ippc ON itp.id = ippc.resource_id
+            WHERE 1=1
+            AND ippc.tool_lib = '1'
+        )
+        s ${ew.customSqlSegment}
     </select>
 
     <select id="selectResouces" resultType="com.github.zuihou.business.productionResourceCenter.entity.Productionresource">
@@ -92,4 +72,5 @@
     </select>
 
 
+
 </mapper>

+ 17 - 3
imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/dispatchRecord/DispatchExceptionController.java

@@ -17,6 +17,7 @@ import com.github.zuihou.business.dispatchRecord.service.DispatchExceptionServic
 import com.github.zuihou.business.dispatchRecord.service.DispatchRecordService;
 import com.github.zuihou.business.operationManagementCenter.entity.Order;
 import com.github.zuihou.business.operationManagementCenter.entity.TWorkpiece;
+import com.github.zuihou.business.operationManagementCenter.entity.TaskNode;
 import com.github.zuihou.business.operationManagementCenter.service.WorkpieceService;
 import com.github.zuihou.business.productionReadyCenter.entity.AAutoNodeLog;
 import com.github.zuihou.business.productionReadyCenter.service.AAutoNodeLogService;
@@ -50,6 +51,7 @@ import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 @Slf4j
 @Validated
@@ -163,7 +165,9 @@ public class DispatchExceptionController extends SuperSimpleController<AAutoNode
         Map<String, Object> conMap = msgUtil.redis_get_map(CacheKey.TASK_CURRENT_NODE_CONDITION + "_" + taskNodeId);
         //获取重发执行传参
         String jsonParam = msgUtil.redis_get(CacheKey.TASK_CURRENT_NODE_PARAMS + "_" + taskNodeId).toString();
-
+        if(StringUtils.isEmpty(jsonParam)){
+            return R.fail("指令请求不存在");
+        }
         HttpHeaders headers = new HttpHeaders();
         headers.setContentType(MediaType.parseMediaType("application/json;charset=UTF-8"));
         HttpEntity<String> formEntity = new HttpEntity<String>(jsonParam, headers);
@@ -172,8 +176,18 @@ public class DispatchExceptionController extends SuperSimpleController<AAutoNode
         String returnData = restTemplate.postForObject(instructionUrl, formEntity, String.class);
         JSONObject retJson = JSONObject.parseObject(returnData);
         String code = retJson.getString("code").trim();
-
-        return R.success(("1" == code)? true: false);
+        if(code.equals("0")){
+            autoNodeLog.setExeResult("0").setManual("1").setFeedback(retJson.getString("msg"));
+            aAutoNodeLogService.updateAllById(autoNodeLog);
+            return R.fail("指令重发失败");
+        }else{
+            //将同一节点的指令请求日志状态批量改为处理
+            List<Long> ids = aAutoNodeLogService.list(new LbqWrapper<AAutoNodeLog>().eq(AAutoNodeLog::getTaskNodeId, taskNodeId).eq(AAutoNodeLog::getStatus, "0").orderByAsc(AAutoNodeLog::getCreateTime)).stream().map(AAutoNodeLog::getId).collect(Collectors.toList());
+            UpdateWrapper<AAutoNodeLog> updateWrapper = new UpdateWrapper<AAutoNodeLog>();
+            updateWrapper.lambda().in(AAutoNodeLog::getId, ids.toArray()).set(AAutoNodeLog::getStatus, "1");
+            aAutoNodeLogService.update(updateWrapper);
+        }
+        return R.success(true);
     }
 
 }

+ 1 - 1
imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/productionReadyCenter/CuttingToolController.java

@@ -76,7 +76,7 @@ public class CuttingToolController extends SuperCacheController<CuttingToolServi
         return success(cuttingTool);
     }
 
-    @ApiOperation(value = "修改维保计划", notes = "修改维保计划")
+    @ApiOperation(value = "更新道具", notes = "更新道具")
     @PostMapping("/update")
     @Override
     public R<CuttingTool> update(@RequestBody CuttingToolUpdateDTO model) {

+ 5 - 3
imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/productionReadyCenter/MachineCuttingToolController.java

@@ -13,7 +13,9 @@ import com.github.zuihou.database.mybatis.conditions.query.LbqWrapper;
 import com.github.zuihou.database.mybatis.conditions.query.QueryWrap;
 import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
+import org.checkerframework.checker.units.qual.C;
 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 org.springframework.web.bind.annotation.RestController;
@@ -58,10 +60,10 @@ public class MachineCuttingToolController extends SuperCacheController<MachineCu
         MachineCuttingTool machineCuttingTool = baseService.save(model);
         return success(machineCuttingTool);
     }
-    @RequestMapping("sysCuttingTools")
-    public R sysCuttingTools(@RequestBody Map<String,String> param) {
+    @PostMapping("synCuttingTools")
+    public R synCuttingTools(@RequestBody MachineCuttingTool machineCuttingTool) {
         try {
-            baseService.sysCuttingTools(param);
+            baseService.sysCuttingTools(machineCuttingTool);
             return success();
         } catch (Exception e) {
             log.error("sysCuttingTools error" + e.getMessage());

+ 61 - 0
imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/productionResourceCenter/ProductionresourceBizController.java

@@ -0,0 +1,61 @@
+package com.github.zuihou.business.controller.productionResourceCenter;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.zuihou.base.R;
+import com.github.zuihou.base.controller.SuperController;
+import com.github.zuihou.base.request.PageParams;
+import com.github.zuihou.business.operationManagementCenter.dto.TTaskPageDTO;
+import com.github.zuihou.business.operationManagementCenter.entity.TTask;
+import com.github.zuihou.business.productionResourceCenter.dto.ProductionresourceConfPageDTO;
+import com.github.zuihou.business.productionResourceCenter.dto.ProductionresourceConfSaveDTO;
+import com.github.zuihou.business.productionResourceCenter.dto.ProductionresourceConfUpdateDTO;
+import com.github.zuihou.business.productionResourceCenter.entity.Productionresource;
+import com.github.zuihou.business.productionResourceCenter.entity.ProductionresourceConf;
+import com.github.zuihou.business.productionResourceCenter.service.ProductionresourceBizService;
+import com.github.zuihou.business.productionResourceCenter.service.ProductionresourceConfService;
+import com.github.zuihou.database.mybatis.conditions.query.LbqWrapper;
+import com.github.zuihou.database.mybatis.conditions.query.QueryWrap;
+import com.github.zuihou.log.annotation.SysLog;
+import com.github.zuihou.tenant.dto.ProductionresourcePageDTO;
+import com.github.zuihou.tenant.dto.ProductionresourceSaveDTO;
+import com.github.zuihou.tenant.dto.ProductionresourceUpdateDTO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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 org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 前端控制器
+ * 生产资源配置
+ * </p>
+ *
+ * @author imcs
+ * @date 2020-12-02
+ */
+@Slf4j
+@Validated
+@RestController
+@RequestMapping("/productionresourceBiz")
+@Api(value = "ProductionresourceBiz", tags = "生产资源配置")
+@SysLog(enabled = true)
+public class ProductionresourceBizController extends SuperController<ProductionresourceBizService,Long , Productionresource, ProductionresourcePageDTO, ProductionresourceSaveDTO, ProductionresourceUpdateDTO> {
+
+    @Override
+    public void query(PageParams<ProductionresourcePageDTO> params, IPage<Productionresource> page, Long defSize) {
+        ProductionresourcePageDTO data = params.getModel();
+        QueryWrap<Productionresource> wrap = handlerWrapper(null, params);
+        LbqWrapper<Productionresource> wrapper = wrap.lambda();
+        Productionresource productionresource = BeanUtil.toBean(data, Productionresource.class);
+        wrapper.like(Productionresource::getName,productionresource.getName()).eq(Productionresource::getOnlineStatus,productionresource.getOnlineStatus()).orderByDesc(Productionresource::getId);
+        baseService.getPageList(page, wrapper);
+    }
+}

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

@@ -15,6 +15,7 @@ import org.hibernate.validator.constraints.Length;
 
 import javax.validation.constraints.NotEmpty;
 import java.time.LocalDateTime;
+import java.util.List;
 
 import static com.baomidou.mybatisplus.annotation.SqlCondition.EQUAL;
 import static com.baomidou.mybatisplus.annotation.SqlCondition.LIKE;
@@ -179,4 +180,7 @@ public class MachineCuttingTool extends Entity<Long> {
     @TableField(value = "machine_id", condition = EQUAL)
     @Excel(name = "设备id")
     private long machineId;
+
+    @TableField(exist = false)
+    private List<Long> ids;
 }

+ 10 - 1
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionResourceCenter/entity/Productionresource.java

@@ -253,6 +253,13 @@ public class Productionresource extends Entity<Long> {
     @Excel(name = "端口号")
     private String port;
 
+    @TableField(value = "tool_syn_time", condition = LIKE)
+    private LocalDateTime toolSynTime;
+
+    @TableField(value = "tool_num", condition = LIKE)
+    private int toolNum;
+
+
     @ApiModelProperty(value = "产线名称")
     @TableField(exist=false)
     private String lineDesc;
@@ -293,11 +300,13 @@ public class Productionresource extends Entity<Long> {
     @TableField("tray_num")
     private Integer trayNum;
 
-
     @ApiModelProperty(value = "可放子盘数量")
     @TableField("plate_id")
     private Long plateId;
 
+    @TableField(exist=false)
+    private String zoneName;
+