保存方案

parent afccd954
......@@ -123,6 +123,16 @@ public class SwaggerMapParamConfig {
));
break;
case "savePlan":
properties.put("sceneId", new StringSchema().description("场景ID").example("487282ECAF57435F9373BAAAFBE90616"));
examples.put("保存方案示例", createExample(
"将新创建的订单添加到PROD_LAUNCH_ORDER表",
"{\n" +
" \"sceneId\": \"487282ECAF57435F9373BAAAFBE90616\"\n" +
"}"
));
break;
case "getResourceGantt":
case "getProductGantt":
......
......@@ -1051,6 +1051,14 @@ public class LanuchServiceImpl implements LanuchService {
throw new IllegalArgumentException("场景ID不能为空");
}
// 获取场景配置,用于获取创建用户等信息
ProdSceneConfig sceneConfig = prodSceneConfigService.lambdaQuery()
.eq(ProdSceneConfig::getSceneId, sceneId)
.one();
if (sceneConfig == null) {
throw new RuntimeException("场景配置不存在");
}
// 从文件加载Chromosome对象
Chromosome chromosome = sceneService.loadChromosomeFromFile(sceneId);
if (chromosome == null || chromosome.getOrders() == null || chromosome.getOrders().isEmpty()) {
......@@ -1068,7 +1076,7 @@ public class LanuchServiceImpl implements LanuchService {
// 将Order对象转换为ProdLaunchOrder对象
List<ProdLaunchOrder> launchOrders = newOrders.stream()
.map(order -> convertOrderToLaunchOrder(order, sceneId))
.map(order -> convertOrderToLaunchOrder(order, sceneId, sceneConfig))
.filter(Objects::nonNull)
.collect(Collectors.toList());
......@@ -1077,9 +1085,16 @@ public class LanuchServiceImpl implements LanuchService {
boolean saved = prodLaunchOrderService.saveBatch(launchOrders);
if (saved) {
log.info("成功保存{}个新订单到PROD_LAUNCH_ORDER表", launchOrders.size());
// 5. 转换工单于工序执行表
convertToProcessExecBatch(launchOrders, sceneId);
// 6. 生成工序关联关系
generateProcessRelationsBatch(launchOrders, sceneId);
return R.ok("保存方案成功,共保存" + launchOrders.size() + "个新订单");
} else {
log.error("保存订单到PROD_LAUNCH_ORDER表失败");
throw new RuntimeException("保存订单失败");
}
} else {
......@@ -1090,14 +1105,14 @@ public class LanuchServiceImpl implements LanuchService {
/**
* 将Order转换为ProdLaunchOrder
*/
private ProdLaunchOrder convertOrderToLaunchOrder(Order order, String sceneId) {
private ProdLaunchOrder convertOrderToLaunchOrder(Order order, String sceneId, ProdSceneConfig sceneConfig) {
ProdLaunchOrder launchOrder = new ProdLaunchOrder();
launchOrder.setOrderId(order.getOrderId());
launchOrder.setSceneId(sceneId);
launchOrder.setRoutingId(order.getRoutingId());
launchOrder.setSerie(order.getSerie());
// 创建用户可以从场景配置中获取,这里暂时设置为默认值
launchOrder.setCreateUser("system");
// 从场景配置中获取创建用户
launchOrder.setCreateUser(sceneConfig.getCreateUser());
launchOrder.setMaterialCode(order.getMaterialCode());
launchOrder.setMaterialName(order.getMaterialName());
launchOrder.setStartDate(order.getStartDate());
......
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