计划烧结订单 需要校验子件必须包含【玻璃饼、壳体、插针、石墨模】

liweidong
liweidong-hj 1 day ago
parent 4dfe4a0802
commit 1a4f55b079
  1. 140
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java

@ -340,8 +340,80 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
yieldOrder.setValidationMomo("未找到ERP一级B号路线,请核查!");
this.updateById(yieldOrder);
}
// 验证烧结订单的b号描述,如果包含封接字样则验证子件,不包含则不验证
if (primaryCraft.contains(YieldOrderConst.ROAMNO_TEXT_FJ)) {
DsPartEntity partEntity = dsPartService.selectDsPartByPatCodeAndVersion(yieldOrder.getPartCode(), yieldOrder.getPartVersion());
// 烧结订单 需要校验子件必须包含【玻璃饼、壳体、插针、石墨模】
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;
}
}
try {
this.saveSubYieldOrder(yieldOrder, Boolean.FALSE, yieldOrder.getReceiveUser());
} catch (BusinessException e) {
@ -481,74 +553,6 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
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;
// 先判断是否是热表订单 不是返回二级工艺

Loading…
Cancel
Save