From c3c2b034ee9811c4872dde22bb2b4fe9409a9549 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期六, 11 四月 2026 11:32:23 +0800
Subject: [PATCH] yys 1.工艺路线带入bom清单工序
---
src/main/java/com/ruoyi/production/service/ProductStructureService.java | 2 ++
src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java | 14 ++++++++++++++
src/main/resources/application-dev.yml | 4 ++--
src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java | 25 +++++++++++++++++++++----
src/main/java/com/ruoyi/production/controller/ProductStructureController.java | 6 ++++++
5 files changed, 45 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/controller/ProductStructureController.java b/src/main/java/com/ruoyi/production/controller/ProductStructureController.java
index 89ead6d..840b886 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductStructureController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductStructureController.java
@@ -37,4 +37,10 @@
public R listBybomId( @PathVariable("bomId") Integer bomId){
return R.ok(productStructureService.listBybomId(bomId));
}
+
+ @ApiOperation("BOM鏌ョ湅瀛愰泦璇︽儏鍒楄〃")
+ @GetMapping("/listDetailBybomId/{bomId}")
+ public R listDetailBybomId(@PathVariable("bomId") Integer bomId){
+ return R.ok(productStructureService.listDetailBybomId(bomId));
+ }
}
diff --git a/src/main/java/com/ruoyi/production/service/ProductStructureService.java b/src/main/java/com/ruoyi/production/service/ProductStructureService.java
index ebdddb1..74e2253 100644
--- a/src/main/java/com/ruoyi/production/service/ProductStructureService.java
+++ b/src/main/java/com/ruoyi/production/service/ProductStructureService.java
@@ -14,4 +14,6 @@
List<ProductStructureDto> listBybomId(Integer bomId);
+ List<ProductStructureDto> listDetailBybomId(Integer bomId);
+
}
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..12a46a9 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java
@@ -1,29 +1,29 @@
package com.ruoyi.production.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
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.production.dto.ProcessRouteDto;
+import com.ruoyi.production.dto.ProductStructureDto;
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.pojo.ProcessRoute;
import com.ruoyi.production.pojo.ProcessRouteItem;
import com.ruoyi.production.pojo.ProductOrder;
-import com.ruoyi.production.pojo.ProductProcessRoute;
import com.ruoyi.production.service.ProcessRouteService;
+import com.ruoyi.production.service.ProductStructureService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
-import java.util.Arrays;
import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
@Service
@AllArgsConstructor
@@ -39,6 +39,9 @@
@Autowired
private ProductOrderMapper productOrderMapper;
+ @Autowired
+ private ProductStructureService productStructureService;
+
@Override
public IPage<ProcessRouteDto> pageProcessRouteDto(Page<ProcessRouteDto> page, ProcessRouteDto processRouteDto) {
@@ -53,6 +56,20 @@
String newProductCode = "GYLX" + dateStr + idStr;
// 鏇存柊鏁版嵁搴撲腑鐨刾roductCode
processRoute.setProcessRouteCode(newProductCode);
+ // 鏌ヨbom娓呭崟
+ List<ProductStructureDto> productStructureDtos = productStructureService.listDetailBybomId(processRoute.getBomId());
+ if(CollectionUtils.isNotEmpty(productStructureDtos)){
+ AtomicInteger i = new AtomicInteger(1);
+ productStructureDtos.forEach(productStructureDto -> {
+ ProcessRouteItem processRouteItem = new ProcessRouteItem();
+ processRouteItem.setRouteId(processRoute.getId());
+ processRouteItem.setProcessId(productStructureDto.getProcessId());
+ processRouteItem.setDragSort(i.get());
+ processRouteItem.setIsQuality(false);
+ processRouteItemMapper.insert(processRouteItem);
+ i.getAndIncrement();
+ });
+ }
return processRouteMapper.updateById(processRoute);
}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java
index 381b642..8a45d99 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java
@@ -154,4 +154,18 @@
return tree;
}
+ @Override
+ public List<ProductStructureDto> listDetailBybomId(Integer bomId) {
+ List<ProductStructureDto> list = productStructureMapper.listBybomId(bomId);
+ Map<String, ProductStructureDto> distinctMap = new LinkedHashMap<>();
+ for (ProductStructureDto dto : list) {
+ if (dto.getParentId() == null || dto.getParentId() == 0) {
+ continue;
+ }
+ String key = dto.getProcessId() == null ? "NULL_PROCESS_" + dto.getId() : String.valueOf(dto.getProcessId());
+ distinctMap.putIfAbsent(key, dto);
+ }
+ return new ArrayList<>(distinctMap.values());
+ }
+
}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 9eff9ac..787f4a5 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -74,9 +74,9 @@
druid:
# 涓诲簱鏁版嵁婧�
master:
- url: jdbc:mysql://1.15.17.182:9999/product-inventory-management-new?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+ url: jdbc:mysql://localhost:3306/product-inventory-management-zxsq?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
- password: xd@123456..
+ password: 123456
# 浠庡簱鏁版嵁婧�
slave:
# 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
--
Gitblit v1.9.3