diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/LauncherConstant.java b/blade-biz-common/src/main/java/org/springblade/common/constant/LauncherConstant.java index 1bf322b87..149f15f06 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/constant/LauncherConstant.java +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/LauncherConstant.java @@ -45,7 +45,7 @@ public interface LauncherConstant { /** * nacos dev 地址 */ - String NACOS_DEV_ADDR = "192.168.3.100:8848"; + String NACOS_DEV_ADDR = "192.168.2.46:8848"; /** @@ -77,7 +77,7 @@ public interface LauncherConstant { /** * seata dev 地址 */ - String SEATA_DEV_ADDR = "192.168.3.100:8091"; + String SEATA_DEV_ADDR = "192.168.2.46:8091"; /** diff --git a/blade-biz-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java b/blade-biz-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java index f6aa5bef8..485bc9ce4 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java +++ b/blade-biz-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java @@ -41,7 +41,7 @@ public class LauncherServiceImpl implements LauncherService { PropsUtil.setProperty(props, "spring.cloud.nacos.config.server-addr", LauncherConstant.nacosAddr(profile)); // 开启elk日志 -// PropsUtil.setProperty(props, "blade.log.elk.destination", LauncherConstant.elkAddr(profile)); + PropsUtil.setProperty(props, "blade.log.elk.destination", LauncherConstant.elkAddr(profile)); diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/OrderCodeDataVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/OrderCodeDataVO.java index 3410ca6c4..1f74fe21b 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/OrderCodeDataVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/OrderCodeDataVO.java @@ -19,5 +19,6 @@ public class OrderCodeDataVO { @ApiModelProperty(value = "模板填充内容") private List> dataList; + private List moldList; } diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/OrderPackgeCodeDataVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/OrderPackgeCodeDataVO.java index c51d7c6ee..508e5e841 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/OrderPackgeCodeDataVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/OrderPackgeCodeDataVO.java @@ -20,4 +20,6 @@ public class OrderPackgeCodeDataVO { @ApiModelProperty(value = "模板填充内容") private List dataList; + private List moldList; + } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsOrderVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsOrderVO.java index edf46b866..5618cc4cf 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsOrderVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsOrderVO.java @@ -5,4 +5,10 @@ import lombok.Data; @Data public class TrunklineCarsOrderVO extends TrunklineCarsOrderEntity { + + private String mallName; + private String mallPerson; + private String mallMobile; + private String mallAddress; + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java index 3ef7ec7d2..896de3b56 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java @@ -314,7 +314,7 @@ public class DistributionSignforController extends BladeController { List packageIds = (List) data.get("packageIds"); Long signId = (Long) data.get("signId"); distributionAsyncService.handlPakcage(packageIds, myCurrentWarehouse.getId()); - distributionAsyncService.sendReviewFactory(signId,myCurrentWarehouse.getName() ,myCurrentWarehouse.getId()); +// distributionAsyncService.sendReviewFactory(signId,myCurrentWarehouse.getName() ,myCurrentWarehouse.getId()); PC对于的批量签收同样需要复核 } String orderPackageCodes = null; for (String packageCode : packageCodes) { diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.java index 4d38140a3..a8dffeb45 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.java @@ -57,7 +57,7 @@ public interface DistributionStockupMapper extends BaseMapper pageList(IPage page,@Param("param") DistributionStockupEntity distributionStockupEntity); + IPage pageList(IPage page,@Param("param") DistributionStockupEntity distributionStockupEntity,@Param("warehouseIdList") List warehouseIdList); IPage selectStockupPage(IPage page, @Param("param") StockupDTO stockupDTO); @@ -168,7 +168,7 @@ public interface DistributionStockupMapper extends BaseMapper pageOweList(IPage page,@Param("param")DistributionStockupEntity distributionStockupEntity); + IPage pageOweList(IPage page,@Param("param")DistributionStockupEntity distributionStockupEntity ,@Param("warehouseIdList") List warehouseIdList); IPage getInventoryOwnSelf(IPage page,@Param("id") Long id); diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml index d4c56d1a5..8e62ecb86 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml @@ -248,41 +248,18 @@ lds.loader_name loaderName, lds.forklift_id forkliftId,lds.loader_id loaderId,lds.fix_time fixTime,lds.assign_time assignTime, lds.type_service typeService,lds.outbound_date outboundDate,lds.stockup_code stockupCode, - COALESCE(GROUP_CONCAT(DISTINCT lwug.position_code SEPARATOR ','), '') stockipAllocation, - COALESCE(GROUP_CONCAT(DISTINCT lwt.pallet_name SEPARATOR ','), '') pallet, + COALESCE(GROUP_CONCAT(DISTINCT ldpl.goods_allocation SEPARATOR ','), '') stockipAllocation, + COALESCE(GROUP_CONCAT(DISTINCT ldpl.pallet SEPARATOR ','), '') pallet, COALESCE ( group_concat( DISTINCT ldr.consignee SEPARATOR ',' ), '' ) AS consignee from logpm_distribution_stockup lds LEFT JOIN logpm_distribution_stockup_info ldsi on ldsi.stockup_id =lds.id LEFT JOIN logpm_distribution_reservation ldr ON ldsi.reservation_id = ldr.id LEFT JOIN logpm_distribution_reservation_package ldrp on ldrp.reservation_id = ldsi.reservation_id - LEFT JOIN logpm_warehouse_updown_goods lwug on lwug.association_id = ldrp.parce_list_id - LEFT JOIN logpm_warehouse_tray_goods lwtg on lwtg.association_id = ldrp.parce_list_id - LEFT JOIN logpm_warehouse_tray lwt on lwtg.tray_id = lwt.id - LEFT JOIN ( - SELECT - IFNULL(COUNT( b.reservation_id ),0 )AS aaa, - b.stockup_id AS stockup_id - FROM - logpm_distribution_stockup AS a - LEFT JOIN logpm_distribution_stockup_info AS b ON a.id = b.stockup_id - - b.stock_status != 4 - and a.warehouse_id = - #{param.warehouseId} - - - and a.warehouse_id in - - #{a} - - - - GROUP BY b.stockup_id - ) AS aa ON aa.stockup_id = lds.id + LEFT JOIN logpm_distribution_parcel_list ldpl on ldpl.id = ldrp.parce_list_id + lds.is_deleted = 0 AND ldsi.stock_status != 4 - - + and lds.type_service = #{param.typeService} and @@ -295,9 +272,13 @@ and lds.stockup_user like concat('%',#{param.stockupUser},'%') - and lds.stockip_allocation + and ldpl.goods_allocation like concat('%',#{param.stockipAllocation},'%') + and ldpl.pallet + like concat('%',#{param.pallet},'%') + + and lds.stockup_code like concat('%',#{param.stockupCode},'%') @@ -316,14 +297,14 @@ and lds.loader_name like concat('%', #{param.loaderName},'%') - - - and lds.warehouse_id = - #{param.warehouseId} - - + + and lds.warehouse_id in - + + #{a} + + and ldpl.warehouse_id in + #{a} @@ -368,16 +349,15 @@ lds.loader_name loaderName, lds.forklift_id forkliftId,lds.loader_id loaderId,lds.fix_time fixTime,lds.assign_time assignTime, lds.type_service typeService,lds.outbound_date outboundDate,lds.stockup_code stockupCode, - COALESCE(GROUP_CONCAT(DISTINCT lwug.position_code SEPARATOR ','), '')stockipAllocation, - COALESCE(GROUP_CONCAT(DISTINCT lwtg.tray_code SEPARATOR ','), '') pallet, + COALESCE(GROUP_CONCAT(DISTINCT ldpl.goods_allocation SEPARATOR ','), '')stockipAllocation, + COALESCE(GROUP_CONCAT(DISTINCT ldpl.pallet SEPARATOR ','), '') pallet, COALESCE(group_concat(DISTINCT ldsa.mall_name separator ','), '') as consignee from logpm_distribution_stockup lds LEFT JOIN logpm_distribution_stockup_info ldsi on ldsi.stockup_id = lds.id LEFT JOIN logpm_distrilbution_bill_stock ldbs on ldbs.bill_lading_id = ldsi.reservation_id LEFT JOIN logpm_distribution_stock_article ldsa on ldsa.id = ldbs.stock_article_id and ldbs.order_status in (1,2) LEFT JOIN logpm_distribution_parcel_list ldpl on ldpl.stock_article_id = ldbs.stock_article_id - LEFT JOIN logpm_warehouse_tray_goods lwtg on lwtg.association_id = ldpl.id - LEFT JOIN logpm_warehouse_updown_goods lwug on lwug.association_id = ldpl.id + LEFT JOIN ( SELECT IFNULL(COUNT( b.reservation_id ),0 )AS aaa, @@ -404,9 +384,13 @@ and lds.stockup_user like concat('%',#{param.stockupUser},'%') - and lds.stockip_allocation + and ldpl.goods_allocation like concat('%',#{param.stockipAllocation},'%') + and ldpl.pallet + like concat('%',#{param.pallet},'%') + + and lds.stockup_code like concat('%',#{param.stockupCode},'%') @@ -425,19 +409,13 @@ and lds.loader_name like concat('%', #{param.loaderName},'%') - and lds.type_service = - #{param.typeService} - - and lds.warehouse_id = - #{param.warehouseId} - - + + and lds.warehouse_id in - + #{a} - GROUP BY lds.id ORDER By lds.create_time Desc diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java index 8d98f5082..4a21f58d6 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java @@ -1535,29 +1535,15 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { } if (Func.isNotEmpty(brand.get("欧派"))) { - - // 重新筛选出欧派的包件 - for (DistributionReservationStockarticleEntity distributionReservationStockarticleEntity : distributionReservationStockarticleEntities) { - - // 查询预约单下面的包件信息 - log.info(">>>>>>>>>>>>>>>>>>>>> 欧派循环包件信息 {} ", distributionReservationStockarticleEntity); - List distributionParcelListEntities = buildOpByReservationId(distributionReservationStockarticleEntity); - - - for (DistributionParcelListEntity distributionParcelListEntity : distributionParcelListEntities) { - // todo 查询签收信息 - DistributionSignforEntity distributionSignfor = distributionSignforMapper.getByReservationId(distributionReservationStockarticleEntity.getReservationId()); - OrderStatusDTO orderStatusDTO = new OrderStatusDTO(); - orderStatusDTO.setUnitNo(distributionParcelListEntity.getOrderPackageCode()); //单号 - orderStatusDTO.setUsername(distributionSignfor.getSigneeName()); //操作人名称 - orderStatusDTO.setStatus("7"); - orderStatusDTO.setOperationTime(distributionSignfor.getSigningTime()); //时间 - ouPaiFactoryClinet.newSystemHandleStatusData(orderStatusDTO); - log.info(">>>>>>>>>>>>>>>>>进入newSystemHandleStatusData orderStatusDTO值 :{}", orderStatusDTO); - } + List oupai = brand.get("欧派"); + for (MtReceiveContentDTO mtReceiveContentDTO : oupai) { + OrderStatusDTO orderStatusDTO = new OrderStatusDTO(); + orderStatusDTO.setUnitNo(mtReceiveContentDTO.getUnitNo()); //包条 + orderStatusDTO.setUsername(distributionSignforEntity.getSigneeName()); //操作人名称 + orderStatusDTO.setStatus("7"); + orderStatusDTO.setOperationTime(distributionSignforEntity.getSigningTime()); //时间 + ouPaiFactoryClinet.newSystemHandleStatusData(orderStatusDTO); } - -// orderMainClinet.sendReceiveInfoByNewSystem(mtReceiveDTO); } if (Func.isNotEmpty(brand.get("志邦"))) { List zb = brand.get("志邦"); @@ -1599,7 +1585,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { map.put("messageData", JSONUtil.toJsonStr(orderStatusDTO)); rabbitTemplate.convertAndSend(RabbitConstant.HWY_ORDER_STATUS_EXCHANGE, RabbitConstant.HWY_ORDER_STATUS_ROUTING, map); } catch (Exception e) { - log.error("入库推送失败:{}", e); + log.error("入库推送失败", e); } } } @@ -1629,8 +1615,8 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { //....工厂 } catch (Exception e) { - log.error("sendReviewFactory ", e); - throw new RuntimeException(e); + log.error("复核推送工厂信息错误 ", e); +// throw new RuntimeException(e); } } @@ -3021,7 +3007,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { } orderList.add(order); - if (distributionStockArticleEntity.getIsZero().equals(IsOrNoConstant.no.getValue())){ + if (distributionStockArticleEntity.getIsZero().equals(IsOrNoConstant.no.getValue())) { //构建包件信息 List distributionParcelListEntities = distributionReservationMapper.selectPackageByReservationAndStockArticle(reservationEntity.getId(), distributionStockArticleEntity.getId(), distributionStockArticleEntity.getWarehouseId()); if (!distributionParcelListEntities.isEmpty()) { @@ -3040,7 +3026,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { } } } - }else { + } else { //整理零担的数据 List distributionParcelNumberVOS = distributionReservationMapper.selectReservationZeroOrderDetail(distributionStockArticleEntity.getId(), reservationEntity.getId()); if (!distributionParcelNumberVOS.isEmpty()) { @@ -3115,7 +3101,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { } pushInstallDTO.setOrder(orderList); pushInstallDTO.setOrder_detail(orderDetailList); - log.info(">>>>>>>>>>>>>>安装推送整理数据:{}",JSONObject.toJSON(pushInstallDTO)); + log.info(">>>>>>>>>>>>>>安装推送整理数据:{}", JSONObject.toJSON(pushInstallDTO)); String jsonString = JSONObject.toJSONString(pushInstallDTO); rabbitTemplate.convertAndSend(RabbitConstant.PUSH_INSTALL_PLATFORM_EXCHANGE, RabbitConstant.PUSH_INSTALL_PLATFORM_ROUTING, jsonString); 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 7e91ebd3c..8164cb7b5 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 @@ -694,6 +694,13 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl moldList = new ArrayList<>(); + data.forEach(map -> { + try { + String popHtml = TemplateUtil.popTemplate("包件码", map, html); + moldList.add(popHtml); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + orderPackgeCodeDataVO.setMoldList(moldList); + return orderPackgeCodeDataVO; } @@ -2471,6 +2480,18 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl moldList = new ArrayList<>(); + data.forEach(map -> { + try { + String popHtml = TemplateUtil.popTemplate("订单码", map, html); + moldList.add(popHtml); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + orderCodeDataVO.setMoldList(moldList); + + return orderCodeDataVO; } @@ -2536,6 +2557,17 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl moldList = new ArrayList<>(); + data.forEach(map -> { + try { + String popHtml = TemplateUtil.popTemplate("订单码", map, html); + moldList.add(popHtml); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + orderCodeDataVO.setMoldList(moldList); + return orderCodeDataVO; } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java index 59b13a84f..a4405af43 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java @@ -291,24 +291,25 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl pageList(IPage page, Map distributionStockup) { DistributionStockupEntity distributionStockupEntity = JSON.parseObject(JSON.toJSONString(distributionStockup), DistributionStockupEntity.class); BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse(); + + List warehouseIdList = new ArrayList<>(); if (ObjectUtils.isNotNull(myCurrentWarehouse)) { //获取当前登录人仓库 - distributionStockupEntity.setWarehouseId(myCurrentWarehouse.getId()); + warehouseIdList.add(myCurrentWarehouse.getId()); } else { //获取当前登录人仓库 List myWatchWarehouse = basicdataWarehouseClient.getMyWatchWarehouse(); //取出id List collect = myWatchWarehouse.stream().map(BasicdataWarehouseEntity::getId).collect(Collectors.toList()); - distributionStockupEntity.setWarehouseIdList(collect); + warehouseIdList.addAll(collect); } - distributionStockupEntity.setTenantId(AuthUtil.getTenantId()); if ("3".equals(distributionStockupEntity.getTypeService())) { //自 - return baseMapper.pageOweList(page, distributionStockupEntity); + return baseMapper.pageOweList(page, distributionStockupEntity,warehouseIdList); } else { //商 市 - return baseMapper.pageList(page, distributionStockupEntity); + return baseMapper.pageList(page, distributionStockupEntity,warehouseIdList); } } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java index dcfd0aec9..5807c3e76 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java @@ -3093,12 +3093,9 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl> stockListMap = inventoryAppVO.stream().collect(Collectors.groupingBy(DistrilbutionBillLadingInventoryAppVO::getStockListId)); diff --git a/blade-service/logpm-distribution/src/main/resources/application-dev.yml b/blade-service/logpm-distribution/src/main/resources/application-dev.yml index e2379fc57..5900ebb32 100644 --- a/blade-service/logpm-distribution/src/main/resources/application-dev.yml +++ b/blade-service/logpm-distribution/src/main/resources/application-dev.yml @@ -15,10 +15,10 @@ server: spring: #rabbitmq配置 rabbitmq: - host: 192.168.3.100 + host: 192.168.2.46 port: 5672 username: admin - password: 123456 + password: admin #虚拟host 可以不设置,使用server默认host virtual-host: / #确认消息已发送到队列(Queue) diff --git a/blade-service/logpm-factory-data/logpm-factory-data-linsy/src/main/java/com/logpm/factorydata/linsy/entity/PackageInfoEntity.java b/blade-service/logpm-factory-data/logpm-factory-data-linsy/src/main/java/com/logpm/factorydata/linsy/entity/PackageInfoEntity.java index b27f120fa..710150390 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-linsy/src/main/java/com/logpm/factorydata/linsy/entity/PackageInfoEntity.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-linsy/src/main/java/com/logpm/factorydata/linsy/entity/PackageInfoEntity.java @@ -25,6 +25,8 @@ public class PackageInfoEntity extends BaseEntity { private String deliveryNoteId; @ApiModelProperty(value = "订单号") private String orderCode; + @ApiModelProperty(value = "单据编号") + private String billCode; @ApiModelProperty(value = "已推送节点编码") private Integer workedNodeCode; @ApiModelProperty(value = "父项物料编码") diff --git a/blade-service/logpm-factory-data/logpm-factory-data-linsy/src/main/java/com/logpm/factorydata/linsy/mq/FactoryOrderListener.java b/blade-service/logpm-factory-data/logpm-factory-data-linsy/src/main/java/com/logpm/factorydata/linsy/mq/FactoryOrderListener.java index 1f1d97a93..b454b72a1 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-linsy/src/main/java/com/logpm/factorydata/linsy/mq/FactoryOrderListener.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-linsy/src/main/java/com/logpm/factorydata/linsy/mq/FactoryOrderListener.java @@ -106,7 +106,8 @@ public class FactoryOrderListener { BeanUtil.copyProperties(orderInfo, orderInfoEntity); orderInfoEntity.setLogId(ObjectUtil.isNotEmpty(logId) ? logId.toString() : null); orderInfoEntity.setDeliveryNoteId(vo.getId().toString()); - orderInfoEntity.setOrderCode(vo.getBillCode()); + orderInfoEntity.setOrderCode(vo.getCustomizedBillCode()); + orderInfoEntity.setBillCode(vo.getBillCode()); infoEntities.add(orderInfoEntity); } packageInfoService.saveBatch(infoEntities); diff --git a/blade-service/logpm-factory-data/logpm-factory-data-linsy/src/main/java/com/logpm/factorydata/linsy/mq/NodeDataPushListener.java b/blade-service/logpm-factory-data/logpm-factory-data-linsy/src/main/java/com/logpm/factorydata/linsy/mq/NodeDataPushListener.java index b8690f4f0..f095bf6a3 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-linsy/src/main/java/com/logpm/factorydata/linsy/mq/NodeDataPushListener.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-linsy/src/main/java/com/logpm/factorydata/linsy/mq/NodeDataPushListener.java @@ -22,7 +22,6 @@ import com.logpm.factorydata.vo.PushData; import com.logpm.factorydata.vo.SendMsg; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.bouncycastle.util.Pack; import org.springblade.common.constant.WorkNodeEnums; import org.springblade.common.constant.factorydata.FactoryDataConstants; import org.springframework.amqp.core.ExchangeTypes; @@ -142,6 +141,8 @@ public class NodeDataPushListener { List collect = value.stream().map(PushData::getPackageCode).collect(Collectors.toList()); // 5 根据订单号,包件码 查看数据是否齐套,齐套直接推送工厂 List entities = packageInfoMap.get(orderCode); + PackageInfoEntity infoEntity = entities.get(0); + String billCode = infoEntity.getBillCode(); // 过滤掉entities 中的 workedNodeCode < code 的数据 List workerList = entities.stream() .filter(packageInfoEntity -> !collect.contains(packageInfoEntity.getBarcode())) @@ -174,7 +175,7 @@ public class NodeDataPushListener { } // 推送工厂 JSONObject sendObj = new JSONObject(); - sendObj.set("billCode", orderCode); + sendObj.set("billCode", billCode); sendObj.set("status", factoryByNodeAndStatus.getText()); sendObj.set("packages", entities.stream().map(packageInfoEntity -> { JSONObject jsonObject = new JSONObject(); diff --git a/blade-service/logpm-factory-data/logpm-factory-data-linsy/src/main/java/com/logpm/factorydata/linsy/service/impl/DeliveryNoteServiceImpl.java b/blade-service/logpm-factory-data/logpm-factory-data-linsy/src/main/java/com/logpm/factorydata/linsy/service/impl/DeliveryNoteServiceImpl.java index 2c9575bb9..2e99b21fc 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-linsy/src/main/java/com/logpm/factorydata/linsy/service/impl/DeliveryNoteServiceImpl.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-linsy/src/main/java/com/logpm/factorydata/linsy/service/impl/DeliveryNoteServiceImpl.java @@ -104,7 +104,8 @@ public class DeliveryNoteServiceImpl extends BaseServiceImpl - and ltcl.start_time >= #{param.startDate} + and ltcl.start_time >= #{param.startTime} - and ltcl.start_time <= #{param.endDate} + and ltcl.start_time <= #{param.endTime} @@ -578,6 +578,7 @@ from logpm_trunkline_cars_load_scan t left join logpm_distribution_parcel_list dpl on dpl.order_package_code = t.scan_code and dpl.warehouse_id = #{warehouseId} where t.load_id = #{loadId} + and dpl.id is not null group by dpl.brand_name,dpl.accept_warehouse_id,dpl.order_code,dpl.waybill_number diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java index 6331971cd..ca8671370 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java @@ -162,4 +162,7 @@ public interface TrunklineCarsLoadScanMapper extends BaseMapper carsLoadScanIdList); + void clearSignOrderIdByLoadIdAndWarehouseIdAndOrderCodeAndWaybillNo(@Param("loadId") Long loadId, @Param("nodeId") Long nodeId, @Param("orderCode") String orderCode, @Param("waybillNo") String waybillNo); + + void addSignOrderIdByLoadIdAndNodeIdAndOrderCodeAndWaybillNo(@Param("loadId") Long finalLoadId, @Param("nodeId") Long nodeId, @Param("orderCode") String orderCode, @Param("waybillNo") String waybillNo, @Param("signOrderId") Long signOrderId); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml index c7476dc14..cc3144087 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml @@ -360,6 +360,7 @@ select IFNULL(sum(unload_num),0) from logpm_trunkline_cars_load_scan where sign_order_id = #{signOrderId} + and scan_status = '3' @@ -853,4 +854,24 @@ + + update logpm_trunkline_cars_load_scan + set sign_order_id = null + where load_id = #{loadId} + and warehouse_id = #{nodeId} + and order_code = #{orderCode} + and waybill_no = #{waybillNo} + and scan_status = '1' + + + + update logpm_trunkline_cars_load_scan + set sign_order_id = #{signOrderId} + where load_id = #{loadId} + and warehouse_id = #{nodeId} + and order_code = #{orderCode} + and waybill_no = #{waybillNo} + and scan_status = '1' + + diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.java index 3b98d3905..adc569c08 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.java @@ -60,4 +60,8 @@ public interface TrunklineCarsOrderMapper extends BaseMapper findLoadingList(@Param("loadId") Long loadId, @Param("nodeId") Long nodeId); Integer findLoadingNumBySignOrderId(@Param("signOrderId") Long signOrderId); + + void updateNoCustomer(@Param("updateCarsOrderIdList") List updateCarsOrderIdList); + + List findMallOrderList(@Param("carsOrderIdList") List carsOrderIdList); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml index 42fe51de2..a6ff9b330 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml @@ -225,11 +225,13 @@ lww.id belongToWarehouseId, lww.name belongToWarehouseName, ltco.final_node_id finalNodeId, - 0 signNum, - '0' signStatus, + case when sum(ltco.sign_num) >= sum(ltco.real_num) and sum(ltco.sign_num) > 0 then '20' + when sum(ltco.sign_num) = 0 then '0' + else '10' end signStatus, GROUP_CONCAT(distinct ldsa.consignee_person) mallPerson, GROUP_CONCAT(distinct ldsa.consignee_mobile) mallMobile, GROUP_CONCAT(distinct ldsa.consignee_address) mallAddress, + sum(ltco.sign_num) signNum, sum(ltco.plan_num) planNum, sum(ltco.real_num) loadingNum from logpm_trunkline_cars_order ltco @@ -322,5 +324,30 @@ where sign_order_id = #{signOrderId} + + update logpm_trunkline_cars_order + set is_customer = '0', + sign_order_id = null + where id in + + #{item} + + and sign_num = 0 + + + + diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineLoadSignOrderMapper.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineLoadSignOrderMapper.java index eb1871b06..51ab86112 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineLoadSignOrderMapper.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineLoadSignOrderMapper.java @@ -26,4 +26,7 @@ public interface TrunklineLoadSignOrderMapper extends BaseMapper findSignOrderPageList(IPage page, @Param("param") LoadCarsDTO loadCarsDTO); + + void deleteListBySignOrderIds(@Param("delSignOrderList") List delSignOrderList); + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineLoadSignOrderMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineLoadSignOrderMapper.xml index 3ccab8873..c7ab00530 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineLoadSignOrderMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineLoadSignOrderMapper.xml @@ -135,7 +135,7 @@ and ltlso.load_id = #{param.loadId} - + and ltcl.cars_no = #{param.loadCarsNo} @@ -152,4 +152,13 @@ GROUP BY ltlso.id + + + delete from logpm_trunkline_load_sign_order + where id in + + #{signOrderId} + + + diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ICarsLoadAsyncService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ICarsLoadAsyncService.java index ee8ea20a8..3a801de16 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ICarsLoadAsyncService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ICarsLoadAsyncService.java @@ -19,7 +19,7 @@ public interface ICarsLoadAsyncService { void abnormalListUnloadByLoadIdAndWarehouseId(Long loadId, Long warehouseId, String warehouseName, Long loadScanId, String tenantId, Long userId, String nickName, Long firstLong); - void abnormalListUnloadCheckByLoadIdAndWarehouseId(Long loadId, Long warehouseId, String nodeName, String tenantId, Long userId, String nickName, Long firstLong); + void abnormalListUnloadCheckByLoadIdAndWarehouseId(Long loadId, Long warehouseId, String nodeName, String tenantId, Long userId, String nickName, Long firstLong,TrunklineCarsLoadLineEntity carsLoadLineEntity); void dealwithAfterAbnormalPackage(String orderPackageCode, Long warehouseId, String warehouseName, String carsNo, Long userId, Long aLong, String nickName); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java index 4e8712dbe..1b481d0b7 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java @@ -157,4 +157,7 @@ public interface ITrunklineCarsLoadScanService extends BaseService carsLoadScanIdList); + void clearSignOrderIdByLoadIdAndWarehouseIdAndOrderCodeAndWaybillNo(Long finalLoadId1, Long nodeId, String orderCode, String waybillNo); + + void addSignOrderIdByLoadIdAndNodeIdAndOrderCodeAndWaybillNo(Long finalLoadId, Long nodeId, String orderCode, String waybillNo, Long signOrderId); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java index 75d6eca9a..7fcd9fc1f 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java @@ -219,4 +219,6 @@ public interface ITrunklineCarsLoadService extends BaseService findLoadingList(Long loadId, Long nodeId); Integer findLoadingNumBySignOrderId(Long signOrderId); + + void updateNoCustomer(List updateCarsOrderIdList); + + List findMallOrderList(List carsOrderIdList); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineLoadSignOrderService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineLoadSignOrderService.java index 320aa150f..4b2133d34 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineLoadSignOrderService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineLoadSignOrderService.java @@ -23,4 +23,8 @@ public interface ITrunklineLoadSignOrderService extends BaseService findSignOrderPageList(IPage page, LoadCarsDTO loadCarsDTO); + + void deleteListBySignOrderIds(List delSignOrderList); + + List findSignOrderListByLoadId(Long loadId); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/CarsLoadAsyncServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/CarsLoadAsyncServiceImpl.java index d6f8153b5..698cbf10b 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/CarsLoadAsyncServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/CarsLoadAsyncServiceImpl.java @@ -418,12 +418,11 @@ public class CarsLoadAsyncServiceImpl implements ICarsLoadAsyncService { @LogpmAsync("asyncExecutor") @Override - public void abnormalListUnloadCheckByLoadIdAndWarehouseId(Long loadId, Long warehouseId, String warehouseName, String tenantId, Long userId, String nickName, Long deptId) { + public void abnormalListUnloadCheckByLoadIdAndWarehouseId(Long loadId, Long warehouseId, String warehouseName, String tenantId, Long userId, String nickName, Long deptId,TrunklineCarsLoadLineEntity carsLoadLineEntity) { log.info("################abnormalListUnloadCheckByLoadIdAndWarehouseId: 卸车报告生成开始 loadId={}",loadId); UnloadReportVO unloadReportVO = trunklineCarsLoadScanService.findUnloadReport(loadId,warehouseId); - TrunklineCarsLoadLineEntity carsLoadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId); if(!Objects.isNull(carsLoadLineEntity)){ carsLoadLineEntity.setUnloadReportStatus(1); carsLoadLineEntity.setReportOne("本次装车件数 "+unloadReportVO.getLoadingNum()+" 件,实际卸车件数 "+unloadReportVO.getUnloadNum()+" 件,计划未卸车数量 "+(unloadReportVO.getNoUnloadNum()-unloadReportVO.getNoPlanNum())+" 件"); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/PackageTrackLogAsyncServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/PackageTrackLogAsyncServiceImpl.java index fda6216ef..7a67324a0 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/PackageTrackLogAsyncServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/PackageTrackLogAsyncServiceImpl.java @@ -61,11 +61,12 @@ public class PackageTrackLogAsyncServiceImpl implements IPackageTrackLogAsyncSer @LogpmAsync("asyncExecutor") @Override public void addBatchPackageTrackLog(List addPackageTrackLogList, List orderPackageCodes, Integer workNode, Map map) { - warehousePackageTrackLogClient.addLogList(addPackageTrackLogList); - WarehousePackageTrackLogEntity warehousePackageTrackLogEntity = addPackageTrackLogList.get(0); - Long warehouseId = warehousePackageTrackLogEntity.getWarehouseId(); - - waybillPackageService.updatePackageStatus(orderPackageCodes, workNode,warehouseId, map); + if(CollUtil.isNotEmpty(addPackageTrackLogList)){ + warehousePackageTrackLogClient.addLogList(addPackageTrackLogList); + WarehousePackageTrackLogEntity warehousePackageTrackLogEntity = addPackageTrackLogList.get(0); + Long warehouseId = warehousePackageTrackLogEntity.getWarehouseId(); + waybillPackageService.updatePackageStatus(orderPackageCodes, workNode,warehouseId, map); + } } @LogpmAsync("asyncExecutor") diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java index d4217e9c1..5cc24d084 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java @@ -378,4 +378,14 @@ public class TrunklineCarsLoadScanServiceImpl extends BaseServiceImpl orderPackageCodes = trunklineCarsLoadScanService.findUnloadByLoadIdAndWarehouseId(loadId, warehouseId); String content = "包件在 " + warehouseEntity.getName() + "卸车确认"; @@ -1230,6 +1230,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl moreCarsLineList = trunklineCarsLoadLineService.findListMoreSortByLoadId(loadId,sort); + List allCarsLineList = trunklineCarsLoadLineService.findListByLoadId(loadId); + + Map map = new HashMap<>(); + map.put("carsLoadEntity", loadEntity); + map.put("allCarsLineList", allCarsLineList); + List loadingType = DictBizCache.getList(DictBizConstant.CARS_LOADING_TYPE); + map.put("loadingType", loadingType); + List chargeType = DictBizCache.getList(DictBizConstant.BILLLADING_CHARGE_TYPE); + map.put("chargeType", chargeType); + List loadType = DictBizCache.getList(DictBizConstant.CARS_LOAD_TYPE); + map.put("loadType", loadType); +// BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(warehouseId); +// map.put("warehouseId", basicdataWarehouseEntity.getId()); +// map.put("warehouseName", basicdataWarehouseEntity.getName()); + map.put("allWarehouseIds", allWarehouseIds.split(",")); +// map.put("moreCarsLineList",moreCarsLineList); + return R.data(map); + } + + + @Override public R updateCarsLoadBasicData(TrunklineCarsLoadDTO carsLoadDTO, Long warehouseId) { Long loadId = carsLoadDTO.getId(); @@ -2694,6 +2734,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl parcelListEntities = trunklineCarsLoadScanService.findParceListByCarsLoadScanIds(carsLoadScanIds); //把parcelListEntities转成orderPackageCode为键值的map Map parcelListMap = parcelListEntities.stream().collect(Collectors.toMap(DistributionParcelListEntity::getOrderPackageCode, e -> e)); - List stockArticleEntities = trunklineCarsLoadScanService.findOrderListByCarsLoadScanIds(carsLoadScanIds); + + //把loadScanEntityList中所有元素的fromWarehouseId进行分组 + Map> fromWarehouseIdMap = loadScanEntityList.stream().filter(e -> Objects.nonNull(e.getFromWarehouseId())).collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getFromWarehouseId)); + + List stockArticleEntities = new ArrayList<>(); + + fromWarehouseIdMap.keySet().forEach(fromWarehouseId -> { + List list = fromWarehouseIdMap.get(fromWarehouseId); + //把list中所有的orderCode放入一个Set集合 + Set orderCodeSet = list.stream().map(TrunklineCarsLoadScanEntity::getOrderCode).collect(Collectors.toSet()); + FindParamterDTO findParamterDTO = new FindParamterDTO(); + findParamterDTO.setOrderCodeSet(orderCodeSet); + findParamterDTO.setWarehouseId(fromWarehouseId); + List stockArticleEntityList = distributionStockArticleClient.findListByOrderCodesAndWarehouseId(findParamterDTO); + stockArticleEntities.addAll(stockArticleEntityList); + + }); + //把stockArticleEntities转成orderCode为键值的map Map stockArticleMap = stockArticleEntities.stream().collect(Collectors.toMap(DistributionStockArticleEntity::getOrderCode, e -> e)); // List waybillEntities = trunklineCarsLoadScanService.findWaybillListByCarsLoadScanIds(carsLoadScanIds); @@ -4389,7 +4448,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl carsOrderIdList = new ArrayList<>(); @@ -4404,18 +4465,205 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl addCarsOrderEntityList = trunklineCarsOrderService.findMallOrderList(carsOrderIdList); + //把addCarsOrderEntityList中所有元素以mallName和nodeId作为key进行分组 + Map> addCarsOrderEntityMap = addCarsOrderEntityList.stream().collect(Collectors.groupingBy(TrunklineCarsOrderVO -> TrunklineCarsOrderVO.getMallName()+"&&"+TrunklineCarsOrderVO.getNodeId())); + + List signOrderEntityList = trunklineLoadSignOrderService.findAllLoadSignOrderList(loadId, warehouseId); + //把signOrderEntityList中所有元素转化成mallName和warehouseId作为key的map + Map signOrderEntityMap = signOrderEntityList.stream().collect(Collectors.toMap(TrunklineLoadSignOrderEntity -> TrunklineLoadSignOrderEntity.getMallName()+"&&"+TrunklineLoadSignOrderEntity.getWarehouseId(), Function.identity(), (k1, k2) -> k1)); + + List updateCarsOrderList = new ArrayList<>(); + + Long finalLoadId = loadId; + addCarsOrderEntityMap.keySet().forEach(key -> { + String[] split1 = key.split("&&"); + String mallName = split1[0]; + + List trunklineCarsOrderVOS = addCarsOrderEntityMap.get(key); + Long finalNodeId = trunklineCarsOrderVOS.get(0).getFinalNodeId(); + TrunklineLoadSignOrderEntity trunklineLoadSignOrderEntity = signOrderEntityMap.get(key); + if(Objects.isNull(trunklineLoadSignOrderEntity)){ + trunklineLoadSignOrderEntity = new TrunklineLoadSignOrderEntity(); + trunklineLoadSignOrderEntity.setLoadId(finalLoadId); + trunklineLoadSignOrderEntity.setWarehouseId(warehouseId); + trunklineLoadSignOrderEntity.setMallName(mallName); + //把trunklineCarsOrderVOS中所有元素的mallPerson去重后用,拼接 + trunklineLoadSignOrderEntity.setMallPerson(trunklineCarsOrderVOS.stream().map(TrunklineCarsOrderVO::getMallPerson).distinct().collect(Collectors.joining(","))); + trunklineLoadSignOrderEntity.setMallMobile(trunklineCarsOrderVOS.stream().map(TrunklineCarsOrderVO::getMallMobile).distinct().collect(Collectors.joining(","))); + trunklineLoadSignOrderEntity.setMallAddress(trunklineCarsOrderVOS.stream().map(TrunklineCarsOrderVO::getMallAddress).distinct().collect(Collectors.joining(","))); + trunklineLoadSignOrderEntity.setBelongToWarehouseId(warehouseId); + trunklineLoadSignOrderEntity.setBelongToWarehouseName(warehouseName); + //把trunklineCarsOrderVOS中所有元素的planNum求和 + trunklineLoadSignOrderEntity.setPlanNum(trunklineCarsOrderVOS.stream().mapToInt(TrunklineCarsOrderVO::getPlanNum).sum()); + trunklineLoadSignOrderEntity.setLoadingNum(trunklineCarsOrderVOS.stream().mapToInt(TrunklineCarsOrderVO::getRealNum).sum()); + trunklineLoadSignOrderEntity.setSignNum(0); + trunklineLoadSignOrderEntity.setSignStatus("0"); + trunklineLoadSignOrderEntity.setLoadSignCode(codeClient.getCodeByType(CodeNumConstant.TRUNKLINE_LOAD_SIGN, warehouseCode, "")); + trunklineLoadSignOrderEntity.setFinalNodeId(finalNodeId); + }else{ + //把trunklineCarsOrderVOS中所有元素的mallPerson去重后放入一个Set + Set mallPersonSet = trunklineCarsOrderVOS.stream() + .map(TrunklineCarsOrderVO::getMallPerson) + .collect(Collectors.toSet()); + mallPersonSet.add(trunklineLoadSignOrderEntity.getMallName()); + trunklineLoadSignOrderEntity.setMallPerson(String.join(",",mallPersonSet)); + Set mallMobileSet = trunklineCarsOrderVOS.stream() + .map(TrunklineCarsOrderVO::getMallMobile) + .collect(Collectors.toSet()); + mallMobileSet.add(trunklineLoadSignOrderEntity.getMallMobile()); + trunklineLoadSignOrderEntity.setMallMobile(String.join(",",mallMobileSet)); + Set mallAddressSet = trunklineCarsOrderVOS.stream() + .map(TrunklineCarsOrderVO::getMallMobile) + .collect(Collectors.toSet()); + mallAddressSet.add(trunklineLoadSignOrderEntity.getMallAddress()); + trunklineLoadSignOrderEntity.setMallAddress(String.join(",",mallAddressSet)); + int plan = trunklineCarsOrderVOS.stream().mapToInt(TrunklineCarsOrderVO::getPlanNum).sum() + trunklineLoadSignOrderEntity.getPlanNum(); + trunklineLoadSignOrderEntity.setPlanNum(plan); + trunklineLoadSignOrderEntity.setLoadingNum(trunklineCarsOrderVOS.stream().mapToInt(TrunklineCarsOrderVO::getRealNum).sum()+trunklineLoadSignOrderEntity.getLoadingNum()); + Integer signNum = trunklineLoadSignOrderEntity.getSignNum(); + if(signNum >= plan){ + trunklineLoadSignOrderEntity.setSignStatus("20"); + }else if(signNum == 0){ + trunklineLoadSignOrderEntity.setSignStatus("0"); + }else{ + trunklineLoadSignOrderEntity.setSignStatus("10"); + } + } + trunklineLoadSignOrderService.saveOrUpdate(trunklineLoadSignOrderEntity); + Long signOrderId = trunklineLoadSignOrderEntity.getId(); + + + + trunklineCarsOrderVOS.forEach(trunklineCarsOrderVO -> { + Long nodeId = trunklineCarsOrderVO.getNodeId(); + String waybillNo = trunklineCarsOrderVO.getWaybillNo(); + String orderCode = trunklineCarsOrderVO.getOrderCode(); + TrunklineCarsOrderEntity updateCarsOrder = new TrunklineCarsOrderEntity(); + updateCarsOrder.setId(trunklineCarsOrderVO.getId()); + updateCarsOrder.setNodeId(nodeId); + updateCarsOrder.setWaybillNo(waybillNo); + updateCarsOrder.setOrderCode(orderCode); + updateCarsOrder.setIsCustomer("1"); + updateCarsOrder.setSignOrderId(signOrderId); + updateCarsOrderList.add(updateCarsOrder); + }); + + }); + + if(CollUtil.isNotEmpty(updateCarsOrderList)){ + trunklineCarsOrderService.updateBatchById(updateCarsOrderList); + updateCarsOrderList.forEach(e -> { + Long nodeId = e.getNodeId(); + String orderCode = e.getOrderCode(); + String waybillNo = e.getWaybillNo(); + Long signOrderId = e.getSignOrderId(); + trunklineCarsLoadScanService.addSignOrderIdByLoadIdAndNodeIdAndOrderCodeAndWaybillNo(finalLoadId, nodeId, orderCode, waybillNo, signOrderId); + }); + } + + }else{ + //直发商家移除 + List dealwithCarsOrderIdList = new ArrayList<>(); + List carsOrderEntityList = trunklineCarsOrderService.listByIds(carsOrderIdList); + //移除carsOrderEntityList中signNum不为0的元素 + carsOrderEntityList.removeIf(e -> e.getSignNum() != 0); + if(CollUtil.isNotEmpty(carsOrderEntityList)){ + //把carsOrderEntityList通过signOrderId进行分组 + Map> collect = carsOrderEntityList.stream().collect(Collectors.groupingBy(TrunklineCarsOrderEntity::getSignOrderId)); + Set signOrderIds = collect.keySet(); + List signOrderEntityList = trunklineLoadSignOrderService.listByIds(signOrderIds); + //把signOrderEntityList转化成id为key的Map + Map signOrderEntityMap = signOrderEntityList.stream().collect(Collectors.toMap(TrunklineLoadSignOrderEntity::getId, Function.identity())); + + + List updateCarsOrderList = new ArrayList<>(); + List updateSignOrderList = new ArrayList<>(); + List delSignOrderList = new ArrayList<>(); + + Long finalLoadId1 = loadId; + collect.keySet().forEach(signOrderId -> { + List list = collect.get(signOrderId); + TrunklineLoadSignOrderEntity trunklineLoadSignOrderEntity = signOrderEntityMap.get(signOrderId); + //把list中所有元素的realNum求和 + int sumLoading = list.stream().mapToInt(TrunklineCarsOrderEntity::getRealNum).sum(); + int sumPlan = list.stream().mapToInt(TrunklineCarsOrderEntity::getPlanNum).sum(); + Integer planNum = trunklineLoadSignOrderEntity.getPlanNum(); + Integer loadingNum = trunklineLoadSignOrderEntity.getLoadingNum(); + Integer signNum = trunklineLoadSignOrderEntity.getSignNum(); + if(sumPlan < planNum){ + //只是更新不删除 + TrunklineLoadSignOrderEntity updateSignOrderEntity = new TrunklineLoadSignOrderEntity(); + updateSignOrderEntity.setId(trunklineLoadSignOrderEntity.getId()); + int diff = planNum - sumPlan; + updateSignOrderEntity.setPlanNum(diff); + updateSignOrderEntity.setLoadingNum(loadingNum-sumLoading); + if(signNum >= diff){ + updateSignOrderEntity.setSignStatus("20"); + }else if(signNum == 0){ + updateSignOrderEntity.setSignStatus("0"); + }else{ + updateSignOrderEntity.setSignStatus("10"); + } + updateSignOrderList.add(updateSignOrderEntity); + }else{ + //删除 + delSignOrderList.add(signOrderId); + } + + list.forEach(e -> { + TrunklineCarsOrderEntity carsOrderEntity = new TrunklineCarsOrderEntity(); + carsOrderEntity.setId(e.getId()); + carsOrderEntity.setOrderCode(e.getOrderCode()); + carsOrderEntity.setWaybillNo(e.getWaybillNo()); + carsOrderEntity.setLoadId(finalLoadId1); + carsOrderEntity.setNodeId(e.getNodeId()); + updateCarsOrderList.add(carsOrderEntity); + }); + + }); + + if(CollUtil.isNotEmpty(updateSignOrderList)){ + trunklineLoadSignOrderService.updateBatchById(updateSignOrderList); + } + if(CollUtil.isNotEmpty(delSignOrderList)){ + trunklineLoadSignOrderService.deleteListBySignOrderIds(delSignOrderList); + } + if(CollUtil.isNotEmpty(updateCarsOrderList)){ + //把updateCarsOrderIdList所有的id放入一个List + List updateCarsOrderIdList = updateCarsOrderList.stream().map(TrunklineCarsOrderEntity::getId).collect(Collectors.toList()); + trunklineCarsOrderService.updateNoCustomer(updateCarsOrderIdList); + updateCarsOrderList.forEach(e -> { + Long nodeId = e.getNodeId(); + String orderCode = e.getOrderCode(); + String waybillNo = e.getWaybillNo(); + trunklineCarsLoadScanService.clearSignOrderIdByLoadIdAndWarehouseIdAndOrderCodeAndWaybillNo(finalLoadId1,nodeId,orderCode,waybillNo); + }); + } + }else{ + log.warn("###############updateWaybillOrderIsCustemer: 订单已有签收数据不能移除"); + return R.fail(405,"订单已有签收数据,不能移除"); + } + } - //生成直发商家签收单 - createCustomerSignOrder(loadId, warehouseId); + List signOrderList =trunklineLoadSignOrderService.findSignOrderListByLoadId(loadId); + String isCustomer1 = carsLoadEntity.getIsCustomer(); + if(CollUtil.isNotEmpty(signOrderList)){ + if("2".equals(isCustomer1)){ + carsLoadEntity.setIsCustomer("1"); + updateById(carsLoadEntity); + } + }else{ + if("1".equals(isCustomer1)){ + carsLoadEntity.setIsCustomer("2"); + updateById(carsLoadEntity); + } + } return R.success("更新成功"); } @@ -4776,12 +5024,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl= loadingNum) { signOrderEntity.setSignStatus("20"); signOrderEntity.setSignTime(new Date()); } else { @@ -4919,7 +5167,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl loadIds = new HashSet<>(); //把list通过signOrderId进行分组 - Map> map = list.stream().collect(Collectors.groupingBy(TrunklineCarsLoadScanVO::getSignOrderId)); + Map> map = list.stream().filter(e -> !Objects.isNull(e.getSignOrderId())).collect(Collectors.groupingBy(TrunklineCarsLoadScanVO::getSignOrderId)); map.keySet().forEach(e -> { List trunklineCarsLoadScanVOS = map.get(e);//该签收单对应的包件 trunklineCarsLoadScanVOS.forEach(t -> { @@ -5850,7 +6098,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("waybill_no", waybillNo) - .eq("load_id", loadId) - .eq("final_node_id", warehouseId) - .eq("order_code", orderCode); - TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService.getOne(queryWrapper); + //先判断包件是否在配载计划的装车扫描中 + QueryWrapper loadScanQueryWrapper = new QueryWrapper<>(); + loadScanQueryWrapper.eq("load_id", loadId) + .eq("scan_code", orderPackageCode); + TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService.getOne(loadScanQueryWrapper); + //判断是否有装车扫描记录 if (Objects.isNull(carsLoadScanEntity)) { - log.warn("#############unloadZero: 零担信息不存在 waybillNo={} order_code={} loadId={} finalNodeId={}", waybillNo, orderCode, loadId, warehouseId); - return R.fail(405, "零担信息不存在"); - } + //没有装车扫码记录 - Integer isAbnormal = 0; - Integer num = carsLoadScanEntity.getNum(); - Long fromWarehouseId = carsLoadScanEntity.getFromWarehouseId(); - Long waybillId = carsLoadScanEntity.getWaybillId(); - String scanCode = carsLoadScanEntity.getScanCode(); - Long loadScanId = carsLoadScanEntity.getId(); - if (enterNun > num) { - log.warn("#############unloadZero: 零担信息卸车数量大于装车件数 enterNun={} num={}", enterNun, num); - return R.fail(405, "零担信息卸车数量大于装车件数"); - } + //不在计划中,则查询在哪个仓库中 + DistributionParcelListEntity parcelListEntity = distributionParcelListClient.findByOrderPackageCodeAndStatus(orderPackageCode); + Long loadScanId = null; + if (Objects.isNull(parcelListEntity)) { + //没有包件数据 + TrunklineAdvanceDetailEntity advanceDetailEntity = trunklineAdvanceDetailService.findEntityByOrderPackageCode(orderPackageCode); + if(!Objects.isNull(advanceDetailEntity)){ + String packageStatus = advanceDetailEntity.getPackageStatus(); + if("0".equals(packageStatus)){ + InComingDTO inComingDTO = new InComingDTO(); + inComingDTO.setOrderPackageCode(orderPackageCode); + inComingDTO.setIncomingType(incomingType); + inComingDTO.setWarehouseId(warehouseId); + inComingService.incomingPackage(inComingDTO); - carsLoadScanEntity.setUnloadNum(enterNun); - carsLoadScanEntity.setUnloadNodeId(warehouseId); - carsLoadScanEntity.setUnloadNodeName(warehouseName); - carsLoadScanEntity.setUnloadAbnormal(0); - carsLoadScanEntity.setScanStatus("2"); - carsLoadScanEntity.setLoadingUserName(AuthUtil.getNickName()); - carsLoadScanEntity.setUnloadUserName(AuthUtil.getNickName()); - carsLoadScanEntity.setUnloadTime(new Date()); - trunklineCarsLoadScanService.updateById(carsLoadScanEntity); + //需要补装车扫记录 + TrunklineCarsLoadScanEntity trunklineCarsLoadScanEntity = new TrunklineCarsLoadScanEntity(); + trunklineCarsLoadScanEntity.setWarehouseId(warehouseId); + trunklineCarsLoadScanEntity.setWarehouseName(warehouseName); + trunklineCarsLoadScanEntity.setOrderCode(advanceDetailEntity.getOrderCode()); + trunklineCarsLoadScanEntity.setWaybillId(advanceDetailEntity.getWaybillId()); + trunklineCarsLoadScanEntity.setWaybillNo(advanceDetailEntity.getWaybillNo()); + trunklineCarsLoadScanEntity.setLoadId(loadId); + trunklineCarsLoadScanEntity.setLoadCode(loadCode); + trunklineCarsLoadScanEntity.setScanCode(orderPackageCode); + trunklineCarsLoadScanEntity.setScanStatus("2"); + trunklineCarsLoadScanEntity.setNum(1); + trunklineCarsLoadScanEntity.setType(1); + trunklineCarsLoadScanEntity.setIsData(1); + trunklineCarsLoadScanEntity.setLoadingAbnormal(1); + trunklineCarsLoadScanEntity.setUnloadAbnormal(1); + trunklineCarsLoadScanEntity.setUnloadNodeName(warehouseName); + trunklineCarsLoadScanEntity.setUnloadNodeId(warehouseId); + trunklineCarsLoadScanEntity.setUnloadNum(1); + trunklineCarsLoadScanEntity.setIsSupple(0); + trunklineCarsLoadScanEntity.setLoadingUserName(AuthUtil.getNickName()); + trunklineCarsLoadScanEntity.setUnloadUserName(AuthUtil.getNickName()); + trunklineCarsLoadScanEntity.setUnloadTime(new Date()); + trunklineCarsLoadScanService.save(trunklineCarsLoadScanEntity); + loadScanId = trunklineCarsLoadScanEntity.getId(); - trunklineCarsUnloadLogService.savaUnloadLog(warehouseId, warehouseName, loadId, loadCode, waybillId, waybillNo, orderCode, - scanCode, enterNun, 2, 1, isAbnormal, trayId, trayCode, trayName, fromWarehouseId, loadScanId, remark); + trunklineCarsLoadingLogService.savaLoadingLog(warehouseId, warehouseName, loadId, loadCode, null, null, null, orderPackageCode, 1, + 1, 1, 1, trayId, trayCode, trayName, null, loadScanId, "有数据,补装车计划,异常装车"); - if (unbindTray == 1) { - if (!StringUtil.isBlank(trayCode)) { - trayTypeClient.deleteZeroOrderByTrayCode(orderCode, trayCode, fromWarehouseId, "干线卸车零担解托"); - } - } + trunklineCarsUnloadLogService.savaUnloadLog(warehouseId, warehouseName, loadId, loadCode, null, null, null, orderPackageCode, 1, + 1, 1, 1, trayId, trayCode, trayName, null, loadScanId, "有数据,异常卸车"); -// DistributionStockArticleEntity newStockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, warehouseId); -// if (Objects.isNull(newStockArticleEntity)) { -// DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, fromWarehouseId); -// newStockArticleEntity = new DistributionStockArticleEntity(); -// BeanUtil.copy(stockArticleEntity, newStockArticleEntity); -// newStockArticleEntity.setId(null); -// newStockArticleEntity.setOrderReceiveStatus("20"); -// newStockArticleEntity.setOrderStatus("10"); -// newStockArticleEntity.setHandQuantity(enterNun); -// newStockArticleEntity.setIncomingNum(enterNun); -// newStockArticleEntity.setWarehouse(basicdataWarehouseEntity.getName()); -// newStockArticleEntity.setWarehouseId(basicdataWarehouseEntity.getId()); -// newStockArticleEntity.setCarsLoadNum(0); -// Long orderId = distributionStockArticleClient.addData(newStockArticleEntity); -// if (orderId != 0) { -// List parcelListEntityList = distributionParcelListClient.findEntityListByOrderCode(orderCode, fromWarehouseId); + }else{ + //已入库 + Long nowWarehouseId = advanceDetailEntity.getNowWarehouseId(); + String nowWarehouseName = advanceDetailEntity.getNowWarehouseName(); + + //需要补装车扫记录 + TrunklineCarsLoadScanEntity trunklineCarsLoadScanEntity = new TrunklineCarsLoadScanEntity(); + trunklineCarsLoadScanEntity.setWarehouseId(warehouseId); + trunklineCarsLoadScanEntity.setWarehouseName(warehouseName); + trunklineCarsLoadScanEntity.setOrderCode(advanceDetailEntity.getOrderCode()); + trunklineCarsLoadScanEntity.setWaybillId(advanceDetailEntity.getWaybillId()); + trunklineCarsLoadScanEntity.setWaybillNo(advanceDetailEntity.getWaybillNo()); + trunklineCarsLoadScanEntity.setLoadId(loadId); + trunklineCarsLoadScanEntity.setLoadCode(loadCode); + trunklineCarsLoadScanEntity.setScanCode(orderPackageCode); + trunklineCarsLoadScanEntity.setScanStatus("2"); + trunklineCarsLoadScanEntity.setNum(1); + trunklineCarsLoadScanEntity.setType(1); + trunklineCarsLoadScanEntity.setIsData(1); + trunklineCarsLoadScanEntity.setLoadingAbnormal(1); + trunklineCarsLoadScanEntity.setUnloadAbnormal(1); + trunklineCarsLoadScanEntity.setUnloadNodeName(warehouseName); + trunklineCarsLoadScanEntity.setUnloadNodeId(warehouseId); + trunklineCarsLoadScanEntity.setUnloadNum(1); + trunklineCarsLoadScanEntity.setIsSupple(0); + trunklineCarsLoadScanEntity.setLoadingUserName(AuthUtil.getNickName()); + trunklineCarsLoadScanEntity.setUnloadUserName(AuthUtil.getNickName()); + trunklineCarsLoadScanEntity.setUnloadTime(new Date()); + trunklineCarsLoadScanEntity.setFromWarehouseId(nowWarehouseId); + trunklineCarsLoadScanEntity.setRemark("无装车记录卸车"); + trunklineCarsLoadScanService.save(trunklineCarsLoadScanEntity); + loadScanId = trunklineCarsLoadScanEntity.getId(); + + trunklineCarsLoadingLogService.savaLoadingLog(warehouseId, warehouseName, loadId, loadCode, null, null, null, orderPackageCode, 1, + 1, 1, 1, trayId, trayCode, trayName, null, loadScanId, "有数据,无计划,无装车,补装车计划,异常装车"); + + trunklineCarsUnloadLogService.savaUnloadLog(warehouseId, warehouseName, loadId, loadCode, null, null, null, orderPackageCode, 1, + 1, 1, 1, trayId, trayCode, trayName, null, loadScanId, "有数据,无计划,无装车,异常卸车"); + + //无装车记录异常日志记录 + try { + carsLoadAsyncService.abnormalListUnloadByLoadIdAndWarehouseId(loadId, warehouseId, warehouseName, loadScanId, AuthUtil.getTenantId(), AuthUtil.getUserId(), AuthUtil.getNickName(), Func.firstLong(AuthUtil.getDeptId())); + } catch (Exception e) { + log.warn("###############unloadPackage: 存入异常列表记录失败"); + } + + + DistributionParcelListEntity nowParcelListEntity = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(orderPackageCode, nowWarehouseId); + if(Objects.isNull(nowParcelListEntity)){ + log.warn("###############unloadPackage: 包件信息不存在 orderPackageCode={},nowWarehouseId={}",orderPackageCode,nowWarehouseId); + return R.fail(405,"包件信息不存在"); + } + orderCode = nowParcelListEntity.getOrderCode(); + Long packageId = nowParcelListEntity.getId(); + String orderPackageStatus = nowParcelListEntity.getOrderPackageStatus(); + String waybillNumber = nowParcelListEntity.getWaybillNumber(); + + DistributionStockArticleEntity nowDistributionStockArticle = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, nowWarehouseId); + if(Objects.isNull(nowDistributionStockArticle)){ + log.warn("###############unloadPackage: 订单信息不存在 orderCode={},nowWarehouseId={}",orderCode,nowWarehouseId); + return R.fail(405,"订单信息不存在"); + } + Long articleId = nowDistributionStockArticle.getId(); + + if(!"70".equals(orderPackageStatus)){ + distributionStockArticleClient.submitHandleNumByOrderId(1, articleId); + distributionParcelListClient.updateOrderPackageCodeById(packageId, "60"); + } + + + Long currentOrderId = null; + //查询当前仓库订单信息有没有 + DistributionStockArticleEntity currentStockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, warehouseId); + if (Objects.isNull(currentStockArticleEntity)) { + //查询包件前面仓的订单信息 + currentStockArticleEntity = new DistributionStockArticleEntity(); + BeanUtil.copy(nowDistributionStockArticle, currentStockArticleEntity); + currentStockArticleEntity.setId(null); + currentStockArticleEntity.setWarehouseId(warehouseId); + currentStockArticleEntity.setWarehouse(warehouseName); + currentStockArticleEntity.setHandQuantity(0); + currentStockArticleEntity.setCompleteSet(1); + currentStockArticleEntity.setStockupStatus("10"); + currentStockArticleEntity.setReservationStatus("10"); + currentStockArticleEntity.setOrderStatus("10"); + currentStockArticleEntity.setGroundingStatus("10"); + currentStockArticleEntity.setOrderReceiveStatus("10"); + currentStockArticleEntity.setFreezeStatus("10"); + currentStockArticleEntity.setSortingQuantity(0); + currentStockArticleEntity.setDeliveryQuantity(0); + currentStockArticleEntity.setTransferQuantity(0); + currentStockArticleEntity.setSigninQuantity(0); + currentStockArticleEntity.setIncomingNum(0); + currentOrderId = distributionStockArticleClient.addData(currentStockArticleEntity); + currentStockArticleEntity.setId(currentOrderId); + } else { + currentOrderId = currentStockArticleEntity.getId(); + } + + //判断包件当前仓是否是目的仓 + WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNumber); + + if (Objects.isNull(distributionParcelListEntity)) { + distributionParcelListEntity = new DistributionParcelListEntity(); + BeanUtil.copy(nowParcelListEntity, distributionParcelListEntity); + distributionParcelListEntity.setId(null); + distributionParcelListEntity.setIsTransfer(1); + if (!Objects.isNull(warehouseWaybillEntity)) { + Long destinationWarehouseId = warehouseWaybillEntity.getDestinationWarehouseId();//目的仓 + if (destinationWarehouseId.equals(warehouseId)) { + distributionParcelListEntity.setIsTransfer(0); + } + } + distributionParcelListEntity.setAdvanceId(nowParcelListEntity.getAdvanceId()); + distributionParcelListEntity.setOrderPackageStatus("20"); + distributionParcelListEntity.setWarehouseId(warehouseId); + distributionParcelListEntity.setWarehouse(warehouseName); + distributionParcelListEntity.setTrainNumber(loadCode); + distributionParcelListEntity.setStockArticleId(currentOrderId); + distributionParcelListEntity.setOrderPackageFreezeStatus("10"); + distributionParcelListEntity.setOrderPackageGroundingStatus("10"); + distributionParcelListEntity.setOrderPackageStockupStatus("10"); + distributionParcelListEntity.setOrderPackageReservationStatus("10"); + distributionParcelListEntity.setOrderPackageLoadingStatus("10"); + distributionParcelListEntity.setWarehouseEntryTimeEnd(new Date()); + boolean add = distributionParcelListClient.add(distributionParcelListEntity); + if (add) { + distributionStockArticleClient.addIncomingNum(currentOrderId, 1); + } + } else { + distributionParcelListEntity.setOrderPackageStatus("20"); + if (!Objects.isNull(warehouseWaybillEntity)) { + Long destinationWarehouseId = warehouseWaybillEntity.getDestinationWarehouseId();//目的仓 + if (destinationWarehouseId.equals(warehouseId)) { + distributionParcelListEntity.setIsTransfer(0); + } else { + distributionParcelListEntity.setIsTransfer(1); + } + } + distributionParcelListClient.update(distributionParcelListEntity); + } + updownTypeClient.downPackageOrDelTray(orderPackageCode, nowWarehouseId, "干线卸车下架解托"); + } + }else{ + //需要补装车扫记录 + TrunklineCarsLoadScanEntity trunklineCarsLoadScanEntity = new TrunklineCarsLoadScanEntity(); + trunklineCarsLoadScanEntity.setWarehouseId(warehouseId); + trunklineCarsLoadScanEntity.setWarehouseName(warehouseName); + trunklineCarsLoadScanEntity.setLoadId(loadId); + trunklineCarsLoadScanEntity.setLoadCode(loadCode); + trunklineCarsLoadScanEntity.setOrderCode("--"); + trunklineCarsLoadScanEntity.setScanCode(orderPackageCode); + trunklineCarsLoadScanEntity.setScanStatus("2"); + trunklineCarsLoadScanEntity.setNum(1); + trunklineCarsLoadScanEntity.setType(1); + trunklineCarsLoadScanEntity.setIsData(0); + isData=0; + trunklineCarsLoadScanEntity.setLoadingAbnormal(1); + trunklineCarsLoadScanEntity.setUnloadAbnormal(1); + trunklineCarsLoadScanEntity.setUnloadNodeName(warehouseName); + trunklineCarsLoadScanEntity.setUnloadNodeId(warehouseId); + trunklineCarsLoadScanEntity.setUnloadNum(1); + trunklineCarsLoadScanEntity.setIsSupple(0); + trunklineCarsLoadScanEntity.setLoadingUserName(AuthUtil.getNickName()); + trunklineCarsLoadScanEntity.setUnloadUserName(AuthUtil.getNickName()); + trunklineCarsLoadScanEntity.setUnloadTime(new Date()); + trunklineCarsLoadScanService.save(trunklineCarsLoadScanEntity); + loadScanId = trunklineCarsLoadScanEntity.getId(); + + trunklineCarsLoadingLogService.savaLoadingLog(warehouseId, warehouseName, loadId, loadCode, null, null, null, orderPackageCode, 1, + 1, 0, 1, trayId, trayCode, trayName, null, loadScanId, "无数据,补装车计划,异常装车"); + + trunklineCarsUnloadLogService.savaUnloadLog(warehouseId, warehouseName, loadId, loadCode, null, null, null, orderPackageCode, 1, + 1, 0, 1, trayId, trayCode, trayName, null, loadScanId, "无数据,异常卸车"); + + } + } else { + String waybillNumber = parcelListEntity.getWaybillNumber(); + orderCode = parcelListEntity.getOrderCode(); + Long wid = parcelListEntity.getWarehouseId(); + String wName = parcelListEntity.getWarehouse(); + Long pacakageId = parcelListEntity.getId(); + Long waybillId = null; + + DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, wid); + if (Objects.isNull(stockArticleEntity)) { + log.warn("##############unloadPackage: 订单信息不存在 orderCode={} wid={}", orderCode, wid); + return R.fail(405, "订单信息不存在"); + } + Long articleId = stockArticleEntity.getId(); + + //需要补装车扫记录 + TrunklineCarsLoadScanEntity trunklineCarsLoadScanEntity = new TrunklineCarsLoadScanEntity(); + trunklineCarsLoadScanEntity.setWarehouseId(warehouseId); + trunklineCarsLoadScanEntity.setWarehouseName(warehouseName); + trunklineCarsLoadScanEntity.setLoadId(loadId); + trunklineCarsLoadScanEntity.setLoadCode(loadCode); + WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNumber); + if (!Objects.isNull(waybillEntity)) { + waybillId = waybillEntity.getId(); + trunklineCarsLoadScanEntity.setWaybillId(waybillId); + trunklineCarsLoadScanEntity.setWaybillNo(waybillNumber); + } + trunklineCarsLoadScanEntity.setOrderCode(orderCode); + trunklineCarsLoadScanEntity.setScanCode(orderPackageCode); + trunklineCarsLoadScanEntity.setScanStatus("2"); + trunklineCarsLoadScanEntity.setNum(1); + trunklineCarsLoadScanEntity.setType(1); + trunklineCarsLoadScanEntity.setIsData(1); + trunklineCarsLoadScanEntity.setLoadingAbnormal(1); + trunklineCarsLoadScanEntity.setUnloadAbnormal(1); + trunklineCarsLoadScanEntity.setFromWarehouseId(wid); + trunklineCarsLoadScanEntity.setUnloadNodeId(warehouseId); + trunklineCarsLoadScanEntity.setUnloadNodeName(warehouseName); + trunklineCarsLoadScanEntity.setUnloadNum(1); + trunklineCarsLoadScanEntity.setLoadingUserName(AuthUtil.getNickName()); + trunklineCarsLoadScanEntity.setUnloadUserName(AuthUtil.getNickName()); + trunklineCarsLoadScanEntity.setUnloadTime(new Date()); + trunklineCarsLoadScanService.save(trunklineCarsLoadScanEntity); + + isData = 1; + loadScanId = trunklineCarsLoadScanEntity.getId(); + + // + trunklineCarsLoadingLogService.savaLoadingLog(warehouseId, warehouseName, loadId, loadCode, waybillId, waybillNumber, orderCode, orderPackageCode, 1, + 1, 1, 1, trayId, trayCode, trayName, wid, loadScanId, "有数据,补装车计划,异常装车"); + + trunklineCarsUnloadLogService.savaUnloadLog(warehouseId, warehouseName, loadId, loadCode, waybillId, waybillNumber, orderCode, orderPackageCode, 1, + 1, 1, 1, trayId, trayCode, trayName, wid, loadScanId, "有数据,异常卸车"); + + distributionStockArticleClient.submitHandleNumByOrderId(1, articleId); + distributionParcelListClient.updateOrderPackageCodeById(pacakageId, "60"); + + + Long currentOrderId = null; + //查询当前仓库订单信息有没有 + DistributionStockArticleEntity currentStockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, warehouseId); + if (Objects.isNull(currentStockArticleEntity)) { + //查询包件前面仓的订单信息 + currentStockArticleEntity = new DistributionStockArticleEntity(); + BeanUtil.copy(stockArticleEntity, currentStockArticleEntity); + currentStockArticleEntity.setId(null); + currentStockArticleEntity.setWarehouseId(warehouseId); + currentStockArticleEntity.setWarehouse(warehouseName); + currentStockArticleEntity.setHandQuantity(0); + currentStockArticleEntity.setCompleteSet(1); + currentStockArticleEntity.setStockupStatus("10"); + currentStockArticleEntity.setReservationStatus("10"); + currentStockArticleEntity.setOrderStatus("10"); + currentStockArticleEntity.setGroundingStatus("10"); + currentStockArticleEntity.setOrderReceiveStatus("10"); + currentStockArticleEntity.setFreezeStatus("10"); + currentStockArticleEntity.setSortingQuantity(0); + currentStockArticleEntity.setDeliveryQuantity(0); + currentStockArticleEntity.setTransferQuantity(0); + currentStockArticleEntity.setSigninQuantity(0); + currentStockArticleEntity.setIncomingNum(0); + currentOrderId = distributionStockArticleClient.addData(currentStockArticleEntity); + currentStockArticleEntity.setId(currentOrderId); + } else { + currentOrderId = currentStockArticleEntity.getId(); + } + + //判断包件当前仓是否是目的仓 + WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNumber); + + if (Objects.isNull(distributionParcelListEntity)) { + distributionParcelListEntity = new DistributionParcelListEntity(); + BeanUtil.copy(parcelListEntity, distributionParcelListEntity); + distributionParcelListEntity.setId(null); + distributionParcelListEntity.setIsTransfer(1); + if (!Objects.isNull(warehouseWaybillEntity)) { + Long destinationWarehouseId = warehouseWaybillEntity.getDestinationWarehouseId();//目的仓 + if (destinationWarehouseId.equals(warehouseId)) { + distributionParcelListEntity.setIsTransfer(0); + } + } + distributionParcelListEntity.setAdvanceId(parcelListEntity.getAdvanceId()); + distributionParcelListEntity.setOrderPackageStatus("20"); + distributionParcelListEntity.setWarehouseId(warehouseId); + distributionParcelListEntity.setWarehouse(warehouseName); + distributionParcelListEntity.setTrainNumber(loadCode); + distributionParcelListEntity.setStockArticleId(currentOrderId); + distributionParcelListEntity.setOrderPackageFreezeStatus("10"); + distributionParcelListEntity.setOrderPackageGroundingStatus("10"); + distributionParcelListEntity.setOrderPackageStockupStatus("10"); + distributionParcelListEntity.setOrderPackageReservationStatus("10"); + distributionParcelListEntity.setOrderPackageLoadingStatus("10"); + distributionParcelListEntity.setWarehouseEntryTimeEnd(new Date()); + boolean add = distributionParcelListClient.add(distributionParcelListEntity); + if (add) { + distributionStockArticleClient.addIncomingNum(currentOrderId, 1); + } + } else { + distributionParcelListEntity.setOrderPackageStatus("20"); + if (!Objects.isNull(warehouseWaybillEntity)) { + Long destinationWarehouseId = warehouseWaybillEntity.getDestinationWarehouseId();//目的仓 + if (destinationWarehouseId.equals(warehouseId)) { + distributionParcelListEntity.setIsTransfer(0); + } else { + distributionParcelListEntity.setIsTransfer(1); + } + } + distributionParcelListClient.update(distributionParcelListEntity); + } + updownTypeClient.downPackageOrDelTray(orderPackageCode, wid, "干线卸车下架解托"); + } + + //无装车记录异常日志记录 + try { + + + carsLoadAsyncService.abnormalListUnloadByLoadIdAndWarehouseId(loadId, warehouseId, warehouseName, loadScanId, AuthUtil.getTenantId(), AuthUtil.getUserId(), AuthUtil.getNickName(), Func.firstLong(AuthUtil.getDeptId())); + } catch (Exception e) { + log.warn("###############unloadPackage: 存入异常列表记录失败"); + } + + } else { + String scanStatus = carsLoadScanEntity.getScanStatus(); + if(!"1".equals(scanStatus)){ + log.warn("##############unloadPackage: 包件已卸车 orderPackageCode={}", orderPackageCode); + return R.fail(405, "包件已卸车"); + } + + Long finalNodeId = carsLoadScanEntity.getFinalNodeId(); + Long waybillId = carsLoadScanEntity.getWaybillId(); + String waybillNo = carsLoadScanEntity.getWaybillNo(); + orderCode = carsLoadScanEntity.getOrderCode(); + Long loadScanId = carsLoadScanEntity.getId(); + Long fromWarehouseId = carsLoadScanEntity.getFromWarehouseId(); + isData = carsLoadScanEntity.getIsData(); + Integer isAbnormal = 0; + if (warehouseId.equals(finalNodeId)) { + carsLoadScanEntity.setUnloadAbnormal(0); + } else { + isAbnormal = 1; + carsLoadScanEntity.setUnloadAbnormal(1); + remark = "有数据,有计划,有装车,卸车目的地不正确,异常卸车"; + } + carsLoadScanEntity.setUnloadNodeId(warehouseId); + carsLoadScanEntity.setUnloadNodeName(warehouseName); + carsLoadScanEntity.setUnloadNum(carsLoadScanEntity.getNum()); + carsLoadScanEntity.setScanStatus("2"); + carsLoadScanEntity.setUnloadUserName(AuthUtil.getNickName()); + carsLoadScanEntity.setUnloadTime(new Date()); + trayCode = carsLoadScanEntity.getTrayCode(); + if (!StringUtil.isBlank(trayCode)) { + BasicdataTrayEntity trayEntity = basicdataTrayClient.getTrayByTrayCode(trayCode); + trayId = trayEntity.getId(); + trayName = trayEntity.getPalletName(); + } + if (unbindTray == 1) { + updownTypeClient.downPackageOrDelTray(orderPackageCode, fromWarehouseId, "干线卸车下架解托"); + } + trunklineCarsLoadScanService.updateById(carsLoadScanEntity); + + trunklineCarsUnloadLogService.savaUnloadLog(warehouseId, warehouseName, loadId, loadCode, waybillId, waybillNo, orderCode, orderPackageCode, 1, + 1, 1, isAbnormal, trayId, trayCode, trayName, fromWarehouseId, loadScanId, remark); + + if (1 == isData) { + DistributionParcelListEntity parcelListEntity = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(orderPackageCode, fromWarehouseId); + if (Objects.isNull(parcelListEntity)) { + InComingDTO inComingDTO = new InComingDTO(); + inComingDTO.setOrderPackageCode(orderPackageCode); + inComingDTO.setIncomingType(incomingType); + inComingDTO.setWarehouseId(warehouseId); + R r = inComingService.incomingPackage(inComingDTO); + int code = r.getCode(); + if(code != 200){ + log.warn("##############unloadPackage: 包件入库失败 orderPackageCode={}", orderPackageCode); + return R.fail(405, "包件入库失败"); + } +// parcelListEntity = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(orderPackageCode, warehouseId); + }else{ + Long currentOrderId = null; + //查询当前仓库订单信息有没有 + DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, warehouseId); + if (Objects.isNull(stockArticleEntity)) { + //查询包件前面仓的订单信息 + DistributionStockArticleEntity articleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, fromWarehouseId); + stockArticleEntity = new DistributionStockArticleEntity(); + BeanUtil.copy(articleEntity, stockArticleEntity); + stockArticleEntity.setId(null); + stockArticleEntity.setWarehouseId(warehouseId); + stockArticleEntity.setWarehouse(warehouseName); + stockArticleEntity.setHandQuantity(0); + stockArticleEntity.setCompleteSet(1); + stockArticleEntity.setStockupStatus("10"); + stockArticleEntity.setReservationStatus("10"); + stockArticleEntity.setOrderStatus("10"); + stockArticleEntity.setGroundingStatus("10"); + stockArticleEntity.setOrderReceiveStatus("10"); + stockArticleEntity.setFreezeStatus("10"); + stockArticleEntity.setSortingQuantity(0); + stockArticleEntity.setDeliveryQuantity(0); + stockArticleEntity.setTransferQuantity(0); + stockArticleEntity.setSigninQuantity(0); + stockArticleEntity.setIncomingNum(0); + currentOrderId = distributionStockArticleClient.addData(stockArticleEntity); + stockArticleEntity.setId(currentOrderId); + } else { + currentOrderId = stockArticleEntity.getId(); + } + + //判断包件当前仓是否是目的仓 + WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNo); + + if (Objects.isNull(distributionParcelListEntity)) { + distributionParcelListEntity = new DistributionParcelListEntity(); + BeanUtil.copy(parcelListEntity, distributionParcelListEntity); + distributionParcelListEntity.setId(null); + distributionParcelListEntity.setOrderPackageStatus("20"); + if (!Objects.isNull(warehouseWaybillEntity)) { + Long destinationWarehouseId = warehouseWaybillEntity.getDestinationWarehouseId();//目的仓 + if (destinationWarehouseId.equals(warehouseId)) { + distributionParcelListEntity.setIsTransfer(0); + } else { + distributionParcelListEntity.setIsTransfer(1); + } + } + distributionParcelListEntity.setWarehouseId(warehouseId); + distributionParcelListEntity.setWarehouse(warehouseName); + distributionParcelListEntity.setTrainNumber(loadCode); + distributionParcelListEntity.setStockArticleId(currentOrderId); + distributionParcelListEntity.setOrderPackageFreezeStatus("10"); + distributionParcelListEntity.setOrderPackageGroundingStatus("10"); + distributionParcelListEntity.setOrderPackageStockupStatus("10"); + distributionParcelListEntity.setOrderPackageReservationStatus("10"); + distributionParcelListEntity.setOrderPackageLoadingStatus("10"); + distributionParcelListEntity.setWarehouseEntryTimeEnd(new Date()); + boolean add = distributionParcelListClient.add(distributionParcelListEntity); + if (add) { + distributionStockArticleClient.addIncomingNum(currentOrderId, 1); + } + } else { + if (!Objects.isNull(warehouseWaybillEntity)) { + Long destinationWarehouseId = warehouseWaybillEntity.getDestinationWarehouseId();//目的仓 + if (destinationWarehouseId.equals(warehouseId)) { + distributionParcelListEntity.setIsTransfer(0); + } else { + distributionParcelListEntity.setIsTransfer(1); + } + } + distributionParcelListClient.update(distributionParcelListEntity); + } + } + + } else { + //无数据 + TrunklineAdvanceDetailEntity advanceDetailEntity = trunklineAdvanceDetailService.findEntityByOrderPackageCode(orderPackageCode); + if (!Objects.isNull(advanceDetailEntity)) { + String packageStatus = advanceDetailEntity.getPackageStatus(); + orderCode = advanceDetailEntity.getOrderCode(); + String waybillNo1 = advanceDetailEntity.getWaybillNo(); + if ("0".equals(packageStatus)) { + //未入库 + InComingDTO inComingDTO = new InComingDTO(); + inComingDTO.setOrderPackageCode(orderPackageCode); + inComingDTO.setWarehouseId(warehouseId); + inComingService.incomingPackage(inComingDTO); + + } else { + DistributionParcelListEntity parcelListEntity = distributionParcelListClient.findByOrderPackageCodeAndStatus(orderPackageCode); + if (!Objects.isNull(parcelListEntity)) { + String orderCode2 = parcelListEntity.getOrderCode(); + DistributionStockArticleEntity newStockArticle = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode2, warehouseId); + Long orderId = null; + if (Objects.isNull(newStockArticle)) { + newStockArticle = new DistributionStockArticleEntity(); + Long stockArticleId = parcelListEntity.getStockArticleId(); + DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findEntityByStockArticleId(stockArticleId); + BeanUtil.copy(stockArticleEntity, newStockArticle); + newStockArticle.setId(null); + newStockArticle.setWarehouseId(warehouseId); + newStockArticle.setWarehouse(basicdataWarehouseEntity.getName()); + orderId = distributionStockArticleClient.addData(newStockArticle); + } else { + orderId = newStockArticle.getId(); + } + DistributionParcelListEntity newParcelListEntity = new DistributionParcelListEntity(); + BeanUtil.copy(parcelListEntity, newParcelListEntity); + newParcelListEntity.setId(null); + newParcelListEntity.setWarehouseId(warehouseId); + newParcelListEntity.setWarehouse(basicdataWarehouseEntity.getName()); + newParcelListEntity.setStockArticleId(orderId); + distributionParcelListClient.add(newParcelListEntity); + } + } + + carsLoadScanEntity.setOrderCode(orderCode); + carsLoadScanEntity.setWaybillNo(waybillNo1); + carsLoadScanEntity.setUnloadUserName(AuthUtil.getNickName()); + carsLoadScanEntity.setUnloadTime(new Date()); + carsLoadScanEntity.setIsData(1); + isData = 1; + trunklineCarsLoadScanService.updateById(carsLoadScanEntity); + + } + } + } + updateNumByLoadId(loadId); + + try { + + carsLoadAsyncService.dealwithAfterAbnormalPackage(orderPackageCode, warehouseId, warehouseName, carsLoadEntity.getCarsNo(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName()); + + List orderPackageCodes = new ArrayList<>(); + + orderPackageCodes.add(orderPackageCode); + String content = "包件在 " + warehouseName + "卸车,卸车方式:" + IncomingTypeEnum.getValue(incomingType); + packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseName, WorkNodeEnums.UNLOAD_INCOMING_WAREHOUSE.getCode(), content); + try { + if (StrUtil.isNotEmpty(orderCode)) { + // 发送入库消息 + OrderStatusDTO orderStatusDTO = new OrderStatusDTO(); + // 通过包件id 查询包件 + orderStatusDTO.setUnitNo(orderPackageCode); + orderStatusDTO.setOrderNo(orderCode); + orderStatusDTO.setStatus("4"); + orderStatusDTO.setOperationTime(DateUtil.now()); + orderStatusDTO.setCurrentWarehouse(warehouseId.toString()); + Map map = new HashMap<>(); + map.put("messageData", JSONUtil.toJsonStr(orderStatusDTO)); + rabbitTemplate.convertAndSend(RabbitConstant.HWY_ORDER_STATUS_EXCHANGE, RabbitConstant.HWY_ORDER_STATUS_ROUTING, map); + + NodePushMsg nodePushMsg = NodePushMsg.builder() + .operator(AuthUtil.getNickName()) + .operatorTime(new Date()) + .address("在【" + warehouseName + "】入库") + .brand(BrandEnums.getByValue(distributionParcelListEntity.getBrandName())) + .node(WorkNodeEnums.UNLOAD_INCOMING_WAREHOUSE) + .content(Collections.singletonList(PushData.builder() + .packageCode(orderPackageCode) + .warehouseName(warehouseName) + .orderCode(orderCode) + .build())) + .build(); + factoryDataMessageSender.sendNodeDataByBrand(nodePushMsg); + } + } catch (Exception e) { + log.error("入库推送失败:{}", e); + } + } catch (Exception e) { + log.warn("#########卸车存入日志失败"); + } + + JSONObject jsonObject = trunklineCarsLoadScanService.findUnloadNumAudio(loadId,warehouseId); + Integer totalUnloadNum = jsonObject.getInteger("totalUnloadNum"); + Integer abnormalUnloadNum = jsonObject.getInteger("abnormalUnloadNum"); + StringBuilder audio = new StringBuilder(); + audio.append("卸车").append(totalUnloadNum).append("件"); + if(!Objects.isNull(abnormalUnloadNum) && !abnormalUnloadNum.equals(0)){ + audio.append("异常卸车").append(abnormalUnloadNum).append("件"); + } + + if (isData == 0) { + return Resp.scanSuccess("卸车成功", "系统无编码"); + } + return Resp.scanSuccess("卸车成功", audio.toString()); + } + + + @Override + public R unloadZero(Long loadId, String waybillNo, Integer enterNun, Long warehouseId, Integer unbindTray, String trayCode, String orderCode, String remark) { + log.info("#############unloadZero: 卸车零担"); + + TrunklineCarsLoadEntity carsLoadEntity = baseMapper.selectById(loadId); + if (Objects.isNull(carsLoadEntity)) { + log.warn("#############unloadZero: 配载计划信息不存在 loadId={}", loadId); + return R.fail(405, "配载计划信息不存在"); + } + + String loadCode = carsLoadEntity.getCarsNo(); + TrunklineCarsLoadLineEntity loadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId); + if (Objects.isNull(loadLineEntity)) { + log.warn("############unloadZero: 配载计划节点信息不存在 loadId={} warehouseId={}", loadId, warehouseId); + return R.fail(405, "配载计划节点信息不存在"); + } + String unloadStatus = loadLineEntity.getUnloadStatus(); + if (!"0".equals(unloadStatus)) { + log.warn("############unloadZero: 当前网点已经卸车确认 loadId={} warehouseId={}", loadId, warehouseId); + return R.fail(405, "当前网点已经卸车确认"); + } + + BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(warehouseId); + if (Objects.isNull(basicdataWarehouseEntity)) { + log.warn("#############unloadZero: 仓库信息不存在 warehouseId={}", warehouseId); + return R.fail(405, "仓库信息不存在"); + } + + String warehouseName = basicdataWarehouseEntity.getName(); + + WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNo); + if (Objects.isNull(waybillEntity)) { + log.warn("#############unloadZero: 运单信息不存在 waybillNo={}", waybillNo); + return R.fail(405, "运单信息不存在"); + } + + Long trayId = null; + String trayName = null; + if (!StringUtil.isBlank(trayCode)) { + BasicdataTrayEntity trayEntity = basicdataTrayClient.getTrayByTrayCode(trayCode); + if (!Objects.isNull(trayEntity)) { + trayId = trayEntity.getId(); + trayName = trayEntity.getPalletName(); + } + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("waybill_no", waybillNo) + .eq("load_id", loadId) + .eq("final_node_id", warehouseId) + .eq("order_code", orderCode); + TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService.getOne(queryWrapper); + if (Objects.isNull(carsLoadScanEntity)) { + log.warn("#############unloadZero: 零担信息不存在 waybillNo={} order_code={} loadId={} finalNodeId={}", waybillNo, orderCode, loadId, warehouseId); + return R.fail(405, "零担信息不存在"); + } + + Integer isAbnormal = 0; + Integer num = carsLoadScanEntity.getNum(); + Long fromWarehouseId = carsLoadScanEntity.getFromWarehouseId(); + Long waybillId = carsLoadScanEntity.getWaybillId(); + String scanCode = carsLoadScanEntity.getScanCode(); + Long loadScanId = carsLoadScanEntity.getId(); + if (enterNun > num) { + log.warn("#############unloadZero: 零担信息卸车数量大于装车件数 enterNun={} num={}", enterNun, num); + return R.fail(405, "零担信息卸车数量大于装车件数"); + } + + carsLoadScanEntity.setUnloadNum(enterNun); + carsLoadScanEntity.setUnloadNodeId(warehouseId); + carsLoadScanEntity.setUnloadNodeName(warehouseName); + carsLoadScanEntity.setUnloadAbnormal(0); + carsLoadScanEntity.setScanStatus("2"); + carsLoadScanEntity.setLoadingUserName(AuthUtil.getNickName()); + carsLoadScanEntity.setUnloadUserName(AuthUtil.getNickName()); + carsLoadScanEntity.setUnloadTime(new Date()); + trunklineCarsLoadScanService.updateById(carsLoadScanEntity); + + trunklineCarsUnloadLogService.savaUnloadLog(warehouseId, warehouseName, loadId, loadCode, waybillId, waybillNo, orderCode, + scanCode, enterNun, 2, 1, isAbnormal, trayId, trayCode, trayName, fromWarehouseId, loadScanId, remark); + + if (unbindTray == 1) { + if (!StringUtil.isBlank(trayCode)) { + trayTypeClient.deleteZeroOrderByTrayCode(orderCode, trayCode, fromWarehouseId, "干线卸车零担解托"); + } + } + +// DistributionStockArticleEntity newStockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, warehouseId); +// if (Objects.isNull(newStockArticleEntity)) { +// DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, fromWarehouseId); +// newStockArticleEntity = new DistributionStockArticleEntity(); +// BeanUtil.copy(stockArticleEntity, newStockArticleEntity); +// newStockArticleEntity.setId(null); +// newStockArticleEntity.setOrderReceiveStatus("20"); +// newStockArticleEntity.setOrderStatus("10"); +// newStockArticleEntity.setHandQuantity(enterNun); +// newStockArticleEntity.setIncomingNum(enterNun); +// newStockArticleEntity.setWarehouse(basicdataWarehouseEntity.getName()); +// newStockArticleEntity.setWarehouseId(basicdataWarehouseEntity.getId()); +// newStockArticleEntity.setCarsLoadNum(0); +// Long orderId = distributionStockArticleClient.addData(newStockArticleEntity); +// if (orderId != 0) { +// List parcelListEntityList = distributionParcelListClient.findEntityListByOrderCode(orderCode, fromWarehouseId); // List ls = new ArrayList<>(); // for (DistributionParcelListEntity parcelListEntity : parcelListEntityList) { // DistributionParcelListEntity newParcelListEntity = new DistributionParcelListEntity(); @@ -7158,6 +8065,93 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("waybill_no", waybillNo) + .eq("load_id", loadId) + .eq("final_node_id", warehouseId) + .eq("order_code", orderCode); + TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService.getOne(queryWrapper); + if (Objects.isNull(carsLoadScanEntity)) { + log.warn("#############unloadZero: 零担信息不存在 waybillNo={} order_code={} loadId={} finalNodeId={}", waybillNo, orderCode, loadId, warehouseId); + return R.fail(405, "零担信息不存在"); + } + + Integer isAbnormal = 0; + Integer num = carsLoadScanEntity.getNum(); + Long fromWarehouseId = carsLoadScanEntity.getFromWarehouseId(); + Long waybillId = carsLoadScanEntity.getWaybillId(); + String scanCode = carsLoadScanEntity.getScanCode(); + Long loadScanId = carsLoadScanEntity.getId(); + if (enterNun > num) { + log.warn("#############unloadZero: 零担信息卸车数量大于装车件数 enterNun={} num={}", enterNun, num); + return R.fail(405, "零担信息卸车数量大于装车件数"); + } + + carsLoadScanEntity.setUnloadNum(enterNun); + carsLoadScanEntity.setUnloadNodeId(warehouseId); + carsLoadScanEntity.setUnloadNodeName(warehouseName); + carsLoadScanEntity.setUnloadAbnormal(0); + carsLoadScanEntity.setScanStatus("2"); + carsLoadScanEntity.setLoadingUserName(AuthUtil.getNickName()); + carsLoadScanEntity.setUnloadUserName(AuthUtil.getNickName()); + carsLoadScanEntity.setUnloadTime(new Date()); + trunklineCarsLoadScanService.updateById(carsLoadScanEntity); + + trunklineCarsUnloadLogService.savaUnloadLog(warehouseId, warehouseName, loadId, loadCode, waybillId, waybillNo, orderCode, + scanCode, enterNun, 2, 1, isAbnormal, trayId, trayCode, trayName, fromWarehouseId, loadScanId, remark); + + if (unbindTray == 1) { + if (!StringUtil.isBlank(trayCode)) { + trayTypeClient.deleteZeroOrderByTrayCode(orderCode, trayCode, fromWarehouseId, "干线卸车零担解托"); + } + } + + updateNumByLoadId(loadId); + + return R.success("卸车成功"); + } + @Override public R findLoadScanWaybillDetailList(Long loadId, String orderCode, Long warehouseId) { diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsOrderEntityServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsOrderEntityServiceImpl.java index 6a3db5225..90bc97912 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsOrderEntityServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsOrderEntityServiceImpl.java @@ -138,4 +138,14 @@ public class TrunklineCarsOrderEntityServiceImpl extends BaseServiceImpl updateCarsOrderIdList) { + baseMapper.updateNoCustomer(updateCarsOrderIdList); + } + + @Override + public List findMallOrderList(List carsOrderIdList) { + return baseMapper.findMallOrderList(carsOrderIdList); + } + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineLoadSignOrderServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineLoadSignOrderServiceImpl.java index 259b5b1ea..bd87d6ea2 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineLoadSignOrderServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineLoadSignOrderServiceImpl.java @@ -1,9 +1,9 @@ package com.logpm.trunkline.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.trunkline.dto.LoadCarsDTO; import com.logpm.trunkline.entity.TrunklineLoadSignOrderEntity; -import com.logpm.trunkline.entity.TrunklineLoadSignPhotoEntity; import com.logpm.trunkline.mapper.TrunklineLoadSignOrderMapper; import com.logpm.trunkline.service.ITrunklineLoadSignOrderService; import com.logpm.trunkline.vo.SignOrderDetailVO; @@ -54,4 +54,16 @@ public class TrunklineLoadSignOrderServiceImpl extends BaseServiceImpl findSignOrderPageList(IPage page, LoadCarsDTO loadCarsDTO) { return baseMapper.findSignOrderPageList(page,loadCarsDTO); } + + @Override + public void deleteListBySignOrderIds(List delSignOrderList) { + baseMapper.deleteListBySignOrderIds(delSignOrderList); + } + + @Override + public List findSignOrderListByLoadId(Long loadId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("load_id",loadId); + return baseMapper.selectList(queryWrapper); + } } diff --git a/blade-service/logpm-trunkline/src/main/resources/application-dev.yml b/blade-service/logpm-trunkline/src/main/resources/application-dev.yml index 232ee8954..b017fcbd3 100644 --- a/blade-service/logpm-trunkline/src/main/resources/application-dev.yml +++ b/blade-service/logpm-trunkline/src/main/resources/application-dev.yml @@ -12,10 +12,10 @@ server: spring: #rabbitmq配置 rabbitmq: - host: 192.168.3.100 + host: 192.168.2.46 port: 5672 username: admin - password: 123456 + password: admin #虚拟host 可以不设置,使用server默认host virtual-host: / #确认消息已发送到队列(Queue) diff --git a/blade-service/logpm-warehouse/src/main/resources/application-dev.yml b/blade-service/logpm-warehouse/src/main/resources/application-dev.yml index 3c5425ca3..b7affbaba 100644 --- a/blade-service/logpm-warehouse/src/main/resources/application-dev.yml +++ b/blade-service/logpm-warehouse/src/main/resources/application-dev.yml @@ -12,10 +12,10 @@ server: spring: #rabbitmq配置 rabbitmq: - host: 192.168.3.100 + host: 192.168.2.46 port: 5672 username: admin - password: 123456 + password: admin #虚拟host 可以不设置,使用server默认host virtual-host: / #确认消息已发送到队列(Queue)