瀏覽代碼

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

yejian 3 年之前
父節點
當前提交
45c994ec5d

+ 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;
+	}
 }

+ 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 遍历设备查找设备上正在加工的工序时间累积,解决多设备排产时设备分配不均匀问题