齐套流转后调用子件出库

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

Loading…
Cancel
Save