Prechádzať zdrojové kódy

修改出库发货接口逻辑

xuezizhuo 1 rok pred
rodič
commit
57f63e351f

+ 5 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/mapper/ProductHandsetOutboundRecordMapper.java

@@ -74,4 +74,9 @@ public interface ProductHandsetOutboundRecordMapper
     ProductHandsetOutboundRecord selectBoxNumSuttle(@Param("productId") Long productId,@Param("noticeNumber") String noticeNumber,@Param("qrCode") String qrCode);
 
 
+    /**
+     * 查询实发箱数、重量库存
+     */
+    ProductHandsetOutboundRecord selectBoxNumSuttle1(@Param("productId") Long productId,@Param("noticeNumber") String noticeNumber,@Param("productColour") String productColour);
+
 }

+ 13 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/mapper/ProductInventoryMapper.java

@@ -2,6 +2,7 @@ package com.zkqy.business.mapper;
 
 import java.util.List;
 import com.zkqy.business.domain.ProductInventory;
+import com.zkqy.business.domain.vo.ProductCodeListVO;
 
 /**
  * 产品库存Mapper接口
@@ -71,4 +72,16 @@ public interface ProductInventoryMapper
      */
     ProductInventory selectProductInventoryByLotNumAndProductId(ProductInventory productInventory);
 
+    /**
+     * 查询综合库存列表
+     */
+    List<ProductCodeListVO> selectComprehensiveInventoryList(ProductCodeListVO productCodeListVO);
+
+    /**
+     * 批量新增库存
+     * @param productInventoryList
+     * @return
+     */
+    int batchInsertProductInventory(List<ProductInventory> productInventoryList);
+
 }

+ 9 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/mapper/ProductOutboundRecordMapper.java

@@ -85,6 +85,15 @@ public interface ProductOutboundRecordMapper
      */
     ProductOutboundRecord statisticsBoxNumSuttle(@Param("productId") Long productId,@Param("noticeNumber") String noticeNumber,@Param("qrCode") String qrCode);
 
+
+    /**
+     * 统计箱数和净重走库存
+     * @param productId
+     * @param noticeNumber
+     * @return
+     */
+    ProductOutboundRecord statisticsBoxNumSuttle1(@Param("productId") Long productId,@Param("noticeNumber") String noticeNumber,@Param("productColour") String productColour);
+
     /**
      * 根据通知单号查询出库明细
      */

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

@@ -113,6 +113,13 @@ public interface SaleProductsMapper
      */
     List<ProductInvoiceVO.SaleProductInfo> selectSaleProductsInfo(String saleOrderNo);
 
