From 0b2c9e16ef06439d20231383e3edb613f45ef0dd Mon Sep 17 00:00:00 2001
From: PigBaoBei <2739175034@qq.com>
Date: Fri, 5 Jan 2024 17:50:50 +0800
Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E9=80=81=E8=AF=A6=E6=83=85=E5=A2=9E?=
 =?UTF-8?q?=E5=8A=A0=E5=BA=93=E5=AD=98=E5=93=81=E7=AD=BE=E6=94=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...ributionReservationInventoryPackageVO.java | 189 ++++++++++++++++++
 .../DistributionDeliveryListController.java   |  19 ++
 .../mapper/DistributionReservationMapper.java |   8 +
 .../mapper/DistributionReservationMapper.xml  |  91 +++++++++
 .../IDistributionDeliveryInfoService.java     |   7 +
 .../service/IDistributionSignforService.java  |   7 +
 .../impl/DistributionAsyncServiceImpl.java    |   1 +
 .../DistributionDeliveryInfoServiceImpl.java  |  15 ++
 .../DistributionDeliveryListServiceImpl.java  |   2 +-
 .../impl/DistributionSignforServiceImpl.java  | 126 +++++++++++-
 10 files changed, 462 insertions(+), 3 deletions(-)
 create mode 100644 blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionReservationInventoryPackageVO.java

diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionReservationInventoryPackageVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionReservationInventoryPackageVO.java
new file mode 100644
index 000000000..f1b1943f2
--- /dev/null
+++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionReservationInventoryPackageVO.java
@@ -0,0 +1,189 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package com.logpm.distribution.vo;
+
+import com.logpm.distribution.entity.DistributionReservationStocklistEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * 预约库存中间表 视图实体类
+ *
+ * @author TJJ
+ * @since 2023-06-28
+ */
+@Data
+public class DistributionReservationInventoryPackageVO{
+	private static final long serialVersionUID = 1L;
+
+
+
+
+	/**
+	 * 库存品包条码
+	 */
+	@ApiModelProperty(value = "库存品包条码")
+	private String stockPackageCode;
+
+	/**
+	 * 库存品包件Id
+	 */
+	@ApiModelProperty(value = "库存品包件Id")
+	private Long id;
+
+	/**
+	 * 库存品包件装车状态
+	 */
+	@ApiModelProperty(value = "库存品包件装车状态")
+	private String stockLockingStatus;
+
+	/**
+	 * 库存品包件装车状态
+	 */
+	@ApiModelProperty(value = "库存品包件装车状态")
+	private String stockLockingStatusName;
+
+	/**
+	 * 库存品包件装车状态
+	 */
+	@ApiModelProperty(value = "库存品包件装车状态")
+	private String stockStatus;
+
+	/**
+	 * 库存品包件备货状态
+	 */
+	@ApiModelProperty(value = "库存品包件备货状态")
+	private String stockStatusName;
+
+
+	/**
+	 * 库存品包件签收状态
+	 */
+	@ApiModelProperty(value = "库存品包件签收状态")
+	private String stockSignfoStatus;
+
+	/**
+	 * 库存品包件签收状态
+	 */
+	@ApiModelProperty(value = "库存品包件签收状态")
+	private String stockSignfoStatusName;
+
+	/**
+	 * 库存品计划出库数量
+	 */
+	@ApiModelProperty(value = "库存品计划出库数量")
+	private Integer num;
+
+	/**
+	 * 库存品包件物料编码
+	 */
+	@ApiModelProperty(value = "库存品包件物料编码")
+	private String cargoNumber;
+
+	/**
+	 * 库存品包件订单自编码
+	 */
+	@ApiModelProperty(value = "库存品包件订单自编码")
+	private String orderCode;
+
+	/**
+	 * 库存品包件入库批次号
+	 */
+	@ApiModelProperty(value = "库存品包件入库批次号")
+	private String incomingBatch;
+
+	/**
+	 * 库存品包件物料名称
+	 */
+	@ApiModelProperty(value = "库存品包件物料名称")
+	private String descriptionGoods;
+
+	/**
+	 * 库存品包件物料单位
+	 */
+	@ApiModelProperty(value = "库存品包件物料单位")
+	private String cargoUnit;
+
+
+	/**
+	 * 库存品包件商场名称
+	 */
+	@ApiModelProperty(value = "库存品包件商场名称")
+	private String marketName;
+
+
+	/**
+	 * 库存品包件品牌信息
+	 */
+	@ApiModelProperty(value = "库存品包件品牌信息")
+	private String brandName;
+
+	/**
+	 * 库存品包件计划装车人
+	 */
+	@ApiModelProperty(value = "库存品包件计划装车人")
+	private String driverName;
+
+	/**
+	 * 库存品包件计划装车车牌
+	 */
+	@ApiModelProperty(value = "库存品包件计划装车车牌")
+	private String vehicleName;
+
+	/**
+	 * 库存品包件装车方式
+	 */
+	@ApiModelProperty(value = "库存品包件装车方式")
+	private String scanStatus;
+
+	/**
+	 * 库存品包件装车时间
+	 */
+	@ApiModelProperty(value = "库存品包件装车时间")
+	private String scanTime;
+
+
+	/**
+	 * 库存品包件装车数量
+	 */
+	@ApiModelProperty(value = "库存品包件装车数量")
+	private Integer loadedNub;
+
+	/**
+	 * 库存品包件装车人
+	 */
+	@ApiModelProperty(value = "库存品包件装车人")
+	private String scanUser;
+
+	/**
+	 * 库存品包件签收人
+	 */
+	@ApiModelProperty(value = "库存品包件签收人")
+	private String signingUser;
+
+	/**
+	 * 库存品包件签收时间
+	 */
+	@ApiModelProperty(value = "库存品包件签收时间")
+	private String signingTime;
+
+
+
+}
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java
index 9b8b707b0..fa4319395 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java
@@ -104,6 +104,17 @@ public class DistributionDeliveryListController extends BladeController {
 		return R.data(pages);
 	}
 
