Browse Source

Merge branch 'pre-production'

newStockUp
pref_mail@163.com 2 years ago
parent
commit
aaa6483186
  1. 17
      blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java
  2. 8
      blade-service-api/logpm-basicdata-api/pom.xml
  3. 47
      blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataTripartiteWarehouseEntity.java
  4. 59
      blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataTripartiteWarehouseClient.java
  5. 5
      blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/vo/BasicdataStockArticleVO.java
  6. 170
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionLoadscanAbnormalEntity.java
  7. 12
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionLoadscanEntity.java
  8. 49
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionLoadscanAbnormalClient.java
  9. 2
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java
  10. 35
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionLoadscanAbnormalVO.java
  11. 32
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionSignforVO.java
  12. 4
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockArticleQRCodeVO.java
  13. 26
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockListVO.java
  14. 1
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupSelfVO.java
  15. 8
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupStockListVO.java
  16. 4
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupTrayVO.java
  17. 23
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppReservationVO.java
  18. 2
      blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/oupai/entity/FactoryPackageEntity.java
  19. 2
      blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IWarehouseClient.java
  20. 12
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/WarehouseWarehousingEntryEntity.java
  21. 2
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseTrayGoodsClient.java
  22. 4
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseTrayTypeClient.java
  23. 4
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseUpdownGoodsClient.java
  24. 1
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/ParcelListVO.java
  25. 3
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TrayTypeDataVO.java
  26. 40
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseShelfVO.java
  27. 16
      blade-service/logpm-basic/src/main/java/com/logpm/basic/controller/BasicMaterialController.java
  28. 41
      blade-service/logpm-basic/src/main/resources/application-prod.yml
  29. 14
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataWarehouseController.java
  30. 2
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataClientClient.java
  31. 31
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataTripartiteWarehouseClient.java
  32. 35
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataTrayMapper.xml
  33. 10
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataTripartiteWarehouseMapper.java
  34. 7
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataTripartiteWarehouseMapper.xml
  35. 40
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataTripartiteWarehouseService.java
  36. 2
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataWarehouseService.java
  37. 13
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTripartiteWarehouseServiceImpl.java
  38. 14
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataWarehouseServiceImpl.java
  39. 41
      blade-service/logpm-basicdata/src/main/resources/application-prod.yml
  40. 13
      blade-service/logpm-distribution/pom.xml
  41. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionAddvalueAppController.java
  42. 39
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionDeliveryAppController.java
  43. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionSignforAppController.java
  44. 144
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java
  45. 19
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/config/RedissonConfig.java
  46. 20
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java
  47. 150
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionLoadscanAbnormalController.java
  48. 15
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockupController.java
  49. 34
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionLoadscanAbnormalDTO.java
  50. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionStockDTO.java
  51. 3
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockupDTO.java
  52. 213
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionLoadscanAbnormalExcel.java
  53. 53
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionLoadscanAbnormalClient.java
  54. 5
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java
  55. 10
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryInfoMapper.java
  56. 57
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryInfoMapper.xml
  57. 54
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanAbnormalMapper.java
  58. 54
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanAbnormalMapper.xml
  59. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java
  60. 15
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml
  61. 3
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java
  62. 64
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml
  63. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationPackageMapper.xml
  64. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSigndetailMapper.xml
  65. 10
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml
  66. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml
  67. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.java
  68. 11
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.xml
  69. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockMapper.xml
  70. 18
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.java
  71. 104
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml
  72. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillStockMapper.java
  73. 48
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillStockMapper.xml
  74. 31
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java
  75. 52
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionLoadscanAbnormalService.java
  76. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationPackageService.java
  77. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockListService.java
  78. 31
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockupService.java
  79. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillStockService.java
  80. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
  81. 1159
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  82. 54
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionLoadscanAbnormalServiceImpl.java
  83. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java
  84. 98
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java
  85. 385
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java
  86. 5
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java
  87. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockListServiceImpl.java
  88. 5
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockServiceImpl.java
  89. 262
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java
  90. 18
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java
  91. 5
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillStockServiceImpl.java
  92. 52
      blade-service/logpm-distribution/src/main/resources/application-prod.yml
  93. 40
      blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/controller/FactoryCommonController.java
  94. 12
      blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/dto/MessageDTO.java
  95. 40
      blade-service/logpm-factory/src/main/java/com/logpm/factory/config/RabbitMqConfiguration.java
  96. 36
      blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/SyncWarehouseDataToNew.java
  97. 2
      blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/impl/MtFactoryDataServiceImpl.java
  98. 174
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/receiver/OpOldReceivingDataHandler.java
  99. 33
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/receiver/OpReceivingDataHandler.java
  100. 1
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/IOuPaiFactoryService.java
  101. Some files were not shown because too many files have changed in this diff Show More

17
blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java

