From c3877be039e6a4bf08f17e5d27fa640f932de0d8 Mon Sep 17 00:00:00 2001
From: zhenghaoyu <zhenghaoyu@superbgrace.com>
Date: Sat, 22 Jul 2023 19:23:14 +0800
Subject: [PATCH] =?UTF-8?q?1.=E8=87=AA=E6=8F=90=E6=A8=A1=E5=9D=97APP?=
 =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=AE=8C=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../DistributionBillLadingScanEntity.java     |  60 ++++++
 .../vo/DistrilbutionBillLadingAppVO.java      |  29 ++-
 .../DistrilbutionAppBillLadingDetailVO.java   |  41 ++++
 ...DistrilbutionAppBillLadingOrderMainVO.java |  42 ++++
 .../DistrilbutionAppBillLadingOrderVO.java    |  43 ++++
 .../DistributionBillLadingAppController.java  |  26 ++-
 .../DistributionBillLadingScanMapper.java     |   9 +
 .../mapper/DistrilbutionBillLadingMapper.java |   9 +
 .../mapper/DistrilbutionBillLadingMapper.xml  |  56 +++++
 .../IDistributionBillLadingScanService.java   |   7 +
 .../IDistrilbutionBillLadingService.java      |  10 +
 ...DistributionBillLadingScanServiceImpl.java |  14 ++
 .../DistrilbutionBillLadingServiceImpl.java   | 193 +++++++++++++++++-
 13 files changed, 527 insertions(+), 12 deletions(-)
 create mode 100644 blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionBillLadingScanEntity.java
 create mode 100644 blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingDetailVO.java
 create mode 100644 blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingOrderMainVO.java
 create mode 100644 blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingOrderVO.java
 create mode 100644 blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionBillLadingScanMapper.java
 create mode 100644 blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionBillLadingScanService.java
 create mode 100644 blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionBillLadingScanServiceImpl.java

diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionBillLadingScanEntity.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionBillLadingScanEntity.java
new file mode 100644
index 000000000..a6444c28c
--- /dev/null
+++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionBillLadingScanEntity.java
@@ -0,0 +1,60 @@
+package com.logpm.distribution.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+@Data
+@TableName("logpm_distribution_bill_lading_scan")
+@ApiModel(value = "DistributionBillLadingScan对象", description = "自提扫描表")
+@EqualsAndHashCode(callSuper = true)
+public class DistributionBillLadingScanEntity extends BaseEntity {
+
+	/**
+	 * 预留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;
+
+	@ApiModelProperty(value = "包件码")
+	private String packetBarCode;
+
+	@ApiModelProperty(value = "节点")
+	private Integer nodeType;
+
+	@ApiModelProperty(value = "扫码类型 1 pda扫码 2 手填")
+	private Integer scanType;
+
+	@ApiModelProperty(value = "包件id")
+	private Long parcelListId;
+
+	@ApiModelProperty(value = "订单自编号")
+	private String orderSelfNumbering;
+
+	@ApiModelProperty(value = "订单id")
+	private Long stockArticleId;
+
+}
diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistrilbutionBillLadingAppVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistrilbutionBillLadingAppVO.java
index 5c2b3e57c..9bcb697f5 100644
--- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistrilbutionBillLadingAppVO.java
+++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistrilbutionBillLadingAppVO.java
@@ -17,9 +17,14 @@
 package com.logpm.distribution.vo;
 
 import com.logpm.distribution.entity.DistrilbutionBillLadingEntity;
+import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingDetailVO;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
 /**
  * 提货单 视图实体类
  *
@@ -31,9 +36,31 @@ import lombok.EqualsAndHashCode;
 public class DistrilbutionBillLadingAppVO extends DistrilbutionBillLadingEntity {
 	private static final long serialVersionUID = 1L;
 
+	private String stockArticleId;
+
 	private Integer carType;
 	private String carTypeStr;
 
-//	private Integer
+	private String condition;//提货状态
+	private String conditionStr;//提货状态
+
+	private String pickUpPlate;//车牌号
+
+	private String consignee;//提货人
+
+	private String stockupStatus;//备货状态
+	private String stockupStatusStr;
+
+	private Date createTime;//制单时间
+	private Date pickUpTime;//提货时间
+
+
+	private Integer orderNum;//订单总数
+	private Integer planNum;//自提件数
+	private Integer signedNum;//签收总数
+
+	private Integer completeNum;//齐套总数
+
+	private List<DistrilbutionAppBillLadingDetailVO> list = new ArrayList<>();
 
 }
diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingDetailVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingDetailVO.java
new file mode 100644
index 000000000..75c004b47
--- /dev/null
+++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingDetailVO.java
@@ -0,0 +1,41 @@
+/*
+ *      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.app;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 提货单 视图实体类
+ *
+ * @author cyz
+ * @since 2023-06-14
+ */
+@Data
+public class DistrilbutionAppBillLadingDetailVO implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	private Long stockArticleId;
+	private String orderSelfNumbering;
+
+	private String packetBarCode;
+
+	private Integer scanStatus;//扫码状态
+
+	private Integer errorStatus;//异常状态
+}
diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingOrderMainVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingOrderMainVO.java
new file mode 100644
index 000000000..85de5eb50
--- /dev/null
+++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingOrderMainVO.java
@@ -0,0 +1,42 @@
+/*
+ *      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.app;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 提货单 视图实体类
+ *
+ * @author cyz
+ * @since 2023-06-14
+ */
+@Data
+public class DistrilbutionAppBillLadingOrderMainVO implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	private Integer orderNum;//订单总数
+	private Integer completeNum;//订单总数
+	private Integer planNum;//自提件数
+	private Integer signedNum;//签收总数
+
+	private List<DistrilbutionAppBillLadingOrderVO> list = new ArrayList<>();
+
+}
diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingOrderVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingOrderVO.java
new file mode 100644
index 000000000..902c29199
--- /dev/null
+++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingOrderVO.java
@@ -0,0 +1,43 @@
+/*
+ *      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.app;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 提货单 视图实体类
+ *
+ * @author cyz
+ * @since 2023-06-14
+ */
+@Data
+public class DistrilbutionAppBillLadingOrderVO implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	private Long stockArticleId;
+	private String orderSelfNumbering;
+
+	private Integer orderStatus;//状态
+
+	private Integer planNum;//自提件数
+	private Integer signedNum;//签收总数
+
+
+
+}
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java
index c6608bab5..cc41f3c76 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java
@@ -19,7 +19,8 @@ package com.logpm.distribution.appcontroller;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.logpm.distribution.service.IDistrilbutionBillLadingService;
-import com.logpm.distribution.vo.DistrilbutionBillLadingVO;
+import com.logpm.distribution.vo.DistrilbutionBillLadingAppVO;
+import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderMainVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -59,11 +60,30 @@ public class DistributionBillLadingAppController extends BladeController {
 	@GetMapping("/pageList")
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "分页列表", notes = "传入stockupDTO")
-	public R<IPage<DistrilbutionBillLadingVO>> pageList(@ApiIgnore @RequestParam Map<String, Object> distrilbutionBillLading, Query query) {
-		IPage<DistrilbutionBillLadingVO> pages = distrilbutionBillLadingService.pageList(Condition.getPage(query), distrilbutionBillLading);
+	public R<IPage<DistrilbutionBillLadingAppVO>> pageList(@ApiIgnore @RequestParam Map<String, Object> distrilbutionBillLading, Query query) {
+		IPage<DistrilbutionBillLadingAppVO> pages = distrilbutionBillLadingService.pageListApp(Condition.getPage(query), distrilbutionBillLading);
 		return R.data(pages);
 	}
 
+	@GetMapping("/orderList")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "订单列表", notes = "传入stockupDTO")
+	public R<DistrilbutionAppBillLadingOrderMainVO> orderList(@ApiIgnore @RequestParam Map<String, Object> distrilbutionBillLading) {
+		Integer orderStatus = (Integer) distrilbutionBillLading.get("orderStatus");//订单状态
+		Long billLadingId = (Long) distrilbutionBillLading.get("billLadingId");//自提单id
+		DistrilbutionAppBillLadingOrderMainVO vo = distrilbutionBillLadingService.selectOrderList(billLadingId,orderStatus);
+		return R.data(vo);
+	}
 
