齐套流转后调用子件出库

master
李涛 2 days ago
parent cd38e5ee17
commit f69ee797e4
  1. 67
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java

@ -174,7 +174,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
//热表订单 //热表订单
List<YieldOrderEnum> yieldTypeList = new ArrayList<>(); List<YieldOrderEnum> yieldTypeList = new ArrayList<>();
yieldTypeList.add(YieldOrderEnum.YIELD_TYPE_1); yieldTypeList.add(YieldOrderEnum.YIELD_TYPE_1);
List<YieldOrder> dataList = baseMapper.selectPage(page, entity, yieldTypeList,null); List<YieldOrder> dataList = baseMapper.selectPage(page, entity, yieldTypeList, null);
if (CollectionUtils.isNotEmpty(dataList)) { if (CollectionUtils.isNotEmpty(dataList)) {
// 1. 收集所有需要查询的 taskingId // 1. 收集所有需要查询的 taskingId
List<Long> taskingIdList = dataList.stream() List<Long> taskingIdList = dataList.stream()
@ -240,7 +240,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
public IPage<YieldOrder> selectPageElectroplate(IPage<YieldOrder> page, YieldOrderDto entity) { public IPage<YieldOrder> selectPageElectroplate(IPage<YieldOrder> page, YieldOrderDto entity) {
List<YieldOrderEnum> yieldTypeList = new ArrayList<>(); List<YieldOrderEnum> yieldTypeList = new ArrayList<>();
yieldTypeList.add(YieldOrderEnum.YIELD_TYPE_1); yieldTypeList.add(YieldOrderEnum.YIELD_TYPE_1);
List<YieldOrder> dataList = baseMapper.selectPage(page, entity, yieldTypeList,null); List<YieldOrder> dataList = baseMapper.selectPage(page, entity, yieldTypeList, null);
return page.setRecords(dataList); return page.setRecords(dataList);
} }
@ -269,14 +269,14 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
entity.setIsSinTerIng(true); entity.setIsSinTerIng(true);
List<YieldOrder> dataList = baseMapper.selectPage(page, entity, yieldTypeList,yieldStatusList); List<YieldOrder> dataList = baseMapper.selectPage(page, entity, yieldTypeList, yieldStatusList);
// 获取所有父订单ID // 获取所有父订单ID
List<Long> idList = dataList.stream() List<Long> idList = dataList.stream()
.map(YieldOrder::getId) .map(YieldOrder::getId)
.collect(Collectors.toList()); .collect(Collectors.toList());
if(!CollectionUtils.isEmpty(idList)){ if (!CollectionUtils.isEmpty(idList)) {
// 查询子订单 // 查询子订单
List<YieldOrder> childOrderList = baseMapper.selectByFatherYoIds(idList); List<YieldOrder> childOrderList = baseMapper.selectByFatherYoIds(idList);
@ -333,13 +333,13 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
List<YieldOrder> yieldOrderList = baseMapper.selectList(queryWrapper); List<YieldOrder> yieldOrderList = baseMapper.selectList(queryWrapper);
// 遍历订单列表,根据异常钻状态,判断调用的校验方法 // 遍历订单列表,根据异常钻状态,判断调用的校验方法
log.info("遍历订单列表,根据异常钻状态,判断调用的校验方法:{}",yieldOrderList.size()); log.info("遍历订单列表,根据异常钻状态,判断调用的校验方法:{}", yieldOrderList.size());
for (YieldOrder yieldOrder : yieldOrderList) { for (YieldOrder yieldOrder : yieldOrderList) {
log.info("合规性校验开始:{}",yieldOrder.getId()); log.info("合规性校验开始:{}", yieldOrder.getId());
if (YieldOrderEnum.VALIDATION_NO.getCode() == yieldOrder.getValidationResult() || YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode() == yieldOrder.getValidationResult()) { if (YieldOrderEnum.VALIDATION_NO.getCode() == yieldOrder.getValidationResult() || YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode() == yieldOrder.getValidationResult()) {
// 进行数据校验,验证不通过,不进行后续验证,直接返回; // 进行数据校验,验证不通过,不进行后续验证,直接返回;
log.info("进行数据校验,验证不通过,不进行后续验证,直接返回"); log.info("进行数据校验,验证不通过,不进行后续验证,直接返回");
log.info("数据校验:{}",yieldOrder.getId()); log.info("数据校验:{}", yieldOrder.getId());
if (!this.verifyYieldOrderData(yieldOrder)) { if (!this.verifyYieldOrderData(yieldOrder)) {
continue; continue;
} }
@ -454,7 +454,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
} }
//校验B号 //校验B号
if(StringUtils.isEmpty(yieldOrder.getRoamNo())){ if (StringUtils.isEmpty(yieldOrder.getRoamNo())) {
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode()); yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode());
yieldOrder.setValidationTime(DateUtil.now()); yieldOrder.setValidationTime(DateUtil.now());
yieldOrder.setValidationMomo("未查询到B号"); yieldOrder.setValidationMomo("未查询到B号");
@ -462,12 +462,12 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
} }
//查询一级工序名称 //查询一级工序名称
String firseqName = dsPartService.findNameByRoamNo(yieldOrder.getPartCode(), yieldOrder.getRoamNo()); String firseqName = dsPartService.findNameByRoamNo(yieldOrder.getPartCode(), yieldOrder.getRoamNo());
if(StringUtils.isEmpty(firseqName)){ if (StringUtils.isEmpty(firseqName)) {
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode()); yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode());
yieldOrder.setValidationTime(DateUtil.now()); yieldOrder.setValidationTime(DateUtil.now());
yieldOrder.setValidationMomo("未查询一级工序名称"); yieldOrder.setValidationMomo("未查询一级工序名称");
this.updateById(yieldOrder); this.updateById(yieldOrder);
}else { } else {
yieldOrder.setFirseqNameStatus(YieldOrderEnum.FIRSEQ_NAME_EXIST.getCode()); yieldOrder.setFirseqNameStatus(YieldOrderEnum.FIRSEQ_NAME_EXIST.getCode());
} }
@ -475,11 +475,11 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
if (firseqName.contains(YieldOrderConst.ROAMNO_TEXT_FJ)) { if (firseqName.contains(YieldOrderConst.ROAMNO_TEXT_FJ)) {
DsPartEntity partEntity = dsPartService.selectDsPartByPatCodeAndVersion(yieldOrder.getPartCode(), yieldOrder.getPartVersion()); DsPartEntity partEntity = dsPartService.selectDsPartByPatCodeAndVersion(yieldOrder.getPartCode(), yieldOrder.getPartVersion());
// 烧结订单 需要校验子件必须包含【玻璃饼、壳体、插针、石墨模】 // 烧结订单 需要校验子件必须包含【玻璃饼、壳体、插针、石墨模】
if(yieldOrder.getYieldType().equals(YieldOrderEnum.YIELD_TYPE_2.getCode())){ if (yieldOrder.getYieldType().equals(YieldOrderEnum.YIELD_TYPE_2.getCode())) {
if(partEntity == null){ if (partEntity == null) {
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.getPartCode()+": 未查询到零件信息!"); yieldOrder.setValidationMomo(yieldOrder.getPartCode() + ": 未查询到零件信息!");
this.updateById(yieldOrder); this.updateById(yieldOrder);
return null; return null;
} }
@ -493,7 +493,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
if (CollectionUtils.isEmpty(childPartIdList)) { if (CollectionUtils.isEmpty(childPartIdList)) {
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(partEntity.getPartCode()+" :未查询到子件信息"); yieldOrder.setValidationMomo(partEntity.getPartCode() + " :未查询到子件信息");
this.updateById(yieldOrder); this.updateById(yieldOrder);
return null; return null;
} }
@ -505,10 +505,10 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
.map(DsPartEntity::getSinTerType) .map(DsPartEntity::getSinTerType)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toSet()); .collect(Collectors.toSet());
if(CollectionUtils.isEmpty(sinTerTypeSet)){ if (CollectionUtils.isEmpty(sinTerTypeSet)) {
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(partEntity.getPartCode()+" :子件类型为空"); yieldOrder.setValidationMomo(partEntity.getPartCode() + " :子件类型为空");
this.updateById(yieldOrder); this.updateById(yieldOrder);
return null; return null;
} }
@ -536,7 +536,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
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("零件:"+partEntity.getPartCode()+" 缺少子件类型: " + missingDesc); yieldOrder.setValidationMomo("零件:" + partEntity.getPartCode() + " 缺少子件类型: " + missingDesc);
this.updateById(yieldOrder); this.updateById(yieldOrder);
return null; return null;
} }
@ -678,7 +678,7 @@ 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.getPartCode()+": 未查询到零件信息!"); yieldOrder.setValidationMomo(yieldOrder.getPartCode() + ": 未查询到零件信息!");
this.updateById(yieldOrder); this.updateById(yieldOrder);
return null; return null;
} }
@ -780,7 +780,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
if (CollectionUtils.isNotEmpty(subPartList)) { if (CollectionUtils.isNotEmpty(subPartList)) {
for (DsPartEntity subPart : subPartList) { for (DsPartEntity subPart : subPartList) {
DsPartRelationEntity partRelation = partRelationService.selectByPartCodeAndSubCode(yieldOrder.getPartCode(), subPart.getPartCode()); DsPartRelationEntity partRelation = partRelationService.selectByPartCodeAndSubCode(yieldOrder.getPartCode(), subPart.getPartCode());
if(null != partRelation){ if (null != partRelation) {
if (DsPartConstant.SIN_TER_TYPE_SMM == subPart.getSinTerType() && partRelation.getQuota() != 0) { if (DsPartConstant.SIN_TER_TYPE_SMM == subPart.getSinTerType() && partRelation.getQuota() != 0) {
MoldDemand moldDemand = moldDemandMapper.selectOne(Wrappers.<MoldDemand>lambdaQuery().eq(MoldDemand::getToolCode, subPart.getPartCode()).eq(MoldDemand::getMafStatus, MoldDemandEnum.MAF_STATUS_CREATE.getCode())); MoldDemand moldDemand = moldDemandMapper.selectOne(Wrappers.<MoldDemand>lambdaQuery().eq(MoldDemand::getToolCode, subPart.getPartCode()).eq(MoldDemand::getMafStatus, MoldDemandEnum.MAF_STATUS_CREATE.getCode()));
if (moldDemand == null) { if (moldDemand == null) {
@ -813,7 +813,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
if (!sourceList.contains(targetName)) { if (!sourceList.contains(targetName)) {
moldDemand.setDemandSource(currentSource + "," + targetName); moldDemand.setDemandSource(currentSource + "," + targetName);
} }
}else { } else {
moldDemand.setDemandSource(MoldDemandEnum.BUSINESS_TYPE_ORDER_DEMAND.getName()); moldDemand.setDemandSource(MoldDemandEnum.BUSINESS_TYPE_ORDER_DEMAND.getName());
} }
moldDemandMapper.updateById(moldDemand); moldDemandMapper.updateById(moldDemand);
@ -864,7 +864,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
if (!sourceList.contains(targetName)) { if (!sourceList.contains(targetName)) {
moldDemand.setDemandSource(currentSource + "," + targetName); moldDemand.setDemandSource(currentSource + "," + targetName);
} }
}else { } else {
moldDemand.setDemandSource(MoldDemandEnum.BUSINESS_TYPE_ORDER_DEMAND.getName()); moldDemand.setDemandSource(MoldDemandEnum.BUSINESS_TYPE_ORDER_DEMAND.getName());
} }
moldDemandMapper.updateById(moldDemand); moldDemandMapper.updateById(moldDemand);
@ -1370,6 +1370,19 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
yieldOrder.setKitPreparationTime(new Date()); yieldOrder.setKitPreparationTime(new Date());
boolean b = this.updateById(yieldOrder); boolean b = this.updateById(yieldOrder);
if (b) { if (b) {
// 查询除玻璃饼外的子件订单(石墨模、插针、壳体)
List<YieldOrder> subOrders = this.list(Wrappers.lambdaQuery(YieldOrder.class).eq(YieldOrder::getFatherYoId, yieldOrder.getId()).ne(YieldOrder::getYieldType, YieldOrderEnum.YIELD_TYPE_3.getCode()));
if (CollectionUtils.isNotEmpty(subOrders)) {
// 调用出库接口
Long userId = AuthUtil.getUserId();
for (YieldOrder subOrder : subOrders) {
try {
wmsTaskClient.subOutRecord(subOrder.getPartCode(), subOrder.getBatchNo(), userId);
} catch (Exception e) {
log.error("子件订单[{}]出库失败:{}", subOrder.getCardNo(), e.getMessage());
}
}
}
// 订单接收 // 订单接收
this.confirm(yieldOrder.getCardNo(), "0"); this.confirm(yieldOrder.getCardNo(), "0");
} }
@ -1384,7 +1397,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
mesNotifyMessageClient.save(mesNotifyMessageEntity); mesNotifyMessageClient.save(mesNotifyMessageEntity);
} }
} catch (Exception e) { } catch (Exception e) {
log.error("齐套流转消息发送失败:{}" + e.getMessage()); log.error("齐套流转消息发送失败:{}", e.getMessage());
} }
return b; return b;
} }
@ -1580,14 +1593,14 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
if (null == yieldOrder) { if (null == yieldOrder) {
throw new ServiceException("未找到订单(" + cardNo + ")!"); throw new ServiceException("未找到订单(" + cardNo + ")!");
} }
if(yieldOrder.getReceiveStatus().equals(YieldOrderEnum.RECEIVE_STATUS_YES.getCode())){ if (yieldOrder.getReceiveStatus().equals(YieldOrderEnum.RECEIVE_STATUS_YES.getCode())) {
throw new ServiceException("订单已接收(" + cardNo + ")!"); throw new ServiceException("订单已接收(" + cardNo + ")!");
} }
if ("1".equals(mark)) { if ("1".equals(mark)) {
yieldOrder.setSiteWork(true); yieldOrder.setSiteWork(true);
} }
//校验订单是否是 急件维护 //校验订单是否是 急件维护
List<UrgentPart> urgentPartList = urgentPartService.selectByPlanNoAndPartCode(yieldOrder.getYpCode(),yieldOrder.getPartCode()); List<UrgentPart> urgentPartList = urgentPartService.selectByPlanNoAndPartCode(yieldOrder.getYpCode(), yieldOrder.getPartCode());
boolean isUrgent = false; boolean isUrgent = false;
if (CollectionUtils.isNotEmpty(urgentPartList)) { if (CollectionUtils.isNotEmpty(urgentPartList)) {
for (UrgentPart urgentPart : urgentPartList) { for (UrgentPart urgentPart : urgentPartList) {
@ -1768,7 +1781,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
try { try {
R<List<StGraphiteMoldOut>> listR = wmsTaskClient.generatePreOutOrder(stGraphiteMoldOutDTO); R<List<StGraphiteMoldOut>> listR = wmsTaskClient.generatePreOutOrder(stGraphiteMoldOutDTO);
} catch (Exception e) { } catch (Exception e) {
log.error("wms报错:{}",e.getMessage()); log.error("wms报错:{}", e.getMessage());
e.printStackTrace(); e.printStackTrace();
} }
} }
@ -2080,8 +2093,8 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
LambdaQueryWrapper<YieldOrder> queryWrapper = Wrappers.lambdaQuery(YieldOrder.class).eq(YieldOrder::getCardNo, entity.getCardNo()); LambdaQueryWrapper<YieldOrder> queryWrapper = Wrappers.lambdaQuery(YieldOrder.class).eq(YieldOrder::getCardNo, entity.getCardNo());
List<YieldOrder> yieldOrders = baseMapper.selectList(queryWrapper); List<YieldOrder> yieldOrders = baseMapper.selectList(queryWrapper);
if(CollectionUtils.isNotEmpty(yieldOrders)){ if (CollectionUtils.isNotEmpty(yieldOrders)) {
throw new ServiceException("订单已存在:{}" +entity.getCardNo()); throw new ServiceException("订单已存在:{}" + entity.getCardNo());
} }
entity.setCardNo(nextCardNo()); entity.setCardNo(nextCardNo());

Loading…
Cancel
Save