zss
7 天以前 5ad54547dc97b76dc3d689b9499dec7364968235
src/main/java/com/ruoyi/production/service/impl/ProductionOrderRoutingOperationParamServiceImpl.java
@@ -48,17 +48,20 @@
    @Override
    public List<ProductionOrderRoutingOperationParamVo> listProductionOrderRoutingOperationParam(ProductionOrderRoutingOperationParamDto dto) {
        // 查询生产订单工艺路线工序参数
        return BeanUtil.copyToList(this.list(buildQueryWrapper(dto)), ProductionOrderRoutingOperationParamVo.class);
    }
    @Override
    public ProductionOrderRoutingOperationParamVo getProductionOrderRoutingOperationParamInfo(Long id) {
        // 获取生产订单工艺路线工序参数详情
        ProductionOrderRoutingOperationParam item = this.getById(id);
        return item == null ? null : BeanUtil.copyProperties(item, ProductionOrderRoutingOperationParamVo.class);
    }
    @Override
    public boolean saveProductionOrderRoutingOperationParam(ProductionOrderRoutingOperationParam item) {
        // 保存生产订单工艺路线工序参数
        ProductionOrderRoutingOperation routingOperation = getRoutingOperation(item.getProductionOrderRoutingOperationId());
        fillFromSourceParam(item, routingOperation);
        validateManualFields(item);
@@ -68,10 +71,12 @@
    @Override
    public boolean removeProductionOrderRoutingOperationParam(Long id) {
        // 删除生产订单工艺路线工序参数
        return this.removeById(id);
    }
    private LambdaQueryWrapper<ProductionOrderRoutingOperationParam> buildQueryWrapper(ProductionOrderRoutingOperationParamDto dto) {
        // 按条件动态构建数据库查询条件
        ProductionOrderRoutingOperationParam query = dto == null ? new ProductionOrderRoutingOperationParam() : dto;
        return Wrappers.<ProductionOrderRoutingOperationParam>lambdaQuery()
                .eq(query.getId() != null, ProductionOrderRoutingOperationParam::getId, query.getId())
@@ -96,29 +101,31 @@
    }
    private ProductionOrderRoutingOperation getRoutingOperation(Long productionOrderRoutingOperationId) {
        // 获取工艺路线工序
        if (productionOrderRoutingOperationId == null) {
            throw new ServiceException("productionOrderRoutingOperationId is required");
            throw new ServiceException("生产订单工艺路线工序ID不能为空");
        }
        ProductionOrderRoutingOperation routingOperation = productionOrderRoutingOperationMapper.selectById(productionOrderRoutingOperationId);
        if (routingOperation == null) {
            throw new ServiceException("Production order routing operation not found");
            throw new ServiceException("生产订单工艺路线工序不存在");
        }
        return routingOperation;
    }
    private void fillFromSourceParam(ProductionOrderRoutingOperationParam item, ProductionOrderRoutingOperation routingOperation) {
        // 从来源参数回填当前参数默认值
        item.setProductionOrderId(routingOperation.getProductionOrderId());
        item.setProductionOrderRoutingOperationId(routingOperation.getId());
        ProductionOrder productionOrder = productionOrderMapper.selectById(routingOperation.getProductionOrderId());
        if (productionOrder == null) {
            throw new ServiceException("Production order not found");
            throw new ServiceException("生产订单不存在");
        }
        if (item.getParamId() == null) {
            return;
        }
        TechnologyParam sourceParam = technologyParamMapper.selectById(item.getParamId());
        if (sourceParam == null) {
            throw new ServiceException("Technology  param not found");
            throw new ServiceException("工艺参数不存在");
        }
        if (item.getTechnologyOperationParamId() != null) {
            TechnologyRoutingOperationParam sourceRoutingOperationParam = technologyRoutingOperationParamMapper.selectById(item.getTechnologyOperationParamId());
@@ -141,15 +148,17 @@
    }
    private void validateManualFields(ProductionOrderRoutingOperationParam item) {
        // 校验手工录入字段的必填与格式
        if (item.getParamCode() == null || item.getParamCode().trim().isEmpty()) {
            throw new ServiceException("paramCode is required");
            throw new ServiceException("参数编码不能为空");
        }
        if (item.getParamName() == null || item.getParamName().trim().isEmpty()) {
            throw new ServiceException("paramName is required");
            throw new ServiceException("参数名称不能为空");
        }
    }
    private void checkDuplicate(ProductionOrderRoutingOperationParam item) {
        // 检查数据是否重复,避免重复保存
        boolean duplicate = productionOrderRoutingOperationParamMapper.selectCount(
                Wrappers.<ProductionOrderRoutingOperationParam>lambdaQuery()
                        .isNull(ProductionOrderRoutingOperationParam::getProductionProductMainId)
@@ -161,7 +170,7 @@
                        .ne(item.getId() != null, ProductionOrderRoutingOperationParam::getId, item.getId())
        ) > 0;
        if (duplicate) {
            throw new ServiceException("Duplicate production order routing operation param");
            throw new ServiceException("生产订单工艺路线工序参数重复");
        }
    }
}