Przeglądaj źródła

电子单签收数据预处理第二版

njs 6 miesięcy temu
rodzic
commit
a6b3ec1fcc

+ 11 - 1
suishenbang-system/src/main/java/com/dgtly/system/mapper/MetaHanaDeliverSignMapper.java

@@ -102,7 +102,7 @@ public interface MetaHanaDeliverSignMapper
      * @author: njs
      * @date: 2025/6/5 10:05
      */
-    List<DeliverSignVO> selectDeliverSignByTmsShipmentNumber(@Param("tmsShipmentNumber") String tmsShipmentNumber);
+    List<DeliverSignVO> selectDeliverSignByTmsShipmentNumber(@Param("deliverNumberList") List<String> deliverNumberList);
 
 
 
@@ -135,6 +135,16 @@ public interface MetaHanaDeliverSignMapper
     void batchTmsShipmentSign(@Param("list") List<TmsShipmentSignVO> list);
 
 
+    /**
+     * @description: 根据运单查询交货单数据
+     * @param: [tmsShipmentNumber]
+     * @return: java.util.List<java.lang.String>
+     * @author: njs
+     * @date: 2025/6/5 16:32
+     */
+   List<String> selectDeliverNumListByTmsShipmentNumber(@Param("tmsShipmentNumber") String tmsShipmentNumber);
+
+
 
 
 }

+ 8 - 2
suishenbang-system/src/main/java/com/dgtly/system/service/impl/MetaHanaDeliverSignServiceImpl.java

@@ -169,7 +169,9 @@ public class MetaHanaDeliverSignServiceImpl implements IMetaHanaDeliverSignServi
                 TmsShipmentSignVO signVO = new TmsShipmentSignVO();
                 signVO.setTmsShipmentNumber(tmsShipmentNumber);
             //abnormalStatus 1未签收;2未开始补货;3部分签收;4全部签收
