Browse Source

零担签收测试调整

training
kilo 1 year ago
parent
commit
838820e2e3
  1. 39
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java
  2. 36
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  3. 132
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java

39
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java

@ -278,22 +278,33 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
distributionAppStockArticleVO.setDistributionAppParcelListVOS(ks);
distributionAppStockArticleVO.setLoadingNub(loadingNum.get());
distributionAppStockArticleVO.setCompletecode(2);
distributionAppStockArticleVO.setComplete("部分齐套");
boolean abnormalFlag = ks.stream().anyMatch(k -> k.getScanStatus() == 3 && k.getIsScan().equals("异常"));
if (abnormalFlag) {
distributionAppStockArticleVO.setIsHaveAbnormalPackage(1);
distributionAppStockArticleVO.setIsHaveAbnormalPackageName("部分异常");
}
boolean unloadingFlag = ks.stream().anyMatch(k -> k.getScanStatus() == 1 && k.getIsScan().equals("未装"));
if (unloadingFlag) {
distributionAppStockArticleVO.setComplete("未齐套");
int loadNum = ks.stream().mapToInt(DistributionAppParcelListVO::getLoadingNum).sum();
if (loadNum == distributionAppStockArticleVO.getReservationNum() && distributionAppStockArticleVO.getReservationNum() >0) {
distributionAppStockArticleVO.setCompletecode(3);
distributionAppStockArticleVO.setComplete("齐套");
}else if (loadNum == 0){
distributionAppStockArticleVO.setCompletecode(1);
distributionAppStockArticleVO.setComplete("未装");
}else {
distributionAppStockArticleVO.setCompletecode(2);
distributionAppStockArticleVO.setComplete("未齐套");
}
boolean loadingFlag = ks.stream().anyMatch(k -> k.getScanStatus() == 2 && k.getIsScan().equals("齐套"));
if (loadingFlag){
distributionAppStockArticleVO.setCompletecode(3);
distributionAppStockArticleVO.setComplete("计划齐套");
}
// boolean abnormalFlag = ks.stream().anyMatch(k -> k.getScanStatus() == 3 && k.getIsScan().equals("异常"));
// if (abnormalFlag) {
// distributionAppStockArticleVO.setIsHaveAbnormalPackage(1);
// distributionAppStockArticleVO.setIsHaveAbnormalPackageName("部分异常");
// }
// boolean unloadingFlag = ks.stream().anyMatch(k -> k.getScanStatus() == 1 && k.getIsScan().equals("未装"));
// if (unloadingFlag) {
// distributionAppStockArticleVO.setCompletecode(1);
// distributionAppStockArticleVO.setComplete("未装");
// }
// boolean loadingFlag = ks.stream().anyMatch(k -> k.getScanStatus() == 2 && k.getIsScan().equals("齐套"));
// if (loadingFlag){
// distributionAppStockArticleVO.setCompletecode(3);
// distributionAppStockArticleVO.setComplete("计划齐套");
// }
}
distributionAppStockArticleVOS.add(distributionAppStockArticleVO);
if (Func.isNotEmpty(orderInfo.get(ord.getId()))) {
@ -390,6 +401,4 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
}
}

36
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java

