|
|
|
@ -104,6 +104,7 @@ import java.text.ParseException;
|
|
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
|
import java.util.*; |
|
|
|
|
import java.util.concurrent.atomic.AtomicInteger; |
|
|
|
|
import java.util.concurrent.atomic.AtomicReference; |
|
|
|
|
import java.util.function.Function; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
@ -5261,181 +5262,168 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
.eq(DistributionDeliveryTripartiteEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId())); |
|
|
|
|
BeanUtils.copyProperties(distributionDeliveryTripartiteEntity, distributionDeliverySelfEntity); |
|
|
|
|
} |
|
|
|
|
DistributionDeliveryListEntity listEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
if (Func.isEmpty(listEntity)) { |
|
|
|
|
log.error("##########配送计划异常:{}", listEntity); |
|
|
|
|
if (Func.isEmpty(deliveryListEntity)) { |
|
|
|
|
log.error("##########配送计划异常:{}", deliveryListEntity); |
|
|
|
|
return Resp.scanFail("服务器正忙...", "服务器正忙"); |
|
|
|
|
} |
|
|
|
|
Integer loadingNumber = 0 ; |
|
|
|
|
Integer signingNumber = 0 ; |
|
|
|
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); |
|
|
|
|
DistributionDeliverySelfEntity finalDistributionDeliverySelfEntity = distributionDeliverySelfEntity; |
|
|
|
|
parcelNumberDTOS.forEach(p -> { |
|
|
|
|
DistributionLoadscanEntity loadscanEntityList = distributionLoadscanService.getOne(Wrappers.<DistributionLoadscanEntity>query().lambda() |
|
|
|
|
// DistributionDeliverySelfEntity finalDistributionDeliverySelfEntity = distributionDeliverySelfEntity;
|
|
|
|
|
List<String> orderCodes = new ArrayList<>(); |
|
|
|
|
BladeUser user = AuthUtil.getUser(); |
|
|
|
|
DistributionSignforEntity signforEntity = distributionSignforMapper.selectOne(Wrappers.<DistributionSignforEntity>query().lambda() |
|
|
|
|
.eq(DistributionSignforEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId()) |
|
|
|
|
.eq(DistributionSignforEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId())); |
|
|
|
|
//查询零担装车
|
|
|
|
|
|
|
|
|
|
if (!parcelNumberDTOS.isEmpty()){ |
|
|
|
|
List<Long> packageIds = parcelNumberDTOS.stream().map(DistributionParcelNumberDTO::getParcelListId).collect(Collectors.toList()); |
|
|
|
|
List<DistributionLoadscanEntity> loadscanEntityList = distributionLoadscanService.list(Wrappers.<DistributionLoadscanEntity>query().lambda() |
|
|
|
|
.eq(DistributionLoadscanEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId()) |
|
|
|
|
.eq(DistributionLoadscanEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId()) |
|
|
|
|
.eq(DistributionLoadscanEntity::getOrderId, distrilbutionloadingscanDTO.getOrderId()) |
|
|
|
|
.eq(DistributionLoadscanEntity::getPackageId, p.getParcelListId()) |
|
|
|
|
.in(DistributionLoadscanEntity::getPackageId, packageIds) |
|
|
|
|
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())); |
|
|
|
|
Map<Long, List<DistributionLoadscanEntity>> loadingMap = null; |
|
|
|
|
Map<Long, List<DistributionReservationZeroPackageEntity>> reservationMap = null; |
|
|
|
|
if (!loadscanEntityList.isEmpty()){ |
|
|
|
|
loadingMap = loadscanEntityList.stream().collect(Collectors.groupingBy(DistributionLoadscanEntity::getPackageId)); |
|
|
|
|
} |
|
|
|
|
//查询对应的计划品类
|
|
|
|
|
DistributionReservationZeroPackageEntity reservationZeroPackageEntity = distributionReservationZeroPackageService.getOne(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda() |
|
|
|
|
List<DistributionReservationZeroPackageEntity> reservationZeroPackageEntity = distributionReservationZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda() |
|
|
|
|
.eq(DistributionReservationZeroPackageEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId()) |
|
|
|
|
.eq(DistributionReservationZeroPackageEntity::getStockArticleId, p.getStockArticleId()) |
|
|
|
|
.eq(DistributionReservationZeroPackageEntity::getParcelListId, p.getParcelListId()) |
|
|
|
|
.in(DistributionReservationZeroPackageEntity::getParcelListId, packageIds) |
|
|
|
|
.ne(DistributionReservationZeroPackageEntity::getZeroPackageStatus, ReservationPackageStatusConstant.quxiao.getValue())); |
|
|
|
|
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()) { |
|
|
|
|
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.setSigningUser(AuthUtil.getUser().getNickName()); |
|
|
|
|
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); |
|
|
|
|
distributionAsyncService.checkSignStatus(loadscanEntityList.getPackageId(), loadscanEntityList.getReservationId(), loadscanEntityList.getDeliveryId()); |
|
|
|
|
if (!reservationZeroPackageEntity.isEmpty()){ |
|
|
|
|
reservationMap = reservationZeroPackageEntity.stream().collect(Collectors.groupingBy(DistributionReservationZeroPackageEntity::getParcelListId)); |
|
|
|
|
} |
|
|
|
|
for (DistributionParcelNumberDTO parcelNumberDTO : parcelNumberDTOS) { |
|
|
|
|
List<DistributionReservationZeroPackageEntity> zeroPackageEntities = reservationMap.get(parcelNumberDTO.getParcelListId()); |
|
|
|
|
DistributionParcelNumberEntity distributionParcelNumberEntity = distributionParcelNumberService.getOne(Wrappers.<DistributionParcelNumberEntity>query().lambda() |
|
|
|
|
.eq(DistributionParcelNumberEntity::getParcelListId, parcelNumberDTO.getParcelListId()) |
|
|
|
|
); |
|
|
|
|
DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(parcelNumberDTO.getParcelListId()); |
|
|
|
|
orderCodes.add(parcelListEntity.getOrderCode()); |
|
|
|
|
packageLockIds.add(parcelListEntity.getId()); |
|
|
|
|
if (zeroPackageEntities.size() == 1){ |
|
|
|
|
DistributionReservationZeroPackageEntity distributionReservationZeroPackageEntity = zeroPackageEntities.get(0); |
|
|
|
|
//查询是否存在装车
|
|
|
|
|
Integer deliveryNumber = 0 ; |
|
|
|
|
Integer handQuantity = 0 ; |
|
|
|
|
Integer outboundQuantity = 0 ; |
|
|
|
|
Integer signinQuantity = 0 ; |
|
|
|
|
|
|
|
|
|
if (Func.isNotEmpty(loadingMap)){ |
|
|
|
|
//存在装车数据,进行是否签收判断
|
|
|
|
|
List<DistributionLoadscanEntity> entityList = loadingMap.get(parcelNumberDTO.getParcelListId()); |
|
|
|
|
if (entityList.size() == 1){ |
|
|
|
|
DistributionLoadscanEntity distributionLoadscanEntity = entityList.get(0); |
|
|
|
|
if (parcelNumberDTO.getSigningNum() > distributionReservationZeroPackageEntity.getQuantity()){ |
|
|
|
|
log.info("#############零担签收超过计划数量ParcelListId:{},计划:{}录入,:{}",parcelNumberDTO.getParcelListId(),distributionReservationZeroPackageEntity.getQuantity(),parcelNumberDTO.getSigningNum()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
if (p.getSigningNum() <= reservationZeroPackageEntity.getQuantity()) { |
|
|
|
|
if (p.getSigningNum() >= 0) { |
|
|
|
|
//修改
|
|
|
|
|
if (loadscanEntityList.getReceivedQuantity() <= reservationZeroPackageEntity.getQuantity()) { |
|
|
|
|
//存在签收数据,这里对签收的数量进行修改,修改不得超过计划数
|
|
|
|
|
loadscanEntityList.setReceivedQuantity(signingNum.intValue()); |
|
|
|
|
parcelNumberEntity.setSigninQuantity(signinQuantity.subtract(receivedQuantity).add(signingNum).intValue()); |
|
|
|
|
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()); |
|
|
|
|
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); |
|
|
|
|
signforEntity.setLoadedNumber(loadedNumber.subtract(loadedNub).add(signingNum).intValue()); |
|
|
|
|
} |
|
|
|
|
if (p.getSigningNum() == 0) { |
|
|
|
|
//签收状态
|
|
|
|
|
loadscanEntityList.setSignforState(LoadScanSigningStatusConstant.weiqianshou.getValue()); |
|
|
|
|
} |
|
|
|
|
signforEntity.setReceivedQuantity(signingNumber.subtract(receivedQuantity).add(signingNum).intValue()); |
|
|
|
|
distributionSignforMapper.updateById(signforEntity); |
|
|
|
|
distributionLoadscanService.updateById(loadscanEntityList); |
|
|
|
|
distributionAsyncService.checkSignStatus(loadscanEntityList.getPackageId(), loadscanEntityList.getReservationId(), loadscanEntityList.getDeliveryId()); |
|
|
|
|
|
|
|
|
|
distributionParcelNumberService.updateById(parcelNumberEntity); |
|
|
|
|
int i1 =parcelNumberDTO.getSigningNum() - distributionLoadscanEntity.getReceivedQuantity() ; |
|
|
|
|
signingNumber += i1; |
|
|
|
|
int i2 = parcelNumberDTO.getSigningNum() -distributionLoadscanEntity.getLoadedNub() ; |
|
|
|
|
loadingNumber += i2; |
|
|
|
|
if (distributionLoadscanEntity.getLoadedNub() < parcelNumberDTO.getSigningNum()){ |
|
|
|
|
//将装车和签收进行统一数量
|
|
|
|
|
distributionLoadscanEntity.setLoadedNub(parcelNumberDTO.getSigningNum()); |
|
|
|
|
distributionLoadscanEntity.setPackageNub(parcelNumberDTO.getSigningNum()); |
|
|
|
|
} |
|
|
|
|
deliveryNumber = distributionParcelNumberEntity.getDeliveryQuantity() + distributionLoadscanEntity.getReceivedQuantity() - parcelNumberDTO.getSigningNum(); |
|
|
|
|
handQuantity = distributionParcelNumberEntity.getHandQuantity() + distributionLoadscanEntity.getReceivedQuantity() - parcelNumberDTO.getSigningNum(); |
|
|
|
|
outboundQuantity = distributionParcelNumberEntity.getOutboundQuantity() - distributionLoadscanEntity.getReceivedQuantity() + parcelNumberDTO.getSigningNum(); |
|
|
|
|
signinQuantity = distributionParcelNumberEntity.getSigninQuantity() - distributionLoadscanEntity.getReceivedQuantity() + parcelNumberDTO.getSigningNum(); |
|
|
|
|
|
|
|
|
|
distributionLoadscanEntity.setReceivedQuantity(parcelNumberDTO.getSigningNum()); |
|
|
|
|
distributionLoadscanEntity.setSignforState(LoadScanSigningStatusConstant.yiqianshou.getValue()); |
|
|
|
|
distributionLoadscanEntity.setScanTime(simpleDateFormat.format(new Date())); |
|
|
|
|
distributionLoadscanEntity.setSigningUser(user.getNickName()); |
|
|
|
|
//进行签收数量的统计
|
|
|
|
|
int i = signforEntity.getReceivedQuantity() - distributionLoadscanEntity.getReceivedQuantity() + parcelNumberDTO.getSigningNum(); |
|
|
|
|
distributionLoadscanService.updateById(distributionLoadscanEntity); |
|
|
|
|
}else { |
|
|
|
|
log.info("#############零担签收存在多个装车记录ParcelListId:{}",parcelNumberDTO.getParcelListId()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
if (p.getSigningNum() <= reservationZeroPackageEntity.getQuantity()) { |
|
|
|
|
if (p.getSigningNum() > 0) { |
|
|
|
|
//无装车数据
|
|
|
|
|
}else { |
|
|
|
|
//签收装车数据一起进行补录
|
|
|
|
|
DistributionLoadscanEntity loadscanEntity = new DistributionLoadscanEntity(); |
|
|
|
|
if (StringUtils.isNotBlank(finalDistributionDeliverySelfEntity.getDriverPhone())) { |
|
|
|
|
loadscanEntity.setDriverPhone(finalDistributionDeliverySelfEntity.getDriverPhone()); |
|
|
|
|
} |
|
|
|
|
if (StringUtils.isNotBlank(finalDistributionDeliverySelfEntity.getVehicleNub())) { |
|
|
|
|
loadscanEntity.setVehicleName(finalDistributionDeliverySelfEntity.getVehicleNub()); |
|
|
|
|
loadscanEntity.setPackageId(distributionParcelNumberEntity.getParcelListId()); |
|
|
|
|
loadscanEntity.setOrderId(distributionParcelNumberEntity.getStockArticleId()); |
|
|
|
|
loadscanEntity.setDeliveryId(signforEntity.getDeliveryId()); |
|
|
|
|
loadscanEntity.setReservationId(signforEntity.getReservationId()); |
|
|
|
|
loadscanEntity.setScanUser(user.getNickName()); |
|
|
|
|
loadscanEntity.setScanTime(simpleDateFormat.format(new Date())); |
|
|
|
|
loadscanEntity.setSigningUser(user.getNickName()); |
|
|
|
|
loadscanEntity.setPackageNub(distributionReservationZeroPackageEntity.getQuantity()); |
|
|
|
|
loadscanEntity.setLoadedNub(distributionReservationZeroPackageEntity.getQuantity()); |
|
|
|
|
loadscanEntity.setSigningUserId(user.getUserId()); |
|
|
|
|
assert distributionDeliverySelfEntity != null; |
|
|
|
|
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverId())) { |
|
|
|
|
loadscanEntity.setDriverId(distributionDeliverySelfEntity.getDriverId()); |
|
|
|
|
} |
|
|
|
|
if (StringUtils.isNotBlank(finalDistributionDeliverySelfEntity.getDriverId())) { |
|
|
|
|
loadscanEntity.setDriverId(finalDistributionDeliverySelfEntity.getDriverId()); |
|
|
|
|
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverName())) { |
|
|
|
|
loadscanEntity.setDriverName(distributionDeliverySelfEntity.getDriverName()); |
|
|
|
|
} |
|
|
|
|
if (Func.isNotEmpty(finalDistributionDeliverySelfEntity.getId())) { |
|
|
|
|
loadscanEntity.setLoadingId(finalDistributionDeliverySelfEntity.getId().toString()); |
|
|
|
|
if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleId())) { |
|
|
|
|
loadscanEntity.setVehicleId(distributionDeliverySelfEntity.getVehicleId()); |
|
|
|
|
} |
|
|
|
|
if (Func.isNotEmpty(finalDistributionDeliverySelfEntity.getDriverName())) { |
|
|
|
|
loadscanEntity.setDriverName(finalDistributionDeliverySelfEntity.getDriverName()); |
|
|
|
|
if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleNub())) { |
|
|
|
|
loadscanEntity.setVehicleName(distributionDeliverySelfEntity.getVehicleNub()); |
|
|
|
|
} |
|
|
|
|
if (StringUtils.isNotBlank(finalDistributionDeliverySelfEntity.getVehicleId())) { |
|
|
|
|
loadscanEntity.setVehicleId(finalDistributionDeliverySelfEntity.getVehicleId()); |
|
|
|
|
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverPhone())) { |
|
|
|
|
loadscanEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone()); |
|
|
|
|
} |
|
|
|
|
loadscanEntity.setScanTime(simpleDateFormat.format(new Date())); |
|
|
|
|
loadscanEntity.setScanStatus("3"); |
|
|
|
|
loadscanEntity.setScanState(1); |
|
|
|
|
loadscanEntity.setLoadingId(distributionDeliverySelfEntity.getId().toString()); |
|
|
|
|
loadscanEntity.setScanStatus(LoadingStatusConstant.buluzhuangche.getValue()); |
|
|
|
|
loadscanEntity.setIsInsert(LoadingIsInsertConstant.bulu.getValue()); |
|
|
|
|
loadscanEntity.setScanType("1"); |
|
|
|
|
loadscanEntity.setType(2); |
|
|
|
|
loadscanEntity.setSignforState(LoadScanSigningStatusConstant.yiqianshou.getValue()); |
|
|
|
|
loadscanEntity.setIsSignfor(1); |
|
|
|
|
loadscanEntity.setReceivedQuantity(distributionReservationZeroPackageEntity.getQuantity()); |
|
|
|
|
loadscanEntity.setOneClick(2); |
|
|
|
|
loadscanEntity.setOneQclick(2); |
|
|
|
|
loadscanEntity.setSigningTime(simpleDateFormat.format(new Date())); |
|
|
|
|
loadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId()); |
|
|
|
|
loadscanEntity.setIsSignfor(2); |
|
|
|
|
loadscanEntity.setIsInsert(2); |
|
|
|
|
//订单签收
|
|
|
|
|
loadscanEntity.setScanType("3"); |
|
|
|
|
loadscanEntity.setTrainNumber(deliveryListEntity.getTrainNumber()); |
|
|
|
|
loadscanEntity.setSignforState(2); |
|
|
|
|
loadscanEntity.setPackageNub(p.getSigningNum()); |
|
|
|
|
loadscanEntity.setPackageId(p.getParcelListId()); |
|
|
|
|
loadscanEntity.setLoadedNub(p.getSigningNum()); |
|
|
|
|
loadscanEntity.setReceivedQuantity(p.getSigningNum()); |
|
|
|
|
loadscanEntity.setOrderId(p.getStockArticleId()); |
|
|
|
|
loadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId()); |
|
|
|
|
loadscanEntity.setDeliveryId(deliveryListEntity.getId()); |
|
|
|
|
loadscanEntity.setScanUser(AuthUtil.getUser().getNickName()); |
|
|
|
|
// loadscanEntity.setScanUser(AuthUtil.getUser().getUserName());
|
|
|
|
|
// loadscanEntity.setSigningUser(AuthUtil.getUser().getUserName());
|
|
|
|
|
loadscanEntity.setSigningUser(AuthUtil.getUser().getNickName()); |
|
|
|
|
loadscanEntity.setSigningUserId(AuthUtil.getUser().getUserId()); |
|
|
|
|
distributionLoadscanService.save(loadscanEntity); |
|
|
|
|
distributionAsyncService.checkSignStatus(loadscanEntity.getPackageId(), loadscanEntity.getReservationId(), loadscanEntity.getDeliveryId()); |
|
|
|
|
//进行签收数量的修改
|
|
|
|
|
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
//更新装车包件数和签收包件数
|
|
|
|
|
Integer j = distributionSignforMapper.updateSignforByReservationId(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), loadscanEntity.getPackageNub()); |
|
|
|
|
//更新签收人
|
|
|
|
|
Integer k = distributionSignforMapper.updateSignUser(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), AuthUtil.getUser()); |
|
|
|
|
//这里需要维护
|
|
|
|
|
BigDecimal deliveryQuantity = new BigDecimal(parcelNumberEntity.getDeliveryQuantity()); |
|
|
|
|
BigDecimal outboundQuantity = new BigDecimal(parcelNumberEntity.getOutboundQuantity()); |
|
|
|
|
BigDecimal handQuantity = new BigDecimal(parcelNumberEntity.getHandQuantity()); |
|
|
|
|
BigDecimal signNum = new BigDecimal(p.getSigningNum()); |
|
|
|
|
parcelNumberEntity.setHandQuantity(handQuantity.subtract(signNum).intValue()); |
|
|
|
|
parcelNumberEntity.setDeliveryQuantity(deliveryQuantity.subtract(signNum).intValue()); |
|
|
|
|
parcelNumberEntity.setOutboundQuantity(outboundQuantity.add(signNum).intValue()); |
|
|
|
|
packageLockIds.add(loadscanEntity.getPackageId()); |
|
|
|
|
loadingNumber += loadscanEntity.getLoadedNub(); |
|
|
|
|
signingNumber += loadscanEntity.getReceivedQuantity(); |
|
|
|
|
//维护零担品类信息
|
|
|
|
|
deliveryNumber = distributionParcelNumberEntity.getDeliveryQuantity() - parcelNumberDTO.getSigningNum(); |
|
|
|
|
handQuantity = distributionParcelNumberEntity.getHandQuantity() - parcelNumberDTO.getSigningNum(); |
|
|
|
|
outboundQuantity = distributionParcelNumberEntity.getOutboundQuantity() + parcelNumberDTO.getSigningNum(); |
|
|
|
|
signinQuantity = distributionParcelNumberEntity.getSigninQuantity() + parcelNumberDTO.getSigningNum(); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
//维护订单
|
|
|
|
|
if (outboundQuantity == distributionParcelNumberEntity.getQuantity()){ |
|
|
|
|
parcelListEntity.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue()); |
|
|
|
|
} |
|
|
|
|
if (handQuantity == 0){ |
|
|
|
|
parcelListEntity.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue()); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
if (signingNumber == distributionParcelNumberEntity.getQuantity()){ |
|
|
|
|
parcelListEntity.setOrderPackageStatus(OrderPackageStatusConstant.yiqianshou.getValue()); |
|
|
|
|
} |
|
|
|
|
distributionParcelListService.updateById(parcelListEntity); |
|
|
|
|
|
|
|
|
|
DistributionParcelNumberEntity parcelNumberEntity = new DistributionParcelNumberEntity(); |
|
|
|
|
parcelNumberEntity.setId(distributionParcelNumberEntity.getId()); |
|
|
|
|
parcelNumberEntity.setDeliveryQuantity(deliveryNumber); |
|
|
|
|
parcelNumberEntity.setOutboundQuantity(outboundQuantity); |
|
|
|
|
parcelNumberEntity.setSigninQuantity(signinQuantity); |
|
|
|
|
parcelNumberEntity.setHandQuantity(handQuantity); |
|
|
|
|
distributionParcelNumberService.updateById(parcelNumberEntity); |
|
|
|
|
}else { |
|
|
|
|
log.info("#############零担签收查询计划错误ParcelListId:{}",parcelNumberDTO.getParcelListId()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
distributionParcelNumberService.updateById(parcelNumberEntity); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
signforEntity.setLoadedNumber(signforEntity.getLoadedNumber() + loadingNumber); |
|
|
|
|
signforEntity.setReceivedQuantity(signforEntity.getReceivedQuantity() + signingNumber); |
|
|
|
|
distributionSignforMapper.updateById(signforEntity); |
|
|
|
|
if (!packageLockIds.isEmpty()) { |
|
|
|
|
List<Long> a = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + deliveryListEntity.getTrainNumber() + "orderPackageCode:"); |
|
|
|
|
if (Func.isNotEmpty(a)) { |
|
|
|
@ -5451,6 +5439,10 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + deliveryListEntity.getTrainNumber() + "orderPackageCode:", packageLockIds, 10L); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (!orderCodes.isEmpty()){ |
|
|
|
|
String collect = orderCodes.stream().collect(Collectors.joining(",")); |
|
|
|
|
distributionStockArticleService.maintenanceOrderInfo(collect,myCurrentWarehouse.getId()); |
|
|
|
|
} |
|
|
|
|
String str = checkSignNum(distrilbutionloadingscanDTO); |
|
|
|
|
return Resp.scanSuccess("签收成功", str); |
|
|
|
|
} |
|
|
|
|