Browse Source

老库存出库

阿赫 5 months ago
parent
commit
ae5903bc3e

+ 12 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/ProductInvoice.java

@@ -236,6 +236,18 @@ public class ProductInvoice extends BaseEntity {
         this.sstatus = sstatus;
     }
 
+    public String getOldInventoryState() {
+        return oldInventoryState;
+    }
+
+    public void setOldInventoryState(String oldInventoryState) {
+        this.oldInventoryState = oldInventoryState;
+    }
+
+    /**
+     * 销售单状态
+     */
+    private String oldInventoryState;
 
     public boolean isOrderUpdate() {
         return isOrderUpdate;

+ 4 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/mapper/SaleOrderMapper.java

@@ -140,6 +140,10 @@ public interface SaleOrderMapper {
      * 零售单查询打印出库单列表
      */
     List<SaleProductsVo> lsdPrintOutsourceOrderList(@Param("noticeNumber") String noticeNumber, @Param("saleNo") String saleNo, @Param("batchNumber") String batchNumber);
+    /**
+     * 老库存零售单查询打印出库单列表
+     */
+    List<SaleProductsVo> oldlsdPrintOutsourceOrderList(@Param("noticeNumber") String noticeNumber, @Param("saleNo") String saleNo, @Param("batchNumber") String batchNumber);
     /**
      * 得到当前订单未阶段性完成的产品数据
      */

+ 34 - 32
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/ProductInventoryServiceImpl.java

@@ -747,36 +747,7 @@ public class ProductInventoryServiceImpl implements IProductInventoryService {
             oldProductOutboundRecord.setDelFlag("0");
             oldProductOutboundRecordService.insertOldProductOutboundRecord(oldProductOutboundRecord);
 
-            // 成品出库记录
-            ProductOutboundRecord productOutboundRecord = new ProductOutboundRecord();
-            productOutboundRecord.setQrCode("lkc_"+System.currentTimeMillis());//码单号
-            productOutboundRecord.setQrCodeId("lkc_"+ RandomUtil.getSecureRandom().nextInt());//码单标识
-            productOutboundRecord.setProductId(item.getProductId());//产品编号
-            productOutboundRecord.setCanisterNum(0);//筒数
-            productOutboundRecord.setLevels(item.getLevels());//等级
-            productOutboundRecord.setBoxNum(item.getOldActualBoxNum());//箱数
-            productOutboundRecord.setSuttle(item.getOldActualWeight());//重量
-            productOutboundRecord.setMachineTool(Long.parseLong("30"));//机台
-            productOutboundRecord.setGrossWeight(item.getOldActualWeight());//毛重
-            productOutboundRecord.setPackaging("2");//包装
-            productOutboundRecord.setWorkShifts("D甲");//班次
-            productOutboundRecord.setForeignTradeNumber("1");//外贸号
-            productOutboundRecord.setCanisterWeight(0.0);//筒重
-            productOutboundRecord.setBoxWeight(0.0);//箱重
-            productOutboundRecord.setTubeColor("塑料管");
-            productOutboundRecord.setPrintFormat("4");//打印格式
-            productOutboundRecord.setDelFlag("0");
-            productOutboundRecord.setCreateById(SecurityUtils.getUserId());
-            productOutboundRecord.setCreateBy(SecurityUtils.getUsername());
-            productOutboundRecord.setCreateTime(new Date());
-            productOutboundRecord.setDepositor(SecurityUtils.getUsername());
-            productOutboundRecord.setNoticeNumber(productInvoice.getNoticeNumber());
-            productOutboundRecord.setProductColour(item.getProductColor());
-            productOutboundRecord.setHistoryBatch(false);
-            productOutboundRecord.setBatchNumber(0);
-            productOutboundRecord.setConfirmOut(1);
-            // 添加成品库存出库记录
-            productOutboundRecordMapper.insertProductOutboundRecord(productOutboundRecord);
+
 
             // 得到当前出库货品库存(老库存)
             ProductInventory product = new ProductInventory();
@@ -789,12 +760,12 @@ public class ProductInventoryServiceImpl implements IProductInventoryService {
                 return AjaxResult.error("库存不足!");
             }
 
-
             //返回变量
             String msg = "";
             boolean returnState = false;
             int del = 0;
-
+            int oldBoxNum = 0;
+            Double suttle = 0.0;
             // 循环减当前库存
             for (int i = 0; i < productInventoryList.size(); i++) {
                 //当前库存对象
@@ -867,6 +838,37 @@ public class ProductInventoryServiceImpl implements IProductInventoryService {
                 if (del == 2) {
                     editProductInventory.setDelFlag("2");
                 }
+                // 成品出库记录
+                ProductOutboundRecord productOutboundRecord = new ProductOutboundRecord();
+                productOutboundRecord.setQrCode("lkc_"+System.currentTimeMillis());//码单号
+                productOutboundRecord.setQrCodeId("lkc_"+ RandomUtil.getSecureRandom().nextInt());//码单标识
+                productOutboundRecord.setProductId(item.getProductId());//产品编号
+                productOutboundRecord.setCanisterNum(0);//筒数
+                productOutboundRecord.setLevels(productInventory.getLevels());//等级
+                productOutboundRecord.setLotNum(productInventory.getLotNum());//库存批号
+                productOutboundRecord.setBoxNum(Integer.parseInt(oldProductOutboundRecord.getActualBoxnum()));//箱数
+                productOutboundRecord.setSuttle(Double.parseDouble(oldProductOutboundRecord.getActualWeight()));//重量
+                productOutboundRecord.setMachineTool(Long.parseLong("30"));//机台
+                productOutboundRecord.setGrossWeight(item.getOldActualWeight());//毛重
+                productOutboundRecord.setPackaging("2");//包装
+                productOutboundRecord.setWorkShifts("D甲");//班次
+                productOutboundRecord.setForeignTradeNumber("1");//外贸号
+                productOutboundRecord.setCanisterWeight(0.0);//筒重
+                productOutboundRecord.setBoxWeight(0.0);//箱重
+                productOutboundRecord.setTubeColor("塑料管");
+                productOutboundRecord.setPrintFormat("4");//打印格式
+                productOutboundRecord.setDelFlag("0");
+                productOutboundRecord.setCreateById(SecurityUtils.getUserId());
+                productOutboundRecord.setCreateBy(SecurityUtils.getUsername());
+                productOutboundRecord.setCreateTime(new Date());
+                productOutboundRecord.setDepositor(SecurityUtils.getUsername());
+                productOutboundRecord.setNoticeNumber(productInvoice.getNoticeNumber());
+                productOutboundRecord.setProductColour(item.getProductColor());
+                productOutboundRecord.setHistoryBatch(false);
+                productOutboundRecord.setBatchNumber(0);
+                productOutboundRecord.setConfirmOut(1);
+                // 添加成品库存出库记录
+                productOutboundRecordMapper.insertProductOutboundRecord(productOutboundRecord);
                 productInventoryMapper.updateProductInventory(editProductInventory);
             }
 

+ 19 - 7
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SaleOrderServiceImpl.java

@@ -484,14 +484,26 @@ public class SaleOrderServiceImpl implements ISaleOrderService {
             return new ArrayList<>();
         }
         if (productInvoice.getSaleordertechnologyno().equals("retailOrder") && (productInvoice.getSstatus() != "6")){
-            // 获取当前订单出库产品信息
-            //零售单
-            List<SaleProductsVo> saleProductsVos = saleOrderMapper.lsdPrintOutsourceOrderList(productInvoice.getNoticeNumber(), saleNo, batchNumber);
-            return saleProductsVos;
+            //判断老库存查询出库发货记录批次按钮的独立SQL
+            if(productInvoice.getOldInventoryState().equals("2")){
+                List<SaleProductsVo> saleProductsVos = saleOrderMapper.oldlsdPrintOutsourceOrderList(productInvoice.getNoticeNumber(), saleNo, batchNumber);
+                return saleProductsVos;
+            }else {
+                // 获取当前订单出库产品信息
+                //零售单
+                List<SaleProductsVo> saleProductsVos = saleOrderMapper.lsdPrintOutsourceOrderList(productInvoice.getNoticeNumber(), saleNo, batchNumber);
+                return saleProductsVos;
+            }
         }else{
-            // 获取当前订单出库产品信息
-            List<SaleProductsVo> saleProductsVos = saleOrderMapper.printOutsourceOrderList(productInvoice.getNoticeNumber(), saleNo, batchNumber);
-            return saleProductsVos;
+            //判断老库存查询出库发货记录批次按钮的独立SQL
+            if(productInvoice.getOldInventoryState().equals("2")){
+                List<SaleProductsVo> saleProductsVos = saleOrderMapper.oldlsdPrintOutsourceOrderList(productInvoice.getNoticeNumber(), saleNo, batchNumber);
+                return saleProductsVos;
+            }else{
+                // 获取当前订单出库产品信息
+                List<SaleProductsVo> saleProductsVos = saleOrderMapper.printOutsourceOrderList(productInvoice.getNoticeNumber(), saleNo, batchNumber);
+                return saleProductsVos;
+            }
         }
 
     }

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

@@ -253,7 +253,8 @@
                p.delivery_date,
                p.delivery_clerk,
                s.sale_order_technology_no,
-               s.status as sstatus
+               s.status as sstatus,
+               s.old_inventory_state
         from {DBNAME}.product_invoice as p left join {DBNAME}.sale_order as s on p.sale_order_no = s.sale_no and s.del_flag = '0'
         where p.sale_order_no = #{saleOrderNo} and p.del_flag = '0'
     </select>

+ 47 - 0
zkqy-custom-business/src/main/resources/mapper/business/SaleOrderMapper.xml

@@ -497,6 +497,53 @@
                            on a.productNo = b.productNo AND a.scolours = b.bcolours;
     </select>
 
+    <select id="oldlsdPrintOutsourceOrderList" resultType="com.zkqy.business.domain.vo.SaleProductsVo">
+        select a.*,
+               b.productUnitPrice -- 产品单价
+        from (select p.id                                                    as productId,
+                     p.product_name                                          as productName,
+                     p.product_specifications                                as productSpecifications,
+                     por.lot_num                                             as lotNumber,
+                     por.box_num                                             as boxNum,
+                     TRUNCATE(sum(por.suttle), 2)                            as productNumber, -- 产品净重()
+                     por.product_colour                                      as productColour,
+                     por.notice_number                                       as noticeNumber,
+                     pi.sale_order_no                                        as saleNo,
+                     p.product_no                                            as productNo,
+                     por.levels                                              as productLevel,
+                     por.colours                                             as scolours,
+                     IF(batch.batch_number IS NULL, '0', batch.batch_number) as batchNumber,
+                     batch.batch_State                                       as batchState,
+                     batch.id                                                as batchId
+              from (
+                       SELECT p.*,c.sale_product_id,s.colours FROM `huaxian`.product_outbound_record p
+                                                                       LEFT JOIN `huaxian`.product_code_list c ON p.qr_code = c.qr_code
+                                                                       LEFT JOIN `huaxian`.sale_products s ON c.sale_product_id = s.id  GROUP BY p.id
+                   ) por -- 成品出库记录表
+                       left join `huaxian`.production p on p.id = por.product_id -- 产品表
+                       left join `huaxian`.product_invoice pi on por.notice_number = pi.notice_number -- 产品发货单表
+                       left join `huaxian`.product_outbound_record_batch as batch
+                                 on batch.outbound_record_id = por.id and batch.del_flag = '0' -- 成品出库记录批次表
+              where por.del_flag = '0'
+                and pi.notice_number = #{noticeNumber} -- 通知单号
+              group by por.product_id, por.levels, por.lot_num, por.product_colour, por.batch_number) as a
+                 left join (select sp.product_no                                      as productNo,        -- 产品编号
+                                   sp.product_unit_price                              as productUnitPrice, -- 产品单价
+                                   CONCAT(m.materie_encoding, m.materie_color_number) as productColour,     -- 产品转码+色泽
+                                   sp.`level` as `level`,
+                                   sp.colours as bcolours
+                            from `huaxian`.sale_order so -- 订单表
+                                     left join `huaxian`.sale_products sp
+                                               on so.sale_no = sp.sale_order_no and sp.del_flag = '0' -- 销售产品表
+                                     left join `huaxian`.production p
+                                               on sp.product_no = p.product_no and p.del_flag = '0' -- 产品表
+                                     left join `huaxian`.materiel m
+                                               on m.materiel_code = sp.colour_number and m.del_flag = '0' -- 物料信息表
+                            where so.del_flag = '0'
+                              and so.sale_no = #{saleNo}) as b -- 根据销售单编号得到当前订单包含的所有产品
+                           on a.productNo = b.productNo AND a.productColour = b.bcolours;
+    </select>
+
     <select id="printOutsourceOrderListNowEnd" resultType="com.zkqy.business.domain.vo.SaleProductsVo">
         select
             a.* ,

+ 5 - 5
zkqy-ui/src/views/orderMange/components/dialogForm/OutStock.vue

@@ -199,12 +199,12 @@ export default {
       const { columns, data } = param;
       const sums = [];
       columns.forEach((column, index) => {
-        if (index === 2) {
+        if (index === 1) {
           sums[index] = "小计:";
           return;
         }
         const values = data.map((item) => Number(item[column.property]));
-        if (index === 0 || index === 1 || index === 2) {
+        if (index === 0 || index === 1 || index === 2 || index === 3) {
           sums[index] = "";
         } else if (!values.every((value) => isNaN(value))) {
           sums[index] = values
@@ -237,9 +237,9 @@ export default {
           { prop: "productName", label: "品名" },
           { prop: "productSpecifications", label: "规格" },
           { prop: "productColor", label: "颜色" },
-          { prop: "orderWeight", label: "订单重量" },
-          { prop: "actualWeight", label: "实际出库重量" },
-          { prop: "actualBoxnum", label: "实际出库箱数" },
+          // { prop: "orderWeight", label: "订单重量" },
+          { prop: "suttle", label: "实际出库重量" },
+          { prop: "boxNum", label: "实际出库箱数" },
         ];
       } else {
         this.columns = [