From 0e0307ae97edf2e4934ff3396be0deed6e4c1734 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期三, 29 四月 2026 14:00:15 +0800
Subject: [PATCH] fix: 生产订单手动新增修改
---
src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java | 63 +++++++++++++++++++++++++++++++
1 files changed, 63 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
index 8a1099c..d030986 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
@@ -48,6 +48,9 @@
private ProductWorkOrderMapper productWorkOrderMapper;
@Autowired
+ private ProductProcessMapper productProcessMapper;
+
+ @Autowired
private ProductionProductMainMapper productionProductMainMapper;
@Autowired
@@ -140,10 +143,70 @@
this.save(productOrder);
if (ObjectUtils.isNotEmpty(productOrder.getRouteId())) {
this.bindingRoute(productOrder);
+ } else {
+ // 鏃犳棫宸ヨ壓璺嚎鏃讹紝鎸変骇鍝佸瀷鍙锋媺鍙� product_process 鑷姩鐢熸垚宸ュ簭鍜屽伐鍗�
+ createRouteAndWorkOrdersByProductProcess(productOrder);
}
return true;
}
+ /**
+ * 鎸� product_process 鑷姩鐢熸垚鐢熶骇璁㈠崟宸ュ簭涓庡伐鍗�
+ */
+ private void createRouteAndWorkOrdersByProductProcess(ProductOrder productOrder) {
+ List<ProductProcess> productProcesses = productProcessMapper.selectList(new QueryWrapper<ProductProcess>().lambda()
+ .eq(ProductProcess::getProductModelId, productOrder.getProductModelId())
+ .orderByAsc(ProductProcess::getId));
+ if (ObjectUtils.isEmpty(productProcesses)) {
+ return;
+ }
+
+ ProductProcessRoute productProcessRoute = new ProductProcessRoute();
+ productProcessRoute.setProductModelId(productOrder.getProductModelId());
+ productProcessRoute.setProductOrderId(productOrder.getId());
+ productProcessRouteMapper.insert(productProcessRoute);
+
+ String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
+ ProductWorkOrder lastWorkOrder = productWorkOrderMapper.selectMax(datePrefix);
+ int sequenceNumber = 1;
+ if (lastWorkOrder != null && lastWorkOrder.getWorkOrderNo() != null) {
+ String lastNo = lastWorkOrder.getWorkOrderNo().toString();
+ if (lastNo.startsWith(datePrefix)) {
+ String seqStr = lastNo.substring(datePrefix.length());
+ try {
+ sequenceNumber = Integer.parseInt(seqStr) + 1;
+ } catch (NumberFormatException e) {
+ sequenceNumber = 1;
+ }
+ }
+ }
+
+ for (int i = 0; i < productProcesses.size(); i++) {
+ ProductProcess process = productProcesses.get(i);
+
+ ProductProcessRouteItem productProcessRouteItem = new ProductProcessRouteItem();
+ productProcessRouteItem.setProductModelId(productOrder.getProductModelId());
+ productProcessRouteItem.setProcessId(process.getId());
+ productProcessRouteItem.setProductOrderId(productOrder.getId());
+ productProcessRouteItem.setProductRouteId(productProcessRoute.getId());
+ productProcessRouteItem.setDragSort(i + 1);
+ productProcessRouteItem.setIsQuality(process.getIsQuality());
+ int insert = productProcessRouteItemMapper.insert(productProcessRouteItem);
+ if (insert > 0) {
+ String workOrderNoStr = "GD" + String.format("%s%03d", datePrefix, sequenceNumber);
+ sequenceNumber++;
+
+ ProductWorkOrder productWorkOrder = new ProductWorkOrder();
+ productWorkOrder.setProductProcessRouteItemId(productProcessRouteItem.getId());
+ productWorkOrder.setProductOrderId(productOrder.getId());
+ productWorkOrder.setPlanQuantity(productOrder.getQuantity());
+ productWorkOrder.setWorkOrderNo(workOrderNoStr);
+ productWorkOrder.setStatus(1);
+ productWorkOrderMapper.insert(productWorkOrder);
+ }
+ }
+ }
+
@Override
public Boolean delete(Long[] ids) {
//濡傛灉宸茬粡寮�濮嬬敓浜�,涓嶈兘鍒犻櫎
--
Gitblit v1.9.3