-            List<DeliverSignVO> deliverSignList =  metaHanaDeliverSignMapper.selectDeliverSignByTmsShipmentNumber(tmsShipmentNumber);
+               List<String> deliverNumberList = metaHanaDeliverSignMapper.selectDeliverNumListByTmsShipmentNumber(tmsShipmentNumber);
+            if(deliverNumberList !=null){
+            List<DeliverSignVO> deliverSignList =  metaHanaDeliverSignMapper.selectDeliverSignByTmsShipmentNumber(deliverNumberList);
             if(deliverSignList !=null && deliverSignList.size()>0){
                 List<String> signList = new ArrayList<>();
                 deliverSignList.forEach(sign->{
@@ -219,7 +221,11 @@ public class MetaHanaDeliverSignServiceImpl implements IMetaHanaDeliverSignServi
             }else{
                 //未签收
                 signVO.setSignType(3);
-            }
+                }
+               }else{
+                   //未签收
+                   signVO.setSignType(3);
+               }
                 tmsList.add(signVO);
             });
             if(tmsList !=null && tmsList.size()>0){

+ 46 - 47
suishenbang-system/src/main/resources/mapper/system/MetaHanaDeliverSignMapper.xml

@@ -112,61 +112,56 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectDeliverSignListByOrderNumberAndOrderItem" resultType="com.dgtly.system.domain.MetaHanaDeliverSign">
         SELECT
-        order_number AS orderNumber,
-        deliver_qty AS deliverQty,
-        actual_qty AS actualQty,
-        difference_qty AS differenceQty,
-        zdate_date AS zdateDate,
-        zdate_time AS zdateTime,
-        (select max(DATE_FORMAT( STR_TO_DATE( CONCAT( zdate_date, zdate_time ), '%Y%m%d%H%i%s' ), '%Y-%m-%d %H:%i:%s ' )) FROM
-        meta_hana_deliver_sign
+        a.order_number AS orderNumber,
+        a.difference_qty AS differenceQty,
+        a.zdate_time AS zdateTime,
+        DATE_FORMAT(
+        MAX(STR_TO_DATE(CONCAT(b.zdate_date, b.zdate_time), '%Y%m%d%H%i%s')),
+        '%Y-%m-%d %H:%i:%s'
+        ) AS signTime,
+        a.abnormal_status AS abnormalStatus
+        FROM meta_hana_deliver_sign a
+        JOIN meta_hana_deliver_sign b ON
+        a.order_number = b.order_number
         <where>
-            <if test="OrderNumber !=null and OrderNumber !='' "> and order_number = #{OrderNumber}</if>
-            <if test="OrderItem !=null and OrderItem !='' "> and order_Item = #{OrderItem}</if>
-        </where>)  AS signTime,
-        abnormal_order AS abnormalOrder,
-        abnormal_status AS abnormalStatus
-        FROM
-        meta_hana_deliver_sign
-        <where>
-            <if test="OrderNumber !=null and OrderNumber !='' "> and order_number = #{OrderNumber}</if>
-            <if test="OrderItem !=null and OrderItem !='' "> and order_Item = #{OrderItem}</if>
+            <if test="OrderNumber !=null and OrderNumber !='' "> and a.order_number = #{OrderNumber}</if>
         </where>
+        GROUP BY
+        a.order_number,a.difference_qty,
+        a.zdate_date, a.zdate_time, a.abnormal_status
     </select>
 
 
 
     <select id="selectDeliverSignByTmsShipmentNumber" resultType="com.dgtly.system.domain.DeliverSignVO">
         SELECT
-            difference_qty AS differenceQty,
-            (
-                CASE
-
-                    WHEN abnormal_status = '补货中' THEN
-                        1
-                    WHEN abnormal_status = '未开始补货' THEN
-                        2
-                    WHEN abnormal_status = '部分签收' THEN
-                        3
-                    WHEN abnormal_status = '全部签收' THEN
-                        4 ELSE 5
-                    END
-                ) AS abnormalStatus,
-            (
-                SELECT
-                    max(
-                            DATE_FORMAT( STR_TO_DATE( CONCAT( zdate_date, zdate_time ), '%Y%m%d%H%i%s' ), '%Y-%m-%d %H:%i:%s ' ))
-                FROM
-
-
-                    meta_hana_deliver_sign
-                WHERE
-                        deliver_number IN  ( SELECT DISTINCT delivery_number FROM tms_logistics_status WHERE is_delete = '0' AND tms_shipment_number =#{tmsShipmentNumber} )) AS zdateDate,
-            zdate_date AS zDate
-        FROM
-            meta_hana_deliver_sign
-        WHERE
-                deliver_number IN ( SELECT DISTINCT delivery_number FROM tms_logistics_status WHERE is_delete = '0' AND tms_shipment_number =#{tmsShipmentNumber} )
+        a.difference_qty AS differenceQty,
+        CASE a.abnormal_status
+        WHEN '补货中' THEN 1
+        WHEN '未开始补货' THEN 2
+        WHEN '部分签收' THEN 3
+        WHEN '全部签收' THEN 4
+        ELSE 5
+        END AS abnormalStatus,
+        DATE_FORMAT(
+        MAX(STR_TO_DATE(CONCAT(b.zdate_date, b.zdate_time), '%Y%m%d%H%i%s')),
+        '%Y-%m-%d %H:%i:%s'
+        ) AS zdateDate,
+        a.zdate_date AS zDate
+        FROM meta_hana_deliver_sign a
+        JOIN (
+        SELECT deliver_number, zdate_date, zdate_time
+        FROM meta_hana_deliver_sign
+        WHERE deliver_number IN  <foreach collection="deliverNumberList" item="deliverNumber" open="(" separator="," close=")">
+        #{deliverNumber}
+    </foreach>
+        ) b ON a.deliver_number = b.deliver_number
+        WHERE a.deliver_number IN
+        <foreach collection="deliverNumberList" item="deliverNumber" open="(" separator="," close=")">
+            #{deliverNumber}
+        </foreach>
+        GROUP BY a.deliver_number, a.deliver_Item,a.difference_qty,a.abnormal_status,a.zdate_date,a.zdate_time
+
 
     </select>
 
@@ -174,6 +169,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT distinct order_number FROM meta_hana_deliver_sign
     </select>
 
+    <select id="selectDeliverNumListByTmsShipmentNumber" resultType="java.lang.String">
+        SELECT DISTINCT delivery_number FROM tms_logistics_status WHERE is_delete = '0' AND tms_shipment_number =#{tmsShipmentNumber}
+    </select>
+
     <select id="selectTmsShipmentNumberSign" resultType="java.lang.String">
         SELECT DISTINCT
             tms_shipment_number