buhuazhen
6 小时以前 bb091407c5920e4071b476e72fbb14638fac3865
feat(product-process): 新增工序编号字段并优化编号生成逻辑

- 在ProductProcess实体中添加了工序编号 no 字段及对应注解
- 修正工序编号字段位置,避免重复声明
- 优化ProductProcessServiceImpl中工序编号生成,为无编号项自动生成唯一编号
- 调整机台不存在异常提示信息,更加明确机台名称错误提示
- 增强编号生成逻辑的健壮性,避免覆盖已有编号
已修改2个文件
24 ■■■■■ 文件已修改
src/main/java/com/ruoyi/production/pojo/ProductProcess.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/pojo/ProductProcess.java
@@ -31,6 +31,12 @@
    private Long deviceLeaderId;
    /**
     * 工序编号
     */
    @Excel(name = "工序编号")
    private String no;
    /**
     * 工序名称
     */
    @Excel(name = "工序名称")
@@ -41,11 +47,7 @@
    @Excel(name = "工序机台")
    private String deviceName;
    /**
     * 工序编号
     */
//    @Excel(name = "工序编号")
    private String no;
    /**
     * 备注
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;
@@ -83,16 +84,19 @@
            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("工序机台不能为空");
                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);
                if(StrUtil.isEmpty(productProcess.getNo())){
                    String no = "GX" + String.format("%08d", productProcess.getId());
                    productProcess.setNo(no);
                    productProcessMapper.updateById(productProcess);
                }
            });
            return AjaxResult.success(true);