Browse Source

Merge remote-tracking branch 'origin/dev' into dev

single_db
caoyizhong 1 year ago
parent
commit
a0e3ef49fa
  1. 6
      blade-biz-common/src/main/java/org/springblade/common/constant/LauncherConstant.java
  2. 3
      blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataStorageServicesClient.java
  3. 5
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java
  4. 11
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionSignforEntity.java
  5. 5
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java
  6. 12
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionBillOrderPackVO.java
  7. 34
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionParcelListVO.java
  8. 189
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionReservationInventoryPackageVO.java
  9. 7
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistrilbutionBillLadingVO.java
  10. 4
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/BillladingDTO.java
  11. 1
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java
  12. 3
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineBillladingEntity.java
  13. 4
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineBillladingLogEntity.java
  14. 53
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineWaybillPackageEntity.java
  15. 13
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineBillladingDetailListVO.java
  16. 15
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineBillladingDetailVO.java
  17. 1
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineBillladingVO.java
  18. 6
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseWaybillClient.java
  19. 14
      blade-service/logpm-aftersales/Dockerfile
  20. 2
      blade-service/logpm-basic/Dockerfile
  21. 2
      blade-service/logpm-basicdata/Dockerfile
  22. 14
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataStorageServicesClient.java
  23. 4
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataGoodsAreaMapper.xml
  24. 2
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataStorageServicesMapper.java
  25. 7
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataStorageServicesMapper.xml
  26. 2
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataStorageServicesService.java
  27. 4
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataCodeServiceImpl.java
  28. 5
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataStorageServicesServiceImpl.java
  29. 7
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataWarehouseServiceImpl.java
  30. 2
      blade-service/logpm-distribution/Dockerfile
  31. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionDeliveryAppController.java
  32. 25
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java
  33. 54
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java
  34. 14
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionReservationController.java
  35. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockController.java
  36. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistrilbutionBillStockController.java
  37. 72
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionCancelReservationPackageDTO.java
  38. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionDeliveryListDTO.java
  39. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistrilbutionAppsignforDTO.java
  40. 19
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java
  41. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryInfoMapper.xml
  42. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.java
  43. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml
  44. 14
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.java
  45. 11
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml
  46. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java
  47. 51
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml
  48. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java
  49. 91
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml
  50. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml
  51. 5
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml
  52. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.java
  53. 27
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml
  54. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java
  55. 31
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml
  56. 49
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillStockMapper.xml
  57. 60
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/OrderPackageStatusDataHandler.java
  58. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java
  59. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryInfoService.java
  60. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java
  61. 10
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java
  62. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationPackageService.java
  63. 16
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationService.java
  64. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationStockarticleService.java
  65. 18
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java
  66. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockupService.java
  67. 59
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
  68. 24
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java
  69. 609
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  70. 74
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java
  71. 37
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationPackageServiceImpl.java
  72. 212
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java
  73. 20
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationStockarticleServiceImpl.java
  74. 630
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java
  75. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java
  76. 57
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockServiceImpl.java
  77. 210
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java
  78. 19
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java
  79. 2
      blade-service/logpm-distribution/src/main/resources/application-dev.yml
  80. 4
      blade-service/logpm-distribution/src/main/resources/application-test.yml
  81. 92
      blade-service/logpm-factory/src/main/java/com/logpm/factory/config/RabbitMqConfiguration.java
  82. 8
      blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/feign/MtOrderMainClinet.java
  83. 2
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java
  84. 9
      blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java
  85. 7
      blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/NewSystemReceiveInfoHandler.java
  86. 37
      blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/UnloadCarComHandler.java
  87. 4
      blade-service/logpm-factory/src/main/resources/application-test.yml
  88. 14
      blade-service/logpm-patch/Dockerfile
  89. 51
      blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncWarehouseData.java
  90. 14
      blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java
  91. 50
      blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml
  92. 14
      blade-service/logpm-patch/src/main/java/com/logpm/patch/service/IWarehouseMappingDataService.java
  93. 10
      blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java
  94. 35
      blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/WarehouseMappingDataServiceImpl.java
  95. 14
      blade-service/logpm-trunkline/Dockerfile
  96. 24
      blade-service/logpm-trunkline/pom.xml
  97. 69
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/BillladingApiController.java
  98. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/BillladingController.java
  99. 6
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/CarsLoadController.java
  100. 2
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.java
  101. Some files were not shown because too many files have changed in this diff Show More

6
blade-biz-common/src/main/java/org/springblade/common/constant/LauncherConstant.java

@ -56,7 +56,7 @@ public interface LauncherConstant {
/**
* nacos test 地址
*/
String NACOS_TEST_ADDR = "172.16.128.146:8848";
String NACOS_TEST_ADDR = "192.168.10.106:8848";
/**
@ -72,7 +72,7 @@ public interface LauncherConstant {
/**
* sentinel test 地址
*/
String SENTINEL_TEST_ADDR = "172.30.0.58:8858";
String SENTINEL_TEST_ADDR = "192.168.10.106:8858";
/**
* seata dev 地址
@ -88,7 +88,7 @@ public interface LauncherConstant {
/**
* seata test 地址
*/
String SEATA_TEST_ADDR = "172.16.128.146:8091";
String SEATA_TEST_ADDR = "192.168.10.106:8091";
/**

3
blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataStorageServicesClient.java

@ -51,4 +51,7 @@ public interface IBasicdataStorageServicesClient {
@GetMapping(API_PREFIX+"/findBySendWarehouseIdAndClientId")
List<BasicdataStorageServicesEntity> findBySendWarehouseIdAndClientId(@RequestParam Long warehouseId, @RequestParam Long clientId);
@GetMapping(API_PREFIX+"/findEntityBySendWarehouseIdAndClientId")
BasicdataStorageServicesEntity findEntityBySendWarehouseIdAndClientId(@RequestParam Long warehouseId, @RequestParam Long clientId);
}

5
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java

@ -372,6 +372,11 @@ public class DistributionParcelListEntity extends TenantEntity {
@ApiModelProperty(value = "体积")
private BigDecimal volume;//体积
@ApiModelProperty(value = "是否中转")
private Integer isTransfer;//是否中转
@ApiModelProperty(value = "暂存单id")
private Long advanceId;//暂存单id
// /**
// * 配送状态

11
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionSignforEntity.java

@ -151,11 +151,22 @@ public class DistributionSignforEntity extends TenantEntity {
*/
@ApiModelProperty(value = "装车件数")
private Integer loadedNumber;
/**
* 装车件数
*/
@ApiModelProperty(value = "装车件数")
private Integer loadedinNumber;
/**
* 签收数
*/
@ApiModelProperty(value = "签收数")
private Integer receivedQuantity;
/**
* 签收数
*/
@ApiModelProperty(value = "签收数")
private Integer receivedinQuantity;
/**
* 送货司机(id)
*/

5
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java

@ -132,4 +132,9 @@ public interface IDistributionParcelListClient {
@GetMapping(API_PREFIX+"/queryOrderByOrderPackageCode")
R<DistributionParcelListEntity> queryOrderByOrderPackageCode( @RequestParam String orderPackageCode);
@GetMapping(API_PREFIX+"/updateTransferStatus")
void updateTransferStatus(@RequestParam String orderCode, @RequestParam Long warehouseId, @RequestParam Integer isTransfer);
@GetMapping(API_PREFIX+"/updateEntityByOpenOrder")
void updateEntityByOpenOrder(@RequestParam Long advanceId, @RequestParam Long warehouseId, @RequestParam Long waybillId);
}

12
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionBillOrderPackVO.java

@ -2,6 +2,8 @@ package com.logpm.distribution.vo;
import lombok.Data;
import java.util.Date;
/**
* @program: LogisticsPlatform-Service
* @description:
@ -25,4 +27,14 @@ public class DistributionBillOrderPackVO {
private String trainNumber; //客户车次号
private String sendWarehouseName; //客户车次号
private String orderCode; //始发仓
private String stockupStatusName; //备货状态名称
private String stockupConsignee; //提货人员
private String stockupPickUpPlate; //提货车牌
private String stockupConditions; //提货状态
private String stockupCreateUser; //提货扫描人
private String stockuppickUpTime; //提货时间
private String clerkCheck ; //文员复核人
private Date signForCreateTime; //签收时间
private Date clerkUpdateTime; //文员签收时间
private Date stockupCreateTime; //备货时间名称
}

34
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionParcelListVO.java

@ -17,6 +17,7 @@
package com.logpm.distribution.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -167,4 +168,37 @@ public class DistributionParcelListVO extends DistributionParcelListEntity {
private String noteNumber;
/**
* 时间模糊查询需要的值
*/
@ApiModelProperty(value = "入库开始时间")
@TableField(exist = false)
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
private String startWarehouseEntryTimeEnd;
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "入库结束时间")
@TableField(exist = false)
private String lastWarehouseEntryTimeEnd;
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "装车开始时间")
@TableField(exist = false)
private String startLoadingTime;
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "装车结束时间")
@TableField(exist = false)
private String lastLoadingTime;
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "签收开始时间")
@TableField(exist = false)
private String startSigningTime;
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "签收结束时间")
@TableField(exist = false)
private String lastSigningTime;
}

189
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionReservationInventoryPackageVO.java

@ -0,0 +1,189 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.distribution.vo;
import com.logpm.distribution.entity.DistributionReservationStocklistEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* 预约库存中间表 视图实体类
*
* @author TJJ
* @since 2023-06-28
*/
@Data
public class DistributionReservationInventoryPackageVO{
private static final long serialVersionUID = 1L;
/**
* 库存品包条码
*/
@ApiModelProperty(value = "库存品包条码")
private String stockPackageCode;
/**
* 库存品包件Id
*/
@ApiModelProperty(value = "库存品包件Id")
private Long id;
/**
* 库存品包件装车状态
*/
@ApiModelProperty(value = "库存品包件装车状态")
private String stockLockingStatus;
/**
* 库存品包件装车状态
*/
@ApiModelProperty(value = "库存品包件装车状态")
private String stockLockingStatusName;
/**
* 库存品包件装车状态
*/
@ApiModelProperty(value = "库存品包件装车状态")
private String stockStatus;
/**
* 库存品包件备货状态
*/
@ApiModelProperty(value = "库存品包件备货状态")
private String stockStatusName;
/**
* 库存品包件签收状态
*/
@ApiModelProperty(value = "库存品包件签收状态")
private String stockSignfoStatus;
/**
* 库存品包件签收状态
*/
@ApiModelProperty(value = "库存品包件签收状态")
private String stockSignfoStatusName;
/**
* 库存品计划出库数量
*/
@ApiModelProperty(value = "库存品计划出库数量")
private Integer num;
/**
* 库存品包件物料编码
*/
@ApiModelProperty(value = "库存品包件物料编码")
private String cargoNumber;
/**
* 库存品包件订单自编码
*/
@ApiModelProperty(value = "库存品包件订单自编码")
private String orderCode;
/**
* 库存品包件入库批次号
*/
@ApiModelProperty(value = "库存品包件入库批次号")
private String incomingBatch;
/**
* 库存品包件物料名称
*/
@ApiModelProperty(value = "库存品包件物料名称")
private String descriptionGoods;
/**
* 库存品包件物料单位
*/
@ApiModelProperty(value = "库存品包件物料单位")
private String cargoUnit;
/**
* 库存品包件商场名称
*/
@ApiModelProperty(value = "库存品包件商场名称")
private String marketName;
/**
* 库存品包件品牌信息
*/
@ApiModelProperty(value = "库存品包件品牌信息")
private String brandName;
/**
* 库存品包件计划装车人
*/
@ApiModelProperty(value = "库存品包件计划装车人")
private String driverName;
/**
* 库存品包件计划装车车牌
*/
@ApiModelProperty(value = "库存品包件计划装车车牌")
private String vehicleName;
/**
* 库存品包件装车方式
*/
@ApiModelProperty(value = "库存品包件装车方式")
private String scanStatus;
/**
* 库存品包件装车时间
*/
@ApiModelProperty(value = "库存品包件装车时间")
private String scanTime;
/**
* 库存品包件装车数量
*/
@ApiModelProperty(value = "库存品包件装车数量")
private Integer loadedNub;
/**
* 库存品包件装车人
*/
@ApiModelProperty(value = "库存品包件装车人")
private String scanUser;
/**
* 库存品包件签收人
*/
@ApiModelProperty(value = "库存品包件签收人")
private String signingUser;
/**
* 库存品包件签收时间
*/
@ApiModelProperty(value = "库存品包件签收时间")
private String signingTime;
}

7
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistrilbutionBillLadingVO.java

@ -48,7 +48,12 @@ public class DistrilbutionBillLadingVO extends DistrilbutionBillLadingEntity {
private String warehouse;
private String warehouseEntryTime;
private String storageFee;
//计划件数
private String totalNumber;
//实际件数
private String handQuantity;
//货物名称
private String productInformation;
//订单自编号
private String orderCode;
private String brand;
@ -64,7 +69,7 @@ public class DistrilbutionBillLadingVO extends DistrilbutionBillLadingEntity {
private Integer treatNum; //待
private Integer signedFor ; //已签收
private Integer stopNum; //
private Integer stopNum; //实提件数
private Integer sumTotal; //总数
@ApiModelProperty(value = "提货状态")

4
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/BillladingDTO.java

@ -37,4 +37,8 @@ public class BillladingDTO extends TrunklineBillladingEntity {
private String clientName;
private String startDateStr;
private String endDateStr;
}

1
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java

@ -36,6 +36,7 @@ public class LoadCarsDTO implements Serializable {
private Long carsOrderId;
private String carsOrderIds;
private Integer planNum;
private String isCustomer;

3
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineBillladingEntity.java

@ -109,5 +109,8 @@ public class TrunklineBillladingEntity extends TenantEntity {
/** 创建人名称 */
@ApiModelProperty(name = "创建人名称",notes = "")
private String createUserName ;
/** remark */
@ApiModelProperty(name = "备注",notes = "")
private String remark ;
}

4
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineBillladingLogEntity.java

@ -45,9 +45,9 @@ public class TrunklineBillladingLogEntity extends TenantEntity {
private Long billladingId ;
/** 描述内容 */
@ApiModelProperty(name = "操作后",notes = "")
private String after ;
private String afterOpreation ;
/** 描述内容 */
@ApiModelProperty(name = "操作前",notes = "")
private String before ;
private String beforeOpreation ;
}

53
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineWaybillPackageEntity.java

@ -0,0 +1,53 @@
package com.logpm.trunkline.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
@Data
@TableName("logpm_trunkline_waybill_package")
@ApiModel(value = "TrunklineWaybillPackage对象", description = "运单包件关联表")
@EqualsAndHashCode(callSuper = true)
public class TrunklineWaybillPackageEntity extends TenantEntity {
/** 预留1 */
@ApiModelProperty(name = "预留1",notes = "")
private String reserve1 ;
/** 预留2 */
@ApiModelProperty(name = "预留2",notes = "")
private String reserve2 ;
/** 预留3 */
@ApiModelProperty(name = "预留3",notes = "")
private String reserve3 ;
/** 预留4 */
@ApiModelProperty(name = "预留4",notes = "")
private String reserve4 ;
/** 预留5 */
@ApiModelProperty(name = "预留5",notes = "")
private String reserve5 ;
/** 运单id */
@ApiModelProperty(name = "运单id",notes = "")
private Long waybillId;
/** 运单号 */
@ApiModelProperty(name = "运单号",notes = "")
private String waybillNo;
/** 暂存单包件id */
@ApiModelProperty(name = "暂存单包件id",notes = "")
private Long advanceDetailId;
/** 包件码 */
@ApiModelProperty(name = "包件码",notes = "")
private String orderPackageCode;
/** 是否签收 */
@ApiModelProperty(name = "是否签收",notes = "")
private Integer isSignfor;
/** 暂存单id */
@ApiModelProperty(name = "暂存单id",notes = "")
private Long advanceId;
/** 订单自编号 */
@ApiModelProperty(name = "订单自编号",notes = "")
private String orderCode;
}

13
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineBillladingDetailListVO.java

@ -0,0 +1,13 @@
package com.logpm.trunkline.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class TrunklineBillladingDetailListVO implements Serializable {
private String orderPackageCode;
private String packageStatus;
}

15
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineBillladingDetailVO.java

@ -0,0 +1,15 @@
package com.logpm.trunkline.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class TrunklineBillladingDetailVO implements Serializable {
private String serviceNum;
private String orderCode;
private Integer totalNum;
private Integer scanNum;
}

1
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineBillladingVO.java

@ -19,5 +19,6 @@ public class TrunklineBillladingVO extends TrunklineBillladingEntity {
private List<TrunklineBillladingWaybillVO> waybillList = new ArrayList<>();
private List<TrunklineBillladingLineVO> lineList = new ArrayList<>();
}

6
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseWaybillClient.java

@ -65,4 +65,10 @@ public interface IWarehouseWaybillClient {
@GetMapping(API_PREFIX + "/findList")
List<WarehouseWaybillEntity> findList();
@GetMapping(API_PREFIX + "/findMoreWaybillNo")
List<String> findMoreWaybillNo();
@GetMapping(API_PREFIX + "/findLastData")
Long findLastData(@RequestParam String waybillNo);
}

14
blade-service/logpm-aftersales/Dockerfile

@ -0,0 +1,14 @@
FROM bladex/alpine-java:openjdk8-openj9_cn_slim
MAINTAINER h5u@163.com
RUN mkdir -p /logpm/aftersales
WORKDIR /logpm/aftersales
EXPOSE 6000
ADD ./target/logpm-aftersales.jar ./app.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
CMD ["--spring.profiles.active=test"]

2
blade-service/logpm-basic/Dockerfile

@ -11,4 +11,4 @@ EXPOSE 8300
ADD ./target/logpm-basic.jar ./app.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
CMD ["--spring.profiles.active=dev"]
CMD ["--spring.profiles.active=test"]

2
blade-service/logpm-basicdata/Dockerfile

@ -11,4 +11,4 @@ EXPOSE 8400
ADD ./target/logpm-basicdata.jar ./app.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
CMD ["--spring.profiles.active=dev"]
CMD ["--spring.profiles.active=test"]

14
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataStorageServicesClient.java

@ -29,6 +29,7 @@ import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
import java.util.Objects;
/**
* 门店服务仓库表 Feign实现类
@ -63,4 +64,17 @@ public class BasicdataStorageServicesClient implements IBasicdataStorageServices
return basicdataStorageServicesService.list(queryWrapper);
}
@Override
public BasicdataStorageServicesEntity findEntityBySendWarehouseIdAndClientId(Long warehouseId, Long clientId) {
QueryWrapper<BasicdataStorageServicesEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("send_warehouse_id",warehouseId)
.eq("client_id",clientId)
.eq("is_deleted",0);
BasicdataStorageServicesEntity servicesEntity = basicdataStorageServicesService.getOne(queryWrapper);
if(Objects.isNull(servicesEntity)){
servicesEntity = basicdataStorageServicesService.findEntityBySendWarehouseIdIsNullAndClientId(clientId);
}
return servicesEntity;
}
}

4
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataGoodsAreaMapper.xml

@ -291,8 +291,8 @@
lwtg.tray_code trayCode,
lwug.position_code positionCode,
SUM(lwug.num) num,
GROUP_CONCAT(lwug.create_time SEPARATOR '、') upTime,
GROUP_CONCAT(lwug.create_user SEPARATOR '、') upUser,
GROUP_CONCAT(DISTINCT lwug.create_time SEPARATOR '、') upTime,
GROUP_CONCAT(DISTINCT lwug.create_user SEPARATOR '、') upUser,
(SELECT GROUP_CONCAT( DISTINCT ldsli.order_code) order_code FROM logpm_distribution_stock_list_info ldsli WHERE
ldsli.incoming_batch = ldsl.incoming_batch
AND ldsli.material_id = ldsl.material_id

2
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataStorageServicesMapper.java

@ -51,4 +51,6 @@ public interface BasicdataStorageServicesMapper extends BaseMapper<BasicdataStor
* @return
*/
List<BasicdataStorageServicesExcel> exportBasicdataStorageServices(@Param("ew") Wrapper<BasicdataStorageServicesEntity> queryWrapper);
BasicdataStorageServicesEntity findEntityBySendWarehouseIdIsNullAndClientId(@Param("clientId") Long clientId);
}

7
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataStorageServicesMapper.xml

@ -51,4 +51,11 @@
SELECT * FROM logpm_basicdata_storage_services ${ew.customSqlSegment}
</select>
<select id="findEntityBySendWarehouseIdIsNullAndClientId" resultType="com.logpm.basicdata.entity.BasicdataStorageServicesEntity">
select *
from logpm_basicdata_storage_services
where send_warehouse_id is null
and client_id = #{clientId}
</select>
</mapper>

2
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataStorageServicesService.java

@ -55,4 +55,6 @@ public interface IBasicdataStorageServicesService extends BaseService<BasicdataS
boolean submitSave(BasicdataStorageServicesDTO basicdataStorageServices);
List<BasicdataStorageServicesVO> pageList(IPage<Object> page, Map<String, Object> basicdataStorageServices);
BasicdataStorageServicesEntity findEntityBySendWarehouseIdIsNullAndClientId(Long clientId);
}

4
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataCodeServiceImpl.java

@ -146,7 +146,7 @@ public class BasicdataCodeServiceImpl implements IBasicdataCodeService {
bladeRedis.expireAt(key,CommonUtil.getDayEnd());
}
return warehouseCode+f+dateShort+CommonUtil.geFourNumber(incr,5);
return warehouseCode+f+CommonUtil.geFourNumber(incr,5);
}
@ -173,7 +173,7 @@ public class BasicdataCodeServiceImpl implements IBasicdataCodeService {
}
return warehouseCode+"TH"+dateShort+CommonUtil.geFourNumber(incr,5);
return warehouseCode+"TH"+CommonUtil.geFourNumber(incr,5);
}
private String generateExOrderCode(Integer type, String warehouseCode, String orderCode) {

5
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataStorageServicesServiceImpl.java

@ -153,4 +153,9 @@ public class BasicdataStorageServicesServiceImpl extends BaseServiceImpl<Basicda
return baseMapper.selectBasicdataStorageServicesPage(page,basicdataStorageServicesvo);
}
@Override
public BasicdataStorageServicesEntity findEntityBySendWarehouseIdIsNullAndClientId(Long clientId) {
return baseMapper.findEntityBySendWarehouseIdIsNullAndClientId(clientId);
}
}

7
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataWarehouseServiceImpl.java