@ -35,7 +35,7 @@ public interface RabbitConstant {
*/
String UNLOAD_CAR_COM_INFO_QUEUE = "unload_car_com_info_quere";
String UNLOAD_CAR_COM_INFO_EXCHANGE = "unload_car_com_info_exchange";
String UNLOAD_CAR_COM_INFO_ROUTING = "unload_car_com_info_routing ";
String UNLOAD_CAR_COM_INFO_ROUTING = "unload_car_com_info_routing ";
String WAYBILL_DATA_QUEUE = "waybill_data_queue";
@ -54,11 +54,22 @@ public interface RabbitConstant {
String OUPAI_RECEIVING_QUEUE = "oupai_receiving_queue";
String OUPAI_RECEIVING_EXCHANGE = "oupai_receiving_exchange";
String OUPAI_RECEIVING_ROUTING = "oupai_receiving_routing";
String OUPAI_RECEIVING_ROUTING = "oupai_receiving_routing";
/****************************收货入库 老系统 start ************************************************/
String OUPAI_OLD_RECEIVING_QUEUE = "oupai_old_receiving_queue";
String OUPAI_OLD_RECEIVING_EXCHANGE = "oupai_old_receiving_exchange";
String OUPAI_OLD_RECEIVING_ROUTING = "oupai_old_receiving_routing";
/****************************收货入库 老系统 end ************************************************/
String OUPAI_SIGN_QUEUE = "oupai_sign_queue";
String OUPAI_SIGN_EXCHANGE = "oupai_sign_exchange";
String OUPAI_SIGN_ROUTING = "oupai_sign_routing";
String OUPAI_SIGN_ROUTING = "oupai_sign_routing";
String SYNC_OLD_DATA_QUEUE = "sync_old_data_queue";
String SYNC_OLD_DATA_EXCHANGE = "sync_old_data_exchange";
String SYNC_OLD_DATA_ROUTING = "sync_old_data_routing";
//----------------------distribution---------------------
//备货消费失败队列

8
blade-service-api/logpm-basicdata-api/pom.xml

@ -13,6 +13,12 @@
<groupId>org.springblade</groupId>
<artifactId>logpm-basicdata-api</artifactId>
<version>3.1.0.RELEASE</version>
<dependencies>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
</dependencies>
</project>

47
blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataTripartiteWarehouseEntity.java

@ -0,0 +1,47 @@
package com.logpm.basicdata.entity;
import cn.hutool.db.meta.Table;
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_basicdata_tripartite_warehouse")
@ApiModel(value = "三方仓库", description = "三方仓库")
@EqualsAndHashCode(callSuper = true)
public class BasicdataTripartiteWarehouseEntity 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 ;
/** 三方仓库编码 */
@ApiModelProperty(name = "三方仓库编码",notes = "")
private String warehouseCode ;
/** 三方仓库名称 */
@ApiModelProperty(name = "三方仓库名称",notes = "")
private String warehouseName ;
/** 关联仓库编码 */
@ApiModelProperty(name = "关联仓库编码",notes = "")
private String associationCode ;
/** 地址 */
@ApiModelProperty(name = "地址",notes = "")
private String address ;
/** 品牌 */
@ApiModelProperty(name = "品牌",notes = "")
private String brand ;
}

59
blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataTripartiteWarehouseClient.java

@ -0,0 +1,59 @@
/*
* 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.basicdata.feign;
import com.logpm.basicdata.entity.BasicdataTripartiteWarehouseEntity;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import org.springblade.common.constant.ModuleNameConstant;
import org.springblade.core.mp.support.BladePage;
import org.springblade.core.tool.api.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* 三方
*
* @author pref
* @since 2023-09-25
*/
@FeignClient(
value = ModuleNameConstant.APPLICATION_BASICDATA_NAME
)
public interface IBasicdataTripartiteWarehouseClient {
String API_PREFIX = "tripartiteWarehouse/client";
String GETWAREHOUSE = API_PREFIX + "/warehouse";
/**
* 通过三方仓库名称 查询 汇通仓库的编码
* @param warehouseName 三方仓库名称
* @param warehouseCode 三方仓库编码
* @return BasicdataTripartiteWarehouseEntity
*/
@GetMapping(GETWAREHOUSE)
BasicdataTripartiteWarehouseEntity getWarehouse(@RequestParam("warehouseName") String warehouseName, @RequestParam("warehouseCode") String warehouseCode);
}

5
blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/vo/BasicdataStockArticleVO.java

@ -145,7 +145,10 @@ public class BasicdataStockArticleVO extends BasicdataStockArticleEntity {
@ApiModelProperty(value = "完整货位")
private String positionCode;
@ApiModelProperty(name = "数量",notes = "")
private Integer num;
@ApiModelProperty(name = "运单号",notes = "")
private String waybillNo;
/**
* 是否齐套名称
*/

170
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionLoadscanAbnormalEntity.java

@ -0,0 +1,170 @@
/*
* 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.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
/**
* 异常装车扫描表 实体类
*
* @author BladeX
* @since 2023-09-22
*/
@Data
@TableName("logpm_distribution_loadscan_abnormal")
@ApiModel(value = "DistributionLoadscanAbnormal对象", description = "异常装车扫描表")
@EqualsAndHashCode(callSuper = true)
public class DistributionLoadscanAbnormalEntity extends TenantEntity {
/**
* 预约ID
*/
@ApiModelProperty(value = "预约ID")
private String reservationId;
/**
* 配送管理ID
*/
@ApiModelProperty(value = "配送管理ID")
private String deliveryListId;
/**
* 包件ID
*/
@ApiModelProperty(value = "包件ID")
private String packageId;
/**
* 订单ID
*/
@ApiModelProperty(value = "订单ID")
private String stockArticleId;
/**
* 扫描操作人
*/
@ApiModelProperty(value = "扫描操作人")
private String sacnUser;
/**
* 扫描操作时间
*/
@ApiModelProperty(value = "扫描操作时间")
private String scanTime;
/**
* 包条码
*/
@ApiModelProperty(value = "包条码")
private String packageCode;
/**
* 车次号
*/
@ApiModelProperty(value = "车次号")
private String trainNumber;
/**
* 司机ID
*/
@ApiModelProperty(value = "司机ID")
private String driverId;
/**
* 司机名称
*/
@ApiModelProperty(value = "司机名称")
private String driverName;
/**
* 车辆ID
*/
@ApiModelProperty(value = "车辆ID")
private String vehicleId;
/**
* 车牌号
*/
@ApiModelProperty(value = "车牌号")
private String vehicleName;
/**
* 司机电话
*/
@ApiModelProperty(value = "司机电话")
private String driverPhone;
/**
* 仓库Id
*/
@ApiModelProperty(value = "仓库Id")
private String warehouseId;
/**
* 仓库名称
*/
@ApiModelProperty(value = "仓库名称")
private String warehouseName;
/**
* 审核人
*/
@ApiModelProperty(value = "审核人")
private String auditingUser;
/**
* 审核时间
*/
@ApiModelProperty(value = "审核时间")
private String auditingTime;
/**
* 包件配送类型 1 - 商配 2-市配
*/
@ApiModelProperty(value = "包件配送类型 1 - 商配 2-市配")
private String deliveryType;
/**
* 备注
*/
@ApiModelProperty(value = "备注")
private String remarks;
/**
* 审核状态 1-未审核 2- 已审核 3 - 异常
*/
@ApiModelProperty(value = "审核状态 1-未审核 2- 已审核 3 - 异常")
private String auditingStatus;
/**
* 装车数量
*/
@ApiModelProperty(value = "装车数量")
private String loadingQuantity;
/**
* 预留1
*/
@ApiModelProperty(value = "预留1")
private String reserve1;
/**
* 预留2
*/
@ApiModelProperty(value = "预留2")
private String reserve2;
/**
* 预留3
*/
@ApiModelProperty(value = "预留3")
private String reserve3;
/**
* 预留4
*/
@ApiModelProperty(value = "预留4")
private String reserve4;
/**
* 预留5
*/
@ApiModelProperty(value = "预留5")
private String reserve5;
}

12
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionLoadscanEntity.java

@ -335,4 +335,16 @@ public class DistributionLoadscanEntity extends TenantEntity {
*/
@ApiModelProperty(value = "签收人Id")
private Long signingUserId;
/**
* 是否异常签收 1- 2-
*/
@ApiModelProperty(value = "是否异常签收 1-否 2-是")
private Long isAbnormalSigning;
/**
* 是否异常装车 1- 2-
*/
@ApiModelProperty(value = "是否异常装车 1-否 2-是")
private Long isAbnormalLoading;
}

49
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionLoadscanAbnormalClient.java

@ -0,0 +1,49 @@
/*
* 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.feign;
import com.logpm.distribution.entity.DistributionLoadscanAbnormalEntity;
import org.springblade.core.mp.support.BladePage;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* 异常装车扫描表 Feign接口类
*
* @author BladeX
* @since 2023-09-22
*/
@FeignClient(
value = "loadscanAbnormal"
)
public interface IDistributionLoadscanAbnormalClient {
String API_PREFIX = "loadscanAbnormal/client";
String TOP = API_PREFIX + "/top";
/**
* 获取异常装车扫描表列表
*
* @param current 页号
* @param size 页数
* @return BladePage
*/
@GetMapping(TOP)
BladePage<DistributionLoadscanAbnormalEntity> loadscanAbnormalTop(@RequestParam("current") Integer current, @RequestParam("size") Integer size);
}

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

@ -74,4 +74,6 @@ public interface IDistributionParcelListClient {
@GetMapping(API_PREFIX+"/getListByOrderCodeAndgroundingStatus")
List<DistributionParcelListEntity> getListByOrderCodeAndgroundingStatus(@RequestParam String orderCode, @RequestParam String groundingStatus);
@PostMapping(API_PREFIX+"/update")
void update(@RequestBody DistributionParcelListEntity distributionParcelListEntity);
}

35
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionLoadscanAbnormalVO.java

@ -0,0 +1,35 @@
/*
* 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.DistributionLoadscanAbnormalEntity;
import org.springblade.core.tool.node.INode;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 异常装车扫描表 视图实体类
*
* @author BladeX
* @since 2023-09-22
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class DistributionLoadscanAbnormalVO extends DistributionLoadscanAbnormalEntity {
private static final long serialVersionUID = 1L;
}

32
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionSignforVO.java

@ -106,6 +106,38 @@ public class DistributionSignforVO extends DistributionSignforEntity {
@ApiModelProperty(value = "仓库ids")
private List<Long> warehouseIdList;
/**
* 配送车次
*/
@ApiModelProperty(value = "配送车次")
private String trainNumber;
/**
* 配送车牌号
*/
@ApiModelProperty(value = "配送车牌号")
private String vehicleName;
/**
* 配送司机
*/
@ApiModelProperty(value = "配送司机")
private String driverName;
/**
* 装车班组
*/
@ApiModelProperty(value = "装车班组")
private String loadingTeamName;
/**
* 卸车班组
*/
@ApiModelProperty(value = "卸车班组")
private String unLoadingTeamName;
/**
* 客户订单列表
*/

4
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockArticleQRCodeVO.java

@ -33,9 +33,9 @@ import java.util.Map;
public class DistributionStockArticleQRCodeVO {
/**
* 物料名称
* 订单号
*/
@ApiModelProperty(value = "物料名称")
@ApiModelProperty(value = "订单号")
private String orderCode;
/**
* 已备货数量

26
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockListVO.java

@ -21,6 +21,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 库存品管理 视图实体类
*
@ -70,5 +72,29 @@ public class DistributionStockListVO extends DistributionStockListEntity {
@ApiModelProperty(value = "托盘数量")
private String trayQuantity;
/**
* 备货时间
*/
@ApiModelProperty(value = "备货时间")
private Date stockupDate;
/**
* 备货区域
*/
@ApiModelProperty(value = "备货区域")
private String stockupArea;
/**
* 包装数量
*/
@ApiModelProperty(value = "包装数量")
private String packageNum;
/**
* 以备件数
*/
@ApiModelProperty(value = "以备件数")
private Integer stockupNum;
}

1
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupSelfVO.java

@ -22,6 +22,7 @@ public class DistributionStockupSelfVO {
private Long ldsId; // 扫码ID
private Long allocationId; // 货位ID
private Long parcelListId; // 包件ID
private Long stockArticleId; // 订单ID
}

8
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupStockListVO.java

@ -7,10 +7,14 @@ import java.io.Serializable;
@Data
public class DistributionStockupStockListVO implements Serializable {
private Long stockListId;
private Long stockListId;//库存品id
private Long allocationId;//库存品id
private String allocation;//货位
private Long deliveryDetailsId; //自提库存品id
private String allocation;//货位
private boolean completeStact;//货位配货状态
private String materialName;//物品名称
private String sku;//sku

4
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupTrayVO.java

@ -14,5 +14,9 @@ import java.io.Serializable;
public class DistributionStockupTrayVO implements Serializable {
private String associationId; //包件ID
private String associationValue; // 包件编码
private String positionCode; // 包件编码
private String allocationId; // 包件编码
private String allocationTitle; // 包件编码
private String num; // 包件编码
}

23
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppReservationVO.java

@ -74,6 +74,29 @@ public class DistributionAppReservationVO extends DistributionReservationEntity
@ApiModelProperty(value = "备货地址")
private String stockupArea;
/**
* 托盘数量
*/
@ApiModelProperty(value = "托盘数量")
private Integer trayNum;
/**
* 托盘ID
*/
@ApiModelProperty(value = "托盘ID")
private Long trayId;
/**
* 托盘码
*/
@ApiModelProperty(value = "托盘码")
private String trayCode;
/**
* 货物名称
*/
@ApiModelProperty(value = "货物名称")
private String goodsNames;

2
blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/oupai/entity/FactoryPackageEntity.java

@ -98,6 +98,8 @@ public class FactoryPackageEntity extends BaseEntity {
/** 推送状态 1推送 0未推送 */
@ApiModelProperty(name = "推送状态 1推送 0未推送",notes = "")
private Integer pushStatus ;
@ApiModelProperty(name = "老系统推送状态 1推送 0未推送 2 推送失败",notes = "")
private Integer oldPushStatus;
/** 转发状态 1转送 0未转送 */
@ApiModelProperty(name = "转发状态 1转送 0未转送 2 转送失败",notes = "")
private Integer turnStatus ;

2
blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IWarehouseClient.java

@ -57,7 +57,7 @@ public interface IWarehouseClient {
WarehouseEntity findByName(@RequestParam String destinationWarehouse);
@GetMapping("/findByCode")
WarehouseEntity findByCode(String warehouseCode);
WarehouseEntity findByCode(@RequestParam("warehouseCode") String warehouseCode);
@GetMapping("/getAllWarehouseIds")
List<Integer> getAllWarehouseIds();

12
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/WarehouseWarehousingEntryEntity.java

@ -104,10 +104,15 @@ public class WarehouseWarehousingEntryEntity extends TenantEntity {
*/
@ApiModelProperty(value = "所在仓库")
private String warehouse;
/**
* 物流公司
*/
@ApiModelProperty(value = "物流公司")
private String logisticsCompany;
/**
* 物流车次
*/
@ApiModelProperty(value = "物流车次")
@ApiModelProperty(value = "物流运单号")
private String trainNumber;
/**
* 入库车牌
@ -135,6 +140,11 @@ public class WarehouseWarehousingEntryEntity extends TenantEntity {
*/
@ApiModelProperty(value = "存放位置")
private String positions;
/**
* 备注
*/
@ApiModelProperty(value = "备注")
private String remark;
/**
* 客户ID
*/

2
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseTrayGoodsClient.java

@ -68,6 +68,6 @@ public interface IWarehouseTrayGoodsClient {
* @param trayId
*/
@PostMapping(GETTRAYIDLIST)
List<WarehouseTrayGoodsEntity> getTrayIdList(@RequestParam Long trayId);
List<WarehouseTrayGoodsEntity> getTrayIdList(@RequestParam String trayId);
}

4
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseTrayTypeClient.java

@ -17,6 +17,7 @@
package com.logpm.warehouse.feign;
import com.logpm.warehouse.vo.TrayTypeDataVO;
import org.springblade.common.constant.ModuleNameConstant;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
@ -44,4 +45,7 @@ public interface IWarehouseTrayTypeClient {
@PostMapping(TOP+"/delEntityByMasterId")
Boolean removeByMasterId(@RequestParam Long id);
@PostMapping(API_PREFIX+"/selectListByTrayCode")
TrayTypeDataVO selectListByTrayCode(@RequestParam String trayCode);
}

4
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseUpdownGoodsClient.java

@ -40,6 +40,7 @@ public interface IWarehouseUpdownGoodsClient {
String TOP = API_PREFIX + "/top";
String SELECTSTOCKLISTOWE = API_PREFIX + "/selectStockListOwe";
String LOCATIONINFORMATION = API_PREFIX + "/locationInformation";
String LOCATIONSTOCKLISTINFORMATION = API_PREFIX + "/locationStockListInformation";
// /**
// *查询包条
@ -79,4 +80,7 @@ public interface IWarehouseUpdownGoodsClient {
*/
@PostMapping(LOCATIONINFORMATION)
WarehouseUpdownGoodsEntity getLocationInformation(@RequestBody WarehouseUpdownGoodsEntity updownGoodsEntity);
@PostMapping(LOCATIONSTOCKLISTINFORMATION)
WarehouseUpdownGoodsEntity getLocationStockListInformation(@RequestBody WarehouseUpdownGoodsEntity warehouseUpdownGoodsEntity);
}

1
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/ParcelListVO.java

@ -20,5 +20,6 @@ public class ParcelListVO implements Serializable {
private String shelfTitle;//货架
private String allocationTitle;//货位
private Integer isFleeing;//是否窜货 0否 1是
private Integer deletedStatus;//是否可删除 0否 1是
}

3
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TrayTypeDataVO.java

@ -1,5 +1,6 @@
package com.logpm.warehouse.vo;
import com.logpm.warehouse.entity.WarehouseTrayGoodsEntity;
import lombok.Data;
import java.io.Serializable;
@ -34,4 +35,6 @@ public class TrayTypeDataVO implements Serializable {
private List<TrayTypeDataListVO> list = new ArrayList<>();
private List<WarehouseTrayGoodsEntity> goodsLsit = new ArrayList<>();
}

40
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseShelfVO.java

@ -0,0 +1,40 @@
package com.logpm.warehouse.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class WarehouseShelfVO {
/**
* 总货位
*/
@ApiModelProperty(value = "总货位")
private Integer cargoNub;
/**
* 使用货位
*/
@ApiModelProperty(value = "使用货位")
private Integer employNub;
/**
* 可用货位
*/
@ApiModelProperty(value = "可用货位")
private Integer unusedNub;
/**
* 禁用货位
*/
@ApiModelProperty(value = "禁用货位")
private Integer disableNub;
/**
* 总货数量
*/
@ApiModelProperty(value = "总货数量")
private Integer goodsNub;
/**
* 货位list
*/
@ApiModelProperty(value = "货位list")
private List<WarehouseGoodsAllocationVO> list;
}

16
blade-service/logpm-basic/src/main/java/com/logpm/basic/controller/BasicMaterialController.java

@ -45,6 +45,7 @@ import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -175,6 +176,21 @@ public class BasicMaterialController extends BladeController {
// queryWrapper.lambda().eq(BasicMaterialEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
// List<BasicMaterialExcel> list = basicMaterialService.exportBasicMaterial(queryWrapper);
List<BasicMaterialExcel> list = new ArrayList<>();
//存入模板
BasicMaterialExcel basicMaterialExcel = new BasicMaterialExcel();
basicMaterialExcel.setProductCode("G21214471");
basicMaterialExcel.setName("QD-U50863M-1RD9L2W-2芝华仕-圣多斯沙发-单右贵左双单无沙发组(单右电动/象牙白)");
basicMaterialExcel.setSku("G21214471");
basicMaterialExcel.setProperty("家配");
basicMaterialExcel.setPackagingMaterial("纸箱");
basicMaterialExcel.setPackingSpecification("OP-0322013-1.8慕思.苏斯西雅图软床排骨架条(通配)/1800*2000");
basicMaterialExcel.setExtent("2260");
basicMaterialExcel.setBreadth("1030");
basicMaterialExcel.setAltitude("640");
basicMaterialExcel.setVolume("1.489792");
basicMaterialExcel.setLogpmUnit("1");
basicMaterialExcel.setPackageNum("3");
basicMaterialExcel.setWeight(BigDecimal.valueOf(0));
ExcelUtil.export(response, "物料基础信息数据模板" + DateUtil.time(), "物料基础信息数据模板表", list, BasicMaterialExcel.class);
}

41
blade-service/logpm-basic/src/main/resources/application-prod.yml

@ -3,10 +3,43 @@ server:
port: 8300
#数据源配置
#spring:
# datasource:
# url: ${blade.datasource.dev.url}
# username: ${blade.datasource.dev.username}
# password: ${blade.datasource.dev.password}
spring:
#排除DruidDataSourceAutoConfigure
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
url: ${blade.datasource.prod.url}
username: ${blade.datasource.prod.username}
password: ${blade.datasource.prod.password}
dynamic:
druid:
#通用校验配置
validation-query: select 1
#启用sql日志拦截器
proxy-filters:
- sqlLogInterceptor
#设置默认的数据源或者数据源组,默认值即为master
primary: master
datasource:
master:
druid:
#独立校验配置
validation-query: select 1
#oracle校验
#validation-query: select 1 from dual
url: ${blade.datasource.basic.master.url}
username: ${blade.datasource.basic.master.username}
password: ${blade.datasource.basic.master.password}
slave:
druid:
#独立校验配置
validation-query: select 1
#oracle校验
#validation-query: select 1 from dual
url: ${blade.datasource.basic.slave.url}
username: ${blade.datasource.basic.slave.username}
password: ${blade.datasource.basic.slave.password}

14
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataWarehouseController.java

@ -25,6 +25,8 @@ import com.logpm.basicdata.excel.BasicdataWarehouseExcel;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.basicdata.service.IBasicdataWarehouseService;
import com.logpm.basicdata.vo.BasicdataWarehouseVO;
import com.logpm.warehouse.entity.WarehouseWarehouseEntity;
import com.logpm.warehouse.entity.WarehouseWarehousingEntryEntity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@ -86,6 +88,18 @@ public class BasicdataWarehouseController extends BladeController {
return R.data(detail);
}
/**
* 仓库入库单 查询所属部门
*/
@GetMapping("/detailWarehouse")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "详情", notes = "传入warehouseWarehousingEntry")
public R<List<BasicdataWarehouseEntity>> detailWarehouse(BasicdataWarehouseEntity BasicdataWarehouseEntity) {
List<BasicdataWarehouseEntity> list = warehouseService.detailWarehouse();
return R.data(list);
}
/**
* 仓库 分页
*/

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

@ -75,7 +75,7 @@ public class BasicdataClientClient implements IBasicdataClientClient {
public BasicdataClientEntity getCustomer(String customerName, String customerCode) {
return basicdataClientService.getOne(Wrappers.<BasicdataClientEntity>query().lambda()
.eq(StringUtils.isNotEmpty(customerName),BasicdataClientEntity::getClientName,customerName)
.eq(StringUtils.isNotEmpty(customerCode),BasicdataClientEntity::getReserve1,customerCode)
.eq(StringUtils.isNotEmpty(customerCode),BasicdataClientEntity::getClientCode,customerCode)
);
}

31
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataTripartiteWarehouseClient.java

@ -0,0 +1,31 @@
package com.logpm.basicdata.feign;
import com.logpm.basicdata.entity.BasicdataTripartiteWarehouseEntity;
import com.logpm.basicdata.service.IBasicdataTripartiteWarehouseService;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
/**
* 三方仓库查询
*/
@ApiIgnore()
@RestController
@AllArgsConstructor
public class BasicdataTripartiteWarehouseClient implements IBasicdataTripartiteWarehouseClient {
private final IBasicdataTripartiteWarehouseService basicdataTripartiteWarehouseService;
@Override
public BasicdataTripartiteWarehouseEntity getWarehouse(String warehouseName, String warehouseCode) {
// 暂时 先用名称进行匹配
List<BasicdataTripartiteWarehouseEntity> list = basicdataTripartiteWarehouseService.lambdaQuery().eq(BasicdataTripartiteWarehouseEntity::getWarehouseName, warehouseName).list();
if (list.isEmpty()) {
return null;
}
return list.get(0);
}
}

35
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataTrayMapper.xml

@ -206,20 +206,23 @@
</select>
<select id="selectlclList" resultType="com.logpm.basicdata.vo.BasicdataStockArticleVO">
SELECT
ldsa.dealer_name dealerName,
ldsa.waybill_number waybillNumber,
ldsa.dealer_code dealerCode,
ldsa.consignee_person consigneePerson,
ldsa.consignee_address consigneeAddress,
lww.consignee dealerName,
lww.waybill_no waybillNo,
ldsa.dealer_code dealerCode,
lww.consignee_name consigneePerson,
lww.consignee_address consigneeAddress,
lww.consignee_mobile consigneeMobile,
lwug.position_code positionCode,
lwga.column_num columnNum,
lwga.layer_num layerNum,
lwga.column_num columnNum,
lwga.layer_num layerNum,
lwtg.num num,
lwtg.create_time operateTime,
lwtg.create_user operateUser
FROM
logpm_warehouse_tray_goods lwtg
JOIN logpm_distribution_stock_article ldsa ON lwtg.association_id = ldsa.id
left join (logpm_warehouse_updown_goods lwug join logpm_warehouse_goods_allocation lwga on lwug.allocation_id =lwga.id) on lwug.association_id = ldsa.id
logpm_warehouse_tray_goods lwtg
JOIN logpm_distribution_stock_article ldsa ON lwtg.association_id = ldsa.id
LEFT join logpm_warehouse_waybill lww on lww.waybill_no = ldsa.waybill_number
LEFT JOIN ( logpm_warehouse_updown_goods lwug JOIN logpm_warehouse_goods_allocation lwga ON lwug.allocation_id = lwga.id ) ON lwug.association_id = ldsa.id
<where>
ldsa.is_deleted = 0 and lwtg.is_deleted = 0 and lwtg.association_type = 1 and lwtg.tray_id = #{param.id}
<if test="param.dealerName !=null and param.dealerName != ''">
@ -356,11 +359,12 @@
</select>
<select id="selectlclListhistory" resultType="com.logpm.basicdata.vo.BasicdataStockArticleVO">
SELECT
ldsa.dealer_name dealerName,
ldsa.waybill_number waybillNumber,
ldsa.dealer_code dealerCode,
ldsa.consignee_person consigneePerson,
ldsa.consignee_address consigneeAddress,
lww.consignee dealerName,
lww.waybill_no waybillNo,
ldsa.dealer_code dealerCode,
lww.consignee_name consigneePerson,
lww.consignee_address consigneeAddress,
lww.consignee_mobile consigneeMobile,
lwug.position_code positionCode,
lwga.column_num columnNum,
lwga.layer_num layerNum,
@ -375,6 +379,7 @@
FROM
logpm_warehouse_tray_goods_log lwtgl
JOIN logpm_distribution_stock_article ldsa ON lwtgl.association_id = ldsa.id
LEFT join logpm_warehouse_waybill lww on lww.waybill_no = ldsa.waybill_number
left join (logpm_warehouse_updown_goods lwug join logpm_warehouse_goods_allocation lwga on lwug.allocation_id =lwga.id) on lwug.association_id = ldsa.id
<where>
ldsa.is_deleted = 0 and lwtgl.is_deleted = 0 and lwtgl.association_type = 1 and lwtgl.tray_id = #{param.id}

10
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataTripartiteWarehouseMapper.java

@ -0,0 +1,10 @@
package com.logpm.basicdata.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.logpm.basicdata.entity.BasicdataTripartiteMallEntity;
import com.logpm.basicdata.entity.BasicdataTripartiteWarehouseEntity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface BasicdataTripartiteWarehouseMapper extends BaseMapper<BasicdataTripartiteWarehouseEntity> {
}

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

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.logpm.basicdata.mapper.BasicdataTripartiteWarehouseMapper">
</mapper>

40
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataTripartiteWarehouseService.java

@ -0,0 +1,40 @@
/*
* 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.basicdata.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.basicdata.entity.BasicdataTripartiteWarehouseEntity;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.excel.BasicdataWarehouseExcel;
import com.logpm.basicdata.vo.BasicdataWarehouseVO;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
import java.util.List;
/**
* 三方仓库服务类
*
* @author pref
* @since 2023-09-25
*/
public interface IBasicdataTripartiteWarehouseService extends BaseService<BasicdataTripartiteWarehouseEntity> {
}

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

@ -128,4 +128,6 @@ public interface IBasicdataWarehouseService extends BaseService<BasicdataWarehou
* 无权限仓库查询
*/
List<BasicdataWarehouseEntity> warehouseListqx();
List<BasicdataWarehouseEntity> detailWarehouse();
}

13
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTripartiteWarehouseServiceImpl.java

@ -0,0 +1,13 @@
package com.logpm.basicdata.service.impl;
import com.logpm.basicdata.entity.BasicdataTripartiteWarehouseEntity;
import com.logpm.basicdata.mapper.BasicdataTripartiteWarehouseMapper;
import com.logpm.basicdata.service.IBasicdataTripartiteWarehouseService;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
@Service
@AllArgsConstructor
public class BasicdataTripartiteWarehouseServiceImpl extends BaseServiceImpl<BasicdataTripartiteWarehouseMapper, BasicdataTripartiteWarehouseEntity> implements IBasicdataTripartiteWarehouseService {
}

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

@ -20,6 +20,7 @@ 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.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
@ -295,4 +296,17 @@ public class BasicdataWarehouseServiceImpl extends BaseServiceImpl<BasicdataWare
List<BasicdataWarehouseEntity> basicdataGoodsShelfVOList = warehouseMapper.getWarehouseList();
return basicdataGoodsShelfVOList;
}
@Override
public List<BasicdataWarehouseEntity> detailWarehouse() {
List<BasicdataWarehouseEntity> list = new ArrayList<>();
BasicdataWarehouseEntity myCurrentWarehouse = getMyCurrentWarehouse();
if(ObjectUtils.isNotNull(myCurrentWarehouse)){
list.add(myCurrentWarehouse);
}else{
List<BasicdataWarehouseEntity> myWarehouseList = getMyWarehouseList();
list.addAll(myWarehouseList);
}
return list;
}
}

41
blade-service/logpm-basicdata/src/main/resources/application-prod.yml

@ -3,10 +3,43 @@ server:
port: 8400
#数据源配置
#spring:
# datasource:
# url: ${blade.datasource.dev.url}
# username: ${blade.datasource.dev.username}
# password: ${blade.datasource.dev.password}
spring:
#排除DruidDataSourceAutoConfigure
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
url: ${blade.datasource.prod.url}
username: ${blade.datasource.prod.username}
password: ${blade.datasource.prod.password}
dynamic:
druid:
#通用校验配置
validation-query: select 1
#启用sql日志拦截器
proxy-filters:
- sqlLogInterceptor
#设置默认的数据源或者数据源组,默认值即为master
primary: master
datasource:
master:
druid:
#独立校验配置
validation-query: select 1
#oracle校验
#validation-query: select 1 from dual
url: ${blade.datasource.basicdata.master.url}
username: ${blade.datasource.basicdata.master.username}
password: ${blade.datasource.basicdata.master.password}
slave:
druid:
#独立校验配置
validation-query: select 1
#oracle校验
#validation-query: select 1 from dual
url: ${blade.datasource.basicdata.slave.url}
username: ${blade.datasource.basicdata.slave.username}
password: ${blade.datasource.basicdata.slave.password}

13
blade-service/logpm-distribution/pom.xml

@ -98,7 +98,18 @@
<version>${bladex.project.version}</version>
</dependency>
<!-- 2023/09/21-->
<dependency>
<groupId>org.springblade</groupId>
<artifactId>logpm-old-project-api</artifactId>
<version>${bladex.project.version}</version>
</dependency>
<dependency>
<groupId>org.springblade</groupId>
<artifactId>blade-system-api</artifactId>
<version>3.1.0.RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>

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

@ -80,7 +80,6 @@ public class DistributionAddvalueAppController {
@ApiOperation(value = "查询该客户下的所有配送包件信息", notes = "DistributionAppDeliveryListDTO")
public R getAllPackageList(@Valid @RequestBody DistributionAppAddvalueDTO distributionAppAddvalueDTO) {
List<DistributionAddvaluePackageEntity> allPackageList = distributionAddvalueService.getAllPackageList(distributionAppAddvalueDTO);
return R.data(200,allPackageList,"成功");
}

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

@ -69,6 +69,17 @@ public class DistributionDeliveryAppController {
return R.data(pages);
}
/**
* 配送 查看托盘详情
*/
@GetMapping("/trays")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "详情", notes = "传入DistributionDeliveryListDTO")
public R<IPage<DistributionAppReservationVO>> traysDetail(DistributionAppDeliveryListDTO distributionDeliveryList, Query query) {
IPage<DistributionAppReservationVO> pages = distributionDeliveryListService.getAppDeliveryreservationTraysPage(Condition.getPage(query),distributionDeliveryList);
return R.data(pages);
}
/**
* 配送 查看订单
*/
@ -120,8 +131,8 @@ public class DistributionDeliveryAppController {
@PostMapping("/loadingscan")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "装车扫描", notes = "传入DistrilbutionloadingscanDTO")
public Resp loadingscan(@Valid @RequestBody DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) {
Resp msg = distributionDeliveryListService.loadingscan(distrilbutionloadingscanDTO);
public R loadingscan(@Valid @RequestBody DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) {
R msg = distributionDeliveryListService.loadingscan(distrilbutionloadingscanDTO);
return msg;
}
@ -205,4 +216,28 @@ public class DistributionDeliveryAppController {
}
/**
* 装车打包件二维码
*/
@PostMapping("/patchworkPackageCode")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "补打标签", notes = "传入DistrilbutionloadingscanDTO")
public R patchworkPackageCode(@Valid @RequestBody DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) {
R r = distributionDeliveryListService.patchwork(distrilbutionloadingscanDTO);
return r;
}
/**
* 装车补打库存品二维码
*/
@PostMapping("/patchworkInventoryCode")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "补打标签", notes = "传入DistrilbutionloadingscanDTO")
public R patchworkInventoryCode(@Valid @RequestBody DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) {
R r = distributionDeliveryListService.patchworkInventoryCode(distrilbutionloadingscanDTO);
return r;
}
}

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

@ -157,7 +157,7 @@ public class DistributionSignforAppController {
*/
@PostMapping("/signforack")
@ApiOperationSupport(order = 2)
public R signforack(@Valid @RequestBody DistributionSignforEntity distributionSignfor) {
public R signforack(@Valid @RequestBody DistributionSignforDTO distributionSignfor) {
R msg = distributionSignforService.signforack(distributionSignfor);
return msg;
}
@ -196,8 +196,8 @@ public class DistributionSignforAppController {
.eq(DistributionSignforEntity::getReservationId, distributionSignfor.getReservationId())
);
Map<String,Object> map = new HashMap<>();
map.put("deliverySignPictures",one.getDeliverySignPictures());
map.put("driverRemarks",one.getDriverRemarks());
map.put("deliverySignPictures",one.getDeliverySignPictures()); //司机签收图片
map.put("driverRemarks",one.getDriverRemarks()); //driverRemarks
return R.data(map);
}else {
return R.fail(3002,"参数不能为空不对!!");

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

@ -24,11 +24,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.basicdata.feign.IBasicdataGoodsAreaClient;
import com.logpm.distribution.bean.Resp;
import com.logpm.distribution.config.RedissonConfig;
import com.logpm.distribution.dto.app.StockupDTO;
import com.logpm.distribution.entity.*;
import com.logpm.distribution.service.*;
import com.logpm.distribution.vo.*;
import com.logpm.warehouse.entity.WarehouseGoodsAllocationEntity;
import com.logpm.warehouse.entity.WarehouseUpdownGoodsEntity;
import com.logpm.warehouse.feign.IWarehouseGoodsAllocationClient;
import com.logpm.warehouse.feign.IWarehouseUpdownGoodsClient;
@ -38,6 +38,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.redisson.api.RLock;
import org.springblade.common.constant.DictBizConstant;
import org.springblade.common.constant.RabbitConstant;
import org.springblade.common.constant.stockup.StockupStatusConstant;
@ -49,16 +50,14 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.system.cache.DictBizCache;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionException;
import org.springframework.transaction.TransactionStatus;
import org.springframework.web.bind.annotation.*;
import java.lang.reflect.Field;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
* 备货信息表 app控制器
@ -86,6 +85,7 @@ public class DistributionStockupAppController extends BladeController {
private final IWarehouseUpdownGoodsClient warehouseUpdownGoodsClient;
private final IWarehouseUpdownGoodsLogClient warehouseUpdownGoodsLogClient;
private final IWarehouseGoodsAllocationClient warehouseGoodsAllocationClient;
private IWarehouseUpdownTypeClient warehouseUpdownTypeClient;
private IDistributionAsyncService distributionAsyncService;
private final RabbitTemplate rabbitTemplate;
@ -146,7 +146,6 @@ public class DistributionStockupAppController extends BladeController {
log.info("#################pageList: 查询备货ID不能为空");
return R.fail(401, "查询备货ID不能为空");
}
Map<String, Object> map = distributionStockupService.selectHomeStockupPage(stockupDTO);
return R.data(map);
}
@ -197,14 +196,24 @@ public class DistributionStockupAppController extends BladeController {
Long reservationId = stockupDTO.getReservationId();
if (stockupDTO.getTypeService().equals("3")) {
//自提
//查询备货区信息
DistributionStockupSelfVO distributionStockupSelfVO = distributionStockupService.selectStockupDetails(reservationId);
map = convertObjectToMap(distributionStockupSelfVO);
if (orderStatus.equals(1)) {
//查询备货区信息
DistributionStockupSelfVO distributionStockupSelfVO = distributionStockupService.selectStockupDetails(reservationId);
map = convertObjectToMap(distributionStockupSelfVO);
//客户订单
List<DistributionStockupOrderListVO> list = distributionStockupService.selectStockupOrderList(stockupDTO);
map.put("orderList", list);
List<DistributionStockupOrderListVO> collect = list.stream().filter(i -> {
if (ObjectUtils.isNotNull(i.getTrayId()) && !i.getPallet().contains(",") && !i.isCompleteStact() && ObjectUtils.isNotNull( i.getAllocationId()) ) {
i.setTrayLean(true);
}
return true;
}).collect(Collectors.toList());
map.put("orderList", collect);
} else {
//查询备货区信息
DistributionStockupSelfVO distributionStockupSelfVO = distributionStockupService.selectStockupStockListDetails(reservationId);
map = convertObjectToMap(distributionStockupSelfVO);
//库存品
List<DistributionStockupStockListVO> list = distributionStockupService.selectStockupStockList(stockupDTO);
map.put("stockList", list);
@ -225,9 +234,12 @@ public class DistributionStockupAppController extends BladeController {
for (DistributionStockupOrderListVO vo : list) {
planNum = planNum + vo.getPlanNum();
scanNum = scanNum + vo.getScanNum();
Boolean aBoolean = distributionStockupService.getClientStockupTray(reservationId, vo.getAllocationId());
// Boolean aBoolean = distributionReservationPackageService.selectClientStockupState(reservationId, vo.getStockArticleId());
vo.setTrayLean(aBoolean);
// Boolean aBoolean = distributionStockupService.getClientStockupTray(reservationId, vo.getAllocationId());
// Boolean aBoolean = distributionReservationPackageService.selectClientStockupState(reservationId, vo.getStockArticleId());
// vo.setTrayLean(aBoolean);
if (ObjectUtils.isNotNull(vo.getTrayId()) && !vo.getPallet().contains(",") && !vo.isCompleteStact() && ObjectUtils.isNotNull( vo.getAllocationId()) ) {
vo.setTrayLean(true);
}
}
map.put("planNum", planNum);
map.put("scanNum", scanNum);
@ -241,8 +253,8 @@ public class DistributionStockupAppController extends BladeController {
for (DistributionStockupStockListVO vo : list) {
planNum = planNum + vo.getPlanNum();
scanNum = scanNum + vo.getRealNum();
// Boolean aBoolean = distributionStockupService.getClientStockupTray(reservationId, vo.getAllocationId());
// vo.setTrayLean(aBoolean);
Boolean aBoolean = distributionStockupService.getClientStockupTray(reservationId, vo.getAllocationId());
vo.setTrayLean(aBoolean);
}
map.put("planNum", planNum);
map.put("scanNum", scanNum);
@ -269,14 +281,14 @@ public class DistributionStockupAppController extends BladeController {
Integer orderStatus = stockupDTO.getOrderStatus();//1 客户订单 2库存品
Integer status = stockupDTO.getStatus();//0未完成 1已完成
Long allocationId = stockupDTO.getAllocationId(); //货位
Long trayId = stockupDTO.getTrayId(); //托盘Id
// Long trayId = Long.valueOf(stockupDTO.getTrayId()); //托盘Id
if (ObjectUtils.isNull(stockupId)) {
log.warn("##############orderInfo: 备货任务ID为空 allocation={}", stockupId);
return R.fail(3002, "备货任务Id为空");
}
if (ObjectUtils.isNull(status)) {
log.warn("##############status: 货位状态为空 allocation={}", stockupId);
log.warn("##############status: 货位状态为空 status={}", status);
return R.fail(3002, "货位状态为空");
}
//查询自提还是商 市
@ -304,6 +316,10 @@ public class DistributionStockupAppController extends BladeController {
} else if (orderStatus == 2) { //库存品
Long stockListId = stockupDTO.getStockListId();//库存品id
if (ObjectUtils.isNull(allocationId)) {
log.warn("##############allocationId: 货位状态为空 allocationId={}", allocationId);
return R.fail(3002, "货位id为空");
}
if (Objects.isNull(stockListId)) {
return R.fail(3002, "库存品id为空");
@ -311,10 +327,10 @@ public class DistributionStockupAppController extends BladeController {
//查询自提还是商 市
if (byId.getTypeService().equals("3")) {
//自
DistributionStockupStockListInfoVO infoVO = distributionStockupService.selectStockListInfoSelf(reservationId, stockListId);
DistributionStockupStockListInfoVO infoVO = distributionStockupService.selectStockListInfoSelf(reservationId, stockListId,allocationId);
return R.data(infoVO);
} else {
DistributionStockupStockListInfoVO infoVO = distributionStockupService.selectStockListInfo(reservationId, stockListId);
DistributionStockupStockListInfoVO infoVO = distributionStockupService.selectStockListInfo(reservationId, stockListId,allocationId);
return R.data(infoVO);
}
@ -365,6 +381,23 @@ public class DistributionStockupAppController extends BladeController {
R b = distributionStockupService.addPackTrayList(stockupDTO);
return b;
}
@PostMapping("/locationSelection")
@ApiOperation(value = "库存品选择货位展示")
public R<List<DistributionStockupTrayVO>> locationSelection(@RequestBody StockupDTO stockupDTO) {
if (ObjectUtils.isNull(stockupDTO.getDeliveryDetailsId())) {
log.warn("############备货库存品ID为空:{}",stockupDTO.getDeliveryDetailsId());
return R.fail(3002, "备货库存品ID不能为空");
}
List<DistributionStockupTrayVO> list = distributionStockupService.getLocationSelection(stockupDTO);
if(!list.isEmpty() && ObjectUtils.isNotNull(list.get(0))){
return R.data(list);
}
List<DistributionStockupTrayVO> listMarket = distributionStockupService.getLocationMarketSelection(stockupDTO);
if(!listMarket.isEmpty() && ObjectUtils.isNotNull(listMarket.size())){
return R.data(listMarket);
}
return R.fail(3002,"当前物料未上架,请上架后在继续备货操作!!!");
}
@ -416,6 +449,14 @@ public class DistributionStockupAppController extends BladeController {
//手动
// TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
// try{
//设置lockey
String lockKey = stockupDTO.getPacketBarCode()+stockupDTO.getStockupId();
RLock lock = new RedissonConfig().redisson().getLock(lockKey);
if(lock.isLocked()){
String audioValue2 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, "2");
return Resp.scanFail("重复扫描!", audioValue2);
}
lock.lock(5, TimeUnit.SECONDS);
if (scanType == 1) {
//包件扫描
String orderCode = stockupDTO.getOrderCode();//订单自编号
@ -539,6 +580,7 @@ public class DistributionStockupAppController extends BladeController {
String packetBarCode = stockupDTO.getPacketBarCode();
// String stockupArea = stockupDTO.getStockupArea();//备货区
Long stockupId = stockupDTO.getStockupId();//备货区
Long allocationId = stockupDTO.getAllocationId();//备货区
Integer stockPrint = stockupDTO.getStockPrint(); // 库存
if (StringUtil.isBlank(packetBarCode)) {
@ -561,7 +603,21 @@ public class DistributionStockupAppController extends BladeController {
log.warn("##################stockupScan: 库存品扫码,类型为空");
return R.fail("库存品扫码:类型不能为空");
}
if (Objects.isNull(allocationId)) {
log.warn("##################allocationId: 货位ID为空!");
return R.fail("货位ID不能为空");
}
//判断是否可以继续备货
DistributionStockListEntity byId = iDistributionStockListService.getById(stockListId);
WarehouseUpdownGoodsEntity warehouseUpdownGoodsEntity = new WarehouseUpdownGoodsEntity();
warehouseUpdownGoodsEntity.setAllocationId(stockupDTO.getAllocationId());
warehouseUpdownGoodsEntity.setIncomingBatch(byId.getIncomingBatch());
warehouseUpdownGoodsEntity.setMarketId(byId.getMarketId());
warehouseUpdownGoodsEntity.setAssociationType("4");
WarehouseUpdownGoodsEntity locationInformation = warehouseUpdownGoodsClient.getLocationStockListInformation(warehouseUpdownGoodsEntity);
if(ObjectUtils.isNull(locationInformation)){
return Resp.scanFail("当前货位的本物料已为0,请更换货位继续!!", "当前货位的本物料已为0,请更换货位继续!!");
}
Integer i = distributionStockupService.selectPackagePrint(stockupDTO);
switch (i) {
case 1:
@ -573,7 +629,8 @@ public class DistributionStockupAppController extends BladeController {
//先保存扫码包件信息,后续由队列来出来余下补充信息
DistributionStockEntity entity = new DistributionStockEntity();
entity.setCoding(packetBarCode);
// entity.setStockupArea(stockupArea);
DistributionStockupEntity byId1 = distributionStockupService.getById(stockupId);
entity.setStockupArea(byId1.getStockupArea());
entity.setStockupId(stockupId);
if(stockupEntity.getTypeService().equals("3")){
entity.setBillLadingId(reservationId);
@ -583,28 +640,35 @@ public class DistributionStockupAppController extends BladeController {
entity.setReservationId(reservationId);
entity.setStockListId(stockListId);
//添加物料信息
DistributionStockListEntity byId = iDistributionStockListService.getById(stockListId);
// DistributionStockListEntity byId = iDistributionStockListService.getById(stockListId);
if(ObjectUtils.isNotNull(byId.getMarketId())){
entity.setMarketId(byId.getMarketId());
entity.setMaterialId(byId.getMaterialId());
//查询库位id
// WarehouseUpdownGoodsEntity updownGoods = new WarehouseUpdownGoodsEntity();
// updownGoods.setAssociationId(byId.getId());
// updownGoods.setMarketId(byId.getMarketId());
// updownGoods.setIncomingBatch(byId.getIncomingBatch());
// Long l = warehouseUpdownGoodsClient.selectStockListOwe(updownGoods);
// if(!ObjectUtils.isNull(l)){
// //todo 待下架操作
// JSONObject jsonObject = new JSONObject();
// jsonObject.put("marketId",byId.getMarketId());
// jsonObject.put("materialCode",byId.getMarketCode());
// jsonObject.put("incomingBatch",byId.getIncomingBatch());
// jsonObject.put("enterNum",1);
// jsonObject.put("allocationId",l);
// List<JSONObject> list = new ArrayList<>();
// list.add(jsonObject);
// warehouseUpdownTypeClient.downStock(list);
// }
// WarehouseUpdownGoodsEntity warehouseUpdownGoodsEntity = new WarehouseUpdownGoodsEntity();
// warehouseUpdownGoodsEntity.setAllocationId(stockupDTO.getAllocationId());
// warehouseUpdownGoodsEntity.setIncomingBatch(byId.getIncomingBatch());
// warehouseUpdownGoodsEntity.setMarketId(byId.getMarketId());
// warehouseUpdownGoodsEntity.setAssociationType("4");
// WarehouseUpdownGoodsEntity locationInformation = warehouseUpdownGoodsClient.getLocationStockListInformation(warehouseUpdownGoodsEntity);
if(!ObjectUtils.isNull(locationInformation)){
entity.setAllocationTitle(locationInformation.getPositionCode());
entity.setAllocationId(stockupDTO.getAllocationId());
//todo 待下架操作
JSONObject jsonObject = new JSONObject();
jsonObject.put("marketId",byId.getMarketId());
jsonObject.put("materialCode",byId.getMarketCode());
jsonObject.put("incomingBatch",byId.getIncomingBatch());
jsonObject.put("enterNum",1);
jsonObject.put("allocationId",stockupDTO.getAllocationId());
List<JSONObject> list = new ArrayList<>();
list.add(jsonObject);
R r = warehouseUpdownTypeClient.downStock(list);
log.debug("下架状态:{}",r.getMsg());
}else{
return R.fail(3002,"本货位的物料已为0,请更换货位继续!!");
}
}else{
return Resp.scanFail("物料信息查询失败,请联系TJJ!!", "物料信息查询失败,请联系TJJ!!");
}
entity.setConditions("0");
entity.setType(2);

19
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/config/RedissonConfig.java

@ -0,0 +1,19 @@
package com.logpm.distribution.config;
import org.redisson.Redisson;
import org.redisson.config.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RedissonConfig {
@Bean
public Redisson redisson() {
// 单机模式
Config config = new Config();
config.useSingleServer().setAddress("redis://192.168.10.100:6379").setDatabase(0);
config.useSingleServer().setPassword("A0c415");
return (Redisson) Redisson.create(config);
}
}

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

@ -345,18 +345,28 @@ public class DistributionDeliveryListController extends BladeController {
@PostMapping("/printBatch")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "批量打印")
public R<List<PrintPreviewVO>> printBatch(@ApiParam(value = "主键集合", required = true) @RequestParam String ids ,@ApiParam(value = "打印类型", required = true) @RequestParam Integer type) {
@ApiOperation(value = "批量打印 配送单")
public R<List<PrintPreviewVO>> printBatch(@ApiParam(value = "主键集合", required = true) @RequestParam String ids, @ApiParam(value = "打印类型", required = true) @RequestParam Integer type) {
try {
List<PrintPreviewVO> printPreviewVOS = distributionDeliveryListService.printBatch(ids,type);
List<PrintPreviewVO> printPreviewVOS = distributionDeliveryListService.printBatch(ids, type);
return R.data(printPreviewVOS);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@PostMapping("/printBatchByReservation")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "批量打印 预约单")
public R<List<PrintPreviewVO>> printBatchByReservation(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
try {
List<PrintPreviewVO> printPreviewVOS = distributionDeliveryListService.printBatchByReservation(ids);
return R.data(printPreviewVOS);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}

150
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionLoadscanAbnormalController.java

@ -0,0 +1,150 @@
/*
* 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.controller;
import com.logpm.distribution.entity.DistributionLoadscanAbnormalEntity;
import com.logpm.distribution.excel.DistributionLoadscanAbnormalExcel;
import com.logpm.distribution.service.IDistributionLoadscanAbnormalService;
import com.logpm.distribution.vo.DistributionLoadscanAbnormalVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor;
import javax.validation.Valid;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.constant.BladeConstant;
import springfox.documentation.annotations.ApiIgnore;
import java.util.Map;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
/**
* 异常装车扫描表 控制器
*
* @author BladeX
* @since 2023-09-22
*/
@RestController
@AllArgsConstructor
@RequestMapping("loadscanAbnormal/distributionLoadscanAbnormal")
@Api(value = "异常装车扫描表", tags = "异常装车扫描表接口")
public class DistributionLoadscanAbnormalController extends BladeController {
private final IDistributionLoadscanAbnormalService distributionLoadscanAbnormalService;
/**
* 异常装车扫描表 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "详情", notes = "传入distributionLoadscanAbnormal")
public R<DistributionLoadscanAbnormalEntity> detail(DistributionLoadscanAbnormalEntity distributionLoadscanAbnormal) {
DistributionLoadscanAbnormalEntity detail = distributionLoadscanAbnormalService.getOne(Condition.getQueryWrapper(distributionLoadscanAbnormal));
return R.data(detail);
}
/**
* 异常装车扫描表 分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "传入distributionLoadscanAbnormal")
public R<IPage<DistributionLoadscanAbnormalEntity>> list(@ApiIgnore @RequestParam Map<String, Object> distributionLoadscanAbnormal, Query query) {
IPage<DistributionLoadscanAbnormalEntity> pages = distributionLoadscanAbnormalService.page(Condition.getPage(query), Condition.getQueryWrapper(distributionLoadscanAbnormal, DistributionLoadscanAbnormalEntity.class));
return R.data(pages);
}
/**
* 异常装车扫描表 自定义分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "分页", notes = "传入distributionLoadscanAbnormal")
public R<IPage<DistributionLoadscanAbnormalVO>> page(DistributionLoadscanAbnormalVO distributionLoadscanAbnormal, Query query) {
IPage<DistributionLoadscanAbnormalVO> pages = distributionLoadscanAbnormalService.selectDistributionLoadscanAbnormalPage(Condition.getPage(query), distributionLoadscanAbnormal);
return R.data(pages);
}
/**
* 异常装车扫描表 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@ApiOperation(value = "新增", notes = "传入distributionLoadscanAbnormal")
public R save(@Valid @RequestBody DistributionLoadscanAbnormalEntity distributionLoadscanAbnormal) {
return R.status(distributionLoadscanAbnormalService.save(distributionLoadscanAbnormal));
}
/**
* 异常装车扫描表 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "修改", notes = "传入distributionLoadscanAbnormal")
public R update(@Valid @RequestBody DistributionLoadscanAbnormalEntity distributionLoadscanAbnormal) {
return R.status(distributionLoadscanAbnormalService.updateById(distributionLoadscanAbnormal));
}
/**
* 异常装车扫描表 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "新增或修改", notes = "传入distributionLoadscanAbnormal")
public R submit(@Valid @RequestBody DistributionLoadscanAbnormalEntity distributionLoadscanAbnormal) {
return R.status(distributionLoadscanAbnormalService.saveOrUpdate(distributionLoadscanAbnormal));
}
/**
* 异常装车扫描表 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@ApiOperation(value = "逻辑删除", notes = "传入ids")
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
return R.status(distributionLoadscanAbnormalService.deleteLogic(Func.toLongList(ids)));
}
/**
* 导出数据
*/
@GetMapping("/export-distributionLoadscanAbnormal")
@ApiOperationSupport(order = 9)
@ApiOperation(value = "导出数据", notes = "传入distributionLoadscanAbnormal")
public void exportDistributionLoadscanAbnormal(@ApiIgnore @RequestParam Map<String, Object> distributionLoadscanAbnormal, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<DistributionLoadscanAbnormalEntity> queryWrapper = Condition.getQueryWrapper(distributionLoadscanAbnormal, DistributionLoadscanAbnormalEntity.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(DistributionLoadscanAbnormal::getTenantId, bladeUser.getTenantId());
//}
queryWrapper.lambda().eq(DistributionLoadscanAbnormalEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<DistributionLoadscanAbnormalExcel> list = distributionLoadscanAbnormalService.exportDistributionLoadscanAbnormal(queryWrapper);
ExcelUtil.export(response, "异常装车扫描表数据" + DateUtil.time(), "异常装车扫描表数据表", list, DistributionLoadscanAbnormalExcel.class);
}
}

15
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockupController.java

@ -43,6 +43,7 @@ import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.system.entity.User;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
@ -171,19 +172,11 @@ public class DistributionStockupController extends BladeController {
@GetMapping("/listUser")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "传入distributionStockup")
public R<BladeUser> listUser() {
public R<List<User>> listUser() {
//获取当前登录用户
BladeUser user = AuthUtil.getUser();
BladeUser u = new BladeUser();
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
if(ObjectUtil.isNotEmpty(myCurrentWarehouse)){
}
u.setDeptId(user.getDeptId());
u.setTenantId(user.getTenantId());
u.setUserId(user.getUserId());
u.setUserName(user.getUserName());
return R.data(u);
List<User> cc = distributionStockupService.getRoleList(user.getDeptId(), user.getTenantId(), "叉车");
return R.data(cc);
}
/**

34
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionLoadscanAbnormalDTO.java

@ -0,0 +1,34 @@
/*
* 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.DistributionLoadscanAbnormalEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 异常装车扫描表 数据传输对象实体类
*
* @author BladeX
* @since 2023-09-22
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class DistributionLoadscanAbnormalDTO extends DistributionLoadscanAbnormalEntity {
private static final long serialVersionUID = 1L;
}

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

@ -34,7 +34,7 @@ public class DistributionStockDTO extends DistributionStockEntity {
private static final long serialVersionUID = 1L;
private List<String> ids; //包件ID
private String goodsAreaId; //备货区
// private String stockupId; //配货id
private Long stockupId; //配货id
private String stockupArea; //名称
private String stockupType; //标识

3
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockupDTO.java

@ -43,6 +43,7 @@ public class StockupDTO implements Serializable {
private String cargoUnit;//单位
private Long userId;//当前操作人
private String deliveryDetailsId;//订单库存ID
//扫码参数
private Integer scanType;//备货扫码类型 1 包件 2库存品
@ -50,7 +51,7 @@ public class StockupDTO implements Serializable {
private String trayBarCode;//托盘码
private String typeService;//备货类型
private Integer stockPrint;//库存品扫码类型 1 原有包条 2打印处理的扫码
private Long trayId;//货位ID
private String trayId;//货位ID
private String stockupArea;//备货区
private Long stockupAreaId;//备货区ID
private Long stockupId;//备货任务区Id

213
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionLoadscanAbnormalExcel.java

@ -0,0 +1,213 @@
/*
* 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.excel;
import lombok.Data;
import java.util.Date;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import java.io.Serializable;
/**
* 异常装车扫描表 Excel实体类
*
* @author BladeX
* @since 2023-09-22
*/
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class DistributionLoadscanAbnormalExcel implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 租户号
*/
@ColumnWidth(20)
@ExcelProperty("租户号")
private String tenantId;
/**
* 是否已删除
*/
@ColumnWidth(20)
@ExcelProperty("是否已删除")
private Integer isDeleted;
/**
* 预约ID
*/
@ColumnWidth(20)
@ExcelProperty("预约ID")
private String reservationId;
/**
* 配送管理ID
*/
@ColumnWidth(20)
@ExcelProperty("配送管理ID")
private String deliveryListId;
/**
* 包件ID
*/
@ColumnWidth(20)
@ExcelProperty("包件ID")
private String packageId;
/**
* 订单ID
*/
@ColumnWidth(20)
@ExcelProperty("订单ID")
private String stockArticleId;
/**
* 扫描操作人
*/
@ColumnWidth(20)
@ExcelProperty("扫描操作人")
private String sacnUser;
/**
* 扫描操作时间
*/
@ColumnWidth(20)
@ExcelProperty("扫描操作时间")
private String scanTime;
/**
* 包条码
*/
@ColumnWidth(20)
@ExcelProperty("包条码")
private String packageCode;
/**
* 车次号
*/
@ColumnWidth(20)
@ExcelProperty("车次号")
private String trainNumber;
/**
* 司机ID
*/
@ColumnWidth(20)
@ExcelProperty("司机ID")
private String driverId;
/**
* 司机名称
*/
@ColumnWidth(20)
@ExcelProperty("司机名称")
private String driverName;
/**
* 车辆ID
*/
@ColumnWidth(20)
@ExcelProperty("车辆ID")
private String vehicleId;
/**
* 车牌号
*/
@ColumnWidth(20)
@ExcelProperty("车牌号")
private String vehicleName;
/**
* 司机电话
*/
@ColumnWidth(20)
@ExcelProperty("司机电话")
private String driverPhone;
/**
* 仓库Id
*/
@ColumnWidth(20)
@ExcelProperty("仓库Id")
private String warehouseId;
/**
* 仓库名称
*/
@ColumnWidth(20)
@ExcelProperty("仓库名称")
private String warehouseName;
/**
* 审核人
*/
@ColumnWidth(20)
@ExcelProperty("审核人")
private String auditingUser;
/**
* 审核时间
*/
@ColumnWidth(20)
@ExcelProperty("审核时间")
private String auditingTime;
/**
* 包件配送类型 1 - 商配 2-市配
*/
@ColumnWidth(20)
@ExcelProperty("包件配送类型 1 - 商配 2-市配")
private String deliveryType;
/**
* 备注
*/
@ColumnWidth(20)
@ExcelProperty("备注")
private String remarks;
/**
* 审核状态 1-未审核 2- 已审核 3 - 异常
*/
@ColumnWidth(20)
@ExcelProperty("审核状态 1-未审核 2- 已审核 3 - 异常")
private String auditingStatus;
/**
* 装车数量
*/
@ColumnWidth(20)
@ExcelProperty("装车数量")
private String loadingQuantity;
/**
* 预留1
*/
@ColumnWidth(20)
@ExcelProperty("预留1")
private String reserve1;
/**
* 预留2
*/
@ColumnWidth(20)
@ExcelProperty("预留2")
private String reserve2;
/**
* 预留3
*/
@ColumnWidth(20)
@ExcelProperty("预留3")
private String reserve3;
/**
* 预留4
*/
@ColumnWidth(20)
@ExcelProperty("预留4")
private String reserve4;
/**
* 预留5
*/
@ColumnWidth(20)
@ExcelProperty("预留5")
private String reserve5;
}

53
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionLoadscanAbnormalClient.java

@ -0,0 +1,53 @@
/*
* 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.feign;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.distribution.entity.DistributionLoadscanAbnormalEntity;
import com.logpm.distribution.service.IDistributionLoadscanAbnormalService;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.BladePage;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
/**
* 异常装车扫描表 Feign实现类
*
* @author BladeX
* @since 2023-09-22
*/
@ApiIgnore()
@RestController
@AllArgsConstructor
public class DistributionLoadscanAbnormalClient implements IDistributionLoadscanAbnormalClient {
private final IDistributionLoadscanAbnormalService distributionLoadscanAbnormalService;
@Override
@GetMapping(TOP)
public BladePage<DistributionLoadscanAbnormalEntity> loadscanAbnormalTop(Integer current, Integer size) {
Query query = new Query();
query.setCurrent(current);
query.setSize(size);
IPage<DistributionLoadscanAbnormalEntity> page = distributionLoadscanAbnormalService.page(Condition.getPage(query));
return BladePage.of(page);
}
}

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

@ -110,4 +110,9 @@ public class DistributionParcelListClient implements IDistributionParcelListClie
return distributionParcelListService.list(queryWrapper);
}
@Override
@PostMapping(API_PREFIX+"/update")
public void update(DistributionParcelListEntity distributionParcelListEntity) {
distributionParcelListService.updateById(distributionParcelListEntity);
}
}

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

@ -130,7 +130,7 @@ public interface DistributionDeliveryInfoMapper extends BaseMapper<DistributionD
*
* @return
*/
List<DistributionAppReservationVO> selectAppcustomListPage(IPage<DistributionAppReservationVO> page, Long id);
List<DistributionAppReservationVO> selectAppcustomListPage(IPage<DistributionAppReservationVO> page,@Param("deliveryListId") Long id);
/**
* App-通过配送查询客户库存品信息分页
*
@ -151,4 +151,12 @@ public interface DistributionDeliveryInfoMapper extends BaseMapper<DistributionD
List<DistributionAppStockArticleVO> selectDistributionAppDeliveryOrderCompmletePage(IPage<DistributionAppStockArticleVO> page,@Param("param") DistributionAppDeliveryListDTO distributionAppDeliveryListDTO);
List<DistributionAppStockArticleVO> selectDistributionAppDeliveryOrderCompcletePage(IPage<DistributionAppStockArticleVO> page,@Param("param") DistributionAppDeliveryListDTO distributionAppDeliveryListDTO);
/**
* 查询托盘列表
* @param page
* @param id
* @return
*/
List<DistributionAppReservationVO> selectAppTarysListPage(IPage<DistributionAppReservationVO> page,@Param("reservationId") Long id);
}

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

@ -329,15 +329,37 @@
</where>
</select>
<select id="selectAppcustomListPage" resultType="com.logpm.distribution.vo.app.DistributionAppReservationVO">
SELECT DISTINCT ldr.id id, ldr.consignee consignee, ldr.reservation_num reservationNum, COALESCE(lds.loaded_number + lds.loadedin_number, 0) loadingNub,
(SELECT COALESCE(COUNT(*), 0) from logpm_distribution_reservation_stockarticle ldrs WHERE ldrs.reservation_id =ldr.id and ldrs.stock_article_status in (1,3) ) ordNub,
COALESCE(lds.received_quantity + lds.receivedin_quantity, 0) signNub, ldsk.stockup_area stockupArea,COALESCE(ldrs.reservation_num , 0) inventoryNub
FROM logpm_distribution_signfor lds
LEFT JOIN logpm_distribution_reservation ldr ON ldr.id = lds.reservation_id and ldr.reservation_status != '40'
LEFT JOIN logpm_distribution_stockup_info ldsi on ldr.id = ldsi.reservation_id
LEFT JOIN logpm_distribution_stockup ldsk on ldsk.id = ldsi.stockup_id
LEFT JOIN logpm_distribution_reservation_stocklist ldrs on ldrs.reservation_id = ldr.id and ldrs.stock_list_status in (1,3)
WHERE lds.is_deleted = 0 AND lds.delivery_id = #{id}
SELECT DISTINCT
ldr.id id,
ldr.consignee consignee,
ldr.reservation_num reservationNum,
COALESCE ( lds.loaded_number + lds.loadedin_number, 0 ) loadingNub,
(
SELECT COALESCE
( COUNT(*), 0 )
FROM
logpm_distribution_reservation_stockarticle ldrs
WHERE
ldrs.reservation_id = ldr.id
AND ldrs.stock_article_status IN ( 1, 3 )
) ordNub,
COALESCE ( lds.received_quantity + lds.receivedin_quantity, 0 ) signNub,
ldsk.stockup_area stockupArea,
COALESCE ( ldrs.reservation_num, 0 ) inventoryNub,
COUNT(DISTINCT lwtg.tray_id) AS trayNum
FROM
logpm_distribution_signfor lds
LEFT JOIN logpm_distribution_reservation ldr ON ldr.id = lds.reservation_id
AND ldr.reservation_status != '40'
LEFT JOIN logpm_distribution_stockup_info ldsi ON ldr.id = ldsi.reservation_id
LEFT JOIN logpm_distribution_stockup ldsk ON ldsk.id = ldsi.stockup_id
LEFT JOIN logpm_distribution_reservation_stocklist ldrs ON ldrs.reservation_id = ldr.id
AND ldrs.stock_list_status IN ( 1, 3 )
LEFT JOIN logpm_distribution_reservation_package AS ldrp ON lds.reservation_id = ldrp.reservation_id
LEFT JOIN logpm_warehouse_tray_goods AS lwtg ON lwtg.association_id = ldrp.parce_list_id AND lwtg.association_type = 3
WHERE
lds.delivery_id = #{deliveryListId}
GROUP BY ldr.id,lds.loaded_number,lds.loadedin_number,lds.received_quantity,lds.receivedin_quantity,ldsk.stockup_area,ldrs.reservation_num
</select>
<select id="selectDistributionAppDeliveryInventoryPage"
resultType="com.logpm.distribution.vo.app.DistributionAppStockArticleVO">
@ -472,4 +494,21 @@
AND loading.loadingNub >=ldrs.reservation_num AND ldr.id = #{param.reservationId}
</where>
</select>
<select id="selectAppTarysListPage"
resultType="com.logpm.distribution.vo.app.DistributionAppReservationVO">
SELECT
lwtg.tray_id AS trayId,
lds.reservation_id AS Id,
lwtg.tray_code AS trayCode,
COUNT(lwtga.num) AS trayNum,
GROUP_CONCAT(lwtga.goods_name) AS goodsNames
FROM
logpm_distribution_signfor AS lds
LEFT JOIN logpm_distribution_reservation AS ldr ON lds.reservation_id = ldr.id
LEFT JOIN logpm_distribution_reservation_package AS ldrp ON ldr.id = ldrp.reservation_id
LEFT JOIN logpm_warehouse_tray_goods AS lwtg ON lwtg.association_id = ldrp.parce_list_id
JOIN logpm_warehouse_tray_goods AS lwtga ON lwtg.id = lwtga.id
WHERE lds.reservation_id = #{reservationId}
GROUP BY lwtg.tray_id,lds.reservation_id,lwtg.tray_code,lwtg.num
</select>
</mapper>

54
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanAbnormalMapper.java

@ -0,0 +1,54 @@
/*
* 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.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.distribution.entity.DistributionLoadscanAbnormalEntity;
import com.logpm.distribution.excel.DistributionLoadscanAbnormalExcel;
import com.logpm.distribution.vo.DistributionLoadscanAbnormalVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 异常装车扫描表 Mapper 接口
*
* @author BladeX
* @since 2023-09-22
*/
public interface DistributionLoadscanAbnormalMapper extends BaseMapper<DistributionLoadscanAbnormalEntity> {
/**
* 自定义分页
*
* @param page
* @param distributionLoadscanAbnormal
* @return
*/
List<DistributionLoadscanAbnormalVO> selectDistributionLoadscanAbnormalPage(IPage page, DistributionLoadscanAbnormalVO distributionLoadscanAbnormal);
/**
* 获取导出数据
*
* @param queryWrapper
* @return
*/
List<DistributionLoadscanAbnormalExcel> exportDistributionLoadscanAbnormal(@Param("ew") Wrapper<DistributionLoadscanAbnormalEntity> queryWrapper);
}

54
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanAbnormalMapper.xml

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.logpm.distribution.mapper.DistributionLoadscanAbnormalMapper">
<!-- 通用查询映射结果 -->
<resultMap id="distributionLoadscanAbnormalResultMap" type="com.logpm.distribution.entity.DistributionLoadscanAbnormalEntity">
<result column="tenant_id" property="tenantId"/>
<result column="create_user" property="createUser"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="status" property="status"/>
<result column="is_deleted" property="isDeleted"/>
<result column="create_dept" property="createDept"/>
<result column="id" property="id"/>
<result column="reservation_id" property="reservationId"/>
<result column="delivery_list_id" property="deliveryListId"/>
<result column="package_id" property="packageId"/>
<result column="stock_article_id" property="stockArticleId"/>
<result column="sacn_user" property="sacnUser"/>
<result column="scan_time" property="scanTime"/>
<result column="package_code" property="packageCode"/>
<result column="train_number" property="trainNumber"/>
<result column="driver_id" property="driverId"/>
<result column="driver_name" property="driverName"/>
<result column="vehicle_id" property="vehicleId"/>
<result column="vehicle_name" property="vehicleName"/>
<result column="driver_phone" property="driverPhone"/>
<result column="warehouse_id" property="warehouseId"/>
<result column="warehouse_name" property="warehouseName"/>
<result column="auditing_user" property="auditingUser"/>
<result column="auditing_time" property="auditingTime"/>
<result column="delivery_type" property="deliveryType"/>
<result column="remarks" property="remarks"/>
<result column="auditing_status" property="auditingStatus"/>
<result column="loading_quantity" property="loadingQuantity"/>
<result column="reserve1" property="reserve1"/>
<result column="reserve2" property="reserve2"/>
<result column="reserve3" property="reserve3"/>
<result column="reserve4" property="reserve4"/>
<result column="reserve5" property="reserve5"/>
</resultMap>
<select id="selectDistributionLoadscanAbnormalPage" resultMap="distributionLoadscanAbnormalResultMap">
select * from logpm_distribution_loadscan_abnormal where is_deleted = 0
</select>
<select id="exportDistributionLoadscanAbnormal" resultType="com.logpm.distribution.excel.DistributionLoadscanAbnormalExcel">
SELECT * FROM logpm_distribution_loadscan_abnormal ${ew.customSqlSegment}
</select>
</mapper>

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

@ -96,7 +96,7 @@ public interface DistributionParcelListMapper extends BaseMapper<DistributionPar
List<PackageStockupVO> selectOrderInfoAllocationList(@Param("param") StockupDTO stockupDTO);
List<DistributionParcelListEntity> findALLNoUpShelfPackageByOrderCode(@Param("orderCode") String orderCode,@Param("orderCode") Long warehouseId);
List<DistributionParcelListEntity> findALLNoUpShelfPackageByOrderCode(@Param("orderCode") String orderCode,@Param("warehouseId") Long warehouseId);
IPage<DistributionParcelListEntity> pageOweList(IPage<Object> page,@Param("param") DistributionParcelListDTO parcelListEntity);

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

@ -160,13 +160,13 @@
select GROUP_CONCAT( DISTINCT position_code)
from logpm_warehouse_updown_goods
where association_id = ldpl.id
) positionCode,lwug.allocation_id allocationId
) positionCode,lds.allocation_id allocationId
from logpm_distribution_parcel_list ldpl
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
<where>
<if test="param.allocationId != null and param.allocationId != ''"> and lwug.allocation_id = #{param.allocationId} </if>
<if test="param.allocationId != null and param.allocationId != ''"> and lds.allocation_id = #{param.allocationId} </if>
<if test="param.stockArticleId != null and param.stockArticleId != ''"> and ldpl.stock_article_id = #{param.stockArticleId} </if>
<if test="param.stockArticleIdList != null ">
and ldpl.stock_article_id in
@ -182,13 +182,13 @@
select GROUP_CONCAT( DISTINCT position_code)
from logpm_warehouse_updown_goods
where association_id = ldpl.id
) positionCode,lwug.allocation_id allocationId
) positionCode,lds.allocation_id allocationId
from logpm_distribution_parcel_list ldpl
LEFT JOIN logpm_distribution_stock lds on lds.parcel_list_id = ldpl.id
LEFT JOIN logpm_warehouse_updown_goods_log lwug on lwug.association_id = ldpl.id and lwug.create_time >= DATE_SUB(NOW(), INTERVAL 10 MINUTE)
<where>
<if test="param.allocationId != null and param.allocationId != ''"> and lwug.allocation_id = #{param.allocationId} </if>
<if test="param.allocationId != null and param.allocationId != ''"> and lds.allocation_id = #{param.allocationId} </if>
<if test="param.stockArticleId != null and param.stockArticleId != ''"> and ldpl.stock_article_id = #{param.stockArticleId} </if>
<if test="param.stockupId != null and param.stockupId != ''"> and lds.stockup_id = #{param.stockupId} </if>
<if test="param.stockArticleIdList != null ">
@ -303,11 +303,12 @@
lds.id =#{id}
</where>-->
select DISTINCT ldsi.stockup_id , ldpl.id id,ldpl.order_package_code orderPackageCode,lds.type stockupStatus,ldpl.firsts,ldpl.second,ldpl.third_product thirdProduct,
ldpl.material_name materialName,lds.create_time stockupDate,lds.stockup_area stockupArea,ldpl.goods_allocation goodsAllocation,ldpl.pallet
ldpl.material_name materialName,lds.create_time stockupDate,lds.stockup_area stockupArea,ldpl.goods_allocation goodsAllocation,lwtg.tray_code pallet
from logpm_distribution_stockup_info ldsi
LEFT JOIN logpm_distribution_reservation_package ldrp on ldrp.reservation_id = ldsi.reservation_id
LEFT JOIN logpm_distribution_parcel_list ldpl on ldpl.id = ldrp.parce_list_id
LEFT JOIN logpm_distribution_stock lds on ldpl.id = lds.parcel_list_id and lds.stockup_id = ldsi.stockup_id
LEFT JOIN logpm_warehouse_tray_goods lwtg on lwtg.association_id = ldpl.id and lwtg.association_type = '3'
<where>
ldsi.stockup_id =#{id}
</where>

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

@ -23,6 +23,7 @@ import com.logpm.distribution.dto.DistributionReservationDTO;
import com.logpm.distribution.entity.*;
import com.logpm.distribution.excel.DistributionReservationExcel;
import com.logpm.distribution.vo.DistributionReservationVO;
import com.logpm.distribution.vo.DistributionStockListVO;
import com.logpm.distribution.vo.DistributionStockupOrderListVO;
import com.logpm.distribution.vo.DistributionStockupStockListVO;
import org.apache.ibatis.annotations.Mapper;
@ -113,7 +114,7 @@ public interface DistributionReservationMapper extends BaseMapper<DistributionRe
* @param reservationId
* @return
*/
List<DistributionStockListEntity> getReservationStockListInfo(@Param("reservationId") Long reservationId);
List<DistributionStockListVO> getReservationStockListInfo(@Param("reservationId") Long reservationId);
/**
* 查询预约单下指定订单包件列表

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

@ -217,29 +217,24 @@
<select id="selectStockupStockList" resultType="com.logpm.distribution.vo.DistributionStockupStockListVO">
select ldst.id stockListId,
ldst.storage_location allocation,
ldst.description_goods materialName,
ldst.sku sku,
ldst.cargo_norms cargoNorms,
ldrs.reservation_num planNum,
ldst.cargo_unit cargoUnit,
ldst.tray_name trayName,
ldst.unpack unpack,
count(ldss.id) realNum
ldst.description_goods materialName,
ldst.sku sku,
ldst.cargo_norms cargoNorms,
ldrs.reservation_num planNum,
ldst.cargo_unit cargoUnit,
ldst.tray_name trayName,
ldst.unpack unpack,
count(ldss.id) realNum,
GROUP_CONCAT( DISTINCT lwug.position_code) allocation,
ldrs.id deliveryDetailsId
from logpm_distribution_reservation_stocklist ldrs
left join logpm_distribution_stock_list ldst on ldst.id = ldrs.stocklist_id and ldst.is_deleted = 0
left join logpm_distribution_stock ldss on ldss.stock_list_id = ldst.id and ldss.reservation_id = #{reservationId} and ldss.is_deleted = 0
left join logpm_distribution_stock_list ldst on ldst.id = ldrs.stocklist_id and ldst.is_deleted = 0
left join logpm_distribution_stock ldss on ldss.stock_list_id = ldst.id and ldss.reservation_id = #{reservationId} and ldss.is_deleted = 0
LEFT JOIN logpm_warehouse_updown_goods lwug on lwug.association_id = ldst.material_id and lwug.association_type = '4' and ldst.market_id = lwug.market_id and ldst.incoming_batch = lwug.incoming_batch
where ldrs.reservation_id = #{reservationId}
and ldrs.is_deleted = 0
group by ldst.id,
ldst.storage_location,
ldst.description_goods,
ldst.sku,
ldst.cargo_norms,
ldrs.reservation_num,
ldst.cargo_unit,
ldst.tray_name,
ldst.unpack
and ldrs.is_deleted = 0
group by ldst.id, ldst.storage_location, ldst.description_goods, ldst.sku,ldrs.id,
ldst.cargo_norms, ldrs.reservation_num, ldst.cargo_unit, ldst.tray_name, ldst.unpack
</select>
<select id="selectOrderNumByReservationId" resultType="Integer">
@ -447,22 +442,8 @@
</where>
</select>
<select id="getReservationStockListInfo"
resultType="com.logpm.distribution.entity.DistributionStockListEntity">
SELECT
ldsl.tenant_id,
ldsl.id,
ldsl.create_user,
ldsl.create_time,
ldsl.update_user,
ldsl.update_time,
ldsl.status,
ldsl.is_deleted,
ldsl.create_dept,
ldsl.reserve1,
ldsl.reserve2,
ldsl.reserve3,
ldsl.reserve4,
ldsl.reserve5,
resultType="com.logpm.distribution.vo.DistributionStockListVO">
SELECT
ldsl.order_code,
ldsl.incoming_batch,
ldsl.service_number,
@ -503,12 +484,15 @@
ldsl.license_plate,
ldsl.tray_id,
ldsl.tray_name,
ldsl.sku
ldsl.sku,
count(ldsld.stock_package_code) AS stockupNum,
(SELECT lds.stockup_area FROM logpm_distribution_stockup_info AS ldsi INNER JOIN logpm_distribution_stockup AS lds ON ldsi.stockup_id = lds.id WHERE ldsi.reservation_id = ldrs.reservation_id) AS stockupArea
FROM
logpm_distribution_reservation_stocklist AS ldrs
INNER JOIN logpm_distribution_stock_list AS ldsl ON ldrs.stocklist_id = ldsl.id
WHERE
reservation_id = #{reservationId}
INNER JOIN logpm_dis_stock_list_detail AS ldsld ON ldrs.reservation_id = ldsld.reservation_id and ldrs.stocklist_id = ldsl.id
WHERE ldrs.reservation_id = #{reservationId}
GROUP BY ldsl.id
</select>
<select id="getMarketReservationInfo" resultType="com.logpm.distribution.entity.DistributionReservationEntity">
SELECT

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

@ -326,7 +326,7 @@ WHERE
where tray_id = #{trayId}
</select>
<select id="listPackage" resultType="com.logpm.distribution.vo.DistributionStockPackageVO">
select ldrp.parce_list_id parceListId,ldrp.packet_bar_code packetBarCode,ldrp.stock_article_id stockArticleId,ldpl.goods_allocation goodsAllocation,
select ldrp.parce_list_id parcelListId,ldrp.packet_bar_code packetBarCode,ldrp.stock_article_id stockArticleId,ldpl.goods_allocation goodsAllocation,
ldrp.reservation_id reservationId,lds.delivery_id deliveryId,lddi.note_number noteNumber,ldr.reservation_code reservationCode,ldpl.order_code orderCode
from logpm_distribution_reservation_package ldrp
LEFT JOIN logpm_distribution_parcel_list ldpl on ldrp.parce_list_id = ldpl.id

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

@ -124,7 +124,7 @@
ldsa.warehouse warehouse,
ldsa.brand brand,
ldsa.complete_set completeSet,
ldsa.warehouse_entry_time_end warehouseEntryTimeEnd,
ldsa.warehouse_entry_time warehouseEntryTime,
ldsa.store_time storeTime,
ldr.consignee consignee,
ldr.delivery_phone deliveryPhone,

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

@ -485,15 +485,13 @@
<select id="selectOneCustom" resultType="com.logpm.distribution.vo.DistributionSignforVO">
SELECT
CASE
WHEN
lds.driver_signing = '2' THEN
'司机签收'
WHEN lds.signing_status = '2' THEN
'文员签收' ELSE '待签收'
'文员审核' ELSE '待签收'
END signingStatusAll,
CASE
WHEN
ldr.is_urgent = '1' THEN '否'
WHEN ldr.is_urgent = '2' THEN '是'
@ -511,6 +509,12 @@
lds.delivery_sign_pictures deliverySignPictures,
ldr.reservation_date reservationDate,
lds.positioning_adr positioningAdr,
lddl.train_number trainNumber,
lddl.vehicle_name vehicleName,
lddl.driver_name driverName,
lddl.driver_name driverName,
lddl.loading_team_name loadingTeamName,
lddl.unloading_team_name unLoadingTeamName,
CASE
WHEN ldr.delivery_type = '1' THEN
'商配'

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

@ -330,7 +330,12 @@
ldsa.inventory_date, ldsa.inventory_person, ldsa.inventory_person_id,
ldsa.available_quantity, ldsa.is_have_data, ldsa.stock_article_code, ldsa.dealer_name, ldsa.dealer_code,
ldsa.train_number, ldsa.factory_train, ldsa.sending, ldsa.send_warehouse_id, ldsa.send_warehouse_name,
ldsa.is_zero, ldsa.accept_warehouse_id, ldsa.accept_warehouse_name, ldsa.order_delivery_status,GROUP_CONCAT(DISTINCT lwtg.tray_code) trays,
ldsa.is_zero, ldsa.accept_warehouse_id, ldsa.accept_warehouse_name, ldsa.order_delivery_status,
(select GROUP_CONCAT(DISTINCT lwtg.tray_code)
from logpm_distribution_parcel_list ldpl
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
where ldpl.stock_article_id = ldsa.id) trays,
(
select GROUP_CONCAT(DISTINCT lwug.position_code)
from logpm_distribution_parcel_list ldpl

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

@ -58,7 +58,7 @@ public interface DistributionStockListMapper extends BaseMapper<DistributionStoc
IPage<DistributionStockListVO> pageOwn(IPage page,@Param("param") DistributionStockListEntity distributionStockListEntity);
DistributionStockupStockListInfoVO selectStockListInfo(@Param("reservationId") Long reservationId, @Param("stockListId") Long stockListId);
DistributionStockupStockListInfoVO selectStockListInfo(@Param("reservationId") Long reservationId, @Param("stockListId") Long stockListId,@Param("allocationId") Long allocationId);
List<String> selectWarehouseAreaByReservationId(@Param("reservationId") Long reservationId);
@ -81,7 +81,7 @@ public interface DistributionStockListMapper extends BaseMapper<DistributionStoc
List<DistributionStockListEntity> getEntityByMarketIdAndMaterialName(@Param("marketId") Long marketId, @Param("materialName") String materialName, @Param("warehouseId") Long warehouseId);
DistributionStockupStockListInfoVO selectStockListInfoSelf(@Param("reservationId") Long reservationId,@Param("stockListId") Long stockListId);
DistributionStockupStockListInfoVO selectStockListInfoSelf(@Param("reservationId") Long reservationId,@Param("stockListId") Long stockListId,@Param("allocationId") Long allocationId);
List<DistributionStockListEntity> getListByMarketIdAndMaterialName(@Param("marketId") Long marketId, @Param("materialName") String materialName, @Param("warehouseId") Long warehouseId);

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

@ -83,7 +83,8 @@
END 'unpackingQuantity',
ldsi.market_id marketId,ldsi.store_id storeId,ldsi.material_id materialId,ldsi.id,
( select CONCAT(GROUP_CONCAT(lwtg.tray_code SEPARATOR ','), ',(', SUM(lwtg.num), ') ')
from logpm_warehouse_tray_goods lwtg where ldsi.market_id = lwtg.market_id and lwtg.association_id = ldsi.material_id ) trayQuantity
from logpm_warehouse_tray_goods lwtg where ldsi.market_id = lwtg.market_id and lwtg.association_id = ldsi.material_id ) trayQuantity,
(select package_num from logpm_basicdata_material where id = material_id) packageNum
from logpm_distribution_stock_list ldsi
</sql>
@ -197,7 +198,9 @@
ldr.delivery_address deliveryAddress,
ldr.goods_area_name stockupArea,
ldrs.reservation_num planNum,
ldsl.storage_location warehouseArea,
(select DISTINCT allocation_title
from logpm_warehouse_updown_goods
where allocation_id = #{allocationId}) warehouseArea,
ldsl.tray_name trays,
ldsl.sku sku,
ldsl.cargo_unit unit,
@ -285,7 +288,9 @@
<select id="selectStockListInfoSelf" resultType="com.logpm.distribution.vo.DistributionStockupStockListInfoVO">
select lddd.bill_lading_id reservationId,
lddd.stock_list_id stockListId,
ldsl.storage_location warehouseArea,
(select DISTINCT allocation_title
from logpm_warehouse_updown_goods
where allocation_id = #{allocationId}) warehouseArea,
ldsl.tray_name trays,
ldsl.sku sku,
ldsl.cargo_unit unit,

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

@ -97,19 +97,15 @@
)
</select>
<select id="selectAllocation" resultType="com.logpm.distribution.vo.DistributionStockAllocationVO">
select lwugl.position_code,lwugl.allocation_id
select lds.allocation_id allocationId,lds.allocation_title positionCode
from logpm_distribution_stock lds
LEFT JOIN logpm_warehouse_updown_goods_log lwugl on lds.parcel_list_id = lwugl.association_id and lwugl.binding_type = 2 and lwugl.create_time >= DATE_SUB(NOW(), INTERVAL 10 MINUTE)
where lds.reservation_id = #{reservationId} and lds.stockup_id = #{stockupId} and lds.parcel_list_id = #{parcelListId}
GROUP BY lwugl.create_time ,lwugl.position_code,lwugl.allocation_id
LIMIT 1
</select>
<select id="selectSelfAllocation" resultType="com.logpm.distribution.vo.DistributionStockAllocationVO">
select lwugl.position_code,lwugl.allocation_id
select lds.allocation_title positionCode,lds.allocation_id allocationId
from logpm_distribution_stock lds
LEFT JOIN logpm_warehouse_updown_goods_log lwugl on lds.parcel_list_id = lwugl.association_id and lwugl.binding_type = 2 and lwugl.create_time >= DATE_SUB(NOW(), INTERVAL 10 MINUTE)
where lds.bill_lading_id = #{reservationId} and lds.stockup_id = #{stockupId} and lds.parcel_list_id = #{parcelListId}
GROUP BY lwugl.create_time ,lwugl.position_code,lwugl.allocation_id
LIMIT 1
</select>

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

@ -22,10 +22,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.distribution.dto.app.StockupDTO;
import com.logpm.distribution.entity.DistributionStockupEntity;
import com.logpm.distribution.excel.DistributionStockupExcel;
import com.logpm.distribution.vo.DistributionStockupListVO;
import com.logpm.distribution.vo.DistributionStockupSelfVO;
import com.logpm.distribution.vo.DistributionStockupStockListVO;
import com.logpm.distribution.vo.DistributionStockupVO;
import com.logpm.distribution.vo.*;
import com.logpm.warehouse.entity.WarehouseUpdownGoodsEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -145,6 +143,9 @@ public interface DistributionStockupMapper extends BaseMapper<DistributionStocku
*/
DistributionStockupSelfVO selectStockupDetails(@Param("reservationId") Long reservationId);
DistributionStockupSelfVO selectStockupStockListDetails(Long reservationId);
List<DistributionStockupStockListVO> selectStockupSelf(@Param("reservationId")Long reservationId);
/**
@ -184,4 +185,13 @@ public interface DistributionStockupMapper extends BaseMapper<DistributionStocku
* @return
*/
List<DistributionStockupSelfVO> stockupOffShelf(@Param("param")StockupDTO stockupDTO);
/**
*
* @param stockupDTO
* @return
*/
List<DistributionStockupTrayVO> getLocationSelection(@Param("param") StockupDTO stockupDTO);
List<DistributionStockupTrayVO> getLocationMarketSelection(@Param("param")StockupDTO stockupDTO);
}

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

@ -67,6 +67,23 @@
ldbs.order_status in (1,2) and ldbs.bill_lading_id = #{param.reservationId}
</where>
</select>
<select id="getLocationMarketSelection" resultType="com.logpm.distribution.vo.DistributionStockupTrayVO">
select lwug.position_code positionCode,lwug.allocation_id allocationId,lwug.allocation_title allocationTitle,lwug.num
from logpm_distribution_reservation_stocklist ldrs
LEFT JOIN logpm_distribution_stock_list ldsl on ldrs.stocklist_id = ldsl.id
LEFT JOIN logpm_warehouse_updown_goods lwug on lwug.association_id = ldsl.material_id and lwug.association_type = '4' and ldsl.market_id = lwug.market_id
and ldsl.incoming_batch = lwug.incoming_batch
where ldrs.id = #{param.deliveryDetailsId}
</select>
<select id="getLocationSelection" resultType="com.logpm.distribution.vo.DistributionStockupTrayVO">
select lwug.position_code positionCode,lwug.allocation_id allocationId,lwug.allocation_title allocationTitle,lwug.num
from logpm_distribution_delivery_details lddd
LEFT JOIN logpm_distribution_stock_list ldsl on lddd.stock_list_id = ldsl.id
LEFT JOIN logpm_warehouse_updown_goods lwug on lwug.association_id = ldsl.material_id and lwug.association_type = '4' and ldsl.market_id = lwug.market_id
and ldsl.incoming_batch = lwug.incoming_batch
where lddd.id = #{param.deliveryDetailsId}
GROUP BY lwug.position_code ,lwug.allocation_id,lwug.allocation_title,lwug.num
</select>
<select id="stockupOffShelf" resultType="com.logpm.distribution.vo.DistributionStockupSelfVO">
select lwug.id lwugId,lds.id ldsId,ldrp.packet_bar_code orderPackageCode,lwug.allocation_id allocationId
from logpm_distribution_reservation_package ldrp
@ -241,22 +258,7 @@
LEFT JOIN logpm_distribution_stockup_info ldsi on ds.id = ldsi.stockup_id
LEFT JOIN logpm_distribution_reservation_stocklist ldrs on ldrs.reservation_id = ldsi.reservation_id and ldrs.stock_list_status in (1,3)
where ds.id = lds.id
) inventoryNub,
(
select COUNT(DISTINCT ldsk.id)
from logpm_distribution_stockup ds
LEFT JOIN logpm_distribution_stockup_info ldsi on ds.id = ldsi.stockup_id
LEFT JOIN logpm_distribution_reservation_package ldrp on ldrp.reservation_id = ldsi.reservation_id and ldrp.packet_bar_status in (1,3)
LEFT JOIN logpm_distribution_stock ldsk on ldsk.parcel_list_id = ldrp.parce_list_id and ldsk.stockup_id =ds.id
where ds.id = lds.id
)+(
select COUNT(DISTINCT ldsk.id)
from logpm_distribution_stockup ds
LEFT JOIN logpm_distribution_stockup_info ldsi on ds.id = ldsi.stockup_id
LEFT JOIN logpm_distribution_reservation_stocklist ldrs on ldrs.reservation_id = ldsi.reservation_id and ldrs.stock_list_status in (1,3)
LEFT JOIN logpm_distribution_stock ldsk on ldsk.stock_list_id = ldrs.stocklist_id and ldsk.stockup_id =ds.id
where ds.id = lds.id and ldsk.stockup_id = lds.id
) realNum
) inventoryNub
from logpm_distribution_stockup lds
LEFT JOIN logpm_distribution_stockup_info ldsi on lds.id = ldsi.stockup_id
LEFT JOIN logpm_distribution_reservation_stockarticle ldrs on ldrs.reservation_id = ldsi.reservation_id
@ -305,21 +307,7 @@
select SUM(lddd.quantity)
from logpm_distribution_delivery_details lddd
where lddd.bill_lading_id = ldbs.bill_lading_id
) inventoryNub,
(
select COUNT(DISTINCT id)
from logpm_distribution_stock
where parcel_list_id in (
select id
from logpm_distribution_parcel_list
where ldbs.stock_article_id = stock_article_id
) and bill_lading_id = ldbs.bill_lading_id
)+(
select COUNT(DISTINCT lds.id)
from logpm_distribution_delivery_details lddd
LEFT JOIN logpm_distribution_stock lds on lddd.stock_list_id = lds.stock_list_id
where lds.bill_lading_id =ldbs.bill_lading_id
) realNum
) inventoryNub
from logpm_distribution_stockup lds
LEFT JOIN logpm_distribution_stockup_info ldsi on lds.id = ldsi.stockup_id and ldsi.stock_up_type = 3
LEFT JOIN logpm_distrilbution_bill_stock ldbs on ldbs.bill_lading_id = ldsi.reservation_id and ldbs.order_status in (1,2)
@ -360,22 +348,24 @@
</select>
<select id="selectStockupSelf" resultType="com.logpm.distribution.vo.DistributionStockupStockListVO">
select lddd.stock_list_id stockListId,
ldsl.storage_location allocation,
ldsl.description_goods materialName,
ldsl.sku sku,
ldsl.cargo_norms cargoNorms,
lddd.quantity planNum,
ldsl.cargo_unit cargoUnit,
ldsl.tray_name trayName,
ldsl.unpack unpack,
(
select COUNT(id)
from logpm_distribution_stock
where bill_lading_id = lddd.bill_lading_id
) realNum
GROUP_CONCAT(DISTINCT lwug.position_code) allocation,
ldsl.description_goods materialName,
ldsl.sku sku,
ldsl.cargo_norms cargoNorms,
lddd.quantity planNum,
ldsl.cargo_unit cargoUnit,
ldsl.tray_name trayName,
ldsl.unpack unpack,
(
select COUNT(id)
from logpm_distribution_stock
where bill_lading_id = lddd.bill_lading_id
) realNum,lddd.id deliveryDetailsId
from logpm_distribution_delivery_details lddd
LEFT JOIN logpm_distribution_stock_list ldsl on lddd.stock_list_id = ldsl.id
where lddd.bill_lading_id = #{reservationId}
LEFT JOIN logpm_warehouse_updown_goods lwug on lwug.association_id = ldsl.material_id and lwug.association_type = '4' and ldsl.market_id = lwug.market_id and ldsl.incoming_batch = lwug.incoming_batch
where lddd.bill_lading_id = #{reservationId}
GROUP BY lddd.stock_list_id,ldsl.description_goods,ldsl.sku,ldsl.cargo_norms,lddd.quantity,ldsl.cargo_unit,ldsl.tray_name,ldsl.unpack,lddd.id
</select>
@ -407,6 +397,30 @@
where ldsi.reservation_id = #{reservationId}
</select>
<select id="selectStockupStockListDetails" resultType="com.logpm.distribution.vo.DistributionStockupSelfVO">
select lds.stockup_area goodsAreaName,
(
select GROUP_CONCAT(DISTINCT ldsa.mall_name SEPARATOR ',')
from logpm_distrilbution_bill_stock ldbs
LEFT JOIN logpm_distribution_stock_article ldsa on ldsa.id = ldbs.stock_article_id
where ldbs.bill_lading_id = ldsi.reservation_id
) consignee,(
select SUM(lddd.quantity)
from logpm_distribution_delivery_details lddd
where lddd.bill_lading_id = ldsi.reservation_id
) planNum,(
select COUNT(id)
from logpm_distribution_stock
where stock_list_id in (
select lddd.stock_list_id
from logpm_distribution_delivery_details lddd
where lddd.bill_lading_id = ldsi.reservation_id
) and bill_lading_id = ldsi.reservation_id and ldsi.stockup_id = stockup_id
) scanNum
from logpm_distribution_stockup_info ldsi
LEFT JOIN logpm_distribution_stockup lds on ldsi.stockup_id = lds.id
where ldsi.reservation_id = #{reservationId}
</select>
<select id="selectStockupClientInfoSelf" resultType="com.logpm.distribution.vo.DistributionStockupListVO">

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

@ -64,4 +64,6 @@ public interface DistrilbutionBillStockMapper extends BaseMapper<DistrilbutionBi
List<DistributionStockupSelfVO> selectDistrilbutionBillPackWuSelf(@Param("reservationId")Long reservationId,@Param("stockupId") Long stockupId);
List<DistributionStockupSelfVO> selectDistrilbutionBillOverPackWuSelf(@Param("param")StockupDTO stockupDTO);
List<DistributionStockPackageVO> listPackageSelf(@Param("reservationId")Long reservationId);
}

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

@ -5,7 +5,13 @@
<!-- 通用查询映射结果 -->
<resultMap id="distrilbutionBillStockResultMap" type="com.logpm.distribution.entity.DistrilbutionBillStockEntity">
</resultMap>
<select id="listPackageSelf" resultType="com.logpm.distribution.vo.DistributionStockPackageVO">
select ldpl.id parcelListId,ldpl.order_package_code packetBarCode,ldbs.stock_article_id stockArticleId,ldbs.bill_lading_id reservationId,ldpl.order_code orderCode
from logpm_distrilbution_bill_stock ldbs
LEFT JOIN logpm_distribution_parcel_list ldpl on ldpl.stock_article_id = ldbs.stock_article_id
where ldbs.bill_lading_id = #{reservationId}
</select>
<select id="selectDistrilbutionBillStockPage" resultMap="distrilbutionBillStockResultMap">
select * from logpm_distrilbution_bill_stock where is_deleted = 0
@ -47,7 +53,7 @@
</where>
</select>
<select id="selectDistrilbutionBillOverPackWuSelf" resultType="com.logpm.distribution.vo.DistributionStockupSelfVO">
select DISTINCT COUNT(lwugl.id) planNum ,(
select DISTINCT COUNT(lds.id) planNum ,(
SELECT COUNT(lt.id)
FROM logpm_distribution_stock lt
WHERE lt.parcel_list_id = ldpl.id and lt.stockup_id = ldsi.stockup_id
@ -60,56 +66,40 @@
SELECT GROUP_CONCAT(lwtg.tray_code SEPARATOR ',')
FROM logpm_warehouse_tray_goods lwtg
where lwtg.association_id = ldpl.id and lwtg.association_type = 3
) trays,ldpl.id parcelListId,lwugl.id lwugId
) trays,ldpl.id parcelListId,lds.allocation_id lwugId
from logpm_distribution_stockup_info ldsi
LEFT JOIN logpm_distrilbution_bill_stock ldbs on ldsi.reservation_id = ldbs.bill_lading_id
LEFT JOIN logpm_distribution_parcel_list ldpl on ldpl.stock_article_id = ldbs.stock_article_id and ldpl.order_package_grounding_status = 10
LEFT JOIN logpm_warehouse_updown_goods_log lwugl on ldpl.id = lwugl.association_id and lwugl.binding_type = 2 and lwugl.create_time >= DATE_SUB(NOW(), INTERVAL 10 MINUTE)
LEFT JOIN logpm_distribution_stock lds on lds.stockup_id =ldsi.stockup_id and lds.parcel_list_id = ldpl.id
<!-- LEFT JOIN logpm_warehouse_updown_goods_log lwugl on ldpl.id = lwugl.association_id and lwugl.binding_type = 2 and lwugl.create_time >= DATE_SUB(NOW(), INTERVAL 10 MINUTE)-->
<where>
ldsi.stockup_id = #{param.stockupId} and ldsi.reservation_id = #{param.reservationId}
<if test=" param.allocationId != '' and param.allocationId != null ">
and lwugl.allocation_id = #{param.allocationId}
<!-- and lwugl.allocation_id = #{param.allocationId}-->
and lds.allocation_id = #{param.allocationId}
</if>
</where>
GROUP BY ldpl.id,lwugl.id
GROUP BY ldpl.id,lds.allocation_id
</select>
<select id="selectDistrilbutionBillPackWuSelf" resultType="com.logpm.distribution.vo.DistributionStockupSelfVO">
select DISTINCT CASE WHEN lwug.id is null THEN
(
(select COUNT(id)
from logpm_distribution_parcel_list
where stock_article_id = ldbs.stock_article_id) - (
select COUNT(lwug.id)
from logpm_distribution_parcel_list dpl
LEFT JOIN logpm_warehouse_updown_goods lwug on dpl.id = lwug.association_id
where dpl.stock_article_id = ldbs.stock_article_id
)
)
ELSE (
select COUNT(lwug.id)
from logpm_distribution_parcel_list dpl
LEFT JOIN logpm_warehouse_updown_goods lwug on dpl.id = lwug.association_id
where dpl.stock_article_id = ldbs.stock_article_id
)
END planNum ,(
select DISTINCT (
SELECT COUNT(lt.id)
FROM logpm_distribution_stock lt
WHERE lt.parcel_list_id = ldpl.id and lt.stockup_id = ldsi.stockup_id and lt.reservation_id = ldsi.reservation_id
WHERE lt.parcel_list_id = ldpl.id and lt.stockup_id = ldsi.stockup_id and lt.bill_lading_id = ldsi.reservation_id
) scanNum,(
select stockup_area
from logpm_distribution_stockup
where id = ldsi.stockup_id
) consignee,(
SELECT GROUP_CONCAT(lwtg.tray_code SEPARATOR ',')
FROM logpm_warehouse_tray_goods lwtg
where lwtg.association_id = ldpl.id and lwtg.association_type = 3
) trays
) trays,ldbs.stock_article_id stockArticleId,ldpl.id parcelListId,lds.allocation_id allocationId
from logpm_distribution_stockup_info ldsi
LEFT JOIN logpm_distrilbution_bill_stock ldbs on ldsi.reservation_id = ldbs.bill_lading_id
LEFT JOIN logpm_distribution_parcel_list ldpl on ldpl.stock_article_id = ldbs.stock_article_id and ldpl.order_package_grounding_status = 10
LEFT JOIN logpm_warehouse_updown_goods lwug on ldpl.id = lwug.association_id
where ldsi.stockup_id = #{stockupId} and ldsi.reservation_id = #{reservationId} and lwug.id is null
LEFT JOIN logpm_distribution_stock lds on ldpl.id = lds.parcel_list_id
where ldsi.stockup_id = #{stockupId} and ldsi.reservation_id = #{reservationId}
</select>
<select id="exportDistrilbutionBillStock" resultType="com.logpm.distribution.excel.DistrilbutionBillStockExcel">
@ -187,7 +177,7 @@
from logpm_distrilbution_bill_stock ldbs
LEFT JOIN logpm_distribution_parcel_list ldpl on ldbs.stock_article_id = ldpl.stock_article_id
LEFT JOIN logpm_warehouse_updown_goods lwug on ldpl.id = lwug.association_id
LEFT JOIN logpm_warehouse_tray_goods lwtg on lwtg.association_id = lwug.association_id
LEFT JOIN logpm_warehouse_tray_goods lwtg on lwtg.association_id = ldpl.id
LEFT JOIN logpm_distribution_stock lds on lds.parcel_list_id = ldpl.id and lds.bill_lading_id = ldbs.bill_lading_id
where ldbs.bill_lading_id = #{reservationId}

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

@ -87,7 +87,7 @@ public interface IDistributionDeliveryListService extends BaseService<Distributi
/**
*App-装车扫描
*/
Resp loadingscan(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO);
R loadingscan(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO);
/**
*App-装车确认
*/
@ -228,4 +228,33 @@ public interface IDistributionDeliveryListService extends BaseService<Distributi
List<PrintPreviewVO> printBatch(String ids,Integer type) throws Exception;
void testData(String s) throws Exception;
/**
* 标签补打
* @param distrilbutionloadingscanDTO
* @return
*/
R patchwork(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO);
/**
* 补打库存品二维码
* @param distrilbutionloadingscanDTO
* @return
*/
R patchworkInventoryCode(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO);
/**
* 批量打印预约单
* @param ids
* @return
*/
List<PrintPreviewVO> printBatchByReservation(String ids);
/**
* 查询托盘详情
* @param page
* @param distributionDeliveryList
* @return
*/
IPage<DistributionAppReservationVO> getAppDeliveryreservationTraysPage(IPage<DistributionAppReservationVO> page, DistributionAppDeliveryListDTO distributionDeliveryList);
}

52
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionLoadscanAbnormalService.java

@ -0,0 +1,52 @@
/*
* 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.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.distribution.entity.DistributionLoadscanAbnormalEntity;
import com.logpm.distribution.excel.DistributionLoadscanAbnormalExcel;
import com.logpm.distribution.vo.DistributionLoadscanAbnormalVO;
import org.springblade.core.mp.base.BaseService;
import java.util.List;
/**
* 异常装车扫描表 服务类
*
* @author BladeX
* @since 2023-09-22
*/
public interface IDistributionLoadscanAbnormalService extends BaseService<DistributionLoadscanAbnormalEntity> {
/**
* 自定义分页
*
* @param page
* @param distributionLoadscanAbnormal
* @return
*/
IPage<DistributionLoadscanAbnormalVO> selectDistributionLoadscanAbnormalPage(IPage<DistributionLoadscanAbnormalVO> page, DistributionLoadscanAbnormalVO distributionLoadscanAbnormal);
/**
* 导出数据
*
* @param queryWrapper
* @return
*/
List<DistributionLoadscanAbnormalExcel> exportDistributionLoadscanAbnormal(Wrapper<DistributionLoadscanAbnormalEntity> queryWrapper);
}

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

@ -81,6 +81,7 @@ public interface IDistributionReservationPackageService extends BaseService<Dist
*/
List<DistributionStockPackageVO> listPackage(Long reservationId);
/**
* 查询预约中间表的包件集合
* @param reservationPackageEntity

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

@ -94,7 +94,7 @@ public interface IDistributionStockListService extends BaseService<DistributionS
IPage<DistributionStockListVO> pageOwn(IPage<Object> page, Map<String, Object> distributionStockList);
DistributionStockupStockListInfoVO selectStockListInfo(Long reservationId, Long stockListId);
DistributionStockupStockListInfoVO selectStockListInfo(Long reservationId, Long stockListId,Long allocationId);
List<String> selectWarehouseAreaByReservationId(Long reservationId);
@ -124,11 +124,13 @@ public interface IDistributionStockListService extends BaseService<DistributionS
/**
* 自提查询库存品数据
*
* @param reservationId
* @param stockListId
* @param allocationId
* @return
*/
DistributionStockupStockListInfoVO selectStockListInfoSelf(Long reservationId, Long stockListId);
DistributionStockupStockListInfoVO selectStockListInfoSelf(Long reservationId, Long stockListId,Long allocationId);
List<DistributionStockListEntity> getListByMarketIdAndMaterialName(Long marketId, String materialName, Long warehouseId);

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

@ -24,6 +24,7 @@ import com.logpm.distribution.excel.DistributionStockupExcel;
import com.logpm.distribution.vo.*;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
import org.springblade.system.entity.User;
import java.util.List;
import java.util.Map;
@ -105,19 +106,23 @@ public interface IDistributionStockupService extends BaseService<DistributionSto
/**
* 包件数据查询
*
* @param reservationId
* @param stockListId
* @param allocationId
* @return
*/
DistributionStockupStockListInfoVO selectStockListInfo(Long reservationId, Long stockListId);
DistributionStockupStockListInfoVO selectStockListInfo(Long reservationId, Long stockListId,Long allocationId);
/**
* 自提库存品包件查询
*
* @param reservationId
* @param stockListId
* @param allocationId
* @return
*/
DistributionStockupStockListInfoVO selectStockListInfoSelf(Long reservationId, Long stockListId);
DistributionStockupStockListInfoVO selectStockListInfoSelf(Long reservationId, Long stockListId ,Long allocationId);
/**
* 订单详细
@ -167,10 +172,32 @@ public interface IDistributionStockupService extends BaseService<DistributionSto
DistributionStockupSelfVO selectStockupDetails(Long reservationId);
DistributionStockupSelfVO selectStockupStockListDetails(Long reservationId);
/**
* 备货打印包条扫码
* @param stockupDTO
* @return
*/
Integer selectPackagePrint(StockupDTO stockupDTO);
/**
* 库存品选择货位展示
*
* @param stockupDTO
* @return
*/
List<DistributionStockupTrayVO> getLocationSelection(StockupDTO stockupDTO);
/**
* 库存品选择货位展示
*
* @param stockupDTO
* @return
*/
List<DistributionStockupTrayVO> getLocationMarketSelection(StockupDTO stockupDTO);
/**
* @return
*/
List<User> getRoleList(String deptId, String tenantId, String roleNames);
}

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

@ -75,4 +75,6 @@ public interface IDistrilbutionBillStockService extends BaseService<Distrilbutio
List<DistributionStockupSelfVO> selectDistrilbutionBillPackWuSelf(Long reservationId, Long stockupId);
List<DistributionStockupSelfVO> selectDistrilbutionBillOverPackWuSelf(StockupDTO stockupDTO);
List<DistributionStockPackageVO> listPackageSelf(Long reservationId);
}

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

@ -740,8 +740,8 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
@Override
@Transactional(isolation = Isolation.READ_UNCOMMITTED, rollbackFor = Exception.class)
public void checkStockArticleSignStatus(DistributionParcelListEntity parcelListEntity) {
parcelListEntity.setOrderPackageStatus(OrderPackageStatusConstant.yiqianshou.getValue());
distributionParcelListService.updateById(parcelListEntity);
// parcelListEntity.setOrderPackageStatus(OrderPackageStatusConstant.yiqianshou.getValue());
// distributionParcelListService.updateById(parcelListEntity);
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListService.getBaseMapper().selectList(Wrappers.<DistributionParcelListEntity>query().lambda().eq(DistributionParcelListEntity::getStockArticleId, parcelListEntity.getStockArticleId()));
boolean flag = parcelListEntityList.stream().allMatch(p -> p.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue()));
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(parcelListEntity.getStockArticleId());

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

File diff suppressed because it is too large Load Diff

54
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionLoadscanAbnormalServiceImpl.java

@ -0,0 +1,54 @@
/*
* 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.service.impl;
import com.logpm.distribution.entity.DistributionLoadscanAbnormalEntity;
import com.logpm.distribution.excel.DistributionLoadscanAbnormalExcel;
import com.logpm.distribution.mapper.DistributionLoadscanAbnormalMapper;
import com.logpm.distribution.service.IDistributionLoadscanAbnormalService;
import com.logpm.distribution.vo.DistributionLoadscanAbnormalVO;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
/**
* 异常装车扫描表 服务实现类
*
* @author BladeX
* @since 2023-09-22
*/
@Service
public class DistributionLoadscanAbnormalServiceImpl extends BaseServiceImpl<DistributionLoadscanAbnormalMapper, DistributionLoadscanAbnormalEntity> implements IDistributionLoadscanAbnormalService {
@Override
public IPage<DistributionLoadscanAbnormalVO> selectDistributionLoadscanAbnormalPage(IPage<DistributionLoadscanAbnormalVO> page, DistributionLoadscanAbnormalVO distributionLoadscanAbnormal) {
return page.setRecords(baseMapper.selectDistributionLoadscanAbnormalPage(page, distributionLoadscanAbnormal));
}
@Override
public List<DistributionLoadscanAbnormalExcel> exportDistributionLoadscanAbnormal(Wrapper<DistributionLoadscanAbnormalEntity> queryWrapper) {
List<DistributionLoadscanAbnormalExcel> distributionLoadscanAbnormalList = baseMapper.exportDistributionLoadscanAbnormal(queryWrapper);
//distributionLoadscanAbnormalList.forEach(distributionLoadscanAbnormal -> {
// distributionLoadscanAbnormal.setTypeName(DictCache.getValue(DictEnum.YES_NO, DistributionLoadscanAbnormal.getType()));
//});
return distributionLoadscanAbnormalList;
}
}

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

@ -120,7 +120,7 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl<Distribut
IPage<DistributionParcelListVO> parcelListOwn = baseMapper.getParcelListOwn(page, Long.parseLong((String) o));
parcelListOwn.getRecords().forEach(i ->{
if(ObjectUtils.isNotNull(i) && ObjectUtils.isNotNull(i.getStockupStatus())){
i.setStockupStatusName(DictBizCache.getValue(DictBizConstant.STOCKUP_STATUS,i.getStockupStatus()));
i.setStockupStatusName(DictBizCache.getValue(DictBizConstant.ORDER_PACKAGE_STOCKUP_STATUS,i.getStockupStatus()));
}
//出现货位信息
String s = warehouseUpdownGoodsClient.selectMsgBywrap(i.getId());

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

@ -35,6 +35,8 @@ import com.logpm.distribution.wrapper.DistributionParcelListWrapper;
import com.logpm.distribution.wrapper.DistributionReservationWrapper;
import com.logpm.distribution.wrapper.DistributionStockArticleWrapper;
import com.logpm.distribution.wrapper.DistributionStockListWrapper;
import com.logpm.oldproject.entity.WayBillEntity;
import com.logpm.oldproject.feign.IWayBillClient;
import com.logpm.warehouse.entity.WarehouseWaybillEntity;
import com.logpm.warehouse.feign.IWarehouseWaybillClient;
import lombok.extern.slf4j.Slf4j;
@ -175,6 +177,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
@Autowired
private DistributionStockupInfoMapper distributionStockupInfoMapper;
@Autowired
private IWayBillClient wayBillClient;
@ -281,6 +286,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
HashSet<String> storeName = new HashSet<>();
HashSet<String> mallName = new HashSet<>();
HashSet<String> receivingUnit = new HashSet<>();
HashSet<String> waybillNo = new HashSet<>();
HashSet<String> waybillId = new HashSet<>();
HashSet<String> marketPhone = new HashSet<>();
AtomicReference<BigDecimal> initTotal = new AtomicReference<>(BigDecimal.ZERO);
//存在订单构建预约订单关联信息
if (!Func.isEmpty(stockArticleList)) {
@ -293,6 +301,18 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
//存在订单的情况下才会对预约和包件的关系进行维护
//选择了订单但是未进行包件的选择,默认选择了订单下的所有在库包件
stockArticleList.forEach(s -> {
// WarehouseWaybillEntity byWaybillNo = warehouseWaybillClient.findByWaybillNo(s.getWaybillNumber());
WayBillEntity wayBillEntity = wayBillClient.getByWaybillNo(s.getWaybillNumber());
if (Func.isNotEmpty(wayBillEntity)){
waybillId.add(wayBillEntity.getId().toString());
if (Func.isNotEmpty(wayBillEntity.getTakePhone())){
marketPhone.add(wayBillEntity.getTakePhone());
}
}
if (Func.isNotEmpty(s.getWaybillNumber())){
waybillNo.add(s.getWaybillNumber());
}
if (Func.isNotBlank(s.getServiceNumber())) {
serviceNumber.add(s.getServiceNumber());
}
@ -458,6 +478,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
reservationEntity.setWarehouseName(myCurrentWarehouse.getName());
reservationEntity.setMallName(String.join(",", mallName));
reservationEntity.setStoreName(String.join(",", storeName));
reservationEntity.setWaybillNo(String.join(",", waybillNo));
reservationEntity.setWaybillId(String.join(",", waybillId));
reservationEntity.setMailPhone(String.join(",", marketPhone));
reservationEntity.setReceivingUnit(String.join(",",receivingUnit));
//统计数量
BigDecimal fee = initTotal.get().add(reservationEntity.getOtherFee());
@ -1426,7 +1449,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
clientTotal.getAndIncrement();
// AtomicInteger receivingUnit = new AtomicInteger();
//这里查询有问题
WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient.findByWaybillNo(k);
DistributionReservationDTO reservation = allocationDTO.getReservation();
DistributionReservationEntity reservationEntity = Func.copy(reservation, DistributionReservationEntity.class);
reservationEntity.setWaybillNo(k);
@ -1441,6 +1464,8 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
// HashSet<String> waybillNo = new HashSet<>();
//运单ID -------这里运单Id后续可能变更为运单号
HashSet<String> waybillId = new HashSet<>();
HashSet<String> waybillNo = new HashSet<>();
//订单服务号
HashSet<String> serviceNumber = new HashSet<>();
//仓库名称
@ -1449,6 +1474,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
HashSet<String> mallName = new HashSet<>();
//门店名称
HashSet<String> storeName = new HashSet<>();
//门店名称
HashSet<String> marketPhone = new HashSet<>();
//包件总数量
AtomicInteger packageTotal = new AtomicInteger();
// ------------------收货信息构建-------------------
@ -1461,6 +1489,25 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
//运单客户收货单位
HashSet<String> consignee = new HashSet<>();
v.forEach(s->{
// WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient.findByWaybillNo(s.getWaybillNumber());
// if (Func.isNotEmpty(warehouseWaybillEntity.getConsigneeMobile())){
// marketPhone.add(warehouseWaybillEntity.getConsigneeMobile());
// }
// if (Func.isNotEmpty(warehouseWaybillEntity.getConsigneeAddress())){
// consigneeAddress.add(warehouseWaybillEntity.getConsigneeMobile());
// }
WayBillEntity wayBillEntity = wayBillClient.getByWaybillNo(s.getWaybillNumber());
if (Func.isNotEmpty(wayBillEntity)){
waybillId.add(wayBillEntity.getId().toString());
if (Func.isNotEmpty(wayBillEntity.getTakePhone())){
marketPhone.add(wayBillEntity.getTakePhone());
}
if (Func.isNotEmpty(wayBillEntity.getTakeAddress())){
consigneeAddress.add(wayBillEntity.getTakeAddress());
}
}
//预约单数据填充
if (Func.isNotEmpty(s.getMallName())){
mallName.add(s.getMallName());
@ -1477,8 +1524,11 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
if (Func.isNotEmpty(s.getWarehouse())){
warehouseName.add(s.getWarehouse());
}
if (Func.isNotEmpty(s.getWaybillId())){
waybillId.add(s.getWaybillId().toString());
// if (Func.isNotEmpty(s.getWaybillId())){
// waybillId.add(s.getWaybillId().toString());
// }
if (Func.isNotEmpty(s.getWaybillNumber())){
waybillNo.add(s.getWaybillNumber());
}
if (Func.isNotEmpty(s.getConsigneeUnit())){
consignee.add(s.getConsigneeUnit());
@ -1489,9 +1539,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
if (Func.isNotEmpty(s.getConsigneeMobile())){
consigneeMobile.add(s.getConsigneeMobile());
}
if (Func.isNotEmpty(s.getConsigneeAddress())){
consigneeAddress.add(s.getConsigneeAddress());
}
// if (Func.isNotEmpty(s.getConsigneeAddress())){
// consigneeAddress.add(s.getConsigneeAddress());
// }
if (Func.isNotEmpty(s.getServiceNumber())){
serviceNumber.add(s.getServiceNumber());
}
@ -1540,11 +1590,16 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
reservationEntity.setConsignee(String.join(",", consigneeName));
reservationEntity.setDeliveryPhone(String.join(",", consigneeMobile));
reservationEntity.setDeliveryAddress(String.join(",", consigneeAddress));
reservationEntity.setReceivingUnit(String.join(",", consignee));
reservationEntity.setReceivingUnit(k);
// reservationEntity.setWaybillId(String.join(",", waybillId));
reservationEntity.setReservationDate(date);
// -----------------------预约信息完善----------------------------
reservationEntity.setReservationCode(reservationMa());
reservationEntity.setReplaceFee(BigDecimal.ZERO);
reservationEntity.setFee(BigDecimal.ZERO);
reservationEntity.setCollectFee(BigDecimal.ZERO);
reservationEntity.setOrderSource(ReservationOrderSourceConstant.zijian.getValue());
// reservationEntity.setDeliveryWay();
reservationEntity.setDeliveryType(DistributionTypeConstant.shangpei.getValue());
reservationEntity.setStockupStatus(ReservationStockupStatusConstant.daibeihuo.getValue());
@ -1552,6 +1607,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
reservationEntity.setStockArticleId(String.join(",", orderNumber));
reservationEntity.setServiceNumber(String.join(",", serviceNumber));
reservationEntity.setWarehouseName(String.join(",", warehouseName));
reservationEntity.setWaybillNo(String.join(",", waybillNo));
reservationEntity.setWaybillId(String.join(",", waybillId));
reservationEntity.setMailPhone(String.join(",", marketPhone));
reservationEntity.setMallName(String.join(",", mallName));
reservationEntity.setStoreName(String.join(",", storeName));
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getValue());
@ -1961,7 +2019,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
@Override
public R<?> getReservationStockListInfo(Long reservationId) {
List<DistributionStockListEntity> stockListEntityList = baseMapper.getReservationStockListInfo(reservationId);
List<DistributionStockListVO> stockListEntityList = baseMapper.getReservationStockListInfo(reservationId);
return R.data(stockListEntityList);
}
@ -2098,6 +2156,12 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
HashSet<String> receivingUnit = new HashSet<>();
HashSet<String> waybillNo = new HashSet<>();
HashSet<String> waybillId = new HashSet<>();
HashSet<String> marketPhone = new HashSet<>();
AtomicReference<BigDecimal> initTotal = new AtomicReference<>(BigDecimal.ZERO);
//存在订单构建预约订单关联信息
@ -2111,6 +2175,17 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
return R.fail("订单已预约!!!");
}
stockArticleList.forEach(s -> {
// WarehouseWaybillEntity byWaybillNo = warehouseWaybillClient.findByWaybillNo();
// String consigneeMobile = byWaybillNo.getConsigneeMobile();
WayBillEntity wayBillEntity = wayBillClient.getByWaybillNo(s.getWaybillNumber());
if (Func.isNotEmpty(wayBillEntity)) {
waybillId.add(wayBillEntity.getId().toString());
if (Func.isNotEmpty(wayBillEntity.getTakePhone())){
marketPhone.add(wayBillEntity.getTakePhone());
}
}
// storeName.add(s.getStoreName());
// mallName.add(s.getMallName());
// warehouseNames.add(s.getWarehouse());
@ -2133,6 +2208,10 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
if (Func.isNotBlank(s.getConsigneeUnit())) {
receivingUnit.add(s.getConsigneeUnit());
}
if (Func.isNotBlank(s.getWaybillNumber())) {
waybillNo.add(s.getWaybillNumber());
}
// DistributionStockArticleEntity stockArticleEntity = Func.copy(s, DistributionStockArticleEntity.class);
DistributionReservationStockarticleEntity distributionReservationStockarticleEntity = new DistributionReservationStockarticleEntity();
//预约订单数量
@ -2276,6 +2355,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
reservationEntity.setWarehouseName(String.join(",", warehouseNames));
reservationEntity.setMallName(String.join(",", mallName));
reservationEntity.setStoreName(String.join(",", storeName));
reservationEntity.setWaybillNo(String.join(",",waybillNo));
reservationEntity.setWaybillId(String.join(",",waybillId));
reservationEntity.setMailPhone(String.join(",",marketPhone));
reservationEntity.setReceivingUnit(String.join(",",receivingUnit));
//统计数量
BigDecimal fee = initTotal.get().add(reservationEntity.getOtherFee());

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

@ -18,6 +18,7 @@ package com.logpm.distribution.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
@ -262,7 +263,9 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
//进行签收数量的修改
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId());
//修改签收数量
Integer j = distributionSignforMapper.updateSignforNum(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub());
// Integer j = distributionSignforMapper.updateSignforNum(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub());
//更新装车包件数和签收包件数
Integer j = distributionSignforMapper.updateSignforByReservationId(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub());
}
//TODO 这里就需要一个异步的包件状态维护方法
}else if (Func.isEmpty(collect)){
@ -400,105 +403,258 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
@Override
public R signforcontinue(DistrilbutionAppsignforDTO distrilbutionloadingscanDTO) {
//获取当前用户司机
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId());
DistributionDeliverySelfEntity distributionDeliverySelfEntity = new DistributionDeliverySelfEntity();
if (distributionDeliveryListEntity.getKind().equals("1")) {
distributionDeliverySelfEntity = distributionDeliverySelfMapper.selectOne(new QueryWrapper<DistributionDeliverySelfEntity>().lambda()
.eq(DistributionDeliverySelfEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId())
.eq(DistributionDeliverySelfEntity::getIsMaster, 2)
);
} else {
DistributionDeliveryTripartiteEntity distributionDeliveryTripartiteEntity = distributionDeliveryTripartiteMapper.selectOne(new QueryWrapper<DistributionDeliveryTripartiteEntity>().lambda()
.eq(DistributionDeliveryTripartiteEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId()));
BeanUtils.copyProperties(distributionDeliveryTripartiteEntity, distributionDeliverySelfEntity);
}
//查询是否为库存品
//无拆包
List<DistributionLoadscaninvnEntity> distributionLoadscanvnEntities = new ArrayList<>();
// distributionLoadscanvnEntities = distributionDeliveryListMapper.selectdeliveryworkVnScanStockde(distrilbutionloadingscanDTO.getBarcode(), distrilbutionloadingscanDTO.getDeliveryId());
// if (distributionLoadscanvnEntities.size() <= 0) {
//拆包从备货查询
distributionLoadscanvnEntities = distributionDeliveryListMapper.selectdeliveryworkVnScanStockde(distrilbutionloadingscanDTO.getBarcode(), distrilbutionloadingscanDTO.getDeliveryId());
if (distributionLoadscanvnEntities.size() <= 0) {
List<DistributionLoadscanEntity> distributionLoadscanEntities = distributionDeliveryListMapper.selectdeliverywork(distrilbutionloadingscanDTO.getBarcode(), distrilbutionloadingscanDTO.getDeliveryId());
if (distributionLoadscanEntities.size() > 0) {
for (DistributionLoadscanEntity distributionLoadscanEntity : distributionLoadscanEntities) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//回填数据
if (null != distributionDeliverySelfEntity.getDriverId()) {
distributionLoadscanEntity.setDriverId(distributionDeliverySelfEntity.getDriverId());
}
distributionLoadscanEntity.setDriverName(distributionDeliverySelfEntity.getDriverName());
distributionLoadscanEntity.setVehicleName(distributionDeliverySelfEntity.getVehicleNub());
distributionLoadscanEntity.setScanStatus(LoadingStatusConstant.yijianzhuangche.getValue());
distributionLoadscanEntity.setScanType("1");
distributionLoadscanEntity.setSigningTime(simpleDateFormat.format(new Date()));
distributionLoadscanEntity.setSignforState(2);
distributionLoadscanEntity.setReceivedQuantity(distributionLoadscanEntity.getPackageNub());
distributionLoadscanEntity.setIsInsert(2);
if (null != distributionDeliverySelfEntity.getDriverPhone()) {
distributionLoadscanEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone());
}
if (null != distributionDeliverySelfEntity.getVehicleId()) {
distributionLoadscanEntity.setVehicleId(distributionDeliverySelfEntity.getVehicleId());
}
distributionLoadscanEntity.setLoadingId(String.valueOf(distributionDeliverySelfEntity.getId()));
//查询本车次是否第一次扫码,没有则更新上车时间
//Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId());
//更新签收表的装车数量
Integer j = distributionSignforMapper.updateloadByReservationId(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub());
//修改签收表司机签收数量
this.update(new UpdateWrapper<DistributionSignforEntity>().lambda()
.eq(DistributionSignforEntity::getReservationId, distributionLoadscanEntity.getReservationId())
.setSql("received_quantity = received_quantity + " + 1)
);
}
distributionLoadscanService.saveBatch(distributionLoadscanEntities);
return R.success("补录成功");
// ——————————————————————————————————————2023-09-21 异常签收调整————————————————————————————————————————————————————————————————————————
// 思路:查看该该包件是否处于可被签收的状态
// 确定该包件不存在配送计划中
// 查看是否进行了装车操作 -----这一步会筛选该包件是否属于该客户。 只有属于该客户才能被签收
// 如果不是这里则需要对该包件信息进行录入然后标识该包件需要进行回库操作
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda().eq(DistributionParcelListEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode()));
if (Func.isNotEmpty(parcelListEntityList) && parcelListEntityList.size() == 1 ){
DistributionParcelListEntity parcelListEntity = parcelListEntityList.get(0);
if (parcelListEntity.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())){
return Resp.scanFail("操作失败","包件信息有误");
}
return R.fail(3007, "没有该货物");
}
// }
for (DistributionLoadscaninvnEntity distributionLoadscanEntity : distributionLoadscanvnEntities) {
//依次插入该装车记录,设置车辆
if (null != distributionDeliverySelfEntity.getDriverId()) {
distributionLoadscanEntity.setDriverId(distributionDeliverySelfEntity.getDriverId());
//确认该包件确实不属于该配送任务
List<DistributionParcelListEntity> parcelListEntities = distributionDeliveryListMapper.selectPackageListByDeliveryListId(distrilbutionloadingscanDTO.getDeliveryId());
boolean flag = parcelListEntities.stream().anyMatch(p -> p.getOrderPackageStatus().equals(distrilbutionloadingscanDTO.getBarcode()));
if (flag){
log.error("##############包件存在该配送计划中:{}",distrilbutionloadingscanDTO.getBarcode());
return Resp.scanFail("操作失败","包件信息有误");
}
distributionLoadscanEntity.setDriverName(distributionDeliverySelfEntity.getDriverName());
distributionLoadscanEntity.setScanStatus(LoadingStatusConstant.yijianzhuangche.getValue());
distributionLoadscanEntity.setScanType("1");
distributionLoadscanEntity.setScanTime(new Date());
if (null == distributionLoadscanEntity.getPackageNub()) {
distributionLoadscanEntity.setPackageNub(1);
//查询这个包件是否满足该客户的要求
DistributionReservationEntity reservationEntity = distributionReservationMapper.selectById(distrilbutionloadingscanDTO.getReservationId());
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(parcelListEntity.getStockArticleId());
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId());
DistributionDeliverySelfEntity distributionDeliverySelfEntity = new DistributionDeliverySelfEntity();
if (distributionDeliveryListEntity.getKind().equals("1")) {
distributionDeliverySelfEntity = distributionDeliverySelfMapper.selectOne(new QueryWrapper<DistributionDeliverySelfEntity>().lambda()
.eq(DistributionDeliverySelfEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId())
.eq(DistributionDeliverySelfEntity::getIsMaster, 2)
);
} else {
DistributionDeliveryTripartiteEntity distributionDeliveryTripartiteEntity = distributionDeliveryTripartiteMapper.selectOne(new QueryWrapper<DistributionDeliveryTripartiteEntity>().lambda()
.eq(DistributionDeliveryTripartiteEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId()));
BeanUtils.copyProperties(distributionDeliveryTripartiteEntity, distributionDeliverySelfEntity);
}
distributionLoadscanEntity.setLoadingId(String.valueOf(distributionDeliverySelfEntity.getId()));
distributionLoadscanEntity.setVehicleName(distributionDeliverySelfEntity.getVehicleNub());
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
if (null != distributionDeliverySelfEntity.getDriverPhone()) {
distributionLoadscanEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone());
}
if (null != distributionDeliverySelfEntity.getVehicleId()) {
distributionLoadscanEntity.setVehicleId(distributionDeliverySelfEntity.getVehicleId());
switch (reservationEntity.getDeliveryType()){
case "1":
//商配
if (reservationEntity.getConsignee().equals(stockArticleEntity.getConsigneePerson()) && reservationEntity.getReceivingUnit().equals(stockArticleEntity.getConsigneeAddress())){
//这里的订单才满足被异常签收
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());
}
distributionLoadscanEntity.setScanTime(new Date());
distributionLoadscanEntity.setPackageId(parcelListEntity.getId());
distributionLoadscanEntity.setOrderPackageCode(distrilbutionloadingscanDTO.getBarcode());
distributionLoadscanEntity.setSigningTime(simpleDateFormat.format(new Date()));
distributionLoadscanEntity.setReceivedQuantity(parcelListEntity.getQuantity());
distributionLoadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId());
distributionLoadscanEntity.setIsSignfor(2);
distributionLoadscanEntity.setIsInsert(2);
distributionLoadscanEntity.setSignforState(2);
distributionLoadscanEntity.setPackageNub(parcelListEntity.getQuantity());
distributionLoadscanEntity.setOrderId(parcelListEntity.getStockArticleId());
distributionLoadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId());
distributionLoadscanEntity.setDeliveryId(distrilbutionloadingscanDTO.getDeliveryId());
distributionLoadscanEntity.setScanUser(AuthUtil.getUser().getUserName());
distributionLoadscanEntity.setSigningUser(AuthUtil.getUser().getUserName());
distributionLoadscanEntity.setSigningUserId(AuthUtil.getUser().getUserId());
distributionLoadscanEntity.setAbnormalNote("异常签收");
distributionLoadscanService.save(distributionLoadscanEntity);
//进行签收数量的修改
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId());
//修改签收数量
// Integer j = distributionSignforMapper.updateSignforNum(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub());
//更新装车包件数和签收包件数
Integer j = distributionSignforMapper.updateSignforByReservationId(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub());
}else {
return Resp.scanFail("操作失败","不属于该客户");
}
break;
case "2":
//市配
if (reservationEntity.getConsignee().equals(stockArticleEntity.getCustomerName())
&& reservationEntity.getDeliveryPhone().equals(stockArticleEntity.getCustomerTelephone())
&& reservationEntity.getDeliveryAddress().equals(stockArticleEntity.getCustomerAddress())){
//这里的订单才满足被异常签收
//这里的订单才满足被异常签收
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());
}
distributionLoadscanEntity.setScanTime(new Date());
distributionLoadscanEntity.setPackageId(parcelListEntity.getId());
distributionLoadscanEntity.setOrderPackageCode(distrilbutionloadingscanDTO.getBarcode());
distributionLoadscanEntity.setSigningTime(simpleDateFormat.format(new Date()));
distributionLoadscanEntity.setReceivedQuantity(parcelListEntity.getQuantity());
distributionLoadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId());
distributionLoadscanEntity.setIsSignfor(2);
distributionLoadscanEntity.setIsInsert(2);
distributionLoadscanEntity.setSignforState(2);
distributionLoadscanEntity.setPackageNub(parcelListEntity.getQuantity());
distributionLoadscanEntity.setOrderId(parcelListEntity.getStockArticleId());
distributionLoadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId());
distributionLoadscanEntity.setDeliveryId(distrilbutionloadingscanDTO.getDeliveryId());
distributionLoadscanEntity.setScanUser(AuthUtil.getUser().getUserName());
distributionLoadscanEntity.setSigningUser(AuthUtil.getUser().getUserName());
distributionLoadscanEntity.setSigningUserId(AuthUtil.getUser().getUserId());
distributionLoadscanService.save(distributionLoadscanEntity);
//进行签收数量的修改
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId());
//修改签收数量
// Integer j = distributionSignforMapper.updateSignforNum(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub());
//更新装车包件数和签收包件数
Integer j = distributionSignforMapper.updateSignforByReservationId(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub());
}else {
return Resp.scanFail("操作失败","不属于该客户");
}
break;
}
//回填数据
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
distributionLoadscanEntity.setSigningTime(simpleDateFormat.format(new Date()));
distributionLoadscanEntity.setSignforState(2);
distributionLoadscanEntity.setReceivedQuantity(1);
distributionLoadscanEntity.setIsInsert(2);
//更新签收表的装车数量
Integer j = distributionSignforMapper.updateloadByReservationId(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub());
}else {
log.error("############出现相同的包件码:{}",distrilbutionloadingscanDTO.getBarcode());
return Resp.scanFail("操作失败","包件信息有误");
}
boolean b = distributionLoadscaninvnService.saveBatch(distributionLoadscanvnEntities);
return b ? R.success("补录成功") : R.fail(3007, "没有该货物");
return Resp.scanSuccess("操作成功","异常签收成功");
}
// //获取当前用户司机
// DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId());
// DistributionDeliverySelfEntity distributionDeliverySelfEntity = new DistributionDeliverySelfEntity();
// if (distributionDeliveryListEntity.getKind().equals("1")) {
// distributionDeliverySelfEntity = distributionDeliverySelfMapper.selectOne(new QueryWrapper<DistributionDeliverySelfEntity>().lambda()
// .eq(DistributionDeliverySelfEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId())
// .eq(DistributionDeliverySelfEntity::getIsMaster, 2)
// );
// } else {
// DistributionDeliveryTripartiteEntity distributionDeliveryTripartiteEntity = distributionDeliveryTripartiteMapper.selectOne(new QueryWrapper<DistributionDeliveryTripartiteEntity>().lambda()
// .eq(DistributionDeliveryTripartiteEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId()));
// BeanUtils.copyProperties(distributionDeliveryTripartiteEntity, distributionDeliverySelfEntity);
// }
// //查询是否为库存品
// //无拆包
//
// List<DistributionLoadscaninvnEntity> distributionLoadscanvnEntities = new ArrayList<>();
// // distributionLoadscanvnEntities = distributionDeliveryListMapper.selectdeliveryworkVnScanStockde(distrilbutionloadingscanDTO.getBarcode(), distrilbutionloadingscanDTO.getDeliveryId());
// // if (distributionLoadscanvnEntities.size() <= 0) {
// //拆包从备货查询
// distributionLoadscanvnEntities = distributionDeliveryListMapper.selectdeliveryworkVnScanStockde(distrilbutionloadingscanDTO.getBarcode(), distrilbutionloadingscanDTO.getDeliveryId());
// if (distributionLoadscanvnEntities.size() <= 0) {
// List<DistributionLoadscanEntity> distributionLoadscanEntities = distributionDeliveryListMapper.selectdeliverywork(distrilbutionloadingscanDTO.getBarcode(), distrilbutionloadingscanDTO.getDeliveryId());
// if (distributionLoadscanEntities.size() > 0) {
// for (DistributionLoadscanEntity distributionLoadscanEntity : distributionLoadscanEntities) {
// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
// //回填数据
// if (null != distributionDeliverySelfEntity.getDriverId()) {
// distributionLoadscanEntity.setDriverId(distributionDeliverySelfEntity.getDriverId());
// }
// distributionLoadscanEntity.setDriverName(distributionDeliverySelfEntity.getDriverName());
// distributionLoadscanEntity.setVehicleName(distributionDeliverySelfEntity.getVehicleNub());
// distributionLoadscanEntity.setScanStatus(LoadingStatusConstant.yijianzhuangche.getValue());
// distributionLoadscanEntity.setScanType("1");
// distributionLoadscanEntity.setSigningTime(simpleDateFormat.format(new Date()));
// distributionLoadscanEntity.setSignforState(2);
// distributionLoadscanEntity.setReceivedQuantity(distributionLoadscanEntity.getPackageNub());
// distributionLoadscanEntity.setIsInsert(2);
// if (null != distributionDeliverySelfEntity.getDriverPhone()) {
// distributionLoadscanEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone());
// }
// if (null != distributionDeliverySelfEntity.getVehicleId()) {
// distributionLoadscanEntity.setVehicleId(distributionDeliverySelfEntity.getVehicleId());
// }
// distributionLoadscanEntity.setLoadingId(String.valueOf(distributionDeliverySelfEntity.getId()));
// //查询本车次是否第一次扫码,没有则更新上车时间
// //Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId());
// //更新签收表的装车数量
// Integer j = distributionSignforMapper.updateloadByReservationId(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub());
// //修改签收表司机签收数量
// this.update(new UpdateWrapper<DistributionSignforEntity>().lambda()
// .eq(DistributionSignforEntity::getReservationId, distributionLoadscanEntity.getReservationId())
// .setSql("received_quantity = received_quantity + " + 1)
// );
// }
// distributionLoadscanService.saveBatch(distributionLoadscanEntities);
//
// return R.success("补录成功");
// }
// return R.fail(3007, "没有该货物");
// }
//
// // }
// for (DistributionLoadscaninvnEntity distributionLoadscanEntity : distributionLoadscanvnEntities) {
// //依次插入该装车记录,设置车辆
// if (null != distributionDeliverySelfEntity.getDriverId()) {
// distributionLoadscanEntity.setDriverId(distributionDeliverySelfEntity.getDriverId());
// }
// distributionLoadscanEntity.setDriverName(distributionDeliverySelfEntity.getDriverName());
// distributionLoadscanEntity.setScanStatus(LoadingStatusConstant.yijianzhuangche.getValue());
// distributionLoadscanEntity.setScanType("1");
// distributionLoadscanEntity.setScanTime(new Date());
// if (null == distributionLoadscanEntity.getPackageNub()) {
// distributionLoadscanEntity.setPackageNub(1);
// }
// distributionLoadscanEntity.setLoadingId(String.valueOf(distributionDeliverySelfEntity.getId()));
// distributionLoadscanEntity.setVehicleName(distributionDeliverySelfEntity.getVehicleNub());
//
// if (null != distributionDeliverySelfEntity.getDriverPhone()) {
// distributionLoadscanEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone());
// }
// if (null != distributionDeliverySelfEntity.getVehicleId()) {
// distributionLoadscanEntity.setVehicleId(distributionDeliverySelfEntity.getVehicleId());
// }
// //回填数据
// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
// distributionLoadscanEntity.setSigningTime(simpleDateFormat.format(new Date()));
// distributionLoadscanEntity.setSignforState(2);
// distributionLoadscanEntity.setReceivedQuantity(1);
// distributionLoadscanEntity.setIsInsert(2);
// //更新签收表的装车数量
// Integer j = distributionSignforMapper.updateloadByReservationId(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub());
// }
//
// boolean b = distributionLoadscaninvnService.saveBatch(distributionLoadscanvnEntities);
// return b ? R.success("补录成功") : R.fail(3007, "没有该货物");
// }
@Override
public IPage<DistributionAppSignforVO> getAppDeliveryreservationListPage(IPage<DistributionAppSignforVO> page, DistributionAppDeliveryListDTO distributionDeliveryList) {
@ -868,8 +1024,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
log.error("#############reservationEntity参数错误:{}",reservationEntity);
return R.fail("服务器正忙~~");
}
//查询数据
DistributionSignforEntity distributionSignforEntity = baseMapper.selectOne(new QueryWrapper<DistributionSignforEntity>().lambda()
.eq(DistributionSignforEntity::getDeliveryId, distributionSignfor.getDeliveryId())
@ -954,7 +1108,12 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
loadscaninvnEntity.setSigningUser(user.getUserName());
loadscaninvnEntity.setSigningUserId(user.getUserId());
loadscaninvnEntity.setSigningTime(simpleDateFormat.format(new Date()));
loadscaninvnEntity.setMsg("一键签收数据补录");
if (distributionSignfor.getIsClerk()){
loadscaninvnEntity.setMsg("文员一键签收数据补录");
}else {
loadscaninvnEntity.setMsg("司机一键签收数据补录");
}
distributionLoadscaninvnService.save(loadscaninvnEntity);
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distributionDeliveryListEntity.getId());
//更新签收表的签收数量和装车数量
@ -984,7 +1143,11 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
if (list.size()==1){
//正常进行扫描记录签收修改
DistributionLoadscaninvnEntity loadscaninvnEntity = list.get(0);
loadscaninvnEntity.setMsg("一键签收数据补录");
if (distributionSignfor.getIsClerk()){
loadscaninvnEntity.setMsg("文员一键签收数据补录");
}else {
loadscaninvnEntity.setMsg("司机一键签收数据补录");
}
loadscaninvnEntity.setSignforState(LoadScanSigningStatusConstant.yiqianshou.getValue());
loadscaninvnEntity.setReceivedQuantity(detailEntity.getNum());
loadscaninvnEntity.setOneClick(1);
@ -1013,10 +1176,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.selectPackageListByReservationId(distributionSignforEntity.getReservationId());
//包件不需要考虑备货、装车直接可进行签收 过滤已装车的包件
List<DistributionParcelListEntity> noLoadingPackage = parcelListEntityList.stream().filter(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())).collect(Collectors.toList());
for (DistributionParcelListEntity parcelListEntity : parcelListEntityList) {
if (Func.equals(parcelListEntity.getOrderPackageStockupStatus(), OrderPackageStatusConstant.yiqianshou.getValue())) {
if (Func.equals(parcelListEntity.getOrderPackageStatus(), OrderPackageStatusConstant.yiqianshou.getValue())) {
continue;
} else if (Func.equals(parcelListEntity.getOrderPackageLoadingStatus(), OrderPackageLoadingStatusConstant.yizhuangche.getValue())) {
//修改包件的状态为出库状态
@ -1030,7 +1191,11 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()));
if (list.size() == 1) {
DistributionLoadscanEntity loadscanEntity = list.get(0);
loadscanEntity.setMsg("一键签收数据补录");
if (distributionSignfor.getIsClerk()){
loadscanEntity.setMsg("文员一键签收数据补录");
}else {
loadscanEntity.setMsg("司机一键签收数据补录");
}
loadscanEntity.setSignforState(LoadScanSigningStatusConstant.yiqianshou.getValue());
loadscanEntity.setReceivedQuantity(parcelListEntity.getQuantity());
loadscanEntity.setOneClick(1);
@ -1097,7 +1262,11 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
loadscanEntity.setOneClick(2);
loadscanEntity.setOneQclick(2);
loadscanEntity.setSigningTime(simpleDateFormat.format(new Date()));
loadscanEntity.setMsg("一键签收数据补录");
if (distributionSignfor.getIsClerk()){
loadscanEntity.setMsg("文员一键签收数据补录");
}else {
loadscanEntity.setMsg("司机一键签收数据补录");
}
distributionLoadscanService.save(loadscanEntity);
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distributionDeliveryListEntity.getId());
//更新签收表的签收数量和装车数量
@ -1116,21 +1285,21 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionReservationMapper.updateById(reservationEntity);
//维护配送任务
distributionAsyncService.checkDeliverySignStatusByReservation(distributionSignforEntity.getDeliveryId());
boolean update = this.update(new UpdateWrapper<DistributionSignforEntity>().lambda()
LambdaUpdateWrapper<DistributionSignforEntity> set = new UpdateWrapper<DistributionSignforEntity>().lambda()
.eq(DistributionSignforEntity::getId, distributionSignforEntity.getId())
.set(StringUtils.isNotBlank(distributionSignfor.getDeliverySignPictures()), DistributionSignforEntity::getDeliverySignPictures, distributionSignfor.getDeliverySignPictures())
.set(StringUtils.isNotBlank(distributionSignfor.getSigningType()), DistributionSignforEntity::getSigningType, distributionSignfor.getSigningType())
.set(distributionSignfor.getIsClerk(), DistributionSignforEntity::getSigningStatus, 1)
.set(distributionSignfor.getIsClerk(), DistributionSignforEntity::getDriverSigning, 2)
.set(distributionSignfor.getIsClerk(), DistributionSignforEntity::getSigningStatus, 2)
.set(!distributionSignfor.getIsClerk(), DistributionSignforEntity::getDriverSigning, 2)
.set(distributionSignfor.getIsClerk(), DistributionSignforEntity::getSigningTime, simpleDateFormat.format(new Date()))
.set(!distributionSignfor.getIsClerk(), DistributionSignforEntity::getSigningTime, simpleDateFormat.format(new Date()))
.set(distributionSignfor.getIsClerk() && StringUtils.isNotBlank(distributionSignfor.getClerkSignRemarks()), DistributionSignforEntity::getClerkSignRemarks, distributionSignfor.getClerkSignRemarks())
.set(!distributionSignfor.getIsClerk() && StringUtils.isNotBlank(distributionSignfor.getDriverRemarks()), DistributionSignforEntity::getDriverRemarks, distributionSignfor.getDriverRemarks())
.set(!distributionSignfor.getIsClerk(), DistributionSignforEntity::getDriverSigning, 2)
.set(!distributionSignfor.getIsClerk(), DistributionSignforEntity::getSjsigningTime, simpleDateFormat.format(new Date()))
);
.set(!distributionSignfor.getIsClerk(), DistributionSignforEntity::getSjsigningTime, simpleDateFormat.format(new Date()));
boolean update = this.update(set);
return R.status(true);
}

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

@ -540,9 +540,11 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
for (String id : idArray) {
DistributionStockArticleQRCodeVO orderNoList = baseMapper.getOrderNoList(null, id);
Map<String, Object> map = JSONObject.parseObject(JSONObject.toJSONString(orderNoList), Map.class);
map.put("id",id);
String filename = QRCodeUtil.createCodeToFile(orderNoList.getQrCode());
map.put("img", QRCodeUtil.getEmpAutograph(filename));
String fileTypeName = QRCodeUtil.createCodeToFileType(orderNoList.getQrCode());
// 订单号 生成二维码
String fileTypeName = QRCodeUtil.createCodeToFile(orderNoList.getOrderCode());
map.put("imgType", QRCodeUtil.getEmpAutograph(fileTypeName));
data.add(map);
}
@ -556,7 +558,6 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
public IPage<DistributionStockArticleVO> handlePackage(IPage<DistributionStockArticleVO> pageVO) {
pageVO.getRecords().forEach(s->{
HashSet<String> str = new HashSet<>();
// List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListService.getBaseMapper().selectList(Wrappers.<DistributionParcelListEntity>query().lambda()
// .eq(DistributionParcelListEntity::getStockArticleId, s.getId())
// .ne(DistributionParcelListEntity::getOrderPackageReservationStatus, OrderPackageReservationStatusConstant.yiyueyue.getValue()));

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

@ -323,8 +323,8 @@ public class DistributionStockListServiceImpl extends BaseServiceImpl<Distributi
}
@Override
public DistributionStockupStockListInfoVO selectStockListInfo(Long reservationId, Long stockListId) {
return baseMapper.selectStockListInfo(reservationId,stockListId);
public DistributionStockupStockListInfoVO selectStockListInfo(Long reservationId, Long stockListId, Long allocationId) {
return baseMapper.selectStockListInfo(reservationId,stockListId,allocationId);
}
@Override
@ -379,8 +379,8 @@ public class DistributionStockListServiceImpl extends BaseServiceImpl<Distributi
}
@Override
public DistributionStockupStockListInfoVO selectStockListInfoSelf(Long reservationId, Long stockListId) {
return baseMapper.selectStockListInfoSelf(reservationId,stockListId);
public DistributionStockupStockListInfoVO selectStockListInfoSelf(Long reservationId, Long stockListId, Long allocationId) {
return baseMapper.selectStockListInfoSelf(reservationId,stockListId,allocationId);
}
@Override

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

@ -34,6 +34,7 @@ import com.logpm.distribution.vo.DistributionStockVO;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springblade.common.constant.order.OrderStockupStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageStockupStatusConstant;
import org.springblade.common.constant.stockup.StockupStatusConstant;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.context.annotation.Lazy;
@ -227,14 +228,14 @@ public class DistributionStockServiceImpl extends BaseServiceImpl<DistributionSt
stockEntity.setUnit(byId.getMaterialUnit()); //单位
stockEntity.setOrderSelfNumbering(byId.getOrderCode()); //自编码
stockEntity.setStockupArea(distributionStocks.getStockupArea()); //自编码
stockEntity.setStockupId(Long.parseLong(distributionStocks.getGoodsAreaId())); //自编码
stockEntity.setStockupId(distributionStocks.getStockupId()); //自编码
stockEntity.setType(1);
stockEntity.setOutboundType(byId1.getTypeService());//类型
list.add(stockEntity);
//修改备货状态
DistributionParcelListEntity parcelListEntity = new DistributionParcelListEntity();
parcelListEntity.setId(Long.parseLong(i));
parcelListEntity.setOrderPackageStockupStatus(StockupStatusConstant.yibeihuo.getValue());
parcelListEntity.setOrderPackageStockupStatus(OrderPackageStockupStatusConstant.yibeihu.getValue());
distributionParcelListService.updateById(parcelListEntity);
});

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

@ -36,14 +36,11 @@ import com.logpm.distribution.vo.*;
import com.logpm.distribution.wrapper.DistributionStockupWrapper;
import com.logpm.warehouse.entity.WarehouseTaryAllocationEntity;
import com.logpm.warehouse.entity.WarehouseTrayGoodsEntity;
import com.logpm.warehouse.entity.WarehouseUpdownGoodsLogEntity;
import com.logpm.warehouse.feign.IWarehouseTaryAllocationClient;
import com.logpm.warehouse.feign.IWarehouseTrayGoodsClient;
import com.logpm.warehouse.feign.IWarehouseUpdownGoodsLogClient;
import com.logpm.warehouse.entity.WarehouseUpdownGoodsEntity;
import com.logpm.warehouse.feign.*;
import lombok.AllArgsConstructor;
import org.springblade.common.constant.CodeDesEnum;
import org.springblade.common.constant.DictBizConstant;
import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageStockupStatusConstant;
import org.springblade.common.constant.stocklist.StockLockingStatusConstant;
import org.springblade.common.constant.stocklist.StockSignfoStatusConstant;
@ -57,6 +54,9 @@ import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.system.cache.DictBizCache;
import org.springblade.system.entity.User;
import org.springblade.system.feign.ISysClient;
import org.springblade.system.feign.IUserSearchClient;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
@ -69,6 +69,7 @@ import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 备货信息表 服务实现类
@ -87,6 +88,12 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
@Autowired
private IDistributionDeliveryDetailsService distributionDeliveryDetailsService;
@Autowired
private ISysClient sysClient;
@Autowired
private IUserSearchClient userSearchClient;
@Autowired
private IDistributionReservationStocklistService distributionReservationStocklistService;
@ -140,7 +147,10 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
private IDistributionAsyncService distributionAsyncService;
private IWarehouseUpdownGoodsLogClient warehouseUpdownGoodsLogClient;
@Autowired
private IWarehouseUpdownTypeClient warehouseUpdownTypeClient;
@Autowired
private final IWarehouseUpdownGoodsClient warehouseUpdownGoodsClient;
@Override
public IPage<DistributionStockupVO> selectDistributionStockupPage(IPage<DistributionStockupVO> page, DistributionStockupVO distributionStockup) {
@ -521,7 +531,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
y.setScanNum(y.getScanNum()+1);
}
//t托盘信息
if(ObjectUtils.isNotNull(y.getTrayId()) && !y.getTrayId().equals(i.getTrayId())){
if(ObjectUtils.isNotNull(y.getTrayId()) && ObjectUtils.isNotNull(i.getTrayId()) && !y.getTrayId().equals(i.getTrayId())){
y.setPallet(y.getPallet()+","+i.getPallet());
}
//订单自编号信息
@ -585,7 +595,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
wu.setScanNum(wu.getScanNum()+1);
}
//托盘信息
if(ObjectUtils.isNotNull(wu.getTrayId()) && !wu.getTrayId().equals(i.getTrayId())){
if(ObjectUtils.isNotNull(wu.getTrayId()) && ObjectUtils.isNotNull(i.getTrayId()) && !wu.getTrayId().equals(i.getTrayId())){
wu.setPallet(wu.getPallet()+","+i.getPallet());
}
//订单自编号信息
@ -626,7 +636,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
wu.setScanNum(wu.getScanNum()+1);
}
//托盘信息
if(ObjectUtils.isNotNull(wu.getTrayId()) && !wu.getTrayId().equals(i.getTrayId())){
if(ObjectUtils.isNotNull(wu.getTrayId()) && ObjectUtils.isNotNull(i.getTrayId()) && !wu.getTrayId().equals(i.getTrayId())){
wu.setPallet(wu.getPallet()+","+i.getPallet());
}
//订单自编号信息
@ -682,7 +692,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
y.setScanNum(y.getScanNum()+1);
}
//t托盘信息
if(ObjectUtils.isNotNull(y.getTrayId()) && !y.getTrayId().equals(p.getTrayId())){
if(ObjectUtils.isNotNull(y.getTrayId()) && ObjectUtils.isNotNull(p.getTrayId()) && !y.getTrayId().equals(p.getTrayId())){
y.setPallet(y.getPallet()+","+p.getPallet());
}
}
@ -739,7 +749,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
y.setScanNum(y.getScanNum()+1);
}
//t托盘信息
if(ObjectUtils.isNotNull(y.getTrayId()) && !y.getTrayId().equals(p.getTrayId())){
if(ObjectUtils.isNotNull(y.getTrayId()) && ObjectUtils.isNotNull(p.getTrayId()) && !y.getTrayId().equals(p.getTrayId())){
y.setPallet(y.getPallet()+","+p.getPallet());
}
if(y.getPlanNum().equals(y.getScanNum())){
@ -783,7 +793,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
wu.setScanNum(wu.getScanNum()+1);
}
//托盘信息
if(ObjectUtils.isNotNull(wu.getTrayId()) && !wu.getTrayId().equals(i.getTrayId())){
if(ObjectUtils.isNotNull(wu.getTrayId()) && ObjectUtils.isNotNull(i.getTrayId()) && !wu.getTrayId().equals(i.getTrayId())){
wu.setPallet(wu.getPallet()+","+i.getPallet());
}
//订单自编号信息
@ -825,11 +835,20 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
if (stockupDTO.getTypeService().equals("3")) {
//自
List<DistributionStockupStockListVO> list = distributionStockupService.selectStockupSelf(reservationId);
list.forEach(i ->{
if(i.getPlanNum().equals(i.getRealNum())){
i.setCompleteStact(true);
}
});
return list;
} else {
//商,市
List<DistributionStockupStockListVO> list = distributionReservationService.selectStockupStockList(reservationId);
list.forEach(i ->{
if(i.getPlanNum().equals(i.getRealNum())){
i.setCompleteStact(true);
}
});
return list;
}
@ -977,14 +996,14 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
if(ObjectUtils.isNull(distributionStockupSelfVO.getConsignee())){
distributionStockupSelfVO.setConsignee(i.getConsignee());
}else{
if(ObjectUtils.isNotNull(distributionStockupSelfVO.getConsignee()) && !distributionStockupSelfVO.getConsignee().equals(i.getConsignee()) ){
if(ObjectUtils.isNotNull(i.getConsignee()) && !distributionStockupSelfVO.getConsignee().equals(i.getConsignee()) ){
distributionStockupSelfVO.setConsignee(distributionStockupSelfVO.getConsignee()+","+i.getConsignee());
}
}
if(ObjectUtils.isNull(distributionStockupSelfVO.getTrays())){
distributionStockupSelfVO.setTrays(i.getTrays());
}else{
if(ObjectUtils.isNotNull(distributionStockupSelfVO.getTrays()) && !distributionStockupSelfVO.getTrays().equals(i.getTrays())){
if(ObjectUtils.isNotNull(i.getTrays()) && !distributionStockupSelfVO.getTrays().equals(i.getTrays())){
distributionStockupSelfVO.setTrays(distributionStockupSelfVO.getTrays()+","+i.getTrays());
}
}
@ -999,14 +1018,14 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
if(ObjectUtils.isNull(distributionStockupSelfVO.getConsignee())){
distributionStockupSelfVO.setConsignee(i.getConsignee());
}else{
if(ObjectUtils.isNotNull(distributionStockupSelfVO.getConsignee()) && !distributionStockupSelfVO.getConsignee().equals(i.getConsignee()) ){
if(ObjectUtils.isNotNull(i.getConsignee()) && !distributionStockupSelfVO.getConsignee().equals(i.getConsignee()) ){
distributionStockupSelfVO.setConsignee(distributionStockupSelfVO.getConsignee()+","+i.getConsignee());
}
}
if(ObjectUtils.isNull(distributionStockupSelfVO.getTrays())){
distributionStockupSelfVO.setTrays(i.getTrays());
}else{
if(ObjectUtils.isNotNull(distributionStockupSelfVO.getTrays()) && !distributionStockupSelfVO.getTrays().equals(i.getTrays())){
if(ObjectUtils.isNotNull(i.getTrays()) && !distributionStockupSelfVO.getTrays().equals(i.getTrays())){
distributionStockupSelfVO.setTrays(distributionStockupSelfVO.getTrays()+","+i.getTrays());
}
}
@ -1067,28 +1086,37 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
if(ObjectUtils.isNotNull(stockupDTO.getAllocationId())){
//查询订单数量 有库位
List<DistributionStockupSelfVO> distributionStockupSelfVOS = distrilbutionBillStockService.selectDistrilbutionBillPackSelf(stockupDTO);
List<DistributionStockupSelfVO> collect = distributionStockupSelfVOS.stream().filter(i -> ObjectUtils.isNotNull(i.getWarehouseArea())).collect(Collectors.toList());
DistributionStockupSelfVO distributionStockup= new DistributionStockupSelfVO();
AtomicReference<Integer> j = new AtomicReference<>(0);
AtomicReference<Integer> y = new AtomicReference<>(0);
distributionStockupSelfVOS.forEach(i -> {
collect.forEach(i -> {
j.updateAndGet(v -> v + i.getPlanNum());
y.updateAndGet(v -> v + i.getScanNum());
if(ObjectUtils.isNull(distributionStockup.getConsignee())){
distributionStockup.setConsignee(i.getConsignee());
}else{
if(ObjectUtils.isNotNull(i.getConsignee())){
if(ObjectUtils.isNotNull(distributionStockup.getConsignee()) && !distributionStockup.getConsignee().equals(i.getConsignee())){
String s = distributionStockup.getConsignee() + i.getConsignee();
distributionStockup.setConsignee(s);
}
}
if(ObjectUtils.isNull(distributionStockup.getTrays())){
if(ObjectUtils.isNull(distributionStockup.getTrays()) ){
distributionStockup.setTrays(i.getTrays());
}else{
if(ObjectUtils.isNotNull(i.getTrays())){
if(ObjectUtils.isNotNull(distributionStockup.getTrays()) && !distributionStockup.getTrays().equals(i.getTrays())){
String s = distributionStockup.getTrays() + i.getTrays();
distributionStockup.setTrays(s);
}
}
if(ObjectUtils.isNull(distributionStockup.getWarehouseArea()) ){
distributionStockup.setWarehouseArea(i.getWarehouseArea());
}else{
if(ObjectUtils.isNotNull(distributionStockup.getWarehouseArea()) && !distributionStockup.getWarehouseArea().equals(i.getWarehouseArea())){
String s = distributionStockup.getWarehouseArea() + i.getWarehouseArea();
distributionStockup.setWarehouseArea(s);
}
}
});
distributionStockup.setPlanNum(j.get());
distributionStockup.setScanNum(y.get());
@ -1100,22 +1128,24 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
AtomicReference<Integer> j = new AtomicReference<>(0);
AtomicReference<Integer> y = new AtomicReference<>(0);
distributionStockupSelfVOS.forEach(i -> {
j.updateAndGet(v -> v + i.getPlanNum());
y.updateAndGet(v -> v + i.getScanNum());
if(ObjectUtils.isNull(distributionStockup.getConsignee())){
distributionStockup.setConsignee(i.getConsignee());
}else{
if(ObjectUtils.isNotNull(i.getConsignee())){
String s = distributionStockup.getConsignee() + i.getConsignee();
distributionStockup.setConsignee(s);
if(ObjectUtils.isNull(i.getAllocationId())){
j.updateAndGet(v -> v + 1);
y.updateAndGet(v -> v + i.getScanNum());
if(ObjectUtils.isNull(distributionStockup.getConsignee())){
distributionStockup.setConsignee(i.getConsignee());
}else{
if(ObjectUtils.isNotNull(i.getConsignee()) && !distributionStockup.getConsignee().equals(i.getConsignee()) ){
String s = distributionStockup.getConsignee() + i.getConsignee();
distributionStockup.setConsignee(s);
}
}
}
if(ObjectUtils.isNull(distributionStockup.getTrays())){
distributionStockup.setTrays(i.getTrays());
}else{
if(ObjectUtils.isNotNull(i.getTrays())){
String s = distributionStockup.getTrays() + i.getTrays();
distributionStockup.setTrays(s);
if(ObjectUtils.isNull(distributionStockup.getTrays())){
distributionStockup.setTrays(i.getTrays());
}else{
if(ObjectUtils.isNotNull(i.getTrays()) && !distributionStockup.getTrays().equals(i.getTrays())){
String s = distributionStockup.getTrays() + i.getTrays();
distributionStockup.setTrays(s);
}
}
}
});
@ -1137,7 +1167,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
if(Objects.isNull(stockupDTO.getAllocationId())){
while (iterator.hasNext()){
PackageStockupVO next = iterator.next();
if(ObjectUtils.isNotNull(next.getPositionCode()) ){
if(ObjectUtils.isNotNull(next.getAllocationId()) ){
iterator.remove();
continue;
}
@ -1260,12 +1290,12 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
}
@Override
public DistributionStockupStockListInfoVO selectStockListInfo(Long reservationId, Long stockListId) {
public DistributionStockupStockListInfoVO selectStockListInfo(Long reservationId, Long stockListId, Long allocationId) {
//查询客户信息
// DistributionReservationEntity reservationEntity = distributionReservationService.getById(reservationId);
//通过订单id和库位心系,托盘信息查询对应的库存品列表
DistributionStockupStockListInfoVO entity = distributionStockListService.selectStockListInfo(reservationId, stockListId);
DistributionStockupStockListInfoVO entity = distributionStockListService.selectStockListInfo(reservationId, stockListId,allocationId);
List<StockListInfoListVO> list = distributionStockListService.selectStockListInfoList(reservationId, stockListId);
entity.setStockList(list);
@ -1275,9 +1305,9 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
}
@Override
public DistributionStockupStockListInfoVO selectStockListInfoSelf(Long reservationId, Long stockListId) {
public DistributionStockupStockListInfoVO selectStockListInfoSelf(Long reservationId, Long stockListId, Long allocationId) {
DistributionStockupStockListInfoVO entity = distributionStockListService.selectStockListInfoSelf(reservationId, stockListId);
DistributionStockupStockListInfoVO entity = distributionStockListService.selectStockListInfoSelf(reservationId, stockListId,allocationId);
List<StockListInfoListVO> list = distributionStockListService.selectStockListInfoSelfList(reservationId, stockListId);
entity.setStockList(list);
return entity;
@ -1366,17 +1396,43 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
@Transactional(rollbackFor = Exception.class)
public R addPackTrayList(StockupDTO stockupDTO) {
AtomicReference<Boolean> stock = new AtomicReference<>(false);
//查询包件信息
List<DistributionStockPackageVO> list = distributionReservationPackageService.listPackage(stockupDTO.getReservationId());
DistributionStockupInfoEntity one = distributionStockupInfoService.getOne(Wrappers.<DistributionStockupInfoEntity>query().lambda()
.eq(DistributionStockupInfoEntity::getReservationId, stockupDTO.getReservationId())
.eq(DistributionStockupInfoEntity::getStockupId, stockupDTO.getStockupId())
);
List<DistributionStockPackageVO> list = new ArrayList<>();
if(ObjectUtils.isNotNull(one)){
if(one.getStockUpType().equals("3")){
//自提
list = distrilbutionBillStockService.listPackageSelf(stockupDTO.getReservationId());
}else{
// 市,自
//查询包件信息
list = distributionReservationPackageService.listPackage(stockupDTO.getReservationId());
}
}else {
log.warn("预约信息不存在!");
return R.fail(3001, "备货失败!");
}
if(list.size() < 1){
log.warn("包件信息不存在!");
return R.fail(3001, "备货失败!");
}
//查询托盘上面的包件
List<WarehouseTrayGoodsEntity> trayIdList = warehouseTrayGoodsClient.getTrayIdList(stockupDTO.getTrayId());
List<DistributionStockPackageVO> voList = new ArrayList<>();
List<DistributionStockPackageVO> finalList = list;
trayIdList.forEach(t -> {
Optional<DistributionStockPackageVO> first = list.stream().filter(l -> l.getParcelListId().equals(t.getAssociationId())).findFirst();
if (first.isPresent()) {
DistributionStockPackageVO distributionStockPackageVO = first.get();
log.warn("找到了匹配的对象:" + distributionStockPackageVO);
voList.add(distributionStockPackageVO);
boolean b = finalList.stream().anyMatch(l -> l.getParcelListId().equals(t.getAssociationId()));
if (b) {
finalList.stream().forEach(i -> {
if(i.getParcelListId().equals(t.getAssociationId())){
DistributionStockPackageVO distributionStockPackageVO = i;
log.warn("找到了匹配的对象:" + distributionStockPackageVO);
voList.add(distributionStockPackageVO);
}
});
} else {
log.warn("没有找到了匹配的对象;");
stock.set(true);
@ -1387,25 +1443,61 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
} else {
List<DistributionStockEntity> list1 = new ArrayList<>();
voList.forEach(i -> {
DistributionStockEntity distributionStock = new DistributionStockEntity();
distributionStock.setStockupId(stockupDTO.getStockupId());
distributionStock.setStockArticle(i.getStockArticleId());
distributionStock.setGoodsAllocation(i.getGoodsAllocation());//货位信息
distributionStock.setConditions("1");
distributionStock.setParcelListId(i.getParcelListId());
distributionStock.setOrderSelfNumbering(i.getOrderCode());
distributionStock.setType(1);
distributionStock.setDeliveryListCode(i.getNoteNumber());
distributionStock.setDeliveryListId(i.getDeliveryId());
distributionStock.setReservationId(i.getReservationId());
distributionStock.setReservationCode(i.getReservationCode());
distributionStock.setCoding(i.getPacketBarCode());
list1.add(distributionStock);
//查询是否已备货
DistributionParcelListEntity byId = distributionParcelListService.getById(i.getParcelListId());
if(ObjectUtils.isNotNull(byId) && !byId.getOrderPackageStockupStatus().equals(OrderPackageStockupStatusConstant.yibeihu.getValue())){
DistributionStockEntity distributionStock = new DistributionStockEntity();
//修改包件备货状态
DistributionParcelListEntity parcelList = new DistributionParcelListEntity();
parcelList.setId(i.getParcelListId());
parcelList.setOrderPackageStockupStatus(OrderPackageStockupStatusConstant.yibeihu.getValue());
distributionParcelListService.updateById(parcelList);
//货位下架
// warehouseUpdownTypeClient.downPackage(i.getPacketBarCode());
//判断备货任务是否完成
if(one.getStockUpType().equals("3")){
distributionAsyncService.stockupSelfUpdateState(stockupDTO);
distributionStock.setBillLadingId(i.getReservationId());
distributionStock.setConditions("2");
}else{
distributionAsyncService.stockupUpdateState(stockupDTO);
distributionStock.setReservationId(i.getReservationId());
distributionStock.setReservationCode(i.getReservationCode());
distributionStock.setConditions("1");
}
//查询库位信息
WarehouseUpdownGoodsEntity warehouseUpdownGoodsEntity = new WarehouseUpdownGoodsEntity();
warehouseUpdownGoodsEntity.setAssociationId(i.getParcelListId());
warehouseUpdownGoodsEntity.setAssociationValue(i.getPacketBarCode());
WarehouseUpdownGoodsEntity locationInformation = warehouseUpdownGoodsClient.getLocationInformation(warehouseUpdownGoodsEntity);
if(ObjectUtils.isNotNull(locationInformation)){
distributionStock.setAllocationTitle(locationInformation.getPositionCode());
distributionStock.setAllocationId(locationInformation.getAllocationId());
}
distributionStock.setStockupId(stockupDTO.getStockupId());
distributionStock.setStockArticle(i.getStockArticleId());
// distributionStock.setGoodsAllocation(i.getGoodsAllocation());//货位信息
//备货区
DistributionStockupEntity distributionStockupEntity = distributionStockupService.selectById(stockupDTO.getStockupId());
if(ObjectUtils.isNotNull(distributionStockupEntity)){
distributionStock.setStockupArea(distributionStockupEntity.getStockupArea());
}
distributionStock.setParcelListId(i.getParcelListId());
distributionStock.setOrderSelfNumbering(i.getOrderCode());
distributionStock.setType(1);
// distributionStock.setDeliveryListCode(i.getNoteNumber());
// distributionStock.setDeliveryListId(i.getDeliveryId());
distributionStock.setCoding(i.getPacketBarCode());
list1.add(distributionStock);
}
});
//TODO 其他操作
//添加扫描记录
distributionStockService.saveBatch(list1);
return R.fail(200, "备货成功");
if(!list1.isEmpty()){
distributionStockService.saveBatch(list1);
}
return R.success("备货成功");
}
}
@ -1431,7 +1523,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
while (iterator.hasNext()) {
if (i.getTrayId().equals(iterator.next().getTrayId())) {
Integer trayPackNum = iterator.next().getTrayPackNum(); //在这个托盘的数量
List<WarehouseTrayGoodsEntity> trayIdList = warehouseTrayGoodsClient.getTrayIdList(i.getTrayId());
List<WarehouseTrayGoodsEntity> trayIdList = warehouseTrayGoodsClient.getTrayIdList(i.getTrayId().toString());
if (trayPackNum.equals(trayIdList.size())) {
trays.set(true);
}
@ -1664,6 +1756,11 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
return baseMapper.selectStockupDetails(reservationId);
}
@Override
public DistributionStockupSelfVO selectStockupStockListDetails(Long reservationId) {
return baseMapper.selectStockupStockListDetails(reservationId);
}
/**
* 备货打印包件码绑定
*
@ -1738,4 +1835,39 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
}
/**
* 库存品选择货位展示
*
* @param stockupDTO
* @return
*/
@Override
public List<DistributionStockupTrayVO> getLocationSelection(StockupDTO stockupDTO) {
return baseMapper.getLocationSelection(stockupDTO);
}
@Override
public List<DistributionStockupTrayVO> getLocationMarketSelection(StockupDTO stockupDTO) {
return baseMapper.getLocationMarketSelection(stockupDTO);
}
/**
* @return
*/
@Override
public List<User> getRoleList(String deptId, String tenantId, String roleNames) {
R<String> roleIds = sysClient.getRoleIds(tenantId, roleNames);
R<List<User>> listR = userSearchClient.listByRole(roleIds.getData());
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
if(ObjectUtils.isNotNull(myCurrentWarehouse)){
List<User> collect = listR.getData().stream().filter(i ->
ObjectUtils.isNotNull(i.getDeptId()) ? i.getDeptId().equals(myCurrentWarehouse.getDepartment().toString()) : false
).collect(Collectors.toList());
return collect;
}else{
return listR.getData();
}
}
}

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

@ -28,6 +28,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.distribution.bean.Resp;
import com.logpm.distribution.config.RedissonConfig;
import com.logpm.distribution.dto.DistributionStockListDTO;
import com.logpm.distribution.dto.DistrilbutionBillLadingDTO;
import com.logpm.distribution.dto.app.BillLadingAppDTO;
@ -42,6 +43,7 @@ import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderVO;
import com.logpm.distribution.vo.app.DistrilbutionBillLadingInventoryAppVO;
import com.logpm.distribution.wrapper.DistributionStockArticleWrapper;
import lombok.AllArgsConstructor;
import org.redisson.api.RLock;
import org.springblade.common.constant.DictBizConstant;
import org.springblade.common.constant.billLading.BillLadingStatusConstant;
import org.springblade.common.constant.order.OrderReservationStatusConstant;
@ -65,6 +67,7 @@ import java.io.Serializable;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
@ -268,6 +271,20 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
}
}
} else {
//设置lockey
String lockKey ="lock:" + distrilbutionBillLading.getStockArticleId();
RLock lock = new RedissonConfig().redisson().getLock(lockKey);
if(lock.isLocked()){
throw new ServiceException("请勿重复提交!!!");
}
lock.lock(5, TimeUnit.SECONDS);
List<DistrilbutionBillStockEntity> list = distrilbutionBillStockService.list(Wrappers.<DistrilbutionBillStockEntity>query().lambda()
.eq(!distrilbutionBillLading.getStockArticleId().contains(","),DistrilbutionBillStockEntity::getStockArticleId, distrilbutionBillLading.getStockArticleId())
.in(distrilbutionBillLading.getStockArticleId().contains(","),DistrilbutionBillStockEntity::getStockArticleId, distrilbutionBillLading.getStockArticleId().split(","))
);
if(!list.isEmpty()){
throw new ServiceException("当前订单已创建!");
}
//新增
distrilbutionBillLading.setConsignee("1");
distrilbutionBillLading.setStockupCode(distributionReservationService.bianMa());
@ -285,6 +302,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
if (StringUtils.isNotBlank(distrilbutionBillLading.getStockArticleId())) {
String[] split = distrilbutionBillLading.getStockArticleId().split(",");
for (String s : split) {
//查询是否创建过
DistributionStockArticleEntity distributionStockArticle = new DistributionStockArticleEntity();
distributionStockArticle.setId(Long.parseLong(s));
// distributionStockArticle.setOrderStatus(OrderStatusConstant.zhuangche.getValue());

5
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillStockServiceImpl.java

@ -106,4 +106,9 @@ public class DistrilbutionBillStockServiceImpl extends BaseServiceImpl<Distrilbu
return baseMapper.selectDistrilbutionBillOverPackWuSelf(stockupDTO);
}
@Override
public List<DistributionStockPackageVO> listPackageSelf(Long reservationId) {
return baseMapper.listPackageSelf(reservationId);
}
}

52
blade-service/logpm-distribution/src/main/resources/application-prod.yml

@ -29,3 +29,55 @@ spring:
url: ${blade.datasource.distribution.slave.url}
username: ${blade.datasource.distribution.slave.username}
password: ${blade.datasource.distribution.slave.password}
#rabbitmq配置
rabbitmq:
host: 172.16.128.145
port: 5672
username: admin
password: Slwk@123654
#虚拟host 可以不设置,使用server默认host
virtual-host: /
#确认消息已发送到队列(Queue)
publisher-returns: true
publisher-confirm-type: correlated
# 手动提交消息
listener:
simple:
acknowledge-mode: auto
default-requeue-rejected: false
retry:
enabled: true # 开启消费者失败重试
initial-interval: 1000 # 初识的失败等待时长为1秒
multiplier: 1 # 失败的等待时长倍数,下次等待时长 = multiplier * last-interval
max-attempts: 3 # 最大重试次数
stateless: true # true无状态;false有状态。如果业务中包含事务,这里改为false
direct:
acknowledge-mode: manual
template:
mandatory: true
#rabbitmq配置
rabbitmq:
host: 172.16.128.145
port: 5672
username: admin
password: Slwk@123654
#虚拟host 可以不设置,使用server默认host
virtual-host: /
#确认消息已发送到队列(Queue)
publisher-returns: true
publisher-confirm-type: correlated
# 手动提交消息
listener:
simple:
acknowledge-mode: auto
default-requeue-rejected: false
retry:
enabled: true # 开启消费者失败重试
initial-interval: 1000 # 初识的失败等待时长为1秒
multiplier: 1 # 失败的等待时长倍数,下次等待时长 = multiplier * last-interval
max-attempts: 3 # 最大重试次数
stateless: true # true无状态;false有状态。如果业务中包含事务,这里改为false
direct:
acknowledge-mode: manual
template:
mandatory: true

40
blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/controller/FactoryCommonController.java

@ -2,10 +2,7 @@ package com.logpm.factory.comfac.controller;
import com.alibaba.fastjson.JSONObject;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.factory.comfac.dto.OrderInfoDTO;
import com.logpm.factory.comfac.dto.OrderStatusDTO;
import com.logpm.factory.comfac.dto.ReceiveInfoDTO;
import com.logpm.factory.comfac.dto.UnloadCarDTO;
import com.logpm.factory.comfac.dto.*;
import com.logpm.factory.comfac.service.IFactoryCommonService;
import com.logpm.factory.comfac.service.IOrderStatusLogService;
import com.logpm.factory.snm.entity.OrderStatusLog;
@ -189,4 +186,39 @@ public class FactoryCommonController {
}
}
@ResponseBody
@PostMapping("/handleDataAllocationTray")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "处理对应仓库的上架打托数据", notes = "传入waybillDTO")
public R handleDataAllocationTray(@Validated @RequestBody MessageDTO messageDTO) {
log.info("############handleDataAllocationTray: 请求参数{}",messageDTO);
try{
//先保存原始请求数据
OrderStatusLog orderStatusLog = new OrderStatusLog();
orderStatusLog.setArgs(JSONObject.toJSONString(messageDTO));
orderStatusLog.setStatus(1);
orderStatusLog.setType(100);
orderStatusLogService.save(orderStatusLog);
Map<String, Object> map = new HashMap<>();
map.put("messageId", CommonUtil.getUUID());
map.put("logId", orderStatusLog.getId());
map.put("messageData", messageDTO);
map.put("createTime", new Date().getTime());
//将消息携带绑定键值
rabbitTemplate.convertAndSend(RabbitConstant.SYNC_OLD_DATA_EXCHANGE, RabbitConstant.SYNC_OLD_DATA_ROUTING, map);
return R.success("调用成功");
}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: 系统异常");
}
}
}

12
blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/dto/MessageDTO.java

@ -0,0 +1,12 @@
package com.logpm.factory.comfac.dto;
import lombok.Data;
@Data
public class MessageDTO {
private Integer inventoryId;
private Integer warehouseId;
}

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

@ -212,6 +212,29 @@ public class RabbitMqConfiguration {
return BindingBuilder.bind(oupaiReceivingQueue).to(oupaiReceivingExchange).with(RabbitConstant.OUPAI_RECEIVING_ROUTING).noargs();
}
@Bean
public Queue oupaiOldReceivingQueue() {
return new Queue(RabbitConstant.OUPAI_OLD_RECEIVING_QUEUE, true);
}
@Bean
public CustomExchange oupaiOldReceivingExchange() {
Map<String, Object> args = Maps.newHashMap();
args.put("x-delayed-type", "direct");
return new CustomExchange(RabbitConstant.OUPAI_OLD_RECEIVING_EXCHANGE, "x-delayed-message", true, false, args);
}
@Bean
public Binding oupaiOldReceivingBinding(Queue oupaiOldReceivingQueue, CustomExchange oupaiOldReceivingExchange) {
return BindingBuilder.bind(oupaiOldReceivingQueue).to(oupaiOldReceivingExchange).with(RabbitConstant.OUPAI_OLD_RECEIVING_ROUTING).noargs();
}
@Bean
public Queue oupaiTestReceivingQueue() {
return new Queue(RabbitConstant.TEST_RECEIVE_INFO_QUEUE, true);
@ -248,6 +271,23 @@ public class RabbitMqConfiguration {
}
@Bean
public Queue syncOldDataQueue() {
return new Queue(RabbitConstant.SYNC_OLD_DATA_QUEUE, true);
}
@Bean
public CustomExchange syncOldDataExchange() {
Map<String, Object> args = Maps.newHashMap();
args.put("x-delayed-type", "direct");
return new CustomExchange(RabbitConstant.SYNC_OLD_DATA_EXCHANGE, "x-delayed-message", true, false, args);
}
@Bean
public Binding syncOldDataBinding(Queue syncOldDataQueue, CustomExchange syncOldDataExchange) {
return BindingBuilder.bind(syncOldDataQueue).to(syncOldDataExchange).with(RabbitConstant.SYNC_OLD_DATA_ROUTING).noargs();
}
}

36
blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/SyncWarehouseDataToNew.java

@ -78,20 +78,44 @@ public class SyncWarehouseDataToNew {
return ReturnT.FAIL;
}
//保存托盘信息
log.info("###############syncWarehouseToNew: 保存仓库id为{}的托盘开始",oldWarehouseId);
}
return ReturnT.SUCCESS;
}
@XxlJob("syncWarehouseTrayToNew")
public ReturnT<String> syncWarehouseTrayToNew(String param) {
log.info("############syncWarehouseTrayToNew: 同步仓库及货位托盘信息开始 param={}", param);
//查询所有仓库
List<Integer> allWarehouseIds = warehouseClient.getAllWarehouseIds();
for (Integer oldWarehouseId:allWarehouseIds){
WarehouseEntity oldWarehouse = warehouseClient.selectEntityById(oldWarehouseId);
if(Objects.isNull(oldWarehouse)){
log.warn("###############syncWarehouseTrayToNew: 未查询到老系统仓库信息 oldWarehouseId={}",oldWarehouseId);
continue;
}
String no = oldWarehouse.getNo();
String title = oldWarehouse.getTitle();
BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseClient.getWarehouse(title, no);
if(Objects.isNull(basicdataWarehouseEntity)){
log.warn("###############syncWarehouseTrayToNew: 未查询到新系统仓库信息 title={} no={}",title,no);
continue;
}
Long newWarehouseId = basicdataWarehouseEntity.getId();
//同步所有托盘信息
log.info("###############syncWarehouseTrayToNew: 同步所有托盘开始");
boolean trayFlag = saveTrayData(newWarehouseId,oldWarehouseId);
if(trayFlag){
log.info("###############syncWarehouseToNew: 保存仓库id为{}的托盘成功",oldWarehouseId);
log.info("###############syncWarehouseTrayToNew: 保存仓库id为{}的托盘成功",oldWarehouseId);
}else {
log.info("###############syncWarehouseToNew: 保存仓库id为{}的托盘失败",oldWarehouseId);
log.info("###############syncWarehouseTrayToNew: 保存仓库id为{}的托盘失败",oldWarehouseId);
return ReturnT.FAIL;
}
}
return ReturnT.SUCCESS;
}
private boolean saveTrayData(Long newWarehouseId, Integer oldWarehouseId) {
//通过老系统仓库id查询所有托盘信息
List<TrayEntity> trayEntityList = trayClient.getAllTrayByWarehouseId(oldWarehouseId);
@ -106,7 +130,7 @@ public class SyncWarehouseDataToNew {
basicdataTrayEntity.setUpdateUser(1649331096967450625L);
basicdataTrayEntity.setCreateDept(1649331096241836033L);
basicdataTrayEntity.setPalletName(trayEntity.getTrayNo());
basicdataTrayEntity.setPalletCode(trayEntity.getTrayNo());
basicdataTrayEntity.setPalletCode("T"+trayEntity.getId());
basicdataTrayEntity.setWarehouseId(newWarehouseId);
basicdataTrayEntity.setTrayStatus(trayEntity.getStatus()+"");
basicdataTrayEntity.setType(1);

2
blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/impl/MtFactoryDataServiceImpl.java

@ -354,7 +354,7 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
String s = objectMapper.writeValueAsString(mtQianShouStatusDTO);
R rd = sendMtFactoryData(mtFactoryProperties.getUrl() + "/ZXCFaHuoDan/QianShouScan", s, 1,unitNo);
R rd = sendMtFactoryData(mtFactoryProperties.getUrl() + "/ZXCFaHuoDan/QianShouScan", s, 6,unitNo);
return rd;
}

174
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/receiver/OpOldReceivingDataHandler.java

@ -0,0 +1,174 @@
package com.logpm.factory.oupai.receiver;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.logpm.basicdata.entity.BasicdataTripartiteWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataTripartiteWarehouseClient;
import com.logpm.factory.oupai.entity.FactoryPackageEntity;
import com.logpm.factory.oupai.service.IFactoryPackageService;
import com.logpm.factory.pan.service.IPanFactoryDataService;
import com.logpm.factory.props.OldSystemProperties;
import com.logpm.oldproject.entity.WarehouseEntity;
import com.logpm.oldproject.feign.IWarehouseClient;
import com.rabbitmq.client.Channel;
import jodd.util.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.RabbitConstant;
import org.springblade.core.redis.cache.BladeRedis;
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.stereotype.Component;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
/**
* 推送老系统
*
* @author pref
*/
@Slf4j
@RabbitListener(queues = RabbitConstant.OUPAI_OLD_RECEIVING_QUEUE)
@Component
public class OpOldReceivingDataHandler {
@Autowired
private IPanFactoryDataService panFactoryDataService;
@Autowired
private IBasicdataTripartiteWarehouseClient basicdataTripartiteWarehouseClient;
@Autowired
private IWarehouseClient warehouseClient;
@Autowired
private OldSystemProperties oldSystemProperties;
@Autowired
private IFactoryPackageService factoryPackageService;
@Autowired
private BladeRedis bladeRedis;
@RabbitHandler
public void opOldReceivingDataHandler(Map map, Message message, Channel channel) throws IOException {
// 如果手动ACK,消息会被监听消费,但是消息在队列中依旧存在,如果 未配置 acknowledge-mode 默认是会在消费完毕后自动ACK掉
log.info("##################opReceivingDataHandler: 处理欧派收货数据到新系统");
String jsonStr = (String) map.get("messageData");
JSONObject object = JSONObject.parseObject(jsonStr);
String orderPackageCode = object.getString("orderPackageCode");
String warehouseName = object.getString("warehouse_name");
QueryWrapper warehouseQueryWrapper = new QueryWrapper();
warehouseQueryWrapper.eq("code", orderPackageCode);
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 查询包件数据 start >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
FactoryPackageEntity packageEntity = factoryPackageService.getOne(warehouseQueryWrapper);
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 查询包件数据 end >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> packageEntity {}", packageEntity);
//真正的处理需要的数据
try {
// 保存数据
// 需要查询映射表 如果映射表没有值 这个字段为null
BasicdataTripartiteWarehouseEntity warehouse = basicdataTripartiteWarehouseClient.getWarehouse(warehouseName, "");
if (ObjectUtils.isNotNull(warehouse)) {
String warehouseCode = warehouse.getAssociationCode();
WarehouseEntity warehouseEntity = warehouseClient.findByCode(warehouseCode);
// 请求老系统的登录接口
if(!ObjectUtils.isNull(warehouseEntity)){
String authCode = oldLogin(warehouseEntity.getId());
// 推送数据
if (StringUtil.isNotBlank(authCode)) {
boolean isSuccess = sendPackageData(authCode, orderPackageCode);
if (isSuccess) {
// 请求成功 修改推送数据的状态 修改未1
packageEntity.setOldPushStatus(1);
} else {
packageEntity.setOldPushStatus(2);
}
}
}else{
packageEntity.setOldPushStatus(2);
}
}
} catch (Exception e) {
log.error("##################opReceivingDataHandler: 处理欧派收货数据到新系统,orderPackageCode:{},warehouseName{}",
orderPackageCode, warehouseName);
log.error(e.getMessage());
packageEntity.setOldPushStatus(2);
// opPushPackageSystemEntity.setPushStatus(2);
}
factoryPackageService.updateById(packageEntity);
}
private boolean sendPackageData(String authCode, String orderPackageCode) {
// 构建请求头
Map<String, Object> map = new HashMap<>();
map.put("type", "1");
map.put("unitNo", orderPackageCode);
map.put("mctsTruckNo", "");
map.put("area", "");
map.put("user_id", oldSystemProperties.getUserId());
map.put("pick_up_id", "");
map.put("origin", "按件入库");
String url = oldSystemProperties.getUrl() + "api/scan";
String body = HttpRequest.post(url).form(map).header("token",authCode).execute().body();
log.info("##################sendPackageData: 请求老系统接口,url:{},body:{}", url, body);
if (StringUtil.isNotBlank(body)) {
JSONObject res = JSON.parseObject(body);
if("200".equals(res.getString("code"))){
return true;
}
}
return false;
}
/**
* 登录老系统
*
* @param warhouseId 仓库ID
* @return 成功token
*/
private String oldLogin(Integer warhouseId) {
String o = bladeRedis.get(oldSystemProperties.getUserId() + "_" + warhouseId);
if(StringUtil.isBlank(o)){
String url = oldSystemProperties.getUrl() + "api/fakeLogin";
Map<String, Object> map = new HashMap<>();
map.put("pwd", oldSystemProperties.getPwd());
map.put("user_id", oldSystemProperties.getUserId());
map.put("warehouse_id", warhouseId);
String body = HttpRequest.post(url).form(map).execute().body();
log.info("##################opReceivingDataHandler: 请求老系统接口,url:{},body:{}", url, body);
JSONObject authCode = JSON.parseObject(body);
if ("200".equals(authCode.getString("code"))) {
o= authCode.getJSONObject("data").getJSONObject("token").getString("token");
bladeRedis.setEx(oldSystemProperties.getUserId() + "_" + warhouseId, o,30*60L);
}
}
return o;
}
}

33
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/receiver/OpReceivingDataHandler.java

@ -29,46 +29,21 @@ public class OpReceivingDataHandler {
private IPanFactoryDataService panFactoryDataService;
@RabbitHandler
public void opReceivingDataHandler(Map map, Message message, Channel channel) throws IOException {
public void opReceivingDataHandler(Map map, Message message, Channel channel) {
// 如果手动ACK,消息会被监听消费,但是消息在队列中依旧存在,如果 未配置 acknowledge-mode 默认是会在消费完毕后自动ACK掉
log.info("##################opReceivingDataHandler: 处理欧派收货数据到新系统");
String jsonStr = (String) map.get("messageData");
JSONObject object = JSONObject.parseObject(jsonStr);
String orderPackageCode = object.getString("orderPackageCode");
String receivingTime = object.getString("receivingTime");
//真正处理需要的数据
//真正处理需要的数据
try {
panFactoryDataService.handleDataToPlatform(orderPackageCode, receivingTime);
} catch (Exception e) {
log.error("##################opReceivingDataHandler: 处理欧派收货数据到新系统,orderPackageCode:{},receivingTime{}",
log.error("##################opReceivingDataHandler: 处理欧派收货数据到新系统,orderPackageCode:{},receivingTime:{}",
orderPackageCode,receivingTime);
log.error(e.getMessage());
}
// String args = opOrderStatusLogEntity.getResponseBody();
// JSONObject jsonObject = JSONObject.parseObject(args);
// JSONArray jsonArray = jsonObject.getJSONArray("value");
// for (int i = 0; i < jsonArray.size(); i++) {
// JSONObject valueObject = jsonArray.getJSONObject(i);
// JSONArray packages = valueObject.getJSONArray("Packages");
// for (int j = 0; j < packages.size(); j++) {
// JSONObject packageJSON = packages.getJSONObject(j);
// String packageStatus = packageJSON.getString("PackageStatus");
// String orderPackageCode = packageJSON.getString("Code");
// String receivingTime=null;
// try{
// receivingTime = packageJSON.getString("CreateTime");
// }catch (Exception e){
// log.error(e.getMessage());
// }
// log.info("##################opReceivingDataHandler: 处理欧派收货数据到新系统,packageStatus:{},orderPackageCode:{},receivingTime{}",
// packageStatus,orderPackageCode,receivingTime);
// //判断是否是已入库
// if("已在库".equals(packageStatus)){
//
// }
// }
// }
}
}

1
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/IOuPaiFactoryService.java

@ -17,4 +17,5 @@ public interface IOuPaiFactoryService {
String savaOuPaiSignBillByCode(String orderCode, Integer event);
String saveOuPaiPackageStatusByCodeByOld(String key, Integer event, String warehouseName);
}

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

Loading…
Cancel
Save