gongchunyi
10 小时以前 a497406167f500741ac6cc1d24e086589972eb49
fix: 工艺路线工序参数表取消绑定基础参数表
已修改6个文件
150 ■■■■ 文件已修改
doc/宁夏-中盛建材.sql 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/appendix/service/impl/AppendixServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/appendix/service/impl/ProcessRouteItemInstanceServiceImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/pojo/ProcessRouteItemParam.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/ProcessRouteItemParamServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/production/ProcessRouteItemParamMapper.xml 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
doc/ÄþÏÄ-ÖÐÊ¢½¨²Ä.sql
@@ -412,3 +412,15 @@
    ADD COLUMN `value_mode`   tinyint      DEFAULT '1' COMMENT '值模式(1单值 2区间)',
    ADD COLUMN `unit`         varchar(50)  DEFAULT NULL COMMENT '单位',
    ADD COLUMN `remark`       varchar(255) DEFAULT NULL COMMENT '备注';
ALTER TABLE process_route_item_param
    DROP COLUMN param_id;
ALTER TABLE process_route_item_param
    ADD COLUMN `param_key`    varchar(100) DEFAULT NULL COMMENT '参数唯一标识',
    ADD COLUMN `param_name`   varchar(100) NOT NULL COMMENT '参数名称',
    ADD COLUMN `param_type`   tinyint      NOT NULL COMMENT '参数类型(1数字 2文本 3下拉选择 4时间)',
    ADD COLUMN `param_format` varchar(255) DEFAULT NULL COMMENT '参数格式',
    ADD COLUMN `value_mode`   tinyint      DEFAULT '1' COMMENT '值模式(1单值 2区间)',
    ADD COLUMN `unit`         varchar(50)  DEFAULT NULL COMMENT '单位',
    ADD COLUMN `remark`       varchar(255) DEFAULT NULL COMMENT '备注';
src/main/java/com/ruoyi/appendix/service/impl/AppendixServiceImpl.java
@@ -5,7 +5,6 @@
import com.ruoyi.appendix.pojo.ProcessRouteItemParamInstance;
import com.ruoyi.appendix.pojo.ProductStructureInstance;
import com.ruoyi.appendix.service.*;
import com.ruoyi.basic.pojo.BaseParam;
import com.ruoyi.basic.service.BaseParamService;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils;
@@ -184,29 +183,11 @@
        if (list == null || list.isEmpty()) {
            return;
        }
        // æ‰¹é‡æŸ¥è¯¢ base_param
        List<Long> paramIds = list.stream().map(ProcessRouteItemParam::getParamId)
                .filter(id -> id != null).distinct().collect(Collectors.toList());
        Map<Long, BaseParam> baseParamMap = new HashMap<>();
        if (!paramIds.isEmpty()) {
            baseParamService.listByIds(paramIds).forEach(bp -> baseParamMap.put(bp.getId(), bp));
        }
        List<ProcessRouteItemParamInstance> instances = list.stream().map(item -> {
            ProcessRouteItemParamInstance instance = new ProcessRouteItemParamInstance();
            BeanUtils.copyProperties(item, instance, "id");
            instance.setOrderId(orderId);
            instance.setRouteItemId(newRouteItemInstanceId);
            // ä»Ž base_param å¡«å……基础字段
            BaseParam bp = baseParamMap.get(item.getParamId());
            if (bp != null) {
                instance.setParamKey(bp.getParamKey());
                instance.setParamName(bp.getParamName());
                instance.setParamType(bp.getParamType());
                instance.setParamFormat(bp.getParamFormat());
                instance.setValueMode(bp.getValueMode());
                instance.setUnit(bp.getUnit());
                instance.setRemark(bp.getRemark());
            }
            return instance;
        }).collect(Collectors.toList());
        processRouteItemParamInstanceService.saveBatch(instances);