@ -166,6 +166,13 @@ public class BasicdataWarehouseServiceImpl extends BaseServiceImpl<BasicdataWare
String defaultRoleId = DictBizCache.getValue(DictBizConstant.DEFAULT_MALL_ROLE_ID, DictBizConstant.DEFAULT_MALL_ROLE_ID);
// 最大的管理员
if(StringUtil.isBlank(user.getRoleId())){
return null;
}
if (user.getRoleId().contains(defaultRoleId)) {
// 当前这登录的用户为商场用户

2
blade-service/logpm-distribution/Dockerfile

@ -11,4 +11,4 @@ EXPOSE 8600
ADD ./target/logpm-distribution.jar ./app.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
CMD ["--spring.profiles.active=dev"]
CMD ["--spring.profiles.active=test"]

1
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionDeliveryAppController.java

@ -135,6 +135,7 @@ public class DistributionDeliveryAppController {
@ApiOperation(value = "装车扫描", notes = "传入DistrilbutionloadingscanDTO")
public R loadingscan(@Valid @RequestBody DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) {
R msg = distributionDeliveryListService.loadingscan(distrilbutionloadingscanDTO);
return msg;
}

25
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java

@ -57,6 +57,7 @@ import org.springblade.common.constant.loading.LoadingStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageFreezeStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageLoadingStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageStockupStatusConstant;
import org.springblade.common.constant.pda.PdaAudioLingoStatus;
import org.springblade.common.constant.reservation.ReservationLoadingStatusConstant;
import org.springblade.common.constant.reservation.ReservationOrderStatusConstant;
@ -266,6 +267,7 @@ public class DistributionStockupAppController extends BladeController {
DistributionStockupSelfVO distributionStockupSelfVO = distributionStockupService.selectStockupStockListDetails(reservationId);
map = convertObjectToMap(distributionStockupSelfVO);
//库存品
List<DistributionStockupStockListVO> list = distributionStockupService.selectStockupStockList(stockupDTO);
map.put("stockList", list);
}
@ -342,7 +344,9 @@ public class DistributionStockupAppController extends BladeController {
@ApiOperationSupport(order = 1)
@ApiOperation(value = "配置包条码", notes = "传入stockupDTO")
public R stockConfigList(@RequestBody StockupDTO stockupDTO) {
if(ObjectUtils.isNull( stockupDTO.getTypeService()) ){
throw new ServiceException("服务类型不能为空!!!");
}
StockConfigInfoVO stockConfigOrderPackageListVOS = distributionStockupService.stockConfigList(stockupDTO);
@ -436,10 +440,12 @@ public class DistributionStockupAppController extends BladeController {
@ApiOperation(value = "备货库存品生成包件码", notes = "传入stockupDTO")
public R stockupStockListPackageCode(@RequestBody StockupDTO stockupDTO) {
Long reservationId = stockupDTO.getReservationId();//预约单id
if(ObjectUtils.isNull(stockupDTO.getTypeService())){
throw new ServiceException("服务类型不能为空!!");
}
// 根据当前库位获取最早入库的入库批次
Long stockListId = distributionStockupService.selectStockListInfoByCargoNumber(stockupDTO.getReservationId(), stockupDTO.getCargoNumber(), stockupDTO.getAllocationId());
Long stockListId = distributionStockupService.selectStockListInfoByCargoNumber(stockupDTO.getReservationId(), stockupDTO.getCargoNumber(), stockupDTO.getAllocationId(),stockupDTO.getTypeService());
log.warn("##############stockupStockListPackageCode: 库存品id为空 stockListId={}", stockListId);
if (Objects.isNull(stockListId)) {
return R.fail("当前库位没有无数据的库存品");
@ -1420,7 +1426,7 @@ public class DistributionStockupAppController extends BladeController {
entity.setOutboundType(stockupEntity.getTypeService());
distributionStockService.save(entity);
// //修改备货时间
// distributionAsyncService.updateStockupDate(stockupDTO);
distributionAsyncService.updateStockupStockListDate(stockupDTO);
// dataSourceTransactionManager.commit(transactionStatus);//提交
Map<String, Object> map = new HashMap<>();
@ -1538,16 +1544,21 @@ public class DistributionStockupAppController extends BladeController {
entity.setStockupId(stockupId);
entity.setParcelListId(one.getId());
entity.setStockQuantity(1);
if (distributionStockupEntity.getTypeService().equals("3")) {
// //修改包件备货状态
// DistributionParcelListEntity parcelListEntity = new DistributionParcelListEntity();
// parcelListEntity.setId(one.getId());
// parcelListEntity.setOrderPackageStockupStatus(OrderPackageStockupStatusConstant.yibeihu.getValue());
// distributionParcelListService.updateById(parcelListEntity);
if ("3".equals(distributionStockupEntity.getTypeService())) {
entity.setBillLadingId(reservationId);
DistributionStockupEntity byId = distributionStockupService.getById(stockupId);
entity.setStockupArea(byId.getStockupArea());
//修改包件备货状态
one.setOrderPackageStockupStatus(StockupStatusConstant.yibeihuo.getValue());
// one.setOrderPackageStockupStatus(StockupStatusConstant.yibeihuo.getValue());
//todo 待下架操作
// warehouseUpdownTypeClient.downPackage(stockupDTO.getPacketBarCode());
distributionParcelListService.updateById(one);
// distributionParcelListService.updateById(one);
} else {
entity.setReservationId(reservationId);
}

54
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java

@ -18,17 +18,23 @@ package com.logpm.distribution.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.distribution.dto.DistributionDeliveryInfoDTO;
import com.logpm.distribution.dto.DistributionDeliveryListDTO;
import com.logpm.distribution.dto.DistrilbutionAppsignforDTO;
import com.logpm.distribution.dto.app.DistrilbutionloadingscanDTO;
import com.logpm.distribution.entity.DistributionDeliveryListEntity;
import com.logpm.distribution.excel.DistributionDeliveryListExcel;
import com.logpm.distribution.service.IDistributionDeliveryInfoService;
import com.logpm.distribution.service.IDistributionDeliveryListService;
import com.logpm.distribution.service.IDistributionSignforService;
import com.logpm.distribution.vo.*;
import com.logpm.distribution.vo.print.PrintPreviewVO;
import com.logpm.distribution.wrapper.DistributionDeliveryListWrapper;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@ -69,6 +75,12 @@ public class DistributionDeliveryListController extends BladeController {
private final IDistributionDeliveryInfoService distributionDeliveryInfoService;
private final IDistributionSignforService distributionSignforService;
private final IBasicdataWarehouseClient basicdataWarehouseClient;
private final IWarehouseUpdownTypeClient warehouseUpdownTypeClient;
/**
* 配送管理 详情
*/
@ -92,6 +104,17 @@ public class DistributionDeliveryListController extends BladeController {
return R.data(pages);
}
/**
* 查看库存品包件 详情
*/
@GetMapping("/getReservationPackageList")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "查看包件详情", notes = "传入distributionDeliveryList")
public R<IPage<DistributionReservationInventoryPackageVO>> getReservationPackageList(@RequestParam Map<String,Object> reservationPackageDTO, Query query) {
IPage<DistributionReservationInventoryPackageVO> pages = distributionDeliveryInfoService.getReservationPackageList(reservationPackageDTO,Condition.getPage(query));
return R.data(pages);
}
/**
* 查看订单
*/
@ -428,4 +451,35 @@ public class DistributionDeliveryListController extends BladeController {
throw new RuntimeException(e);
}
}
@PostMapping("/deliverySign")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "PC签收包件")
public R signfor(@Valid @RequestBody DistrilbutionAppsignforDTO distrilbutionloadingscanDTO) {
R r = distributionSignforService.signforPC(distrilbutionloadingscanDTO);
try{
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
List<String> packageCodes = (List<String>) r.getData();
String orderPackageCodes = null;
for (String packageCode : packageCodes) {
if(StringUtils.isBlank(orderPackageCodes)){
orderPackageCodes = packageCode;
}else{
orderPackageCodes = orderPackageCodes + "," + packageCode;
}
}
warehouseUpdownTypeClient.downPackageOrDelTray(orderPackageCodes,myCurrentWarehouse.getId());
}catch (Exception e){
log.error("#############signfor: 下架失败");
}
return r;
}
@PostMapping("/deliveryInventorySign")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "PC签收包件")
public R deliveryInventorySign(@Valid @RequestBody DistrilbutionAppsignforDTO distrilbutionloadingscanDTO) {
R r = distributionSignforService.signforInPC(distrilbutionloadingscanDTO);
return r;
}
}

14
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionReservationController.java

@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.distribution.dto.DistributionCancelReservationPackageDTO;
import com.logpm.distribution.dto.DistributionDeliveryAllocationDTO;
import com.logpm.distribution.dto.DistributionReservationDTO;
import com.logpm.distribution.entity.DistributionReservationEntity;
@ -390,4 +391,17 @@ public class DistributionReservationController extends BladeController {
R parcelListVOIPage = reservationService.getReservationPackageListByOrderId(packageDTO,Condition.getPage(query));
return R.data(parcelListVOIPage);
}
/**
* 预约列表 详情
*/
@PostMapping("/cancelReservationPackage")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "预约取消配送包件", notes = "传入distrbutionReservation")
public R cancelReservationPackage(@RequestBody DistributionCancelReservationPackageDTO distributionCancelReservationPackageDTO) {
R r= reservationService.cancelReservationPackage(distributionCancelReservationPackageDTO);
return r;
}
}

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockController.java

@ -110,9 +110,9 @@ public class DistributionStockController extends BladeController {
@ApiOperationSupport(order = 4)
@ApiOperation(value = "系统备货新增", notes = "传入distributionStock")
public R addStockDetail(@Valid @RequestBody DistributionStockDTO distributionStock) {
if(ObjectUtils.isNull(distributionStock.getGoodsAreaId())){
/* if(ObjectUtils.isNull(distributionStock.getGoodsAreaId())){
return R.fail("注意,注意:备货区未选择!");
}
}*/
return R.status(distributionStockService.addStockDetail(distributionStock));

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistrilbutionBillStockController.java

@ -82,7 +82,7 @@ public class DistrilbutionBillStockController extends BladeController {
return R.data(detail);
}
/**
* 提货单 详情
* 提货单包件 详情
*/
@GetMapping("/billOrderPack")
@ApiOperationSupport(order = 1)

72
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionCancelReservationPackageDTO.java

@ -0,0 +1,72 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.distribution.dto;
import com.logpm.distribution.entity.DistributionReservationEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.List;
/**
* 预约取消包件数据传输实体
*
* @author TJJ
* @since 2023-06-12
*/
@Data
public class DistributionCancelReservationPackageDTO {
private static final long serialVersionUID = 1L;
/**
* 预约ID
*/
private Long reservationId;
/**
* 配送任务ID
*/
private Long deliveryId;
/**
* 订制品包件ID
*/
private String packageIds;
/**
* 类型 1- 订制品 2-库存哦 3-...
*/
private Integer type;
/**
* 库存品ID
*/
private Long inventoryId;
/**
* 库存品包件ID
*/
private String inventoryPackageIds;
}

7
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionDeliveryListDTO.java

@ -98,6 +98,13 @@ public class DistributionDeliveryListDTO extends DistributionDeliveryListEntity
*/
@ApiModelProperty(value = "备注")
private String remarks;
/**
* 是否修改司机
*/
@ApiModelProperty(value = "是否修改司机")
private String isDeliveryDriverUpdate;
/**
* 仓库ids
*/

7
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistrilbutionAppsignforDTO.java

@ -19,6 +19,12 @@ public class DistrilbutionAppsignforDTO {
@ApiModelProperty(value = "扫描码")
private String barcode;
/**
* 扫描码
*/
@ApiModelProperty(value = "扫描码")
private String barcodes;
/**
* 配送任务Id
@ -43,6 +49,7 @@ public class DistrilbutionAppsignforDTO {
// @NotEmpty(message = "客户Id不能为空")
private Long orderId;
/**
* 预约Id
*/

19
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java

@ -41,6 +41,7 @@ import springfox.documentation.annotations.ApiIgnore;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 在库订单包件清单 Feign实现类
@ -270,4 +271,22 @@ public class DistributionParcelListClient implements IDistributionParcelListClie
return R.data(detail);
}
@Override
public void updateTransferStatus(String orderCode, Long warehouseId,Integer isTransfer) {
distributionParcelListService.updateTransferStatus(orderCode,warehouseId,isTransfer);
}
@Override
public void updateEntityByOpenOrder(Long advanceId, Long warehouseId, Long waybillId) {
Set<String> set = distributionParcelListService.updateEntityByOpenOrder(advanceId, warehouseId, waybillId);
for (String orderCode : set) {
distributionStockArticleService.updateOrderInfo(orderCode,warehouseId);
}
}
}

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryInfoMapper.xml

@ -121,7 +121,7 @@
logpm_distribution_signfor lds
JOIN logpm_distribution_reservation ldr ON ldr.id = lds.reservation_id
<where>
lds.is_deleted = 0 and lds.delivery_id = #{id} and ldr.reservation_status != 40
lds.is_deleted = 0 and lds.delivery_id = #{id} and ldr.reservation_status != 40 AND (ldr.reservation_num + ldr.reservation_stock_list_num) > 0
</where>
</select>
<select id="selectDistributionDeliverywrapInfoPage"
@ -678,7 +678,7 @@ FROM
logpm_distribution_signfor lds
JOIN logpm_distribution_reservation ldr ON ldr.id = lds.reservation_id
<where>
lds.is_deleted = 0 and lds.delivery_id = #{id} and ldr.reservation_status != 40
lds.is_deleted = 0 and lds.delivery_id = #{id} and ldr.reservation_status != 40 AND (ldr.reservation_num + ldr.reservation_stock_list_num) > 0
<if test="param.reservationCode != '' and param.reservationCode != null">
and ldr.reservation_code like concat('%',#{param.reservationCode},'%')
</if>

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.java

@ -182,7 +182,7 @@ public interface DistributionDeliveryListMapper extends BaseMapper<DistributionD
List<DistributionLoadscaninvnEntity> selectdeliveryworkVnScanStockde(@Param("barcode")String barcode,@Param("deliveryId") Long deliveryId);
List<DistributionAppDeliveryListVO> selectDistributionAppDeliveryListPage(IPage page, @Param("param") DistributionAppDeliveryListDTO distributionAppDeliveryListDTO,@Param("array") List<Long> deliveryIds);
List<DistributionAppDeliveryListVO> selectDistributionAppDeliveryListPage(IPage page, @Param("param") DistributionAppDeliveryListDTO distributionAppDeliveryListDTO,@Param("array") List<Long> deliveryIds,@Param("warehouseId") Long warehouseId);
/**

6
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml

@ -210,7 +210,7 @@
left JOIN logpm_distribution_signfor lds on lddl.id = lds.delivery_id
LEFT JOIN logpm_distribution_reservation ldr on ldr.id = lds.reservation_id
<where>
lddl.is_deleted = 0
lddl.is_deleted = 0 AND (IF(lddl.delivery_number is null ,0,lddl.delivery_number) + IF(lddl.inventory_nub is null ,0,lddl.inventory_nub)) > 0
<if test="param.trainNumber != null and param.trainNumber!=''">
and lddl.train_number like concat('%',#{param.trainNumber},'%')
</if>
@ -757,7 +757,7 @@
logpm_distribution_delivery_list lddl
left join logpm_distribution_delivery_self ldds on lddl.id =ldds.delivery_id
<where>
lddl.is_deleted =0
lddl.is_deleted =0 and lddl.warehouse_id =#{warehouseId}
<if test=" param.type != null and param.type != ''">and lddl.type = #{param.type}</if>
<if test="array != null and @org.apache.commons.collections4.CollectionUtils@isNotEmpty(array)">
and lddl.id in
@ -774,7 +774,7 @@
</if>
</where>
/*ORDER BY lddl.create_time DESC*/
ORDER BY lddl.create_time DESC
</select>
<select id="getDeliveryStockArticleInfo" resultType="com.logpm.distribution.vo.DistributionStockArticleVO">
SELECT

14
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.java

@ -148,4 +148,18 @@ public interface DistributionLoadscanMapper extends BaseMapper<DistributionLoads
* @return
*/
Integer getLoadCountNum(@Param("deliveryId") Long deliveryId);
/**
*
* @param reservationId
* @return
*/
Integer selectLoadingNumByReservationId(@Param("reservationId")Long reservationId);
/**
* 查询当前客户签收数
* @param reservationId
* @return
*/
Integer selectSigningNumByReservationId(@Param("reservationId")Long reservationId);
}

11
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml

@ -271,5 +271,14 @@
AND ldl.is_abnormal_loading = 1
</select>
<select id="selectLoadingNumByReservationId" resultType="java.lang.Integer">
SELECT (IF((SELECT sum(loaded_nub) FROM logpm_distribution_loadscan WHERE reservation_id = #{reservationId} AND scan_state != 1 AND is_abnormal_loading != 2) is null,0,(SELECT sum(loaded_nub) FROM logpm_distribution_loadscan WHERE reservation_id = #{reservationId} AND scan_state != 1 AND is_abnormal_loading != 2)))
+
(IF((SELECT sum(loaded_nub) FROM logpm_distribution_loadscaninvn WHERE reservation_id = #{reservationId} AND scan_state != 1)is null,0,(SELECT sum(loaded_nub) FROM logpm_distribution_loadscaninvn WHERE reservation_id = #{reservationId} AND scan_state != 1)))
</select>
<select id="selectSigningNumByReservationId" resultType="java.lang.Integer">
SELECT (IF((SELECT sum(loaded_nub) FROM logpm_distribution_loadscan WHERE reservation_id = #{reservationId} AND scan_state != 1 AND is_abnormal_loading != 2 AND signfor_state = 2) is null,0,(SELECT sum(loaded_nub) FROM logpm_distribution_loadscan WHERE reservation_id = #{reservationId} AND scan_state != 1 AND is_abnormal_loading != 2 AND signfor_state = 2)))
+
(IF((SELECT sum(loaded_nub) FROM logpm_distribution_loadscaninvn WHERE reservation_id = #{reservationId} AND scan_state != 1 AND signfor_state = 2)is null,0,(SELECT sum(loaded_nub) FROM logpm_distribution_loadscaninvn WHERE reservation_id = #{reservationId} AND scan_state != 1 AND signfor_state = 2)))
</select>
</mapper>

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java

@ -165,4 +165,6 @@ public interface DistributionParcelListMapper extends BaseMapper<DistributionPar
* @return
*/
int updateOrderPackageInceptionStatus(@Param("packageIds") List<Long> packageIds);
void updateTransferStatus(@Param("orderCode") String orderCode, @Param("warehouseId") Long warehouseId, @Param("isTransfer") Integer isTransfer);
}

51
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml

@ -153,7 +153,7 @@
left join logpm_warehouse_warehouse lww on lww.id = ldpl.warehouse_id
LEFT JOIN logpm_distribution_reservation_package ldrp on ldrp.parce_list_id = ldpl.id and ldrp.packet_bar_status in (1,3)
LEFT JOIN logpm_distribution_reservation ldr on ldr.id = ldrp.reservation_id
LEFT JOIN logpm_distribution_loadscan ldl on ldl.package_id = ldpl.id and ldl.type = 2
LEFT JOIN logpm_distribution_loadscan ldl on ldl.package_id = ldpl.id and ldl.type = 2 and ldl.scan_status !=1
LEFT JOIN logpm_distribution_delivery_list lddl on lddl.id = ldl.delivery_id
<where>
ldpl.is_deleted = 0
@ -163,11 +163,11 @@
<if test="param.reservationCode !='' and param.reservationCode != null">
and ldr.reservation_code = #{param.reservationCode}
</if>
<if test="param.DvehicleName !='' and param.DvehicleName != null">
and lddl.vehicle_name = #{param.DvehicleName}
<if test="param.dvehicleName !='' and param.dvehicleName != null">
and lddl.vehicle_name = #{param.dvehicleName}
</if>
<if test="param.ZvehicleName !='' and param.ZvehicleName != null">
and ldl.vehicle_name = #{param.ZvehicleName}
<if test="param.vehicleName !='' and param.vehicleName != null">
and ldl.vehicle_name = #{param.vehicleName}
</if>
<if test="param.scanTime !='' and param.scanTime != null">
and date_format(from_unixtime(ldl.scan_time),'%Y-%m-%d') = date_format(#{param.scanTime}),'%Y-%m-%d')
@ -250,6 +250,24 @@
<if test="param.orderPackageStatus !='' and param.orderPackageStatus != null">
and ldpl.order_package_status = #{param.orderPackageStatus}
</if>
<if test="param.waybillNumber != '' and param.waybillNumber != null ">
and ldpl.waybill_number = #{param.waybillNumber}
</if>
<if test="param.scanUser !='' and param.scanUser != null">
and ldl.scan_user = #{param.scanUser}
</if>
<if test="param.signingUser !='' and param.signingUser != null">
and ldl.signing_user = #{param.signingUser}
</if>
<if test="param.startWarehouseEntryTimeEnd != null and param.startWarehouseEntryTimeEnd !='' and param.lastWarehouseEntryTimeEnd !=''and param.lastWarehouseEntryTimeEnd != null">
and ldpl.warehouse_entry_time_end BETWEEN #{param.startWarehouseEntryTimeEnd} AND #{param.lastWarehouseEntryTimeEnd}
</if>
<if test="param.startLoadingTime != null and param.lastLoadingTime != null and param.startLoadingTime != '' and param.lastLoadingTime != ''">
AND ldl.scan_time BETWEEN #{param.startLoadingTime} AND #{param.lastLoadingTime}
</if>
<if test="param.startSigningTime != null and param.lastSigningTime != null and param.startSigningTime != '' and param.lastSigningTime != ''">
AND ldl.signing_time BETWEEN #{param.startSigningTime} AND #{param.lastSigningTime}
</if>
</where>
@ -319,23 +337,25 @@
<select id="selectOrderInfoSelfList" resultType="com.logpm.distribution.vo.PackageStockupVO">
select DISTINCT ldpl.order_code orderCode,ldpl.order_package_code packageBarCode,ldpl.conditions
goodsType,ldpl.material_name materialName,
CASE WHEN lds.id IS NULL THEN 0 ELSE 1 END AS isScan,ldpl.id parceListId,(
select GROUP_CONCAT( DISTINCT position_code)
from logpm_warehouse_updown_goods
where association_id = ldpl.id
) positionCode,lds.allocation_id allocationId
CASE WHEN lds.id IS NULL THEN 0 ELSE 1 END AS isScan,ldpl.id parceListId,
lwug.position_code positionCode,
lwug.allocation_id allocationId
from logpm_distrilbution_bill_package ldbp
LEFT JOIN logpm_distribution_parcel_list ldpl on ldbp.parce_list_id = ldpl.id and ldbp.packet_bar_status in (1,3) and ldbp.packet_bar_code is not null
LEFT JOIN logpm_distribution_stock lds on lds.parcel_list_id = ldpl.id
LEFT JOIN logpm_warehouse_updown_goods lwug on lwug.association_id = ldpl.id
LEFT JOIN logpm_distribution_stock lds ON lds.parcel_list_id = lwug.association_id
<where>
ldpl.conditions = '1'
<if test="param.allocationId != null and param.allocationId != ''">and lds.allocation_id =
<if test="param.allocationId != null and param.allocationId != ''">and lwug.allocation_id =
#{param.allocationId}
</if>
<if test="param.stockArticleId != null and param.stockArticleId != ''">and ldpl.stock_article_id =
#{param.stockArticleId}
</if>
<if test="param.reservationId != null and param.reservationId != ''"> and ldbp.bill_lading_id =
#{param.reservationId}
</if>
<if test="param.stockArticleIdList != null ">
and ldpl.stock_article_id in
<foreach collection="param.stockArticleIdList" separator="," open="(" close=")" item="a">
@ -1046,4 +1066,11 @@
and warehouse_id = #{warehouseId}
</update>
<update id="updateTransferStatus">
update logpm_distribution_parcel_list
set is_transfer = #{isTransfer}
where order_code = #{orderCode}
and warehouse_id = #{warehouseId}
</update>
</mapper>

8
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java

@ -348,4 +348,12 @@ public interface DistributionReservationMapper extends BaseMapper<DistributionRe
* @return
*/
int updatePackageDeliveryStatus(@Param("reservationId") Long reservationId,@Param("packageIds") List<Long> packageIds);
/**
* 查询客户库存品包件信息
* @param reservationPackageDTO
* @param page
* @return
*/
IPage<DistributionReservationInventoryPackageVO> selectInvenToryPackageByReservationInfo(@Param("param") Map<String, Object> reservationPackageDTO,IPage<DistributionReservationInventoryPackageVO> page);
}

91
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml

@ -1550,5 +1550,96 @@
and ldpl.third_product like concat('%',#{param.thirdProduct},'%')
</if>
</select>
<select id="selectInvenToryPackageByReservationInfo"
resultType="com.logpm.distribution.vo.DistributionReservationInventoryPackageVO">
SELECT
ldsld.stock_package_code,
ldsld.id,
CASE
WHEN ldsld.stock_locking_status = '20' THEN '已装车'
WHEN ldsld.stock_locking_status = '10' THEN '未装车'
END stockLockingStatusName,
CASE
WHEN ldsld.stock_status = '10' THEN '未备货'
WHEN ldsld.stock_status = '20' THEN '已备货'
END stockStatusName,
CASE
WHEN ldsld.stock_signfo_status = '10' THEN '未签收'
WHEN ldsld.stock_signfo_status = '20' THEN '已签收'
END stockSignfoStatusName,
ldsld.stock_locking_status,
ldsld.stock_status,
ldsld.stock_signfo_status,
ldsld.num,
ldsl.cargo_number,
ldsl.order_code,
ldsl.incoming_batch,
ldsl.description_goods,
ldsl.cargo_unit,
ldsl.market_name,
ldsl.brand_name,
ldl.driver_name,
ldl.vehicle_name,
ldl.scan_status,
ldl.scan_time,
ldl.loaded_nub,
ldl.scan_user,
ldl.signing_user,
ldl.signing_time
FROM
logpm_dis_stock_list_detail AS ldsld
LEFT JOIN logpm_distribution_stock_list AS ldsl ON ldsld.stock_list_id = ldsl.id
LEFT JOIN logpm_distribution_loadscaninvn AS ldl ON ldsld.id = ldl.inventory_package_id
WHERE
ldsld.reservation_id = #{param.reservationId} AND ldsld.stock_package_status in ('1','3')
<if test="param.stockPackageCode != null and param.stockPackageCode != ''">
and ldsld.stock_package_code like concat('%',#{param.stockPackageCode},'%')
</if>
<if test="param.cargoNumber != null and param.cargoNumber != ''">
and ldsl.cargo_number like concat('%',#{param.cargoNumber},'%')
</if>
<if test="param.orderCode != null and param.orderCode != ''">
and ldsl.order_code like concat('%',#{param.orderCode},'%')
</if>
<if test="param.incomingBatch != null and param.incomingBatch != ''">
and ldsl.incoming_batch like concat('%',#{param.incomingBatch},'%')
</if>
<if test="param.descriptionGoods != null and param.descriptionGoods != ''">
and ldsl.description_goods like concat('%',#{param.descriptionGoods},'%')
</if>
<if test="param.marketName != null and param.marketName != ''">
and ldsl.market_name like concat('%',#{param.marketName},'%')
</if>
<if test="param.brandName != null and param.brandName != ''">
and ldsl.brand_name like concat('%',#{param.brandName},'%')
</if>
<if test="param.driverName != null and param.driverName != ''">
and ldl.driver_name like concat('%',#{param.driverName},'%')
</if>
<if test="param.vehicleName != null and param.vehicleName != ''">
and ldl.vehicle_name like concat('%',#{param.vehicleName},'%')
</if>
<if test="param.scanTime != null and param.scanTime != ''">
and ldl.scan_time like concat('%',#{param.scanTime},'%')
</if>
<if test="param.scanUser != null and param.scanUser != ''">
and ldl.scan_user like concat('%',#{param.scanUser},'%')
</if>
<if test="param.signingUser != null and param.signingUser != ''">
and ldl.signing_user like concat('%',#{param.signingUser},'%')
</if>
<if test="param.signingTime != null and param.signingTime != ''">
and ldl.signing_time like concat('%',#{param.signingTime},'%')
</if>
<if test="param.stockStatus != null and param.stockStatus != ''">
and ldsld.stock_status = #{param.stockStatus}
</if>
<if test="param.stockLockingStatus != null and param.stockLockingStatus != ''">
and ldsld.stock_locking_status = #{param.stockLockingStatus}
</if>
<if test="param.stockSignfoStatus != null and param.stockSignfoStatus != ''">
and ldsld.stock_signfo_status = #{param.stockSignfoStatus}
</if>
</select>
</mapper>

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml

@ -663,7 +663,7 @@
</select>
<select id="selectloadNub" resultType="java.lang.Integer">
SELECT COALESCE(sum(lds.loaded_number), 0) FROM logpm_distribution_signfor lds WHERE lds.delivery_id = #{id}
</select>
@ -1056,7 +1056,7 @@
LEFT JOIN logpm_distribution_loadscan AS ldl ON ldla.package_id = ldl.package_id
LEFT JOIN logpm_distribution_parcel_list AS ldpl ON ldla.package_id = ldpl.id
WHERE
ldla.reservation_id = #{reservationId} and ldla.delivery_list_id = #{deliveryListId}
ldla.reservation_id = #{reservationId} and ldla.delivery_list_id = #{deliveryListId} AND ldl.scan_status != 1
</select>
<select id="selectSignImgsUrl" resultType="com.logpm.distribution.vo.DistributionSignPrintVO">
SELECT * FROM logpm_distribution_sign_print WHERE reservation_id = #{reservationId} and is_deleted = 0

5
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml

@ -74,7 +74,7 @@
SELECT * from logpm_distribution_stock_article ldsa where
ldsa.is_deleted = 0 and ldsa.type_service ='2' and ldsa.genre = 1 and ldsa.reservation_status in ('10','20') and ldsa.order_status in ('10','20','30')
<if test="distributionStockArticleVO.orderCode!=null and distributionStockArticleVO.orderCode !=''">
and ldsa.order_code = #{distributionStockArticleVO.orderCode}
and ldsa.order_code like concat(#{distributionStockArticleVO.orderCode},'%')
</if>
<if test="distributionStockArticleVO.stockupStatus != null and distributionStockArticleVO.stockupStatus != ''">
and ldsa.stockup_status = #{distributionStockArticleVO.stockupStatus}
@ -603,7 +603,6 @@
LEFT JOIN logpm_distribution_parcel_list ldpl on ldsa.id = ldpl.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 order_use_num AS oun ON ldsa.id = oun.stock_article_id
<where>
ldsa.order_status in ('10','20','30','70')
and ldsa.reservation_status in ('10','20')
@ -677,6 +676,8 @@
and ldsa.customer_address like concat('%',#{par.customerAddress},'%')
</if>
</where>
ORDER BY
ldsa.warehouse_entry_time DESC
</select>
<select id="selectListGrounding" resultType="com.logpm.distribution.vo.DistributionStockArticleGroundingVO">
select ldsa.grounding_status groundingStatus,lwtg.association_type associationType,lwtg.tray_id trayId,lwtg.tray_code trayCode,ldsa.id stockArticleId

6
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.java

@ -51,6 +51,12 @@ public interface DistributionStockupMapper extends BaseMapper<DistributionStocku
*/
List<DistributionStockupVO> selectDistributionStockupPage(IPage page, DistributionStockupVO distributionStockup);
/**
* 查询备货数据
* @param page
* @param distributionStockupEntity
* @return
*/
IPage<DistributionStockupEntity> pageList(IPage<Object> page,@Param("param") DistributionStockupEntity distributionStockupEntity);
IPage<DistributionStockupListVO> selectStockupPage(IPage<Object> page, @Param("param") StockupDTO stockupDTO);

27
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml

@ -395,6 +395,7 @@
<!--<if test="param.groupName != null and param.groupName != '' "> and btg.group_name like concat('%', #{param.groupName},'%')</if> -->
</where>
GROUP BY lds.id
ORDER By lds.create_time Desc
</select>
<select id="selectHomeStockupPage" resultType="com.logpm.distribution.vo.DistributionStockupListVO">
@ -495,9 +496,8 @@
from logpm_distrilbution_bill_stock
where bill_lading_id = ldsi.reservation_id and order_status in (1,2) ) orderNum,
(
select COUNT(DISTINCT ldpl.id)
from logpm_distrilbution_bill_stock ldbs
LEFT JOIN logpm_distribution_parcel_list ldpl on ldpl.stock_article_id = ldbs.stock_article_id
select COUNT(DISTINCT ldbs.id)
from logpm_distrilbution_bill_package ldbs
where ldbs.bill_lading_id = ldsi.reservation_id
) planNum,
(
@ -575,19 +575,20 @@
<select id="selectStockupSelf" resultType="com.logpm.distribution.vo.DistributionStockupStockListVO">
select lddd.stock_list_id stockListId,
GROUP_CONCAT(DISTINCT lwug.position_code) allocation,
GROUP_CONCAT(DISTINCT lwug.allocation_id) allocations,
ldsl.description_goods materialName,
ldsl.sku sku,
ldsl.cargo_norms cargoNorms,
ldsl.cargo_number cargoNumber,
lddd.quantity planNum,
ldsl.cargo_unit cargoUnit,
ldsl.tray_name trayName,
ldsl.unpack unpack,
ldsl.source_type sourceType,
(
select COUNT(id)
from logpm_distribution_stock
where bill_lading_id = lddd.bill_lading_id
from logpm_dis_stock_list_detail
where reservation_id = lddd.bill_lading_id and stock_package_code is NOT null
) realNum,
lddd.id deliveryDetailsId
from logpm_distribution_delivery_details lddd
@ -698,7 +699,13 @@
select COUNT(id)
from logpm_distribution_stock
where bill_lading_id = ldbs.bill_lading_id
) stockupNum,lds.stockup_status stockupStatus ,lds.type_service typeService
) stockupNum,lds.stockup_status stockupStatus ,lds.type_service typeService,
(
SELECT sum(lddd.quantity)
from logpm_distribution_delivery_details lddd
where lddd.bill_lading_id = ldsi.reservation_id
) inventoryNub,
GROUP_CONCAT(DISTINCT ldsa.mall_name) mallName
from logpm_distribution_stockup lds
LEFT JOIN logpm_distribution_stockup_info ldsi on lds.id = ldsi.stockup_id
LEFT JOIN logpm_distrilbution_bill_stock ldbs on ldsi.reservation_id = ldbs.bill_lading_id
@ -858,7 +865,9 @@
from logpm_distribution_reservation_package ldrp
LEFT JOIN logpm_warehouse_updown_goods lwug on lwug.association_id = ldrp.parce_list_id
where ldrp.reservation_id = ldsi.reservation_id
) goodsAllocation,ldr.stock_status stockStatus
) goodsAllocation,ldr.stock_status stockStatus,
ldr.reservation_num reservationNum,
ldr.reservation_stock_list_num reservationStockListNum
from logpm_distribution_reservation ldr
LEFT JOIN logpm_distribution_stockup_info ldsi on ldr.id = ldsi.reservation_id
<where>
@ -920,7 +929,7 @@
from logpm_warehouse_updown_goods
where association_id = ldsii.material_id and association_type = 4 and market_id =ldsii.market_id and
incoming_batch = ldsii.incoming_batch
) goodsAllocation,ldrsi.stock_status stockStatus,ldsii.start_time_stocking startTimeStocking,ldsii.end_time_stocking endTimeStocking
) goodsAllocation,ldrsi.stock_status stockStatus,ldrsi.start_time_stocking startTimeStocking,ldrsi.end_time_stocking endTimeStocking
from logpm_distribution_stockup_info ldsi
LEFT JOIN logpm_distribution_reservation_stocklist ldrsi on ldrsi.reservation_id = ldsi.reservation_id
LEFT JOIN logpm_distribution_stock_list ldsii on ldsii.id = ldrsi.stocklist_id

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java

@ -62,7 +62,7 @@ public interface DistrilbutionBillLadingMapper extends BaseMapper<DistrilbutionB
DistrilbutionBillLadingAppVO selectDataByBillLadingId(@Param("billLadingId") Long billLadingId);
List<DistrilbutionAppBillLadingDetailVO> selectDetailList(@Param("stockArticleId") Long stockArticleId, @Param("scanStatus") Integer scanStatus,@Param("orderCode") String orderSelfNumbering);
List<DistrilbutionAppBillLadingDetailVO> selectDetailList(@Param("stockArticleId") Long stockArticleId, @Param("scanStatus") Integer scanStatus,@Param("orderCode") String orderSelfNumbering,@Param("billLadingId") Long billLadingId);
DistrilbutionBillLadingVO getOneOwn(@Param("id") Long id);

31
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml

@ -34,7 +34,7 @@
GROUP_CONCAT(DISTINCT dsa.brand) brand,dsa.type_service typeService,dbl.pick_up_time pickUpTime,dbl.consignee,dbl.delivery_document
deliveryDocument,dbl.conditions,dbl.total_cost totalCost,
dbl.pick_up_plate pickUpPlate,dbl.pickup_batch pickupBatch,
(
<!-- (
select COUNT(lds.id)
from logpm_distribution_delivery_details lddd
LEFT JOIN logpm_distribution_stock lds on lds.stock_list_id = lddd.stock_list_id
@ -44,6 +44,11 @@
from logpm_distrilbution_bill_stock ldbs
LEFT JOIN logpm_distribution_stock lds on lds.stock_article = ldbs.stock_article_id
where ldbs.bill_lading_id = dbl.id
) stopNum, -->
(
select COUNT(id)
from logpm_distribution_bill_lading_scan
where bill_lading_id = dbl.id
) stopNum,
GROUP_CONCAT(DISTINCT dsa.order_code) orderCode
from logpm_distrilbution_bill_lading dbl
@ -111,7 +116,8 @@
</if>
</where>
GROUP BY dbl.id,dsa.warehouse,dsa.warehouse_entry_time,dsa.storage_fee,dsa.type_service
GROUP BY dbl.id,dsa.warehouse,dsa.type_service
Order BY dbl.create_time desc
</select>
<select id="exportDistributionBillLading" resultType="com.logpm.distribution.vo.DistrilbutionBillLadingVO">
@ -272,10 +278,11 @@
else 2
end scanStatus,
0 errorStatus
from logpm_distribution_parcel_list ldpl
from logpm_distrilbution_bill_package ldbp
LEFT JOIN logpm_distribution_parcel_list ldpl on ldpl.id = ldbp.parce_list_id
left join logpm_distribution_bill_lading_scan ldbls on ldbls.parcel_list_id = ldpl.id and ldbls.is_deleted = 0
<where>
ldpl.is_deleted = 0 and ldpl.order_package_code is not null
ldpl.is_deleted = 0 and ldpl.order_package_code is not null and ldbp.packet_bar_status in (1,3)
and ldpl.stock_article_id = #{stockArticleId}
<if test="orderCode != null and orderCode !=''">
and ldpl.order_code = ${orderCode}
@ -286,6 +293,9 @@
<if test="scanStatus != null and scanStatus==2">
and ldbls.id is not null
</if>
<if test="billLadingId != null and billLadingId != ''">
and ldbp.bill_lading_id = #{ billLadingId }
</if>
</where>
</select>
<select id="getOneOwn" resultType="com.logpm.distribution.vo.DistrilbutionBillLadingVO">
@ -413,7 +423,7 @@
</select>
<select id="selectBillStockList" resultType="com.logpm.distribution.vo.DistrilbutionBillLadingVO">
SELECT dbl.id,
SELECT DISTINCT dbl.id,
dsa.service_number serviceNumber,
dsa.waybill_number waybillNumber,
dsa.consignee_unit consigneeUnit,
@ -422,7 +432,9 @@
dsa.warehouse,
dsa.warehouse_entry_time warehouseEntryTime,
dsa.storage_fee storageFee,
dsa.total_number totalNumber,
COUNT(ldbp.id) totalNumber,
COUNT(lds.id) handQuantity,
GROUP_CONCAT(DISTINCT lds.goods_name) productInformation,
dbl.certificate_type certificateType,
dsa.brand,
dsa.type_service typeService,
@ -434,10 +446,11 @@
dbl.total_cost totalCost,
dbl.pick_up_plate pickUpPlate,
dbl.pickup_batch pickupBatch
FROM logpm_distrilbution_bill_lading dbl
FROM logpm_distrilbution_bill_lading dbl
LEFT JOIN logpm_distrilbution_bill_package ldbp on ldbp.bill_lading_id = dbl.id
LEFT JOIN logpm_distribution_stock lds on lds.parcel_list_id = ldbp.parce_list_id
LEFT JOIN logpm_distribution_stock_article dsa ON dbl.stock_article_id = dsa.id
LEFT JOIN logpm_distribution_stockup_info ldsi on dbl.id = ldsi.reservation_id and
ldsi.stock_up_type = #{distrilbutionBillLading.stockupType}
LEFT JOIN logpm_distribution_stockup_info ldsi on dbl.id = ldsi.reservation_id and ldsi.stock_up_type = #{distrilbutionBillLading.stockupType}
where ldsi.stockup_id = #{distrilbutionBillLading.id};
</select>

49
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillStockMapper.xml

@ -118,7 +118,7 @@
select DISTINCT ldsa.order_code orderCode,ldsa.description_goods descriptionGoods,ldsa.stockup_status stockupStatus,
(select COUNT(id) from logpm_distrilbution_bill_package
where stock_article_id = ldsa.id and packet_bar_status in (1,3)) handQuantity,
(select GROUP_CONCAT(IFNULL(ldpl.material_name , '') SEPARATOR ', ')
(select GROUP_CONCAT(DISTINCT ldpl.material_name )
from logpm_distribution_parcel_list ldpl
where ldpl.material_name is not null and ldpl.stock_article_id = ldbs.stock_article_id) materialName,
(select count(lds.id)
@ -143,14 +143,45 @@
</select>
<select id="getBillOrderPack" resultType="com.logpm.distribution.vo.DistributionBillOrderPackVO">
select ldpl.order_package_code orderPackageCode,ldpl.warehouse ,ldpl.firsts ,ldpl.second ,ldpl.third_product thirdProduct,
ldpl.material_code materialCode,ldpl.material_name materialName,
ldpl.waybill_number waybillNumber,ldpl.send_warehouse_name sendWarehouseName,ldpl.order_code orderCode,ldpl.service_number serviceNumber,
lwtg.tray_code pallet,lwug.allocation_title goodsAllocation,ldpl.order_package_status orderPackageStatus
from logpm_distrilbution_bill_package ldbp
LEFT JOIN logpm_distribution_parcel_list ldpl on ldbp.parce_list_id = ldpl.id
LEFT JOIN logpm_warehouse_tray_goods lwtg on lwtg.association_id = ldpl.id and lwtg.association_type = '3'
LEFT JOIN logpm_warehouse_updown_goods lwug on lwug.association_id = ldpl.id and lwug.association_type = '3'
SELECT
ldpl.order_package_code orderPackageCode,
ldpl.warehouse,
ldpl.firsts,
ldpl.SECOND,
ldpl.third_product thirdProduct,
ldpl.material_code materialCode,
ldpl.material_name materialName,
ldpl.waybill_number waybillNumber,
ldpl.send_warehouse_name sendWarehouseName,
ldpl.order_code orderCode,
ldpl.service_number serviceNumber,
lwtg.tray_code pallet,
lwug.allocation_title goodsAllocation,
ldpl.order_package_status orderPackageStatus ,
case
when lds.id is null then '未备货'
else '已备货'
end as stockupStatusName,
lds.create_time stockupCreateTime,
ldbl.consignee stockupConsignee,
ldbl.pick_up_plate stockupPickUpPlate,
ldbl.conditions stockupConditions,
ldbls.create_user stockupCreateUser,
ldbl.pick_up_time stockuppickUpTime,
ldbls.create_time signForCreateTime,
case
WHEN ldbl.conditions = 30 THEN ldbl.update_user
end as clerkCheck,
case
WHEN ldbl.conditions = 30 THEN ldbl.update_time
end as clerkUpdateTime
FROM logpm_distrilbution_bill_lading ldbl
LEFT JOIN logpm_distrilbution_bill_package ldbp on ldbl.id = ldbp.bill_lading_id
LEFT JOIN logpm_distribution_parcel_list ldpl ON ldbp.parce_list_id = ldpl.id
LEFT JOIN logpm_distribution_stock lds on lds.parcel_list_id = ldpl.id
LEFT JOIN logpm_distribution_bill_lading_scan ldbls on ldbls.packet_bar_code = lds.coding
LEFT JOIN logpm_warehouse_tray_goods lwtg ON lwtg.association_id = ldpl.id AND lwtg.association_type = '3'
LEFT JOIN logpm_warehouse_updown_goods lwug ON lwug.association_id = ldpl.id AND lwug.association_type = '3'
<where>
ldbp.bill_lading_id = #{param.billLadingId} and ldbp.packet_bar_status in (1,2) and ldbp.bill_type = '1'
</where>

60
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/OrderPackageStatusDataHandler.java

@ -2,10 +2,17 @@
package com.logpm.distribution.receiver;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.logpm.distribution.dto.app.DistrilbutionloadingscanDTO;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionReservationEntity;
import com.logpm.distribution.mapper.DistributionParcelListMapper;
import com.logpm.distribution.mapper.DistributionStockArticleMapper;
import com.logpm.distribution.service.IDistributionDeliveryListService;
import com.logpm.distribution.service.IDistributionReservationService;
import com.logpm.distribution.service.IDistributionStockArticleService;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient;
import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.RabbitConstant;
@ -13,6 +20,7 @@ import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import java.util.Map;
@ -24,39 +32,49 @@ public class OrderPackageStatusDataHandler {
@Autowired
private DistributionParcelListMapper baseMapper;
@Autowired
private IWarehouseUpdownTypeClient warehouseUpdownTypeClient;
@Autowired
private DistributionStockArticleMapper distributionStockArticleMapper;
@Autowired
private IDistributionStockArticleService distributionStockArticleService;
@RabbitHandler
public void orderPackageStatusChange(Map map, Message message, Channel channel){
@Autowired
private IDistributionReservationService distributionReservationService;
@Autowired
private IDistributionDeliveryListService distributionDeliveryListService;
Object orderPackageCode1 = map.get("orderPackageCode");
String orderPackageCode= (String) orderPackageCode1;
String groundingStatus=(String)map.get("groundingStatus");
Long warehouseId = (Long)map.get("warehouseId");
@RabbitHandler
public void orderPackageStatusChange(Map map, Message message, Channel channel){
// 处理包件状态
QueryWrapper<DistributionParcelListEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("order_package_code",orderPackageCode)
.eq("warehouse_id",warehouseId)
.eq("is_deleted",0);
DistributionParcelListEntity parcelListEntity = baseMapper.selectOne(queryWrapper);
parcelListEntity.setOrderPackageGroundingStatus(groundingStatus);
int i = baseMapper.updateById(parcelListEntity);
try{
// 更新状态
baseMapper.updateOrderPackageCodeById(parcelListEntity.getId(),groundingStatus);
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>处理状态>>>>>>>>>>>>>>>>>>>>>>>>>>");
Long myCurrentWarehouseId = Long.parseLong(map.get("myCurrentWarehouseId").toString());
String distrilbutionloadingscanDTOJson = (String)map.get("distrilbutionloadingscanDTO");
DistrilbutionloadingscanDTO distrilbutionloadingscanDTO = JSONObject.parseObject(distrilbutionloadingscanDTOJson,DistrilbutionloadingscanDTO.class);
String parcelListEntityJSon = (String)map.get("parcelListEntity");
DistributionParcelListEntity parcelListEntity = JSONObject.parseObject(parcelListEntityJSon,DistributionParcelListEntity.class);
String reservationEntityJson = (String)map.get("reservationEntity");
DistributionReservationEntity reservationEntity = JSONObject.parseObject(reservationEntityJson,DistributionReservationEntity.class);
//包件配送下架
warehouseUpdownTypeClient.downDeliveryPackage(parcelListEntity.getOrderPackageCode(), myCurrentWarehouseId);
//维护订单的信息
distributionStockArticleService.maintenanceOrderInfo(parcelListEntity.getOrderCode(), myCurrentWarehouseId);
//维护预约的信息
distributionReservationService.maintenanceReservationInfo(reservationEntity.getId());
//维护配送任务信息
distributionDeliveryListService.maintenanceDeliveryInfo(distrilbutionloadingscanDTO.getDeliveryId());
}catch (Exception e){
// 更新状态报错
log.error(">>>>>> updateGroundingStatus 异常信息",e);
log.error(">>>>>> 维护包件信息 报错",e);
}
}
}

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java

@ -275,7 +275,7 @@ public interface IDistributionAsyncService {
* 推送信息到工厂
* @param distributionParcelListEntity
*/
void sendFactory(DistributionParcelListEntity distributionParcelListEntity,String signingTime,Long reservationId,String reservationCode,String warehouseName);
void sendFactory(DistributionParcelListEntity distributionParcelListEntity,String signingTime,Long reservationId,String reservationCode,String warehouseName,String userName);
/**
* 推送文员

7
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryInfoService.java

@ -102,4 +102,11 @@ public interface IDistributionDeliveryInfoService extends BaseService<Distributi
List<DisStockListDetailVO> selectDistributionAppDeliveryInventory( DistributionAppDeliveryListDTO distributionAppDeliveryListDTO);
/**
* 配送详情查看库存品包件
* @param reservationPackageDTO
* @param page
* @return
*/
IPage<DistributionReservationInventoryPackageVO> getReservationPackageList(Map<String, Object> reservationPackageDTO, IPage<DistributionReservationInventoryPackageVO> page);
}

6
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java

@ -399,6 +399,12 @@ public interface IDistributionDeliveryListService extends BaseService<Distributi
*/
boolean judgmentOrderRemove(Long deliveryId, Long orderId);
/**
* 维护配送任务的配送数量
* @param deliveryId
*/
void maintenanceDeliveryNum(Long deliveryId);
/**
* 查询签收预约客户包件信息

10
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java

@ -29,6 +29,7 @@ import org.springblade.core.tool.api.R;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 在库订单包件清单 服务类
@ -164,9 +165,14 @@ public interface IDistributionParcelListService extends BaseService<Distribution
/**
* 根据二维码查询包件
* @param barcode
* @param id
* @param orderPackageCode
* @param warehouseId
* @return
*/
DistributionParcelListEntity selectByOrderPackageCode(String orderPackageCode, Long warehouseId);
void updateTransferStatus(String orderCode, Long warehouseId,Integer isTransfer);
Set<String> updateEntityByOpenOrder(Long advanceId, Long warehouseId, Long waybillId);
}

8
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationPackageService.java

@ -92,4 +92,12 @@ public interface IDistributionReservationPackageService extends BaseService<Dist
List<DistributionParcelTrayVO> selectClientStockupPackTray(Long reservationId);
String getConcatThirdProductByOrderId(Long reservationId, Long stockArticleId);
/**
* 取消指定预约客户的包件
* @param reservationId
* @param packageId
* @return
*/
boolean cancelReservationPackage(Long reservationId, Long packageId);
}

16
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationService.java

@ -18,6 +18,7 @@ package com.logpm.distribution.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.distribution.dto.DistributionCancelReservationPackageDTO;
import com.logpm.distribution.dto.DistributionDeliveryAllocationDTO;
import com.logpm.distribution.dto.DistributionReservationDTO;
import com.logpm.distribution.entity.DistributionReservationEntity;
@ -255,4 +256,19 @@ public interface IDistributionReservationService extends BaseService<Distributio
* @param warehouseId
*/
void maintenanceReservationInfo(Long reservationId);
/**
* 预约计划取消包件库存品
* @param distributionCancelReservationPackageDTO
* @return
*/
R cancelReservationPackage(DistributionCancelReservationPackageDTO distributionCancelReservationPackageDTO);
/**
* 维护预约数量
* @param reservationId
*/
void maintenanceReservationNum(Long reservationId);
}

7
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationStockarticleService.java

@ -64,4 +64,11 @@ public interface IDistributionReservationStockarticleService extends BaseService
* @param reservationId
*/
void maintenanceReservationStockArticle(Long reservationId,Long warehouseId);
/**
* 维护指预约计划订单计划数量
* @param reservationId
* @param id
*/
void maintenanceReservationStockArticleNum(Long reservationId,Long orderId, Long warehouseId);
}

18
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java

@ -84,6 +84,11 @@ public interface IDistributionSignforService extends BaseService<DistributionSig
* 签收管理 用户签收
*/
R signfor(DistrilbutionAppsignforDTO distrilbutionloadingscanDTO);
/**
* 签收管理 PC
*/
R signforPC(DistrilbutionAppsignforDTO distrilbutionloadingscanDTO);
/**
* 签收管理 详情
*/
@ -242,4 +247,17 @@ public interface IDistributionSignforService extends BaseService<DistributionSig
* @return
*/
R isSign(Long signingId);
/**
* PC批量签收库存品
* @param distrilbutionloadingscanDTO
* @return
*/
R signforInPC(DistrilbutionAppsignforDTO distrilbutionloadingscanDTO);
/**
* 维护签收异常状态
* @param aLong
*/
void maintenanceSignfor(Long aLong);
}

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockupService.java

@ -260,12 +260,14 @@ public interface IDistributionStockupService extends BaseService<DistributionSto
/**
* 查询库位上最新入库的库存品
*
* @param reservationId
* @param cargoNumber
* @param allocationId
* @param typeService
* @return
*/
Long selectStockListInfoByCargoNumber(Long reservationId, String cargoNumber, Long allocationId);
Long selectStockListInfoByCargoNumber(Long reservationId, String cargoNumber, Long allocationId,String typeService);
StockConfigInfoVO stockConfigList(StockupDTO stockupDTO);

59
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java

@ -1419,6 +1419,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
}
@Override
@Transactional
public void handlPakcage(List<Long> packageIds, Long id) {
List<DistributionParcelListEntity> distributionParcelListEntities = distributionParcelListService.listByIds(packageIds);
if (Func.isNotEmpty(distributionParcelListEntities)) {
@ -1446,7 +1447,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
@Override
@Async
public void sendFactory(DistributionParcelListEntity distributionParcelListEntity, String signingTime, Long reservationId, String reservationCode, String warehouseName) {
public void sendFactory(DistributionParcelListEntity distributionParcelListEntity, String signingTime, Long reservationId, String reservationCode, String warehouseName,String userName) {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(distributionParcelListEntity.getStockArticleId());
log.info(">>>>>>>>>>> 签收推送 对象 {}", distributionParcelListEntity);
if (Func.isNotEmpty(stockArticleEntity)) {
@ -1459,16 +1460,12 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
} catch (Exception e) {
throw new RuntimeException(e);
}
break;
case "欧派":
//推送到欧派
try {
DistributionReservationStockarticleEntity distributionReservationStockarticleEntity = distributionReservationStockarticleService.getOne(Wrappers.<DistributionReservationStockarticleEntity>query().lambda()
.eq(DistributionReservationStockarticleEntity::getStockArticleId, distributionParcelListEntity.getStockArticleId()));
DistributionSignforEntity distributionSignfor = distributionSignforService.getByReservationId(distributionReservationStockarticleEntity.getReservationId());
ouPaiFactoryClinet.newSystemHandleStatusDataSignforOne("7",distributionParcelListEntity.getOrderPackageCode(), signingTime,
distributionSignfor.getSigneeName() );//*签收人*//
log.info(">>>>>>>>>>>>>>>>>>>>>>>> 签收推送 欧派:{} {} {} {}", "7",distributionParcelListEntity.getOrderPackageCode(), signingTime,
distributionSignfor.getSigneeName() );
// ouPaiFactoryClinet.newSystemHandleStatusDataSignforOne("7",distributionParcelListEntity.getOrderPackageCode(), signingTime, userName );//*签收人*//
// log.info(">>>>>>>>>>>>>>>>>>>>>>>> 签收推送 欧派:{} {} {} {}", "7",distributionParcelListEntity.getOrderPackageCode(), signingTime, userName );
} catch (Exception e) {
throw new RuntimeException(e);
}
@ -1484,7 +1481,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
@Async
public void sendReviewFactory(Long signingId, String warehouseName, Long warehouseId) {
String brands = "梦天,欧派";//可追加
log.info(">>>>>>>>>>> 签收推送 对象tmy {}", "signingId="+signingId+"warehouseName="+warehouseName+"warehouseId="+warehouseId);
log.info(">>>>>>>>>>> 签收推送 对象 {}", "signingId="+signingId+"warehouseName="+warehouseName+"warehouseId="+warehouseId);
//查询签收信息
DistributionSignforEntity distributionSignforEntity = distributionSignforMapper.selectById(signingId);
if (Func.isNotEmpty(distributionSignforEntity)) {
@ -1496,7 +1493,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//推送内容
MtReceiveDTO mtReceiveDTO = new MtReceiveDTO();
mtReceiveDTO.setReceiver(distributionReservationEntity.getConsignee());
mtReceiveDTO.setSendTaskId(distributionDeliveryListEntity.getId().toString());
mtReceiveDTO.setSendTaskId(distributionReservationEntity.getId().toString());
Map<String, List<MtReceiveContentDTO>> brand = null;
@ -1553,7 +1550,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
// 重新筛选出欧派的包件
for (DistributionReservationStockarticleEntity distributionReservationStockarticleEntity : distributionReservationStockarticleEntities) {
// 查询预约单下面的包信息
// 查询预约单下面的包信息
log.info(">>>>>>>>>>>>>>>>>>>>> 欧派循环包件信息 {} ", distributionReservationStockarticleEntity);
List<DistributionParcelListEntity> distributionParcelListEntities = buildOpByReservationId(distributionReservationStockarticleEntity);
@ -1568,9 +1565,8 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
orderStatusDTO.setUsername(distributionSignfor.getSigneeName()); //操作人名称
orderStatusDTO.setStatus("7");
orderStatusDTO.setOperationTime(distributionSignfor.getSigningTime()); //时间
System.out.println(orderStatusDTO);
ouPaiFactoryClinet.newSystemHandleStatusData(orderStatusDTO);
log.info(">>>>>>>>>>>>>>>>>进入newSystemHandleStatusData orderStatusDTO值 :{}",orderStatusDTO);
}
@ -1712,7 +1708,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
}
/**
* 修改备货时间
* 定制品 修改备货时间
*
* @param stockupDTO
*/
@ -1723,6 +1719,16 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
Integer scanType = stockupDTO.getScanType();//扫码类型 1 包件 2库存品
Long reservationId = stockupDTO.getReservationId();//预约ID
Long stockupId = stockupDTO.getStockupId();
//修改包件备货状态
DistributionParcelListEntity one = distributionParcelListService.getOne(Wrappers.<DistributionParcelListEntity>query().lambda()
.eq(DistributionParcelListEntity::getOrderPackageCode, stockupDTO.getPacketBarCode())
);
//修改包件备货状态
DistributionParcelListEntity parcelListEntity = new DistributionParcelListEntity();
parcelListEntity.setId(one.getId());
parcelListEntity.setOrderPackageStockupStatus(OrderPackageStockupStatusConstant.yibeihu.getValue());
distributionParcelListService.updateById(parcelListEntity);
//查询配货类型
DistributionStockupInfoEntity distributionStockupInfoEntity = distributionStockupInfoMapper.selectOne(Wrappers.<DistributionStockupInfoEntity>query().lambda()
.eq(DistributionStockupInfoEntity::getStockupId, stockupId)
@ -1790,7 +1796,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
case 2:
//库存品
billLadingEntity1.setReserveQuantity(billLadingEntity1.getReserveQuantity() + 1);
updateStockupStockListDate(stockupDTO);
// updateStockupStockListDate(stockupDTO);
break;
}
distrilbutionBillLadingMapper.updateById(billLadingEntity1);
@ -1813,7 +1819,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
case 2:
//库存品
reservationEntity.setReserveQuantity(distributionReservationEntity.getReserveQuantity() + 1);
updateStockupStockListDate(stockupDTO);
// updateStockupStockListDate(stockupDTO);
break;
}
//计算是否完成
@ -1836,6 +1842,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
* 备货库存品备货时间回显
*/
@Override
@Async
public void updateStockupStockListDate(StockupDTO stockupDTO) {
Integer scanType = stockupDTO.getScanType();//扫码类型 1 包件 2库存品
Long reservationId = stockupDTO.getReservationId();//预约ID
@ -1881,7 +1888,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
}
distributionDeliveryDetailsService.updateById(entity);
} else {
//预约的库存品
//预约的库存品 商 市
DistributionReservationStocklistEntity one1 = distributionReservationStocklistMapper.selectOne(Wrappers.<DistributionReservationStocklistEntity>query().lambda()
.eq(DistributionReservationStocklistEntity::getReservationId, stockupDTO.getReservationId())
.eq(DistributionReservationStocklistEntity::getStocklistId, stockupDTO.getStockListId())
@ -1911,15 +1918,21 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
split, List<DistributionStockArticleEntity> distributionStockArticleEntities, String warehouseName, Long
reservationId, String deliveryCode, Long warehouseId) {
Map<String, List<MtReceiveContentDTO>> packageList = new HashMap<>();
log.info(">>>> 构建复核签收订单的品牌信息0 {}", distributionStockArticleEntities);
Map<String, List<DistributionStockArticleEntity>> orderMap = distributionStockArticleEntities.stream().collect(Collectors.groupingBy(DistributionStockArticleEntity::getBrand));
for (String s : split) {
orderMap.forEach((k, v) -> {
log.info(">>>> 构建复核签收订单的品牌信息 {}", k);
if (k.equals(s)) {
log.info(">>>> 构建复核签收订单的品牌信息1 {}", k);
log.info(">>>> 构建复核签收订单的品牌信息2 {}", s);
log.info(">>>> 构建复核签收订单的品牌信息3 {}", v);
if (k.trim().equals(s.trim())) {
List<MtReceiveContentDTO> mtReceiveContentDTOS = new ArrayList<>();
for (DistributionStockArticleEntity distributionStockArticleEntity : v) {
List<DistributionParcelListEntity> distributionParcelListEntities = distributionReservationMapper.selectPackageByReservationAndStockArticle(reservationId, distributionStockArticleEntity.getId(), warehouseId);
for (DistributionParcelListEntity distributionParcelListEntity : distributionParcelListEntities) {
// 这个时候事物还没提交
if (distributionParcelListEntity.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())) {
String signingTime = distributionLoadscanMapper.selectPackageSigningTime(distributionParcelListEntity.getId());
MtReceiveContentDTO mtReceiveContentDTO = new MtReceiveContentDTO();
@ -2510,10 +2523,10 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
public void stockupSelfUpdateState(StockupDTO stockupDTO, int num) {
//查询全部订单数据
List<DistrilbutionBillStockEntity> distrilbutionBillStockEntities = distrilbutionBillStockMapper.selectList(Wrappers.<DistrilbutionBillStockEntity>query().lambda()
.eq(DistrilbutionBillStockEntity::getBillLadingId, stockupDTO.getReservationId())
.apply("order_status in (1,2)")
);
// List<DistrilbutionBillStockEntity> distrilbutionBillStockEntities = distrilbutionBillStockMapper.selectList(Wrappers.<DistrilbutionBillStockEntity>query().lambda()
// .eq(DistrilbutionBillStockEntity::getBillLadingId, stockupDTO.getReservationId())
// .apply("order_status in (1,2)")
// );
//查询是否有零担信息
List<DistributionReservationZeroPackageEntity> listZero = reservationZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.eq(DistributionReservationZeroPackageEntity::getReservationId, stockupDTO.getReservationId())

24
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java

@ -124,7 +124,7 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
if (Func.isNotEmpty(loadscanEntity)) {
try {
p.setLoadingTime(loadscanEntity.getScanTime());
switch (loadscanEntity.getScanState().toString()) {
switch (loadscanEntity.getScanStatus()) {
case "1":
p.setScanStatus(LoadingStatusConstant.quxiao.getName());
break;
@ -137,6 +137,9 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
case "4":
p.setScanStatus(LoadingStatusConstant.yijianzhuangche.getName());
break;
case "5":
p.setScanStatus(LoadingStatusConstant.buluzhuangche.getName());
break;
}
if (Func.isNotEmpty(loadscanEntity.getSigningTime())) {
p.setSigningTime(loadscanEntity.getSigningTime());
@ -147,6 +150,9 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
if (Func.isNotEmpty(loadscanEntity.getDriverName())) {
p.setDriverName(loadscanEntity.getDriverName());
}
if (Func.isNotEmpty(loadscanEntity.getSigningUser())) {
p.setSigningUser(loadscanEntity.getSigningUser());
}
} catch (Exception e) {
log.error(">>> 系统异常",e);
throw new CustomerException("系统异常,请联系管理员");
@ -250,6 +256,7 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
DistributionAppStockArticleVO distributionAppStockArticleVO = new DistributionAppStockArticleVO();
distributionAppStockArticleVO.setOrderCode(ord.getOrderCode());
distributionAppStockArticleVO.setId(ord.getId());
distributionAppStockArticleVO.setWaybillNumber(ord.getWaybillNumber());
distributionAppStockArticleVO.setReservationNum(ord.getReservationNum());
distributionAppStockArticleVO.setIsZero(ord.getIsZero());
Map<Long, DistributionLoadscanEntity> loadingPackage = new HashMap<>();
@ -503,5 +510,20 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
return disStockListDetailVOS;
}
@Override
public IPage<DistributionReservationInventoryPackageVO> getReservationPackageList(Map<String, Object> reservationPackageDTO, IPage<DistributionReservationInventoryPackageVO> page) {
String method = "DistributionDeliveryInfoServiceImpl类,getReservationPackageList方法";
if (Func.isEmpty(reservationPackageDTO.get("reservationId"))){
//参数缺失
log.error(method+"reservationId参数缺失");
return null;
}
IPage<DistributionReservationInventoryPackageVO> reservationInventoryPackageVOIPage = distributionReservationMapper.selectInvenToryPackageByReservationInfo(reservationPackageDTO,page);
return reservationInventoryPackageVOIPage;
}
}

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

File diff suppressed because it is too large Load Diff

74
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java

@ -25,7 +25,9 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.logpm.basic.entity.BasicMaterialEntity;
import com.logpm.basic.feign.IBasicMaterialClient;
import com.logpm.basicdata.entity.BasicdataClientEntity;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataClientClient;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.distribution.dto.DistributionParcelListDTO;
import com.logpm.distribution.dto.app.StockupDTO;
@ -39,13 +41,15 @@ import com.logpm.distribution.vo.DistributionParcelListVO;
import com.logpm.distribution.vo.DistributionParcelListZeroVO;
import com.logpm.distribution.vo.PackageStockupVO;
import com.logpm.warehouse.entity.WarehouseUpdownGoodsEntity;
import com.logpm.warehouse.entity.WarehouseWaybillEntity;
import com.logpm.warehouse.feign.IWarehouseTrayGoodsClient;
import com.logpm.warehouse.feign.IWarehouseUpdownGoodsClient;
import com.logpm.warehouse.feign.IWarehouseWaybillClient;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.DictBizConstant;
import org.springblade.common.constant.RabbitConstant;
import org.springblade.common.constant.order.OrderStockupStatusConstant;
import org.springblade.common.exception.CustomerException;
import org.springblade.common.utils.CommonUtil;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
@ -96,6 +100,9 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl<Distribut
private final RabbitTemplate rabbitTemplate;
private final IWarehouseWaybillClient warehouseWaybillClient;
private final IBasicdataClientClient basicdataClientClient;
// private final IDistributionStockArticleService distributionStockArticleService;
@Override
public IPage<DistributionParcelListEntity> selectDistributionParcelListPage(IPage<DistributionParcelListEntity> page, DistributionParcelListVO distributionParcelList) {
@ -636,6 +643,71 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl<Distribut
return baseMapper.selectByOrderPackageCode(orderPackageCode, warehouseId);
}
@Override
public void updateTransferStatus(String orderCode, Long warehouseId,Integer isTransfer) {
baseMapper.updateTransferStatus(orderCode,warehouseId,isTransfer);
}
@Override
public Set<String> updateEntityByOpenOrder(Long advanceId, Long warehouseId, Long waybillId) {
WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId);
if(Objects.isNull(waybillEntity)){
log.warn("############updateEntityByOpenOrder: 运单信息不存在 waybillId={}",waybillId);
throw new CustomerException(405,"运单信息不存在");
}
Long departureWarehouseId = waybillEntity.getDepartureWarehouseId();
String departureWarehouseName = waybillEntity.getDepartureWarehouseName();
Long destinationWarehouseId = waybillEntity.getDestinationWarehouseId();
String destinationWarehouseName = waybillEntity.getDestinationWarehouseName();
String waybillNo = waybillEntity.getWaybillNo();
QueryWrapper<DistributionParcelListEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("advance_id",advanceId)
.eq("warehouse_id",warehouseId)
.eq("is_deleted",0);
List<DistributionParcelListEntity> listEntityList = baseMapper.selectList(queryWrapper);
Set<String> orderCodes = new TreeSet<>();
for (DistributionParcelListEntity parcelListEntity : listEntityList) {
parcelListEntity.setWaybillId(waybillId+"");
parcelListEntity.setWaybillNumber(waybillNo);
parcelListEntity.setSendWarehouseId(departureWarehouseId);
parcelListEntity.setSendWarehouseName(departureWarehouseName);
parcelListEntity.setAcceptWarehouseId(destinationWarehouseId);
parcelListEntity.setAcceptWarehouseName(destinationWarehouseName);
if(departureWarehouseId.equals(destinationWarehouseId)){
parcelListEntity.setIsTransfer(0);
}else{
parcelListEntity.setIsTransfer(1);
}
orderCodes.add(parcelListEntity.getOrderCode());
}
updateBatchById(listEntityList);
for (String orderCode : orderCodes) {
QueryWrapper<DistributionStockArticleEntity> stockArticleEntityQueryWrapper = new QueryWrapper<>();
stockArticleEntityQueryWrapper.eq("order_code",orderCode)
.eq("warehouse_id",warehouseId)
.eq("is_deleted",0);
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleMapper.selectOne(stockArticleEntityQueryWrapper);
if(Objects.isNull(stockArticleEntity)){
log.error("############updateEntityByOpenOrder: 未找到订单信息 orderCode={}",orderCode);
continue;
}
Long consigneeId = waybillEntity.getConsigneeId();
BasicdataClientEntity basicdataClientEntity = basicdataClientClient.findEntityById(consigneeId);
stockArticleEntity.setMallId(consigneeId);
stockArticleEntity.setMallCode(basicdataClientEntity.getClientCode());
stockArticleEntity.setMallName(basicdataClientEntity.getClientName());
stockArticleEntity.setConsigneePerson(waybillEntity.getConsigneeName());
stockArticleEntity.setConsigneeMobile(waybillEntity.getConsigneeMobile());
stockArticleEntity.setConsigneeAddress(waybillEntity.getConsigneeAddress());
stockArticleEntity.setConsigneeUnit(basicdataClientEntity.getClientName());
distributionStockArticleMapper.updateById(stockArticleEntity);
}
return orderCodes;
}
/**
* @param distributionParcelList 包件信息
* @return

37
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationPackageServiceImpl.java

@ -20,10 +20,12 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.distribution.dto.DistributionReservationPackageDTO;
import com.logpm.distribution.dto.DistributionStockArticleDTO;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionReservationPackageEntity;
import com.logpm.distribution.excel.DistributionReservationPackageExcel;
import com.logpm.distribution.mapper.DistributionReservationPackageMapper;
@ -35,11 +37,15 @@ import com.logpm.distribution.wrapper.DistributionParcelListWrapper;
import lombok.AllArgsConstructor;
import org.springblade.common.constant.DictBizConstant;
import org.springblade.common.constant.order.OrderReservationStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant;
import org.springblade.common.constant.reservation.ReservationPackageStatusConstant;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.system.cache.DictBizCache;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@ -153,5 +159,36 @@ public class DistributionReservationPackageServiceImpl extends BaseServiceImpl<D
return baseMapper.getConcatThirdProductByOrderId(reservationId,stockArticleId);
}
@Override
@Transactional
public boolean cancelReservationPackage(Long reservationId, Long packageId) {
//取消预约
List<DistributionReservationPackageEntity> packageEntityList = this.list(Wrappers.<DistributionReservationPackageEntity>query().lambda()
.eq(DistributionReservationPackageEntity::getReservationId, reservationId)
.eq(DistributionReservationPackageEntity::getParceListId, packageId)
.ne(DistributionReservationPackageEntity::getPacketBarStatus, ReservationPackageStatusConstant.quxiao.getValue())
);
if (packageEntityList.size() == 1){
//执行计划的包件取消
DistributionReservationPackageEntity distributionReservationPackageEntity = packageEntityList.get(0);
distributionReservationPackageEntity.setCancelStatus(1);
distributionReservationPackageEntity.setPacketBarStatus(ReservationPackageStatusConstant.quxiao.getValue());
this.updateById(distributionReservationPackageEntity);
}else {
//计划出现查询该包件记录错误,
return false;
}
//取消配送 该包件进入可配送状态
DistributionParcelListEntity parcelListEntity = new DistributionParcelListEntity();
parcelListEntity.setOrderPackageStatus(OrderPackageStatusConstant.yiruku.getValue());
parcelListEntity.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.daiyuyue.getValue());
parcelListEntity.setId(packageId);
parcelListService.updateById(parcelListEntity);
//此包件对应的订单预约数量维护
return true;
}
}

212
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java

@ -212,6 +212,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
@Autowired
private IBasicdataClientClient basicdataClientClient;
@Autowired
private DistributionLoadscanMapper distributionLoadscanMapper;
@ -980,9 +983,23 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
return R.fail("请先选择作业仓库!!!");
}
boolean result = false;
if (Func.isEmpty(stockUpInfo.get("ids"))) {
log.error("参数异常:+{" + stockUpInfo.get("ids") + "}");
return R.fail("服务器正忙!!!");
}
String ids = (String) stockUpInfo.get("ids");
List<Long> list = Func.toLongList(",", ids);
List<DistributionReservationEntity> distributionReservationEntities = this.listByIds(list);
if (Func.isNotEmpty(distributionReservationEntities)){
//查询此次进行提交的预约是否已经进行备货任务的提交
List<DistributionReservationEntity> yijingbeihuo = distributionReservationEntities.stream().filter(p -> p.getStockupStatus().equals(ReservationStockupStatusConstant.daibeihuo.getValue())).collect(Collectors.toList());
if (Func.isNotEmpty(yijingbeihuo) && yijingbeihuo.size() >=1){
String errorReservationCode = yijingbeihuo.stream().map(DistributionReservationEntity::getReservationCode).collect(Collectors.joining(","));
return R.fail("预约单号:"+errorReservationCode+"已经提交过备货任务!!!");
}
}
try {
//获取前端携带批量转备货的id
String ids = (String) stockUpInfo.get("ids");
//完成对备货表数据的保存
String stockUpDate = (String) stockUpInfo.get("stockupDate");
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
@ -3489,42 +3506,179 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
throw new RuntimeException("服务器正忙!!!");
}
DistributionReservationEntity reservationEntity = this.getById(reservationId);
DistributionLoadingNumDTO reservationLoadingNum = distributionReservationMapper.selectReservationLoadingNum(reservationId);
int loadingQuantity = 0;
int signingQuantity = 0;
int reservationQuantity =(reservationEntity.getReservationNum() + reservationEntity.getReservationStockListNum());
if (Func.isNotEmpty(reservationLoadingNum)){
//存在装车数量
loadingQuantity += reservationLoadingNum.getInventoryLoadingQuantity() + reservationLoadingNum.getPackageLoadingQuantity();
}
DistributionLoadingNumDTO reservationSignNum = distributionReservationMapper.selectReservationSigningNum(reservationId);
if (Func.isNotEmpty(reservationSignNum)){
signingQuantity += reservationSignNum.getPackageSigningQuantity() + reservationSignNum.getInventorySigningQuantity();
}
if (reservationQuantity != 0){
if (loadingQuantity == reservationQuantity){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getValue());
}else {
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.bufenzhuangche.getValue());
}
if (loadingQuantity == 0){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getValue());
}
List<DistributionParcelListEntity> distributionParcelListEntities = distributionReservationMapper.selectPackageListByReservationId(reservationId);
List<DisStockListDetailEntity> disStockListDetailEntities = distributionReservationMapper.selectInventoryListByReservation(reservationId);
boolean loadStatus = false;
boolean signStatus = false;
if (Func.isNotEmpty(distributionParcelListEntities)){
loadStatus = distributionParcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
signStatus = distributionParcelListEntities.stream().anyMatch(p->p.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue()));
}
if (Func.isNotEmpty(disStockListDetailEntities)){
loadStatus = disStockListDetailEntities.stream().allMatch(p -> p.getStockLockingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
signStatus = disStockListDetailEntities.stream().anyMatch(p->p.getStockSignfoStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue()));
}
if (loadStatus){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getValue());
}else {
//判断是否都为完成装车
Integer loadingNum = distributionLoadscanMapper.selectLoadingNumByReservationId(reservationId);
if (Func.isEmpty(loadingNum)){
if (loadingNum > 0){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.bufenzhuangche.getValue());
}else {
if (signingQuantity == reservationQuantity){
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.yiqianshou.getValue());
}else {
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getValue());
}
}
}
if (signStatus){
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.yiqianshou.getValue());
}else {
//判断是否都为完成装车
Integer signingNum = distributionLoadscanMapper.selectSigningNumByReservationId(reservationId);
//判断当前客户是否签收完成了
if (signingNum > 0){
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.bufenqianshou.getValue());
}
if (signingQuantity == 0){
if (signingNum == 0){
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.daiqianshou.getValue());
}
}else {
log.error(method+"预约单无配送包件,reservationId:{}",reservationId);
}
this.updateById(reservationEntity);
}
@Override
@Transactional
public R cancelReservationPackage(DistributionCancelReservationPackageDTO distributionCancelReservationPackageDTO) {
String method = "DistributionReservationServiceImpl类,cancelReservationPackage方法";
if (Func.isEmpty(distributionCancelReservationPackageDTO.getReservationId())){
log.error(method+"reservationID参数缺失");
return R.fail("服务器正忙....");
}
if (Func.isEmpty(distributionCancelReservationPackageDTO.getType())){
log.error(method+"Type参数缺失");
return R.fail("服务器正忙....");
}
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
if (Func.isEmpty(myCurrentWarehouse)){
return R.fail(403,"未授权!!!");
}
switch (distributionCancelReservationPackageDTO.getType()){
case 1:
//取消包件
if (Func.isEmpty(distributionCancelReservationPackageDTO.getPackageIds())){
log.error(method+"packageId参数缺失");
return R.fail("请联系管理员....");
}
String[] split = distributionCancelReservationPackageDTO.getPackageIds().split(",");
List<DistributionParcelListEntity> distributionParcelListEntities = distributionReservationMapper.selectPackageListByReservationId(distributionCancelReservationPackageDTO.getReservationId());
for (String s : split) {
if (Func.isNotEmpty(distributionParcelListEntities)){
List<DistributionParcelListEntity> cancelPackage = distributionParcelListEntities.stream().filter(p -> p.getId().equals(Long.parseLong(s))).collect(Collectors.toList());
if (cancelPackage.size() == 1){
//计划中存在该包件信息,有且只有满足条件的一个包件
DistributionParcelListEntity parcelListEntity = cancelPackage.get(0);
if (parcelListEntity.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()) || parcelListEntity.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())){
log.info(method+"检测当前取消包件存在装车或者签收操作:packageId{}",distributionCancelReservationPackageDTO.getPackageIds());
throw new RuntimeException("包件存在装车、签收,无法进行取消");
}
/**
* 取消指定预约下包件
*/
boolean flag = distributionReservationPackageService.cancelReservationPackage(distributionCancelReservationPackageDTO.getReservationId(),Long.parseLong(s));
if (flag){
//任务包件取消成功
//维护此预约下的订单计划状态
distributionReservationStockarticleService.maintenanceReservationStockArticle(distributionCancelReservationPackageDTO.getReservationId(),myCurrentWarehouse.getId());
//维护预约订单数量
distributionReservationStockarticleService.maintenanceReservationStockArticleNum(distributionCancelReservationPackageDTO.getReservationId(),parcelListEntity.getStockArticleId(),myCurrentWarehouse.getId());
}
} else {
log.error(method+"计划存在相同ID包件:{}",distributionCancelReservationPackageDTO.getPackageIds());
return R.fail("此包件异常,请联系管理员....");
}
}
}
break;
case 2:
//取消库存品包件
if (Func.isEmpty(distributionCancelReservationPackageDTO.getInventoryPackageIds())){
log.error(method+"InventoryPackageIds参数缺失");
return R.fail("请联系管理员....");
}
String[] invenPackageIds = distributionCancelReservationPackageDTO.getInventoryPackageIds().split(",");
List<DisStockListDetailEntity> disStockListDetailEntities = distributionReservationMapper.selectInventoryListByReservation(distributionCancelReservationPackageDTO.getReservationId());
if (Func.isNotEmpty(disStockListDetailEntities)){
for (String invenPackageId : invenPackageIds) {
List<DisStockListDetailEntity> inventory = disStockListDetailEntities.stream().filter(inven -> inven.getId().equals(Long.parseLong(invenPackageId))).collect(Collectors.toList());
if (Func.isNotEmpty(inventory) &&inventory.size() == 1){
DisStockListDetailEntity disStockListDetailEntity = inventory.get(0);
if (disStockListDetailEntity.getStockSignfoStatus().equals(InventorySigningStatusConstant.yiqianshou.getValue())
||disStockListDetailEntity.getStockLockingStatus().equals(InventoryLoadingStatusConstant.yizhuangche.getValue())){
log.info(method+"检测当前取消包件存在装车或者签收操作:inventoryPackageId{}",disStockListDetailEntity.getId());
throw new RuntimeException("包件存在装车、签收,无法进行取消");
}
//库存品配送包件的取消操作
disStockListDetailEntity.setStockPackageStatus(InventoryPackageStatusConstant.quxiao.getValue());
disStockListDetailService.updateById(disStockListDetailEntity);
//维护对应预约的配送库存品品类数据
distributionReservationStocklistService.maintenanceReservationStockList(distributionCancelReservationPackageDTO.getReservationId());
//进行冻结数量的扣减
distributionStockListMapper.decreaseStockListQuantityOccupied(disStockListDetailEntity.getStockListId(),disStockListDetailEntity.getNum());
}else {
log.error(method+"库存品包件信息异常");;
throw new RuntimeException("库存品包件信息异常");
}
}
}else {
log.error(method+"预约单没有库存品包件");
return R.fail("此预约任务无库存品包件....");
}
break;
default:
//维护预约单状态
this.maintenanceReservationInfo(distributionCancelReservationPackageDTO.getReservationId());
//维护预约单数量
this.maintenanceReservationNum(distributionCancelReservationPackageDTO.getReservationId());
//维护配送任务状态
distributionDeliveryListService.maintenanceDeliveryInfo(distributionCancelReservationPackageDTO.getDeliveryId());
//维护配送任务数量
distributionDeliveryListService.maintenanceDeliveryNum(distributionCancelReservationPackageDTO.getDeliveryId());
break;
}
return R.status(true);
}
/**
* 维护预约单计划数量
* @param reservationId
*/
@Override
@Transactional
public void maintenanceReservationNum(Long reservationId) {
DistributionReservationEntity reservationEntity = this.getById(reservationId);
if (Func.isNotEmpty(reservationEntity)){
List<DistributionParcelListEntity> distributionParcelListEntities = distributionReservationMapper.selectPackageListByReservationId(reservationId);
if (Func.isNotEmpty(distributionParcelListEntities)){
int sum = distributionParcelListEntities.stream().mapToInt(DistributionParcelListEntity::getQuantity).sum();
reservationEntity.setReservationNum(sum);
}
List<DistributionReservationStocklistEntity> reservationStocklistEntities = distributionReservationMapper.selectStockListByReservationId(reservationId);
if (Func.isNotEmpty(reservationStocklistEntities)){
int sum = reservationStocklistEntities.stream().mapToInt(DistributionReservationStocklistEntity::getReservationNum).sum();
reservationEntity.setReservationStockListNum(sum);
}
this.updateById(reservationEntity);
}
}
}

20
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationStockarticleServiceImpl.java

@ -58,6 +58,7 @@ public class DistributionReservationStockarticleServiceImpl extends BaseServiceI
private final DistributionReservationMapper distributionReservationMapper;
@Override
public IPage<DistributionReservationStockarticleVO> selectDistributionReservationStockarticlePage(IPage<DistributionReservationStockarticleVO> page, DistributionReservationStockarticleVO distributionReservationStockarticle) {
return page.setRecords(baseMapper.selectDistributionReservationStockarticlePage(page, distributionReservationStockarticle));
@ -110,4 +111,23 @@ public class DistributionReservationStockarticleServiceImpl extends BaseServiceI
}
}
@Override
public void maintenanceReservationStockArticleNum(Long reservationId, Long orderId,Long warehouseId) {
DistributionReservationStockarticleEntity reservationStockarticleEntity = this.getOne(Wrappers.<DistributionReservationStockarticleEntity>query().lambda()
.eq(DistributionReservationStockarticleEntity::getReservationId, reservationId)
.eq(DistributionReservationStockarticleEntity::getStockArticleId, orderId)
.ne(DistributionReservationStockarticleEntity::getStockArticleStatus, ReservationOrderStatusConstant.quxiao.getValue())
);
if (Func.isNotEmpty(reservationStockarticleEntity)){
List<DistributionParcelListEntity> distributionParcelListEntities = distributionReservationMapper.selectPackageByReservationAndStockArticle(reservationId, orderId, warehouseId);
if (Func.isNotEmpty(distributionParcelListEntities)){
int sum = distributionParcelListEntities.stream().mapToInt(DistributionParcelListEntity::getQuantity).sum();
reservationStockarticleEntity.setReservationNum(sum);
}
this.updateById(reservationStockarticleEntity);
}
}
}

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

@ -102,6 +102,8 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Function;
import java.util.stream.Collectors;
import static net.sf.jsqlparser.util.validation.metadata.NamedObject.user;
/**
* 签收管理 服务实现类
*
@ -112,84 +114,81 @@ import java.util.stream.Collectors;
@Slf4j
public class DistributionSignforServiceImpl extends BaseServiceImpl<DistributionSignforMapper, DistributionSignforEntity> implements IDistributionSignforService {
@Autowired
private DistributionLoadscanServiceImpl distributionLoadscanService;
private DistributionLoadscanServiceImpl distributionLoadscanService;
@Autowired
private DistributionLoadscaninvnServiceImpl distributionLoadscaninvnService;
private DistributionLoadscaninvnServiceImpl distributionLoadscaninvnService;
@Autowired
private IDistributionParcelListService distributionParcelListService;
private IDistributionParcelListService distributionParcelListService;
@Autowired
private IDistributionStockArticleService distributionStockArticleService;
private IDistributionStockArticleService distributionStockArticleService;
@Autowired
private DistributionLoadscanMapper distributionLoadscanMapper;
private DistributionLoadscanMapper distributionLoadscanMapper;
@Autowired
private DistributionLoadscaninvnMapper distributionLoadscaninvnMapper;
private DistributionLoadscaninvnMapper distributionLoadscaninvnMapper;
@Autowired
private DistributionDeliveryListMapper distributionDeliveryListMapper;
private DistributionDeliveryListMapper distributionDeliveryListMapper;
@Autowired
private DistributionDeliverySelfMapper distributionDeliverySelfMapper;
private DistributionDeliverySelfMapper distributionDeliverySelfMapper;
@Autowired
private DistributionDeliveryTripartiteMapper distributionDeliveryTripartiteMapper;
private DistributionDeliveryTripartiteMapper distributionDeliveryTripartiteMapper;
@Autowired
private DistributionSignforMapper distributionSignforMapper;
private DistributionSignforMapper distributionSignforMapper;
@Autowired
private DistributionStockMapper distributionStockMapper;
private DistributionStockMapper distributionStockMapper;
@Autowired
private IDictBizClient dictBizClient;
private IDictBizClient dictBizClient;
@Autowired
private IBasicdataDriverArteryClient iBasicdataDriverArteryClient;
private IBasicdataDriverArteryClient iBasicdataDriverArteryClient;
@Autowired
private IDistributionReservationPackageService reservationPackageService;
private IDistributionReservationPackageService reservationPackageService;
@Autowired
private IDistributionAsyncService distributionAsyncService;
private IDistributionAsyncService distributionAsyncService;
@Autowired
private IBasicdataWarehouseClient basicdataWarehouseClient;
private IBasicdataWarehouseClient basicdataWarehouseClient;
@Autowired
private DistributionReservationMapper distributionReservationMapper;
private DistributionReservationMapper distributionReservationMapper;
@Autowired
private IDisStockListDetailService disStockListDetailService;
private IDisStockListDetailService disStockListDetailService;
@Autowired
private IDistributionStockListService distributionStockListService;
private IDistributionStockListService distributionStockListService;
@Autowired
private DistributionStockListMapper distributionStockListMapper;
private DistributionStockListMapper distributionStockListMapper;
@Autowired
private DistributionAddvalueMapper distributionAddvalueMapper;
private DistributionAddvalueMapper distributionAddvalueMapper;
@Autowired
private IDistributionAddvalueService distributionAddvalueService;
private IDistributionAddvalueService distributionAddvalueService;
@Autowired
private IDistributionAddvaluePackageService distributionAddvaluePackageService;
private IDistributionAddvaluePackageService distributionAddvaluePackageService;
@Autowired
private IDistributionLoadscanAbnormalService distributionLoadscanAbnormalService;
private IDistributionLoadscanAbnormalService distributionLoadscanAbnormalService;
@Autowired
private IDistributionReservationStockarticleService distributionReservationStockarticleService;
private IDistributionReservationStockarticleService distributionReservationStockarticleService;
@Autowired
private IDistributionReservationPackageService distributionReservationPackageService;
private IDistributionReservationPackageService distributionReservationPackageService;
@Autowired
private IDistributionReservationZeroPackageService distributionReservationZeroPackageService;
private IDistributionReservationZeroPackageService distributionReservationZeroPackageService;
@Autowired
private IDistributionSignPrintService iDistributionSignPrintService;
private IDistributionSignPrintService iDistributionSignPrintService;
@Autowired
private IDistributionParcelNumberService distributionParcelNumberService;
private IDistributionParcelNumberService distributionParcelNumberService;
@Autowired
private IWarehouseUpdownTypeClient warehouseUpdownTypeClient;
private IWarehouseUpdownTypeClient warehouseUpdownTypeClient;
@Autowired
private DistributionStockArticleMapper distributionStockArticleMapper;
private DistributionStockArticleMapper distributionStockArticleMapper;
@Autowired
private IBasicdataClientClient basicdataClientClient;
private IBasicdataClientClient basicdataClientClient;
@Autowired
private DistributionParcelListMapper distributionParcelListMapper;
private DistributionParcelListMapper distributionParcelListMapper;
@Autowired
@Lazy
private IDistributionDeliveryListService distributionDeliveryListService;
@Autowired
@Lazy
private IDistributionReservationService distributionReservationService;
@Autowired
private RabbitTemplate rabbitTemplate;
// private IBasicdataWarehouseClient warehouseUpdownTypeClient;
@Autowired
private IOuPaiFactoryClinet ouPaiFactoryClinet;
@Autowired
private RabbitTemplate rabbitTemplate;
// private IBasicdataWarehouseClient warehouseUpdownTypeClient;
@Override
public IPage<DistributionSignforVO> selectDistributionSignforPage(IPage<DistributionSignforVO> page, DistributionSignforVO distributionSignfor) {
@ -217,8 +216,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
int weiqianshoujianshu = 0;
int zhuangchejianshu = 0;
int qianshoujianshu = 0;
if (Func.isNotEmpty(distributionParcelListEntities)) {
weizhuangchejianshu += distributionParcelListEntities.stream().filter(f -> f.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
if (Func.isNotEmpty(distributionParcelListEntities)){
weizhuangchejianshu += distributionParcelListEntities.stream().filter(f -> f.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
zhuangchejianshu += distributionParcelListEntities.stream().filter(f -> f.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
weiqianshoujianshu += distributionParcelListEntities.stream().filter(f -> !f.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
qianshoujianshu += distributionParcelListEntities.stream().filter(f -> f.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
@ -231,9 +230,9 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
DistributionLoadingNumDTO reservationSigningNum = distributionReservationMapper.selectReservationSigningNum(d.getReservationId());
if (d.getDeliveryType().equals(DistributionTypeConstant.shipie.getValue())) {
if (d.getDeliveryType().equals(DistributionTypeConstant.shipie.getValue())){
List<DisStockListDetailEntity> disStockListDetailEntities = distributionReservationMapper.selectInventoryListByReservation(d.getReservationId());
if (Func.isNotEmpty(disStockListDetailEntities)) {
if (Func.isNotEmpty(disStockListDetailEntities)){
//查询库存品未装车数
int inventoryuweizhuancghe = disStockListDetailEntities.stream().filter(f -> f.getStockLockingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum();
weizhuangchejianshu += inventoryuweizhuancghe;
@ -390,18 +389,18 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
.eq(DistributionLoadscanEntity::getIsAbnormalLoading, 2)
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
);
if (Func.isNotEmpty(loadscanEntities)) {
if (Func.isNotEmpty(loadscanEntities)){
Map<Long, DistributionLoadscanEntity> packageLoadingMap = loadscanEntities.stream().collect(Collectors.toMap(DistributionLoadscanEntity::getPackageId, Function.identity(), (k1, k2) -> k2));
List<Long> packageIds = loadscanEntities.stream().distinct().map(DistributionLoadscanEntity::getPackageId).collect(Collectors.toList());
List<DistributionParcelListEntity> distributionParcelListEntities = distributionParcelListService.listByIds(packageIds);
List<DistributionParcelListVO> distributionParcelListVOS = DistributionParcelListWrapper.build().listVO(distributionParcelListEntities);
distributionParcelListVOS.forEach(p -> {
distributionParcelListVOS.forEach(p->{
DistributionNumberDetailDTO detailDTO = Func.copy(p, DistributionNumberDetailDTO.class);
if (Func.isNotEmpty(packageLoadingMap.get(p.getId()))) {
if (Func.isNotEmpty(packageLoadingMap.get(p.getId()))){
DistributionLoadscanEntity distributionLoadscanEntity = packageLoadingMap.get(p.getId());
detailDTO.setLoadingTime(distributionLoadscanEntity.getScanTime());
detailDTO.setLoadingStatusName(OrderPackageLoadingStatusConstant.weizhuancghe.getName());
if (distributionLoadscanEntity.getSignforState().equals(LoadScanSigningStatusConstant.yiqianshou.getValue())) {
if (distributionLoadscanEntity.getSignforState().equals(LoadScanSigningStatusConstant.yiqianshou.getValue())){
//签收
detailDTO.setSigningTime(distributionLoadscanEntity.getSigningTime());
detailDTO.setSigningStatusName(OrderPackageStatusConstant.yiqianshou.getName());
@ -413,15 +412,15 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
.eq(DistributionStockEntity::getStockArticle, p.getStockArticleId())
.eq(DistributionStockEntity::getParcelListId, p.getId())
);
if (Func.isNotEmpty(distributionStockEntity)) {
if (Func.isNotEmpty(distributionStockEntity)){
detailDTO.setStockupTime(distributionStockEntity.getCreateTime());
}
detailDTO.setStockupStatusName(p.getOrderPackageStockupStatusName());
if (detailDTO.getConditions().equals(1)) {
if (detailDTO.getConditions().equals(1)){
detailDTO.setConditionsName("订制品");
} else if (detailDTO.getConditions().equals(2)) {
}else if (detailDTO.getConditions().equals(2)){
detailDTO.setConditionsName("库存品");
} else {
}else {
detailDTO.setConditionsName("零担");
}
detailDTOS.add(detailDTO);
@ -497,6 +496,176 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
}
@Override
@Transactional
public R signforInPC(DistrilbutionAppsignforDTO distrilbutionloadingscanDTO) {
String method = "DistributionSignforServiceImpl类,signforInPC方法";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (Func.isEmpty(distrilbutionloadingscanDTO.getReservationId())){
log.error(method+"reservationId参数缺失");
return R.fail("请联系管理员!!!");
}
if (Func.isEmpty(distrilbutionloadingscanDTO.getDeliveryId())){
log.error(method+"deliveryId参数缺失");
return R.fail("请联系管理员!!!");
}
if (Func.isEmpty(distrilbutionloadingscanDTO.getBarcodes())){
log.error(method+"barCode参数缺失");
return R.fail("此库存品暂未进行备货,请联系管理员!!!");
}
String[] split = distrilbutionloadingscanDTO.getBarcodes().split(",");
List<DisStockListDetailEntity> detailEntities = distributionReservationMapper.selectInventoryListByReservation(distrilbutionloadingscanDTO.getReservationId());
if (Func.isNotEmpty(split)){
for (String s : split) {
List<DisStockListDetailEntity> inventoryPackage = detailEntities.stream().filter(f -> Func.isNotEmpty(f.getStockPackageCode()) && f.getStockPackageCode().equals(s)).collect(Collectors.toList());
if (Func.isNotEmpty(inventoryPackage) && inventoryPackage.size() == 1){
//查看这个库存品是否进行装车,
DistributionLoadscaninvnEntity loadscaninvnEntity = distributionLoadscaninvnService.getOne(Wrappers.<DistributionLoadscaninvnEntity>query().lambda()
.eq(DistributionLoadscaninvnEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId())
.eq(DistributionLoadscaninvnEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId())
.eq(DistributionLoadscaninvnEntity::getOrderPackageCode, s)
.ne(DistributionLoadscaninvnEntity::getScanStatus, 1));
BladeUser user = AuthUtil.getUser();
if (Func.isNotEmpty(loadscaninvnEntity)){
if (loadscaninvnEntity.getSignforState().equals(LoadScanSigningStatusConstant.yiqianshou.getValue())){
log.error(method+"库存品:"+s+"已经签收,无需重复签收");
throw new RuntimeException("库存品:"+s+"已经签收,无需重复签收");
}
//存在装车数据,进行状态变更即可
loadscaninvnEntity.setSigningUserId(user.getUserId());
loadscaninvnEntity.setSigningUser(user.getNickName());
loadscaninvnEntity.setReceivedQuantity(inventoryPackage.get(0).getNum());
loadscaninvnEntity.setSignforState(LoadScanSigningStatusConstant.yiqianshou.getValue());
loadscaninvnEntity.setSigningTime(simpleDateFormat.format(new Date()));
loadscaninvnEntity.setOneQclick(1);
distributionLoadscaninvnService.updateById(loadscaninvnEntity);
//维护签收数量
Integer j = distributionSignforMapper.updateSignforNum(loadscaninvnEntity.getDeliveryId(), loadscaninvnEntity.getReservationId(), loadscaninvnEntity.getPackageNub());
//更新签收人
Integer i = distributionSignforMapper.updateSignUser(loadscaninvnEntity.getDeliveryId(), loadscaninvnEntity.getReservationId(), user);
}else {
//不存在装车数据,需要进行装车数据的补录
//库存品未进行装车
//这里装车的数据需要进行补录
DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId());
DistributionDeliverySelfEntity distributionDeliverySelfEntity = new DistributionDeliverySelfDTO();
if (deliveryListEntity.getKind().equals(ServiceConstant.DELIVERLIST_KIND_SELF)) {
distributionDeliverySelfEntity = distributionDeliverySelfMapper.selectOne(new QueryWrapper<DistributionDeliverySelfEntity>().lambda()
.eq(DistributionDeliverySelfEntity::getIsMaster, ServiceConstant.IS_MASTER_YES)
.eq(DistributionDeliverySelfEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId())
);
} else {
DistributionDeliveryTripartiteEntity distributionDeliveryTripartiteEntity = distributionDeliveryTripartiteMapper.selectOne(new QueryWrapper<DistributionDeliveryTripartiteEntity>().lambda()
.eq(DistributionDeliveryTripartiteEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId()));
BeanUtils.copyProperties(distributionDeliveryTripartiteEntity, distributionDeliverySelfEntity);
}
DistributionLoadscaninvnEntity distributionLoadscaninvnEntity = new DistributionLoadscaninvnEntity();
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverId())) {
distributionLoadscaninvnEntity.setDriverId(distributionDeliverySelfEntity.getDriverId());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverName())) {
distributionLoadscaninvnEntity.setDriverName(distributionDeliverySelfEntity.getDriverName());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleId())) {
distributionLoadscaninvnEntity.setVehicleId(distributionDeliverySelfEntity.getVehicleId());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleNub())) {
distributionLoadscaninvnEntity.setVehicleName(distributionDeliverySelfEntity.getVehicleNub());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverPhone())) {
distributionLoadscaninvnEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone());
}
distributionLoadscaninvnEntity.setLoadingId(distributionDeliverySelfEntity.getId().toString());
distributionLoadscaninvnEntity.setOrderPackageCode(inventoryPackage.get(0).getStockPackageCode());
distributionLoadscaninvnEntity.setInventoryId(inventoryPackage.get(0).getStockListId());
distributionLoadscaninvnEntity.setInventoryPackageId(inventoryPackage.get(0).getId());
distributionLoadscaninvnEntity.setDeliveryId(distrilbutionloadingscanDTO.getDeliveryId());
distributionLoadscaninvnEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId());
distributionLoadscaninvnEntity.setScanUser(user.getNickName());
distributionLoadscaninvnEntity.setScanTime(simpleDateFormat.format(new Date()));
distributionLoadscaninvnEntity.setPackageNub(inventoryPackage.get(0).getNum());
distributionLoadscaninvnEntity.setScanStatus(LoadingStatusConstant.yijianzhuangche.getValue());
distributionLoadscaninvnEntity.setIsInsert(LoadingIsInsertConstant.bulu.getValue());
distributionLoadscaninvnEntity.setScanType("1");
distributionLoadscaninvnEntity.setType(2);
distributionLoadscaninvnEntity.setSignforState(LoadScanSigningStatusConstant.yiqianshou.getValue());
distributionLoadscaninvnEntity.setIsSignfor(1);
distributionLoadscaninvnEntity.setReceivedQuantity(inventoryPackage.get(0).getNum());
distributionLoadscaninvnEntity.setOneClick(1);
distributionLoadscaninvnEntity.setOneQclick(1);
distributionLoadscaninvnEntity.setLoadedNub(1);
distributionLoadscaninvnEntity.setSigningUser(user.getNickName());
distributionLoadscaninvnEntity.setSigningUserId(user.getUserId());
distributionLoadscaninvnEntity.setSigningTime(simpleDateFormat.format(new Date(System.currentTimeMillis()+(6*1000))));
distributionLoadscaninvnService.save(distributionLoadscaninvnEntity);
//更新装车数量
Integer j = distributionSignforMapper.updateSignforNum(distributionLoadscaninvnEntity.getDeliveryId(), distributionLoadscaninvnEntity.getReservationId(), distributionLoadscaninvnEntity.getPackageNub());
//更新签收人
Integer i = distributionSignforMapper.updateSignUser(distributionLoadscaninvnEntity.getDeliveryId(), distributionLoadscaninvnEntity.getReservationId(), AuthUtil.getUser());
//扣减库存
distributionStockListMapper.deductionQuantityStock(distributionLoadscaninvnEntity.getInventoryId(), distributionLoadscaninvnEntity.getLoadedNub());
}
//修改对应库存品包件的签收数量
DisStockListDetailEntity disStockListDetailEntity = inventoryPackage.get(0);
disStockListDetailEntity.setStockSignfoStatus(InventorySigningStatusConstant.yiqianshou.getValue());
disStockListDetailEntity.setStockLockingStatus(InventoryLoadingStatusConstant.yizhuangche.getValue());
disStockListDetailService.updateById(disStockListDetailEntity);
}else {
//出现不属于当前客户的库存品包件信息
log.error(method+"库存品包件信息异常,请检查!!!:{}",s);
throw new RuntimeException("数据异常,请联系管理员!!!");
}
}
}
return R.status(true);
}
@Override
@Transactional
public void maintenanceSignfor(Long reservationId) {
//签收
DistributionSignforEntity signforEntity = this.getOne(Wrappers.<DistributionSignforEntity>query().lambda()
.eq(DistributionSignforEntity::getReservationId, reservationId)
);
if (Func.isEmpty(signforEntity)){
log.error("维护签收异常是否存在异常包件失败");
return;
}
List<DistributionLoadscanAbnormalEntity> loadscanAbnormalEntityList = distributionLoadscanAbnormalService.list(Wrappers.<DistributionLoadscanAbnormalEntity>query().lambda()
.eq(DistributionLoadscanAbnormalEntity::getReservationId, reservationId)
);
if (Func.isNotEmpty(loadscanAbnormalEntityList)){
//查看当前客户是否都已经完成审核
boolean flag = loadscanAbnormalEntityList.stream().allMatch(p -> p.getAuditingStatus().equals(LoadingAbnormalAuditingStatusConstant.yishenhe.getValue()));
if (flag){
signforEntity.setIsHaveAbnormalPackage(1);
}else {
signforEntity.setIsHaveAbnormalPackage(2);
}
}
//统计客户装车数
Integer lad = distributionLoadscanMapper.selectCount(new QueryWrapper<DistributionLoadscanEntity>().lambda().eq(DistributionLoadscanEntity::getReservationId, signforEntity.getReservationId())).intValue();
Integer nad = distributionLoadscaninvnMapper.selectCount(new QueryWrapper<DistributionLoadscaninvnEntity>().lambda().eq(DistributionLoadscaninvnEntity::getReservationId, signforEntity.getReservationId())).intValue();
signforEntity.setLoadedNumber(lad);
signforEntity.setLoadedinNumber(nad);
//统计客户签收数
Integer lsad = distributionLoadscanMapper.selectCount(new QueryWrapper<DistributionLoadscanEntity>().lambda()
.eq(DistributionLoadscanEntity::getReservationId, signforEntity.getReservationId())
.eq(DistributionLoadscanEntity::getSignforState, LoadScanSigningStatusConstant.yiqianshou.getValue())
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())).intValue();
Integer nsad = distributionLoadscaninvnMapper.selectCount(new QueryWrapper<DistributionLoadscaninvnEntity>().lambda()
.eq(DistributionLoadscaninvnEntity::getReservationId, signforEntity.getReservationId())
.eq(DistributionLoadscaninvnEntity::getSignforState, LoadScanSigningStatusConstant.yiqianshou.getValue())
.ne(DistributionLoadscaninvnEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())).intValue();
signforEntity.setReceivedQuantity(lsad);
signforEntity.setReceivedinQuantity(nsad);
this.updateById(signforEntity);
}
private boolean judgmentSignIsHavePackage(Long reservationId) {
boolean flag = false;
List<DistributionParcelListEntity> distributionParcelListEntities = distributionReservationMapper.selectPackageListByReservationId(reservationId);
@ -857,8 +1026,20 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
@Override
@Transactional
public R signfor(DistrilbutionAppsignforDTO distrilbutionloadingscanDTO) {
String nickName = null;
Long userId = null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
nickName = AuthUtil.getNickName();
userId = AuthUtil.getUserId();
} catch (Exception e) {
log.error(">>>>> 签收异常报错", e);
throw new CustomerException("当前登录信息不已失效,请重新登录");
}
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
// ---------------------------------2023-09-09 包件签收调整---------------------------------------------------------------
//思路: 在于一个客户下不会出现重复的包条码
@ -888,7 +1069,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
}
return Resp.scanFail("此码不是订制品", "此码不是订制品");
}
String signingTime = simpleDateFormat.format(new Date());
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.selectPackageListByReservationId(distrilbutionloadingscanDTO.getReservationId());
//查询该客户是否存在该包件信息
List<DistributionParcelListEntity> collect = parcelListEntityList.stream().filter(p -> p.getOrderPackageCode().equals(distrilbutionloadingscanDTO.getBarcode())).collect(Collectors.toList());
@ -905,21 +1086,11 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
}
//存在装车记录,进行修改即可
//进行签收记录数据的维护
loadscanEntity.setSigningTime(signingTime);
loadscanEntity.setSigningTime(simpleDateFormat.format(new Date()));
loadscanEntity.setSignforState(2);
loadscanEntity.setReceivedQuantity(loadscanEntity.getLoadedNub());
String nickName = AuthUtil.getNickName();
Long userId = AuthUtil.getUserId();
try {
nickName = AuthUtil.getNickName();
userId = AuthUtil.getUserId();
} catch (Exception e) {
log.error(">>>>> 签收异常报错", e);
throw new CustomerException("当前登录信息不已失效,请重新登录");
}
loadscanEntity.setSigningUser(nickName);
loadscanEntity.setSigningUserId(userId);
@ -973,10 +1144,12 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
if (StringUtils.isNotBlank(distributionDeliverySelfEntity.getVehicleId())) {
distributionLoadscanEntity.setVehicleId(distributionDeliverySelfEntity.getVehicleId());
}
distributionLoadscanEntity.setScanTime(signingTime);
Date loadScanTime = new Date();
distributionLoadscanEntity.setScanTime(simpleDateFormat.format(loadScanTime));
distributionLoadscanEntity.setPackageId(collect.get(0).getId());
distributionLoadscanEntity.setOrderPackageCode(distrilbutionloadingscanDTO.getBarcode());
distributionLoadscanEntity.setSigningTime(signingTime);
Date signingTime = new Date(System.currentTimeMillis()+(1000*60));
distributionLoadscanEntity.setSigningTime(simpleDateFormat.format(signingTime));
distributionLoadscanEntity.setReceivedQuantity(collect.get(0).getQuantity());
distributionLoadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId());
distributionLoadscanEntity.setIsSignfor(2);
@ -1007,9 +1180,12 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
updatePackage.setOrderPackageStatus(OrderPackageStatusConstant.yiqianshou.getValue());
distributionParcelListService.updateById(updatePackage);
//维护签收包件状态
distributionStockArticleService.maintenanceOrderInfo(collect.get(0).getOrderCode(), myCurrentWarehouse.getId());
distributionStockArticleService.maintenanceOrderInfo(collect.get(0).getOrderCode(),myCurrentWarehouse.getId());
//推送信息至工厂
distributionAsyncService.sendFactory(collect.get(0), signingTime, distributionReservationEntity.getId(), distributionReservationEntity.getReservationCode(), myCurrentWarehouse.getName());
distributionAsyncService.sendFactory(collect.get(0), simpleDateFormat.format(new Date()), distributionReservationEntity.getId(), distributionReservationEntity.getReservationCode(), myCurrentWarehouse.getName(),nickName);
//TODO 这里就需要一个异步的包件状态维护方法
} else if (Func.isEmpty(collect)) {
//这里就需要对该包件信息是否属于该配送计划进行判定。如果属于该配送计划则是串货。不是那么则需要提示是否异常签收或者返回的操作
@ -1039,7 +1215,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
if (flag) {
return R.fail(3006, "异常签收");
} else {
return Resp.scanFail("异常签收包件", "不满足签收条件");
return Resp.scanFail("不满足签收条件", "不满足签收条件");
}
}
} else {
@ -1051,36 +1227,191 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionReservationService.maintenanceReservationInfo(distrilbutionloadingscanDTO.getReservationId());
//维护配送任务
distributionDeliveryListService.maintenanceDeliveryInfo(distrilbutionloadingscanDTO.getDeliveryId());
//TODO 在调用出库接口 通知欧派 准备删除
//
// DistributionSignforEntity distributionSignforEntity = distributionSignforMapper.getByReservationId(distrilbutionloadingscanDTO.getReservationId());
//
//// Long reservationId = distributionSignfor.getReservationId();
//// DistributionSignforEntity distributionSignforEntity1 = distributionSignforMapper.getByReservationId(reservationId);
//
// BladeUser user = AuthUtil.getUser();
// OrderStatusDTO orderStatusDTO = new OrderStatusDTO();
// orderStatusDTO.setStatus("7");//状态
// orderStatusDTO.setOperationTime(simpleDateFormat.format(new Date()));//操作时间
// //orderStatusDTO.setUsername(distributionSignforEntity.getSigneeName()); //签收人(名称)
// orderStatusDTO.setUsername(user.getUserName()); //签收人(名称)
// orderStatusDTO.setUnitNo(distrilbutionloadingscanDTO.getBarcode()); //包条码
// orderStatusDTO.setCurrentWarehouse(String.valueOf(myCurrentWarehouse.getWarehouseCode())); //当前仓库ID
//
// DistributionStockArticleEntity distributionStockArticle = new DistributionStockArticleEntity();
// Long stockArticleId = parcelListEntity.getStockArticleId();
// distributionStockArticle.setId(stockArticleId); // 需要一个stock_article_id` bigint(20) DEFAULT NULL COMMENT '在库订单ID',
// DistributionStockArticleEntity distributionStockArticleEntity = distributionStockArticleService.getOne(Condition.getQueryWrapper(distributionStockArticle));
// String brand = distributionStockArticleEntity.getBrand();
//
// Map<String, Object> mapState = new HashMap<>();
// mapState.put("orderStatusDTO", orderStatusDTO);
// mapState.put("brand", brand);
// rabbitTemplate.convertAndSend(RabbitConstant.NEW_SYSTEM_RECEIVE_INFO_QUEUE, mapState);
return Resp.scanSuccess("签收成功", str);
}
@Override
@Transactional
public R signforPC(DistrilbutionAppsignforDTO distrilbutionloadingscanDTO) {
String nickName =null;
Long userId = null;
try {
nickName = AuthUtil.getNickName();
userId = AuthUtil.getUserId();
} catch (Exception e) {
log.error(">>>>> 签收异常报错", e);
throw new CustomerException("当前登录信息不已失效,请重新登录");
}
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
// ---------------------------------2023-09-09 包件签收调整---------------------------------------------------------------
//思路: 在于一个客户下不会出现重复的包条码
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
if (Objects.isNull(myCurrentWarehouse)) {
throw new CustomerException(403, "仓库信息不能为空");
}
// DistributionParcelListEntity parcelListEntity = distributionParcelListService.selectByOrderPackageCode(distrilbutionloadingscanDTO.getBarcodes(), myCurrentWarehouse.getId());
// if (Func.isEmpty(parcelListEntity)) {
// return Resp.scanFail("包件信息不存在", "包件信息不存在");
// }
DistributionReservationEntity distributionReservationEntity = distributionReservationMapper.selectById(distrilbutionloadingscanDTO.getReservationId());
if (Func.isEmpty(distributionReservationEntity)) {
log.error("########无效的预约单,reservationId:{}", distrilbutionloadingscanDTO.getReservationId());
return R.fail("服务器正忙!!");
}
if (Func.isEmpty(distrilbutionloadingscanDTO.getBarcodes())) {
log.error("########缺失参数,barcodes:{}", distrilbutionloadingscanDTO.getBarcodes());
return R.fail("服务器正忙!!");
}
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda()
.in(DistributionParcelListEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcodes())
.eq(DistributionParcelListEntity::getWarehouseId, myCurrentWarehouse.getId())
);
if (Func.isNotEmpty(parcelListEntities)){
boolean flag = parcelListEntities.stream().anyMatch(p -> p.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue()));
if (flag){
log.error("########缺失参数,barcodes:{}", distrilbutionloadingscanDTO.getBarcodes());
return R.fail("存在已签收包件!!");
}
}
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.selectPackageListByReservationId(distrilbutionloadingscanDTO.getReservationId());
//查询该客户是否存在该包件信息
String[] orderPackageCodes = distrilbutionloadingscanDTO.getBarcodes().split(",");
if (Func.isEmpty(orderPackageCodes)){
//缺失包件码参数
log.error("PC签收缺失包件码参数");
return R.fail("请联系管理员!!!");
}
List<String> orderpackages = new ArrayList<>();
for (String orderPackageCode : orderPackageCodes) {
List<DistributionParcelListEntity> collect = parcelListEntityList.stream().filter(p -> p.getOrderPackageCode().equals(orderPackageCode)).collect(Collectors.toList());
if (Func.isNotEmpty(collect) && collect.size() == 1) {
//存在则查询该包件是否进行装车
DistributionLoadscanEntity loadscanEntity = distributionLoadscanMapper.selectOne(Wrappers.<DistributionLoadscanEntity>query().lambda()
.ne(DistributionLoadscanEntity::getScanStatus, 1)
.eq(DistributionLoadscanEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId())
.eq(DistributionLoadscanEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId())
.eq(DistributionLoadscanEntity::getOrderPackageCode, collect.get(0).getOrderPackageCode()));
if (Func.isNotEmpty(loadscanEntity)) {
if (loadscanEntity.getSignforState().equals(2)) {
return Resp.scanFail("重复扫描", "重复扫描");
}
//存在装车记录,进行修改即可
//进行签收记录数据的维护
loadscanEntity.setSigningTime(simpleDateFormat.format(new Date()));
loadscanEntity.setSignforState(2);
loadscanEntity.setReceivedQuantity(loadscanEntity.getLoadedNub());
loadscanEntity.setSigningUser(nickName);
loadscanEntity.setSigningUserId(userId);
distributionLoadscanService.updateById(loadscanEntity);
//缺少一个异步维护包件签收的方法
// distributionAsyncService.changeOrderSignforStatus(collect.get(0));
Integer j = distributionSignforMapper.updateSignforNum(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), loadscanEntity.getPackageNub());
//更新签收人
Integer m = distributionSignforMapper.updateSignUser(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), AuthUtil.getUser());
//下架解托
warehouseUpdownTypeClient.downPackageOrDelTray(loadscanEntity.getOrderPackageCode(), myCurrentWarehouse.getId());
//维护订单状态
} else {
//这里装车的数据需要进行补录
DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId());
DistributionDeliverySelfEntity distributionDeliverySelfEntity = new DistributionDeliverySelfDTO();
if (deliveryListEntity.getKind().equals(ServiceConstant.DELIVERLIST_KIND_SELF)) {
distributionDeliverySelfEntity = distributionDeliverySelfMapper.selectOne(new QueryWrapper<DistributionDeliverySelfEntity>().lambda()
.eq(DistributionDeliverySelfEntity::getIsMaster, ServiceConstant.IS_MASTER_YES)
.eq(DistributionDeliverySelfEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId())
);
} else {
DistributionDeliveryTripartiteEntity distributionDeliveryTripartiteEntity = distributionDeliveryTripartiteMapper.selectOne(new QueryWrapper<DistributionDeliveryTripartiteEntity>().lambda()
.eq(DistributionDeliveryTripartiteEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId()));
BeanUtils.copyProperties(distributionDeliveryTripartiteEntity, distributionDeliverySelfEntity);
}
DistributionDeliveryListEntity listEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId());
if (Func.isEmpty(listEntity)) {
log.error("##########配送计划异常:{}", listEntity);
return Resp.scanFail("服务器正忙...", "服务器正忙");
}
//查询配送计划的计划司机
DistributionLoadscanEntity distributionLoadscanEntity = new DistributionLoadscanEntity();
if (StringUtils.isNotBlank(distributionDeliverySelfEntity.getDriverPhone())) {
distributionLoadscanEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone());
}
if (StringUtils.isNotBlank(distributionDeliverySelfEntity.getVehicleNub())) {
distributionLoadscanEntity.setVehicleName(distributionDeliverySelfEntity.getVehicleNub());
}
if (StringUtils.isNotBlank(distributionDeliverySelfEntity.getDriverId())) {
distributionLoadscanEntity.setDriverId(distributionDeliverySelfEntity.getDriverId());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getId())) {
distributionLoadscanEntity.setLoadingId(distributionDeliverySelfEntity.getId().toString());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverName())) {
distributionLoadscanEntity.setDriverName(distributionDeliverySelfEntity.getDriverName());
}
if (StringUtils.isNotBlank(distributionDeliverySelfEntity.getVehicleId())) {
distributionLoadscanEntity.setVehicleId(distributionDeliverySelfEntity.getVehicleId());
}
Date loadScanTime = new Date();
distributionLoadscanEntity.setScanTime(simpleDateFormat.format(loadScanTime));
distributionLoadscanEntity.setPackageId(collect.get(0).getId());
distributionLoadscanEntity.setOrderPackageCode(collect.get(0).getOrderPackageCode());
Date signingTime = new Date(System.currentTimeMillis()+(1000*60));
distributionLoadscanEntity.setSigningTime(simpleDateFormat.format(signingTime));
distributionLoadscanEntity.setReceivedQuantity(collect.get(0).getQuantity());
distributionLoadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId());
distributionLoadscanEntity.setIsSignfor(2);
distributionLoadscanEntity.setIsInsert(2);
distributionLoadscanEntity.setSignforState(2);
distributionLoadscanEntity.setPackageNub(collect.get(0).getQuantity());
distributionLoadscanEntity.setOrderId(collect.get(0).getStockArticleId());
distributionLoadscanEntity.setLoadedNub(collect.get(0).getQuantity());
distributionLoadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId());
distributionLoadscanEntity.setDeliveryId(distrilbutionloadingscanDTO.getDeliveryId());
distributionLoadscanEntity.setScanUser(AuthUtil.getUser().getNickName());
distributionLoadscanEntity.setSigningUser(AuthUtil.getUser().getNickName());
distributionLoadscanEntity.setSigningUserId(AuthUtil.getUser().getUserId());
distributionLoadscanEntity.setScanStatus(LoadingStatusConstant.buluzhuangche.getValue());
distributionLoadscanService.save(distributionLoadscanEntity);
//进行签收数量的修改
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId());
//更新装车包件数和签收包件数
Integer j = distributionSignforMapper.updateSignforByReservationId(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub());
//更新签收人
Integer m = distributionSignforMapper.updateSignUser(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), AuthUtil.getUser());
// 包件解托下架
// warehouseUpdownTypeClient.downPackageOrDelTray(collect.get(0).getOrderPackageCode(), myCurrentWarehouse.getId());
}
//修改包件状态为装车、签收
DistributionParcelListEntity updatePackage = collect.get(0);
updatePackage.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue());
updatePackage.setOrderPackageStatus(OrderPackageStatusConstant.yiqianshou.getValue());
distributionParcelListService.updateById(updatePackage);
//维护签收包件状态
distributionStockArticleService.maintenanceOrderInfo(collect.get(0).getOrderCode(),myCurrentWarehouse.getId());
//推送信息至工厂
distributionAsyncService.sendFactory(collect.get(0),simpleDateFormat.format(new Date()), distributionReservationEntity.getId(), distributionReservationEntity.getReservationCode(), myCurrentWarehouse.getName(), nickName);
//收集包件
orderpackages.add(collect.get(0).getOrderPackageCode());
} else {
//一个客户下出现重复包条码
log.error("############出现重复包条码:{}", collect);
throw new RuntimeException("包件数据异常,请联系管理员!!!");
}
}
//维护客户
distributionReservationService.maintenanceReservationInfo(distrilbutionloadingscanDTO.getReservationId());
//维护配送任务
distributionDeliveryListService.maintenanceDeliveryInfo(distrilbutionloadingscanDTO.getDeliveryId());
return R.data(orderpackages,"签收成功");
}
private boolean judgmentClient(DistributionReservationEntity distributionReservationEntity, Long stockArticleId) {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(stockArticleId);
switch (distributionReservationEntity.getDeliveryType()) {
@ -1233,6 +1564,16 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
@Override
public R signforack(DistributionSignforDTO distributionSignfor) {
DistributionSignforEntity signforEntity = distributionSignforMapper.getByReservationId(distributionSignfor.getReservationId());
if (Func.isEmpty(signforEntity)){
log.error("预约查询签收信息错误");
return R.fail("请联系管理员!!!");
}
if (signforEntity.getReceivedQuantity() <= 0){
log.error("signforack############未进行签收上传图片");
return Resp.scanFail("请先进行签收扫描后上传图片","请先进行签收扫描后上传图片");
}
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
log.info("=============签收图片数据为:{}", distributionSignfor.getMap());
if (ObjectUtils.isNotNull(distributionSignfor.getMap())) {
@ -1287,7 +1628,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
//查询这个包件是否满足该客户的要求
DistributionReservationEntity reservationEntity = distributionReservationMapper.selectById(distrilbutionloadingscanDTO.getReservationId());
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(parcelListEntity.getStockArticleId());
DistributionSignforEntity signforEntity = distributionSignforMapper.getByReservationId(reservationEntity.getId());
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId());
DistributionDeliverySelfEntity distributionDeliverySelfEntity = new DistributionDeliverySelfEntity();
@ -1351,6 +1691,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionLoadscanEntity.setSignforState(2);
distributionLoadscanEntity.setPackageNub(parcelListEntity.getQuantity());
distributionLoadscanEntity.setIsAbnormalSigning(2);
distributionLoadscanEntity.setIsAbnormalLoading(2);
distributionLoadscanEntity.setOrderId(parcelListEntity.getStockArticleId());
distributionLoadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId());
distributionLoadscanEntity.setDeliveryId(distrilbutionloadingscanDTO.getDeliveryId());
@ -1422,10 +1763,10 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionLoadscanEntity.setScanUser(AuthUtil.getUser().getUserName());
distributionLoadscanEntity.setSigningUser(AuthUtil.getUser().getUserName());
distributionLoadscanEntity.setSigningUserId(AuthUtil.getUser().getUserId());
if (Func.isEmpty(loadscanEntity)) {
if (Func.isEmpty(loadscanEntity)){
distributionLoadscanService.save(distributionLoadscanEntity);
Integer j = distributionSignforMapper.updateSignforNum(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub());
} else {
}else {
distributionLoadscanService.updateById(distributionLoadscanEntity);
Integer j = distributionSignforMapper.updateSignforNum(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub());
}
@ -1442,7 +1783,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
parcelListEntity.setOrderPackageStatus(OrderPackageStatusConstant.yiqianshou.getValue());
distributionParcelListService.updateById(parcelListEntity);
//维护订单信息
distributionStockArticleService.maintenanceOrderInfo(parcelListEntity.getOrderCode(), parcelListEntity.getWarehouseId());
distributionStockArticleService.maintenanceOrderInfo(parcelListEntity.getOrderCode(),parcelListEntity.getWarehouseId());
break;
}
//查询一次是否进行了异常装车,如果没有进行异常装车数据进行审核
@ -1451,7 +1792,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
.eq(DistributionLoadscanAbnormalEntity::getDeliveryListId, distrilbutionloadingscanDTO.getDeliveryId())
.eq(DistributionLoadscanAbnormalEntity::getPackageCode, distrilbutionloadingscanDTO.getBarcode())
);
if (Func.isEmpty(list)) {
if (Func.isEmpty(list)){
BladeUser user = AuthUtil.getUser();
DistributionLoadscanAbnormalEntity distributionLoadscanAbnormalEntity = new DistributionLoadscanAbnormalEntity();
distributionLoadscanAbnormalEntity.setAuditingStatus(LoadingAbnormalAuditingStatusConstant.daishenhe.getValue());
@ -1472,12 +1813,13 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionLoadscanAbnormalService.save(distributionLoadscanAbnormalEntity);
}
//修改对应的签收为可审核
DistributionSignforEntity signforEntity = distributionSignforMapper.getByReservationId(reservationEntity.getId());
signforEntity.setIsHaveAbnormalPackage(2);
this.updateById(signforEntity);
//修改包件的签收数量
distributionParcelListMapper.updateOrderPackageCodeById(parcelListEntity.getId(), OrderPackageStatusConstant.yiqianshou.getValue());
distributionParcelListMapper.updateOrderPackageCodeById(parcelListEntity.getId(),OrderPackageStatusConstant.yiqianshou.getValue());
//还需要维护包件状态
distributionAsyncService.maintenanceOrderStatus(parcelListEntity.getOrderCode(), parcelListEntity.getWarehouseId());
distributionAsyncService.maintenanceOrderStatus(parcelListEntity.getOrderCode(),parcelListEntity.getWarehouseId());
} else {
log.error("############出现相同的包件码:{}", distrilbutionloadingscanDTO.getBarcode());
return Resp.scanFail("操作失败", "包件信息有误");
@ -1633,7 +1975,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
@Override
public List<DistributionAppSignforVO> getAppDeliveryreservationListPage(DistributionAppDeliveryListDTO distributionDeliveryList) {
public List<DistributionAppSignforVO> getAppDeliveryreservationListPage( DistributionAppDeliveryListDTO distributionDeliveryList) {
//查询客户
List<DistributionAppSignforVO> customList = baseMapper.selectAppcustomListPage(distributionDeliveryList.getId());
@ -1708,7 +2050,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
}
// 库存品进行装车,这里需要对库存品扫描数据进行签收的状态标记
loadscaninvnEntity.setSigningUserId(user.getUserId());
loadscaninvnEntity.setSigningUser(user.getUserName());
loadscaninvnEntity.setSigningUser(user.getNickName());
loadscaninvnEntity.setReceivedQuantity(inventory.get(0).getNum());
loadscaninvnEntity.setSignforState(LoadScanSigningStatusConstant.yiqianshou.getValue());
loadscaninvnEntity.setSigningTime(simpleDateFormat.format(new Date()));
@ -1753,6 +2095,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionLoadscaninvnEntity.setLoadingId(distributionDeliverySelfEntity.getId().toString());
distributionLoadscaninvnEntity.setOrderPackageCode(inventory.get(0).getStockPackageCode());
distributionLoadscaninvnEntity.setInventoryId(inventory.get(0).getStockListId());
distributionLoadscaninvnEntity.setInventoryPackageId(inventory.get(0).getId());
distributionLoadscaninvnEntity.setDeliveryId(distrilbutionloadingscanDTO.getDeliveryId());
distributionLoadscaninvnEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId());
distributionLoadscaninvnEntity.setScanUser(user.getUserName());
@ -1946,7 +2289,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
int reservationTotal = reservationZeroPackageEntityList.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum();
distributionAppStockArticleVO.setReservationNum(reservationTotal);
List<DistributionParcelNumberVO> parcelNumberVOS = distributionReservationMapper.selectReservationZeroOrderDetail(orderId, Long.parseLong(distributionDeliveryList.getReservationId()));
parcelNumberVOS.forEach(p -> {
parcelNumberVOS.forEach(p -> {
DistributionLoadscanEntity loadscanEntity = distributionLoadscanService.getOne(Wrappers.<DistributionLoadscanEntity>query().lambda().eq(DistributionLoadscanEntity::getReservationId, distributionDeliveryList.getReservationId()).eq(DistributionLoadscanEntity::getOrderId, orderId).eq(DistributionLoadscanEntity::getPackageId, p.getParcelListId()).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()));
p.setLoadingNum(0);
p.setSigningNum(0);
@ -1960,13 +2303,13 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
}
}
orderVos.add(distributionAppStockArticleVO);
}
orderVos.add(distributionAppStockArticleVO);
}
}
return orderVos;
}
}
// Map<Long, List<DistributionLoadscanEntity>> orderMap = distributionLoadscanEntities.stream().collect(Collectors.groupingBy(DistributionLoadscanEntity::getOrderId));
@ -2286,6 +2629,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
@Override
@Transactional
public R oneclick(DistributionSignforDTO distributionSignfor) {
BladeUser user = AuthUtil.getUser();
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
if (Objects.isNull(myCurrentWarehouse)) {
throw new CustomerException(403, "仓库信息不能为空");
@ -2342,11 +2687,11 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
}
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (Func.equals(distributionSignforEntity.getDriverSigning(), SignforDriverSigningStatusConstant.yiqianshou.getValue())) {
log.error("###############重复签收+{" + distributionSignforEntity + "}");
return R.fail("签收失败");
}
BladeUser user = AuthUtil.getUser();
//处理库存品
//查询出该客户下的库存品信息
List<DisStockListDetailEntity> detailEntities = distributionReservationMapper.selectInventoryListByReservation(distributionSignforEntity.getReservationId());
@ -2449,8 +2794,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
return R.fail("库存品未进行备货操作");
}
}
//查询出该签收任务下的客户对应的所有包件和库存品信息
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.selectPackageListByReservationId(distributionSignforEntity.getReservationId());
//包件不需要考虑备货、装车直接可进行签收 过滤已装车的包件
@ -2489,7 +2832,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
}
} else if (distributionLoadscanEntity.getSignforState().equals(LoadScanSigningStatusConstant.weiqianshou.getValue())) {
if (distributionLoadscanEntity.getLoadedNub() == parcelNumberEntity.getReservationNum()) {
if (distributionLoadscanEntity.getLoadedNub() .equals(parcelNumberEntity.getReservationNum()) ) {
//装车数量和计划数量一致,这里进行签收数量的维护
//修改这里装车数量已经维护好了,只需要维护签收数量
distributionParcelNumberEntity.setSigninQuantity(signinQuantity.add(reservationNum).intValue());
@ -2688,15 +3031,14 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionAsyncService.checkSignStatus(loadscanEntities.getPackageId(), loadscanEntities.getReservationId(), loadscanEntities.getDeliveryId());
}
}
distributionAsyncService.sendFactory(parcelListEntity, signingTime, reservationEntity.getId(), reservationEntity.getReservationCode(), myCurrentWarehouse.getName());
distributionAsyncService.sendFactory(parcelListEntity,simpleDateFormat.format(new Date()), reservationEntity.getId(), reservationEntity.getReservationCode(), myCurrentWarehouse.getName(),user.getNickName());
packageIds.add(parcelListEntity.getId());
orderCodes.add(parcelListEntity.getOrderCode());
}
//批量维护订单信息
if (Func.isNotEmpty(orderCodes)) {
if (Func.isNotEmpty(orderCodes)){
String orderCode = orderCodes.stream().distinct().collect(Collectors.joining(","));
distributionStockArticleService.maintenanceOrderInfo(orderCode, myCurrentWarehouse.getId());
distributionStockArticleService.maintenanceOrderInfo(orderCode,myCurrentWarehouse.getId());
}
@ -2706,28 +3048,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionAsyncService.sendReviewFactory(distributionSignforEntity.getId(),myCurrentWarehouse.getName() ,myCurrentWarehouse.getId());
}
}
//TODO 调用出库接口
// for (DistributionParcelListEntity distributionParcelListEntity : parcelListEntityList) {
// //根据ID获取品牌
// DistributionStockArticleEntity distributionStockArticle = new DistributionStockArticleEntity();
// distributionStockArticle.setId(distributionParcelListEntity.getStockArticleId());
// DistributionStockArticleEntity distributionStockArticleEntity = distributionStockArticleService.getOne(Condition.getQueryWrapper(distributionStockArticle));
// String brand = distributionStockArticleEntity.getBrand(); //获取品牌
//
// OrderStatusDTO orderStatusDTO = new OrderStatusDTO();
// orderStatusDTO.setStatus("7");//状态
// orderStatusDTO.setOperationTime(simpleDateFormat.format(new Date()));//操作时间
// orderStatusDTO.setUsername(user.getUserName()); //签收人(名称)
// orderStatusDTO.setUnitNo(distributionParcelListEntity.getOrderPackageCode()); //包条码
// orderStatusDTO.setCurrentWarehouse(String.valueOf(distributionParcelListEntity.getWarehouseId())); //当前仓库ID
// Map<String, Object> mapState = new HashMap<>();
// mapState.put("orderStatusDTO", orderStatusDTO);
// mapState.put("brand", brand);
// //rabbitTemplate.convertAndSend(RabbitConstant.NEW_SYSTEM_RECEIVE_INFO_QUEUE, mapState);
// rabbitTemplate.convertAndSend(RabbitConstant.NEW_SYSTEM_RECEIVE_INFO_EXCHANGE, RabbitConstant.NEW_SYSTEM_RECEIVE_INFO_ROUTING, mapState);
// System.out.println("发送消息成功");
// }
//维护客户信息状态
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getValue());
@ -2762,6 +3082,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
}
@Override
public R offline(String offlineJson) {
return null;
@ -2986,9 +3307,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
@Override
public R loadingAbnormalPackageListDetail(Long id) {
DistributionSignforEntity signforEntity = this.getById(id);
if (!Func.equals(signforEntity.getIsHaveAbnormalPackage(), 2)) {
return R.fail(8000, "客户无异常装车包件");
}
//这里就需要进行该客户的异常包件列表进行查询
List<DistributionLoadscanAbnormalVO> loadscanAbnormalVOS = baseMapper.selectAbnormalPackageList(signforEntity.getReservationId(), signforEntity.getDeliveryId());
loadscanAbnormalVOS.forEach(p -> {
@ -3063,6 +3381,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
}
@Override
@Transactional
public R loadingAbnormalPackageListAuditing(String ids) {
// ------------------------------------2023-09-27 异常装车包件审核----------------------------------------------
// 思路:
@ -3073,6 +3392,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
log.error("#############异常包件信息异常:{}", distributionLoadscanAbnormalEntities);
return R.fail(3000, "审核失败");
}
List<Long> reservationId = distributionLoadscanAbnormalEntities.stream().distinct().map(DistributionLoadscanAbnormalEntity::getReservationId).collect(Collectors.toList());
if (distributionLoadscanAbnormalEntities.size() == 1) {
DistributionLoadscanAbnormalEntity distributionLoadscanAbnormalEntity = distributionLoadscanAbnormalEntities.get(0);
//需要将该包件追加至该客户之下
@ -3114,7 +3434,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionParcelListService.updateById(parcelListEntity);
distributionLoadscanAbnormalEntity.setAuditingStatus(2);
distributionLoadscanAbnormalEntity.setAuditingTime(new Date());
distributionLoadscanAbnormalEntity.setAuditingUser(AuthUtil.getUser().getUserName());
distributionLoadscanAbnormalEntity.setAuditingUser(AuthUtil.getUser().getNickName());
distributionLoadscanAbnormalService.updateById(distributionLoadscanAbnormalEntity);
reservationEntity.setReservationNum(reservationEntity.getReservationNum() + distributionLoadscanAbnormalEntity.getLoadingQuantity());
distributionReservationMapper.updateById(reservationEntity);
@ -3123,9 +3443,10 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
.eq(DistributionLoadscanEntity::getDeliveryId, distributionLoadscanAbnormalEntity.getDeliveryListId())
.eq(DistributionLoadscanEntity::getPackageId, distributionLoadscanAbnormalEntity.getPackageId())
.eq(DistributionLoadscanEntity::getOrderPackageCode, distributionLoadscanAbnormalEntity.getPackageCode())
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
);
loadscanEntity.setIsAbnormalLoading(1);
if (loadscanEntity.getSignforState().equals(LoadScanSigningStatusConstant.yiqianshou.getValue())) {
if (loadscanEntity.getSignforState().equals(LoadScanSigningStatusConstant.yiqianshou.getValue())){
//已经进行签收了 这里就需要将异常签收的状态变更为正常
loadscanEntity.setIsAbnormalSigning(1);
}
@ -3174,7 +3495,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionParcelListService.updateById(parcelListEntity);
a.setAuditingStatus(2);
a.setAuditingTime(new Date());
a.setAuditingUser(AuthUtil.getUser().getUserName());
a.setAuditingUser(AuthUtil.getUser().getNickName());
distributionLoadscanAbnormalService.updateById(a);
reservationEntity.setReservationNum(reservationEntity.getReservationNum() + a.getLoadingQuantity());
distributionReservationMapper.updateById(reservationEntity);
@ -3182,8 +3503,24 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
} else {
return R.fail(3000, "无需审批");
}
//批量审核
}
DistributionSignforEntity signforEntity = this.getOne(Wrappers.<DistributionSignforEntity>query().lambda()
.eq(DistributionSignforEntity::getReservationId, reservationId.get(0))
);
//维护签收的异常签收状态
this.maintenanceSignfor(signforEntity.getReservationId());
//维护预约单状态
distributionReservationService.maintenanceReservationInfo(reservationId.get(0));
//维护预约单数量
distributionReservationService.maintenanceReservationNum(reservationId.get(0));
//维护配送任务状态
distributionDeliveryListService.maintenanceDeliveryInfo(signforEntity.getDeliveryId());
//维护配送任务数量
distributionDeliveryListService.maintenanceDeliveryNum(signforEntity.getDeliveryId());
return R.success("操作成功");
}
@ -3201,6 +3538,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
@Override
public Boolean updatePicture(DistributionSignforDTO distributionSignfor) {
if (ObjectUtils.isNotNull(distributionSignfor.getMap())) {
List<DistributionSignPrintEntity> distributionSignPrintList = new ArrayList<>();
distributionSignfor.getMap().forEach((k, v) -> {

6
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java

@ -54,7 +54,6 @@ import org.springblade.common.constant.order.OrderStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageLoadingStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant;
import org.springblade.common.constant.printTemplate.PrintTemplateStatusConstant;
import org.springblade.common.exception.CustomerException;
import org.springblade.common.utils.CommonUtil;
@ -1317,7 +1316,10 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
String orderPackageStatus = parcelListEntity.getOrderPackageStatus();
String orderPackageReservationStatus = parcelListEntity.getOrderPackageReservationStatus();
String orderPackageGroundingStatus = parcelListEntity.getOrderPackageGroundingStatus();
waybillNoSet.add(parcelListEntity.getWaybillNumber());
String waybillNumber = parcelListEntity.getWaybillNumber();
if(StringUtils.isNotBlank(waybillNumber)){
waybillNoSet.add(parcelListEntity.getWaybillNumber());
}
if("20".equals(orderPackageGroundingStatus)){
groundingNum = groundingNum + 1;

57
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockServiceImpl.java

@ -42,10 +42,7 @@ import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.*;
/**
* 库存品详情信息 服务实现类
@ -206,6 +203,7 @@ public class DistributionStockServiceImpl extends BaseServiceImpl<DistributionSt
// DistributionStockDTO distributionStock1 = JSONObject.parseObject(JSONObject.toJSONString(distributionStocks), DistributionStockDTO.class);
List<String> ids = distributionStocks.getIds();
List<DistributionStockEntity> list = new ArrayList<>();
for (int ii = 0; ii < ids.size(); ii++) {
String i = ids.get(ii);
DistributionStockEntity stockEntity = new DistributionStockEntity();
@ -258,6 +256,38 @@ public class DistributionStockServiceImpl extends BaseServiceImpl<DistributionSt
parcelListEntity.setOrderPackageStockupStatus(OrderPackageStockupStatusConstant.yibeihu.getValue());
distributionParcelListService.updateById(parcelListEntity);
// distributionStockService.list(Wrappers.<S>query().lambda().eq());
//添加备货数据
if(ObjectUtils.isNotNull(distributionStocks.getStockupType()) && distributionStocks.getStockupType().equals("ZT")){
//自提
DistrilbutionBillLadingEntity billLadingEntity = distrilbutionBillLadingMapper.selectById(stockEntity.getBillLadingId());
if(ObjectUtils.isNotNull(billLadingEntity)){
DistrilbutionBillLadingEntity billLading = new DistrilbutionBillLadingEntity();
billLading.setId(billLadingEntity.getId());
billLading.setStockOrderQuantity(billLadingEntity.getStockOrderQuantity()+1);
distrilbutionBillLadingMapper.updateById(billLading);
}
}else{
//商 市
DistributionReservationEntity byId2 = distributionReservationService.getById(stockEntity.getReservationId());
if(ObjectUtils.isNotNull(byId2)){
DistributionReservationEntity reservationEntity = new DistributionReservationEntity();
reservationEntity.setId(byId2.getId());
int yu =byId2.getReservationNum() + byId2.getReservationStockListNum();
int bei = byId2.getStockOrderQuantity()+1 + byId2.getReserveQuantity();
if(bei >= yu){
reservationEntity.setStockOrderQuantity(byId2.getStockOrderQuantity()+1);
reservationEntity.setStockStatus("3");
reservationEntity.setEndTimeStocking(new Date());
}else{
reservationEntity.setStockOrderQuantity(byId2.getStockOrderQuantity()+1);
reservationEntity.setStockStatus("2");
if(ObjectUtils.isNull(reservationEntity.getStartTimeStocking())){
reservationEntity.setStartTimeStocking(new Date());
}
}
distributionReservationService.updateById(reservationEntity);
}
}
}
if(ObjectUtils.isNotNull(distributionStocks.getStockupType()) && distributionStocks.getStockupType().equals("ZT")){
//修改备货状态 自提
@ -279,6 +309,7 @@ public class DistributionStockServiceImpl extends BaseServiceImpl<DistributionSt
* @param type
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void getUpdateOrderState(Long pageId,int type,Integer num ) {
switch (type){
case 1: //修改订单备货状态
@ -298,7 +329,6 @@ public class DistributionStockServiceImpl extends BaseServiceImpl<DistributionSt
case 2: //备货 商 市
//查询还没有扫的数量
DistributionStockVO distributionStockVO1 = baseMapper.selectStockupInfo(pageId);
if(ObjectUtils.isNotNull(distributionStockVO1)){
//有订单
if(ObjectUtils.isNotNull(distributionStockVO1.getScanned()) && !distributionStockVO1.getScanned().equals(0)){
@ -324,15 +354,24 @@ public class DistributionStockServiceImpl extends BaseServiceImpl<DistributionSt
break;
case 3://自提
DistributionStockupInfoEntity one = distributionStockupInfoService.getOne(Wrappers.<DistributionStockupInfoEntity>query().lambda()
.eq(DistributionStockupInfoEntity::getStockupId, pageId)
);
DistributionStockVO distributionStockSelf = baseMapper.selectStockupInfoSelf(pageId);
//查询库存品
DistributionDeliveryDetailsVO distributionSelf = distributionDeliveryDetailsService.selectCount(pageId);
int ys = 0; //已扫
int qb = 0; //全部
if(ObjectUtils.isNotNull(distributionSelf)){
Integer wholeNum = 0 ;
if(ObjectUtils.isNull(distributionSelf.getWholeNum())){
qb += 0;
}else{
qb += distributionSelf.getWholeNum();
}
//有库存品
ys += distributionSelf.getEsauNum();
qb += distributionSelf.getWholeNum();
}
if(ObjectUtils.isNotNull(distributionStockSelf)){
//有订单
@ -343,6 +382,12 @@ public class DistributionStockServiceImpl extends BaseServiceImpl<DistributionSt
if(ys + num >= qb){
//修改备货任务
getUpdateStockup(pageId,2);
DistrilbutionBillLadingEntity billLadingEntity = distrilbutionBillLadingMapper.selectById(one.getReservationId());
DistrilbutionBillLadingEntity billLading = new DistrilbutionBillLadingEntity();
billLading.setId(billLadingEntity.getId());
billLading.setStockStatus("3");
billLading.setEndTimeStocking(new Date());
distrilbutionBillLadingMapper.updateById(billLading);
}else{
//没有完成
getUpdateStockup(pageId,1);

210
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java

@ -64,6 +64,8 @@ import org.springblade.common.constant.stocklist.StockSignfoStatusConstant;
import org.springblade.common.constant.stocklist.StockStatusConstant;
import org.springblade.common.constant.stockup.StockAssignStatusConstant;
import org.springblade.common.constant.stockup.StockupStatusConstant;
import org.springblade.common.constant.stockup.StockupTypeConstant;
import org.springblade.common.constant.stockup.StockupTypeStatusConstant;
import org.springblade.common.exception.CustomerException;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
@ -316,7 +318,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
// throw new ServiceException("没有选择仓库!!!");
// }
IPage<DistributionStockupListVO> distributionStockupEntityIPage = baseMapper.selectHomeStockupPage(page, stockupDTO);
// IPage<DistributionStockupListVO> distributionStockupEntityIPage = baseMapper.selectStockupPage(page, stockupDTO);
List<DistributionStockupListVO> records = distributionStockupEntityIPage.getRecords();
for (DistributionStockupListVO vo : records) {
AtomicReference<Boolean> b = new AtomicReference<>(false);
@ -333,9 +335,6 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
int sum = list.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum();
nu.set((int) (nu.get() + sum));
b.set(true);
//自提
// List<DistributionStockPackageVO> list2self = distrilbutionBillStockService.listPackageSelf(z.getReservationId());
// nu.set(nu.get()+list2self.size());
}
if (z.getStockUpType().equals("3")) {
@ -367,63 +366,10 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
if (ObjectUtils.isNull(vo.getInventoryNub())) {
vo.setInventoryNub(0);
}
//查询库位信息
// //1.通过预约单号查询所有包件的库位信息
// Long reservationId = vo.getReservationId();
// List<String> packageAllocation = distributionParcelListService.selectWarehouseAreaByReservationId(reservationId);
// //2.通过预约单查询所有库存品的库位信息
// List<String> stockListAllocation = distributionStockListService.selectWarehouseAreaByReservationId(reservationId);
// String allocation = dealwithAllocation(packageAllocation, stockListAllocation);
// //查询托盘信息
// //1.查询包件托盘信息`
// List<String> packagePallet = distributionParcelListService.selectPalletByReservationId(reservationId);
// //2.查询库存品托盘信息
// List<String> stockListPallet = distributionStockListService.selectPalletByReservationId(reservationId);
// String pallet = deakwithPallet(packagePallet, stockListPallet);
// //查询对应预约单的订单总数
// Integer orderNum = distributionReservationService.selectOrderNumByReservationId(reservationId);
//
// //查询计划件数
// Integer planNum = distributionReservationService.selectPlanNum(reservationId);
//查询已备货件数
// Integer realNum = distributionStockupScanService.selectRealNum(reservationId);
// Integer realNum = distributionStockService.selectRealNum(reservationId);
//备货任务是否完成通过扫描表中的记录数量和计划数量对比
// if (realNum.equals(planNum)) {
// vo.setStockupStatusStr("是");
// } else {
// vo.setStockupStatusStr("否");
// }
// vo.setWarehouseArea(allocation);
// vo.setTrays(pallet);
// vo.setOrderNum(orderNum);
// vo.setPlanNum(planNum);
// vo.setRealNum(realNum);
}
distributionStockupEntityIPage.setRecords(records);
return distributionStockupEntityIPage;
// //查询该备货单上对应的客户
// //1.通过备货任务id查询得到所有的预约单
// List<Long> reservationIds = distributionStockupInfoService.selectReservationIdListByStockupId(stockupId);
// //2.通过预约id查到所有的预约单
// List<DistributionReservationEntity> reservationEntities = distributionReservationService.selectListByIds(reservationIds);
// //3.拼接客户名称
// vo.setCustomer(getCustomer(reservationEntities));
// //4.拿到所有包件的托盘信息
// vo.setTrays(getTrays(reservationEntities));
// //5.查询订单总数 计划数量 备货件数
// Map<String, Integer> nums = getNums(reservationEntities);
// vo.setOrderNum(nums.get("orderNum"));
// vo.setPlanNum(nums.get("stockNum"));
// //6.查询已扫描备货的数据 TODO 还需要查询逻辑
// vo.setRealNum(0);
// }
}
@Override
@ -471,7 +417,6 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
} else {
i.setStockupNum(0);
}
});
map.put("orderList", list);
} else {
@ -1201,6 +1146,21 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
if (i.getPlanNum().equals(i.getRealNum())) {
i.setCompleteStact(true);
}
if (Func.isNotEmpty(i.getAllocations())){
String[] ids = i.getAllocations().split(",");
List<WarehouseGoodsAllocationEntity> allocationInforByIds = warehouseGoodsAllocationClient.getAllocationInforByIds(ids);
for (WarehouseGoodsAllocationEntity allocationInforById : allocationInforByIds) {
if (i.getAllocationList() == null) {
i.setAllocationList(new ArrayList<>());
}
Map<String, Object> map = new HashMap<>();
map.put("id", allocationInforById.getId());
map.put("name", allocationInforById.getQrCode());
i.getAllocationList().add(map);
}
}
});
return list;
} else {
@ -1362,6 +1322,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
*/
@Override
public DistributionStockupOrderInfoVO selectOrderInfoSelf(StockupDTO stockupDTO) {
Long allocationId = stockupDTO.getAllocationId();
DistributionStockArticleEntity byId = distributionStockArticleService.getById(stockupDTO.getStockArticleId());
if (stockupDTO.getStatus().equals(1)) {
//已备货
@ -1370,7 +1331,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
DistributionStockupSelfVO distributionStockupSelfVO = new DistributionStockupSelfVO();
AtomicReference<Integer> j = new AtomicReference<>(0);
AtomicReference<Integer> y = new AtomicReference<>(0);
if (ObjectUtils.isNotNull(stockupDTO.getAllocationId())) {
if (ObjectUtils.isNotNull(allocationId)) {
distributionStockupSelf.forEach(i -> {
if (ObjectUtils.isNotNull(i.getLwugId())) {
j.updateAndGet(v -> v + i.getPlanNum());
@ -1427,10 +1388,10 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
List<PackageStockupVO> list = distributionParcelListService.selectOrderInfoSelfAllocationList(stockupDTO);
Iterator<PackageStockupVO> iterator = list.iterator();
List<PackageStockupVO> listPack = new ArrayList<>();
if (ObjectUtils.isNotNull(stockupDTO.getAllocationId())) {
if (ObjectUtils.isNotNull(allocationId)) {
while (iterator.hasNext()) {
PackageStockupVO next = iterator.next();
if (stockupDTO.getAllocationId().equals(next.getAllocationId())) {
if (allocationId.equals(next.getAllocationId())) {
next.setIsScanStr("已备货");
next.setIsScan(2);
listPack.add(next);
@ -1465,7 +1426,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
} else {
DistributionStockupSelfVO distributionStockupSelfVO = new DistributionStockupSelfVO();
if (ObjectUtils.isNotNull(stockupDTO.getAllocationId())) {
if (ObjectUtils.isNotNull(allocationId)) {
//查询订单数量 有库位
List<DistributionStockupSelfVO> distributionStockupSelfVOS = distrilbutionBillStockService.selectDistrilbutionBillPackSelf(stockupDTO);
List<DistributionStockupSelfVO> collect = distributionStockupSelfVOS.stream().filter(i -> ObjectUtils.isNotNull(i.getWarehouseArea())).collect(Collectors.toList());
@ -1544,10 +1505,9 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
List<PackageStockupVO> list = distributionParcelListService.selectOrderInfoSelfList(stockupDTO);
Iterator<PackageStockupVO> iterator = list.iterator();
AtomicReference<Integer> j = new AtomicReference<>(0);
if (Objects.isNull(stockupDTO.getAllocationId())) {
if (Objects.isNull(allocationId)) {
while (iterator.hasNext()) {
j.updateAndGet(v -> v + 1);
PackageStockupVO next = iterator.next();
if (ObjectUtils.isNotNull(next.getAllocationId())) {
iterator.remove();
@ -1560,10 +1520,11 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
next.setIsScanStr("未备货");
next.setIsScan(1);
}
j.updateAndGet(v -> v + 1);
}
} else {
while (iterator.hasNext()) {
j.updateAndGet(v -> v + 1);
PackageStockupVO next = iterator.next();
if (ObjectUtils.isNull(next.getPositionCode())) {
iterator.remove();
@ -1576,6 +1537,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
next.setIsScanStr("未备货");
next.setIsScan(1);
}
j.updateAndGet(v -> v + 1);
}
}
distributionStockupSelfVO.setPlanNum(j.get());
@ -2881,10 +2843,31 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
}
@Override
public Long selectStockListInfoByCargoNumber(Long reservationId, String cargoNumber, Long allocationId) {
public Long selectStockListInfoByCargoNumber(Long reservationId, String cargoNumber, Long allocationId, String typeService) {
Long mallId = null;
String mallName = null;
if(typeService.equals(StockupTypeConstant.ziti.getValue())){
//自提
// 查询预约单的上的信息
List<DistrilbutionBillStockEntity> list = distrilbutionBillStockService.list(Wrappers.<DistrilbutionBillStockEntity>query().lambda().
eq(DistrilbutionBillStockEntity::getBillLadingId, reservationId)
.apply("order_status in (1,2)")
);//预约信息
if(!list.isEmpty()){
DistributionStockArticleEntity byId = distributionStockArticleService.getById(list.get(0).getStockArticleId());
mallId = byId.getMallId();
mallName = byId.getMallName();
}
}else{
// 查询预约单上的商城
DistributionReservationEntity distributionReservationEntity = distributionReservationMapper.selectById(reservationId);
mallId = distributionReservationEntity.getMallId();
mallName = distributionReservationEntity.getMallName();
}
// 查询预约单上的商城
DistributionReservationEntity distributionReservationEntity = distributionReservationMapper.selectById(reservationId);
//查询货位上物料信息
// todo
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
@ -2905,7 +2888,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
WarehouseUpdownGoodsEntity warehouseUpdownGoodsEntity = JSONObject.parseObject(jsonObject.toJSONString(), WarehouseUpdownGoodsEntity.class);
if (warehouseUpdownGoodsEntity.getAssociationType().equals("4")) {
// 无数据库存品
if (cargoNumber.equals(warehouseUpdownGoodsEntity.getAssociationValue()) && warehouseUpdownGoodsEntity.getMarketId().equals(distributionReservationEntity.getMallId())) {
if (cargoNumber.equals(warehouseUpdownGoodsEntity.getAssociationValue()) && warehouseUpdownGoodsEntity.getMarketId().equals(mallId)) {
incomingBatches.add(warehouseUpdownGoodsEntity.getIncomingBatch());
}
}
@ -2920,7 +2903,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
LambdaQueryWrapper<DistributionStockListEntity> lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.in(DistributionStockListEntity::getIncomingBatch, incomingBatches);
lambdaQueryWrapper.eq(DistributionStockListEntity::getCargoNumber, cargoNumber);
lambdaQueryWrapper.eq(DistributionStockListEntity::getMarketName, distributionReservationEntity.getMallName());
lambdaQueryWrapper.eq(DistributionStockListEntity::getMarketName, mallName);
// 入库 时间先进的先出
lambdaQueryWrapper.orderByAsc(DistributionStockListEntity::getCreateTime);
List<DistributionStockListEntity> distributionStockListEntities = distributionStockListMapper.selectList(lambdaQueryWrapper);
@ -2933,6 +2916,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
@Override
public StockConfigInfoVO stockConfigList(StockupDTO stockupDTO) {
String typeService = stockupDTO.getTypeService();
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if (Func.isEmpty(myCurrentWarehouse)){
return null;
@ -2990,31 +2974,74 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
log.info("###################库存品source_type字段缺失:{}",distributionStockListEntity.getIncomingBatch());
}
}
// 查询预约单的上的信息
StockConfigInfoVO stockConfigInfoVO = new StockConfigInfoVO();
DistributionReservationEntity reservationEntity = distributionReservationService.getById(stockupDTO.getReservationId()); //预约信息
stockConfigInfoVO.setCustomer(reservationEntity.getConsignee()); //客户0
stockConfigInfoVO.setAddress(reservationEntity.getDeliveryAddress()); //地址
List<StockConfigOrderPackageListVO> ls = new ArrayList<>();
//过滤出同物料库存品的ID信息
List<Long> stockListIds = distributionStockListEntities.stream().map(DistributionStockListEntity::getId).collect(Collectors.toList());
//查询该物料的库存品信息
List<DistributionReservationStocklistEntity> reservationStocklistEntityList = distributionReservationStocklistService.list(Wrappers.<DistributionReservationStocklistEntity>query().lambda()
.eq(DistributionReservationStocklistEntity::getReservationId, stockupDTO.getReservationId())
.in(DistributionReservationStocklistEntity::getStocklistId, stockListIds)
.notIn(DistributionReservationStocklistEntity::getStockListStatus, 2)
);
stockConfigInfoVO.setRealityNum(0);
if (Func.isNotEmpty(reservationStocklistEntityList)){
int realityNum = reservationStocklistEntityList.stream().mapToInt(DistributionReservationStocklistEntity::getRealityNum).sum();
stockConfigInfoVO.setRealityNum(realityNum); //地址
List<StockConfigOrderPackageListVO> ls = new ArrayList<>();
if(typeService.equals(StockupTypeConstant.ziti.getValue())){
//自提
// 查询预约单的上的信息
List<DistrilbutionBillStockEntity> list = distrilbutionBillStockService.list(Wrappers.<DistrilbutionBillStockEntity>query().lambda().
eq(DistrilbutionBillStockEntity::getBillLadingId, stockupDTO.getReservationId())
.apply("order_status in (1,2)")
);//预约信息
if(!list.isEmpty()){
DistributionStockArticleEntity byId = distributionStockArticleService.getById(list.get(0).getStockArticleId());
if(ObjectUtils.isNotNull(byId)){
stockConfigInfoVO.setCustomer(byId.getCustomerName()); //客户0
stockConfigInfoVO.setAddress(byId.getCustomerAddress()); //地址
}
}
//查询该物料的库存品信息
List<DistributionDeliveryDetailsEntity> detailsEntityList = distributionDeliveryDetailsService.list(Wrappers.<DistributionDeliveryDetailsEntity>query().lambda()
.eq(DistributionDeliveryDetailsEntity::getBillLadingId, stockupDTO.getReservationId())
.in(DistributionDeliveryDetailsEntity::getStockListId, stockListIds)
.apply("inventory_status in (1,2)")
);
stockConfigInfoVO.setRealityNum(0);
if (Func.isNotEmpty(detailsEntityList)){
int realityNum = detailsEntityList.stream().mapToInt(DistributionDeliveryDetailsEntity::getRealityQuantity).sum();
stockConfigInfoVO.setRealityNum(realityNum); //已备数量
}
}else{
// 查询预约单的上的信息
DistributionReservationEntity reservationEntity = distributionReservationService.getById(stockupDTO.getReservationId()); //预约信息
stockConfigInfoVO.setCustomer(reservationEntity.getConsignee()); //客户0
stockConfigInfoVO.setAddress(reservationEntity.getDeliveryAddress()); //地址
// List<StockConfigOrderPackageListVO> ls = new ArrayList<>();
//查询该物料的库存品信息
List<DistributionReservationStocklistEntity> reservationStocklistEntityList = distributionReservationStocklistService.list(Wrappers.<DistributionReservationStocklistEntity>query().lambda()
.eq(DistributionReservationStocklistEntity::getReservationId, stockupDTO.getReservationId())
.in(DistributionReservationStocklistEntity::getStocklistId, stockListIds)
.notIn(DistributionReservationStocklistEntity::getStockListStatus, 2)
);
stockConfigInfoVO.setRealityNum(0);
if (Func.isNotEmpty(reservationStocklistEntityList)){
int realityNum = reservationStocklistEntityList.stream().mapToInt(DistributionReservationStocklistEntity::getRealityNum).sum();
stockConfigInfoVO.setRealityNum(realityNum); //地址
}
/* LambdaQueryWrapper<DistributionStockEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(DistributionStockEntity::getReservationId, stockupDTO.getReservationId());
lambdaQueryWrapper.eq(DistributionStockEntity::getAllocationId, stockupDTO.getAllocationId());
lambdaQueryWrapper.eq(DistributionStockEntity::getType, 2);
lambdaQueryWrapper.eq(DistributionStockEntity::getStockupId, stockupDTO.getStockupId());
lambdaQueryWrapper.in(DistributionStockEntity::getStockListId, stockListIds);
List<DistributionStockEntity> distributionStockEntities = distributionStockMapper.selectList(lambdaQueryWrapper);
for (DistributionStockEntity distributionStockEntity : distributionStockEntities) {
StockConfigOrderPackageListVO stockConfigOrderPackageListVO = new StockConfigOrderPackageListVO();
stockConfigOrderPackageListVO.setCode(distributionStockEntity.getCoding());
stockConfigOrderPackageListVO.setNum(1);
stockConfigOrderPackageListVO.setCreateTime(distributionStockEntity.getCreateTime());
// 查询批次
DistributionStockListEntity distributionStockListEntity = distributionStockListMapper.selectById(distributionStockEntity.getStockListId());
stockConfigOrderPackageListVO.setIncomingBatch(distributionStockListEntity.getIncomingBatch());
ls.add(stockConfigOrderPackageListVO);
}
stockConfigInfoVO.setStockConfigOrderPackageListVOS(ls);*/
}
LambdaQueryWrapper<DistributionStockEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(DistributionStockEntity::getReservationId, stockupDTO.getReservationId());
@ -3033,7 +3060,6 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
stockConfigOrderPackageListVO.setIncomingBatch(distributionStockListEntity.getIncomingBatch());
ls.add(stockConfigOrderPackageListVO);
}
stockConfigInfoVO.setStockConfigOrderPackageListVOS(ls);
return stockConfigInfoVO;

19
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java

@ -344,7 +344,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
//新增
// distrilbutionBillLading.setConditions("1");
distrilbutionBillLading.setStockupCode(distributionReservationService.bianMa());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String format = dateFormat.format(new Date());
distrilbutionBillLading.setPickupBatch("ZT"+format);//批次号
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
@ -900,7 +900,11 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
queryWrapper.eq("stock_article_id", Long.parseLong(s))
.eq("is_deleted", 0);
queryWrapper.isNotNull("order_package_code");
List<DistributionParcelListEntity> list = distributionParcelListService.list(queryWrapper);
// List<DistributionParcelListEntity> list = distributionParcelListService.list(queryWrapper);
List<DistrilbutionBillPackageEntity> list = distrilbutionBillPackageService.list(Wrappers.<DistrilbutionBillPackageEntity>query().lambda()
.eq(DistrilbutionBillPackageEntity::getBillLadingId,vo.getBillLadingId())
.apply("packet_bar_status in (1,3)")
);
int pn = list.size(); //包件数量
planNum = planNum + pn;
//通过订单id查询扫描表中有多少数据
@ -1104,7 +1108,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
}
//查询所有的包件列表并且附带状态
List<DistrilbutionAppBillLadingDetailVO> details = baseMapper.selectDetailList(Long.parseLong(s), scanStatus, orderSelfNumbering);
List<DistrilbutionAppBillLadingDetailVO> details = baseMapper.selectDetailList(Long.parseLong(s), scanStatus, orderSelfNumbering,billLadingId);
for (DistrilbutionAppBillLadingDetailVO detailVO : details) {
Integer ss = detailVO.getScanStatus();
Integer errorStatus = detailVO.getErrorStatus();
@ -1126,7 +1130,11 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
queryWrapper.eq("stock_article_id", Long.parseLong(s))
.eq("is_deleted", 0);
queryWrapper.isNotNull("order_package_code");
List<DistributionParcelListEntity> list = distributionParcelListService.list(queryWrapper);
// List<DistributionParcelListEntity> list = distributionParcelListService.list(queryWrapper);
List<DistrilbutionBillPackageEntity> list = distrilbutionBillPackageService.list(Wrappers.<DistrilbutionBillPackageEntity>query().lambda()
.eq(DistrilbutionBillPackageEntity::getBillLadingId,billLadingId)
.apply("packet_bar_status in (1,3)")
);
int pn = list.size();
planNum = planNum + pn;
//通过订单id查询扫描表中有多少数据
@ -1512,7 +1520,8 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
billLadingEntity.setConditions("20");
baseMapper.updateById(billLadingEntity);
}*/
return Resp.scanSuccess( "签收成功","签收成功");
log.info(coding+" > > 签收成功!!");
return Resp.scanSuccess( "签收成功","");
}
}

2
blade-service/logpm-distribution/src/main/resources/application-dev.yml

@ -15,7 +15,7 @@ server:
spring:
#rabbitmq配置
rabbitmq:
host: 192.168.10.100
host: 192.168.10.46
port: 5672
username: admin
password: admin

4
blade-service/logpm-distribution/src/main/resources/application-test.yml

@ -12,10 +12,10 @@ server:
spring:
#rabbitmq配置
rabbitmq:
host: 172.16.128.146
host: 192.168.10.106
port: 5672
username: admin
password: Slwk@123654
password: admin@1234.
#虚拟host 可以不设置,使用server默认host
virtual-host: /
#确认消息已发送到队列(Queue)

92
blade-service/logpm-factory/src/main/java/com/logpm/factory/config/RabbitMqConfiguration.java

@ -27,16 +27,16 @@ import static io.protostuff.MapSchema.MessageFactories.HashMap;
public class RabbitMqConfiguration {
@Bean
public RabbitTemplate createRabbitTemplate(ConnectionFactory connectionFactory){
public RabbitTemplate createRabbitTemplate(ConnectionFactory connectionFactory) {
RabbitTemplate template = new RabbitTemplate();
template.setConnectionFactory(connectionFactory);
template.setMandatory(true);
template.setConfirmCallback(new RabbitTemplate.ConfirmCallback() {
@Override
public void confirm(CorrelationData correlationData, boolean b, String s) {
System.out.println("确认回调-相关数据:"+correlationData);
System.out.println("确认回调-确认情况:"+b);
System.out.println("确认回调-原因:"+s);
System.out.println("确认回调-相关数据:" + correlationData);
System.out.println("确认回调-确认情况:" + b);
System.out.println("确认回调-原因:" + s);
// Long id = Long.parseLong(correlationData.getId());
// UpdateWrapper<PanOrderStatusLog> updateWrapper = new UpdateWrapper<>();
// if(b){
@ -58,40 +58,43 @@ public class RabbitMqConfiguration {
public void returnedMessage(ReturnedMessage returnedMessage) {
if("mt_business_data_2_factory_exchange-pref".equals(returnedMessage.getExchange())){
return ;
if ("mt_business_data_2_factory_exchange".equals(returnedMessage.getExchange()) || "mt_business_data_clerk_check_2_factory_exchange".equals(returnedMessage.getExchange())) {
return;
}
System.out.println("返回回调-消息:"+returnedMessage.getMessage());
System.out.println("返回回调-回应码:"+returnedMessage.getReplyCode());
System.out.println("返回回调-回应信息:"+returnedMessage.getReplyText());
System.out.println("返回回调-交换机:"+returnedMessage.getExchange());
System.out.println("返回回调-路由键:"+returnedMessage.getRoutingKey());
System.out.println("返回回调-消息:" + returnedMessage.getMessage());
System.out.println("返回回调-回应码:" + returnedMessage.getReplyCode());
System.out.println("返回回调-回应信息:" + returnedMessage.getReplyText());
System.out.println("返回回调-交换机:" + returnedMessage.getExchange());
System.out.println("返回回调-路由键:" + returnedMessage.getRoutingKey());
}
});
return template;
}
@Bean
public DirectExchange errorMessageExchange(){
public DirectExchange errorMessageExchange() {
return new DirectExchange(RabbitConstant.ERROR_EXCHANGE);
}
@Bean
public Queue errorQueue(){
public Queue errorQueue() {
return new Queue(RabbitConstant.ERROR_QUEUE, true);
}
@Bean
public Binding errorBinding(Queue errorQueue, DirectExchange errorMessageExchange){
public Binding errorBinding(Queue errorQueue, DirectExchange errorMessageExchange) {
return BindingBuilder.bind(errorQueue).to(errorMessageExchange).with(RabbitConstant.ERROR_ROUTING);
}
/**
* 消费失败队列
*
* @param rabbitTemplate
* @return
*/
@Bean
public MessageRecoverer republishMessageRecoverer(RabbitTemplate rabbitTemplate){
public MessageRecoverer republishMessageRecoverer(RabbitTemplate rabbitTemplate) {
return new RepublishMessageRecoverer(rabbitTemplate, RabbitConstant.ERROR_EXCHANGE, RabbitConstant.ERROR_ROUTING);
}
@ -256,10 +259,6 @@ public class RabbitMqConfiguration {
}
@Bean
public Queue oupaiTestReceivingQueue() {
return new Queue(RabbitConstant.TEST_RECEIVE_INFO_QUEUE, true);
@ -313,18 +312,18 @@ public class RabbitMqConfiguration {
return BindingBuilder.bind(syncOldDataQueue).to(syncOldDataExchange).with(RabbitConstant.SYNC_OLD_DATA_ROUTING).noargs();
}
/**************梦天扫描延迟推送 start****************/
/**************梦天扫描延迟推送 start****************/
@Bean
public Queue mtBusinessData2FactoryQueue() {
Map<String, Object> args =Maps.newHashMap();
args.put("x-message-ttl",5000);
return new Queue(RabbitConstant.MT_BUSINESS_DATA_2_FACTORY_QUEUE,true,false,false,args);
Map<String, Object> args = Maps.newHashMap();
args.put("x-message-ttl", 5000);
return new Queue(RabbitConstant.MT_BUSINESS_DATA_2_FACTORY_QUEUE, true, false, false, args);
}
@Bean
public CustomExchange mtBusinessData2FactoryExchange() {
Map<String, Object> args =Maps.newHashMap();
Map<String, Object> args = Maps.newHashMap();
args.put("x-delayed-type", "direct");
return new CustomExchange(RabbitConstant.MT_BUSINESS_DATA_2_FACTORY_EXCHANGE,
@ -340,48 +339,49 @@ public class RabbitMqConfiguration {
/**************梦天扫描延迟推送 end****************/
/**************梦天扫描延迟推送 start****************/
@Bean
public Queue mtBusinessDataClerkCheck2FactoryQueue() {
Map<String, Object> args =Maps.newHashMap();
args.put("x-message-ttl",5000);
return new Queue(RabbitConstant.MT_BUSINESS_DATA_CLERK_CHECK_2_FACTORY_QUEUE,true,false,false,args);
Map<String, Object> args = Maps.newHashMap();
args.put("x-message-ttl", 5000);
return new Queue(RabbitConstant.MT_BUSINESS_DATA_CLERK_CHECK_2_FACTORY_QUEUE, true, false, false, args);
}
@Bean
public Queue normalQueue() {
return new Queue("normal_queue", true);
}
@Bean
public CustomExchange normalExchange() {
public CustomExchange mtBusinessDataClerkCheck2FactoryExchange() {
Map<String, Object> args = Maps.newHashMap();
args.put("x-delayed-type", "direct");
return new CustomExchange("normal_exchange", "x-delayed-message", true, false, args);
return new CustomExchange(RabbitConstant.MT_BUSINESS_DATA_CLERK_CHECK_2_FACTORY_EXCHANGE,
"x-delayed-message", true, false, args);
}
@Bean
public Binding normalBinding(Queue normalQueue, CustomExchange normalExchange) {
return BindingBuilder.bind(normalQueue).to(normalExchange).with("normal_routerkey").noargs();
public Binding mtBusinessDataClerkCheck2FactoryBinding(Queue mtBusinessDataClerkCheck2FactoryQueue, CustomExchange mtBusinessDataClerkCheck2FactoryExchange) {
return BindingBuilder.bind(mtBusinessDataClerkCheck2FactoryQueue).to(mtBusinessDataClerkCheck2FactoryExchange).with(RabbitConstant.MT_BUSINESS_DATA_CLERK_CHECK_2_FACTORY_ROUTING).noargs();
}
@Bean
public CustomExchange mtBusinessDataClerkCheck2FactoryExchange() {
Map<String, Object> args =Maps.newHashMap();
/**************梦天扫描延迟推送 end****************/
args.put("x-delayed-type", "direct");
return new CustomExchange(RabbitConstant.MT_BUSINESS_DATA_CLERK_CHECK_2_FACTORY_EXCHANGE,
"x-delayed-message", true, false, args);
@Bean
public Queue normalQueue() {
return new Queue("normal_queue", true);
}
@Bean
public Binding mtBusinessDataClerkCheck2FactoryBinding(Queue mtBusinessData2FactoryQueue, CustomExchange mtBusinessData2FactoryExchange) {
return BindingBuilder.bind(mtBusinessData2FactoryQueue).to(mtBusinessData2FactoryExchange).with(RabbitConstant.MT_BUSINESS_DATA_CLERK_CHECK_2_FACTORY_ROUTING).noargs();
public CustomExchange normalExchange() {
Map<String, Object> args = Maps.newHashMap();
args.put("x-delayed-type", "direct");
return new CustomExchange("normal_exchange", "x-delayed-message", true, false, args);
}
/**************梦天扫描延迟推送 end****************/
@Bean
public Binding normalBinding(Queue normalQueue, CustomExchange normalExchange) {
return BindingBuilder.bind(normalQueue).to(normalExchange).with("normal_routerkey").noargs();
}
}

8
blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/feign/MtOrderMainClinet.java

@ -56,11 +56,11 @@ public class MtOrderMainClinet implements IMtOrderMainClinet {
log.info(">>>>>>>>>>>>>>>>> 司机扫描 {}", DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss.SSS"));
rabbitTemplate.convertAndSend(RabbitConstant.MT_BUSINESS_DATA_2_FACTORY_EXCHANGE,RabbitConstant.MT_BUSINESS_DATA_2_FACTORY_ROUTING, map,message -> {
/* rabbitTemplate.convertAndSend(RabbitConstant.MT_BUSINESS_DATA_2_FACTORY_EXCHANGE,RabbitConstant.MT_BUSINESS_DATA_2_FACTORY_ROUTING, map,message -> {
message.getMessageProperties()
.setHeader("x-delay", 5000);
return message;
});
});*/
log.info(">>>>>>>>>>>>>>>>> 司机扫描 {}", DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss.SSS"));
@ -77,11 +77,11 @@ public class MtOrderMainClinet implements IMtOrderMainClinet {
map.put("messageData",mes);
log.info(">>>>>>>>>>>>>>>>> 文员复核 {}", DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss.SSS"));
rabbitTemplate.convertAndSend(RabbitConstant.MT_BUSINESS_DATA_CLERK_CHECK_2_FACTORY_EXCHANGE,RabbitConstant.MT_BUSINESS_DATA_CLERK_CHECK_2_FACTORY_ROUTING, map,message -> {
/* rabbitTemplate.convertAndSend(RabbitConstant.MT_BUSINESS_DATA_CLERK_CHECK_2_FACTORY_EXCHANGE,RabbitConstant.MT_BUSINESS_DATA_CLERK_CHECK_2_FACTORY_ROUTING, map,message -> {
message.getMessageProperties()
.setHeader("x-delay", 5000);
return message;
});
});*/
return R.success("");

2
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java

@ -653,7 +653,7 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService {
factoryPackageService.updateById(factoryPackageEntity);
}
}
System.out.println("物流状态传递成功");
log.info(" >>>>>>>>>>>>>>>>>>>>>>> 物流状态传递成功");
return Resp.success("物流状态传递成功");
}

9
blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java

@ -113,6 +113,7 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService {
private final ITrunklineAdvanceDetailClient trunklineAdvanceDetailClient;
private final IOrderCountClient orderCountClient;
private final BladeRedis redis;
// @Override
// public FactoryTokenVO getToken(String corpId, String appKey, String appSecret) throws NoSuchAlgorithmException {
@ -700,6 +701,7 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService {
entity.setOrderCode(distributionStockArticleEntity.getOrderCode());
entity.setServiceNumber(distributionStockArticleEntity.getServiceNumber());
entity.setWaybillNumber(waybillNo);
entity.setBrandName(distributionStockArticleEntity.getBrand());
// if(ObjectUtil.isNotEmpty(warehouseWaybill)){
// entity.setWarehouseId(warehouseWaybill.getId());
// }
@ -769,11 +771,18 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService {
if (StringUtil.isBlank(waybillNo)) {
return;
}
if(redis.exists("dealwithWaybillNo:"+waybillNo)){
log.info("###########saveWaybillEntity: 已有保存数据 waybillNo={}",waybillNo);
return;
}
//通过运单号先去查询新系统是否存在这个运单号
WarehouseWaybillEntity warehouseWaybill = warehouseWaybillClient.findByWaybillNo(waybillNo);
logger.info("#################handleDataToPlatform.warehouseWaybill: {}", warehouseWaybill);
if (Objects.isNull(warehouseWaybill)) {
redis.setEx("dealwithWaybillNo:"+waybillNo,waybillNo,30L);
//如果新系统中不存在这个运单,那么就去查询老系统的运单数据
WayBillEntity wayBillEntity = wayBillClient.getByWaybillNo(waybillNo);
logger.info("#################handleDataToPlatform.wayBillEntity: {}", wayBillEntity);

7
blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/NewSystemReceiveInfoHandler.java

@ -40,9 +40,12 @@ public class NewSystemReceiveInfoHandler {
// 欧派的订单会进来进行推送
String json = (String) map.get("messageData");
OrderStatusDTO orderStatusDTO = JSON.parseObject(json, OrderStatusDTO.class);
log.info(">>>>>>>>>>>>> {}",json);
log.info("##################receiveInfoHandler:处理签收信息数据 {}",orderStatusDTO);
ouPaiFactoryService.newSystemHandleStatusData(orderStatusDTO);
try {
ouPaiFactoryService.newSystemHandleStatusData(orderStatusDTO);
} catch (Exception e) {
log.error(">>>>>>", e);
}
}
}

37
blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/UnloadCarComHandler.java

@ -24,6 +24,7 @@ import org.springframework.stereotype.Component;
import java.security.NoSuchAlgorithmException;
import java.text.ParseException;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ -79,6 +80,8 @@ public class UnloadCarComHandler {
Map<String, List<MTOrderPackageRelationVO>> stringListMap = allMtData.stream().collect(Collectors.groupingBy(MTOrderPackageRelationVO::getInvoiceOrderCode));
Set<String> set = stringListMap.keySet();
String carNum = null;
Set<String> r = new HashSet<>();
for (String s : set) {
// 得到某个工厂运输批次的集合
List<MTOrderPackageRelationVO> t = stringListMap.get(s);
@ -91,17 +94,16 @@ public class UnloadCarComHandler {
break;
}
}
log.info("##################unloadCarComDataHandler carNum:{}", carNum);
try {
if (StringUtil.isNoneBlank(carNum)) {
sendDataCarNum(carNum, unloadCarDTO.getCompleteDate());
}
} catch (ParseException e) {
log.error("##################unloadCarComDataHandler 解析时间出错:{}", e.getMessage());
} catch (NoSuchAlgorithmException | JsonProcessingException ignored) {
log.error("##################unloadCarComDataHandler 发送数据出错:{}", ignored.getMessage());
}
}
if (StringUtil.isNoneBlank(carNum)) {
r.add(carNum);
}
}
r.forEach(t->{
sendDataCarNum(t, unloadCarDTO.getCompleteDate());
});
} catch (Exception e) {
log.error("##################unloadCarComDataHandler 解析数据出错:{}", e.getMessage());
}
@ -118,7 +120,7 @@ public class UnloadCarComHandler {
* @throws NoSuchAlgorithmException
* @throws JsonProcessingException
*/
private void sendDataCarNum(String carNum, String completeDate) throws ParseException, NoSuchAlgorithmException, JsonProcessingException {
private void sendDataCarNum(String carNum, String completeDate) {
log.info("##################sendDataCarNum carNum:{},completeDate{}", carNum, completeDate);
// 需要判断这个发货单编号是否推送过
@ -129,7 +131,16 @@ public class UnloadCarComHandler {
log.info("##################{} 车次已经推送过", carNum);
return;
}
R r = mtFactoryDataService.sendUnloadCarNum(carNum, completeDate);
try{
R r = mtFactoryDataService.sendUnloadCarNum(carNum, completeDate);
log.info("MT 数据卸车推送 {}",r.getMsg());
}catch (Exception e){
log.error(">>>> 梦天数据卸车推送异常",e);
}
log.info("##################{} 梦天确认签收数据推送1", carNum);
}

4
blade-service/logpm-factory/src/main/resources/application-test.yml

@ -31,10 +31,10 @@ spring:
password: ${blade.datasource.factory.slave.password}
#rabbitmq配置
rabbitmq:
host: 172.16.128.146
host: 192.168.10.106
port: 5672
username: admin
password: Slwk@123654
password: admin@1234.
#虚拟host 可以不设置,使用server默认host
virtual-host: /
#确认消息已发送到队列(Queue)

14
blade-service/logpm-patch/Dockerfile

@ -0,0 +1,14 @@
FROM bladex/alpine-java:openjdk8-openj9_cn_slim
MAINTAINER h5u@163.com
RUN mkdir -p /logpm/patch
WORKDIR /logpm/patch
EXPOSE 19000
ADD ./target/logpm-patch.jar ./app.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
CMD ["--spring.profiles.active=test"]

51
blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncWarehouseData.java

@ -6,6 +6,7 @@ import com.logpm.basicdata.feign.*;
import com.logpm.oldproject.entity.*;
import com.logpm.oldproject.feign.*;
import com.logpm.patch.service.IWarehouseMappingDataService;
import com.logpm.warehouse.feign.IWarehouseWaybillClient;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.AllArgsConstructor;
@ -27,6 +28,8 @@ public class SyncWarehouseData {
private final IBasicdataGoodsAllocationClient basicdataGoodsAllocationClient;//货位
private final IBasicdataTrayClient basicdataTrayClient;//托盘
private final IWarehouseWaybillClient warehouseWaybillClient;
//-----------------老系统
private final IWarehouseClient warehouseClient;//仓库
private final ICargoClient cargoClient;//货区
@ -294,6 +297,54 @@ public class SyncWarehouseData {
}
@XxlJob("clearWaybillData")
public ReturnT<String> clearWaybillData(String param) {
log.info("############clearWaybillData: 清理重复运单数据 param={}", param);
List<String> ls = new ArrayList<>();
if(StringUtil.isNotBlank(param)){
ls.add(param);
}else{
ls = warehouseMappingDataService.findMoreWaybillNo();
}
for (String waybillNo : ls) {
Long waybillId = warehouseMappingDataService.findLastData(waybillNo);
warehouseMappingDataService.deletedByNotId(waybillId,waybillNo);
}
return ReturnT.SUCCESS;
}
@XxlJob("clearAdvanceData")
public ReturnT<String> clearAdvanceData(String param) {
log.info("############clearAdvanceData: 清理重复暂存单数据 param={}", param);
List<String> ls = new ArrayList<>();
if(StringUtil.isNotBlank(param)){
ls.add(param);
}else{
ls = warehouseMappingDataService.findMoreOrderCode();
}
for (String orderCode : ls) {
Long advanceId = warehouseMappingDataService.findAdvanceLastData(orderCode);
warehouseMappingDataService.deletedAdvanceByNotId(advanceId,orderCode);
warehouseMappingDataService.deletedAdcanceDetailByNotId(advanceId,orderCode);
}
return ReturnT.SUCCESS;
}
private boolean saveTrayData(Long newWarehouseId, Integer oldWarehouseId) {
//通过老系统仓库id查询所有托盘信息
List<TrayEntity> trayEntityList = trayClient.getAllTrayByWarehouseId(oldWarehouseId);

14
blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java

@ -32,4 +32,18 @@ public interface WarehouseMappingDataMapper {
List<JSONObject> findAllocationDoubleDataAll();
JSONObject findAllocationDoubleInfoListByOrderPackageCode(@Param("orderPackageCode") String orderPackageCode);
List<String> findMoreWaybillNo();
Long findLastData(@Param("waybillNo") String waybillNo);
void deletedByNotId(@Param("waybillId") Long waybillId,@Param("waybillNo") String waybillNo);
List<String> findMoreOrderCode();
Long findAdvanceLastData(@Param("orderCode") String orderCode);
void deletedAdvanceByNotId(@Param("advanceId") Long advanceId, @Param("orderCode") String orderCode);
void deletedAdcanceDetailByNotId(@Param("advanceId") Long advanceId, @Param("orderCode") String orderCode);
}

50
blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml

@ -83,4 +83,54 @@
limit 1
</select>
<select id="findMoreWaybillNo" resultType="String">
select waybill_no
from logpm_warehouse_waybill
group by waybill_no
HAVING count(id) > 1
</select>
<select id="findLastData" resultType="Long">
select id
from logpm_warehouse_waybill
where waybill_no = #{waybillNo}
order by create_time desc
limit 1
</select>
<delete id="deletedByNotId">
delete from logpm_warehouse_waybill
where waybill_no = #{waybillNo}
and id != #{waybillId}
</delete>
<select id="findMoreOrderCode" resultType="String">
select t.order_code
from (select order_code
from logpm_trunkline_advance_detail
group by order_package_code,order_code
HAVING count(id) > 1) t
group by t.order_code
</select>
<select id="findAdvanceLastData" resultType="Long">
select id
from logpm_trunkline_advance
where order_code = #{orderCode}
order by create_time desc
limit 1
</select>
<delete id="deletedAdvanceByNotId">
delete from logpm_trunkline_advance
where order_code = #{orderCode}
and id != #{advanceId}
</delete>
<delete id="deletedAdcanceDetailByNotId">
delete from logpm_trunkline_advance_detail
where order_code = #{orderCode}
and advance_id != #{advanceId}
</delete>
</mapper>

14
blade-service/logpm-patch/src/main/java/com/logpm/patch/service/IWarehouseMappingDataService.java

@ -28,4 +28,18 @@ public interface IWarehouseMappingDataService {
List<JSONObject> findAllocationDoubleDataAll();
JSONObject findAllocationDoubleInfoListByOrderPackageCode(String orderPackageCode);
List<String> findMoreWaybillNo();
Long findLastData(String waybillNo);
void deletedByNotId(Long waybillId, String waybillNo);
List<String> findMoreOrderCode();
Long findAdvanceLastData(String orderCode);
void deletedAdvanceByNotId(Long advanceId, String orderCode);
void deletedAdcanceDetailByNotId(Long advanceId, String orderCode);
}

10
blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java

@ -37,6 +37,7 @@ import org.springblade.common.constant.order.*;
import org.springblade.common.constant.orderpackage.*;
import org.springblade.common.exception.CustomerException;
import org.springblade.common.utils.CommonUtil;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.stereotype.Service;
@ -81,6 +82,7 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
private final IDetailProductClient detailProductClient;
private final ITrunklineDetailProductClient trunklineDetailProductClient;
private final ITrunklineAdvanceDetailClient trunklineAdvanceDetailClient;
private final BladeRedis redis;
@Transactional(rollbackFor = Exception.class)
@Override
@ -1438,6 +1440,7 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
entity.setWarehouseId(distributionStockArticleEntity.getWarehouseId());
entity.setStockArticleId(distributionStockArticleEntity.getId());
entity.setOrderPackageStatus(OrderPackageStatusConstant.yiruku.getValue());
entity.setBrandName(distributionStockArticleEntity.getBrand());
//状态:1到货,2分拣,3装车,4卸货,5出库,6配送
// if(1 == status){
// entity.setOrderPackageStatus(OrderPackageStatusConstant.yiruku.getValue());
@ -1570,12 +1573,17 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
//如果新系统中不存在这个运单,那么就去查询老系统的运单数据
WayBillEntity wayBillEntity = wayBillClient.getByWaybillNo(waybillNo);
if(redis.exists("dealwithWaybillNo:"+waybillNo)){
log.info("###########saveWaybillEntity: 已有保存数据 waybillNo={}",waybillNo);
return null;
}
//通过运单号先去查询新系统是否存在这个运单号
WarehouseWaybillEntity warehouseWaybill = warehouseWaybillClient.findByWaybillNo(waybillNo);
log.info("#################handleDataToPlatform.warehouseWaybill: {}", warehouseWaybill);
if (Objects.isNull(warehouseWaybill)) {
redis.setEx("dealwithWaybillNo:"+waybillNo,waybillNo,30L);
log.info("#################handleDataToPlatform.wayBillEntity: {}", wayBillEntity);
if (Objects.isNull(wayBillEntity)) {
log.warn("##############saveWaybillEntity: 老系统中未找到对应运单waybillNo={}", waybillNo);

35
blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/WarehouseMappingDataServiceImpl.java

@ -71,4 +71,39 @@ public class WarehouseMappingDataServiceImpl implements IWarehouseMappingDataSer
public JSONObject findAllocationDoubleInfoListByOrderPackageCode(String orderPackageCode) {
return warehouseMappingDataMapper.findAllocationDoubleInfoListByOrderPackageCode(orderPackageCode);
}
@Override
public List<String> findMoreWaybillNo() {
return warehouseMappingDataMapper.findMoreWaybillNo();
}
@Override
public Long findLastData(String waybillNo) {
return warehouseMappingDataMapper.findLastData(waybillNo);
}
@Override
public void deletedByNotId(Long waybillId, String waybillNo) {
warehouseMappingDataMapper.deletedByNotId(waybillId,waybillNo);
}
@Override
public List<String> findMoreOrderCode() {
return warehouseMappingDataMapper.findMoreOrderCode();
}
@Override
public Long findAdvanceLastData(String orderCode) {
return warehouseMappingDataMapper.findAdvanceLastData(orderCode);
}
@Override
public void deletedAdvanceByNotId(Long advanceId, String orderCode) {
warehouseMappingDataMapper.deletedAdvanceByNotId(advanceId,orderCode);
}
@Override
public void deletedAdcanceDetailByNotId(Long advanceId, String orderCode) {
warehouseMappingDataMapper.deletedAdcanceDetailByNotId(advanceId,orderCode);
}
}

14
blade-service/logpm-trunkline/Dockerfile

@ -0,0 +1,14 @@
FROM bladex/alpine-java:openjdk8-openj9_cn_slim
MAINTAINER h5u@163.com
RUN mkdir -p /logpm/trunkline
WORKDIR /logpm/trunkline
EXPOSE 8700
ADD ./target/logpm-trunkline.jar ./app.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
CMD ["--spring.profiles.active=test"]

24
blade-service/logpm-trunkline/pom.xml

@ -71,5 +71,29 @@
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<configuration>
<username>${docker.username}</username>
<password>${docker.password}</password>
<repository>${docker.registry.url}/${docker.namespace}/${project.artifactId}</repository>
<tag>${project.version}</tag>
<useMavenSettingsForAuth>true</useMavenSettingsForAuth>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
<skip>false</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

69
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/BillladingApiController.java

@ -6,6 +6,8 @@ import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.trunkline.dto.BillladingDTO;
import com.logpm.trunkline.service.ITrunklineBillladingService;
import com.logpm.trunkline.vo.TrunklineBillladingDetailListVO;
import com.logpm.trunkline.vo.TrunklineBillladingDetailVO;
import com.logpm.trunkline.vo.TrunklineBillladingVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -13,6 +15,7 @@ import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.exception.CustomerException;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.web.bind.annotation.*;
import java.util.Objects;
@ -58,4 +61,70 @@ public class BillladingApiController {
}
@ResponseBody
@PostMapping("/billladingList")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "提货列表", notes = "传入billladingDTO")
public R billladingList(@RequestBody BillladingDTO billladingDTO) {
String method = "############billladingList: ";
log.info(method+"请求参数{}",billladingDTO);
try{
//当前登录人选择的仓库
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(Objects.isNull(myCurrentWarehouse)){
log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse);
return R.fail(403,"仓库信息为空");
}
billladingDTO.setWarehouseId(myCurrentWarehouse.getId());
IPage<TrunklineBillladingDetailVO> pages = billladingService.billladingList(billladingDTO);
return R.data(pages);
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);
}catch (Exception e){
log.error("############sendOrders: 系统异常",e);
return R.fail(500,"############sendOrders: 系统异常");
}
}
@ResponseBody
@PostMapping("/findAdvanceDetailList")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "查询暂存单明细列表", notes = "传入billladingDTO")
public R findAdvanceDetailList(@RequestBody BillladingDTO billladingDTO) {
String method = "############findAdvanceDetailList: ";
log.info(method+"请求参数{}",billladingDTO);
String orderCode = billladingDTO.getOrderCode();
try{
//当前登录人选择的仓库
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(Objects.isNull(myCurrentWarehouse)){
log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse);
return R.fail(403,"仓库信息为空");
}
billladingDTO.setWarehouseId(myCurrentWarehouse.getId());
if(StringUtil.isBlank(orderCode)){
log.warn(method+"订单号为空 orderCode={}",orderCode);
return R.fail(403,"订单号为空");
}
IPage<TrunklineBillladingDetailListVO> pages = billladingService.findAdvanceDetailList(billladingDTO);
return R.data(pages);
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);
}catch (Exception e){
log.error("############sendOrders: 系统异常",e);
return R.fail(500,"############sendOrders: 系统异常");
}
}
}

2
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/BillladingController.java

@ -151,7 +151,7 @@ public class BillladingController {
return R.fail(405,"预计体积不能为空");
}
trunklineBillladingService.saveNew(billladingDTO,myCurrentWarehouse.getCode());
trunklineBillladingService.saveNew(billladingDTO,myCurrentWarehouse.getWarehouseCode());
return R.success("新增成功");
}catch (CustomerException e){
log.error(e.message,e);

6
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/CarsLoadController.java

@ -417,7 +417,7 @@ public class CarsLoadController {
public R removeCarsOrderByCarsOrderId(@RequestBody LoadCarsDTO loadCarsDTO) {
String method = "############removeCarsOrderByCarsOrderId: ";
log.info(method+"请求参数{}",loadCarsDTO);
Long carsOrderId = loadCarsDTO.getCarsOrderId();
String carsOrderIds = loadCarsDTO.getCarsOrderIds();
try{
//当前登录人选择的仓库
@ -427,8 +427,8 @@ public class CarsLoadController {
return R.fail(400,"仓库信息为空");
}
loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId());
if(Objects.isNull(carsOrderId)){
log.warn(method+"节点订单id为空 carsOrderId={}",carsOrderId);
if(StringUtil.isBlank(carsOrderIds)){
log.warn(method+"节点订单id为空 carsOrderIds={}",carsOrderIds);
return R.fail(400,"节点订单id为空");
}

2
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.java

@ -27,4 +27,6 @@ public interface TrunklineAdvanceDetailMapper extends BaseMapper<TrunklineAdvanc
List<BillladingPackageVO> findBillladingPackageByAdvanceIdsAnd(@Param("list") List<Long> advanceIds);
IPage<TrunklineAdvanceDetailVO> advanceDetailPageList(IPage<Object> page, @Param("param") AdvanceDetailDTO advanceDetailDTO);
Integer getIncomingNum(@Param("advanceId") Long advanceId);
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save