+	@GetMapping("/detailList")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "包件列表", notes = "传入stockupDTO")
+	public R<DistrilbutionBillLadingAppVO> detailList(@ApiIgnore @RequestParam Map<String, Object> distrilbutionBillLading) {
+		Integer scanStatus = (Integer) distrilbutionBillLading.get("scanStatus");//扫描状态
+		Long billLadingId = (Long) distrilbutionBillLading.get("billLadingId");//自提单id
+		String orderSelfNumbering = (String) distrilbutionBillLading.get("orderSelfNumbering");//自提单id
+		DistrilbutionBillLadingAppVO vo = distrilbutionBillLadingService.selectDetailList(billLadingId,scanStatus,orderSelfNumbering);
+		return R.data(vo);
+	}
 
 }
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionBillLadingScanMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionBillLadingScanMapper.java
new file mode 100644
index 000000000..56b9ad05d
--- /dev/null
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionBillLadingScanMapper.java
@@ -0,0 +1,9 @@
+package com.logpm.distribution.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.logpm.distribution.entity.DistributionBillLadingScanEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface DistributionBillLadingScanMapper extends BaseMapper<DistributionBillLadingScanEntity> {
+}
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java
index c4d18f334..9c0f58b72 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java
@@ -18,13 +18,16 @@ package com.logpm.distribution.mapper;
 
 import com.logpm.distribution.dto.DistrilbutionBillLadingDTO;
 import com.logpm.distribution.entity.DistrilbutionBillLadingEntity;
+import com.logpm.distribution.vo.DistrilbutionBillLadingAppVO;
 import com.logpm.distribution.vo.DistrilbutionBillLadingVO;
 import com.logpm.distribution.excel.DistrilbutionBillLadingExcel;
 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.vo.app.DistrilbutionAppBillLadingDetailVO;
 import org.apache.ibatis.annotations.Param;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 提货单 Mapper 接口
@@ -53,4 +56,10 @@ public interface DistrilbutionBillLadingMapper extends BaseMapper<DistrilbutionB
 	List<DistrilbutionBillLadingExcel> exportDistrilbutionBillLading(@Param("ew") Wrapper<DistrilbutionBillLadingEntity> queryWrapper);
 
     IPage<DistrilbutionBillLadingVO> pageList(IPage<Object> page, @Param("param") DistrilbutionBillLadingDTO distrilbutionBillLadingDTO);
+
+	IPage<DistrilbutionBillLadingAppVO> pageListApp(IPage<Object> page, @Param("param") Map<String, Object> distrilbutionBillLading);
+
+	DistrilbutionBillLadingAppVO selectDataByBillLadingId(@Param("billLadingId") Long billLadingId);
+
+	List<DistrilbutionAppBillLadingDetailVO> selectDetailList(@Param("stockArticleId") Long stockArticleId, @Param("scanStatus") Integer scanStatus,@Param("orderSelfNumbering") String orderSelfNumbering);
 }
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml
index 18ee02b79..b6d7a0119 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml
@@ -63,4 +63,60 @@
         SELECT * FROM logpm_distrilbution_bill_lading ${ew.customSqlSegment}
     </select>
 
