|
|
|
@ -85,6 +85,8 @@ import org.springblade.common.serviceConstant.ServiceConstant;
|
|
|
|
|
import org.springblade.common.utils.CommonUtil; |
|
|
|
|
import org.springblade.common.utils.FileUtil; |
|
|
|
|
import org.springblade.common.utils.GaoDeApiUtil; |
|
|
|
|
import org.springblade.core.log.feign.ILogClient; |
|
|
|
|
import org.springblade.core.log.model.LogError; |
|
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
|
import org.springblade.core.redis.cache.BladeRedis; |
|
|
|
|
import org.springblade.core.secure.BladeUser; |
|
|
|
@ -245,6 +247,9 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
@Autowired |
|
|
|
|
private IDistributionNodeWorkService iDistributionNodeWorkService; |
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
private ILogClient logClient; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public IPage<DistributionSignforVO> selectDistributionSignforPage(IPage<DistributionSignforVO> page, DistributionSignforVO distributionSignfor) { |
|
|
|
@ -2522,7 +2527,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
return Resp.scanFail("此任务已完成复核", "此任务已完成复核"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<Long> packageLockIds = new ArrayList<>(); |
|
|
|
|
try { |
|
|
|
|
|
|
|
|
@ -2805,7 +2809,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
return Resp.scanSuccessWithData("签收成功", str, orderPackageCodes); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error(">>>>> 签收异常报错", e); |
|
|
|
|
throw new CustomerException("当前登录信息已失效,请重新登录"); |
|
|
|
|
throw new CustomerException("签收异常报错"+e.getMessage()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -2868,269 +2872,277 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
public R signforPC(DistrilbutionAppsignforDTO distrilbutionloadingscanDTO) { |
|
|
|
|
|
|
|
|
|
String nickName = null; |
|
|
|
|
Long userId = null; |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
String nickName = null; |
|
|
|
|
Long userId = null; |
|
|
|
|
|
|
|
|
|
nickName = AuthUtil.getNickName(); |
|
|
|
|
userId = AuthUtil.getUserId(); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error(">>>>> 签收异常报错", e); |
|
|
|
|
throw new CustomerException("当前登录信息不已失效,请重新登录"); |
|
|
|
|
} |
|
|
|
|
try { |
|
|
|
|
|
|
|
|
|
nickName = AuthUtil.getNickName(); |
|
|
|
|
userId = AuthUtil.getUserId(); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error(">>>>> 签收异常报错", e); |
|
|
|
|
throw new CustomerException("当前登录信息不已失效,请重新登录"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); |
|
|
|
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); |
|
|
|
|
// ---------------------------------2023-09-09 包件签收调整---------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
//思路: 在于一个客户下不会出现重复的包条码
|
|
|
|
|
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse(); |
|
|
|
|
if (Objects.isNull(myCurrentWarehouse)) { |
|
|
|
|
throw new CustomerException(403, "仓库信息不能为空"); |
|
|
|
|
} |
|
|
|
|
//思路: 在于一个客户下不会出现重复的包条码
|
|
|
|
|
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse(); |
|
|
|
|
if (Objects.isNull(myCurrentWarehouse)) { |
|
|
|
|
throw new CustomerException(403, "仓库信息不能为空"); |
|
|
|
|
} |
|
|
|
|
// DistributionParcelListEntity parcelListEntity = distributionParcelListService.selectByOrderPackageCode(distrilbutionloadingscanDTO.getBarcodes(), myCurrentWarehouse.getId());
|
|
|
|
|
// if (Func.isEmpty(parcelListEntity)) {
|
|
|
|
|
// return Resp.scanFail("包件信息不存在", "包件信息不存在");
|
|
|
|
|
// }
|
|
|
|
|
DistributionReservationEntity distributionReservationEntity = distributionReservationMapper.selectById(distrilbutionloadingscanDTO.getReservationId()); |
|
|
|
|
if (Func.isEmpty(distributionReservationEntity)) { |
|
|
|
|
log.error("########无效的预约单,reservationId:{}", distrilbutionloadingscanDTO.getReservationId()); |
|
|
|
|
return R.fail("服务器正忙!!"); |
|
|
|
|
} |
|
|
|
|
if (Func.isEmpty(distrilbutionloadingscanDTO.getBarcodes())) { |
|
|
|
|
log.error("########缺失参数,barcodes:{}", distrilbutionloadingscanDTO.getBarcodes()); |
|
|
|
|
return R.fail("服务器正忙!!"); |
|
|
|
|
} |
|
|
|
|
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda() |
|
|
|
|
.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) { |
|
|
|
|
DistributionReservationEntity distributionReservationEntity = distributionReservationMapper.selectById(distrilbutionloadingscanDTO.getReservationId()); |
|
|
|
|
if (Func.isEmpty(distributionReservationEntity)) { |
|
|
|
|
log.error("########无效的预约单,reservationId:{}", distrilbutionloadingscanDTO.getReservationId()); |
|
|
|
|
return R.fail("服务器正忙!!"); |
|
|
|
|
} |
|
|
|
|
if (Func.isEmpty(distrilbutionloadingscanDTO.getBarcodes())) { |
|
|
|
|
log.error("########缺失参数,barcodes:{}", distrilbutionloadingscanDTO.getBarcodes()); |
|
|
|
|
return R.fail("存在已签收包件!!"); |
|
|
|
|
return R.fail("服务器正忙!!"); |
|
|
|
|
} |
|
|
|
|
List<Long> ids = parcelListEntities.stream().map(DistributionParcelListEntity::getId).collect(Collectors.toList()); |
|
|
|
|
List<DistributionLoadscanAbnormalEntity> abnormalEntities = distributionLoadscanAbnormalService.list(Wrappers.<DistributionLoadscanAbnormalEntity>query().lambda() |
|
|
|
|
.in(DistributionLoadscanAbnormalEntity::getPackageId, ids) |
|
|
|
|
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda() |
|
|
|
|
.in(DistributionParcelListEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcodes()) |
|
|
|
|
.eq(DistributionParcelListEntity::getWarehouseId, myCurrentWarehouse.getId()) |
|
|
|
|
); |
|
|
|
|
if (!abnormalEntities.isEmpty()) { |
|
|
|
|
//判断此包件的异常是否是当前扫描车次和客户
|
|
|
|
|
//首先判断存在异常是否不属于当前车次和客户
|
|
|
|
|
boolean a = abnormalEntities.stream().allMatch(b -> !deliveryListEntity.getId().equals(b.getDeliveryListId()) || !distrilbutionloadingscanDTO.getReservationId().equals(b.getReservationId())); |
|
|
|
|
if (a) { |
|
|
|
|
//该异常属于其他车次
|
|
|
|
|
String code = abnormalEntities.stream().filter(c -> !deliveryListEntity.getId().equals(c.getDeliveryListId()) || !distrilbutionloadingscanDTO.getReservationId().equals(c.getReservationId())).map(DistributionLoadscanAbnormalEntity::getPackageCode).collect(Collectors.joining(",")); |
|
|
|
|
log.info("包件已在其他车次存在异常 >>>>包条码:{}", code); |
|
|
|
|
log.info("包件已在其他车次存在异常 >>>>当前车次:{},异常车次:{}", deliveryListEntity.getTrainNumber(), abnormalEntities.stream().map(DistributionLoadscanAbnormalEntity::getTrainNumber).collect(Collectors.joining(","))); |
|
|
|
|
return R.fail(code + "已在其他车次执行异常!!"); |
|
|
|
|
} |
|
|
|
|
//判断具体的装车信息
|
|
|
|
|
DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
if (Func.isEmpty(deliveryListEntity)) { |
|
|
|
|
throw new CustomerException(403, "配送异常!!!"); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.selectPackageListByReservationId(distrilbutionloadingscanDTO.getReservationId()); |
|
|
|
|
//查询该客户是否存在该包件信息
|
|
|
|
|
String[] orderPackageCodes = distrilbutionloadingscanDTO.getBarcodes().split(","); |
|
|
|
|
if (Func.isEmpty(orderPackageCodes)) { |
|
|
|
|
//缺失包件码参数
|
|
|
|
|
log.error("PC签收缺失包件码参数"); |
|
|
|
|
return R.fail("请联系管理员!!!"); |
|
|
|
|
} |
|
|
|
|
List<String> orderpackages = new ArrayList<>(); |
|
|
|
|
List<Long> packageLockIds = new ArrayList<>(); |
|
|
|
|
List<JSONObject> jsonObjects = new ArrayList<>(); |
|
|
|
|
List<JSONObject> aaa = new ArrayList<>(); |
|
|
|
|
for (String orderPackageCode : orderPackageCodes) { |
|
|
|
|
List<DistributionParcelListEntity> collect = parcelListEntityList.stream().filter(p -> p.getOrderPackageCode().equals(orderPackageCode)).collect(Collectors.toList()); |
|
|
|
|
String content = ""; |
|
|
|
|
if (Func.isNotEmpty(collect) && collect.size() == 1) { |
|
|
|
|
//存在则查询该包件是否进行装车
|
|
|
|
|
DistributionParcelListEntity parcelListEntity = collect.get(0); |
|
|
|
|
JSONObject trunklinePackageTrackLog = new JSONObject(); |
|
|
|
|
DistributionLoadscanEntity distributionLoadscanEntity = distributionLoadscanMapper.selectOne(Wrappers.<DistributionLoadscanEntity>query().lambda() |
|
|
|
|
.ne(DistributionLoadscanEntity::getScanStatus, 1) |
|
|
|
|
.eq(DistributionLoadscanEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId()) |
|
|
|
|
.eq(DistributionLoadscanEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId()) |
|
|
|
|
.eq(DistributionLoadscanEntity::getOrderPackageCode, parcelListEntity.getOrderPackageCode())); |
|
|
|
|
if (Func.isNotEmpty(distributionLoadscanEntity)) { |
|
|
|
|
if (distributionLoadscanEntity.getSignforState().equals(2)) { |
|
|
|
|
return Resp.scanFail("重复扫描", "重复扫描"); |
|
|
|
|
if (Func.isNotEmpty(parcelListEntities)) { |
|
|
|
|
boolean flag = parcelListEntities.stream().anyMatch(p -> OrderPackageStatusConstant.yiqianshou.getValue().equals(p.getOrderPackageStatus())); |
|
|
|
|
if (flag) { |
|
|
|
|
log.error("########缺失参数,barcodes:{}", distrilbutionloadingscanDTO.getBarcodes()); |
|
|
|
|
return R.fail("存在已签收包件!!"); |
|
|
|
|
} |
|
|
|
|
List<Long> ids = parcelListEntities.stream().map(DistributionParcelListEntity::getId).collect(Collectors.toList()); |
|
|
|
|
List<DistributionLoadscanAbnormalEntity> abnormalEntities = distributionLoadscanAbnormalService.list(Wrappers.<DistributionLoadscanAbnormalEntity>query().lambda() |
|
|
|
|
.in(DistributionLoadscanAbnormalEntity::getPackageId, ids) |
|
|
|
|
); |
|
|
|
|
if (!abnormalEntities.isEmpty()) { |
|
|
|
|
//判断此包件的异常是否是当前扫描车次和客户
|
|
|
|
|
//首先判断存在异常是否不属于当前车次和客户
|
|
|
|
|
boolean a = abnormalEntities.stream().allMatch(b -> !deliveryListEntity.getId().equals(b.getDeliveryListId()) || !distrilbutionloadingscanDTO.getReservationId().equals(b.getReservationId())); |
|
|
|
|
if (a) { |
|
|
|
|
//该异常属于其他车次
|
|
|
|
|
String code = abnormalEntities.stream().filter(c -> !deliveryListEntity.getId().equals(c.getDeliveryListId()) || !distrilbutionloadingscanDTO.getReservationId().equals(c.getReservationId())).map(DistributionLoadscanAbnormalEntity::getPackageCode).collect(Collectors.joining(",")); |
|
|
|
|
log.info("包件已在其他车次存在异常 >>>>包条码:{}", code); |
|
|
|
|
log.info("包件已在其他车次存在异常 >>>>当前车次:{},异常车次:{}", deliveryListEntity.getTrainNumber(), abnormalEntities.stream().map(DistributionLoadscanAbnormalEntity::getTrainNumber).collect(Collectors.joining(","))); |
|
|
|
|
return R.fail(code + "已在其他车次执行异常!!"); |
|
|
|
|
} |
|
|
|
|
//存在装车记录,进行修改即可
|
|
|
|
|
//进行签收记录数据的维护
|
|
|
|
|
distributionLoadscanEntity.setSigningTime(simpleDateFormat.format(new Date())); |
|
|
|
|
distributionLoadscanEntity.setSignforState(2); |
|
|
|
|
distributionLoadscanEntity.setReceivedQuantity(distributionLoadscanEntity.getLoadedNub()); |
|
|
|
|
//判断具体的装车信息
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.selectPackageListByReservationId(distrilbutionloadingscanDTO.getReservationId()); |
|
|
|
|
//查询该客户是否存在该包件信息
|
|
|
|
|
String[] orderPackageCodes = distrilbutionloadingscanDTO.getBarcodes().split(","); |
|
|
|
|
if (Func.isEmpty(orderPackageCodes)) { |
|
|
|
|
//缺失包件码参数
|
|
|
|
|
log.error("PC签收缺失包件码参数"); |
|
|
|
|
return R.fail("请联系管理员!!!"); |
|
|
|
|
} |
|
|
|
|
List<String> orderpackages = new ArrayList<>(); |
|
|
|
|
List<Long> packageLockIds = new ArrayList<>(); |
|
|
|
|
List<JSONObject> jsonObjects = new ArrayList<>(); |
|
|
|
|
List<JSONObject> aaa = new ArrayList<>(); |
|
|
|
|
for (String orderPackageCode : orderPackageCodes) { |
|
|
|
|
List<DistributionParcelListEntity> collect = parcelListEntityList.stream().filter(p -> p.getOrderPackageCode().equals(orderPackageCode)).collect(Collectors.toList()); |
|
|
|
|
String content = ""; |
|
|
|
|
if (Func.isNotEmpty(collect) && collect.size() == 1) { |
|
|
|
|
//存在则查询该包件是否进行装车
|
|
|
|
|
DistributionParcelListEntity parcelListEntity = collect.get(0); |
|
|
|
|
JSONObject trunklinePackageTrackLog = new JSONObject(); |
|
|
|
|
DistributionLoadscanEntity distributionLoadscanEntity = distributionLoadscanMapper.selectOne(Wrappers.<DistributionLoadscanEntity>query().lambda() |
|
|
|
|
.ne(DistributionLoadscanEntity::getScanStatus, 1) |
|
|
|
|
.eq(DistributionLoadscanEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId()) |
|
|
|
|
.eq(DistributionLoadscanEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId()) |
|
|
|
|
.eq(DistributionLoadscanEntity::getOrderPackageCode, parcelListEntity.getOrderPackageCode())); |
|
|
|
|
if (Func.isNotEmpty(distributionLoadscanEntity)) { |
|
|
|
|
if (distributionLoadscanEntity.getSignforState().equals(2)) { |
|
|
|
|
return Resp.scanFail("重复扫描", "重复扫描"); |
|
|
|
|
} |
|
|
|
|
//存在装车记录,进行修改即可
|
|
|
|
|
//进行签收记录数据的维护
|
|
|
|
|
distributionLoadscanEntity.setSigningTime(simpleDateFormat.format(new Date())); |
|
|
|
|
distributionLoadscanEntity.setSignforState(2); |
|
|
|
|
distributionLoadscanEntity.setReceivedQuantity(distributionLoadscanEntity.getLoadedNub()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
distributionLoadscanEntity.setSigningUser(nickName); |
|
|
|
|
distributionLoadscanEntity.setSigningUserId(userId); |
|
|
|
|
distributionLoadscanEntity.setSignforType(LoadScanSigningTypeStatusConstant.wenyuanpiliangqianshou.getValue()); |
|
|
|
|
distributionLoadscanEntity.setSigningUser(nickName); |
|
|
|
|
distributionLoadscanEntity.setSigningUserId(userId); |
|
|
|
|
distributionLoadscanEntity.setSignforType(LoadScanSigningTypeStatusConstant.wenyuanpiliangqianshou.getValue()); |
|
|
|
|
|
|
|
|
|
distributionLoadscanService.updateById(distributionLoadscanEntity); |
|
|
|
|
packageLockIds.add(distributionLoadscanEntity.getPackageId()); |
|
|
|
|
//缺少一个异步维护包件签收的方法
|
|
|
|
|
// distributionAsyncService.changeOrderSignforStatus(collect.get(0));
|
|
|
|
|
Integer j = distributionSignforMapper.updateSignforNum(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub()); |
|
|
|
|
//更新签收人
|
|
|
|
|
Integer m = distributionSignforMapper.updateSignUser(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), AuthUtil.getUser()); |
|
|
|
|
//下架解托
|
|
|
|
|
warehouseUpdownTypeClient.downPackageOrDelTray(distributionLoadscanEntity.getOrderPackageCode(), myCurrentWarehouse.getId(), "签收下架解托"); |
|
|
|
|
content = "包件在" + myCurrentWarehouse.getName() + "由" + AuthUtil.getNickName() + "后台签收,装车方式:扫描装车,配送车次号:" + deliveryListEntity.getTrainNumber() + "预约任务号:" + distributionReservationEntity.getReservationCode(); |
|
|
|
|
try { |
|
|
|
|
trunklinePackageTrackLog = handleLogJSONObject(myCurrentWarehouse, AuthUtil.getUser(), distributionLoadscanEntity.getOrderPackageCode(), content, WorkNodeEnums.DISTRIBUTION_SIGN_FOR.getCode(), deliveryListEntity.getId().toString(), parcelListEntity.getWarehouseEntryTimeEnd()); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error("装车日志数据错误", e); |
|
|
|
|
} |
|
|
|
|
aaa.add(trunklinePackageTrackLog); |
|
|
|
|
} else { |
|
|
|
|
//这里装车的数据需要进行补录
|
|
|
|
|
DistributionDeliverySelfEntity distributionDeliverySelfEntity = new DistributionDeliverySelfDTO(); |
|
|
|
|
if (deliveryListEntity.getKind().equals(ServiceConstant.DELIVERLIST_KIND_SELF)) { |
|
|
|
|
distributionDeliverySelfEntity = distributionDeliverySelfMapper.selectOne(new QueryWrapper<DistributionDeliverySelfEntity>().lambda() |
|
|
|
|
.eq(DistributionDeliverySelfEntity::getIsMaster, ServiceConstant.IS_MASTER_YES) |
|
|
|
|
.eq(DistributionDeliverySelfEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId()) |
|
|
|
|
); |
|
|
|
|
distributionLoadscanService.updateById(distributionLoadscanEntity); |
|
|
|
|
packageLockIds.add(distributionLoadscanEntity.getPackageId()); |
|
|
|
|
//缺少一个异步维护包件签收的方法
|
|
|
|
|
// distributionAsyncService.changeOrderSignforStatus(collect.get(0));
|
|
|
|
|
Integer j = distributionSignforMapper.updateSignforNum(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub()); |
|
|
|
|
//更新签收人
|
|
|
|
|
Integer m = distributionSignforMapper.updateSignUser(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), AuthUtil.getUser()); |
|
|
|
|
//下架解托
|
|
|
|
|
warehouseUpdownTypeClient.downPackageOrDelTray(distributionLoadscanEntity.getOrderPackageCode(), myCurrentWarehouse.getId(), "签收下架解托"); |
|
|
|
|
content = "包件在" + myCurrentWarehouse.getName() + "由" + AuthUtil.getNickName() + "后台签收,装车方式:扫描装车,配送车次号:" + deliveryListEntity.getTrainNumber() + "预约任务号:" + distributionReservationEntity.getReservationCode(); |
|
|
|
|
try { |
|
|
|
|
trunklinePackageTrackLog = handleLogJSONObject(myCurrentWarehouse, AuthUtil.getUser(), distributionLoadscanEntity.getOrderPackageCode(), content, WorkNodeEnums.DISTRIBUTION_SIGN_FOR.getCode(), deliveryListEntity.getId().toString(), parcelListEntity.getWarehouseEntryTimeEnd()); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error("装车日志数据错误", e); |
|
|
|
|
} |
|
|
|
|
aaa.add(trunklinePackageTrackLog); |
|
|
|
|
} else { |
|
|
|
|
DistributionDeliveryTripartiteEntity distributionDeliveryTripartiteEntity = distributionDeliveryTripartiteMapper.selectOne(new QueryWrapper<DistributionDeliveryTripartiteEntity>().lambda() |
|
|
|
|
.eq(DistributionDeliveryTripartiteEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId())); |
|
|
|
|
BeanUtils.copyProperties(distributionDeliveryTripartiteEntity, distributionDeliverySelfEntity); |
|
|
|
|
} |
|
|
|
|
DistributionDeliveryListEntity listEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
if (Func.isEmpty(listEntity)) { |
|
|
|
|
log.error("##########配送计划异常:{}", listEntity); |
|
|
|
|
return Resp.scanFail("服务器正忙...", "服务器正忙"); |
|
|
|
|
} |
|
|
|
|
//查询配送计划的计划司机
|
|
|
|
|
distributionLoadscanEntity = new DistributionLoadscanEntity(); |
|
|
|
|
if (StringUtils.isNotBlank(distributionDeliverySelfEntity.getDriverPhone())) { |
|
|
|
|
distributionLoadscanEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone()); |
|
|
|
|
} |
|
|
|
|
if (StringUtils.isNotBlank(distributionDeliverySelfEntity.getVehicleNub())) { |
|
|
|
|
distributionLoadscanEntity.setVehicleName(distributionDeliverySelfEntity.getVehicleNub()); |
|
|
|
|
} |
|
|
|
|
if (StringUtils.isNotBlank(distributionDeliverySelfEntity.getDriverId())) { |
|
|
|
|
distributionLoadscanEntity.setDriverId(distributionDeliverySelfEntity.getDriverId()); |
|
|
|
|
} |
|
|
|
|
if (Func.isNotEmpty(distributionDeliverySelfEntity.getId())) { |
|
|
|
|
distributionLoadscanEntity.setLoadingId(distributionDeliverySelfEntity.getId().toString()); |
|
|
|
|
} |
|
|
|
|
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverName())) { |
|
|
|
|
distributionLoadscanEntity.setDriverName(distributionDeliverySelfEntity.getDriverName()); |
|
|
|
|
} |
|
|
|
|
if (StringUtils.isNotBlank(distributionDeliverySelfEntity.getVehicleId())) { |
|
|
|
|
distributionLoadscanEntity.setVehicleId(distributionDeliverySelfEntity.getVehicleId()); |
|
|
|
|
} |
|
|
|
|
Date loadScanTime = new Date(); |
|
|
|
|
distributionLoadscanEntity.setScanTime(simpleDateFormat.format(loadScanTime)); |
|
|
|
|
distributionLoadscanEntity.setPackageId(parcelListEntity.getId()); |
|
|
|
|
distributionLoadscanEntity.setOrderPackageCode(parcelListEntity.getOrderPackageCode()); |
|
|
|
|
Date signingTime = new Date(System.currentTimeMillis() + (1000 * 60)); |
|
|
|
|
distributionLoadscanEntity.setSigningTime(simpleDateFormat.format(signingTime)); |
|
|
|
|
distributionLoadscanEntity.setReceivedQuantity(parcelListEntity.getQuantity()); |
|
|
|
|
distributionLoadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId()); |
|
|
|
|
distributionLoadscanEntity.setIsSignfor(2); |
|
|
|
|
distributionLoadscanEntity.setIsInsert(2); |
|
|
|
|
distributionLoadscanEntity.setSignforType(LoadScanSigningTypeStatusConstant.wenyuanpiliangqianshou.getValue()); |
|
|
|
|
distributionLoadscanEntity.setWarehouseId(myCurrentWarehouse.getId()); |
|
|
|
|
distributionLoadscanEntity.setWarehouseName(myCurrentWarehouse.getName()); |
|
|
|
|
distributionLoadscanEntity.setSignforState(2); |
|
|
|
|
distributionLoadscanEntity.setPackageNub(parcelListEntity.getQuantity()); |
|
|
|
|
distributionLoadscanEntity.setOrderId(parcelListEntity.getStockArticleId()); |
|
|
|
|
distributionLoadscanEntity.setLoadedNub(parcelListEntity.getQuantity()); |
|
|
|
|
distributionLoadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId()); |
|
|
|
|
distributionLoadscanEntity.setDeliveryId(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
distributionLoadscanEntity.setScanUser(AuthUtil.getUser().getNickName()); |
|
|
|
|
distributionLoadscanEntity.setSigningUser(AuthUtil.getUser().getNickName()); |
|
|
|
|
distributionLoadscanEntity.setSigningUserId(AuthUtil.getUser().getUserId()); |
|
|
|
|
distributionLoadscanEntity.setScanStatus(LoadingStatusConstant.buluzhuangche.getValue()); |
|
|
|
|
distributionLoadscanService.save(distributionLoadscanEntity); |
|
|
|
|
packageLockIds.add(distributionLoadscanEntity.getPackageId()); |
|
|
|
|
JSONObject jsonObject = new JSONObject(); |
|
|
|
|
jsonObject.put("code", distributionLoadscanEntity.getOrderPackageCode()); |
|
|
|
|
jsonObject.put("warehouseId", myCurrentWarehouse.getId()); |
|
|
|
|
jsonObject.put("taskId", distrilbutionloadingscanDTO.getReservationId()); |
|
|
|
|
jsonObject.put("type", 1); |
|
|
|
|
jsonObject.put("num", 1); |
|
|
|
|
jsonObject.put("remark", "文员签收下架"); |
|
|
|
|
jsonObjects.add(jsonObject); |
|
|
|
|
//进行签收数量的修改
|
|
|
|
|
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
//更新装车包件数和签收包件数
|
|
|
|
|
Integer j = distributionSignforMapper.updateSignforByReservationId(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub()); |
|
|
|
|
//更新签收人
|
|
|
|
|
Integer m = distributionSignforMapper.updateSignUser(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), AuthUtil.getUser()); |
|
|
|
|
// 包件解托下架
|
|
|
|
|
content = "包件在" + myCurrentWarehouse.getName() + "由" + AuthUtil.getNickName() + "后台签收,装车方式:补录装车,配送车次号:" + deliveryListEntity.getTrainNumber() + "预约任务号:" + distributionReservationEntity.getReservationCode(); |
|
|
|
|
try { |
|
|
|
|
trunklinePackageTrackLog = handleLogJSONObject(myCurrentWarehouse, AuthUtil.getUser(), distributionLoadscanEntity.getOrderPackageCode(), content, WorkNodeEnums.DISTRIBUTION_SIGN_FOR.getCode(), deliveryListEntity.getId().toString(), parcelListEntity.getWarehouseEntryTimeEnd()); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error("装车日志数据错误", e); |
|
|
|
|
//这里装车的数据需要进行补录
|
|
|
|
|
DistributionDeliverySelfEntity distributionDeliverySelfEntity = new DistributionDeliverySelfDTO(); |
|
|
|
|
if (deliveryListEntity.getKind().equals(ServiceConstant.DELIVERLIST_KIND_SELF)) { |
|
|
|
|
distributionDeliverySelfEntity = distributionDeliverySelfMapper.selectOne(new QueryWrapper<DistributionDeliverySelfEntity>().lambda() |
|
|
|
|
.eq(DistributionDeliverySelfEntity::getIsMaster, ServiceConstant.IS_MASTER_YES) |
|
|
|
|
.eq(DistributionDeliverySelfEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId()) |
|
|
|
|
); |
|
|
|
|
} else { |
|
|
|
|
DistributionDeliveryTripartiteEntity distributionDeliveryTripartiteEntity = distributionDeliveryTripartiteMapper.selectOne(new QueryWrapper<DistributionDeliveryTripartiteEntity>().lambda() |
|
|
|
|
.eq(DistributionDeliveryTripartiteEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId())); |
|
|
|
|
BeanUtils.copyProperties(distributionDeliveryTripartiteEntity, distributionDeliverySelfEntity); |
|
|
|
|
} |
|
|
|
|
DistributionDeliveryListEntity listEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
if (Func.isEmpty(listEntity)) { |
|
|
|
|
log.error("##########配送计划异常:{}", listEntity); |
|
|
|
|
return Resp.scanFail("服务器正忙...", "服务器正忙"); |
|
|
|
|
} |
|
|
|
|
//查询配送计划的计划司机
|
|
|
|
|
distributionLoadscanEntity = new DistributionLoadscanEntity(); |
|
|
|
|
if (StringUtils.isNotBlank(distributionDeliverySelfEntity.getDriverPhone())) { |
|
|
|
|
distributionLoadscanEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone()); |
|
|
|
|
} |
|
|
|
|
if (StringUtils.isNotBlank(distributionDeliverySelfEntity.getVehicleNub())) { |
|
|
|
|
distributionLoadscanEntity.setVehicleName(distributionDeliverySelfEntity.getVehicleNub()); |
|
|
|
|
} |
|
|
|
|
if (StringUtils.isNotBlank(distributionDeliverySelfEntity.getDriverId())) { |
|
|
|
|
distributionLoadscanEntity.setDriverId(distributionDeliverySelfEntity.getDriverId()); |
|
|
|
|
} |
|
|
|
|
if (Func.isNotEmpty(distributionDeliverySelfEntity.getId())) { |
|
|
|
|
distributionLoadscanEntity.setLoadingId(distributionDeliverySelfEntity.getId().toString()); |
|
|
|
|
} |
|
|
|
|
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverName())) { |
|
|
|
|
distributionLoadscanEntity.setDriverName(distributionDeliverySelfEntity.getDriverName()); |
|
|
|
|
} |
|
|
|
|
if (StringUtils.isNotBlank(distributionDeliverySelfEntity.getVehicleId())) { |
|
|
|
|
distributionLoadscanEntity.setVehicleId(distributionDeliverySelfEntity.getVehicleId()); |
|
|
|
|
} |
|
|
|
|
Date loadScanTime = new Date(); |
|
|
|
|
distributionLoadscanEntity.setScanTime(simpleDateFormat.format(loadScanTime)); |
|
|
|
|
distributionLoadscanEntity.setPackageId(parcelListEntity.getId()); |
|
|
|
|
distributionLoadscanEntity.setOrderPackageCode(parcelListEntity.getOrderPackageCode()); |
|
|
|
|
Date signingTime = new Date(System.currentTimeMillis() + (1000 * 60)); |
|
|
|
|
distributionLoadscanEntity.setSigningTime(simpleDateFormat.format(signingTime)); |
|
|
|
|
distributionLoadscanEntity.setReceivedQuantity(parcelListEntity.getQuantity()); |
|
|
|
|
distributionLoadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId()); |
|
|
|
|
distributionLoadscanEntity.setIsSignfor(2); |
|
|
|
|
distributionLoadscanEntity.setIsInsert(2); |
|
|
|
|
distributionLoadscanEntity.setSignforType(LoadScanSigningTypeStatusConstant.wenyuanpiliangqianshou.getValue()); |
|
|
|
|
distributionLoadscanEntity.setWarehouseId(myCurrentWarehouse.getId()); |
|
|
|
|
distributionLoadscanEntity.setWarehouseName(myCurrentWarehouse.getName()); |
|
|
|
|
distributionLoadscanEntity.setSignforState(2); |
|
|
|
|
distributionLoadscanEntity.setPackageNub(parcelListEntity.getQuantity()); |
|
|
|
|
distributionLoadscanEntity.setOrderId(parcelListEntity.getStockArticleId()); |
|
|
|
|
distributionLoadscanEntity.setLoadedNub(parcelListEntity.getQuantity()); |
|
|
|
|
distributionLoadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId()); |
|
|
|
|
distributionLoadscanEntity.setDeliveryId(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
distributionLoadscanEntity.setScanUser(AuthUtil.getUser().getNickName()); |
|
|
|
|
distributionLoadscanEntity.setSigningUser(AuthUtil.getUser().getNickName()); |
|
|
|
|
distributionLoadscanEntity.setSigningUserId(AuthUtil.getUser().getUserId()); |
|
|
|
|
distributionLoadscanEntity.setScanStatus(LoadingStatusConstant.buluzhuangche.getValue()); |
|
|
|
|
distributionLoadscanService.save(distributionLoadscanEntity); |
|
|
|
|
packageLockIds.add(distributionLoadscanEntity.getPackageId()); |
|
|
|
|
JSONObject jsonObject = new JSONObject(); |
|
|
|
|
jsonObject.put("code", distributionLoadscanEntity.getOrderPackageCode()); |
|
|
|
|
jsonObject.put("warehouseId", myCurrentWarehouse.getId()); |
|
|
|
|
jsonObject.put("taskId", distrilbutionloadingscanDTO.getReservationId()); |
|
|
|
|
jsonObject.put("type", 1); |
|
|
|
|
jsonObject.put("num", 1); |
|
|
|
|
jsonObject.put("remark", "文员签收下架"); |
|
|
|
|
jsonObjects.add(jsonObject); |
|
|
|
|
//进行签收数量的修改
|
|
|
|
|
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
//更新装车包件数和签收包件数
|
|
|
|
|
Integer j = distributionSignforMapper.updateSignforByReservationId(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub()); |
|
|
|
|
//更新签收人
|
|
|
|
|
Integer m = distributionSignforMapper.updateSignUser(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), AuthUtil.getUser()); |
|
|
|
|
// 包件解托下架
|
|
|
|
|
content = "包件在" + myCurrentWarehouse.getName() + "由" + AuthUtil.getNickName() + "后台签收,装车方式:补录装车,配送车次号:" + deliveryListEntity.getTrainNumber() + "预约任务号:" + distributionReservationEntity.getReservationCode(); |
|
|
|
|
try { |
|
|
|
|
trunklinePackageTrackLog = handleLogJSONObject(myCurrentWarehouse, AuthUtil.getUser(), distributionLoadscanEntity.getOrderPackageCode(), content, WorkNodeEnums.DISTRIBUTION_SIGN_FOR.getCode(), deliveryListEntity.getId().toString(), parcelListEntity.getWarehouseEntryTimeEnd()); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error("装车日志数据错误", e); |
|
|
|
|
} |
|
|
|
|
aaa.add(trunklinePackageTrackLog); |
|
|
|
|
} |
|
|
|
|
aaa.add(trunklinePackageTrackLog); |
|
|
|
|
} |
|
|
|
|
//修改包件状态为装车、签收
|
|
|
|
|
DistributionParcelListEntity updatePackage = parcelListEntity; |
|
|
|
|
updatePackage.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue()); |
|
|
|
|
updatePackage.setOrderPackageStatus(OrderPackageStatusConstant.yiqianshou.getValue()); |
|
|
|
|
distributionParcelListService.updateById(updatePackage); |
|
|
|
|
//维护签收包件状态
|
|
|
|
|
distributionStockArticleService.maintenanceOrderInfo(parcelListEntity.getOrderCode(), myCurrentWarehouse.getId()); |
|
|
|
|
//推送信息至工厂
|
|
|
|
|
// distributionAsyncService.sendFactory(parcelListEntity, simpleDateFormat.format(new Date()), distributionReservationEntity.getId(), distributionReservationEntity.getReservationCode(), myCurrentWarehouse.getName(), nickName);
|
|
|
|
|
sendNodeWorkDataBroadcast(parcelListEntity, distributionReservationEntity, distributionLoadscanEntity.getSigningTime(), myCurrentWarehouse); |
|
|
|
|
|
|
|
|
|
//收集包件
|
|
|
|
|
orderpackages.add(updatePackage.getOrderPackageCode()); |
|
|
|
|
//修改包件状态为装车、签收
|
|
|
|
|
DistributionParcelListEntity updatePackage = parcelListEntity; |
|
|
|
|
updatePackage.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue()); |
|
|
|
|
updatePackage.setOrderPackageStatus(OrderPackageStatusConstant.yiqianshou.getValue()); |
|
|
|
|
distributionParcelListService.updateById(updatePackage); |
|
|
|
|
//维护签收包件状态
|
|
|
|
|
distributionStockArticleService.maintenanceOrderInfo(parcelListEntity.getOrderCode(), myCurrentWarehouse.getId()); |
|
|
|
|
//推送信息至工厂
|
|
|
|
|
// distributionAsyncService.sendFactory(parcelListEntity, simpleDateFormat.format(new Date()), distributionReservationEntity.getId(), distributionReservationEntity.getReservationCode(), myCurrentWarehouse.getName(), nickName);
|
|
|
|
|
sendNodeWorkDataBroadcast(parcelListEntity, distributionReservationEntity, distributionLoadscanEntity.getSigningTime(), myCurrentWarehouse); |
|
|
|
|
|
|
|
|
|
//收集包件
|
|
|
|
|
orderpackages.add(updatePackage.getOrderPackageCode()); |
|
|
|
|
|
|
|
|
|
// 推送商家端
|
|
|
|
|
|
|
|
|
|
// 推送
|
|
|
|
|
// try {
|
|
|
|
|
// sendMessage(orderPackageCode, distributionReservationEntity.getReservationCode(),
|
|
|
|
|
// deliveryListEntity.getTrainNumber(), deliveryListEntity.getVehicleName(), deliveryListEntity.getDriverName(),
|
|
|
|
|
// AuthUtil.getUserName(), myCurrentWarehouse.getId(), AuthUtil.getTenantId());
|
|
|
|
|
// } catch (Exception e) {
|
|
|
|
|
//// throw new RuntimeException(e);
|
|
|
|
|
// log.error(">>>> 签收推送报错", e);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// 推送商家端
|
|
|
|
|
|
|
|
|
|
// 推送
|
|
|
|
|
// try {
|
|
|
|
|
// sendMessage(orderPackageCode, distributionReservationEntity.getReservationCode(),
|
|
|
|
|
// deliveryListEntity.getTrainNumber(), deliveryListEntity.getVehicleName(), deliveryListEntity.getDriverName(),
|
|
|
|
|
// AuthUtil.getUserName(), myCurrentWarehouse.getId(), AuthUtil.getTenantId());
|
|
|
|
|
// } catch (Exception e) {
|
|
|
|
|
//// throw new RuntimeException(e);
|
|
|
|
|
// log.error(">>>> 签收推送报错", e);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
//一个客户下出现重复包条码
|
|
|
|
|
log.error("############出现重复包条码:{}", collect); |
|
|
|
|
throw new RuntimeException("包件数据异常,请联系管理员!!!"); |
|
|
|
|
} else { |
|
|
|
|
//一个客户下出现重复包条码
|
|
|
|
|
log.error("############出现重复包条码:{}", collect); |
|
|
|
|
throw new RuntimeException("包件数据异常,请联系管理员!!!"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
trunklinePackageTrackLogClient.addPackageTrackLog(aaa); |
|
|
|
|
trunklinePackageTrackLogClient.addPackageTrackLog(aaa); |
|
|
|
|
|
|
|
|
|
//添加缓存
|
|
|
|
|
if (!packageLockIds.isEmpty()) { |
|
|
|
|
List<Long> a = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + deliveryListEntity.getTrainNumber() + "orderPackageCode:"); |
|
|
|
|
if (Func.isNotEmpty(a)) { |
|
|
|
|
assert a != null; |
|
|
|
|
boolean flag = a.stream().anyMatch(any -> packageLockIds.contains(any)); |
|
|
|
|
if (flag) { |
|
|
|
|
//正在操作,请稍后重试
|
|
|
|
|
throw new RuntimeException("该包件正在被操作,请稍后再试!!!"); |
|
|
|
|
//添加缓存
|
|
|
|
|
if (!packageLockIds.isEmpty()) { |
|
|
|
|
List<Long> a = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + deliveryListEntity.getTrainNumber() + "orderPackageCode:"); |
|
|
|
|
if (Func.isNotEmpty(a)) { |
|
|
|
|
assert a != null; |
|
|
|
|
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, 60L); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
packageLockIds.addAll(a); |
|
|
|
|
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + deliveryListEntity.getTrainNumber() + "orderPackageCode:", packageLockIds, 60L); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "trainNumber:" + deliveryListEntity.getTrainNumber() + "orderPackageCode:", packageLockIds, 60L); |
|
|
|
|
} |
|
|
|
|
//维护客户
|
|
|
|
|
distributionReservationService.maintenanceReservationInfo(distrilbutionloadingscanDTO.getReservationId()); |
|
|
|
|
//维护配送任务
|
|
|
|
|
distributionDeliveryListService.maintenanceDeliveryInfo(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
return R.data(orderpackages, "签收成功"); |
|
|
|
|
} catch (RuntimeException e) { |
|
|
|
|
log.error("签收异常", e); |
|
|
|
|
LogError logError = new LogError(); |
|
|
|
|
logError.setMessage(e.getMessage()); |
|
|
|
|
logClient.saveErrorLog(logError); |
|
|
|
|
throw new CustomerException("系统错误, 请联系管理员"); |
|
|
|
|
} |
|
|
|
|
//维护客户
|
|
|
|
|
distributionReservationService.maintenanceReservationInfo(distrilbutionloadingscanDTO.getReservationId()); |
|
|
|
|
//维护配送任务
|
|
|
|
|
distributionDeliveryListService.maintenanceDeliveryInfo(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
return R.data(orderpackages, "签收成功"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private boolean judgmentClient(DistributionReservationEntity distributionReservationEntity, Long stockArticleId) { |
|
|
|
|