From bb091407c5920e4071b476e72fbb14638fac3865 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期一, 23 三月 2026 17:26:42 +0800
Subject: [PATCH] feat(product-process): 新增工序编号字段并优化编号生成逻辑
---
src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java | 40 ++++++++++++++++++++++++++++++++++++++--
1 files changed, 38 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java
index 71e41ce..b6c7548 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.production.service.impl;
+import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -7,6 +8,8 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.pojo.Customer;
import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.device.mapper.DeviceLedgerMapper;
+import com.ruoyi.device.pojo.DeviceLedger;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.production.dto.ProductProcessDto;
import com.ruoyi.production.mapper.ProcessRouteItemMapper;
@@ -23,6 +26,8 @@
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
@Service
public class ProductProcessServiceImpl extends ServiceImpl<ProductProcessMapper, ProductProcess> implements ProductProcessService {
@@ -32,6 +37,8 @@
private ProcessRouteItemMapper processRouteItemMapper;
@Autowired
private ProductProcessRouteItemMapper productProcessRouteItemMapper;
+ @Autowired
+ private DeviceLedgerMapper deviceLedgerMapper;
@Override
public IPage<ProductProcessDto> listPage(Page page, ProductProcessDto productProcessDto) {
@@ -62,11 +69,40 @@
if(CollectionUtils.isEmpty(productProcessList)){
return AjaxResult.warn("妯℃澘閿欒鎴栧鍏ユ暟鎹负绌�");
}
- this.saveOrUpdateBatch(productProcessList);
+ productProcessList.forEach(productProcess -> {
+ if (ObjectUtils.isEmpty(productProcess)) {
+ throw new RuntimeException("浣跨敤妯℃澘杩涜瀵煎叆");
+ }
+ if (ObjectUtils.isEmpty(productProcess.getName())) {
+ throw new RuntimeException("宸ュ簭鍚嶇О涓嶈兘涓虹┖");
+ }
+ if (ObjectUtils.isEmpty(productProcess.getDeviceName())) {
+ throw new RuntimeException("宸ュ簭鏈哄彴涓嶈兘涓虹┖");
+ }
+ });
+ // 閫氳繃鏈哄彴鍚嶇О鏌ヨ鏈哄彴淇℃伅
+ List<String> deviceNames = productProcessList.stream().map(ProductProcess::getDeviceName).collect(Collectors.toList());
+ List<DeviceLedger> deviceLedgerList = deviceLedgerMapper.selectList(Wrappers.<DeviceLedger>lambdaQuery().in(DeviceLedger::getDeviceName, deviceNames));
+ if(CollectionUtils.isEmpty(deviceLedgerList)){
+ throw new RuntimeException("鏈兘鏌ヨ鍒拌鏈哄彴淇℃伅锛岃妫�鏌ユ満鍙板悕绉版槸鍚︽纭�");
+ }
+ Map<String, DeviceLedger> deviceNameMap = deviceLedgerList.stream().collect(Collectors.toMap(DeviceLedger::getDeviceName, deviceLedger -> deviceLedger));
+ productProcessList.forEach(productProcess -> {
+ DeviceLedger deviceLedger = deviceNameMap.get(productProcess.getDeviceName());
+ productProcess.setDeviceLeaderId(deviceLedger.getId());
+ this.save(productProcess);
+ if(StrUtil.isEmpty(productProcess.getNo())){
+ String no = "GX" + String.format("%08d", productProcess.getId());
+ productProcess.setNo(no);
+ productProcessMapper.updateById(productProcess);
+ }
+
+ });
+
return AjaxResult.success(true);
}catch (Exception e){
e.printStackTrace();
- return AjaxResult.error("瀵煎叆澶辫触");
+ return AjaxResult.error(e.getMessage());
}
}
--
Gitblit v1.9.3