Commit 5b411bad authored by Tong Li's avatar Tong Li

MP

parent f76aaece
......@@ -403,11 +403,11 @@ public class MacroPlannerResultController {
// 4. 保存结果到 JSON 文件
ResultWriter writer = new ResultWriter(optimizer.getModel(), optimizer.getData(), solveStart);
OptimizationResult optimizationResult = writer.buildResult();
boolean saved = writer.saveResultToFile(sid, optimizationResult);
if (saved) {
mpPispipResultPersistenceService.save(sid, optimizationResult);
}
// boolean saved = writer.saveResultToFile(sid, optimizationResult);
// if (saved) {
// mpPispipResultPersistenceService.save(sid, optimizationResult);
// }
boolean saved=true;
result.put("status", saved ? "SUCCESS" : "SAVE_FAILED");
result.put("solveElapsedMs", solveEnd - solveStart);
result.put("totalElapsedMs", System.currentTimeMillis() - t0);
......
......@@ -432,7 +432,7 @@ public class MacroPlannerOptimizer {
l3.addKPI("供应目标偏差", model.getTotalSupplyTarget(), w.getSupplyTargetWeight());
l3.addKPI("销售优先级", model.getTotalSalesDemandPriority(),
w.getSalesDemandPriorityWeight(), true); // 负系数 = 最大化
// levels.add(l3);
levels.add(l3);
// === Level 4: 软约束 (允许 10% 退化, slack=10%) ===
StrategyLevel l4 = new StrategyLevel(4, "软约束", 0.10);
......@@ -440,7 +440,7 @@ public class MacroPlannerOptimizer {
l4.addKPI("欠库存", model.getTotalMinInventoryLevel(), w.getMinInventoryLevelWeight());
l4.addKPI("最小供应不足", model.getTotalMinSupply(), w.getMinSupplyWeight());
l4.addKPI("最大供应超出", model.getTotalMaxSupply(), w.getMaxSupplyWeight());
// levels.add(l4);
levels.add(l4);
return levels;
}
......
......@@ -198,19 +198,19 @@ public class MacroPlannerDataConverter {
// 1. 需求订单 (ApsDemandOrder, 按 deliverytime 时间范围过滤)
// 1. 需求订单 (ApsDemandOrder, 按 deliverytime 时间范围过滤)
// ctx.apsDemandOrders = apsDemandOrderMapper.selectList(
// new LambdaQueryWrapper<ApsDemandOrder>().eq(ApsDemandOrder::getIsdeleted, 0)
// .ge(ApsDemandOrder::getDeliverytime, ctx.baseTime)
// .lt(ApsDemandOrder::getDeliverytime, horizonEndDateTime));
ctx.apsDemandOrders = apsDemandOrderMapper.selectList(
new LambdaQueryWrapper<ApsDemandOrder>()
new LambdaQueryWrapper<ApsDemandOrder>().eq(ApsDemandOrder::getIsdeleted, 0)
.ge(ApsDemandOrder::getDeliverytime, ctx.baseTime)
.eq(ApsDemandOrder::getCode,"XQDD_20260812_6")
.lt(ApsDemandOrder::getDeliverytime, horizonEndDateTime)
);
.lt(ApsDemandOrder::getDeliverytime, horizonEndDateTime));
// ctx.apsDemandOrders = apsDemandOrderMapper.selectList(
//
// new LambdaQueryWrapper<ApsDemandOrder>()
// .ge(ApsDemandOrder::getDeliverytime, ctx.baseTime)
// .eq(ApsDemandOrder::getCode,"XQDD_20260812_6")
// .lt(ApsDemandOrder::getDeliverytime, horizonEndDateTime)
// );
log.info("加载需求订单: {} 条 (时间范围过滤)", ctx.apsDemandOrders.size());
// 2. 收集 materialIds (从 ApsDemandOrder.mmid)
......
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