|
|
|
@ -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("请核对计划数量!!!"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|