From 78286a5422d2180df5cd66a85570a7a3cd2f4d71 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期三, 18 三月 2026 10:36:21 +0800
Subject: [PATCH] fix: 新增工艺路线与子集去除绑定产品,改为工序与产品类型
---
src/main/java/com/ruoyi/production/controller/ProcessRouteController.java | 26 ++++++--
src/main/java/com/ruoyi/production/dto/ProcessRouteDto.java | 4
src/main/resources/mapper/production/ProcessRouteMapper.xml | 15 ++--
doc/宁夏-中盛建材.sql | 5 +
src/main/java/com/ruoyi/production/controller/ProcessRouteItemController.java | 5 +
src/main/java/com/ruoyi/production/dto/ProcessRouteItemDto.java | 4 +
src/main/java/com/ruoyi/production/service/ProcessRouteService.java | 4 +
src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java | 42 +++++++++++++-
src/main/java/com/ruoyi/production/pojo/ProcessRoute.java | 3 +
src/main/java/com/ruoyi/production/service/impl/ProcessRouteItemServiceImpl.java | 13 ----
10 files changed, 85 insertions(+), 36 deletions(-)
diff --git "a/doc/\345\256\201\345\244\217-\344\270\255\347\233\233\345\273\272\346\235\220.sql" "b/doc/\345\256\201\345\244\217-\344\270\255\347\233\233\345\273\272\346\235\220.sql"
index 8516a9f..bebb0f6 100644
--- "a/doc/\345\256\201\345\244\217-\344\270\255\347\233\233\345\273\272\346\235\220.sql"
+++ "b/doc/\345\256\201\345\244\217-\344\270\255\347\233\233\345\273\272\346\235\220.sql"
@@ -272,4 +272,7 @@
ALTER TABLE `product_bom`
ADD COLUMN `dict_code` bigint NOT NULL COMMENT '鍏宠仈瀛楀吀鏁版嵁缂栫爜锛坰ys_dict_data.dict_code锛�';
-ALTER TABLE `product_bom` ADD INDEX `idx_dict_code` (`dict_code`);
\ No newline at end of file
+ALTER TABLE `product_bom` ADD INDEX `idx_dict_code` (`dict_code`);
+
+ALTER TABLE `product-inventory-management-zsjc`.`process_route`
+ ADD COLUMN `dict_code` bigint NOT NULL COMMENT '浜у搧绫诲瀷瀛楀吀缂栫爜' AFTER `status`;
diff --git a/src/main/java/com/ruoyi/production/controller/ProcessRouteController.java b/src/main/java/com/ruoyi/production/controller/ProcessRouteController.java
index 50ac4a8..5567696 100644
--- a/src/main/java/com/ruoyi/production/controller/ProcessRouteController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProcessRouteController.java
@@ -2,8 +2,10 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.production.dto.ProcessRouteDto;
+import com.ruoyi.production.dto.ProductStructureDto;
import com.ruoyi.production.pojo.ProcessRoute;
import com.ruoyi.production.pojo.ProcessRouteItem;
import com.ruoyi.production.service.ProcessRouteItemService;
@@ -14,34 +16,44 @@
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
+import java.util.List;
@RestController
-@RequestMapping("processRoute")
+@RequestMapping("/processRoute")
@Api(tags = "宸ヨ壓璺嚎")
public class ProcessRouteController {
@Autowired
private ProcessRouteService processRouteService;
- @GetMapping("page")
+ @GetMapping("/page")
@ApiOperation("鍒嗛〉鏌ヨ")
- public R page(Page<ProcessRouteDto> page, ProcessRouteDto processRouteDto) {
+ public R page(Page<ProcessRouteDto> page, ProcessRouteDto processRouteDto) {
return R.ok(processRouteService.pageProcessRouteDto(page, processRouteDto));
}
@ApiOperation("鏂板宸ヨ壓璺嚎")
- @PostMapping ()
- public R add(@RequestBody ProcessRoute processRoute) {
+ @PostMapping("")
+ public R add(@RequestBody ProcessRoute processRoute) {
return R.ok(processRouteService.saveProcessRoute(processRoute));
}
+
@ApiOperation("淇敼宸ヨ壓璺嚎")
- @PutMapping ()
- public R update(@RequestBody ProcessRoute processRoute) {
+ @PutMapping("")
+ public R update(@RequestBody ProcessRoute processRoute) {
return R.ok(processRouteService.updateById(processRoute));
}
+
@ApiOperation("鍒犻櫎宸ヨ壓璺嚎")
@DeleteMapping("/{ids}")
public R delete(@PathVariable("ids") Long[] ids) {
return R.ok(processRouteService.batchDelete(Arrays.asList(ids)));
}
+
+ @GetMapping("/getRouteBom/{id}")
+ @ApiOperation("鑾峰彇宸ヨ壓璺嚎缁戝畾鐨凚OM瀛愰泦")
+ public AjaxResult getRouteBom(@PathVariable Long id) {
+ List<ProductStructureDto> list = processRouteService.getRouteBom(id);
+ return AjaxResult.success(list);
+ }
}
diff --git a/src/main/java/com/ruoyi/production/controller/ProcessRouteItemController.java b/src/main/java/com/ruoyi/production/controller/ProcessRouteItemController.java
index 5c631e7..117450f 100644
--- a/src/main/java/com/ruoyi/production/controller/ProcessRouteItemController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProcessRouteItemController.java
@@ -21,13 +21,13 @@
import java.util.List;
@RestController
-@RequestMapping("processRouteItem")
+@RequestMapping("/processRouteItem")
@Api(tags = "宸ヨ壓璺嚎鏄庣粏")
public class ProcessRouteItemController {
@Autowired
private ProcessRouteItemService processRouteItemService;
- @GetMapping("list")
+ @GetMapping("/list")
public R listProcessRouteItemDto(ProcessRouteItemDto processRouteItemDto) {
return R.ok(processRouteItemService.listProcessRouteItemDto(processRouteItemDto));
}
@@ -50,4 +50,5 @@
public AjaxResult batchDelete(@PathVariable("id") Long id) {
return AjaxResult.success(processRouteItemService.batchDelete(id));
}
+
}
diff --git a/src/main/java/com/ruoyi/production/dto/ProcessRouteDto.java b/src/main/java/com/ruoyi/production/dto/ProcessRouteDto.java
index 232a00c..1709396 100644
--- a/src/main/java/com/ruoyi/production/dto/ProcessRouteDto.java
+++ b/src/main/java/com/ruoyi/production/dto/ProcessRouteDto.java
@@ -11,8 +11,8 @@
private String productName;
- @ApiModelProperty("瑙勬牸")
- private String model;
+ @ApiModelProperty("浜у搧绫诲瀷")
+ private String dictLabel;
private String bomNo;
}
diff --git a/src/main/java/com/ruoyi/production/dto/ProcessRouteItemDto.java b/src/main/java/com/ruoyi/production/dto/ProcessRouteItemDto.java
index cb477d1..5b03aa2 100644
--- a/src/main/java/com/ruoyi/production/dto/ProcessRouteItemDto.java
+++ b/src/main/java/com/ruoyi/production/dto/ProcessRouteItemDto.java
@@ -26,4 +26,8 @@
@ApiModelProperty("宸ュ簭鍙傛暟涓暟")
private Integer paramCount;
+
+ @ApiModelProperty("浜у搧绫诲瀷")
+ private String dictLabel;
+
}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProcessRoute.java b/src/main/java/com/ruoyi/production/pojo/ProcessRoute.java
index 700a33e..81ebd75 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProcessRoute.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProcessRoute.java
@@ -44,4 +44,7 @@
@ApiModelProperty(value = "鐘舵�侊細0-鑽夌锛�1-宸叉壒鍑�")
private Boolean status;
+
+ @ApiModelProperty(value = "浜у搧绫诲瀷瀛楀吀缂栫爜")
+ private Long dictCode;
}
diff --git a/src/main/java/com/ruoyi/production/service/ProcessRouteService.java b/src/main/java/com/ruoyi/production/service/ProcessRouteService.java
index 6b408cf..8ec28d7 100644
--- a/src/main/java/com/ruoyi/production/service/ProcessRouteService.java
+++ b/src/main/java/com/ruoyi/production/service/ProcessRouteService.java
@@ -4,8 +4,8 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.production.dto.ProcessRouteDto;
+import com.ruoyi.production.dto.ProductStructureDto;
import com.ruoyi.production.pojo.ProcessRoute;
-import io.swagger.models.auth.In;
import java.util.List;
@@ -16,4 +16,6 @@
Integer saveProcessRoute(ProcessRoute processRoute);
int batchDelete(List<Long> ids);
+
+ List<ProductStructureDto> getRouteBom(Long id);
}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProcessRouteItemServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProcessRouteItemServiceImpl.java
index cc9e2fe..30c2680 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProcessRouteItemServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProcessRouteItemServiceImpl.java
@@ -11,7 +11,6 @@
import com.ruoyi.production.pojo.ProcessRouteItem;
import com.ruoyi.production.pojo.ProcessRouteItemParam;
import com.ruoyi.production.service.ProcessRouteItemService;
-import com.ruoyi.production.service.ProductMaterialSkuService;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -29,9 +28,6 @@
@Autowired
private ProcessRouteItemParamMapper processRouteItemParamMapper;
-
- @Autowired
- private ProductMaterialSkuService productMaterialSkuService;
@Override
public List<ProcessRouteItemDto> listProcessRouteItemDto(ProcessRouteItemDto processRouteItemDto) {
@@ -107,14 +103,7 @@
if (processRouteItem == null) {
throw new ServiceException("鏁版嵁涓嶈兘涓虹┖");
}
- if (processRouteItem.getProductModelId() != null) {
- Object product = productMaterialSkuService.getById(processRouteItem.getProductModelId());
- if (product == null) {
- throw new ServiceException("鎿嶄綔澶辫触锛氬叧鑱旂殑浜у搧(ID:" + processRouteItem.getProductModelId() + ")涓嶅瓨鍦�");
- }
- } else {
- throw new ServiceException("浜у搧ID涓嶈兘涓虹┖");
- }
+
Long tenantId = SecurityUtils.getLoginUser().getTenantId();
processRouteItem.setTenantId(tenantId);
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 78e15d1..411f2c8 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProcessRouteServiceImpl.java
@@ -4,16 +4,19 @@
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.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 com.ruoyi.project.system.domain.SysDictData;
+import com.ruoyi.project.system.mapper.SysDictDataMapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -22,7 +25,7 @@
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
-import java.util.Arrays;
+import java.util.ArrayList;
import java.util.List;
@Service
@@ -39,6 +42,13 @@
@Autowired
private ProductOrderMapper productOrderMapper;
+ @Autowired
+ private ProductStructureService productStructureService;
+
+ @Autowired
+ private SysDictDataMapper sysDictDataMapper;
+
+
@Override
public IPage<ProcessRouteDto> pageProcessRouteDto(Page<ProcessRouteDto> page, ProcessRouteDto processRouteDto) {
@@ -48,6 +58,14 @@
@Override
@Transactional(rollbackFor = Exception.class)
public Integer saveProcessRoute(ProcessRoute processRoute) {
+ if (processRoute == null || processRoute.getDictCode() == null) {
+ throw new ServiceException("鏂板宸ヨ壓璺嚎澶辫触,浜у搧绫诲瀷涓嶈兘涓虹┖");
+ }
+ SysDictData sysDictData = sysDictDataMapper.selectDictDataById(processRoute.getDictCode());
+ if (sysDictData == null) {
+ throw new ServiceException("鏂板宸ヨ壓璺嚎澶辫触,浜у搧绫诲瀷涓嶅瓨鍦�");
+ }
+
save(processRoute);
if (processRoute.getProcessRouteCode() == null || processRoute.getProcessRouteCode().trim().isEmpty()) {
String dateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
@@ -70,4 +88,22 @@
processRouteItemMapper.delete(Wrappers.<ProcessRouteItem>lambdaQuery().in(ProcessRouteItem::getRouteId, ids));
return processRouteMapper.deleteBatchIds(ids);
}
+
+ @Override
+ public List<ProductStructureDto> getRouteBom(Long id) {
+ if (id == null) {
+ return new ArrayList<>(0);
+ }
+
+ ProcessRoute processRoute = getById(id);
+ if (processRoute == null) {
+ throw new ServiceException("宸ヨ壓璺嚎涓嶅瓨鍦�");
+ }
+
+ List<ProductStructureDto> list = productStructureService.listByBomId(processRoute.getBomId());
+ if (list == null) {
+ list = new ArrayList<>(0);
+ }
+ return list;
+ }
}
diff --git a/src/main/resources/mapper/production/ProcessRouteMapper.xml b/src/main/resources/mapper/production/ProcessRouteMapper.xml
index 76f2a97..48d0708 100644
--- a/src/main/resources/mapper/production/ProcessRouteMapper.xml
+++ b/src/main/resources/mapper/production/ProcessRouteMapper.xml
@@ -17,16 +17,15 @@
<select id="pageProcessRouteDto" resultType="com.ruoyi.production.dto.ProcessRouteDto">
select
ps.*,
- pm.product_name, pms.product_id, pms.model, pb.bom_no
+ pb.bom_no,
+ sdd.dict_label AS dictLabel
from process_route ps
left join product_bom pb on ps.bom_id = pb.id
- left join product_material_sku pms on ps.product_model_id = pms.id
- left join product_material pm on pms.product_id = pm.id
- <where>
- <if test="c.model != null and c.model != ''">
- and pms.model like concat('%', #{c.model}, '%')
- </if>
- </where>
+ left join sys_dict_data sdd on sdd.dict_code = ps.dict_code
+ where 1= 1
+ <if test="c.dictCode != null">
+ and ps.dict_code = #{c.dictCode}
+ </if>
order by ps.id
</select>
--
Gitblit v1.9.3