Browse Source

Merge branch 'master' of http://62.234.61.92:3000/wjm/mec-cloud_IntelligentManufacturing_CLIENT

lph 1 year ago
parent
commit
06bc1fd9bf

+ 10 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/mapper/SaleProductsMapper.java

@@ -119,6 +119,16 @@ public interface SaleProductsMapper
      */
     List<ProductInvoiceVO.SaleProductInfo> selectSaleProductsInfo1(String saleOrderNo);
 
+    /**
+     * 查询销售单货品信息(根据出库记录获取库存等级信息)
+     */
+    List<ProductInvoiceVO.SaleProductInfo> selectSaleProductsInfo2(String noticeNumber);
+
+    /**
+     * 查询销售单货品信息(根据手持机出库记录获取库存等级信息)
+     */
+    List<ProductInvoiceVO.SaleProductInfo> selectSaleProductsInfo3(String noticeNumber);
+
 
     /***
      * 查询销售出库单详情

+ 119 - 114
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/ProductInvoiceServiceImpl.java

@@ -4,6 +4,7 @@ import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import com.zkqy.business.domain.*;
 import com.zkqy.business.domain.vo.ProductCodeListVO;
@@ -137,130 +138,106 @@ public class ProductInvoiceServiceImpl implements IProductInvoiceService
         // 查询销售单信息
         SaleOrder saleOrder = saleOrderMapper.selectSaleOrderBySaleNo(saleOrderNo);
 
-        if(saleOrder.getOrderType().equals("1")){
+//        if(saleOrder.getOrderType().equals("1")){
+//            List<ProductInvoiceVO.SaleProductInfo> saleProductInfoList = saleProductsMapper.selectSaleProductsInfo1(saleOrderNo);
+//            if(productInvoice != null){
+//                for (ProductInvoiceVO.SaleProductInfo saleProductInfo : saleProductInfoList){
+//
+//                    //获取已出库箱数和重量
+//                    ProductOutboundRecord productOutboundRecord = productOutboundRecordMapper
+//                            .statisticsBoxNumSuttle1(saleProductInfo.getProductId(), productInvoice.getNoticeNumber(),saleProductInfo.getProductColor());
+//
+//                    if(productOutboundRecord != null){
+//                        saleProductInfo.setBoxNum(productOutboundRecord.getBoxNum());
+//                        saleProductInfo.setWeight(handlingWeight(productOutboundRecord.getSuttle() == null ? 0 : productOutboundRecord.getSuttle()));
+//                    }else {
+//                        saleProductInfo.setBoxNum(0);
+//                        saleProductInfo.setWeight(0.0);
+//                    }
+//                }
+//            }else {
+//                for (ProductInvoiceVO.SaleProductInfo saleProductInfo : saleProductInfoList){
+//                    saleProductInfo.setBoxNum(0);
+//                    saleProductInfo.setWeight(0.0);
+//                }
+//            }
+//            //查询当前批号库存箱数,重量
+//            ProductInventory productInventory1 = new ProductInventory();
+//            productInventory1.setProductId(saleProductInfoList.get(0).getProductId());
+//            productInventory1.setLotNum(saleProductInfoList.get(0).getLotNum());
+//            ProductInventory productInventory = productInventoryMapper.selectProductInventoryByLotNumAndProductId(productInventory1);
+//            if(productInventory != null){
+//                vo.setInventoryBoxNum(productInventory.getTotalBoxNum());
+//                vo.setInventoryWeight(handlingWeight(productInventory.getTotalSuttle()));
+//            }else {
+//                vo.setInventoryBoxNum(0);
+//                vo.setInventoryWeight(0.0);
+//            }
+//
+//            //客户编号
+//            vo.setCustomerId(saleOrderMapper.selectCustomerIdBySaleNo(saleOrderNo));
+//            vo.setSaleProductInfoList(saleProductInfoList);
+//
+//
+//        }else {
+
+            //表格数据
+
+            //查询所有订单货品信息
             List<ProductInvoiceVO.SaleProductInfo> saleProductInfoList = saleProductsMapper.selectSaleProductsInfo1(saleOrderNo);
+
             if(productInvoice != null){
-                for (ProductInvoiceVO.SaleProductInfo saleProductInfo : saleProductInfoList){
+                //根据通知单号查询货品信息
+                List<ProductInvoiceVO.SaleProductInfo> saleProductInfoList1 = saleProductsMapper.selectSaleProductsInfo2(productInvoice.getNoticeNumber());
 
-                    //获取已出库箱数和重量
-                    ProductOutboundRecord productOutboundRecord = productOutboundRecordMapper
-                            .statisticsBoxNumSuttle1(saleProductInfo.getProductId(), productInvoice.getNoticeNumber(),saleProductInfo.getProductColor());
+                List<ProductInvoiceVO.SaleProductInfo> saleProductInfoList2 = new ArrayList<>();
+                saleProductInfoList2.addAll(saleProductInfoList);
 
-                    if(productOutboundRecord != null){
-                        saleProductInfo.setBoxNum(productOutboundRecord.getBoxNum());
-                        saleProductInfo.setWeight(handlingWeight(productOutboundRecord.getSuttle() == null ? 0 : productOutboundRecord.getSuttle()));
-                    }else {
-                        saleProductInfo.setBoxNum(0);
-                        saleProductInfo.setWeight(0.0);
+                for (ProductInvoiceVO.SaleProductInfo saleProductInfo : saleProductInfoList2){
+                    for (ProductInvoiceVO.SaleProductInfo saleProductInfo1 : saleProductInfoList1){
+                        if(saleProductInfo1.getProductId().equals(saleProductInfo.getProductId()) && saleProductInfo1.getProductColor().equals(saleProductInfo.getProductColor())){
+                            saleProductInfoList.remove(saleProductInfo);
+                        }
                     }
                 }
-            }else {
-                for (ProductInvoiceVO.SaleProductInfo saleProductInfo : saleProductInfoList){
-                    saleProductInfo.setBoxNum(0);
-                    saleProductInfo.setWeight(0.0);
+                if(saleProductInfoList.size() > 0){
+                    saleProductInfoList.forEach(saleProductInfo -> {
+                        saleProductInfo.setBoxNum(0);
+                        saleProductInfo.setWeight(0.0);
+                    });
+                    saleProductInfoList1.addAll(saleProductInfoList);
                 }
-            }
-            //查询当前批号库存箱数,重量
-            ProductInventory productInventory1 = new ProductInventory();
-            productInventory1.setProductId(saleProductInfoList.get(0).getProductId());
-            productInventory1.setLotNum(saleProductInfoList.get(0).getLotNum());
-            ProductInventory productInventory = productInventoryMapper.selectProductInventoryByLotNumAndProductId(productInventory1);
-            if(productInventory != null){
-                vo.setInventoryBoxNum(productInventory.getTotalBoxNum());
-                vo.setInventoryWeight(handlingWeight(productInventory.getTotalSuttle()));
-            }else {
-                vo.setInventoryBoxNum(0);
-                vo.setInventoryWeight(0.0);
-            }
 
-            //客户编号
-            vo.setCustomerId(saleOrderMapper.selectCustomerIdBySaleNo(saleOrderNo));
-            vo.setSaleProductInfoList(saleProductInfoList);
-
-
-        }else {
-            //表格数据
-            //根据销售单编号查询货品信息
-//            List<ProductInvoiceVO.SaleProductInfo> saleProductInfoList = saleProductsMapper.selectSaleProductsInfo(saleOrderNo);
-            List<ProductInvoiceVO.SaleProductInfo> saleProductInfoList = saleProductsMapper.selectSaleProductsInfo1(saleOrderNo);
-
-            for (ProductInvoiceVO.SaleProductInfo saleProductInfo : saleProductInfoList){
-                //查询库存信息
-                if(saleProductInfo.getLotNum() != null){
+                vo.setSaleProductInfoList(saleProductInfoList1);
+                if(saleProductInfoList1.size() > 0){
                     ProductInventory productInventory1 = new ProductInventory();
-                    productInventory1.setProductId(saleProductInfo.getProductId());
-                    productInventory1.setLotNum(saleProductInfo.getLotNum());
-                    productInventory1.setProductColour(saleProductInfo.getProductColor());
-
-                    ProductInventory productInventory = productInventoryMapper.selectProductInventoryInfo(productInventory1);
-
+                    productInventory1.setProductId(saleProductInfoList1.get(0).getProductId());
+                    productInventory1.setLotNum(saleProductInfoList1.get(0).getLotNum());
+                    ProductInventory productInventory = productInventoryMapper.selectProductInventoryByLotNumAndProductId(productInventory1);
                     if(productInventory != null){
-                        saleProductInfo.setLevels(productInventory.getLevels());
-                        saleProductInfo.setQrCode(productInventory.getQrCode());
-                    }
-                }
-            }
-
-            if(productInvoice != null){
-                for (ProductInvoiceVO.SaleProductInfo saleProductInfo : saleProductInfoList){
-
-                    //查询库存信息
-//                    if(saleProductInfo.getLotNum() != null){
-//                        ProductInventory productInventory1 = new ProductInventory();
-//                        productInventory1.setProductId(saleProductInfo.getProductId());
-//                        productInventory1.setLotNum(saleProductInfo.getLotNum());
-//                        productInventory1.setProductColour(saleProductInfo.getProductColor());
-//
-//                        ProductInventory productInventory = productInventoryMapper.selectProductInventoryInfo(productInventory1);
-//
-//                        if(productInventory != null){
-//                            saleProductInfo.setLevels(productInventory.getLevels());
-//                            saleProductInfo.setQrCode(productInventory.getQrCode());
-//                        }
-//                    }
-
-
-                    //获取已出库箱数和重量
-                    ProductOutboundRecord productOutboundRecord = productOutboundRecordMapper
-                            .statisticsBoxNumSuttle1(saleProductInfo.getProductId(), productInvoice.getNoticeNumber(),saleProductInfo.getProductColor());
-
-                    if(productOutboundRecord != null){
-                        saleProductInfo.setBoxNum(productOutboundRecord.getBoxNum());
-                        saleProductInfo.setWeight(handlingWeight(productOutboundRecord.getSuttle() == null ? 0 : productOutboundRecord.getSuttle()));
+                        vo.setInventoryBoxNum(productInventory.getTotalBoxNum());
+                        vo.setInventoryWeight(handlingWeight(productInventory.getTotalSuttle()));
                     }else {
-                        saleProductInfo.setBoxNum(0);
-                        saleProductInfo.setWeight(0.0);
+                        vo.setInventoryBoxNum(0);
+                        vo.setInventoryWeight(0.0);
                     }
                 }
+
             }else {
                 for (ProductInvoiceVO.SaleProductInfo saleProductInfo : saleProductInfoList){
                     saleProductInfo.setBoxNum(0);
                     saleProductInfo.setWeight(0.0);
                 }
-            }
-            //查询当前批号库存箱数,重量
-            if(saleProductInfoList.size() > 0){
-                ProductInventory productInventory1 = new ProductInventory();
-                productInventory1.setProductId(saleProductInfoList.get(0).getProductId());
-                productInventory1.setLotNum(saleProductInfoList.get(0).getLotNum());
-                ProductInventory productInventory = productInventoryMapper.selectProductInventoryByLotNumAndProductId(productInventory1);
-                if(productInventory != null){
-                    vo.setInventoryBoxNum(productInventory.getTotalBoxNum());
-                    vo.setInventoryWeight(handlingWeight(productInventory.getTotalSuttle()));
-                }else {
-                    vo.setInventoryBoxNum(0);
-                    vo.setInventoryWeight(0.0);
-                }
-            }else {
                 vo.setInventoryBoxNum(0);
                 vo.setInventoryWeight(0.0);
+                vo.setSaleProductInfoList(saleProductInfoList);
             }
 
 
             //客户编号
             vo.setCustomerId(saleOrderMapper.selectCustomerIdBySaleNo(saleOrderNo));
-            vo.setSaleProductInfoList(saleProductInfoList);
-        }
+
+//        }
 
         return vo;
     }
@@ -332,28 +309,56 @@ public class ProductInvoiceServiceImpl implements IProductInvoiceService
 
         // 查询销售单信息
         SaleOrder saleOrder = saleOrderMapper.selectSaleOrderBySaleNo(productInvoice.getSaleOrderNo());
-        List<ProductInvoiceVO.SaleProductInfo> saleProductInfoList = new ArrayList<>();
 
-        if(saleOrder.getOrderType().equals("1")){
-            //查询发货单货品详情,循环得到货品实发箱数、重量
-            saleProductInfoList = saleProductsMapper.selectSaleProductsInfo1(productInvoice.getSaleOrderNo());
-        }else {
-            saleProductInfoList = saleProductsMapper.selectSaleProductsInfo(productInvoice.getSaleOrderNo());
-        }
+        //查询所有订单货品信息
+        List<ProductInvoiceVO.SaleProductInfo> saleProductInfoList = saleProductsMapper.selectSaleProductsInfo1(saleOrder.getSaleNo());
+
+        //根据通知单号查询货品信息
+        List<ProductInvoiceVO.SaleProductInfo> saleProductInfoList1 = saleProductsMapper.selectSaleProductsInfo3(productInvoice.getNoticeNumber());
+        List<ProductInvoiceVO.SaleProductInfo> saleProductInfoList2 = new ArrayList<>();
+        saleProductInfoList2.addAll(saleProductInfoList);
 
-        for (ProductInvoiceVO.SaleProductInfo saleProductInfo : saleProductInfoList){
-            //实发箱数、重量
-            ProductHandsetOutboundRecord productHandsetOutboundRecord =
-                    productHandsetOutboundRecordMapper.selectBoxNumSuttle1(saleProductInfo.getProductId(), productInvoice.getNoticeNumber(),saleProductInfo.getProductColor());
-            if(productHandsetOutboundRecord != null){
-                saleProductInfo.setBoxNum(productHandsetOutboundRecord.getBoxNum());
-                saleProductInfo.setWeight(handlingWeight(productHandsetOutboundRecord.getSuttle() == null ? 0 : productHandsetOutboundRecord.getSuttle()));
+        for (ProductInvoiceVO.SaleProductInfo saleProductInfo : saleProductInfoList2){
+            for (ProductInvoiceVO.SaleProductInfo saleProductInfo1 : saleProductInfoList1){
+                if(saleProductInfo1.getProductId().equals(saleProductInfo.getProductId()) && saleProductInfo1.getProductColor().equals(saleProductInfo.getProductColor())){
+                    saleProductInfoList.remove(saleProductInfo);
+                }
             }
         }
+        if(saleProductInfoList.size() > 0){
+            saleProductInfoList.forEach(saleProductInfo -> {
+                saleProductInfo.setBoxNum(0);
+                saleProductInfo.setWeight(0.0);
+            });
+            saleProductInfoList1.addAll(saleProductInfoList);
+        }
+
+
+
+//        List<ProductInvoiceVO.SaleProductInfo> saleProductInfoList = new ArrayList<>();
+//
+//        if(saleOrder.getOrderType().equals("1")){
+//            //查询发货单货品详情,循环得到货品实发箱数、重量
+//            saleProductInfoList = saleProductsMapper.selectSaleProductsInfo1(productInvoice.getSaleOrderNo());
+//        }else {
+//
+//
+//            saleProductInfoList = saleProductsMapper.selectSaleProductsInfo(productInvoice.getSaleOrderNo());
+//        }
+//
+//        for (ProductInvoiceVO.SaleProductInfo saleProductInfo : saleProductInfoList){
+//            //实发箱数、重量
+//            ProductHandsetOutboundRecord productHandsetOutboundRecord =
+//                    productHandsetOutboundRecordMapper.selectBoxNumSuttle1(saleProductInfo.getProductId(), productInvoice.getNoticeNumber(),saleProductInfo.getProductColor());
+//            if(productHandsetOutboundRecord != null){
+//                saleProductInfo.setBoxNum(productHandsetOutboundRecord.getBoxNum());
+//                saleProductInfo.setWeight(handlingWeight(productHandsetOutboundRecord.getSuttle() == null ? 0 : productHandsetOutboundRecord.getSuttle()));
+//            }
+//        }
 
         //客户编号
         vo.setCustomerId(saleOrderMapper.selectCustomerIdBySaleNo(productInvoice.getSaleOrderNo()));
-        vo.setSaleProductInfoList(saleProductInfoList);
+        vo.setSaleProductInfoList(saleProductInfoList1);
         return vo;
     }
 

+ 79 - 0
zkqy-custom-business/src/main/resources/mapper/business/SaleProductsMapper.xml

@@ -402,6 +402,85 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     </select>
 
+
+    <select id="selectSaleProductsInfo2" resultType="com.zkqy.business.domain.vo.ProductInvoiceVO$SaleProductInfo">
+        SELECT
+            a.*,
+            IFNULL( sp.product_unit_price, 0 ) AS unitPrice,
+            sp.remark AS productRemark,
+            sp.product_number AS actualWeight
+        FROM
+            (
+                SELECT
+                    p.id AS productId,
+                    p.product_no AS productCode,
+                    p.product_name AS productName,
+                    p.product_specifications AS productSpecifications,
+                    r.lot_num AS lotNum,
+                    r.levels,
+                    count( r.id ) AS boxNum,
+                    TRUNCATE ( sum( r.suttle ), 2 ) AS weight,
+                    r.product_colour AS productColor,
+                    p.product_type AS productType,
+                    pi.sale_order_no
+                FROM
+                    {DBNAME}.product_outbound_record r
+                        LEFT JOIN {DBNAME}.production p ON r.product_id = p.id
+                        LEFT JOIN {DBNAME}.product_invoice pi ON r.notice_number = pi.notice_number
+                        AND pi.del_flag = '0'
+                WHERE
+                    r.del_flag = '0'
+                  AND r.notice_number = #{noticeNumber}
+                GROUP BY
+                    r.lot_num,
+                    r.product_id,
+                    r.product_colour,
+                    r.levels
+            ) AS a
+                LEFT JOIN {DBNAME}.sale_products sp ON sp.sale_order_no = a.sale_order_no
+                AND sp.product_no = a.productCode
+
+    </select>
+
+    <select id="selectSaleProductsInfo3" resultType="com.zkqy.business.domain.vo.ProductInvoiceVO$SaleProductInfo">
+        SELECT
+            a.*,
+            IFNULL( sp.product_unit_price, 0 ) AS unitPrice,
+            sp.remark AS productRemark,
+            sp.product_number AS actualWeight
+        FROM
+            (
+                SELECT
+                    p.id AS productId,
+                    p.product_no AS productCode,
+                    p.product_name AS productName,
+                    p.product_specifications AS productSpecifications,
+                    r.lot_num AS lotNum,
+                    r.levels,
+                    count( r.id ) AS boxNum,
+                    TRUNCATE ( sum( r.suttle ), 2 ) AS weight,
+                    r.product_colour AS productColor,
+                    p.product_type AS productType,
+                    pi.sale_order_no
+                FROM
+                    {DBNAME}.product_handset_outbound_record r
+                        LEFT JOIN {DBNAME}.production p ON r.product_id = p.id
+                    LEFT JOIN {DBNAME}.product_invoice pi ON r.notice_number = pi.notice_number
+                    AND pi.del_flag = '0'
+                WHERE
+                    r.del_flag = '0'
+                  AND r.notice_number = #{noticeNumber}
+                GROUP BY
+                    r.lot_num,
+                    r.product_id,
+                    r.product_colour,
+                    r.levels
+            ) AS a
+                LEFT JOIN {DBNAME}.sale_products sp ON sp.sale_order_no = a.sale_order_no
+            AND sp.product_no = a.productCode
+
+    </select>
+
     <select id="selectOutboundOrderInfo" resultType="com.zkqy.business.domain.vo.SaleProductsVo">
         SELECT
             p.product_name as productName,