+
+    /**
+     * 查询销售单货品信息(不获取库存等级信息)
+     */
+    List<ProductInvoiceVO.SaleProductInfo> selectSaleProductsInfo1(String saleOrderNo);
+
+
     /***
      * 查询销售出库单详情
      * @param saleOrderNo

+ 179 - 34
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/ProductInvoiceServiceImpl.java

@@ -1,6 +1,7 @@
 package com.zkqy.business.service.impl;
 
 import java.text.DecimalFormat;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -131,47 +132,155 @@ public class ProductInvoiceServiceImpl implements IProductInvoiceService
             SaleOrder saleOrder = saleOrderMapper.selectSaleOrderBySaleNo(saleOrderNo);
             vo.setCustomerNo(saleOrder.getSaleCustomNo());
         }
-        //表格数据
-        //根据销售单编号查询货品信息
-        //销售单货品信息联查库存
-        List<ProductInvoiceVO.SaleProductInfo> saleProductInfoList = saleProductsMapper.selectSaleProductsInfo(saleOrderNo);
-        if(productInvoice != null){
-            for (ProductInvoiceVO.SaleProductInfo saleProductInfo : saleProductInfoList){
-                //获取箱数重量
-                ProductOutboundRecord productOutboundRecord = productOutboundRecordMapper.statisticsBoxNumSuttle(saleProductInfo.getProductId(), productInvoice.getNoticeNumber(),saleProductInfo.getQrCode());
-                if(productOutboundRecord != null){
-                    saleProductInfo.setBoxNum(productOutboundRecord.getBoxNum());
-                    saleProductInfo.setWeight(handlingWeight(productOutboundRecord.getSuttle() == null ? 0 : productOutboundRecord.getSuttle()));
-                }else {
+
+        // 查询销售单信息
+        SaleOrder saleOrder = saleOrderMapper.selectSaleOrderBySaleNo(saleOrderNo);
+
+        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);
                 }
             }
-        }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);
             }
-        }
-        //查询当前批号库存箱数,重量
-        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()));
+
+            //客户编号
+            vo.setCustomerId(saleOrderMapper.selectCustomerIdBySaleNo(saleOrderNo));
+            vo.setSaleProductInfoList(saleProductInfoList);
+
+
         }else {
-            vo.setInventoryBoxNum(0);
-            vo.setInventoryWeight(0.0);
+            //表格数据
+            //根据销售单编号查询货品信息
+            List<ProductInvoiceVO.SaleProductInfo> saleProductInfoList = saleProductsMapper.selectSaleProductsInfo(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);
         }
 
-        //客户编号
-        vo.setCustomerId(saleOrderMapper.selectCustomerIdBySaleNo(saleOrderNo));
-        vo.setSaleProductInfoList(saleProductInfoList);
         return vo;
     }
 
+
+
+//    @Override
+//    public ProductInvoiceVO productInvoiceInfo(String saleOrderNo) {
+//        ProductInvoiceVO vo = new ProductInvoiceVO();
+//        // 顶部数据回显
+//        ProductInvoice productInvoice = productInvoiceMapper.selectProductInvoiceBySaleOrderNo(saleOrderNo);
+//        if(productInvoice != null){
+//            BeanUtils.copyProperties(productInvoice, vo);
+//        }else {
+//            SaleOrder saleOrder = saleOrderMapper.selectSaleOrderBySaleNo(saleOrderNo);
+//            vo.setCustomerNo(saleOrder.getSaleCustomNo());
+//        }
+//        //表格数据
+//        //根据销售单编号查询货品信息
+//        List<ProductInvoiceVO.SaleProductInfo> saleProductInfoList = saleProductsMapper.selectSaleProductsInfo(saleOrderNo);
+//
+//
+//        if(productInvoice != null){
+//            for (ProductInvoiceVO.SaleProductInfo saleProductInfo : saleProductInfoList){
+//
+//                //获取已出库箱数和重量
+//                ProductOutboundRecord productOutboundRecord = productOutboundRecordMapper
+//                        .statisticsBoxNumSuttle(saleProductInfo.getProductId(), productInvoice.getNoticeNumber(),saleProductInfo.getQrCode());
+//
+//                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);
+//        return vo;
+//    }
+
     @Override
     public ProductInvoiceVO saleStorageDetails(Long id) {
         ProductInvoiceVO vo = new ProductInvoiceVO();
@@ -179,15 +288,21 @@ public class ProductInvoiceServiceImpl implements IProductInvoiceService
         ProductInvoice productInvoice = productInvoiceMapper.selectProductInvoiceById(id);
         BeanUtils.copyProperties(productInvoice, vo);
 
+        // 查询销售单信息
+        SaleOrder saleOrder = saleOrderMapper.selectSaleOrderBySaleNo(productInvoice.getSaleOrderNo());
+        List<ProductInvoiceVO.SaleProductInfo> saleProductInfoList = new ArrayList<>();
 
-        //查询发货单货品详情,循环得到货品实发箱数、重量
-        List<ProductInvoiceVO.SaleProductInfo> saleProductInfoList = saleProductsMapper.selectSaleProductsInfo(productInvoice.getSaleOrderNo());
-
+        if(saleOrder.getOrderType().equals("1")){
+            //查询发货单货品详情,循环得到货品实发箱数、重量
+            saleProductInfoList = saleProductsMapper.selectSaleProductsInfo1(productInvoice.getSaleOrderNo());
+        }else {
+            saleProductInfoList = saleProductsMapper.selectSaleProductsInfo(productInvoice.getSaleOrderNo());
+        }
 
         for (ProductInvoiceVO.SaleProductInfo saleProductInfo : saleProductInfoList){
             //实发箱数、重量
             ProductHandsetOutboundRecord productHandsetOutboundRecord =
-                    productHandsetOutboundRecordMapper.selectBoxNumSuttle(saleProductInfo.getProductId(), productInvoice.getNoticeNumber(), saleProductInfo.getQrCode());
+                    productHandsetOutboundRecordMapper.selectBoxNumSuttle1(saleProductInfo.getProductId(), productInvoice.getNoticeNumber(),saleProductInfo.getProductColor());
             if(productHandsetOutboundRecord != null){
                 saleProductInfo.setBoxNum(productHandsetOutboundRecord.getBoxNum());
                 saleProductInfo.setWeight(handlingWeight(productHandsetOutboundRecord.getSuttle() == null ? 0 : productHandsetOutboundRecord.getSuttle()));
@@ -200,6 +315,36 @@ public class ProductInvoiceServiceImpl implements IProductInvoiceService
         return vo;
     }
 
+
+
+//    @Override
+//    public ProductInvoiceVO saleStorageDetails(Long id) {
+//        ProductInvoiceVO vo = new ProductInvoiceVO();
+//        //查询发货通知单详情
+//        ProductInvoice productInvoice = productInvoiceMapper.selectProductInvoiceById(id);
+//        BeanUtils.copyProperties(productInvoice, vo);
+//
+//
+//        //查询发货单货品详情,循环得到货品实发箱数、重量
+//        List<ProductInvoiceVO.SaleProductInfo> saleProductInfoList = saleProductsMapper.selectSaleProductsInfo(productInvoice.getSaleOrderNo());
+//
+//
+//        for (ProductInvoiceVO.SaleProductInfo saleProductInfo : saleProductInfoList){
+//            //实发箱数、重量
+//            ProductHandsetOutboundRecord productHandsetOutboundRecord =
+//                    productHandsetOutboundRecordMapper.selectBoxNumSuttle(saleProductInfo.getProductId(), productInvoice.getNoticeNumber(), saleProductInfo.getQrCode());
+//            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);
+//        return vo;
+//    }
+
     @Override
     public ProductInvoice selectProductInvoiceBySaleOrderNo(String saleOrderNo) {
         return productInvoiceMapper.selectProductInvoiceBySaleOrderNo(saleOrderNo);

+ 5 - 0
zkqy-custom-business/src/main/resources/mapper/business/ProductHandsetOutboundRecordMapper.xml

@@ -218,4 +218,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select count(1) as boxNum , sum(suttle) as suttle from {DBNAME}.product_handset_outbound_record where product_id = #{productId} and notice_number = #{noticeNumber} and qr_code = #{qrCode}
     </select>
 
+    <select id="selectBoxNumSuttle1" resultType="com.zkqy.business.domain.ProductHandsetOutboundRecord">
+        select count(1) as boxNum , sum(suttle) as suttle from {DBNAME}.product_handset_outbound_record where product_id = #{productId} and notice_number = #{noticeNumber}
+        and product_colour = #{productColour}
+    </select>
+
 </mapper>

+ 79 - 1
zkqy-custom-business/src/main/resources/mapper/business/ProductInventoryMapper.xml

@@ -213,8 +213,86 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectProductInventoryByLotNumAndProductId" resultType="com.zkqy.business.domain.ProductInventory">
         select sum(total_box_num) as totalBoxNum,sum(total_suttle) as totalSuttle  from {DBNAME}.product_inventory
         where del_flag = '0'
-        <if test="lotNum != null">and lot_num = #{lotNum}</if>
+        <if test="lotNum != null and lotNum != '' ">and lot_num = #{lotNum}</if>
         <if test="productId != null">and product_id = #{productId}</if>
     </select>
 
+    <select id="selectComprehensiveInventoryList" resultType="com.zkqy.business.domain.vo.ProductCodeListVO">
+
+    </select>
+
+
+    <insert id="batchInsertProductInventory" parameterType="com.zkqy.business.domain.ProductInventory">
+        INSERT INTO {DBNAME}.product_inventory (
+        qr_code,
+        lot_num,
+        product_id,
+        levels,
+        canister_num,
+        box_num,
+        suttle,
+        production_date,
+        warehouse_id,
+        machine_tool,
+        gross_weight,
+        packaging,
+        work_shifts,
+        foreign_trade_number,
+        canister_weight,
+        box_weight,
+        tube_color,
+        com_port,
+        print_format,
+        packaging_type,
+        storage_location,
+        warehouseregion_id,
+        remark,
+        create_by,
+        create_by_id,
+        create_time,
+        total_canister_num,
+        total_box_num,
+        total_suttle,
+        total_gross_weight,
+        product_colour,
+        del_flag
+        ) VALUES
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.qrCode},
+            #{item.lotNum},
+            #{item.productId},
+            #{item.levels},
+            #{item.canisterNum},
+            #{item.boxNum},
+            #{item.suttle},
+            #{item.productionDate},
+            #{item.warehouseId},
+            #{item.machineTool},
+            #{item.grossWeight},
+            #{item.packaging},
+            #{item.workShifts},
+            #{item.foreignTradeNumber},
+            #{item.canisterWeight},
+            #{item.boxWeight},
+            #{item.tubeColor},
+            #{item.comPort},
+            #{item.printFormat},
+            #{item.packagingType},
+            #{item.storageLocation},
+            #{item.warehouseregionId},
+            #{item.remark},
+            #{item.createBy},
+            #{item.createById},
+            #{item.createTime},
+            #{item.totalCanisterNum},
+            #{item.totalBoxNum},
+            #{item.totalSuttle},
+            #{item.totalGrossWeight},
+            #{item.productColour},
+            '0'
+            )
+        </foreach>
+    </insert>
+
 </mapper>

+ 10 - 4
zkqy-custom-business/src/main/resources/mapper/business/ProductOutboundRecordMapper.xml

@@ -303,8 +303,6 @@
         r.packaging,
         r.warehousing_time,
         r.depositor,
-        count( r.id ) AS total_box_num,
-        sum( r.gross_weight ) AS total_gross_weight,
         r.work_shifts,
         r.production_date,
         r.remark
@@ -318,8 +316,7 @@
         <if test="productionDate != null">and r.production_date = #{productionDate}</if>
         <if test="warehousingTime != null ">and r.warehousing_time = #{warehousingTime}</if>
         <if test="depositor != null  and depositor != ''">and r.depositor like concat('%', #{depositor}, '%')</if>
-        GROUP BY
-        r.qr_code
+        order by r.id desc
     </select>
 
     <select id="selectProductOutboundRecordWhetherExist" resultMap="ProductOutboundRecordResult">
@@ -335,6 +332,15 @@
           and qr_code = #{qrCode}
     </select>
 
+
+    <select id="statisticsBoxNumSuttle1" resultType="com.zkqy.business.domain.ProductOutboundRecord">
+        select count(1) as boxNum, sum(suttle) as suttle
+        from {DBNAME}.product_outbound_record
+        where product_id = #{productId}
+          and notice_number = #{noticeNumber}
+        and product_colour = #{productColour}
+    </select>
+
     <delete id="deleteProductOutboundRecordByUUID" parameterType="string">
         update {DBNAME}.product_outbound_record
         set del_flag = '0'

+ 3 - 6
zkqy-custom-business/src/main/resources/mapper/business/ProductWarehousingRecordMapper.xml

@@ -251,9 +251,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             r.*,
             p.product_name,
             p.product_specifications,
-            r.product_colour as product_color,
-            count( r.id ) AS total_box_num,
-            sum( r.gross_weight ) AS total_gross_weight
+            r.product_colour as product_color
         FROM
         {DBNAME}.product_warehousing_record r
                 LEFT JOIN {DBNAME}.production p ON r.product_id = p.id
@@ -264,8 +262,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="productionDate != null"> and r.production_date = #{productionDate}</if>
             <if test="warehousingTime != null "> and r.warehousing_time = #{warehousingTime}</if>
             <if test="depositor != null  and depositor != ''"> and r.depositor like concat('%', #{depositor}, '%')</if>
-        GROUP BY
-            r.qr_code
+        order by r.id desc
     </select>
 
     <select id="selectProductWarehousingRecordWhetherExist" resultMap="ProductWarehousingRecordResult">
@@ -275,7 +272,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <delete id="deleteProductWarehousingRecordByUUID" parameterType="string">
         update {DBNAME}.product_warehousing_record
-        set del_flag = '0'
+        set del_flag = '2'
         where qr_code_id = #{qrCodeId}
     </delete>
 

+ 2 - 2
zkqy-custom-business/src/main/resources/mapper/business/ProductionMapper.xml

@@ -32,7 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectProductionList" parameterType="com.zkqy.business.domain.Production" resultMap="ProductionResult">
         <include refid="selectProductionVo"/>
-        <where>  
+        where del_flag = '0'
             <if test="productNo != null  and productNo != ''"> and product_no = #{productNo}</if>
             <if test="productName != null  and productName != ''"> and product_name like concat('%', #{productName}, '%')</if>
             <if test="productSpecifications != null  and productSpecifications != ''"> and product_specifications = #{productSpecifications}</if>
@@ -41,7 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="productDescribe != null  and productDescribe != ''"> and product_describe = #{productDescribe}</if>
             <if test="productUnit != null  and productUnit != ''"> and product_unit = #{productUnit}</if>
             <if test="productTypeNo != null "> and product_type_no = #{productTypeNo}</if>
-        </where>
+
     </select>
     
     <select id="selectProductionById" parameterType="Long" resultMap="ProductionResult">

+ 28 - 2
zkqy-custom-business/src/main/resources/mapper/business/SaleProductsMapper.xml

@@ -371,8 +371,34 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                    and  ml.del_flag = '0'
                   AND sp.sale_order_no = #{saleOrderNo}
             ) AS a
-                LEFT JOIN {DBNAME}.product_inventory pi ON a.productId = pi.product_id
-                 AND pi.del_flag = '0' and pi.total_suttle > 0
+                LEFT JOIN {DBNAME}.product_inventory pi ON a.productId = pi.product_id and a.productColor = pi.product_colour
+                 where  pi.del_flag = '0' and pi.total_suttle > 0
+                group by a.productId,a.lotNum,a.productColor,pi.levels
+    </select>
+
+
+    <select id="selectSaleProductsInfo1" resultType="com.zkqy.business.domain.vo.ProductInvoiceVO$SaleProductInfo">
+                SELECT
+                    pt.id AS productId,
+                    pt.product_no AS productCode,
+                    pt.product_name AS productName,
+                    pt.product_specifications AS productSpecifications,
+                    sp.lot_number AS lotNum,
+                    sp.product_unit_price AS unitPrice,
+                    concat(ml.materie_encoding,ml.materie_color_number)  AS productColor,
+                    pt.product_type AS productType,
+                    sp.remark AS productRemark,
+                    sp.product_number AS actualWeight
+                FROM
+                    {DBNAME}.sale_products sp
+                        LEFT JOIN {DBNAME}.production pt ON sp.product_no = pt.product_no
+                    left join {DBNAME}.materiel ml on sp.colour_number = ml.materiel_code
+                WHERE
+                    sp.del_flag = '0'
+                  AND pt.del_flag = '0'
+                  and  ml.del_flag = '0'
+                  AND sp.sale_order_no = #{saleOrderNo}
+
     </select>
 
     <select id="selectOutboundOrderInfo" resultType="com.zkqy.business.domain.vo.SaleProductsVo">