Browse Source

代码提交

dist.1.3.0
汤建军 7 months ago
parent
commit
99af5812f0
  1. 211
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java

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

@ -7984,6 +7984,8 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
List<DistributionParcelListEntity> pushList = new ArrayList<>();
//备货库位待下架
List<JSONObject> jsonObjects = new ArrayList<>();
//日志信息收集
List<JSONObject> packageLogs = new ArrayList<>();
//查询司机信息
DistributionDeliverySelfEntity distributionDeliverySelfEntity = getDriver(deliveryListEntity,user,distrilbutionloadingscanDTO,isDriverFlag);
switch (type) {
@ -7993,7 +7995,6 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
return Resp.fail("参数缺失,请联系管理员");
}
String orderPackageCode = distrilbutionloadingscanDTO.getBarcode();
List<JSONObject> packageLogs = new ArrayList<>();
DistributionParcelListEntity parcelListEntity = distributionParcelListMapper.selectByOrderPackageCode(orderPackageCode, myCurrentWarehouse.getId());
if (Objects.isNull(parcelListEntity)) {
//查询是否为库存品
@ -8029,8 +8030,8 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
//判定是否满足异常装车
Boolean isAbnormalLoadingFlag = judgeIsAbnormalLoading(deliveryId, parcelListEntity,reservationId);
if (isAbnormalLoadingFlag) {
return R.fail(5000, "异常装车");
log.info("异常装车判定成功>>>>>>packageCode:{},reservationId:{}", distrilbutionloadingscanDTO.getBarcode(), distrilbutionloadingscanDTO.getReservationId());
return R.fail(5000, "异常装车");
}
return Resp.scanFail("蹿货", "蹿货");
}
@ -8044,9 +8045,9 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
parcelListEntity.setOrderPackageStatus(OrderPackageStatusConstant.yichuku.getValue());
distributionParcelListService.updateById(parcelListEntity);
//更新装车时间
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId());
distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId());
//更新签收表的装车数量
Integer j = distributionSignforMapper.updateloadByReservationId(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), loadscanEntity.getPackageNub());
distributionSignforMapper.updateloadByReservationId(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), loadscanEntity.getPackageNub());
//进行解托操作
Map<String, Object> info = new HashMap<>();
info.put("orderPackageCode", parcelListEntity.getOrderPackageCode());
@ -8107,10 +8108,10 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
Map<Long, DistributionParcelNumberEntity> zeroPackageMap = parcelNumberEntityList.stream().collect(Collectors.toMap(DistributionParcelNumberEntity::getParcelListId, Function.identity(), (k1, k2) -> k2));
List<Long> operationZeroPackageIds = parcelListDTOS.stream().map(DistributionParcelNumberDTO::getParcelListId).collect(Collectors.toList());
//查询是否已经有装车数据了
List<DistributionLoadscanEntity> loadscanEntityList = distributionLoadscanService.list(Wrappers.<DistributionLoadscanEntity>query().lambda().eq(DistributionLoadscanEntity::getReservationId, reservationStockarticleEntity.getReservationId()).eq(DistributionLoadscanEntity::getOrderId, reservationStockarticleEntity.getStockArticleId()).in(DistributionLoadscanEntity::getPackageId, operationZeroPackageIds).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()));
List<DistributionLoadscanEntity> zeroLoadscanEntityList = distributionLoadscanService.list(Wrappers.<DistributionLoadscanEntity>query().lambda().eq(DistributionLoadscanEntity::getReservationId, reservationStockarticleEntity.getReservationId()).eq(DistributionLoadscanEntity::getOrderId, reservationStockarticleEntity.getStockArticleId()).in(DistributionLoadscanEntity::getPackageId, operationZeroPackageIds).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()));
Map<Long, List<DistributionLoadscanEntity>> loadMap = null;
if (Func.isNotEmpty(loadscanEntityList)) {
loadMap = loadscanEntityList.stream().collect(Collectors.groupingBy(DistributionLoadscanEntity::getPackageId));
if (Func.isNotEmpty(zeroLoadscanEntityList)) {
loadMap = zeroLoadscanEntityList.stream().collect(Collectors.groupingBy(DistributionLoadscanEntity::getPackageId));
}
for (DistributionParcelNumberDTO parcelListDTO : parcelListDTOS) {
DistributionParcelListEntity zeroParcelListEntity = distributionParcelListService.getById(parcelListDTO.getParcelListId());
@ -8128,16 +8129,16 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
if (Func.isNotEmpty(loadscanEntities)) {
if (parcelListDTO.getLoadingNum() <= reservationZeroPackageEntity.getQuantity()) {
//零担修改装车
DistributionLoadscanEntity loadscanEntity = loadscanEntities.get(0);
updateZeroLoadingEntity(loadscanEntity,parcelListDTO,myCurrentWarehouse,zeroPackageMap);
JSONObject jsonObject = new JSONObject();
jsonObject.put("code", zeroParcelListEntity.getOrderCode());
jsonObject.put("warehouseId", myCurrentWarehouse.getId());
jsonObject.put("taskId", distrilbutionloadingscanDTO.getReservationId());
jsonObject.put("type", 3);
jsonObject.put("num", 1);
jsonObject.put("remark", "装车下架");
jsonObjects.add(jsonObject);
DistributionLoadscanEntity zeroLoadscanEntity = loadscanEntities.get(0);
updateZeroLoadingEntity(zeroLoadscanEntity,parcelListDTO,myCurrentWarehouse,zeroPackageMap);
JSONObject zeroJsonObject = new JSONObject();
zeroJsonObject.put("code", zeroParcelListEntity.getOrderCode());
zeroJsonObject.put("warehouseId", myCurrentWarehouse.getId());
zeroJsonObject.put("taskId", distrilbutionloadingscanDTO.getReservationId());
zeroJsonObject.put("type", 3);
zeroJsonObject.put("num", 1);
zeroJsonObject.put("remark", "装车下架");
jsonObjects.add(zeroJsonObject);
}
} else {
if (parcelListDTO.getLoadingNum() <= reservationZeroPackageEntity.getQuantity()) {
@ -8150,14 +8151,14 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
user,
zeroPackageMap);
packageLockIds.add(parcelListDTO.getParcelListId());
JSONObject jsonObject = new JSONObject();
jsonObject.put("code", zeroParcelListEntity.getOrderCode());
jsonObject.put("warehouseId", myCurrentWarehouse.getId());
jsonObject.put("taskId", distrilbutionloadingscanDTO.getReservationId());
jsonObject.put("type", 3);
jsonObject.put("num", 1);
jsonObject.put("remark", "装车下架");
jsonObjects.add(jsonObject);
JSONObject zeroJsonObject = new JSONObject();
zeroJsonObject.put("code", zeroParcelListEntity.getOrderCode());
zeroJsonObject.put("warehouseId", myCurrentWarehouse.getId());
zeroJsonObject.put("taskId", distrilbutionloadingscanDTO.getReservationId());
zeroJsonObject.put("type", 3);
zeroJsonObject.put("num", 1);
zeroJsonObject.put("remark", "装车下架");
jsonObjects.add(zeroJsonObject);
}
}
} else {
@ -8171,16 +8172,20 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
user,
zeroPackageMap);
packageLockIds.add(parcelListDTO.getParcelListId());
JSONObject jsonObject = new JSONObject();
jsonObject.put("code", zeroParcelListEntity.getOrderCode());
jsonObject.put("warehouseId", myCurrentWarehouse.getId());
jsonObject.put("taskId", distrilbutionloadingscanDTO.getReservationId());
jsonObject.put("type", 3);
jsonObject.put("num", 1);
jsonObject.put("remark", "装车下架");
jsonObjects.add(jsonObject);
JSONObject zeroJsonObject = new JSONObject();
zeroJsonObject.put("code", zeroParcelListEntity.getOrderCode());
zeroJsonObject.put("warehouseId", myCurrentWarehouse.getId());
zeroJsonObject.put("taskId", distrilbutionloadingscanDTO.getReservationId());
zeroJsonObject.put("type", 3);
zeroJsonObject.put("num", 1);
zeroJsonObject.put("remark", "装车下架");
jsonObjects.add(zeroJsonObject);
}
}
//更新装车时间
distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId());
//更新签收表的装车数量
distributionSignforMapper.updateloadByReservationId(distrilbutionloadingscanDTO.getDeliveryId(), distrilbutionloadingscanDTO.getReservationId(), parcelListDTO.getLoadingNum());
}
} else {
log.error("#######################查询预约零担品类信息错误,reservationID:{}", distrilbutionloadingscanDTO.getReservationId());
@ -8243,9 +8248,9 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
packageLockIds.add(distributionLoadscaninvnEntity.getInventoryPackageId());
distributionLoadscaninvnService.save(distributionLoadscaninvnEntity);
//查询本车次是否第一次扫码,没有则更新上车时间
Integer a = distributionDeliveryListMapper.updateloadingTimeById(distributionLoadscaninvnEntity.getDeliveryId());
distributionDeliveryListMapper.updateloadingTimeById(distributionLoadscaninvnEntity.getDeliveryId());
//更新签收表的装车数量
Integer j = distributionSignforMapper.updateloadByinvn(distributionLoadscaninvnEntity.getDeliveryId(), distributionLoadscaninvnEntity.getReservationId(), distributionLoadscaninvnEntity.getLoadedNub());
distributionSignforMapper.updateloadByinvn(distributionLoadscaninvnEntity.getDeliveryId(), distributionLoadscaninvnEntity.getReservationId(), distributionLoadscaninvnEntity.getLoadedNub());
//处理出库问题
distributionStockListMapper.deductionQuantityStock(distributionLoadscaninvnEntity.getInventoryId(), distributionLoadscaninvnEntity.getLoadedNub());
//维护客户信息
@ -8253,14 +8258,134 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
//维护配送装车状态
distributionDeliveryListService.maintenanceDeliveryInfo(distrilbutionloadingscanDTO.getDeliveryId());
//备货库位下架
JSONObject jsonObject = new JSONObject();
jsonObject.put("code", distributionLoadscaninvnEntity.getOrderPackageCode());
jsonObject.put("warehouseId", myCurrentWarehouse.getId());
jsonObject.put("taskId", distributionLoadscaninvnEntity.getReservationId());
jsonObject.put("type", 2);
jsonObject.put("num", 1);
jsonObject.put("remark", "装车下架");
jsonObjects.add(jsonObject);
JSONObject inventoryJsonObject = new JSONObject();
inventoryJsonObject.put("code", distributionLoadscaninvnEntity.getOrderPackageCode());
inventoryJsonObject.put("warehouseId", myCurrentWarehouse.getId());
inventoryJsonObject.put("taskId", distributionLoadscaninvnEntity.getReservationId());
inventoryJsonObject.put("type", 2);
inventoryJsonObject.put("num", 1);
inventoryJsonObject.put("remark", "装车下架");
jsonObjects.add(inventoryJsonObject);
break;
case 4:
if (Objects.isNull(distrilbutionloadingscanDTO.getBarcode())) {
log.error(method + "参数缺失Barcode");
return Resp.fail("参数缺失,请联系管理员");
}
if (Objects.isNull(distrilbutionloadingscanDTO.getReservationId())) {
log.error(method + "参数缺失ReservationId");
return Resp.fail("参数缺失,请联系管理员");
}
TrayTypeDataVO trayTypeDataVO = warehouseTrayTypeClient.selectListByTrayCode(distrilbutionloadingscanDTO.getBarcode());
if (Func.isNotEmpty(trayTypeDataVO)) {
List<WarehouseTrayGoodsEntity> voGoodsLsit = trayTypeDataVO.getGoodsLsit();
boolean isAllProducts = voGoodsLsit.stream().allMatch(t -> "3".equals(t.getAssociationType()));
if (isAllProducts) {
//该托盘商全部都是订制品
List<Long> trayGoodIds = voGoodsLsit.stream().filter(v -> "3".equals(v.getAssociationType())).map(WarehouseTrayGoodsEntity::getAssociationId).collect(Collectors.toList());
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.listByIds(trayGoodIds);
if (trayGoodIds.size() != parcelListEntities.size()) {
return Resp.scanFail("托盘存在其他货物", "托盘存在其他货物");
}
//判断该货物都属于同一客户才能进行装车
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.selectPackageListByReservationId(distrilbutionloadingscanDTO.getReservationId());
boolean isBelongToReservation = parcelListEntities.stream().allMatch(tp -> parcelListEntityList.stream().map(DistributionParcelListEntity::getId).collect(Collectors.toList()).contains(tp.getId()));
if (isBelongToReservation) {
List<String> orderPackageCodes = new ArrayList<>();
List<DistributionLoadscanEntity> trayLoadscanEntityList = distributionLoadscanService.list(Wrappers.<DistributionLoadscanEntity>query().lambda()
.eq(DistributionLoadscanEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId())
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
.eq(DistributionLoadscanEntity::getTrayNo, distrilbutionloadingscanDTO.getBarcode()));
boolean trayLoadingStatus = parcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
if (Func.isNotEmpty(trayLoadscanEntityList) && !trayLoadscanEntityList.isEmpty() && trayLoadingStatus) {
return Resp.scanFail("重复扫描", "重复扫描");
}
if (Func.isEmpty(parcelListEntities) || parcelListEntities.size() <= 0) {
return Resp.scanFail("该托盘上无货物信息", "该托盘上无货物信息");
}
if (Func.isNotEmpty(distrilbutionloadingscanDTO.getReservationId())) {
//存在客户 这里就是针对客户进行的整托装车
Map<Long, DistributionParcelListEntity> parcelListEntityMap = parcelListEntityList.stream().collect(Collectors.toMap(DistributionParcelListEntity::getId, Function.identity(), (k1, k2) -> k2));
boolean reservationFlag = parcelListEntities.stream().allMatch(p -> Func.isNotEmpty(parcelListEntityMap.get(p.getId())));
if (reservationFlag) {
try {
warehouseUpdownTypeClient.downTray(distrilbutionloadingscanDTO.getBarcode(), myCurrentWarehouse.getId());
} catch (Exception e) {
log.error("#################货物下架错误:{}", distrilbutionloadingscanDTO.getBarcode());
// return Resp.scanFail("装车失败", "装车失败");
}
DistributionReservationEntity trayReservationEntity = distributionReservationService.getById(distrilbutionloadingscanDTO.getReservationId());
List<DistributionLoadscanEntity> reservationLoadscanEntities = new ArrayList<>();
List<String> orderCodes = new ArrayList<>();
for (DistributionParcelListEntity trayParcelListEntity : parcelListEntities) {
log.info("#########!!!!!!!!!!!!!!!!!--------- 88888888888 parcelListEntities={}", parcelListEntities);
if (trayParcelListEntity.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())) {
trayParcelListEntity.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue());
trayParcelListEntity.setOrderPackageStatus(OrderPackageStatusConstant.yichuku.getValue());
DistributionLoadscanEntity distributionLoadscanEntity = createdDistributionLoadscanEntity(deliveryListEntity, distributionDeliverySelfEntity, distrilbutionloadingscanDTO.getReservationId(), trayParcelListEntity, myCurrentWarehouse, user);
distributionLoadscanEntity.setMsg("司机整托装车");
distributionLoadscanEntity.setTrayNo(trayTypeDataVO.getTrayCode());
reservationLoadscanEntities.add(distributionLoadscanEntity);
distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId());
//更新签收表的装车数量
distributionSignforMapper.updateloadByReservationId(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub());
//扣减订单的在库数量
orderCodes.add(trayParcelListEntity.getOrderCode());
//修改包件为装车状态
orderPackageCodes.add(trayParcelListEntity.getOrderPackageCode());
trayParcelListEntity.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue());
distributionParcelListService.updateById(trayParcelListEntity);
packageLockIds.add(trayParcelListEntity.getId());
content = "包件在" + myCurrentWarehouse.getName() + "由" + distributionLoadscanEntity.getScanUser() + "扫描托盘:" + distributionLoadscanEntity.getTrayNo() + "装车,配送车次号:" + deliveryListEntity.getTrainNumber() + "预约任务号:" + trayReservationEntity.getReservationCode();
JSONObject trunklinePackageTrackLog = handleLogJSONObject(myCurrentWarehouse, AuthUtil.getUser(), trayParcelListEntity.getOrderPackageCode(), content, WorkNodeEnums.DISTRIBUTION_LOADING.getCode());
packageLogs.add(trunklinePackageTrackLog);
pushList.add(trayParcelListEntity);
}
}
JSONObject trayJsonObject = new JSONObject();
trayJsonObject.put("code", trayTypeDataVO.getTrayCode());
trayJsonObject.put("warehouseId", myCurrentWarehouse.getId());
trayJsonObject.put("taskId", distrilbutionloadingscanDTO.getReservationId());
trayJsonObject.put("type", 1);
trayJsonObject.put("num", 1);
trayJsonObject.put("remark", "装车下架");
jsonObjects.add(trayJsonObject);
distributionLoadscanService.saveBatch(reservationLoadscanEntities);
//这里则进行整托装车的数据构建
//维护订单的信息
if (Func.isNotEmpty(orderCodes)) {
String orderCode = orderCodes.stream().distinct().collect(Collectors.joining(","));
distributionStockArticleService.maintenanceOrderInfo(orderCode, myCurrentWarehouse.getId());
}
if (Func.isNotEmpty(orderPackageCodes)) {
String orderPackages = orderPackageCodes.stream().distinct().collect(Collectors.joining(","));
Map<String, Object> map = new HashMap<>();
map.put("orderPackageCode", orderPackages);
map.put("warehouseId", myCurrentWarehouse.getId());
warehouseUpdownTypeClient.downDeliveryPackage(map);
}
//维护预约的信息
distributionReservationService.maintenanceReservationInfo(distrilbutionloadingscanDTO.getReservationId());
//维护配送任务信息
distributionDeliveryListService.maintenanceDeliveryInfo(distrilbutionloadingscanDTO.getDeliveryId());
} else {
log.info("#########!!!!!!!!!!!!!!!!!--------- 101010101010 存在其他客户货物");
return Resp.scanFail("整托装车失败,存在其他客户货物", "存在其他客户货物,存在其他客户货物");
}
}
} else {
log.info("#########!!!!!!!!!!!!!!!!!--------- 101010101010 存在其他客户货物");
return Resp.scanFail("整托装车失败", "存在其他客户货物");
}
}
} else {
log.info("#########!!!!!!!!!!!!!!!!!--------- 101010101010 查询托盘货物失败");
return Resp.scanFail("查询托盘货物失败", "查询托盘货物失败");
}
break;
default:
log.error(method+"未知类型type:{}",distrilbutionloadingscanDTO.getType());
break;
}
//添加缓存

Loading…
Cancel
Save