|
|
|
@ -77,6 +77,7 @@ import org.springblade.common.utils.CommonUtil;
|
|
|
|
|
import org.springblade.common.utils.FileUtil; |
|
|
|
|
import org.springblade.common.utils.GaoDeApiUtil; |
|
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
|
import org.springblade.core.redis.cache.BladeRedis; |
|
|
|
|
import org.springblade.core.secure.BladeUser; |
|
|
|
|
import org.springblade.core.secure.utils.AuthUtil; |
|
|
|
|
import org.springblade.core.tool.api.R; |
|
|
|
@ -208,6 +209,9 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
@Autowired |
|
|
|
|
private IUserClient userClient; |
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
private BladeRedis bladeRedis; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public IPage<DistributionSignforVO> selectDistributionSignforPage(IPage<DistributionSignforVO> page, DistributionSignforVO distributionSignfor) { |
|
|
|
@ -2059,7 +2063,11 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
if (Objects.isNull(myCurrentWarehouse)) { |
|
|
|
|
return R.fail(403, "仓库信息不能为空"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListService.getById(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
if (Objects.isNull(myCurrentWarehouse)) { |
|
|
|
|
return R.fail(403, "配送任务错误"); |
|
|
|
|
} |
|
|
|
|
List<Long> packageLockIds = new ArrayList<>(); |
|
|
|
|
try { |
|
|
|
|
|
|
|
|
|
nickName = AuthUtil.getNickName(); |
|
|
|
@ -2114,7 +2122,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
loadscanEntity.setSigningTime(simpleDateFormat.format(new Date())); |
|
|
|
|
loadscanEntity.setSignforState(2); |
|
|
|
|
loadscanEntity.setReceivedQuantity(loadscanEntity.getLoadedNub()); |
|
|
|
|
|
|
|
|
|
packageLockIds.add(loadscanEntity.getPackageId()); |
|
|
|
|
|
|
|
|
|
loadscanEntity.setSigningUser(nickName); |
|
|
|
|
loadscanEntity.setSigningUserId(userId); |
|
|
|
@ -2131,7 +2139,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
//维护订单状态
|
|
|
|
|
} else { |
|
|
|
|
//这里装车的数据需要进行补录
|
|
|
|
|
DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
// DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId());
|
|
|
|
|
DistributionDeliverySelfEntity distributionDeliverySelfEntity = new DistributionDeliverySelfDTO(); |
|
|
|
|
if (deliveryListEntity.getKind().equals(ServiceConstant.DELIVERLIST_KIND_SELF)) { |
|
|
|
|
distributionDeliverySelfEntity = distributionDeliverySelfMapper.selectOne(new QueryWrapper<DistributionDeliverySelfEntity>().lambda() |
|
|
|
@ -2197,6 +2205,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
Integer m = distributionSignforMapper.updateSignUser(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), AuthUtil.getUser()); |
|
|
|
|
//包件解托下架
|
|
|
|
|
warehouseUpdownTypeClient.downPackageOrDelTray(collect.get(0).getOrderPackageCode(), myCurrentWarehouse.getId(),"签收下架解托"); |
|
|
|
|
packageLockIds.add(distributionLoadscanEntity.getPackageId()); |
|
|
|
|
} |
|
|
|
|
//修改包件状态为装车、签收
|
|
|
|
|
DistributionParcelListEntity updatePackage = collect.get(0); |
|
|
|
@ -2249,6 +2258,21 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
//一个客户下出现重复包条码
|
|
|
|
|
log.error("############出现重复包条码:{}", collect); |
|
|
|
|
} |
|
|
|
|
if (!packageLockIds.isEmpty()){ |
|
|
|
|
List<Long> a = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + deliveryListEntity.getTrainNumber() + "orderPackageCode:" + packageLockIds); |
|
|
|
|
if (Func.isNotEmpty(a)){ |
|
|
|
|
boolean flag = a.stream().anyMatch(any -> packageLockIds.contains(any)); |
|
|
|
|
if (flag){ |
|
|
|
|
//正在操作,请稍后重试
|
|
|
|
|
throw new RuntimeException("该包件正在被操作,请稍后再试!!!"); |
|
|
|
|
}else { |
|
|
|
|
packageLockIds.addAll(a); |
|
|
|
|
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + deliveryListEntity.getTrainNumber() + "orderPackageCode:" + packageLockIds,packageLockIds,10L); |
|
|
|
|
} |
|
|
|
|
}else { |
|
|
|
|
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + deliveryListEntity.getTrainNumber() + "orderPackageCode:" + packageLockIds,packageLockIds,10L); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -2305,6 +2329,11 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
.in(DistributionParcelListEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcodes()) |
|
|
|
|
.eq(DistributionParcelListEntity::getWarehouseId, myCurrentWarehouse.getId()) |
|
|
|
|
); |
|
|
|
|
DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
if (Func.isEmpty(deliveryListEntity)){ |
|
|
|
|
throw new CustomerException(403, "配送异常!!!"); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
if (Func.isNotEmpty(parcelListEntities)) { |
|
|
|
|
boolean flag = parcelListEntities.stream().anyMatch(p -> OrderPackageStatusConstant.yiqianshou.getValue().equals(p.getOrderPackageStatus())); |
|
|
|
|
if (flag) { |
|
|
|
@ -2321,6 +2350,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
return R.fail("请联系管理员!!!"); |
|
|
|
|
} |
|
|
|
|
List<String> orderpackages = new ArrayList<>(); |
|
|
|
|
List<Long> packageLockIds = new ArrayList<>(); |
|
|
|
|
for (String orderPackageCode : orderPackageCodes) { |
|
|
|
|
List<DistributionParcelListEntity> collect = parcelListEntityList.stream().filter(p -> p.getOrderPackageCode().equals(orderPackageCode)).collect(Collectors.toList()); |
|
|
|
|
if (Func.isNotEmpty(collect) && collect.size() == 1) { |
|
|
|
@ -2345,6 +2375,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
loadscanEntity.setSigningUserId(userId); |
|
|
|
|
|
|
|
|
|
distributionLoadscanService.updateById(loadscanEntity); |
|
|
|
|
packageLockIds.add(loadscanEntity.getPackageId()); |
|
|
|
|
//缺少一个异步维护包件签收的方法
|
|
|
|
|
// distributionAsyncService.changeOrderSignforStatus(collect.get(0));
|
|
|
|
|
Integer j = distributionSignforMapper.updateSignforNum(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), loadscanEntity.getPackageNub()); |
|
|
|
@ -2355,7 +2386,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
//维护订单状态
|
|
|
|
|
} else { |
|
|
|
|
//这里装车的数据需要进行补录
|
|
|
|
|
DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
DistributionDeliverySelfEntity distributionDeliverySelfEntity = new DistributionDeliverySelfDTO(); |
|
|
|
|
if (deliveryListEntity.getKind().equals(ServiceConstant.DELIVERLIST_KIND_SELF)) { |
|
|
|
|
distributionDeliverySelfEntity = distributionDeliverySelfMapper.selectOne(new QueryWrapper<DistributionDeliverySelfEntity>().lambda() |
|
|
|
@ -2413,6 +2443,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
distributionLoadscanEntity.setSigningUserId(AuthUtil.getUser().getUserId()); |
|
|
|
|
distributionLoadscanEntity.setScanStatus(LoadingStatusConstant.buluzhuangche.getValue()); |
|
|
|
|
distributionLoadscanService.save(distributionLoadscanEntity); |
|
|
|
|
packageLockIds.add(distributionLoadscanEntity.getPackageId()); |
|
|
|
|
|
|
|
|
|
//进行签收数量的修改
|
|
|
|
|
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
//更新装车包件数和签收包件数
|
|
|
|
@ -2439,6 +2471,22 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
throw new RuntimeException("包件数据异常,请联系管理员!!!"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
//添加缓存
|
|
|
|
|
if (!packageLockIds.isEmpty()){ |
|
|
|
|
List<Long> a = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + deliveryListEntity.getTrainNumber() + "orderPackageCode:" + packageLockIds); |
|
|
|
|
if (Func.isNotEmpty(a)){ |
|
|
|
|
boolean flag = a.stream().anyMatch(any -> packageLockIds.contains(any)); |
|
|
|
|
if (flag){ |
|
|
|
|
//正在操作,请稍后重试
|
|
|
|
|
throw new RuntimeException("该包件正在被操作,请稍后再试!!!"); |
|
|
|
|
}else { |
|
|
|
|
packageLockIds.addAll(a); |
|
|
|
|
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + deliveryListEntity.getTrainNumber() + "orderPackageCode:" + packageLockIds,packageLockIds,10L); |
|
|
|
|
} |
|
|
|
|
}else { |
|
|
|
|
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + deliveryListEntity.getTrainNumber() + "orderPackageCode:" + packageLockIds,packageLockIds,10L); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
//维护客户
|
|
|
|
|
distributionReservationService.maintenanceReservationInfo(distrilbutionloadingscanDTO.getReservationId()); |
|
|
|
|
//维护配送任务
|
|
|
|
@ -2656,6 +2704,11 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
.eq(DistributionParcelListEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode()) |
|
|
|
|
.eq(DistributionParcelListEntity::getWarehouseId, myCurrentWarehouse.getId()) |
|
|
|
|
); |
|
|
|
|
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
if (Func.isEmpty(distributionDeliveryListEntity)) { |
|
|
|
|
return R.fail(403, "配送错误!!!"); |
|
|
|
|
} |
|
|
|
|
List<Long> packageLockIds = new ArrayList<>(); |
|
|
|
|
if (Func.isNotEmpty(parcelListEntityList) && parcelListEntityList.size() == 1) { |
|
|
|
|
DistributionParcelListEntity parcelListEntity = parcelListEntityList.get(0); |
|
|
|
|
if (parcelListEntity.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())) { |
|
|
|
@ -2672,7 +2725,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
DistributionReservationEntity reservationEntity = distributionReservationMapper.selectById(distrilbutionloadingscanDTO.getReservationId()); |
|
|
|
|
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(parcelListEntity.getStockArticleId()); |
|
|
|
|
|
|
|
|
|
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
DistributionDeliverySelfEntity distributionDeliverySelfEntity = new DistributionDeliverySelfEntity(); |
|
|
|
|
if (distributionDeliveryListEntity.getKind().equals("1")) { |
|
|
|
|
distributionDeliverySelfEntity = distributionDeliverySelfMapper.selectOne(new QueryWrapper<DistributionDeliverySelfEntity>().lambda() |
|
|
|
@ -2826,6 +2878,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
//进行签收数量的修改
|
|
|
|
|
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
//修改包件装车、签收状态
|
|
|
|
|
packageLockIds.add(distributionLoadscanEntity.getPackageId()); |
|
|
|
|
} else { |
|
|
|
|
return Resp.scanFail("操作失败", "不属于该客户"); |
|
|
|
|
} |
|
|
|
@ -2878,6 +2931,21 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
return Resp.scanFail("操作失败", "包件信息有误"); |
|
|
|
|
} |
|
|
|
|
String s = checkAbnormalSignNum(distrilbutionloadingscanDTO); |
|
|
|
|
if (!packageLockIds.isEmpty()){ |
|
|
|
|
List<Long> a = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + distributionDeliveryListEntity.getTrainNumber() + "orderPackageCode:" + packageLockIds); |
|
|
|
|
if (Func.isNotEmpty(a)){ |
|
|
|
|
boolean flag = a.stream().anyMatch(any -> packageLockIds.contains(any)); |
|
|
|
|
if (flag){ |
|
|
|
|
//正在操作,请稍后重试
|
|
|
|
|
throw new RuntimeException("该包件正在被操作,请稍后再试!!!"); |
|
|
|
|
}else { |
|
|
|
|
packageLockIds.addAll(a); |
|
|
|
|
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + distributionDeliveryListEntity.getTrainNumber() + "orderPackageCode:" + packageLockIds,packageLockIds,10L); |
|
|
|
|
} |
|
|
|
|
}else { |
|
|
|
|
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + distributionDeliveryListEntity.getTrainNumber() + "orderPackageCode:" + packageLockIds,packageLockIds,10L); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return Resp.scanSuccess("操作成功", s); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -3080,12 +3148,21 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
return Resp.scanFail("请在订制品页面扫描此码", "请在订制品页面扫描此码"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse(); |
|
|
|
|
if (Func.isEmpty(myCurrentWarehouse)){ |
|
|
|
|
return R.fail(403,"未授权!!!"); |
|
|
|
|
} |
|
|
|
|
//查询已完成备货的库存品包件
|
|
|
|
|
List<DisStockListDetailEntity> detailEntities = distributionReservationMapper.selectInventoryListByReservation(distrilbutionloadingscanDTO.getReservationId()); |
|
|
|
|
if (Func.isEmpty(detailEntities)) { |
|
|
|
|
return Resp.scanFail("此码无效", "此码无效"); |
|
|
|
|
} |
|
|
|
|
DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
if (Func.isEmpty(deliveryListEntity)){ |
|
|
|
|
return R.fail(403,"配送错误"); |
|
|
|
|
} |
|
|
|
|
List<Long> packageLockIds = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
boolean isHaveCode = detailEntities.stream().anyMatch(inven -> Func.isNotEmpty(inven.getStockPackageCode())); |
|
|
|
|
|
|
|
|
|
if (isHaveCode) { |
|
|
|
@ -3109,6 +3186,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
loadscaninvnEntity.setSignforState(LoadScanSigningStatusConstant.yiqianshou.getValue()); |
|
|
|
|
loadscaninvnEntity.setSigningTime(simpleDateFormat.format(new Date())); |
|
|
|
|
loadscaninvnEntity.setOneQclick(1); |
|
|
|
|
packageLockIds.add(loadscaninvnEntity.getInventoryPackageId()); |
|
|
|
|
distributionLoadscaninvnService.updateById(loadscaninvnEntity); |
|
|
|
|
//维护签收数量
|
|
|
|
|
Integer j = distributionSignforMapper.updateSignforNum(loadscaninvnEntity.getDeliveryId(), loadscaninvnEntity.getReservationId(), loadscaninvnEntity.getPackageNub()); |
|
|
|
@ -3117,7 +3195,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
} else { |
|
|
|
|
//库存品未进行装车
|
|
|
|
|
//这里装车的数据需要进行补录
|
|
|
|
|
DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
DistributionDeliverySelfEntity distributionDeliverySelfEntity = new DistributionDeliverySelfDTO(); |
|
|
|
|
if (deliveryListEntity.getKind().equals(ServiceConstant.DELIVERLIST_KIND_SELF)) { |
|
|
|
|
distributionDeliverySelfEntity = distributionDeliverySelfMapper.selectOne(new QueryWrapper<DistributionDeliverySelfEntity>().lambda() |
|
|
|
@ -3175,6 +3252,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
Integer i = distributionSignforMapper.updateSignUser(distributionLoadscaninvnEntity.getDeliveryId(), distributionLoadscaninvnEntity.getReservationId(), AuthUtil.getUser()); |
|
|
|
|
//扣减库存
|
|
|
|
|
distributionStockListMapper.deductionQuantityStock(distributionLoadscaninvnEntity.getInventoryId(), distributionLoadscaninvnEntity.getLoadedNub()); |
|
|
|
|
packageLockIds.add(distributionLoadscaninvnEntity.getInventoryPackageId()); |
|
|
|
|
// //扣减库存
|
|
|
|
|
// DistributionStockListEntity stockListEntity = distributionStockListService.getById(inventory.get(0).getStockListId());
|
|
|
|
|
// stockListEntity.setQuantityOccupied(stockListEntity.getQuantityOccupied() - distributionLoadscaninvnEntity.getPackageNub());
|
|
|
|
@ -3214,6 +3292,21 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
//维护配送任务
|
|
|
|
|
distributionDeliveryListService.maintenanceDeliveryInfo(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
String str = checkSignNum(distrilbutionloadingscanDTO); |
|
|
|
|
if (!packageLockIds.isEmpty()){ |
|
|
|
|
List<Long> a = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + deliveryListEntity.getTrainNumber() + "orderPackageCode:" + packageLockIds); |
|
|
|
|
if (Func.isNotEmpty(a)){ |
|
|
|
|
boolean flag = a.stream().anyMatch(any -> packageLockIds.contains(any)); |
|
|
|
|
if (flag){ |
|
|
|
|
//正在操作,请稍后重试
|
|
|
|
|
throw new RuntimeException("该包件正在被操作,请稍后再试!!!"); |
|
|
|
|
}else { |
|
|
|
|
packageLockIds.addAll(a); |
|
|
|
|
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + deliveryListEntity.getTrainNumber() + "orderPackageCode:" + packageLockIds,packageLockIds,10L); |
|
|
|
|
} |
|
|
|
|
}else { |
|
|
|
|
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + deliveryListEntity.getTrainNumber() + "orderPackageCode:" + packageLockIds,packageLockIds,10L); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return Resp.scanSuccess("签收成功", str); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -4223,6 +4316,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
log.error(method+"reservationEntity参数错误:{}", reservationEntity); |
|
|
|
|
return R.fail("服务器正忙~~"); |
|
|
|
|
} |
|
|
|
|
List<Long> packageLockIds = new ArrayList<>(); |
|
|
|
|
//查询数据
|
|
|
|
|
DistributionSignforEntity distributionSignforEntity = baseMapper.selectOne(new QueryWrapper<DistributionSignforEntity>().lambda() |
|
|
|
|
.eq(DistributionSignforEntity::getDeliveryId, distributionSignfor.getDeliveryId()) |
|
|
|
@ -4289,6 +4383,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
Integer j = distributionSignforMapper.updatesignforByinvn(loadscaninvnEntity.getDeliveryId(), loadscaninvnEntity.getReservationId(), loadscaninvnEntity.getPackageNub()); |
|
|
|
|
//更新签收人
|
|
|
|
|
Integer m = distributionSignforMapper.updateSignUser(loadscaninvnEntity.getDeliveryId(), loadscaninvnEntity.getReservationId(), AuthUtil.getUser()); |
|
|
|
|
packageLockIds.add(loadscaninvnEntity.getInventoryPackageId()); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
DistributionLoadscaninvnEntity newLoadscaninvnEntity = new DistributionLoadscaninvnEntity(); |
|
|
|
@ -4334,6 +4429,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
newLoadscaninvnEntity.setMsg("司机一键签收数据补录"); |
|
|
|
|
} |
|
|
|
|
distributionLoadscaninvnService.save(newLoadscaninvnEntity); |
|
|
|
|
packageLockIds.add(newLoadscaninvnEntity.getInventoryPackageId()); |
|
|
|
|
|
|
|
|
|
//维护预约库存品数据
|
|
|
|
|
//扣减库存
|
|
|
|
|
DistributionStockListEntity stockListEntity = distributionStockListService.getById(detailEntity.getStockListId()); |
|
|
|
@ -4389,6 +4486,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
distributionLoadscanEntity.setLoadedNub(parcelNumberEntity.getReservationNum()); |
|
|
|
|
distributionLoadscanEntity.setReceivedQuantity(parcelNumberEntity.getReservationNum()); |
|
|
|
|
distributionLoadscanService.updateById(distributionLoadscanEntity); |
|
|
|
|
packageLockIds.add(distributionLoadscanEntity.getPackageId()); |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
log.error("################扫描签收零担订单数量异常:{}", distributionLoadscanEntity); |
|
|
|
|
return Resp.scanFail("数量录入错误", "数量录入错误"); |
|
|
|
@ -4409,6 +4508,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
distributionLoadscanEntity.setMsg("司机一键签收数据补录"); |
|
|
|
|
} |
|
|
|
|
distributionLoadscanService.updateById(distributionLoadscanEntity); |
|
|
|
|
packageLockIds.add(distributionLoadscanEntity.getPackageId()); |
|
|
|
|
} |
|
|
|
|
}else { |
|
|
|
|
//不存在装车数据
|
|
|
|
@ -4456,6 +4556,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
loadscanEntity.setMsg("司机一键签收数据补录"); |
|
|
|
|
} |
|
|
|
|
distributionLoadscanService.save(loadscanEntity); |
|
|
|
|
packageLockIds.add(loadscanEntity.getPackageId()); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
//维护出库数量和签收数量
|
|
|
|
|
parcelNumberServiceById.setSigninQuantity(signinQuantity); |
|
|
|
@ -4527,6 +4629,9 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
loadscanEntity.setMsg("司机一键签收数据补录"); |
|
|
|
|
} |
|
|
|
|
distributionLoadscanService.save(loadscanEntity); |
|
|
|
|
packageLockIds.add(loadscanEntity.getPackageId()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
//存在装车数据
|
|
|
|
|
if (distributionSignfor.getIsClerk()) { |
|
|
|
@ -4545,6 +4650,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
loadscanEntities.setReceivedQuantity(parcelListEntity.getQuantity()); |
|
|
|
|
loadscanEntities.setSigningTime(signingTime); |
|
|
|
|
distributionLoadscanService.updateById(loadscanEntities); |
|
|
|
|
packageLockIds.add(loadscanEntities.getPackageId()); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
distributionAsyncService.sendFactory(parcelListEntity, simpleDateFormat.format(new Date()), reservationEntity.getId(), reservationEntity.getReservationCode(), myCurrentWarehouse.getName(), user.getNickName()); |
|
|
|
@ -4593,7 +4700,21 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
log.info(method+"装车库存品数>>>>>>>>>>>>>>:{}",loadingInventoryNum); |
|
|
|
|
log.info(method+"签收包件数>>>>>>>>>>>>>>:{}",signingPackageNum); |
|
|
|
|
log.info(method+"签收库存品数>>>>>>>>>>>>>>:{}",signingPackageNum); |
|
|
|
|
|
|
|
|
|
if (!packageLockIds.isEmpty()){ |
|
|
|
|
List<Long> a = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + distributionDeliveryListEntity.getTrainNumber() + "orderPackageCode:" + packageLockIds); |
|
|
|
|
if (Func.isNotEmpty(a)){ |
|
|
|
|
boolean flag = a.stream().anyMatch(any -> packageLockIds.contains(any)); |
|
|
|
|
if (flag){ |
|
|
|
|
//正在操作,请稍后重试
|
|
|
|
|
throw new RuntimeException("该包件正在被操作,请稍后再试!!!"); |
|
|
|
|
}else { |
|
|
|
|
packageLockIds.addAll(a); |
|
|
|
|
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + distributionDeliveryListEntity.getTrainNumber() + "orderPackageCode:" + packageLockIds,packageLockIds,10L); |
|
|
|
|
} |
|
|
|
|
}else { |
|
|
|
|
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + distributionDeliveryListEntity.getTrainNumber() + "orderPackageCode:" + packageLockIds,packageLockIds,10L); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
LambdaUpdateWrapper<DistributionSignforEntity> set = new UpdateWrapper<DistributionSignforEntity>().lambda() |
|
|
|
|
.eq(DistributionSignforEntity::getId, distributionSignforEntity.getId()) |
|
|
|
|
.set(StringUtils.isNotBlank(distributionSignfor.getDeliverySignPictures()), DistributionSignforEntity::getDeliverySignPictures, distributionSignfor.getDeliverySignPictures()) |
|
|
|
@ -5157,6 +5278,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
log.error("###################零担订单品类信息错误:{}", parcelNumberDTOS); |
|
|
|
|
return Resp.scanFail("操作失败", "服务器正忙...."); |
|
|
|
|
} |
|
|
|
|
List<Long> packageLockIds = new ArrayList<>(); |
|
|
|
|
//这里装车的数据需要进行补录
|
|
|
|
|
DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
DistributionDeliverySelfEntity distributionDeliverySelfEntity = new DistributionDeliverySelfDTO(); |
|
|
|
@ -5339,11 +5461,27 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
parcelNumberEntity.setHandQuantity(handQuantity.subtract(signNum).intValue()); |
|
|
|
|
parcelNumberEntity.setDeliveryQuantity(deliveryQuantity.subtract(signNum).intValue()); |
|
|
|
|
parcelNumberEntity.setOutboundQuantity(outboundQuantity.add(signNum).intValue()); |
|
|
|
|
packageLockIds.add(loadscanEntity.getPackageId()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
distributionParcelNumberService.updateById(parcelNumberEntity); |
|
|
|
|
}); |
|
|
|
|
if (!packageLockIds.isEmpty()){ |
|
|
|
|
List<Long> a = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + deliveryListEntity.getTrainNumber() + "orderPackageCode:" + packageLockIds); |
|
|
|
|
if (Func.isNotEmpty(a)){ |
|
|
|
|
boolean flag = a.stream().anyMatch(any -> packageLockIds.contains(any)); |
|
|
|
|
if (flag){ |
|
|
|
|
//正在操作,请稍后重试
|
|
|
|
|
throw new RuntimeException("该包件正在被操作,请稍后再试!!!"); |
|
|
|
|
}else { |
|
|
|
|
packageLockIds.addAll(a); |
|
|
|
|
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + deliveryListEntity.getTrainNumber() + "orderPackageCode:" + packageLockIds,packageLockIds,10L); |
|
|
|
|
} |
|
|
|
|
}else { |
|
|
|
|
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + deliveryListEntity.getTrainNumber() + "orderPackageCode:" + packageLockIds,packageLockIds,10L); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
String str = checkSignNum(distrilbutionloadingscanDTO); |
|
|
|
|
return Resp.scanSuccess("签收成功", str); |
|
|
|
|
} |
|
|
|
|