Browse Source

Merge branch 'dev' into pre-production

master
汤建军 1 year ago
parent
commit
773aa52637
  1. 78
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  2. 154
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java
  3. 4
      blade-service/logpm-factory-data/logpm-factory-data-zbom/src/main/java/com/logpm/factorydata/zbom/mq/ZbomNodeDataPushListener.java

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

@ -559,7 +559,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId());
//异步确认包条扫描信息
// distributionAsyncService.changeOrderSignforStatus(distrilbutionloadingscanDTO.getBarcode());
List<Long> packageLockIds = new ArrayList<>();
DistributionDeliverySelfEntity distributionDeliverySelfEntity = new DistributionDeliverySelfEntity();
if ("1".equals(distributionDeliveryListEntity.getKind())) {
if (!Objects.isNull(distrilbutionloadingscanDTO.getLoadingId())) {
@ -655,6 +655,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
loadscanEntity.setLoadedNub(parcelListEntity.getQuantity());
distributionLoadscanService.save(loadscanEntity);
//更新包件装车状态
packageLockIds.add(loadscanEntity.getPackageId());
parcelListEntity.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue());
parcelListEntity.setOrderPackageGroundingStatus(OrderPackageGroundingStatusConstant.daishangjia.getValue());
parcelListEntity.setOrderPackageStatus(OrderPackageStatusConstant.yichuku.getValue());
@ -832,6 +833,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
orderPackageCodes.add(parcelListEntity.getOrderPackageCode());
parcelListEntity.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue());
distributionParcelListService.updateById(parcelListEntity);
packageLockIds.add(loadscanEntity.getPackageId());
}
}
distributionLoadscanService.saveBatch(reservationLoadscanEntities);
@ -867,6 +869,22 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
return Resp.scanFail("查询托盘货物失败", "查询托盘货物失败");
}
}
//添加缓存
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);
}
}
//查询已装车件数
// String str = getLoadingMsg(distrilbutionloadingscanDTO);
@ -1956,6 +1974,10 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
@Override
@Transactional(isolation = Isolation.READ_COMMITTED, rollbackFor = Exception.class)
public Resp loadinginventory(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) {
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if (Func.isEmpty(myCurrentWarehouse)){
return Resp.scanFail("未授权","未授权!!!");
}
//库存品
//获取当前用户司机
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId());
@ -1966,6 +1988,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
DistributionDeliveryTripartiteEntity distributionDeliveryTripartiteEntity = distributionDeliveryTripartiteMapper.selectById(distrilbutionloadingscanDTO.getLoadingId());
BeanUtils.copyProperties(distributionDeliveryTripartiteEntity, distributionDeliverySelfEntity);
}
List<Long> packageLockIds = new ArrayList<>();
//根据传递进来的库存品条码进行库存品的校验
//获取之前的
@ -1990,6 +2013,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
disStockListDetailEntity.setStockLockingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue());
disStockListDetailService.updateById(disStockListDetailEntity);
DistributionLoadscaninvnEntity distributionLoadscaninvnEntity = getDistributionLoadscaninvnEntity(distrilbutionloadingscanDTO, distributionDeliverySelfEntity, disStockListDetailEntities);
packageLockIds.add(distributionLoadscaninvnEntity.getInventoryPackageId());
distributionLoadscaninvnService.save(distributionLoadscaninvnEntity);
//查询本车次是否第一次扫码,没有则更新上车时间
Integer a = distributionDeliveryListMapper.updateloadingTimeById(distributionLoadscaninvnEntity.getDeliveryId());
@ -2018,6 +2042,21 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
}
}
}
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);
}
}
String msg = getLoadingMsg(distrilbutionloadingscanDTO);
return Resp.scanSuccess("扫描成功", msg);
}
@ -5332,6 +5371,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
log.error("配送计划null:{}", deliveryListEntity);
return Resp.scanFail("操作失败", "服务器正忙...");
}
List<Long> packageLockIds = new ArrayList<>();
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda()
.eq(DistributionParcelListEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode())
.eq(DistributionParcelListEntity::getWarehouseId, myCurrentWarehouse.getId())
@ -5464,7 +5504,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
Integer j = distributionSignforMapper.updateloadByReservationId(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), loadscanEntity.getPackageNub());
//维护订单信息
distributionStockArticleService.maintenanceOrderInfo(parcelListEntity.getOrderCode(), myCurrentWarehouse.getId());
packageLockIds.add(loadscanEntity.getPackageId());
DistributionSignforEntity signforEntity = distributionSignforService.getOne(Wrappers.<DistributionSignforEntity>query().lambda().eq(DistributionSignforEntity::getReservationId, reservationEntity.getId()).eq(DistributionSignforEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId()));
if (Func.isNotEmpty(signforEntity)) {
//标识该客户存在异常装车包件,为了后续的异常装车审核
@ -5485,6 +5525,21 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
if (Func.isNotEmpty(abnormalLoadingPack)) {
abnormalTotal = abnormalLoadingPack.stream().mapToInt(DistributionLoadscanEntity::getLoadedNub).sum();
}
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("操作成功", "异常" + abnormalTotal + "件");
}
@ -5578,7 +5633,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
BeanUtils.copyProperties(distributionDeliveryTripartiteEntity, distributionDeliverySelfEntity);
}
String now = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
List<Long> packageLockIds = new ArrayList<>();
if (Func.isNotEmpty(distrilbutionloadingscanDTO.getReservationId())) {
//查询该订单是否属于当前配送任务
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = distributionReservationMapper.selectStockArticleByReservationId(distrilbutionloadingscanDTO.getReservationId());
@ -5699,6 +5754,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
// loadingNum.getAndAdd(loadscanEntity.getLoadedNub());
distributionAsyncService.checkZeroStockArticleLoadingStatus(parcelNumberEntity, loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId());
// distributionAsyncService.checkLoadingByPackage(parcelListEntity,loadscanEntity.getDeliveryId(),loadscanEntity.getReservationId());
packageLockIds.add(loadscanEntity.getPackageId());
}
}
} else {
@ -5750,6 +5806,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
parcelNumberEntity.setHandQuantity(parcelNumberEntity.getHandQuantity() - parcelListDTO.getLoadingNum());
distributionParcelNumberService.updateById(parcelNumberEntity);
distributionAsyncService.checkZeroStockArticleLoadingStatus(parcelNumberEntity, loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId());
packageLockIds.add(loadscanEntity.getPackageId());
}
// loadingNum.getAndAdd(loadscanEntity.getLoadedNub());
@ -5788,6 +5845,21 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
if (abnormalLoadingNum.get() > 0) {
str.append("异常").append(abnormalLoadingNum.get() + "件");
}
if (!packageLockIds.isEmpty()){
List<Long> a = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + distributionDeliveryListEntity.getTrainNumber() + "orderPackageCode:" + packageLockIds);
if (Func.isNotEmpty(a)){
boolean aaa = a.stream().anyMatch(any -> packageLockIds.contains(any));
if (aaa){
//正在操作,请稍后重试
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("装车成功", str.toString());
}

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

@ -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);
}

4
blade-service/logpm-factory-data/logpm-factory-data-zbom/src/main/java/com/logpm/factorydata/zbom/mq/ZbomNodeDataPushListener.java

@ -232,8 +232,6 @@ public class ZbomNodeDataPushListener {
// 修改订单包件表的签收状态
List<String> packages = CollUtil.newArrayList(nodeConfirmParam.getPackageCode().split(","));
orderPackageService.updateSignForStatus(packages);
// 修改加盟商单号+发货单号节点数据
nodeOrderService.updateNodeOrder(nodeConfirmParam);
} else {
List<Object> js = new ArrayList<>();
String packageCode = nodeConfirmParam.getPackageCode();
@ -259,6 +257,8 @@ public class ZbomNodeDataPushListener {
.build();
factoryDataClient.sendMessage(message);
}
// 修改加盟商单号+发货单号节点数据
nodeOrderService.updateNodeOrder(nodeConfirmParam);
}
}
}

Loading…
Cancel
Save