+    <select id="pageListApp" resultType="com.logpm.distribution.vo.DistrilbutionBillLadingAppVO">
+        select 3 carType,
+               bl.`condition` `condition`,
+               bl.Pick_up_plate pickUpPlate,
+               bl.consignee consignee,
+               bl.create_time,
+               bl.pick_up_time,
+               bl.stock_article_id stockArticleId
+        from logpm_distrilbution_bill_lading bl
+        where bl.is_deleted = 0
+        and DATE_FORMAT(bl.pick_up_time,'%Y-%m-%d') = #{param.pickUpTime}
+    </select>
+
+    <select id="selectDataByBillLadingId" resultType="com.logpm.distribution.vo.DistrilbutionBillLadingAppVO">
+        select 3 carType,
+               bl.`condition` `condition`,
+               bl.Pick_up_plate pickUpPlate,
+               bl.consignee consignee,
+               bl.create_time,
+               bl.pick_up_time,
+               bl.stock_article_id stockArticleId
+        from logpm_distrilbution_bill_lading bl
+        where bl.is_deleted = 0
+          and bl.id = #{billLadingId}
+    </select>
+
+    <select id="selectDetailList" resultType="com.logpm.distribution.vo.app.DistrilbutionAppBillLadingDetailVO">
+        select pl.stock_article_id stockArticleId,
+               pl.order_self_numbering orderSelfNumbering,
+               pl.packet_bar_code packetBarCode,
+               case
+                   when bls.id is null then 0
+                   else 1
+                   end scanStatus,
+               0 errorStatus
+        from logpm_distribution_parcel_list pl
+                 left join logpm_distribution_bill_lading_scan bls on bls.parcel_list_id = pl.id and sa.is_deleted = 0
+        <where>
+            and pl.is_deleted = 0
+            and pl.stock_article_id = #{stockArticleId}
+            <if test="orderSelfNumbering != null and orderSelfNumbering !=''">
+                and pl.order_self_numbering like ${orderSelfNumbering}
+            </if>
+            <if test="scanStatus != null and scanStatus=0">
+                and bls.id is null
+            </if>
+            <if test="scanStatus != null and scanStatus=1">
+                and bls.id is not null
+            </if>
+        </where>
+
+        where pl.is_deleted = 0
+          and pl.stock_article_id =
+          and bls.id is null
+    </select>
+
 </mapper>
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionBillLadingScanService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionBillLadingScanService.java
new file mode 100644
index 000000000..840221394
--- /dev/null
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionBillLadingScanService.java
@@ -0,0 +1,7 @@
+package com.logpm.distribution.service;
+
+import com.logpm.distribution.entity.DistributionBillLadingScanEntity;
+import org.springblade.core.mp.base.BaseService;
+
+public interface IDistributionBillLadingScanService extends BaseService<DistributionBillLadingScanEntity> {
+}
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java
index a341c37f7..66255eb63 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java
@@ -19,9 +19,11 @@ package com.logpm.distribution.service;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.logpm.distribution.dto.DistrilbutionBillLadingDTO;
 import com.logpm.distribution.entity.DistrilbutionBillLadingEntity;
+import com.logpm.distribution.vo.DistrilbutionBillLadingAppVO;
 import com.logpm.distribution.vo.DistrilbutionBillLadingVO;
 import com.logpm.distribution.excel.DistrilbutionBillLadingExcel;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderMainVO;
 import org.springblade.core.mp.base.BaseService;
 import java.util.List;
 import java.util.Map;
@@ -54,4 +56,12 @@ public interface IDistrilbutionBillLadingService extends BaseService<Distrilbuti
 	Boolean ownSaveOrUpdate(DistrilbutionBillLadingDTO distrilbutionBillLading);
 
 	IPage<DistrilbutionBillLadingVO> pageList(IPage<Object> page, Map<String, Object> distrilbutionBillLading);
+
+	IPage<DistrilbutionBillLadingAppVO> pageListApp(IPage<Object> page, Map<String, Object> distrilbutionBillLading);
+
+
+	DistrilbutionAppBillLadingOrderMainVO selectOrderList(Long billLadingId, Integer orderStatus);
+
+	DistrilbutionBillLadingAppVO selectDetailList(Long billLadingId, Integer scanStatus,String orderSelfNumbering);
+
 }
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionBillLadingScanServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionBillLadingScanServiceImpl.java
new file mode 100644
index 000000000..45415f0cc
--- /dev/null
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionBillLadingScanServiceImpl.java
@@ -0,0 +1,14 @@
+package com.logpm.distribution.service.impl;
+
+import com.logpm.distribution.entity.DistributionBillLadingScanEntity;
+import com.logpm.distribution.mapper.DistributionBillLadingScanMapper;
+import com.logpm.distribution.service.IDistributionBillLadingScanService;
+import lombok.AllArgsConstructor;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+@AllArgsConstructor
+public class DistributionBillLadingScanServiceImpl extends BaseServiceImpl<DistributionBillLadingScanMapper, DistributionBillLadingScanEntity> implements IDistributionBillLadingScanService {
+
+}
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java
index 50ceee370..b25536dfe 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java
@@ -16,30 +16,34 @@
  */
 package com.logpm.distribution.service.impl;
 
