Jelajahi Sumber

1.排产去除不可用设备
2.启动三坐标参数修改
3.工人操作端任务去除未开始生产的任务

yejian 2 tahun lalu
induk
melakukan
e5b355e018

+ 7 - 5
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/aps/instance/manager/AssignManager.java

@@ -53,13 +53,15 @@ public class AssignManager implements AssignManagerIface {
 			for(int i = 0; i < candidateProcesses.size(); i++){
 				CandidateProcess currcandidateProcess = candidateProcesses.get(i);
 				Machine currMachine = instance.getMachineMap().get("M" + currcandidateProcess.getMachineId());
-				if(null == bestMachine){
-					candidateProcess = currcandidateProcess;
-					bestMachine = currMachine;
-				}else{
-					if(currMachine.getAssignedTaskWork() < bestMachine.getAssignedTaskWork()){
+				if(null != currMachine){
+					if(null == bestMachine){
 						candidateProcess = currcandidateProcess;
 						bestMachine = currMachine;
+					}else{
+						if(currMachine.getAssignedTaskWork() < bestMachine.getAssignedTaskWork()){
+							candidateProcess = currcandidateProcess;
+							bestMachine = currMachine;
+						}
 					}
 				}
 			}

+ 5 - 1
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/impl/TaskServiceImpl.java

@@ -381,7 +381,11 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
 
     @Override
     public void assemblingCandidate(Map<String, List<CandidateProcess>> candidateProMap, Map<String, Machine> machineMap, TWorkpiece workpiece, List<CandidateProcess> candidateProcesses, BomProcedure bomProcedure, Machine machine, CandidateProcess candidateProcess, BomProcedureProductionresource bomProcedureProductionresource) {
-        if (!machineMap.containsKey(bomProcedureProductionresource.getResourceId())) {
+
+        Productionresource productionresource = productionresourceBizMapper.selectById(bomProcedureProductionresource.getResourceId());
+
+
+        if (!machineMap.containsKey(bomProcedureProductionresource.getResourceId()) && "1".equals(productionresource.getStatus()) && "1".equals(productionresource.getOnlineStatus())) {
             machine.setId(bomProcedureProductionresource.getResourceId().longValue());
             // 添加设备维保时间片
             LbqWrapper<Repair> repairWrapper = new LbqWrapper<Repair>().eq(Repair::getProductionresourceId, bomProcedureProductionresource.getResourceId()).gt(Repair::getRepairStartTime, cn.hutool.core.date.DateUtil.toLocalDateTime(cn.hutool.core.date.DateUtil.date()));

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

@@ -10,15 +10,17 @@ 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.dao.OrderMapper;
 import com.github.zuihou.business.operationManagementCenter.dao.OrderQualityMapper;
-import com.github.zuihou.business.operationManagementCenter.entity.Order;
-import com.github.zuihou.business.operationManagementCenter.entity.OrderQuality;
-import com.github.zuihou.business.operationManagementCenter.entity.TTask;
-import com.github.zuihou.business.operationManagementCenter.entity.TaskNode;
+import com.github.zuihou.business.operationManagementCenter.dao.WorkpieceMapper;
+import com.github.zuihou.business.operationManagementCenter.entity.*;
 import com.github.zuihou.business.operationManagementCenter.service.TaskNodeService;
 import com.github.zuihou.business.operationManagementCenter.service.WorkpieceService;
+import com.github.zuihou.business.productionReadyCenter.dao.BBomMapper;
 import com.github.zuihou.business.productionReadyCenter.dao.BomProcedureProgramMapper;
+import com.github.zuihou.business.productionReadyCenter.entity.BBom;
 import com.github.zuihou.business.productionReadyCenter.entity.BomProcedure;
+import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureMeterial;
 import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgram;
 import com.github.zuihou.business.productionReadyCenter.service.BomProcedureService;
 import com.github.zuihou.business.productionResourceCenter.dao.ProductionresourceBizMapper;
@@ -93,6 +95,12 @@ public class MachineNodeServiceImpl implements NodeOperationService {
     private ZZoneService zoneService;
     @Autowired
     private ProductionresourceBizMapper productionresourceBizMapper;
+    @Autowired
+    private BBomMapper bBomMapper;
+    @Autowired
+    private OrderMapper orderMapper;
+    @Autowired
+    private WorkpieceMapper workpieceMapper;
 
     private Map<String, Object> map = Maps.newHashMap();
 
@@ -116,6 +124,11 @@ public class MachineNodeServiceImpl implements NodeOperationService {
     private Long zone_id;
     private Map<String, String> plcInfo;
     private ZZone zZone;
+
+    private Long bomZzoneId;
+
+    private ZZone bomzZone;
+
     private String instructionUrl;
 
     @Override
@@ -142,6 +155,11 @@ public class MachineNodeServiceImpl implements NodeOperationService {
         plcInfo = DictionaryKey.PLC_CATEGORY.get(zZone.getNo());
         // 判断该节点使用那条线的plc
         plcInfo = DictionaryKey.PLC_CATEGORY.get(zZone.getNo());
+
+        BBom bom = bBomMapper.selectById(task.getBomId());
+        bomZzoneId = bom.getZoneId();
+        bomzZone = zoneService.getById(bomZzoneId);
+
         String paramKey = zZone.getNo() + "_plc";
         instructionUrl = (null == msgUtil.redis_get(ParameterKey.PARAMETERS)? "": ((Map<String,String>)msgUtil.redis_get(ParameterKey.PARAMETERS)).get(paramKey).toString());
         // TODO 后续删除代码,目前条用模拟接口
@@ -210,18 +228,32 @@ public class MachineNodeServiceImpl implements NodeOperationService {
                     //打标
 //                    map.put("zkIp", ZK_ip_rxx);
 //                    map.put(DemoLineConstant.DEMOLINE_BIZ_TYPE, "print");
-                    //获取打标指令编码
+                    //获取打标指令编码imcs_t_workpiece
                     map.put("method", moduleInstructions.get(0).getCode());
                     map.put("url",plcInfo.get("url"));
                     map.put("port",plcInfo.get("port"));
                     //获取打标唯一码
                     String unionCode = workpieceService.getUnionCode(task.getCompleteBatchNo());
+
+                    Order order = orderMapper.selectById(task.getOrderId());
+                    TWorkpiece tWorkpiece = workpieceMapper.selectOne(Wraps.<TWorkpiece>lbQ().eq(TWorkpiece::getCompleteBatchNo, task.getCompleteBatchNo()));
+
                     JSONObject data = new JSONObject();
                     //默认配置  后期可改可去
-                    data.put("workId", "1");
-                    data.put("labelContent", unionCode);
-                    data.put("workId", "1");
-                    map.put("data", data);//打标内容
+
+                    if("capsule".equals(zZone.getNo())){
+                        data.put("typeNo", "C");
+                    }else if("framework".equals(zZone.getNo())){
+                        data.put("typeNo", "K");
+                    }
+                    // TODO工件增加流水号
+                    data.put("smalltypeNo", "2");
+                    data.put("orderNo", order.getOrderNo());
+                    data.put("taskNo", task.getTaskNo());
+                    data.put("productNo", tWorkpiece.getUniqueCode());
+                    data.put("batchNo", "000001");
+                    data.put("serialNo", "000001");
+                    map.put("data", data);
                     map.put("result", true);
                 }
                 break;

+ 5 - 1
imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/operationManagementCenter/TTaskMapper.xml

@@ -289,13 +289,17 @@
           imm.trade_mark AS tradeMark,
           ibbpt.armor_pic AS armorPic,
           (select ittn.interface_type  from imcs_t_task_node ittn where ittn.task_id = itt.id and exe_status = '2') AS interfaceType
-        FROM imcs_t_task itt,
+        FROM
+             imcs_p_plan ipp,
+             imcs_t_task itt,
              imcs_b_bom_procedure ibbp,
              imcs_b_bom_procedure_tray ibbpt,
              imcs_b_bom ibb,
              imcs_m_frock_clamp imfc,
              imcs_m_meterial imm
         WHERE 1=1
+        AND ipp.id = itt.plan_id
+        AND ipp.produce_status = '2'
         AND itt.status IN  ('1','2')
         AND ibbp.id = itt.procedure_id
         AND ibbp.bom_id = ibb.id