From 1a4f55b079f9b4e533f0ed3bf07b7761aa1271e0 Mon Sep 17 00:00:00 2001 From: liweidong-hj Date: Fri, 29 May 2026 10:52:22 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A1=E5=88=92=E7=83=A7=E7=BB=93=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=20=E9=9C=80=E8=A6=81=E6=A0=A1=E9=AA=8C=E5=AD=90?= =?UTF-8?q?=E4=BB=B6=E5=BF=85=E9=A1=BB=E5=8C=85=E5=90=AB=E3=80=90=E7=8E=BB?= =?UTF-8?q?=E7=92=83=E9=A5=BC=E3=80=81=E5=A3=B3=E4=BD=93=E3=80=81=E6=8F=92?= =?UTF-8?q?=E9=92=88=E3=80=81=E7=9F=B3=E5=A2=A8=E6=A8=A1=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/YieldOrderServiceImpl.java | 140 +++++++++--------- 1 file changed, 72 insertions(+), 68 deletions(-) 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; // 先判断是否是热表订单 不是返回二级工艺