保存方案

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