| | |
| | | |
| | | @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); |
| | |
| | | |
| | | @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()) |
| | | .eq(query.getProductionProductMainId() != null, |
| | | ProductionOrderRoutingOperationParam::getProductionProductMainId, query.getProductionProductMainId()) |
| | | .isNull(query.getProductionProductMainId() == null, |
| | | ProductionOrderRoutingOperationParam::getProductionProductMainId) |
| | | .eq(query.getProductionOrderId() != null, ProductionOrderRoutingOperationParam::getProductionOrderId, query.getProductionOrderId()) |
| | | .eq(query.getProductionOrderRoutingOperationId() != null, ProductionOrderRoutingOperationParam::getProductionOrderRoutingOperationId, query.getProductionOrderRoutingOperationId()) |
| | | .eq(query.getTechnologyOperationId() != null, |
| | |
| | | } |
| | | |
| | | 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()); |
| | |
| | | } |
| | | |
| | | 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) |
| | | .eq(ProductionOrderRoutingOperationParam::getProductionOrderRoutingOperationId, item.getProductionOrderRoutingOperationId()) |
| | | .eq(item.getTechnologyRoutingOperationParamId() != null, |
| | | ProductionOrderRoutingOperationParam::getTechnologyRoutingOperationParamId, item.getTechnologyRoutingOperationParamId()) |
| | |
| | | .ne(item.getId() != null, ProductionOrderRoutingOperationParam::getId, item.getId()) |
| | | ) > 0; |
| | | if (duplicate) { |
| | | throw new ServiceException("Duplicate production order routing operation param"); |
| | | throw new ServiceException("生产订单工艺路线工序参数重复"); |
| | | } |
| | | } |
| | | } |