Browse Source

重调度时如果有正在加工中的工序对应设备时间累加当作多设备调度选择的依据

yejian 3 years ago
parent
commit
54b86fedd9

+ 2 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/dao/TTaskMapper.java

@@ -56,4 +56,6 @@ public interface TTaskMapper extends SuperMapper<TTask> {
     public List<TaskNode> getInstructions(TaskNode taskNode);
 
     List<Map> getStationTasks(Map<String, Object> map);
+
+    int selectTotalMachineUseTime(Map params);
 }

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

@@ -91,4 +91,6 @@ public interface TaskService extends SuperService<TTask> {
     public TTask assignResource(TTask task,Map<Long,BomProcedure>bpMap);
 
     void assemblingCandidate(Map<String, List<CandidateProcess>> candidateProMap, Map<String, Machine> machineMap, TWorkpiece workpiece, List<CandidateProcess> candidateProcesses, BomProcedure bomProcedure, Machine machine, CandidateProcess candidateProcess, BomProcedureProductionresource bomProcedureProductionresource);
+
+    int selectTotalMachineUseTime(Map params);
 }

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

@@ -902,6 +902,20 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
             }
         }
 
+        // begin modify by yejian on 20220504 遍历设备查找设备上正在加工的工序时间累积,解决多设备排产时设备分配不均匀问题
+        Iterator<Map.Entry<String, Machine>> machindeIterator = machineMap.entrySet().iterator();
+        while(machindeIterator.hasNext()){
+            Machine machine = machindeIterator.next().getValue();
+            // 查找该设备正在进行中的任务
+            Map params = new HashMap();
+            params.put("resoureId",machine.getId());
+            params.put("status","2");
+            int total = taskService.selectTotalMachineUseTime(params);
+        }
+        // end modify by yejian on 20220504 遍历设备查找设备上正在加工的工序时间累积,解决多设备排产时设备分配不均匀问题
+
+
+
         // 调用java简易排产
         Instance instance = new Instance();
         instance.setTotalOpNum(totalOpNum);

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

@@ -1211,4 +1211,9 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
         }
         return R.success();
     }
+
+    @Override
+    public int selectTotalMachineUseTime(Map params){
+        return baseMapper.selectTotalMachineUseTime(params);
+    }
 }

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

@@ -305,5 +305,13 @@
         AND itt.resource_id = #{resourceId}
         ORDER BY itt.expect_start_time LIMIT 0, 2
     </select>
+    <select id="selectTotalMachineUseTime" resultType="java.lang.Integer">
+        SELECT
+          IFNULL(SUM(ibbp.rated_workHours),0)
+        FROM imcs_t_task itt,imcs_b_bom_procedure ibbp
+        WHERE itt.resource_id = #{resourceId}
+        AND itt.status = #{status}
+        AND ibbp.id = itt.procedure_id
+    </select>
 
 </mapper>