From ca9c106255ff6283286c78ce621251839eb98189 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期一, 23 三月 2026 16:00:38 +0800
Subject: [PATCH] feat(process): 新增工序机台字段及关联机台校验

---
 src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java |   26 +++++++++++++++++++++++++-
 src/main/java/com/ruoyi/production/pojo/ProductProcess.java                    |   14 +++++++++-----
 2 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/pojo/ProductProcess.java b/src/main/java/com/ruoyi/production/pojo/ProductProcess.java
index 1953a56..249e039 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductProcess.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProductProcess.java
@@ -36,10 +36,15 @@
     @Excel(name = "宸ュ簭鍚嶇О")
     private String name;
 
+    @ApiModelProperty(value ="宸ュ簭鏈哄彴")
+    @TableField(value = "device_name")
+    @Excel(name = "宸ュ簭鏈哄彴")
+    private String deviceName;
+
     /**
      * 宸ュ簭缂栧彿
      */
-    @Excel(name = "宸ュ簭缂栧彿")
+//    @Excel(name = "宸ュ簭缂栧彿")
     private String no;
 
     /**
@@ -57,6 +62,7 @@
     private BigDecimal salaryQuota;
 
     @ApiModelProperty("绫诲瀷 鍖哄垎鏄鏃惰繕鏄浠� 0 璁℃椂 1璁′欢")
+    @Excel(name = "绫诲瀷 0 璁℃椂 1璁′欢")
     private Long type;
 
     /**
@@ -82,12 +88,10 @@
     private Long tenantId;
 
     @ApiModelProperty(value ="鏄惁璐ㄦ")
+    @Excel(name = "鏄惁璐ㄦ")
     private Boolean isQuality;
 
-    @ApiModelProperty(value ="璁惧鍚嶇О")
-    @TableField(value = "device_name")
-    @Excel(name = "璁惧鍚嶇О")
-    private String deviceName;
+
 
     @ApiModelProperty(value ="璁惧id")
     @TableField(value = "device_id")
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 3be9086..fd44a9c 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java
@@ -7,6 +7,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 +25,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 +36,8 @@
     private ProcessRouteItemMapper processRouteItemMapper;
     @Autowired
     private ProductProcessRouteItemMapper productProcessRouteItemMapper;
+    @Autowired
+    private DeviceLedgerMapper deviceLedgerMapper;
 
     @Override
     public IPage<ProductProcessDto> listPage(Page page, ProductProcessDto productProcessDto) {
@@ -69,8 +75,26 @@
                 if (ObjectUtils.isEmpty(productProcess.getName())) {
                     throw new RuntimeException("宸ュ簭鍚嶇О涓嶈兘涓虹┖");
                 }
+                if (ObjectUtils.isEmpty(productProcess.getDeviceName())) {
+                    throw new RuntimeException("宸ュ簭鏈哄彴涓嶈兘涓虹┖");
+                }
             });
-            this.saveOrUpdateBatch(productProcessList);
+            // 閫氳繃鏈哄彴鍚嶇О鏌ヨ鏈哄彴淇℃伅
+            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);
+                String no = "GX" + String.format("%08d", productProcess.getId());
+                productProcess.setNo(no);
+                productProcessMapper.updateById(productProcess);
+            });
+
             return AjaxResult.success(true);
         }catch (Exception e){
             e.printStackTrace();

--
Gitblit v1.9.3