-import cn.hutool.log.Log;
 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.logpm.distribution.dto.DistributionStockDTO;
 import com.logpm.distribution.dto.DistrilbutionBillLadingDTO;
 import com.logpm.distribution.entity.*;
-import com.logpm.distribution.service.*;
-import com.logpm.distribution.vo.DistrilbutionBillLadingVO;
 import com.logpm.distribution.excel.DistrilbutionBillLadingExcel;
 import com.logpm.distribution.mapper.DistrilbutionBillLadingMapper;
+import com.logpm.distribution.service.*;
+import com.logpm.distribution.vo.DistrilbutionBillLadingAppVO;
+import com.logpm.distribution.vo.DistrilbutionBillLadingVO;
+import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingDetailVO;
+import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderMainVO;
+import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderVO;
 import lombok.AllArgsConstructor;
-import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
+import java.util.Objects;
 
 /**
  * 提货单 服务实现类
@@ -59,6 +63,10 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
 
 	private final IDistributionStockArticleService distributionStockArticleService;
 
+	private final IDistributionParcelListService distributionParcelListService;
+
+	private final IDistributionBillLadingScanService distributionBillLadingScanService;
+
 
 	@Override
 	public IPage<DistrilbutionBillLadingVO> selectDistrilbutionBillLadingPage(IPage<DistrilbutionBillLadingVO> page, DistrilbutionBillLadingVO distrilbutionBillLading) {
@@ -218,4 +226,173 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
 		return distributionPrintService.saveBatch(list2);
 	}
 
+
+	@Override
+	public IPage<DistrilbutionBillLadingAppVO> pageListApp(IPage<Object> page, Map<String, Object> distrilbutionBillLading) {
+		IPage<DistrilbutionBillLadingAppVO> pageList = baseMapper.pageListApp(page, distrilbutionBillLading);
+		List<DistrilbutionBillLadingAppVO> records = pageList.getRecords();
+		for (DistrilbutionBillLadingAppVO vo:records){
+			//有可能存在多个订单所以需要拆分
+			String stockArticleId = vo.getStockArticleId();
+
+			Integer orderNum = 0;
+			Integer planNum = 0;
+			Integer signedNum = 0;
+			String[] split = stockArticleId.split(",");
+			for (String s:split){
+				if(StringUtil.isBlank(s)){
+					continue;
+				}
+				orderNum++;
+				QueryWrapper<DistributionParcelListEntity> queryWrapper = new QueryWrapper<>();
+				queryWrapper.eq("stock_article_id",Long.parseLong(s))
+						.eq("is_deleted",0);
+				List<DistributionParcelListEntity> list = distributionParcelListService.list(queryWrapper);
+				int pn = list.size();
+				planNum = planNum + pn;
+				//通过订单id查询扫描表中有多少数据
+				QueryWrapper<DistributionBillLadingScanEntity> qw = new QueryWrapper<>();
+				qw.eq("stock_article_id",Long.parseLong(s))
+					.eq("is_deleted",0);
+				List<DistributionBillLadingScanEntity> ls = distributionBillLadingScanService.list(qw);
+				int sn = ls.size();
+				signedNum = signedNum +sn;
+			}
+			vo.setOrderNum(orderNum);
+			vo.setPlanNum(planNum);
+			vo.setSignedNum(signedNum);
+		}
+
+		pageList.setRecords(records);
+		return pageList;
+	}
+
+	@Override
+	public DistrilbutionAppBillLadingOrderMainVO selectOrderList(Long billLadingId, Integer orderStatus) {
+		DistrilbutionBillLadingAppVO main = baseMapper.selectDataByBillLadingId(billLadingId);
+		if(Objects.isNull(main)){
+			return null;
+		}
+
+		//有可能存在多个订单所以需要拆分
+		String stockArticleId = main.getStockArticleId();
+
+		Integer orderNum = 0;
+		Integer planNum = 0;
+		Integer conpleteNum = 0;
+		Integer signedNum = 0;
+		String[] split = stockArticleId.split(",");
+
+		List<DistrilbutionAppBillLadingOrderVO> l = new ArrayList<>();
+		for (String s:split){
+			if(StringUtil.isBlank(s)){
+				continue;
+			}
+			DistrilbutionAppBillLadingOrderVO vo = new DistrilbutionAppBillLadingOrderVO();
+			vo.setStockArticleId(Long.parseLong(s));
+
+
+			orderNum++;
+			QueryWrapper<DistributionParcelListEntity> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("stock_article_id",Long.parseLong(s))
+				.eq("is_deleted",0);
+			List<DistributionParcelListEntity> list = distributionParcelListService.list(queryWrapper);
+			vo.setOrderSelfNumbering(list.get(0).getOrderSelfNumbering());
+			int pn = list.size();
+			vo.setPlanNum(pn);
+			planNum = planNum + pn;
+			//通过订单id查询扫描表中有多少数据
+			QueryWrapper<DistributionBillLadingScanEntity> qw = new QueryWrapper<>();
+			qw.eq("stock_article_id",Long.parseLong(s))
+				.eq("is_deleted",0);
+			List<DistributionBillLadingScanEntity> ls = distributionBillLadingScanService.list(qw);
+			int sn = ls.size();
+			vo.setSignedNum(sn);
+			signedNum = signedNum +sn;
+
+			if(pn == sn){
+				conpleteNum++;
+			}
+
+			//0 全部  1	齐套 2部分扫 3未扫
+			if(orderStatus == 0){
+				l.add(vo);
+			}else if(orderStatus == 1){
+				if(pn == sn){
+					l.add(vo);
+				}
+			}else if(orderStatus == 2){
+				if(sn<pn){
+					l.add(vo);
+				}
+			}else if(orderStatus == 3){
+				if(sn == 0){
+					l.add(vo);
+				}
+			}
+		}
+		DistrilbutionAppBillLadingOrderMainVO mainVO = new DistrilbutionAppBillLadingOrderMainVO();
+		mainVO.setOrderNum(orderNum);
+		mainVO.setPlanNum(planNum);
+		mainVO.setSignedNum(signedNum);
+		mainVO.setCompleteNum(conpleteNum);
+		mainVO.setList(l);
+		return mainVO;
+	}
+
+	@Override
+	public DistrilbutionBillLadingAppVO selectDetailList(Long billLadingId, Integer scanStatus,String orderSelfNumbering) {
+		DistrilbutionBillLadingAppVO main = baseMapper.selectDataByBillLadingId(billLadingId);
+		if(Objects.isNull(main)){
+			return null;
+		}
+
+		//有可能存在多个订单所以需要拆分
+		String stockArticleId = main.getStockArticleId();
+		List<DistrilbutionAppBillLadingDetailVO> dls = main.getList();
+		Integer orderNum = 0;
+		Integer planNum = 0;
+		Integer conpleteNum = 0;
+		Integer signedNum = 0;
+		String[] split = stockArticleId.split(",");
+
+		for (String s:split){
+			if(StringUtil.isBlank(s)){
+				continue;
+			}
+
+			//查询所有的包件列表并且附带状态
+			List<DistrilbutionAppBillLadingDetailVO> details = baseMapper.selectDetailList(Long.parseLong(s),scanStatus,"%"+orderSelfNumbering+"%");
+			dls.addAll(details);
+
+			orderNum++;
+			QueryWrapper<DistributionParcelListEntity> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("stock_article_id",Long.parseLong(s))
+				.eq("is_deleted",0);
+			List<DistributionParcelListEntity> list = distributionParcelListService.list(queryWrapper);
+			int pn = list.size();
+			planNum = planNum + pn;
+			//通过订单id查询扫描表中有多少数据
+			QueryWrapper<DistributionBillLadingScanEntity> qw = new QueryWrapper<>();
+			qw.eq("stock_article_id",Long.parseLong(s))
+				.eq("is_deleted",0);
+			List<DistributionBillLadingScanEntity> ls = distributionBillLadingScanService.list(qw);
+			int sn = ls.size();
+			signedNum = signedNum +sn;
+
+			if(pn == sn){
+				conpleteNum++;
+			}
+		}
+		main.setCompleteNum(conpleteNum);
+		main.setOrderNum(orderNum);
+		main.setSignedNum(signedNum);
+		main.setPlanNum(planNum);
+		main.setList(dls);
+
+
+		return main;
+	}
+
+
 }