烧结订单校验子件类型

liweidong
liweidong-hj 3 days ago
parent 9e91b0bbc3
commit 7702e103fa
  1. 70
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java

@ -476,11 +476,79 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
if (!result) { if (!result) {
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_CRAFT.getCode()); yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_CRAFT.getCode());
yieldOrder.setValidationTime(DateUtil.now()); yieldOrder.setValidationTime(DateUtil.now());
yieldOrder.setValidationMomo("未查询到零件信息!"); yieldOrder.setValidationMomo(yieldOrder.getPartCode()+": 未查询到零件信息!");
this.updateById(yieldOrder); this.updateById(yieldOrder);
return null; return null;
} }
} }
// 烧结订单 需要校验子件必须包含【玻璃饼、壳体、插针、石墨模】
if(yieldOrder.getYieldType().equals(YieldOrderEnum.YIELD_TYPE_2.getCode())){
if(partEntity == null){
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_CRAFT.getCode());
yieldOrder.setValidationTime(DateUtil.now());
yieldOrder.setValidationMomo(yieldOrder.getPartCode()+": 未查询到零件信息!");
this.updateById(yieldOrder);
return null;
}
List<DsPartRelationEntity> partRelationEntityList = partRelationService.selectDsPartRelationByPartId(partEntity.getId());
List<Long> 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<DsPartEntity> dsPartEntityList = dsPartService.listByIds(childPartIdList);
// 收集所有子件的
Set<Integer> 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<Integer> requiredTypes = Arrays.asList(DsPartConstant.SIN_TER_TYPE_CZ, DsPartConstant.SIN_TER_TYPE_KT, DsPartConstant.SIN_TER_TYPE_BLB, DsPartConstant.SIN_TER_TYPE_SMM);
List<Integer> 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; Integer rank;
// 先判断是否是热表订单 不是返回二级工艺 // 先判断是否是热表订单 不是返回二级工艺

Loading…
Cancel
Save