@ -1357,6 +1357,8 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
}
loadscanEntity.setTrainNumber(distributionDeliveryListEntity.getTrainNumber());
distributionLoadscanService.save(loadscanEntity);
//更新装车数量
Integer j = distributionSignforMapper.updateloadByReservationId(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), loadscanEntity.getPackageNub());
BigDecimal handQuantity = new BigDecimal(parcelNumberVO.getHandQuantity());
BigDecimal reservationNum = new BigDecimal(parcelNumberVO.getReservationNum());
BigDecimal outboundQuantity = new BigDecimal(parcelNumberVO.getOutboundQuantity());
@ -1400,8 +1402,15 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
stockArticleEntity.setHandQuantity(stockArticleEntity.getHandQuantity() - parcelNumberVO.getReservationNum());
distributionStockArticleService.updateById(stockArticleEntity);
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId());
Integer j = distributionSignforMapper.updateloadByReservationId(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), loadscanEntity.getPackageNub());
//维护签收表装车数量
DistributionSignforEntity signforEntity = distributionSignforService.getOne(Wrappers.<DistributionSignforEntity>query().lambda().eq(DistributionSignforEntity::getDeliveryId, loadscanServiceOne.getDeliveryId()).eq(DistributionSignforEntity::getReservationId, loadscanServiceOne.getReservationId()));
if (Func.isEmpty(signforEntity)){
log.error("##################签收查询失败,预约ID:{}",loadscanServiceOne.getReservationId());
throw new RuntimeException("服务器正忙...");
}
BigDecimal loadedNumber = new BigDecimal(signforEntity.getLoadedNumber());
signforEntity.setLoadedNumber(loadedNumber.subtract(packageLoadingNub).add(reservationNum).intValue());
distributionSignforService.updateById(signforEntity);
//异步修改包件状态
distributionAsyncService.checkZeroStockArticleLoadingStatus(parcelNumberEntity);
}
@ -4660,10 +4669,22 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
//维护零担出库数量
DistributionLoadscanEntity loadscanEntity = loadscanEntities.get(0);
DistributionParcelNumberEntity parcelNumberEntity = zeroPackageMap.get(parcelListDTO.getParcelListId());
parcelNumberEntity.setDeliveryQuantity((parcelNumberEntity.getDeliveryQuantity() + loadscanEntity.getLoadedNub() - parcelListDTO.getLoadingNum()));
parcelNumberEntity.setOutboundQuantity((parcelNumberEntity.getOutboundQuantity() - loadscanEntity.getLoadedNub() + parcelListDTO.getLoadingNum()));
parcelNumberEntity.setHandQuantity(parcelNumberEntity.getHandQuantity() + loadscanEntity.getLoadedNub() - parcelListDTO.getLoadingNum());
BigDecimal deliveryQuantity = new BigDecimal(parcelNumberEntity.getDeliveryQuantity());
BigDecimal handQuantity = new BigDecimal(parcelNumberEntity.getHandQuantity());
BigDecimal loadedNub = new BigDecimal(loadscanEntity.getLoadedNub());
BigDecimal outboundQuantity = new BigDecimal(parcelNumberEntity.getOutboundQuantity());
BigDecimal loadedNum = new BigDecimal(parcelListDTO.getLoadingNum());
parcelNumberEntity.setDeliveryQuantity(deliveryQuantity.add(loadedNub).subtract(loadedNum).intValue());
parcelNumberEntity.setOutboundQuantity(outboundQuantity.subtract(loadedNub).add(loadedNum).intValue());
parcelNumberEntity.setHandQuantity(handQuantity.subtract(loadedNum).add(loadedNub).intValue());
distributionParcelNumberService.updateById(parcelNumberEntity);
//维护装车数量
DistributionSignforEntity signforEntity = distributionSignforService.getOne(Wrappers.<DistributionSignforEntity>query().lambda().eq(DistributionSignforEntity::getDeliveryId, loadscanEntity.getDeliveryId()).eq(DistributionSignforEntity::getReservationId, loadscanEntity.getReservationId()));
BigDecimal loadedNumber = new BigDecimal(signforEntity.getLoadedNumber());
signforEntity.setLoadedNumber(loadedNumber.add(loadedNum).subtract(loadedNub).intValue());
distributionSignforService.updateById(signforEntity);
loadscanEntity.setLoadedNub(parcelListDTO.getLoadingNum());
loadscanEntity.setPackageNub(parcelListDTO.getLoadingNum());
@ -4709,6 +4730,8 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
distributionLoadscanService.save(loadscanEntity);
//更新装车时间
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId());
//更新装车数量
Integer j = distributionSignforMapper.updateloadByReservationId(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), loadscanEntity.getPackageNub());
//维护零担品类的数量
DistributionParcelNumberEntity parcelNumberEntity = zeroPackageMap.get(parcelListDTO.getParcelListId());
parcelNumberEntity.setOutboundQuantity(parcelNumberEntity.getOutboundQuantity() + parcelListDTO.getLoadingNum());
@ -4757,6 +4780,9 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
distributionLoadscanService.save(loadscanEntity);
//更新装车时间
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId());
//更新装车数量
Integer j = distributionSignforMapper.updateloadByReservationId(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), loadscanEntity.getPackageNub());
//维护零担品类的数量
DistributionParcelNumberEntity parcelNumberEntity = zeroPackageMap.get(parcelListDTO.getParcelListId());
parcelNumberEntity.setOutboundQuantity(parcelNumberEntity.getOutboundQuantity() + parcelListDTO.getLoadingNum());

132
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java

