From efbf5d341fefb88446c434f02085abe76c83c6e9 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 27 八月 2026 11:19:48 +0800
Subject: [PATCH] fix:工艺路线绑定bom参数
---
src/main/java/com/ruoyi/production/controller/ProcessRouteController.java | 2 +-
src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java | 50 ++++++++++++++++++++++++++++++++++++++++++++++++--
2 files changed, 49 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/controller/ProcessRouteController.java b/src/main/java/com/ruoyi/production/controller/ProcessRouteController.java
index 50ac4a8..53737f8 100644
--- a/src/main/java/com/ruoyi/production/controller/ProcessRouteController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProcessRouteController.java
@@ -16,7 +16,7 @@
import java.util.Arrays;
@RestController
-@RequestMapping("processRoute")
+@RequestMapping("/processRoute")
@Api(tags = "宸ヨ壓璺嚎")
public class ProcessRouteController {
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java
index b3beded..f4a7956 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java
@@ -4,15 +4,18 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.production.dto.ProcessRouteDto;
import com.ruoyi.production.mapper.ProcessRouteItemMapper;
import com.ruoyi.production.mapper.ProcessRouteMapper;
import com.ruoyi.production.mapper.ProductOrderMapper;
import com.ruoyi.production.mapper.ProductProcessRouteMapper;
+import com.ruoyi.production.mapper.ProductStructureMapper;
import com.ruoyi.production.pojo.ProcessRoute;
import com.ruoyi.production.pojo.ProcessRouteItem;
import com.ruoyi.production.pojo.ProductOrder;
import com.ruoyi.production.pojo.ProductProcessRoute;
+import com.ruoyi.production.pojo.ProductStructure;
import com.ruoyi.production.service.ProcessRouteService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -39,6 +42,9 @@
@Autowired
private ProductOrderMapper productOrderMapper;
+ @Autowired
+ private ProductStructureMapper productStructureMapper;
+
@Override
public IPage<ProcessRouteDto> pageProcessRouteDto(Page<ProcessRouteDto> page, ProcessRouteDto processRouteDto) {
@@ -46,14 +52,54 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public Integer saveProcessRoute(ProcessRoute processRoute) {
- this.save(processRoute);
+ if (processRoute.getBomId() == null) {
+ throw new ServiceException("璇烽�夋嫨BOM");
+ }
+ if (!this.save(processRoute)) {
+ throw new ServiceException("宸ヨ壓璺嚎淇濆瓨澶辫触");
+ }
+
String dateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
String idStr = String.format("%06d", processRoute.getId());
String newProductCode = "GYLX" + dateStr + idStr;
// 鏇存柊鏁版嵁搴撲腑鐨刾roductCode
processRoute.setProcessRouteCode(newProductCode);
- return processRouteMapper.updateById(processRoute);
+ if (processRouteMapper.updateById(processRoute) != 1) {
+ throw new ServiceException("宸ヨ壓璺嚎缂栧彿鐢熸垚澶辫触");
+ }
+
+ List<ProductStructure> structures = productStructureMapper.selectList(
+ Wrappers.<ProductStructure>lambdaQuery()
+ .eq(ProductStructure::getBomId, processRoute.getBomId())
+ .isNotNull(ProductStructure::getParentId)
+ .orderByAsc(ProductStructure::getId));
+ if (structures.isEmpty()) {
+ throw new ServiceException("褰撳墠BOM娌℃湁鍙敓鎴愮殑瀛愰」");
+ }
+
+ int dragSort = 1;
+ for (ProductStructure structure : structures) {
+ if (structure.getProductModelId() == null) {
+ throw new ServiceException("BOM涓瓨鍦ㄦ湭缁戝畾浜у搧鐨勫瓙椤�");
+ }
+ if (structure.getProcessId() == null) {
+ throw new ServiceException("BOM涓瓨鍦ㄦ湭閰嶇疆宸ュ簭鐨勫瓙椤�");
+ }
+
+ ProcessRouteItem item = new ProcessRouteItem();
+ item.setRouteId(processRoute.getId());
+ item.setProductModelId(structure.getProductModelId());
+ item.setProcessId(structure.getProcessId());
+ item.setDragSort(dragSort++);
+ item.setIsQuality(false);
+ if (processRouteItemMapper.insert(item) != 1) {
+ throw new ServiceException("宸ヨ壓璺嚎鏄庣粏鐢熸垚澶辫触");
+ }
+ }
+
+ return 1;
}
@Override
--
Gitblit v1.9.3