diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java index 83028a5ec..f2c64aaf8 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java @@ -340,8 +340,80 @@ public class YieldOrderServiceImpl extends BaseServiceImpl partRelationEntityList = partRelationService.selectDsPartRelationByPartId(partEntity.getId()); + List childPartIdList = partRelationEntityList.stream() + .map(DsPartRelationEntity::getChildPartId) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + + if (CollectionUtils.isEmpty(childPartIdList)) { + yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_CRAFT.getCode()); + yieldOrder.setValidationTime(DateUtil.now()); + yieldOrder.setValidationMomo(partEntity.getPartCode()+" :未查询到子件信息"); + this.updateById(yieldOrder); + return null; + } + + List dsPartEntityList = dsPartService.listByIds(childPartIdList); + + // 收集所有子件的 + Set sinTerTypeSet = dsPartEntityList.stream() + .map(DsPartEntity::getSinTerType) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + if(CollectionUtils.isEmpty(sinTerTypeSet)){ + yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_CRAFT.getCode()); + yieldOrder.setValidationTime(DateUtil.now()); + yieldOrder.setValidationMomo(partEntity.getPartCode()+" :子件类型为空"); + this.updateById(yieldOrder); + return null; + } + + // 校验必须包含的零件类型 + List requiredTypes = Arrays.asList(DsPartConstant.SIN_TER_TYPE_CZ, DsPartConstant.SIN_TER_TYPE_KT, DsPartConstant.SIN_TER_TYPE_BLB, DsPartConstant.SIN_TER_TYPE_SMM); + + List missingTypes = new ArrayList<>(); + for (Integer requiredType : requiredTypes) { + if (!sinTerTypeSet.contains(requiredType)) { + missingTypes.add(requiredType); + } + } + + if (!missingTypes.isEmpty()) { + String missingDesc = missingTypes.stream() + .map(type -> { + if (type.equals(DsPartConstant.SIN_TER_TYPE_CZ)) return "插针"; + if (type.equals(DsPartConstant.SIN_TER_TYPE_KT)) return "壳体"; + if (type.equals(DsPartConstant.SIN_TER_TYPE_BLB)) return "玻璃饼"; + if (type.equals(DsPartConstant.SIN_TER_TYPE_SMM)) return "石墨模"; + return "未知类型(" + type + ")"; + }) + .collect(Collectors.joining("、")); + + yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_CRAFT.getCode()); + yieldOrder.setValidationTime(DateUtil.now()); + yieldOrder.setValidationMomo("零件:"+partEntity.getPartCode()+" 缺少子件类型: " + missingDesc); + this.updateById(yieldOrder); + return null; + } + + } + + try { this.saveSubYieldOrder(yieldOrder, Boolean.FALSE, yieldOrder.getReceiveUser()); } catch (BusinessException e) { @@ -481,74 +553,6 @@ public class YieldOrderServiceImpl extends BaseServiceImpl partRelationEntityList = partRelationService.selectDsPartRelationByPartId(partEntity.getId()); - List childPartIdList = partRelationEntityList.stream() - .map(DsPartRelationEntity::getChildPartId) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - - if (CollectionUtils.isEmpty(childPartIdList)) { - yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_CRAFT.getCode()); - yieldOrder.setValidationTime(DateUtil.now()); - yieldOrder.setValidationMomo(partEntity.getPartCode()+" :未查询到子件信息"); - this.updateById(yieldOrder); - return null; - } - - List dsPartEntityList = dsPartService.listByIds(childPartIdList); - - // 收集所有子件的 - Set sinTerTypeSet = dsPartEntityList.stream() - .map(DsPartEntity::getSinTerType) - .filter(Objects::nonNull) - .collect(Collectors.toSet()); - if(CollectionUtils.isEmpty(sinTerTypeSet)){ - yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_CRAFT.getCode()); - yieldOrder.setValidationTime(DateUtil.now()); - yieldOrder.setValidationMomo(partEntity.getPartCode()+" :子件类型为空"); - this.updateById(yieldOrder); - return null; - } - - // 校验必须包含的零件类型 - List requiredTypes = Arrays.asList(DsPartConstant.SIN_TER_TYPE_CZ, DsPartConstant.SIN_TER_TYPE_KT, DsPartConstant.SIN_TER_TYPE_BLB, DsPartConstant.SIN_TER_TYPE_SMM); - - List missingTypes = new ArrayList<>(); - for (Integer requiredType : requiredTypes) { - if (!sinTerTypeSet.contains(requiredType)) { - missingTypes.add(requiredType); - } - } - - if (!missingTypes.isEmpty()) { - String missingDesc = missingTypes.stream() - .map(type -> { - if (type.equals(DsPartConstant.SIN_TER_TYPE_CZ)) return "插针"; - if (type.equals(DsPartConstant.SIN_TER_TYPE_KT)) return "壳体"; - if (type.equals(DsPartConstant.SIN_TER_TYPE_BLB)) return "玻璃饼"; - if (type.equals(DsPartConstant.SIN_TER_TYPE_SMM)) return "石墨模"; - return "未知类型(" + type + ")"; - }) - .collect(Collectors.joining("、")); - - yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_CRAFT.getCode()); - yieldOrder.setValidationTime(DateUtil.now()); - yieldOrder.setValidationMomo("零件:"+partEntity.getPartCode()+" 缺少子件类型: " + missingDesc); - this.updateById(yieldOrder); - return null; - } - - } Integer rank; // 先判断是否是热表订单 不是返回二级工艺