src/main/java/com/ruoyi/appendix/service/impl/ProcessRouteItemInstanceServiceImpl.java
@@ -8,8 +8,6 @@
import com.ruoyi.appendix.pojo.ProcessRouteItemParamInstance;
import com.ruoyi.appendix.service.ProcessRouteItemInstanceService;
import com.ruoyi.appendix.service.ProcessRouteItemParamInstanceService;
import com.ruoyi.basic.pojo.BaseParam;
import com.ruoyi.basic.service.BaseParamService;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.production.pojo.ProcessRouteItemParam;
@@ -22,9 +20,7 @@
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -48,9 +44,6 @@
    @Resource
    private ProcessRouteItemParamService processRouteItemParamService;
    @Resource
    private BaseParamService baseParamService;
    @Override
    public List<ProcessRouteItemInstanceDto> getProcessItem(Long orderId) {
@@ -116,27 +109,10 @@
            List<ProcessRouteItemParam> routeItemParams = processRouteItemParamService.list(
                    new LambdaQueryWrapper<ProcessRouteItemParam>().eq(ProcessRouteItemParam::getRouteItemId, old.getId()));
            if (!routeItemParams.isEmpty()) {
                // æ‰¹é‡æŸ¥è¯¢ base_param
                List<Long> paramIds = routeItemParams.stream().map(ProcessRouteItemParam::getParamId)
                        .filter(id -> id != null).distinct().collect(Collectors.toList());
                Map<Long, BaseParam> baseParamMap = new HashMap<>();
                if (!paramIds.isEmpty()) {
                    baseParamService.listByIds(paramIds).forEach(bp -> baseParamMap.put(bp.getId(), bp));
                }
                List<ProcessRouteItemParamInstance> newInstances = routeItemParams.stream().map(p -> {
                    ProcessRouteItemParamInstance instance = new ProcessRouteItemParamInstance();
                    BeanUtils.copyProperties(p, instance, "id");
                    instance.setOrderId(old.getOrderId());
                    BaseParam bp = baseParamMap.get(p.getParamId());
                    if (bp != null) {
                        instance.setParamKey(bp.getParamKey());
                        instance.setParamName(bp.getParamName());
                        instance.setParamType(bp.getParamType());
                        instance.setParamFormat(bp.getParamFormat());
                        instance.setValueMode(bp.getValueMode());
                        instance.setUnit(bp.getUnit());
                        instance.setRemark(bp.getRemark());
                    }
                    return instance;
                }).collect(Collectors.toList());
                processRouteItemParamInstanceService.saveBatch(newInstances);
src/main/java/com/ruoyi/production/pojo/ProcessRouteItemParam.java
@@ -34,8 +34,26 @@
    @ApiModelProperty("关联工艺路线明细ID (process_route_item.id)")
    private Long routeItemId;
    @ApiModelProperty("关联基础参数定义ID (base_param.id)")
    private Long paramId;
    @ApiModelProperty("参数唯一标识")
    private String paramKey;
    @ApiModelProperty("参数名称")
    private String paramName;
    @ApiModelProperty("参数类型(1数字 2文本 3下拉选择 4时间)")
    private Integer paramType;
    @ApiModelProperty("参数格式")
    private String paramFormat;
    @ApiModelProperty("值模式(1单值 2区间)")
    private Integer valueMode;
    @ApiModelProperty("单位")
    private String unit;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("来源工序参数ID")
    private Long processParamId;
src/main/java/com/ruoyi/production/service/impl/ProcessRouteItemParamServiceImpl.java
@@ -4,8 +4,6 @@
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.basic.pojo.BaseParam;
import com.ruoyi.basic.service.BaseParamService;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.production.dto.ProcessRouteItemParamDto;
@@ -13,7 +11,6 @@
import com.ruoyi.production.pojo.ProcessRouteItemParam;
import com.ruoyi.production.service.ProcessRouteItemParamService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -31,9 +28,6 @@
@Slf4j
@Service
public class ProcessRouteItemParamServiceImpl extends ServiceImpl<ProcessRouteItemParamMapper, ProcessRouteItemParam> implements ProcessRouteItemParamService {
    @Autowired
    private BaseParamService baseParamService;
    @Override
    public IPage<ProcessRouteItemParamDto> pageList(Page<ProcessRouteItemParam> page, ProcessRouteItemParam param) {
@@ -57,22 +51,17 @@
        if (param == null) {
            throw new ServiceException("新增失败,参数不能为空");
        }
        if (param.getRouteItemId() == null || param.getParamId() == null) {
            throw new ServiceException("关联工序ID和参数项ID不能为空");
        if (param.getRouteItemId() == null || param.getParamKey() == null) {
            throw new ServiceException("关联工序ID和参数标识不能为空");
        }
        Long tenantId = SecurityUtils.getLoginUser().getTenantId();
        Long count = baseMapper.selectCount(Wrappers.<ProcessRouteItemParam>lambdaQuery()
                .eq(ProcessRouteItemParam::getRouteItemId, param.getRouteItemId())
                .eq(ProcessRouteItemParam::getParamId, param.getParamId())
                .eq(ProcessRouteItemParam::getParamKey, param.getParamKey())
                .eq(ProcessRouteItemParam::getTenantId, tenantId));
        if (count > 0) {
            throw new ServiceException("该工序已存在此参数项,请勿重复添加");
        }
        BaseParam baseParam = baseParamService.getById(param.getParamId());
        if (baseParam == null) {
            throw new ServiceException("新增失败,该基础参数不存在");
            throw new ServiceException("该工序已存在参数项,请勿重复添加");
        }
        Integer maxSort = baseMapper.selectMaxSortByRouteItemId(param.getRouteItemId());
src/main/resources/mapper/production/ProcessRouteItemParamMapper.xml
@@ -7,7 +7,6 @@
    <resultMap id="ProcessRouteItemParamResultMap" type="com.ruoyi.production.pojo.ProcessRouteItemParam">
        <id property="id" column="id"/>
        <result property="routeItemId" column="route_item_id"/>
        <result property="paramId" column="param_id"/>
        <result property="processParamId" column="process_param_id"/>
        <result property="standardValue" column="standard_value"/>
        <result property="minValue" column="min_value"/>
@@ -17,37 +16,56 @@
        <result property="tenantId" column="tenant_id"/>
        <result property="createTime" column="create_time"/>
        <result property="updateTime" column="update_time"/>
        <result property="paramKey" column="param_key"/>
        <result property="paramName" column="param_name"/>
        <result property="paramType" column="param_type"/>
        <result property="paramFormat" column="param_format"/>
        <result property="valueMode" column="value_mode"/>
        <result property="unit" column="unit"/>
        <result property="remark" column="remark"/>
    </resultMap>
    <insert id="insertFromProcessTemplate">
        INSERT INTO process_route_item_param (route_item_id, param_id, process_param_id,
                                              standard_value, min_value, max_value,
                                              is_required, sort, tenant_id, create_time)
        SELECT #{routeItemId},
               param_id,
               id,
        INSERT INTO process_route_item_param (route_item_id,
                                              process_param_id,
               standard_value,
               min_value,
               max_value,
               is_required,
               sort,
                                              tenant_id,
                                              create_time,
                                              param_key,
                                              param_name,
                                              param_type,
                                              param_format,
                                              value_mode,
                                              unit,
                                              remark)
        SELECT #{routeItemId},
               ppp.id,
               ppp.standard_value,
               ppp.min_value,
               ppp.max_value,
               ppp.is_required,
               ppp.sort,
               #{tenantId},
               NOW()
        FROM product_process_param
        WHERE process_id = #{processId}
               NOW(),
               ppp.param_key,
               ppp.param_name,
               ppp.param_type,
               ppp.param_format,
               ppp.value_mode,
               ppp.unit,
               ppp.remark
        FROM product_process_param ppp
        WHERE ppp.process_id = #{processId}
    </insert>
    <select id="selectParamPage" resultType="com.ruoyi.production.dto.ProcessRouteItemParamDto">
        select
        prip.*,
        bp.param_name,
        bp.param_key,
        bp.unit,
        bp.param_type,
        bp.param_format,
        bp.value_mode
        prip.*
        from process_route_item_param prip
        left join base_param bp on prip.param_id = bp.id
        <where>
            <if test="p.routeItemId != null">
                and prip.route_item_id = #{p.routeItemId}