|
|
|
|
@ -229,6 +229,46 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie |
|
|
|
|
return ObjectUtil.isNotEmpty(yieldPlan); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Boolean createSubOrder(YieldOrder yieldOrder) { |
|
|
|
|
// 4. 如果是烧结订单并且不是返工单据,则需要验证子件清单是否存在,存在跳过,不存在则新增
|
|
|
|
|
if (YieldOrderEnum.YIELD_TYPE_2.equals(yieldOrder.getYieldType()) |
|
|
|
|
&& StringUtils.isBlank(yieldOrder.getReworkCode())) { |
|
|
|
|
//验证订单是否存在当前B号,如果不存在则不能下发
|
|
|
|
|
if (StringUtils.isBlank(yieldOrder.getRoamNo())) { |
|
|
|
|
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode()); |
|
|
|
|
yieldOrder.setValidationTime(DateUtil.now()); |
|
|
|
|
yieldOrder.setValidationMomo("订单不存在B号,请手动匹配B号!"); |
|
|
|
|
this.updateById(yieldOrder); |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
String roamNoText = dsPartService.findNameByRoamNo(yieldOrder.getPartCode(), yieldOrder.getRoamNo()); |
|
|
|
|
if (StringUtils.isBlank(roamNoText)) { |
|
|
|
|
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode()); |
|
|
|
|
yieldOrder.setValidationTime(DateUtil.now()); |
|
|
|
|
yieldOrder.setValidationMomo("未找到ERP一级B号路线,请核查!"); |
|
|
|
|
this.updateById(yieldOrder); |
|
|
|
|
} |
|
|
|
|
// 验证烧结订单的b号描述,如果包含封接字样则验证子件,不包含则不验证
|
|
|
|
|
if (roamNoText.contains(YieldOrderConst.ROAMNO_TEXT_FJ)) { |
|
|
|
|
try { |
|
|
|
|
this.saveSubYieldOrder(yieldOrder, Boolean.FALSE, yieldOrder.getReceiveUser()); |
|
|
|
|
} catch (BusinessException e) { |
|
|
|
|
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode()); |
|
|
|
|
yieldOrder.setValidationTime(DateUtil.now()); |
|
|
|
|
yieldOrder.setValidationMomo(e.getErrorMessage()); |
|
|
|
|
this.updateById(yieldOrder); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
log.info("订单{}不是烧结订单,无需生成子件订单", yieldOrder.getYoCode()); |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Boolean verifyYieldOrderData(YieldOrder yieldOrder) { |
|
|
|
|
// 1. 验证是否已有该流程卡号的数据, 若已有
|
|
|
|
|
@ -268,38 +308,6 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 4. 如果是烧结订单并且不是返工单据,则需要验证子件清单是否存在,存在跳过,不存在则新增
|
|
|
|
|
if (YieldOrderEnum.YIELD_TYPE_2.equals(yieldOrder.getYieldType()) |
|
|
|
|
&& StringUtils.isBlank(yieldOrder.getReworkCode())) { |
|
|
|
|
//验证订单是否存在当前B号,如果不存在则不能下发
|
|
|
|
|
if (StringUtils.isBlank(yieldOrder.getRoamNo())) { |
|
|
|
|
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode()); |
|
|
|
|
yieldOrder.setValidationTime(DateUtil.now()); |
|
|
|
|
yieldOrder.setValidationMomo("订单不存在B号,请手动匹配B号!"); |
|
|
|
|
this.updateById(yieldOrder); |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
String roamNoText = dsPartService.findNameByRoamNo(yieldOrder.getPartCode(), yieldOrder.getRoamNo()); |
|
|
|
|
if (StringUtils.isBlank(roamNoText)) { |
|
|
|
|
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode()); |
|
|
|
|
yieldOrder.setValidationTime(DateUtil.now()); |
|
|
|
|
yieldOrder.setValidationMomo("未找到ERP一级B号路线,请核查!"); |
|
|
|
|
this.updateById(yieldOrder); |
|
|
|
|
} |
|
|
|
|
// 验证烧结订单的b号描述,如果包含封接字样则验证子件,不包含则不验证
|
|
|
|
|
if (roamNoText.contains(YieldOrderConst.ROAMNO_TEXT_FJ)) { |
|
|
|
|
try { |
|
|
|
|
this.saveSubYieldOrder(yieldOrder, Boolean.FALSE, yieldOrder.getReceiveUser()); |
|
|
|
|
} catch (BusinessException e) { |
|
|
|
|
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode()); |
|
|
|
|
yieldOrder.setValidationTime(DateUtil.now()); |
|
|
|
|
yieldOrder.setValidationMomo(e.getErrorMessage()); |
|
|
|
|
this.updateById(yieldOrder); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//TODO 急件维护标识厂内, 急件维护功能未添加
|
|
|
|
|
// pjAutomaticDispatchService.urgentUpholdOrder(yieldOrder);
|
|
|
|
|
|
|
|
|
|
@ -389,7 +397,11 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie |
|
|
|
|
boolean saveBatch = yieldOrderCraftService.saveBatch(yieldOrderCraftList); |
|
|
|
|
log.info("添加数据返回结果:{}",saveBatch); |
|
|
|
|
} |
|
|
|
|
// 生成子件订单
|
|
|
|
|
createSubOrder(yieldOrder); |
|
|
|
|
|
|
|
|
|
// TODO 生成模具计划
|
|
|
|
|
// TODO 生成物料需求
|
|
|
|
|
return Boolean.TRUE; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|