Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/ProductInventoryServiceImpl.java
lucky 6 mesiacov pred
rodič
commit
8645d0d2a8

+ 97 - 89
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/ProductInventoryServiceImpl.java

@@ -730,7 +730,8 @@ public class ProductInventoryServiceImpl implements IProductInventoryService {
         productInvoice1.setTransferWarehouse(productInvoice.getTransferWarehouse());
         productInvoice1.setDeliveryClerk(productInvoice.getDeliveryClerk());
         productInvoiceMapper.updateProductInvoice(productInvoice1);
-
+        int xs = 0;//箱数用于添加出库记录
+        Double zl = 0.0;//重量用于添加出库记录
         // 减去手动输入的老库存,当前订单出库
         for (ProductInvoiceVO.SaleProductInfo item : productInvoice.getOldProductInvoiceList()) {
 
@@ -764,111 +765,118 @@ public class ProductInventoryServiceImpl implements IProductInventoryService {
             String msg = "";
             boolean returnState = false;
             int del = 0;
-            // 循环减当前库存()
+            // 循环减当前库存
             for (int i = 0; i < productInventoryList.size(); i++) {
                 //当前库存对象
                 ProductInventory productInventory = productInventoryList.get(i);
                 // 更新库存对象
                 ProductInventory editProductInventory = new ProductInventory();
                 editProductInventory.setId(productInventory.getId());
+                if(productInventory.getTotalBoxNum() > xs || item.getOldActualWeight() > zl){
+                    //箱数
+                    if (productInventory.getTotalBoxNum() - 1 < 0) {
+                        // 判断当前循环是否到达最后
+                        if (i == productInventoryList.size() - 1) {
+                            returnState = true;
+                            msg = "当前库存箱数不足";
+                        } else {
+                            del++;
+                        }
 
-                //箱数(如果当前箱数减去一箱数小于0)
-                if (productInventory.getTotalBoxNum() - 1 < 0) {
-                    // 判断当前循环是否到达最后
-                    if (i == productInventoryList.size() - 1) {
-                        returnState = true;
-                        msg = "当前库存箱数不足";
                     } else {
-                        del++;
-                    }
 
-                } else {
-                    int totalBoxNum = productInventory.getTotalBoxNum() - item.getOldActualBoxNum();
-                    // 判断当前减去
-                    if (totalBoxNum <= 0) {
-                        Math.abs(totalBoxNum);  // 当前出库还差多少箱数
-                        item.setOldActualBoxNum(Math.abs(totalBoxNum));
-                        editProductInventory.setTotalBoxNum(0);
-                    } else {
-                        editProductInventory.setTotalBoxNum(totalBoxNum);
-                        item.setOldActualBoxNum(0);
+                        int totalBoxNum = productInventory.getTotalBoxNum() - item.getOldActualBoxNum();
+                        // 判断当前减去
+                        if (totalBoxNum <= 0) {
+                            Math.abs(totalBoxNum);  // 当前出库还差多少箱数
+                            item.setOldActualBoxNum(Math.abs(totalBoxNum));
+                            editProductInventory.setTotalBoxNum(0);
+                        } else {
+                            editProductInventory.setTotalBoxNum(totalBoxNum);
+                            item.setOldActualBoxNum(0);
+                        }
+                        //获得当前减去的库存箱数
+                        xs = productInventory.getTotalBoxNum() - totalBoxNum;
                     }
-                }
 
-                //净重
-                if (productInventory.getTotalSuttle() - item.getOldActualBoxNum() < 0) {
-                    // 判断当前循环是否到达最后
-                    if (i == productInventoryList.size() - 1) {
-                        returnState = true;
-                        msg = "当前库存重量不足";
+                    //净重
+                    if (productInventory.getTotalSuttle() - item.getOldActualWeight() < 0) {
+                        // 判断当前循环是否到达最后
+                        if (i == productInventoryList.size() - 1) {
+                            returnState = true;
+                            msg = "当前库存重量不足";
+                        } else {
+                            del++;
+                        }
                     } else {
-                        del++;
-                    }
-                } else {
-                    Double totalSuttle = handlingWeight(productInventory.getTotalSuttle() - item.getOldActualWeight());
-                    if (totalSuttle <= 0.0) {
+                        Double totalSuttle = handlingWeight(productInventory.getTotalSuttle() - item.getOldActualWeight());
+                        if (totalSuttle <= 0.0) {
 //                        Math.abs(totalSuttle);
-                        item.setOldActualWeight(Math.abs(totalSuttle));
-                        editProductInventory.setTotalSuttle(0.0);
-                    } else {
-                        editProductInventory.setTotalSuttle(totalSuttle);
-                        item.setOldActualWeight(0.0);
+                            item.setOldActualWeight(Math.abs(totalSuttle));
+                            editProductInventory.setTotalSuttle(0.0);
+                        } else {
+                            editProductInventory.setTotalSuttle(totalSuttle);
+                            item.setOldActualWeight(0.0);
+                        }
+                        //获得当前减去的库存重量
+                        zl = handlingWeight(productInventory.getTotalSuttle() - totalSuttle);
+                    }
+
+                    //                //毛重
+                    //                if (productInventory.getTotalGrossWeight() - item.getOldActualWeight() < 0) {
+                    //                    // 判断当前循环是否到达最后
+                    //                    if (i == productInventoryList.size() - 1) {
+                    //                        returnState = true;
+                    //                        msg = "当前库存毛重不足";
+                    //                    }
+                    //                } else {
+                    //                    Double totalGrossWeight = handlingWeight(productInventory.getTotalGrossWeight() - item.getOldActualWeight());
+                    //                    if (totalGrossWeight <= 0.0) {
+                    //                        item.setOldActualWeight(Math.abs(totalGrossWeight));
+                    //                        editProductInventory.setTotalSuttle(0.0);
+                    //                    } else {
+                    //                        editProductInventory.setTotalGrossWeight(totalGrossWeight);
+                    //                    }
+                    //                }
+
+                    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(xs);//箱数
+                    productOutboundRecord.setSuttle(zl);//重量
+                    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);
                 }
 
-                //                //毛重
-                //                if (productInventory.getTotalGrossWeight() - item.getOldActualWeight() < 0) {
-                //                    // 判断当前循环是否到达最后
-                //                    if (i == productInventoryList.size() - 1) {
-                //                        returnState = true;
-                //                        msg = "当前库存毛重不足";
-                //                    }
-                //                } else {
-                //                    Double totalGrossWeight = handlingWeight(productInventory.getTotalGrossWeight() - item.getOldActualWeight());
-                //                    if (totalGrossWeight <= 0.0) {
-                //                        item.setOldActualWeight(Math.abs(totalGrossWeight));
-                //                        editProductInventory.setTotalSuttle(0.0);
-                //                    } else {
-                //                        editProductInventory.setTotalGrossWeight(totalGrossWeight);
-                //                    }
-                //                }
-
-                if (del == 2) { //当库存等于0的时候删除对应的库存明细
-                    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);
-            }
 
             if (returnState) {
                 return AjaxResult.error(msg);

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

@@ -281,9 +281,10 @@
         ) AS bb ON a.product_colour = bb.productColour
         WHERE a.del_flag = '0'
         <if test="lotNum != null and lotNum != '' ">and lot_num = #{lotNum}</if>
+        <if test="productColour != null and productColour != ''">
+            and bb.colours = #{productColour}
+            OR a.product_colour = #{productColour}</if>
         <if test="productId != null">and a.product_id = #{productId}</if>
-        <if test="productColour != null and productColour != ''">and bb.colours LIKE concat('%', #{productColour},
-            '%')  OR a.product_colour LIKE concat('%',#{productColour},'%')</if>
         <if test="inventoryType != null and inventoryType != ''">and a.inventory_type = #{inventoryType}</if>
     </select>
 
@@ -318,6 +319,7 @@
             '%')
         </if>
         <if test="productId != null">and pi.product_id = #{productId}</if>
+        <if test="productType != null">and p.product_type = #{productType}</if>
         <if test="levels != null and levels != ''">and pi.levels = #{levels}</if>
         GROUP BY
         pi.product_id,

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

@@ -456,7 +456,8 @@
                sp.product_number                                    AS actualWeight,
                sp.product_weight                                    AS productWeight,
                sp.colours                                           AS productColor,
-               sp.`level`                                           AS levels
+               sp.`level`                                           AS levels,
+               sp.lot_number                                        AS lotNum
         FROM {DBNAME}.sale_products sp
                         LEFT JOIN {DBNAME}.production pt
         ON sp.product_no = pt.product_no

+ 1 - 1
zkqy-ui/src/views/orderMange/components/dialogForm/OutBound.vue

@@ -144,7 +144,6 @@ export default {
         unitName: [
           { required: true, message: "请输入单位名称", trigger: "blur" },
         ],
-        remark: [{ required: true, message: "请输入备注", trigger: "blur" }],
         outStockDate: [
           { required: true, message: "请选择出库日期", trigger: "change" },
         ],
@@ -268,6 +267,7 @@ export default {
     async getTableData(row, isRetail = true) {
       this.resetForm();
       this.row = row;
+      this.form.unitName = row.customName;
       try {
         let payload = {};
         if (isRetail) {

+ 10 - 1
zkqy-ui/src/views/orderMange/comprehensiveInventory/index.vue

@@ -56,6 +56,14 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
+      <el-form-item label="类型" prop="productType">
+        <el-input
+          v-model="queryParams.productType"
+          placeholder="请输入色泽"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
       <el-form-item label="等级" prop="levels">
         <el-select
           v-model="queryParams.levels"
@@ -132,7 +140,7 @@
       <el-table-column label="色泽" align="center" prop="productColor"/>
       <el-table-column label="等级" align="center" prop="levels"/>
       <el-table-column label="箱数" align="center" prop="totalBoxNum"/>
-      <el-table-column label="筒数" align="center" prop="totalCanisterNum"/>
+      <el-table-column label="筒数" align="center" prop="totalCanisterNum" v-if="queryParams.inventoryType ==1"/>
       <el-table-column label="重量" align="center" prop="totalSuttle"/>
 
       <el-table-column label="批号" align="left" prop="lotNum">
@@ -173,6 +181,7 @@ export default {
   // dicts: ["packaging_type"],
   data() {
     return {
+      dbs:0,
       productionOptions: [],
       allProductionOptions: [],
       dropDownData: {}, //等级下拉框数据

+ 18 - 1
zkqy-ui/src/views/orderMange/oldOutStock/index.vue

@@ -30,6 +30,12 @@
                 label="客户名称"
               >
               </el-table-column>
+              <el-table-column
+                align="center"
+                prop="saleOrderNo"
+                label="销售单号"
+              >
+              </el-table-column>
               <el-table-column
                 align="center"
                 prop="noticeNumber"
@@ -159,6 +165,8 @@
               </el-table-column>
               <el-table-column align="center" label="品名" prop="productName">
               </el-table-column>
+              <el-table-column align="center" label="批号" prop="lotNum" v-if="this.dlotNum">
+              </el-table-column>
               <el-table-column
                 align="center"
                 label="规格"
@@ -260,6 +268,7 @@ export default {
     return {
       spanArr: [], // 用于记录每个 productCode 的跨行信息
       loading: false,
+      dlotNum: false,
       currentIndex: "",
       form: {
         noticeNumber: "", //通知单号
@@ -520,7 +529,15 @@ export default {
                 ].weight.toFixed(2);
             }
           });
-
+          if(this.saleProductInfoList.length > 0){
+            if(this.saleProductInfoList[0].lotNum == null || this.saleProductInfoList[0].lotNum == '' || this.saleProductInfoList[0].lotNum == undefined){
+              this.dlotNum = false;
+            }else{
+              this.dlotNum = true;
+            }
+          }else{
+            this.dlotNum = false;
+          }
           Object.assign(this.form, {
             noticeNumber, //通知单号
             documentType, //通知单类型

+ 6 - 0
zkqy-ui/src/views/orderMange/outStock/index.vue

@@ -62,6 +62,12 @@
                 prop="customerName"
                 label="客户名称"
               ></el-table-column>
+              <el-table-column
+                align="center"
+                prop="saleOrderNo"
+                label="销售单号"
+              >
+              </el-table-column>
               <el-table-column
                 align="center"
                 prop="noticeNumber"

+ 1 - 1
zkqy-ui/src/views/orderMange/retailMange/index.vue

@@ -180,7 +180,7 @@
                 操作<i class="el-icon-arrow-down el-icon--right"></i>
               </el-button>
               <el-dropdown-menu slot="dropdown">
-                <el-dropdown-item v-show="scope.row.status != 6">
+                <el-dropdown-item>
                   <el-button
                     size="mini"
                     type="text"