@ -1359,11 +1359,19 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
BigDecimal handQuantity = new BigDecimal(distributionParcelNumberEntity.getHandQuantity());
BigDecimal outboundQuantity = new BigDecimal(distributionParcelNumberEntity.getOutboundQuantity());
BigDecimal loadedQuantity = new BigDecimal(distributionLoadscanEntity.getLoadedNub());
BigDecimal receivedQuantity = new BigDecimal(distributionLoadscanEntity.getReceivedQuantity());
if (distributionLoadscanEntity.getSignforState().equals(LoadScanSigningStatusConstant.yiqianshou.getValue())) {
// if (distributionLoadscanEntity.getReceivedQuantity() == ){
//
// }
//装车数量和签收数量只会一样,
if (distributionLoadscanEntity.getReceivedQuantity() > 0) {
distributionParcelNumberEntity.setSigninQuantity(signinQuantity.add(reservationNum).subtract(receivedQuantity).intValue());
distributionParcelNumberEntity.setHandQuantity(handQuantity.add(receivedQuantity).subtract(reservationNum).intValue());
distributionParcelNumberEntity.setOutboundQuantity(outboundQuantity.add(reservationNum).subtract(receivedQuantity).intValue());
distributionParcelNumberEntity.setDeliveryQuantity(deliveryQuantity.add(receivedQuantity).subtract(reservationNum).intValue());
distributionParcelNumberService.updateById(distributionParcelNumberEntity);
} else {
log.error("################扫描签收零担订单数量为0:{}", distributionLoadscanEntity);
return Resp.scanFail("服务器正忙...", "请稍后重试");
}
} else if (distributionLoadscanEntity.getSignforState().equals(LoadScanSigningStatusConstant.weiqianshou.getValue())) {
if (distributionLoadscanEntity.getLoadedNub() == parcelNumberEntity.getReservationNum()) {
@ -1373,29 +1381,34 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionParcelNumberService.updateById(distributionParcelNumberEntity);
} else {
if (distributionLoadscanEntity.getLoadedNub() > 0) {
//
distributionParcelNumberEntity.setSigninQuantity(signinQuantity.add(reservationNum).intValue());
distributionParcelNumberEntity.setHandQuantity(handQuantity.add(loadedQuantity).subtract(reservationNum).intValue());
distributionParcelNumberEntity.setOutboundQuantity(outboundQuantity.add(reservationNum).subtract(loadedQuantity).intValue());
distributionParcelNumberEntity.setDeliveryQuantity(deliveryQuantity.add(loadedQuantity).subtract(reservationNum).intValue());
distributionParcelNumberService.updateById(distributionParcelNumberEntity);
}
}
} else {
log.error("##################扫描签收状态异常:{}", distributionLoadscanEntity.getId());
throw new RuntimeException("服务器正忙...");
}
distributionParcelNumberEntity.setHandQuantity((distributionParcelNumberEntity.getHandQuantity() + distributionLoadscanEntity.getReceivedQuantity() - parcelNumberEntity.getReservationNum()));
distributionParcelNumberEntity.setOutboundQuantity(distributionParcelNumberEntity.getOutboundQuantity() - distributionLoadscanEntity.getReceivedQuantity() + parcelNumberEntity.getReservationNum());
distributionParcelNumberEntity.setSigninQuantity(distributionParcelNumberEntity.getSigninQuantity() - distributionLoadscanEntity.getReceivedQuantity() + parcelNumberEntity.getReservationNum());
distributionParcelNumberService.updateById(distributionParcelNumberEntity);
distributionLoadscanEntity.setReceivedQuantity(parcelNumberEntity.getReservationNum());
distributionLoadscanEntity.setLoadedNub(parcelNumberEntity.getReservationNum());
distributionLoadscanEntity.setPackageNub(parcelNumberEntity.getReservationNum());
distributionLoadscanEntity.setSignforState(LoadScanSigningStatusConstant.yiqianshou.getValue());
if (distributionSignfor.getIsClerk()) {
distributionLoadscanEntity.setMsg("文员一键签收数据补录");
} else {
distributionLoadscanEntity.setMsg("司机一键签收数据补录");
}
distributionLoadscanService.updateById(distributionLoadscanEntity);
//维护签收数量
DistributionSignforEntity signforEntity = distributionSignforMapper.selectOne(Wrappers.<DistributionSignforEntity>query().lambda().eq(DistributionSignforEntity::getDeliveryId, distributionLoadscanEntity.getDeliveryId()).eq(DistributionSignforEntity::getReservationId, distributionLoadscanEntity.getReservationId()));
BigDecimal loadedNumber = new BigDecimal(signforEntity.getLoadedNumber());
BigDecimal signingReceivedQuantity = new BigDecimal(signforEntity.getReceivedQuantity());
signforEntity.setLoadedNumber(loadedNumber.subtract(loadedQuantity).add(reservationNum).intValue());
signforEntity.setReceivedQuantity(signingReceivedQuantity.subtract(receivedQuantity).add(reservationNum).intValue());
distributionSignforMapper.updateById(signforEntity);
} else {
//不存在装车数据
DistributionLoadscanEntity loadscanEntity = new DistributionLoadscanEntity();
@ -2192,39 +2205,85 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
DistributionParcelNumberEntity parcelNumberEntity = distributionParcelNumberService.getOne(Wrappers.<DistributionParcelNumberEntity>query().lambda()
.eq(DistributionParcelNumberEntity::getParcelListId, p.getParcelListId()));
if (Func.isNotEmpty(loadscanEntityList)) {
BigDecimal handQuantity = new BigDecimal(parcelNumberEntity.getHandQuantity());
BigDecimal deliveryQuantity = new BigDecimal(parcelNumberEntity.getDeliveryQuantity());
BigDecimal outboundQuantity = new BigDecimal(parcelNumberEntity.getOutboundQuantity());
BigDecimal signinQuantity = new BigDecimal(parcelNumberEntity.getSigninQuantity());
BigDecimal loadedNub = new BigDecimal(loadscanEntityList.getLoadedNub());
BigDecimal receivedQuantity = new BigDecimal(loadscanEntityList.getReceivedQuantity());
BigDecimal signingNum = new BigDecimal(p.getSigningNum());
//判断是否进行装车
int newDeliveryQuantity = deliveryQuantity.add(loadedNub).subtract(signingNum).intValue();
int newOunBoundQuantity = outboundQuantity.subtract(loadedNub).add(signingNum).intValue();
int newHandQuantity = handQuantity.add(loadedNub).subtract(signingNum).intValue();
if (Func.equals(loadscanEntityList.getSignforState(), LoadScanSigningStatusConstant.weiqianshou.getValue())) {
if (p.getSigningNum() <= reservationZeroPackageEntity.getQuantity()) {
//修改
if (loadscanEntityList.getReceivedQuantity() != reservationZeroPackageEntity.getQuantity() && p.getSigningNum() != 0) {
//存在装车数据,这里对装车数据进行签收数据的填充
loadscanEntityList.setReceivedQuantity(p.getSigningNum());
loadscanEntityList.setSignforState(LoadScanSigningStatusConstant.yiqianshou.getValue());
loadscanEntityList.setSigningTime(simpleDateFormat.format(new Date()));
loadscanEntityList.setSigningUser(AuthUtil.getUser().getUserName());
loadscanEntityList.setSigningUserId(AuthUtil.getUser().getUserId());
distributionLoadscanService.updateById(loadscanEntityList);
parcelNumberEntity.setSigninQuantity(parcelNumberEntity.getSigninQuantity() + loadscanEntityList.getReceivedQuantity());
} else {
log.error("########################实际签收数:" + p.getSigningNum() + "超过计划数:{}", reservationZeroPackageEntity.getQuantity());
throw new RuntimeException("请核对计划数量!!!");
if (loadscanEntityList.getReceivedQuantity() <= reservationZeroPackageEntity.getQuantity()) {
if (p.getSigningNum() > 0) {
//存在装车数据,这里对装车数据进行签收数据的填充
loadscanEntityList.setReceivedQuantity(p.getSigningNum());
loadscanEntityList.setSignforState(LoadScanSigningStatusConstant.yiqianshou.getValue());
loadscanEntityList.setSigningTime(simpleDateFormat.format(new Date()));
loadscanEntityList.setSigningUser(AuthUtil.getUser().getUserName());
loadscanEntityList.setSigningUserId(AuthUtil.getUser().getUserId());
//维护装车数量
if (p.getSigningNum() > loadscanEntityList.getLoadedNub()) {
DistributionSignforEntity signforEntity = distributionSignforMapper.selectOne(Wrappers.<DistributionSignforEntity>query().lambda().eq(DistributionSignforEntity::getDeliveryId, loadscanEntityList.getDeliveryId()).eq(DistributionSignforEntity::getReservationId, loadscanEntityList.getReservationId()));
BigDecimal loadedNumber = new BigDecimal(signforEntity.getLoadedNumber());
BigDecimal signingNumber = new BigDecimal(signforEntity.getReceivedQuantity());
loadscanEntityList.setLoadedNub(p.getSigningNum());
loadscanEntityList.setPackageNub(p.getSigningNum());
loadscanEntityList.setMsg("签收数量大于装车数");
parcelNumberEntity.setDeliveryQuantity(newDeliveryQuantity);
parcelNumberEntity.setOutboundQuantity(newOunBoundQuantity);
parcelNumberEntity.setHandQuantity(newHandQuantity);
signforEntity.setLoadedNumber(loadedNumber.subtract(loadedNub).add(signingNum).intValue());
signforEntity.setReceivedQuantity(signingNumber.add(signingNum).intValue());
distributionSignforMapper.updateById(signforEntity);
} else {
Integer j = distributionSignforMapper.updateSignforNum(loadscanEntityList.getDeliveryId(), loadscanEntityList.getReservationId(), loadscanEntityList.getPackageNub());
}
parcelNumberEntity.setSigninQuantity(signinQuantity.add(signingNum).intValue());
distributionLoadscanService.updateById(loadscanEntityList);
distributionParcelNumberService.updateById(parcelNumberEntity);
}
}
}
} else {
if (p.getSigningNum() <= reservationZeroPackageEntity.getQuantity()) {
if (p.getSigningNum() > 0){
if (p.getSigningNum() >= 0) {
//修改
if (loadscanEntityList.getReceivedQuantity() != reservationZeroPackageEntity.getQuantity() && p.getSigningNum() != 0) {
if (loadscanEntityList.getReceivedQuantity() <= reservationZeroPackageEntity.getQuantity()) {
//存在签收数据,这里对签收的数量进行修改,修改不得超过计划数
parcelNumberEntity.setSigninQuantity((parcelNumberEntity.getSigninQuantity() + p.getSigningNum() - loadscanEntityList.getReceivedQuantity()));
loadscanEntityList.setReceivedQuantity(p.getSigningNum());
loadscanEntityList.setReceivedQuantity(signingNum.intValue());
parcelNumberEntity.setSigninQuantity(signinQuantity.subtract(receivedQuantity).add(signingNum).intValue());
if (loadscanEntityList.getLoadedNub() < p.getSigningNum()){
//这里需要同时维护装车和签收数量
loadscanEntityList.setLoadedNub(p.getSigningNum());
loadscanEntityList.setPackageNub(p.getSigningNum());
loadscanEntityList.setLoadedNub(p.getSigningNum());
loadscanEntityList.setPackageNub(p.getSigningNum());
loadscanEntityList.setMsg("签收数量大于装车数");
parcelNumberEntity.setDeliveryQuantity(newDeliveryQuantity);
parcelNumberEntity.setOutboundQuantity(newOunBoundQuantity);
parcelNumberEntity.setHandQuantity(newHandQuantity);
}
if (p.getSigningNum() == 0) {
//签收状态
loadscanEntityList.setSignforState(LoadScanSigningStatusConstant.weiqianshou.getValue());
}
DistributionSignforEntity signforEntity = distributionSignforMapper.selectOne(Wrappers.<DistributionSignforEntity>query().lambda().eq(DistributionSignforEntity::getDeliveryId, loadscanEntityList.getDeliveryId()).eq(DistributionSignforEntity::getReservationId, loadscanEntityList.getReservationId()));
BigDecimal loadedNumber = new BigDecimal(signforEntity.getLoadedNumber());
BigDecimal signingNumber = new BigDecimal(signforEntity.getReceivedQuantity());
signforEntity.setLoadedNumber(loadedNumber.subtract(loadedNub).add(signingNum).intValue());
signforEntity.setReceivedQuantity(signingNumber.subtract(receivedQuantity).add(signingNum).intValue());
distributionSignforMapper.updateById(signforEntity);
distributionLoadscanService.updateById(loadscanEntityList);
//这里需要维护签收数量和该品类的签收数量
distributionParcelNumberService.updateById(parcelNumberEntity);
}
}
} else {
log.error("########################实际签收数:" + p.getSigningNum() + "超过计划数:{}", reservationZeroPackageEntity.getQuantity());
throw new RuntimeException("请核对计划数量!!!");
}
}
} else {
@ -2284,9 +2343,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
parcelNumberEntity.setHandQuantity(handQuantity.subtract(signNum).intValue());
parcelNumberEntity.setDeliveryQuantity(deliveryQuantity.subtract(signNum).intValue());
parcelNumberEntity.setOutboundQuantity(outboundQuantity.add(signNum).intValue());
} else {
log.error("########################实际签收数:" + p.getSigningNum() + "超过计划数:{}", reservationZeroPackageEntity.getQuantity());
throw new RuntimeException("请核对计划数量!!!");
}
}
}

Loading…
Cancel
Save