+	/**
+	 * 查看库存品包件 详情
+	 */
+	@GetMapping("/getReservationPackageList")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "查看包件详情", notes = "传入distributionDeliveryList")
+	public R<IPage<DistributionReservationInventoryPackageVO>> getReservationPackageList(@RequestParam Map<String,Object> reservationPackageDTO, Query query) {
+		IPage<DistributionReservationInventoryPackageVO> pages = distributionDeliveryInfoService.getReservationPackageList(reservationPackageDTO,Condition.getPage(query));
+		return R.data(pages);
+	}
+
 	/**
 	 * 查看订单
 	 */
@@ -463,4 +474,12 @@ public class DistributionDeliveryListController extends BladeController {
 		}
 		return r;
 	}
+
+	@PostMapping("/deliveryInventorySign")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "PC签收包件")
+	public R deliveryInventorySign(@Valid @RequestBody DistrilbutionAppsignforDTO distrilbutionloadingscanDTO) {
+		R r	= distributionSignforService.signforInPC(distrilbutionloadingscanDTO);
+		return r;
+	}
 }
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java
index cf79fd9d4..cb4ffd81a 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java
@@ -348,4 +348,12 @@ public interface DistributionReservationMapper extends BaseMapper<DistributionRe
 	 * @return
 	 */
     int updatePackageDeliveryStatus(@Param("reservationId") Long reservationId,@Param("packageIds") List<Long> packageIds);
