聚焦甘特修改

parent 513fcbc7
......@@ -1027,7 +1027,7 @@ public class ResourceGanttController {
)
)
public R<SupplyRelationResponse> getSupplyRelation(@RequestBody Map<String, Object> params) {
public R<List<Object>> getSupplyRelation(@RequestBody Map<String, Object> params) {
log.info("getSupplyRelation 请求参数: {}", params);
// 提取参数
String sceneId = ParamValidator.getString(params, "sceneId", "场景ID");
......@@ -1036,7 +1036,7 @@ public class ResourceGanttController {
// 调用服务获取供给关系
List<Object> data = planResultService.getSupplyRelation(sceneId, entryId, sceneService);
return R.ok(SupplyRelationResponse.success(data));
return R.ok(data);
}
......
......@@ -2350,13 +2350,19 @@ private GlobalParam InitGlobalParam()
// 找到上一道工序的结束时间
LocalDateTime lastEntryEndTime = getEntryEndTime(lastEntry, results, baseTime);
Order fromOrder1 = orders != null ? orders.stream().filter(o -> o.getOrderId() != null && o.getOrderId().equals(lastEntry.getOrderId())).findFirst().orElse(null) : null;
Order toOrder1 = orders != null ? orders.stream().filter(o -> o.getOrderId() != null && o.getOrderId().equals(currentEntry.getOrderId())).findFirst().orElse(null) : null;
long fromEquipId1 = results.stream().filter(r -> r.getOperationId() == lastEntry.getId()).mapToLong(r -> r.getMachineId()).findFirst().orElse(-1L);
long toEquipId1 = results.stream().filter(r -> r.getOperationId() == currentEntry.getId()).mapToLong(r -> r.getMachineId()).findFirst().orElse(-1L);
Map<String, Object> item = new HashMap<>();
item.put("taskIdFrom", String.valueOf(lastEntry.getOrderId()));
item.put("taskIdTo", String.valueOf(currentEntry.getOrderId()));
item.put("fromId", String.valueOf(lastEntry.getId()));
item.put("fromPlanId", fromOrder1 != null ? String.valueOf(fromOrder1.getId()) : "");
item.put("fromEquipId", String.valueOf(fromEquipId1));
item.put("fromTime", lastEntryEndTime != null ? lastEntryEndTime.toString() : "2025-12-13");
item.put("toId", String.valueOf(currentEntry.getId()));
item.put("toPlanId", toOrder1 != null ? String.valueOf(toOrder1.getId()) : "");
item.put("toEquipId", String.valueOf(toEquipId1));
item.put("toTime", currentStartTime != null ? currentStartTime.toString() : "2026-12-13");
item.put("fromIdFrom", String.valueOf(lastEntry.getId()));
item.put("toIdTo", currentEntry.getId());
supplyRelations.add(item);
// 递归检查上一个订单的依赖关系
......@@ -2376,15 +2382,21 @@ private GlobalParam InitGlobalParam()
// 找到目标工序的开始时间
LocalDateTime targetStartTime = getEntryStartTime(targetEntry, results, baseTime);
Order fromOrder2 = orders != null ? orders.stream().filter(o -> o.getOrderId() != null && o.getOrderId().equals(currentEntry.getOrderId())).findFirst().orElse(null) : null;
Order toOrder2 = orders != null ? orders.stream().filter(o -> o.getOrderId() != null && o.getOrderId().equals(targetEntry.getOrderId())).findFirst().orElse(null) : null;
long fromEquipId2 = results.stream().filter(r -> r.getOperationId() == currentEntry.getId()).mapToLong(r -> r.getMachineId()).findFirst().orElse(-1L);
long toEquipId2 = results.stream().filter(r -> r.getOperationId() == targetEntry.getId()).mapToLong(r -> r.getMachineId()).findFirst().orElse(-1L);
Map<String, Object> item = new HashMap<>();
item.put("taskIdFrom", String.valueOf(currentEntry.getOrderId()));
item.put("taskIdTo", String.valueOf(targetEntry.getOrderId()));
item.put("fromId", String.valueOf(currentEntry.getId()));
item.put("fromPlanId", fromOrder2 != null ? String.valueOf(fromOrder2.getId()) : "");
item.put("fromEquipId", String.valueOf(fromEquipId2));
item.put("fromTime", currentEndTime != null ? currentEndTime.toString() : "2025-12-13");
item.put("toId", String.valueOf(targetEntry.getId()));
item.put("toPlanId", toOrder2 != null ? String.valueOf(toOrder2.getId()) : "");
item.put("toEquipId", String.valueOf(toEquipId2));
item.put("toTime", targetStartTime != null ? targetStartTime.toString() : "2026-12-13");
item.put("fromIdFrom", String.valueOf(currentEntry.getId()));
item.put("toIdTo", targetEntry.getId());
supplyRelations.add(item);
checkAndAddTargetRelations(entries, results, baseTime, targetEntry, supplyRelations); // 检查后置工序
checkAndAddTargetRelations(entries, orders, results, baseTime, targetEntry, supplyRelations); // 检查后置工序
}
}
}
......@@ -2473,13 +2485,19 @@ private GlobalParam InitGlobalParam()
// 找到上一道工序的结束时间
LocalDateTime lastEntryEndTime = getEntryEndTime(lastEntry, results, baseTime);
Order fromOrder3 = orders != null ? orders.stream().filter(o -> o.getOrderId() != null && o.getOrderId().equals(lastEntry.getOrderId())).findFirst().orElse(null) : null;
Order toOrder3 = orders != null ? orders.stream().filter(o -> o.getOrderId() != null && o.getOrderId().equals(currentEntry.getOrderId())).findFirst().orElse(null) : null;
long fromEquipId3 = results.stream().filter(r -> r.getOperationId() == lastEntry.getId()).mapToLong(r -> r.getMachineId()).findFirst().orElse(-1L);
long toEquipId3 = results.stream().filter(r -> r.getOperationId() == currentEntry.getId()).mapToLong(r -> r.getMachineId()).findFirst().orElse(-1L);
Map<String, Object> item = new HashMap<>();
item.put("taskIdFrom", String.valueOf(lastEntry.getId()));
item.put("taskIdTo", String.valueOf(currentEntry.getId()));
item.put("fromId", String.valueOf(lastEntry.getId()));
item.put("fromPlanId", fromOrder3 != null ? String.valueOf(fromOrder3.getId()) : "");
item.put("fromEquipId", String.valueOf(fromEquipId3));
item.put("fromTime", lastEntryEndTime != null ? lastEntryEndTime.toString() : "2025-12-13");
item.put("toId", String.valueOf(currentEntry.getId()));
item.put("toPlanId", toOrder3 != null ? String.valueOf(toOrder3.getId()) : "");
item.put("toEquipId", String.valueOf(toEquipId3));
item.put("toTime", currentStartTime != null ? currentStartTime.toString() : "2026-12-13");
item.put("fromIdFrom", String.valueOf(lastEntry.getId()));
item.put("toIdTo", currentEntry.getId());
supplyRelations.add(item);
// 递归调用,处理上一个订单的最后一道工序的依赖关系
......@@ -2499,7 +2517,7 @@ private GlobalParam InitGlobalParam()
* @param currentEntry 当前工序
* @param supplyRelations 供给关系列表
*/
private void checkAndAddTargetRelations(List<Entry> entries, List<GAScheduleResult> results, LocalDateTime baseTime, Entry currentEntry, List<Object> supplyRelations) {
private void checkAndAddTargetRelations(List<Entry> entries, List<Order> orders, List<GAScheduleResult> results, LocalDateTime baseTime, Entry currentEntry, List<Object> supplyRelations) {
if (currentEntry.getTargetFinishedOperationId() != null && !currentEntry.getTargetFinishedOperationId().isEmpty()) {
for (Integer targetId : currentEntry.getTargetFinishedOperationId()) {
Entry targetEntry = entries.stream().filter(e -> e.getId() == targetId).findFirst().orElse(null);
......@@ -2508,16 +2526,21 @@ private GlobalParam InitGlobalParam()
LocalDateTime currentEndTime = getEntryEndTime(currentEntry, results, baseTime);
// 找到目标工序的开始时间
LocalDateTime targetStartTime = getEntryStartTime(targetEntry, results, baseTime);
Order fromOrder = orders != null ? orders.stream().filter(o -> o.getOrderId() != null && o.getOrderId().equals(currentEntry.getOrderId())).findFirst().orElse(null) : null;
Order toOrder = orders != null ? orders.stream().filter(o -> o.getOrderId() != null && o.getOrderId().equals(targetEntry.getOrderId())).findFirst().orElse(null) : null;
long fromEquipId4 = results.stream().filter(r -> r.getOperationId() == currentEntry.getId()).mapToLong(r -> r.getMachineId()).findFirst().orElse(-1L);
long toEquipId4 = results.stream().filter(r -> r.getOperationId() == targetEntry.getId()).mapToLong(r -> r.getMachineId()).findFirst().orElse(-1L);
Map<String, Object> item = new HashMap<>();
item.put("taskIdFrom", String.valueOf(currentEntry.getId()));
item.put("taskIdTo", String.valueOf(targetEntry.getId()));
item.put("fromId", String.valueOf(currentEntry.getId()));
item.put("fromPlanId", fromOrder != null ? String.valueOf(fromOrder.getId()) : "");
item.put("fromEquipId", String.valueOf(fromEquipId4));
item.put("fromTime", currentEndTime != null ? currentEndTime.toString() : "2025-12-13");
item.put("toId", String.valueOf(targetEntry.getId()));
item.put("toPlanId", toOrder != null ? String.valueOf(toOrder.getId()) : "");
item.put("toEquipId", String.valueOf(toEquipId4));
item.put("toTime", targetStartTime != null ? targetStartTime.toString() : "2026-12-13");
item.put("fromIdFrom", String.valueOf(currentEntry.getId()));
item.put("toIdTo", targetEntry.getId());
supplyRelations.add(item);
checkAndAddTargetRelations(entries, results, baseTime, targetEntry, supplyRelations); // 递归调用
checkAndAddTargetRelations(entries, orders, results, baseTime, targetEntry, supplyRelations); // 递归调用
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment