From 2e95385416b56ca1269076600edf07f19a63f24a Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Wed, 7 Aug 2024 18:09:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=AD=BE=E6=94=B6=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E7=9A=84=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/DistributionSignforAppController.java | 10 +- .../DistributionDeliveryListController.java | 12 +- .../impl/DistributionSignforServiceImpl.java | 488 +++++++++--------- .../java/com/logpm/factory/TestService.java | 13 + 4 files changed, 276 insertions(+), 247 deletions(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionSignforAppController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionSignforAppController.java index 0b1f31688..8616b38e4 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionSignforAppController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionSignforAppController.java @@ -141,9 +141,10 @@ public class DistributionSignforAppController { @PostMapping("/signfor") @ApiOperationSupport(order = 2) public R signfor(@Valid @RequestBody DistrilbutionAppsignforDTO distrilbutionloadingscanDTO) { - R r = distributionSignforService.signfor(distrilbutionloadingscanDTO); - long time = new Date().getTime(); + try { + R r = distributionSignforService.signfor(distrilbutionloadingscanDTO); + long time = new Date().getTime(); BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); if (Objects.isNull(myCurrentWarehouse)) { log.warn("#############signfor:" + time + " 下架仓库信息为空 myCurrentWarehouse={}", myCurrentWarehouse); @@ -162,11 +163,12 @@ public class DistributionSignforAppController { } updownTypeClient.downPackageOrDelTray(orderPackageCodes, myCurrentWarehouse.getId(), "签收下架解托"); } + return r; } catch (Exception e) { - log.error("#############signfor:" + time + " 下架失败", e); + log.error("#############signfor:签收报错", e); } - return r; + return R.fail("签收失败!"); } /** diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java index e557e20cf..d3ba24c18 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java @@ -466,10 +466,10 @@ public class DistributionDeliveryListController extends BladeController { @ApiOperationSupport(order = 2) @ApiOperation(value = "PC签收包件") public R signfor(@Valid @RequestBody DistrilbutionAppsignforDTO distrilbutionloadingscanDTO) { - R r = distributionSignforService.signforPC(distrilbutionloadingscanDTO); - long time = new Date().getTime(); - try{ + try{ + R r = distributionSignforService.signforPC(distrilbutionloadingscanDTO); + long time = new Date().getTime(); BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse(); if(Objects.isNull(myCurrentWarehouse)){ log.warn("#############signforPC:"+time+" 仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse); @@ -489,11 +489,13 @@ public class DistributionDeliveryListController extends BladeController { } warehouseUpdownTypeClient.downPackageOrDelTray(orderPackageCodes,myCurrentWarehouse.getId(),"签收下架解托"); } + return r; }catch (Exception e){ - log.error("#############signforPC:"+time+" 下架失败",e); + log.error("#############signforPC:",e); + return R.fail("签收失败"); } - return r; + } @PostMapping("/deliveryInventorySign") diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java index 445c2295a..d5e3e3793 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java @@ -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 selectDistributionSignforPage(IPage page, DistributionSignforVO distributionSignfor) { @@ -2522,7 +2527,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl packageLockIds = new ArrayList<>(); try { @@ -2805,7 +2809,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl>>>> 签收异常报错", e); - throw new CustomerException("当前登录信息已失效,请重新登录"); + throw new CustomerException("签收异常报错"+e.getMessage()); } } @@ -2868,269 +2872,277 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl>>>> 签收异常报错", 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 parcelListEntities = distributionParcelListService.list(Wrappers.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 ids = parcelListEntities.stream().map(DistributionParcelListEntity::getId).collect(Collectors.toList()); - List abnormalEntities = distributionLoadscanAbnormalService.list(Wrappers.query().lambda() - .in(DistributionLoadscanAbnormalEntity::getPackageId, ids) + List parcelListEntities = distributionParcelListService.list(Wrappers.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 parcelListEntityList = distributionReservationMapper.selectPackageListByReservationId(distrilbutionloadingscanDTO.getReservationId()); - //查询该客户是否存在该包件信息 - String[] orderPackageCodes = distrilbutionloadingscanDTO.getBarcodes().split(","); - if (Func.isEmpty(orderPackageCodes)) { - //缺失包件码参数 - log.error("PC签收缺失包件码参数"); - return R.fail("请联系管理员!!!"); - } - List orderpackages = new ArrayList<>(); - List packageLockIds = new ArrayList<>(); - List jsonObjects = new ArrayList<>(); - List aaa = new ArrayList<>(); - for (String orderPackageCode : orderPackageCodes) { - List 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.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 ids = parcelListEntities.stream().map(DistributionParcelListEntity::getId).collect(Collectors.toList()); + List abnormalEntities = distributionLoadscanAbnormalService.list(Wrappers.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 parcelListEntityList = distributionReservationMapper.selectPackageListByReservationId(distrilbutionloadingscanDTO.getReservationId()); + //查询该客户是否存在该包件信息 + String[] orderPackageCodes = distrilbutionloadingscanDTO.getBarcodes().split(","); + if (Func.isEmpty(orderPackageCodes)) { + //缺失包件码参数 + log.error("PC签收缺失包件码参数"); + return R.fail("请联系管理员!!!"); + } + List orderpackages = new ArrayList<>(); + List packageLockIds = new ArrayList<>(); + List jsonObjects = new ArrayList<>(); + List aaa = new ArrayList<>(); + for (String orderPackageCode : orderPackageCodes) { + List 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.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().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().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().lambda() + .eq(DistributionDeliverySelfEntity::getIsMaster, ServiceConstant.IS_MASTER_YES) + .eq(DistributionDeliverySelfEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId()) + ); + } else { + DistributionDeliveryTripartiteEntity distributionDeliveryTripartiteEntity = distributionDeliveryTripartiteMapper.selectOne(new QueryWrapper().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 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 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) { diff --git a/blade-service/logpm-factory/src/test/java/com/logpm/factory/TestService.java b/blade-service/logpm-factory/src/test/java/com/logpm/factory/TestService.java index aaeba9c9c..0384b569b 100644 --- a/blade-service/logpm-factory/src/test/java/com/logpm/factory/TestService.java +++ b/blade-service/logpm-factory/src/test/java/com/logpm/factory/TestService.java @@ -35,6 +35,7 @@ import com.logpm.factory.oupai.entity.OpOrderStatusLogEntity; import com.logpm.factory.oupai.service.IFactoryOrderService; import com.logpm.factory.oupai.service.IFactoryPackageService; import com.logpm.factory.oupai.service.IOuPaiFactoryDataService; +import com.logpm.factory.oupai.service.IOuPaiFactoryService; import com.logpm.factory.oupai.service.impl.OuPaiFactoryServiceImpl; import com.logpm.factory.oupai.vo.OuPaiDataPushVO; import com.logpm.factory.pan.service.IPanFactoryDataService; @@ -126,6 +127,7 @@ public class TestService { @Autowired private IMtFactoryOrderMainService mtFactoryOrderMainService; + @Test public void test2() { // ouPaiFactoryService.findOuPaiFactoryOrderDTOByCarCarNumber("LCD230505047"); @@ -931,6 +933,17 @@ public class TestService { @Autowired private IFactoryOrderService factoryOrderService; + + @Test + public void test20() { + OrderStatusDTO orderStatusDTO = new OrderStatusDTO(); + orderStatusDTO.setStatus("1"); + orderStatusDTO.setUnitNo("23112702738-4"); + + + ouPaiFactoryService.handleStatusData(orderStatusDTO); + } + @Test public void test19() { OrderStatusDTO orderStatusDTO = new OrderStatusDTO();