From 2adc47d66973c9e1f4a4148633e7c11ec5970df4 Mon Sep 17 00:00:00 2001
From: caoyizhong <1270296080@qq.com>
Date: Mon, 25 Sep 2023 19:07:45 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=87=AA=E6=8F=90=E6=95=B4?=
 =?UTF-8?q?=E6=89=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../vo/DistributionStockupStockListVO.java    |   2 +
 .../feign/IWarehouseTrayGoodsClient.java      |   2 +-
 .../DistributionStockupAppController.java     |  19 ++-
 .../distribution/dto/app/StockupDTO.java      |   2 +-
 .../mapper/DistributionStockupMapper.xml      |  33 +----
 .../mapper/DistrilbutionBillStockMapper.java  |   2 +
 .../mapper/DistrilbutionBillStockMapper.xml   |  20 ++-
 ...DistributionReservationPackageService.java |   1 +
 .../IDistrilbutionBillStockService.java       |   2 +
 .../impl/DistributionStockupServiceImpl.java  | 129 +++++++++++++-----
 .../DistrilbutionBillStockServiceImpl.java    |   5 +
 .../feign/WarehouseTrayGoodsClient.java       |  15 +-
 .../feign/WarehouseUpdownGoodsClient.java     |   4 +-
 13 files changed, 151 insertions(+), 85 deletions(-)

diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupStockListVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupStockListVO.java
index e22c85bb8..a0517a9de 100644
--- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupStockListVO.java
+++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupStockListVO.java
@@ -8,6 +8,8 @@ import java.io.Serializable;
 public class DistributionStockupStockListVO implements Serializable {
 
 	private Long stockListId;//库存品id
+	private Long allocationId;//库存品id
+
 
 	private Long deliveryDetailsId; //自提库存品id
 
diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseTrayGoodsClient.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseTrayGoodsClient.java
index e198923cb..490c2ba9e 100644
--- a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseTrayGoodsClient.java
+++ b/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);
 
 }
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java
index 061440c0d..dab35a38d 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java
@@ -61,6 +61,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.lang.reflect.Field;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 备货信息表 app控制器
@@ -207,7 +208,13 @@ public class DistributionStockupAppController extends BladeController {
 				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);
@@ -232,9 +239,9 @@ 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 = distributionStockupService.getClientStockupTray(reservationId, vo.getAllocationId());
 //				Boolean aBoolean = distributionReservationPackageService.selectClientStockupState(reservationId, vo.getStockArticleId());
-					vo.setTrayLean(aBoolean);
+//					vo.setTrayLean(aBoolean);
 				}
 				map.put("planNum", planNum);
 				map.put("scanNum", scanNum);
@@ -248,8 +255,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);
@@ -276,7 +283,7 @@ 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);
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockupDTO.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockupDTO.java
index 7bcd849a0..cd9a75da9 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockupDTO.java
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockupDTO.java
@@ -51,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
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml
index 1eacd574a..1cc4c2655 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml
@@ -258,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
@@ -322,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)
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillStockMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillStockMapper.java
index 90dbe85f5..8263b2d39 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillStockMapper.java
+++ b/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);
 }
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillStockMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillStockMapper.xml
index e4b93878f..000c8f084 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillStockMapper.xml
+++ b/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,18 +66,20 @@
         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
@@ -187,7 +195,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}
 
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationPackageService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationPackageService.java
index 0b02d89f7..ad2ab9352 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationPackageService.java
+++ b/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
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillStockService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillStockService.java
index a00f59ada..bf4f9fc42 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillStockService.java
+++ b/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);
 }
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java
index 9c5f9d0b9..0ea0b4086 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java
@@ -36,9 +36,8 @@ 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.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;
@@ -70,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;
 
 /**
  * 备货信息表 服务实现类
@@ -147,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) {
@@ -528,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());
 								}
 								//订单自编号信息
@@ -592,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());
 								}
 								//订单自编号信息
@@ -633,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());
 							}
 							//订单自编号信息
@@ -689,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());
 								}
 							}
@@ -746,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())){
@@ -790,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());
 							}
 							//订单自编号信息
@@ -1391,17 +1394,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);
@@ -1412,25 +1441,57 @@ 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());//货位信息
+
+					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("备货成功");
 		}
 
 	}
@@ -1456,7 +1517,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);
 						}
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillStockServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillStockServiceImpl.java
index 776915c40..79a2da1a9 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillStockServiceImpl.java
+++ b/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);
+	}
+
 }
diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseTrayGoodsClient.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseTrayGoodsClient.java
index d451241e9..fdcc391e0 100644
--- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseTrayGoodsClient.java
+++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseTrayGoodsClient.java
@@ -1,5 +1,6 @@
 package com.logpm.warehouse.feign;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.logpm.warehouse.entity.WarehouseTrayGoodsEntity;
 import com.logpm.warehouse.service.IWarehouseTrayGoodsService;
@@ -47,10 +48,14 @@ public class WarehouseTrayGoodsClient implements IWarehouseTrayGoodsClient {
 
 	@Override
 	@PostMapping(GETTRAYIDLIST)
-	public List<WarehouseTrayGoodsEntity> getTrayIdList(Long trayId) {
-		return warehouseTrayGoodsService.list(Wrappers.<WarehouseTrayGoodsEntity>query().lambda()
-			.eq(WarehouseTrayGoodsEntity::getTrayId,trayId)
-			.eq(WarehouseTrayGoodsEntity::getAssociationType,"3")
-		);
+	public List<WarehouseTrayGoodsEntity> getTrayIdList(String trayId) {
+		QueryWrapper<WarehouseTrayGoodsEntity> queryWrapper = new QueryWrapper();
+		if(trayId.contains(",")){
+			queryWrapper.in("tray_id",trayId.split(","));
+		}else{
+			queryWrapper.eq("tray_id",trayId);
+		}
+		queryWrapper.eq("association_type","3");
+		return warehouseTrayGoodsService.list(queryWrapper);
 	}
 }
diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseUpdownGoodsClient.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseUpdownGoodsClient.java
index d141073a3..a60f3e2da 100644
--- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseUpdownGoodsClient.java
+++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseUpdownGoodsClient.java
@@ -1,6 +1,7 @@
 package com.logpm.warehouse.feign;
 
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.logpm.warehouse.entity.WarehouseUpdownGoodsEntity;
 import com.logpm.warehouse.service.IWarehouseUpdownGoodsService;
@@ -67,8 +68,9 @@ public class WarehouseUpdownGoodsClient implements IWarehouseUpdownGoodsClient {
 	public WarehouseUpdownGoodsEntity getLocationInformation(WarehouseUpdownGoodsEntity updownGoodsEntity) {
 
 		return warehouseUpdownGoodsService.getOne(Wrappers.<WarehouseUpdownGoodsEntity>query().lambda()
-			.eq(WarehouseUpdownGoodsEntity::getAllocationId,updownGoodsEntity.getAllocationId())
+			.eq(ObjectUtils.isNotNull(updownGoodsEntity.getAllocationId()),WarehouseUpdownGoodsEntity::getAllocationId,updownGoodsEntity.getAllocationId())
 			.eq(WarehouseUpdownGoodsEntity::getAssociationValue,updownGoodsEntity.getAssociationValue())
+			.eq(ObjectUtils.isNotNull(updownGoodsEntity.getAssociationId()),WarehouseUpdownGoodsEntity::getAssociationId,updownGoodsEntity.getAssociationId())
 		);
 	}