+
+	/**
+	 * 查询客户库存品包件信息
+	 * @param reservationPackageDTO
+	 * @param page
+	 * @return
+	 */
+    IPage<DistributionReservationInventoryPackageVO> selectInvenToryPackageByReservationInfo(@Param("param") Map<String, Object> reservationPackageDTO,IPage<DistributionReservationInventoryPackageVO> page);
 }
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml
index 5034afa41..c97f4faec 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml
@@ -1550,5 +1550,96 @@
             and ldpl.third_product like concat('%',#{param.thirdProduct},'%')
         </if>
     </select>
+    <select id="selectInvenToryPackageByReservationInfo"
+            resultType="com.logpm.distribution.vo.DistributionReservationInventoryPackageVO">
+        SELECT
+        ldsld.stock_package_code,
+        ldsld.id,
+        CASE
+        WHEN ldsld.stock_locking_status = '20' THEN '已装车'
+        WHEN ldsld.stock_locking_status = '10' THEN '未装车'
+        END stockLockingStatusName,
+        CASE
+        WHEN ldsld.stock_status = '10' THEN '未备货'
+        WHEN ldsld.stock_status = '20' THEN '已备货'
+        END stockStatusName,
+        CASE
+        WHEN ldsld.stock_signfo_status = '10' THEN '未签收'
+        WHEN ldsld.stock_signfo_status = '20' THEN '已签收'
+        END stockSignfoStatusName,
+        ldsld.stock_locking_status,
+        ldsld.stock_status,
+        ldsld.stock_signfo_status,
+        ldsld.num,
+        ldsl.cargo_number,
+        ldsl.order_code,
+        ldsl.incoming_batch,
+        ldsl.description_goods,
+        ldsl.cargo_unit,
+        ldsl.market_name,
+        ldsl.brand_name,
+        ldl.driver_name,
+        ldl.vehicle_name,
+        ldl.scan_status,
+        ldl.scan_time,
+        ldl.loaded_nub,
+        ldl.scan_user,
+        ldl.signing_user,
+        ldl.signing_time
+        FROM
+        logpm_dis_stock_list_detail AS ldsld
+        LEFT JOIN logpm_distribution_stock_list AS ldsl ON ldsld.stock_list_id = ldsl.id
+        LEFT JOIN logpm_distribution_loadscaninvn AS ldl ON ldsld.id = ldl.inventory_package_id
+        WHERE
+        ldsld.reservation_id = #{param.reservationId} AND ldsld.stock_package_status in ('1','3')
+        <if test="param.stockPackageCode != null and param.stockPackageCode != ''">
+          and ldsld.stock_package_code like  concat('%',#{param.stockPackageCode},'%')
+        </if>
+        <if test="param.cargoNumber != null and param.cargoNumber != ''">
+          and ldsl.cargo_number like  concat('%',#{param.cargoNumber},'%')
+        </if>
+        <if test="param.orderCode != null and param.orderCode != ''">
+          and ldsl.order_code like  concat('%',#{param.orderCode},'%')
+        </if>
+        <if test="param.incomingBatch != null and param.incomingBatch != ''">
+          and ldsl.incoming_batch like  concat('%',#{param.incomingBatch},'%')
+        </if>
+        <if test="param.descriptionGoods != null and param.descriptionGoods != ''">
+          and ldsl.description_goods like  concat('%',#{param.descriptionGoods},'%')
+        </if>
+        <if test="param.marketName != null and param.marketName != ''">
+          and ldsl.market_name like  concat('%',#{param.marketName},'%')
+        </if>
+        <if test="param.brandName != null and param.brandName != ''">
+          and ldsl.brand_name like  concat('%',#{param.brandName},'%')
+        </if>
+        <if test="param.driverName != null and param.driverName != ''">
+          and ldl.driver_name like  concat('%',#{param.driverName},'%')
+        </if>
+        <if test="param.vehicleName != null and param.vehicleName != ''">
+          and ldl.vehicle_name like  concat('%',#{param.vehicleName},'%')
+        </if>
+        <if test="param.scanTime != null and param.scanTime != ''">
+          and ldl.scan_time like  concat('%',#{param.scanTime},'%')
+        </if>
+        <if test="param.scanUser != null and param.scanUser != ''">
+          and ldl.scan_user like  concat('%',#{param.scanUser},'%')
+        </if>
+        <if test="param.signingUser != null and param.signingUser != ''">
+          and ldl.signing_user like  concat('%',#{param.signingUser},'%')
+        </if>
+        <if test="param.signingTime != null and param.signingTime != ''">
+          and ldl.signing_time like  concat('%',#{param.signingTime},'%')
+        </if>
+        <if test="param.stockStatus != null and param.stockStatus != ''">
+          and ldsld.stock_status =  #{param.stockStatus}
+        </if>
+        <if test="param.stockLockingStatus != null and param.stockLockingStatus != ''">
+          and ldsld.stock_locking_status =  #{param.stockLockingStatus}
+        </if>
+        <if test="param.stockSignfoStatus != null and param.stockSignfoStatus != ''">
+          and ldsld.stock_signfo_status = #{param.stockSignfoStatus}
+        </if>
+    </select>
 
 </mapper>
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryInfoService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryInfoService.java
index 763ed3594..7dbda9231 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryInfoService.java
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryInfoService.java
@@ -102,4 +102,11 @@ public interface IDistributionDeliveryInfoService extends BaseService<Distributi
 	List<DisStockListDetailVO> selectDistributionAppDeliveryInventory( DistributionAppDeliveryListDTO distributionAppDeliveryListDTO);
 
 
+	/**
+	 * 配送详情查看库存品包件
+	 * @param reservationPackageDTO
+	 * @param page
+	 * @return
+	 */
+	IPage<DistributionReservationInventoryPackageVO> getReservationPackageList(Map<String, Object> reservationPackageDTO, IPage<DistributionReservationInventoryPackageVO> page);
 }
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java
index 98594e606..be72b82c6 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java
@@ -247,4 +247,11 @@ public interface IDistributionSignforService extends BaseService<DistributionSig
 	 * @return
 	 */
 	R isSign(Long signingId);
+
+	/**
+	 * PC批量签收库存品
+	 * @param distrilbutionloadingscanDTO
+	 * @return
+	 */
+	R signforInPC(DistrilbutionAppsignforDTO distrilbutionloadingscanDTO);
 }
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
index ab8a6133e..9f26e5367 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
@@ -1409,6 +1409,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
 	}
 
 	@Override
+	@Transactional
 	public void handlPakcage(List<Long> packageIds, Long id) {
 		List<DistributionParcelListEntity> distributionParcelListEntities = distributionParcelListService.listByIds(packageIds);
 		if (Func.isNotEmpty(distributionParcelListEntities)) {
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java
index 4b6ba134f..3238e191a 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java
@@ -509,5 +509,20 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
 		return disStockListDetailVOS;
 	}
 
+	@Override
+	public IPage<DistributionReservationInventoryPackageVO> getReservationPackageList(Map<String, Object> reservationPackageDTO, IPage<DistributionReservationInventoryPackageVO> page) {
+		String method = "DistributionDeliveryInfoServiceImpl类,getReservationPackageList方法";
+		if (Func.isEmpty(reservationPackageDTO.get("reservationId"))){
+			//参数缺失
+			log.error(method+"reservationId参数缺失");
+			return null;
+		}
+		IPage<DistributionReservationInventoryPackageVO> reservationInventoryPackageVOIPage = distributionReservationMapper.selectInvenToryPackageByReservationInfo(reservationPackageDTO,page);
+
+
+
+		return reservationInventoryPackageVOIPage;
+	}
+
 
 }
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
index 86c7484ec..405603ee8 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
@@ -1731,7 +1731,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
 					loadscaninvnEntity.setVehicleName(distributionDeliverySelfEntity.getVehicleNub());
 					loadscaninvnEntity.setScanStatus(LoadingStatusConstant.yijianzhuangche.getValue());
 					loadscaninvnEntity.setOneClick(2);
-					loadscaninvnEntity.setScanUser(user.getUserName());
+//					loadscaninvnEntity.setScanUser(user.getUserName());
 					loadscaninvnEntity.setScanTime(now);
 					loadscaninvnEntity.setScanType("1");
 					if (StringUtils.isNotBlank(distributionDeliverySelfEntity.getDriverPhone())) {
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java
index 8b4dd6517..471679cc0 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java
@@ -95,6 +95,8 @@ import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
+import static net.sf.jsqlparser.util.validation.metadata.NamedObject.user;
+
 /**
  * 签收管理 服务实现类
  *
@@ -487,6 +489,127 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
 
 	}
 
+	@Override
+	@Transactional
+	public R signforInPC(DistrilbutionAppsignforDTO distrilbutionloadingscanDTO) {
+		String method = "DistributionSignforServiceImpl类,signforInPC方法";
+		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+		if (Func.isEmpty(distrilbutionloadingscanDTO.getReservationId())){
+			log.error(method+"reservationId参数缺失");
+			return R.fail("请联系管理员!!!");
+		}
+		if (Func.isEmpty(distrilbutionloadingscanDTO.getDeliveryId())){
+			log.error(method+"deliveryId参数缺失");
+			return R.fail("请联系管理员!!!");
+		}
+		if (Func.isEmpty(distrilbutionloadingscanDTO.getBarcodes())){
+			log.error(method+"barCode参数缺失");
+			return R.fail("请联系管理员!!!");
+		}
+		String[] split = distrilbutionloadingscanDTO.getBarcodes().split(",");
+		List<DisStockListDetailEntity> detailEntities = distributionReservationMapper.selectInventoryListByReservation(distrilbutionloadingscanDTO.getReservationId());
+
+		if (Func.isNotEmpty(split)){
+			for (String s : split) {
+				List<DisStockListDetailEntity> inventoryPackage = detailEntities.stream().filter(f -> Func.isNotEmpty(f.getStockPackageCode()) && f.getStockPackageCode().equals(s)).collect(Collectors.toList());
+				if (Func.isNotEmpty(inventoryPackage) && inventoryPackage.size() == 1){
+					//查看这个库存品是否进行装车,
+					DistributionLoadscaninvnEntity loadscaninvnEntity = distributionLoadscaninvnService.getOne(Wrappers.<DistributionLoadscaninvnEntity>query().lambda()
+						.eq(DistributionLoadscaninvnEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId())
+						.eq(DistributionLoadscaninvnEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId())
+						.eq(DistributionLoadscaninvnEntity::getOrderPackageCode, s)
+						.ne(DistributionLoadscaninvnEntity::getScanStatus, 1));
+					    BladeUser user = AuthUtil.getUser();
+					if (Func.isNotEmpty(loadscaninvnEntity)){
+						//存在装车数据,进行状态变更即可
+						loadscaninvnEntity.setSigningUserId(user.getUserId());
+						loadscaninvnEntity.setSigningUser(user.getNickName());
+						loadscaninvnEntity.setReceivedQuantity(inventoryPackage.get(0).getNum());
+						loadscaninvnEntity.setSignforState(LoadScanSigningStatusConstant.yiqianshou.getValue());
+						loadscaninvnEntity.setSigningTime(simpleDateFormat.format(new Date()));
+						loadscaninvnEntity.setOneQclick(1);
+						distributionLoadscaninvnService.updateById(loadscaninvnEntity);
+						//维护签收数量
+						Integer j = distributionSignforMapper.updateSignforNum(loadscaninvnEntity.getDeliveryId(), loadscaninvnEntity.getReservationId(), loadscaninvnEntity.getPackageNub());
+						//更新签收人
+						Integer i = distributionSignforMapper.updateSignUser(loadscaninvnEntity.getDeliveryId(), loadscaninvnEntity.getReservationId(), user);
+					}else {
+						//不存在装车数据,需要进行装车数据的补录
+						//库存品未进行装车
+						//这里装车的数据需要进行补录
+						DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId());
+						DistributionDeliverySelfEntity distributionDeliverySelfEntity = new DistributionDeliverySelfDTO();
+						if (deliveryListEntity.getKind().equals(ServiceConstant.DELIVERLIST_KIND_SELF)) {
+							distributionDeliverySelfEntity = distributionDeliverySelfMapper.selectOne(new QueryWrapper<DistributionDeliverySelfEntity>().lambda()
+								.eq(DistributionDeliverySelfEntity::getIsMaster, ServiceConstant.IS_MASTER_YES)
+								.eq(DistributionDeliverySelfEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId())
+							);
+						} else {
+							DistributionDeliveryTripartiteEntity distributionDeliveryTripartiteEntity = distributionDeliveryTripartiteMapper.selectOne(new QueryWrapper<DistributionDeliveryTripartiteEntity>().lambda()
+								.eq(DistributionDeliveryTripartiteEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId()));
+							BeanUtils.copyProperties(distributionDeliveryTripartiteEntity, distributionDeliverySelfEntity);
+						}
+						DistributionLoadscaninvnEntity distributionLoadscaninvnEntity = new DistributionLoadscaninvnEntity();
+
+						if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverId())) {
+							distributionLoadscaninvnEntity.setDriverId(distributionDeliverySelfEntity.getDriverId());
+						}
+						if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverName())) {
+							distributionLoadscaninvnEntity.setDriverName(distributionDeliverySelfEntity.getDriverName());
+						}
+						if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleId())) {
+							distributionLoadscaninvnEntity.setVehicleId(distributionDeliverySelfEntity.getVehicleId());
+						}
+						if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleNub())) {
+							distributionLoadscaninvnEntity.setVehicleName(distributionDeliverySelfEntity.getVehicleNub());
+						}
+						if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverPhone())) {
+							distributionLoadscaninvnEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone());
+						}
+						distributionLoadscaninvnEntity.setLoadingId(distributionDeliverySelfEntity.getId().toString());
+						distributionLoadscaninvnEntity.setOrderPackageCode(inventoryPackage.get(0).getStockPackageCode());
+						distributionLoadscaninvnEntity.setInventoryId(inventoryPackage.get(0).getStockListId());
+						distributionLoadscaninvnEntity.setDeliveryId(distrilbutionloadingscanDTO.getDeliveryId());
+						distributionLoadscaninvnEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId());
+						distributionLoadscaninvnEntity.setScanUser(user.getNickName());
+						distributionLoadscaninvnEntity.setScanTime(simpleDateFormat.format(new Date()));
+						distributionLoadscaninvnEntity.setPackageNub(inventoryPackage.get(0).getNum());
+						distributionLoadscaninvnEntity.setScanStatus(LoadingStatusConstant.yijianzhuangche.getValue());
+						distributionLoadscaninvnEntity.setIsInsert(LoadingIsInsertConstant.bulu.getValue());
+						distributionLoadscaninvnEntity.setScanType("1");
+						distributionLoadscaninvnEntity.setType(2);
+						distributionLoadscaninvnEntity.setSignforState(LoadScanSigningStatusConstant.yiqianshou.getValue());
+						distributionLoadscaninvnEntity.setIsSignfor(1);
+						distributionLoadscaninvnEntity.setReceivedQuantity(inventoryPackage.get(0).getNum());
+						distributionLoadscaninvnEntity.setOneClick(1);
+						distributionLoadscaninvnEntity.setOneQclick(1);
+						distributionLoadscaninvnEntity.setLoadedNub(1);
+						distributionLoadscaninvnEntity.setSigningUser(user.getNickName());
+						distributionLoadscaninvnEntity.setSigningUserId(user.getUserId());
+						distributionLoadscaninvnEntity.setSigningTime(simpleDateFormat.format(new Date(System.currentTimeMillis()+(6*1000))));
+						distributionLoadscaninvnService.save(distributionLoadscaninvnEntity);
+						//更新装车数量
+						Integer j = distributionSignforMapper.updateSignforNum(distributionLoadscaninvnEntity.getDeliveryId(), distributionLoadscaninvnEntity.getReservationId(), distributionLoadscaninvnEntity.getPackageNub());
+						//更新签收人
+						Integer i = distributionSignforMapper.updateSignUser(distributionLoadscaninvnEntity.getDeliveryId(), distributionLoadscaninvnEntity.getReservationId(), AuthUtil.getUser());
+						//扣减库存
+						distributionStockListMapper.deductionQuantityStock(distributionLoadscaninvnEntity.getInventoryId(), distributionLoadscaninvnEntity.getLoadedNub());
+					}
+					//修改对应库存品包件的签收数量
+					DisStockListDetailEntity disStockListDetailEntity = inventoryPackage.get(0);
+					disStockListDetailEntity.setStockSignfoStatus(InventorySigningStatusConstant.yiqianshou.getValue());
+					disStockListDetailService.updateById(disStockListDetailEntity);
+				}else {
+					//出现不属于当前客户的库存品包件信息
+					log.error(method+"库存品包件信息异常,请检查!!!:{}",s);
+					throw new RuntimeException("数据异常,请联系管理员!!!");
+
+				}
+			}
+		}
+		return R.status(true);
+	}
+
 	private boolean judgmentSignIsHavePackage(Long reservationId) {
 		boolean flag = false;
 		List<DistributionParcelListEntity> distributionParcelListEntities = distributionReservationMapper.selectPackageListByReservationId(reservationId);
@@ -1853,7 +1976,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
 					}
 //				库存品进行装车,这里需要对库存品扫描数据进行签收的状态标记
 					loadscaninvnEntity.setSigningUserId(user.getUserId());
-					loadscaninvnEntity.setSigningUser(user.getUserName());
+					loadscaninvnEntity.setSigningUser(user.getNickName());
 					loadscaninvnEntity.setReceivedQuantity(inventory.get(0).getNum());
 					loadscaninvnEntity.setSignforState(LoadScanSigningStatusConstant.yiqianshou.getValue());
 					loadscaninvnEntity.setSigningTime(simpleDateFormat.format(new Date()));
@@ -2835,7 +2958,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
 				distributionAsyncService.sendFactory(parcelListEntity, reservationEntity.getId(), reservationEntity.getReservationCode(), myCurrentWarehouse.getName());
 				packageIds.add(parcelListEntity.getId());
 				orderCodes.add(parcelListEntity.getOrderCode());
-
 			}
 			//批量维护订单信息
 			if (Func.isNotEmpty(orderCodes)){