Browse Source

装箱出货 数量错误问题处理

yzc 2 years ago
parent
commit
f331249426

+ 5 - 5
hx-sale/src/main/java/com/fjhx/sale/service/pack/impl/PackDetailServiceImpl.java

@@ -19,7 +19,6 @@ import com.fjhx.sale.service.pack.PackShipmentService;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
-import com.ruoyi.common.utils.wrapper.SqlField;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -53,13 +52,14 @@ public class PackDetailServiceImpl extends ServiceImpl<PackDetailMapper, PackDet
     public Page<PackDetailVo> getPage(PackDetailSelectDto dto) {
         IWrapper<PackDetail> wrapper = getWrapper();
         if (ObjectUtil.isNotEmpty(dto.getShipmentStatus())) {
-            wrapper.eq("t1", PackDetailVo::getShipmentStatus, dto.getShipmentStatus());
+            wrapper.eq("pd", PackDetailVo::getShipmentStatus, dto.getShipmentStatus());
         }
         if (StringUtils.isNotEmpty(dto.getKeyword())) {
-            wrapper.keyword(dto.getKeyword(), new SqlField("t3.`code`"), new SqlField("t2.`product_name`"));
+//            wrapper.keyword(dto.getKeyword(), new SqlField("t3.`code`"), new SqlField("t2.`product_name`"));
+            wrapper.like("pd.codeAPName", dto.getKeyword());
         }
-        wrapper.groupBy("t1.pack_id");
-        wrapper.orderByDesc("t1.create_time");
+//        wrapper.groupBy("t1.pack_id");
+//        wrapper.orderByDesc("t1.create_time");
         Page<PackDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         return page;
     }

+ 9 - 8
hx-sale/src/main/resources/mapper/contract/ContractProductMapper.xml

@@ -154,18 +154,19 @@
 
     <select id="getNoPackContractProductById" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
         SELECT
-            *
+        *
         FROM
         (
         SELECT
-            t2.*,
-            t1.id AS contractId,
-            t1.`code` AS contractCode,
-            t2.quantity AS cpQuantity,
-            t2.id AS contractProductId,
-            ( SELECT IFNULL( SUM( quantity ), 0 ) FROM pack_detail_product WHERE contract_product_id = t2.id ) AS sumPackQuantity
+        t2.*,
+        t1.id AS contractId,
+        t1.`code` AS contractCode,
+        t2.quantity AS cpQuantity,
+        t2.id AS contractProductId,
+        ( SELECT IFNULL( SUM( pd.pack_quantity * pdd.quantity ), 0 ) FROM pack_detail_product pdd LEFT JOIN pack_detail
+        pd ON pdd.pack_detail_id = pd.id WHERE pdd.contract_product_id = t2.id ) AS sumPackQuantity
         FROM
-            contract t1
+        contract t1
         LEFT JOIN contract_product t2 ON t1.id = t2.contract_id
         <where>
             <if test="customerId neq null and customerId neq '' ">

+ 27 - 17
hx-sale/src/main/resources/mapper/pack/PackDetailMapper.xml

@@ -2,23 +2,33 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.sale.mapper.pack.PackDetailMapper">
     <select id="getPage" resultType="com.fjhx.sale.entity.pack.vo.PackDetailVo">
-        SELECT (SELECT GROUP_CONCAT(CONCAT(t3.`code`, "_", t2.product_name)) AS codeAPName
-                FROM pack_detail_product t2
-                         LEFT JOIN contract t3 ON t2.contract_id = t3.id
-                WHERE t2.pack_detail_id IN (GROUP_CONCAT(t1.id))) AS codeAPName,
-               sum(t1.pack_quantity)                                 packQuantity,
-               sum(t1.net_weight)                                    netWeight,
-               sum(t1.rough_weight)                                  roughWeight,
-               t1.box_long,
-               t1.box_wide,
-               t1.box_high,
-               sum(t1.bom_volume)                                    bomVolume,
-               t1.shipment_status,
-               t1.shipment_time,
-               t1.contract_ids
-        FROM pack_detail t1
-                 LEFT JOIN pack_detail_product t2 ON t2.pack_detail_id = t1.id
-                 LEFT JOIN contract t3 ON t2.contract_id = t3.id
+        select *
+        from (SELECT t1.id,
+                     t1.pack_id,
+                     t1.waybill_code,
+                     t1.express_id,
+                     t1.remark,
+                     t1.update_time,
+                     t1.update_user,
+                     t1.create_user,
+                     t1.create_time,
+                     (SELECT GROUP_CONCAT(CONCAT(t3.`code`, "_", t2.product_name)) AS codeAPName
+                      FROM pack_detail_product t2
+                               LEFT JOIN contract t3 ON t2.contract_id = t3.id
+                      WHERE t2.pack_detail_id IN (GROUP_CONCAT(t1.id))) AS codeAPName,
+                     sum(t1.pack_quantity)                                 packQuantity,
+                     sum(t1.net_weight)                                    netWeight,
+                     sum(t1.rough_weight)                                  roughWeight,
+                     t1.box_long,
+                     t1.box_wide,
+                     t1.box_high,
+                     sum(t1.bom_volume)                                    bomVolume,
+                     t1.shipment_status,
+                     t1.shipment_time,
+                     t1.contract_ids
+              FROM pack_detail t1
+              GROUP BY t1.pack_id
+              ORDER BY t1.create_time desc) pd
             ${ew.customSqlSegment}
     </select>