Browse Source

码单修改批号、色泽、等级重新计算库存

LiangtongHe 2 tháng trước cách đây
mục cha
commit
f01ca58376

+ 77 - 1
zkqy-custom-business/src/main/java/com/zkqy/business/controller/ProductCodeAListController.java

@@ -1,14 +1,18 @@
 package com.zkqy.business.controller;
 
+import java.text.DecimalFormat;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 import javax.servlet.http.HttpServletResponse;
 
 import com.zkqy.business.domain.ProductInventory;
 import com.zkqy.business.domain.vo.NewOldProductCodeListVO;
+import com.zkqy.business.mapper.ProductInventoryMapper;
 import com.zkqy.business.service.IProductCodeListService;
 import com.zkqy.business.service.IProductCodeLogService;
 import com.zkqy.business.service.IProductInventoryService;
+import com.zkqy.common.utils.DateUtils;
 import com.zkqy.common.utils.SecurityUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -46,6 +50,8 @@ public class ProductCodeAListController extends BaseController
     private IProductCodeLogService productCodeLogService;
     @Autowired
     private IProductCodeAListService productCodeAListService;
+    @Autowired
+    private ProductInventoryMapper productInventoryMapper;
 
     /**
      * 查询产品码单列表
@@ -101,7 +107,77 @@ public class ProductCodeAListController extends BaseController
     @PutMapping
     public AjaxResult edit(@RequestBody ProductCodeAList productCodeAList)
     {
-        ProductCodeAList historyproductCodeAList = productCodeAListService.selectProductCodeAListById(productCodeAList.getId());
+        ProductCodeAList historyproductCodeAList = productCodeAListService.selectProductCodeAListById(productCodeAList.getId());//查询历史数据
+        if(productCodeAList.getLotNum().equals(historyproductCodeAList.getLotNum()) &&
+                productCodeAList.getProductColour().equals(historyproductCodeAList.getProductColour()) &&
+                productCodeAList.getLevels().equals(historyproductCodeAList.getLevels())
+        ){}else{
+//            判断是否入库
+            if(null != historyproductCodeAList.getWarehouseregionId()){
+                //查询历史条目在库存中是否存在数据
+                ProductInventory productInventory = new ProductInventory();
+                productInventory.setLotNum(historyproductCodeAList.getLotNum());//批号
+                productInventory.setProductId(historyproductCodeAList.getProductId());//产品编号
+                productInventory.setProductColour(historyproductCodeAList.getProductColour());//颜色
+                productInventory.setInventoryType("1");//类型
+                productInventory.setQrCode(historyproductCodeAList.getQrCode());//码单号
+                productInventory.setLevels(historyproductCodeAList.getLevels());//等级
+                ProductInventory productInventory1 = productInventoryMapper.oldselectProductInventoryByLotNumAndProductIdAndqrcoud(productInventory);
+                //减库存操作
+                int kuts = productInventory1.getTotalCanisterNum().intValue();
+                int scts = historyproductCodeAList.getCanisterNum().intValue();
+                kuts = (kuts-scts);
+                productInventory1.setTotalCanisterNum(kuts);//获得合计筒数
+                Integer boxnum = productInventory1.getTotalBoxNum()-1;
+                productInventory1.setTotalBoxNum(boxnum);//合计箱数
+                Double suttle = productInventory1.getTotalSuttle() - historyproductCodeAList.getSuttle();
+                productInventory1.setTotalSuttle(suttle);//合计净重
+                Double grossweight = productInventory1.getTotalGrossWeight() - historyproductCodeAList.getGrossWeight();
+                productInventory1.setTotalGrossWeight(grossweight);//合计毛重
+                productInventoryMapper.updateProductInventory(productInventory1);
+                ProductInventory productInventory11 = productInventoryMapper.oldselectProductInventoryByLotNumAndProductIdAndqrcoud(productInventory);
+                if(productInventory11.getTotalBoxNum() <=0 && productInventory11.getTotalSuttle() <= 0 && productInventory11.getTotalGrossWeight() <= 0){
+                    int i = productInventoryMapper.deleteProductInventoryById(productInventory11.getId());
+                }
+
+                //根据当前数据查询是否存在库存数据
+                ProductInventory productInventory2 = new ProductInventory();
+                productInventory2.setLotNum(productCodeAList.getLotNum());//批号
+                productInventory2.setProductId(productCodeAList.getProductId());//产品编号
+                productInventory2.setProductColour(productCodeAList.getProductColour());//颜色
+                productInventory2.setInventoryType("1");//类型
+                productInventory2.setQrCode(productCodeAList.getQrCode());//码单号
+                productInventory2.setLevels(productCodeAList.getLevels());//等级
+                ProductInventory productInventory3 = productInventoryMapper.oldselectProductInventoryByLotNumAndProductIdAndqrcoud(productInventory2);
+                if(Objects.isNull(productInventory3)){
+                    ProductInventory addProductInventory = new ProductInventory();
+                    BeanUtils.copyProperties(productCodeAList, addProductInventory);
+                    addProductInventory.setWarehouseId(productCodeAList.getWarehouseregionId());
+                    addProductInventory.setTotalCanisterNum(productCodeAList.getCanisterNum().intValue());//合计筒数
+                    addProductInventory.setTotalBoxNum(1);//合计箱数
+                    addProductInventory.setTotalSuttle(productCodeAList.getSuttle().doubleValue());//合计净重
+                    addProductInventory.setTotalGrossWeight(productCodeAList.getGrossWeight().doubleValue());//合计毛重
+                    addProductInventory.setCreateBy(SecurityUtils.getUsername());
+                    addProductInventory.setCreateTime(DateUtils.getNowDate());
+                    addProductInventory.setCreateById(SecurityUtils.getUserId());
+                    productInventoryMapper.insertProductInventory(addProductInventory);
+                }else{
+                    ProductInventory editProductInventory = new ProductInventory();
+                    editProductInventory.setId(productInventory3.getId());
+                    editProductInventory.setTotalCanisterNum(productInventory3.getTotalCanisterNum()+productCodeAList.getCanisterNum().intValue());//合计筒数数
+                    editProductInventory.setTotalBoxNum(productInventory3.getTotalBoxNum() + 1);//合计箱数
+                    Double suttles = productInventory3.getTotalSuttle().doubleValue()+productCodeAList.getSuttle();
+                    editProductInventory.setTotalSuttle(Double.parseDouble(suttles.toString()));//合计净重
+                    Double grossWeight = productInventory3.getTotalGrossWeight()+productCodeAList.getGrossWeight().doubleValue();
+                    editProductInventory.setTotalGrossWeight(grossWeight);//合计毛重
+                    editProductInventory.setUpdateById(SecurityUtils.getUserId());
+                    editProductInventory.setUpdateBy(SecurityUtils.getUsername());
+                    editProductInventory.setUpdateTime(DateUtils.getNowDate());
+                    productInventoryMapper.updateProductInventory(editProductInventory);
+                }
+
+            }
+        }
         ProductCodeLog productCodeLog = new ProductCodeLog();
         BeanUtils.copyProperties(historyproductCodeAList,productCodeLog);
         productCodeLog.setId(null);

+ 25 - 4
zkqy-custom-business/src/main/java/com/zkqy/business/controller/ProductCodeListController.java

@@ -5,12 +5,11 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
-import com.zkqy.business.domain.ProductCodeAList;
-import com.zkqy.business.domain.ProductCodeLog;
-import com.zkqy.business.domain.ProductWarehousingRecord;
+import com.zkqy.business.domain.*;
 import com.zkqy.business.domain.vo.NewOldProductCodeListVO;
 import com.zkqy.business.domain.vo.ProductCodeListVO;
 import com.zkqy.business.mapper.ProductCodeListMapper;
+import com.zkqy.business.mapper.ProductInventoryMapper;
 import com.zkqy.business.mapper.ProductWarehousingRecordMapper;
 import com.zkqy.business.service.*;
 import com.zkqy.common.utils.PageUtils;
@@ -25,7 +24,6 @@ import com.zkqy.common.annotation.Log;
 import com.zkqy.common.core.controller.BaseController;
 import com.zkqy.common.core.domain.AjaxResult;
 import com.zkqy.common.enums.BusinessType;
-import com.zkqy.business.domain.ProductCodeList;
 import com.zkqy.common.core.page.TableDataInfo;
 
 /**
@@ -41,6 +39,9 @@ public class ProductCodeListController extends BaseController {
     @Autowired
     private IProductCodeListService productCodeListService;
 
+    @Autowired
+    private ProductInventoryMapper productInventoryMapper;
+
     @Autowired // 入库记录
     private IProductWarehousingRecordService productWarehousingRecordService;
 
@@ -224,6 +225,26 @@ public class ProductCodeListController extends BaseController {
                 Long id = Long.valueOf(ids[i]);
                 ProductCodeAList historyproductCodeAList = productCodeAListService.selectProductCodeAListById(id);
                 productWarehousingRecordMapper.deleteProductWarehousingRecordByqrcodeID(historyproductCodeAList.getQrCodeId());
+                if(null != historyproductCodeAList.getWarehouseregionId()){
+                    ProductInventory productInventory = new ProductInventory();
+                    productInventory.setLotNum(historyproductCodeAList.getLotNum());//批号
+                    productInventory.setProductId(historyproductCodeAList.getProductId());//产品编号
+                    productInventory.setProductColour(historyproductCodeAList.getProductColour());//颜色
+                    productInventory.setInventoryType("1");//类型
+                    productInventory.setQrCode(historyproductCodeAList.getQrCode());//码单号
+                    ProductInventory productInventory1 = productInventoryMapper.oldselectProductInventoryByLotNumAndProductIdAndqrcoud(productInventory);
+                    int kuts = productInventory1.getTotalCanisterNum().intValue();
+                    int scts = historyproductCodeAList.getCanisterNum().intValue();
+                    kuts = (kuts-scts);
+                    productInventory1.setTotalCanisterNum(kuts);//获得合计筒数
+                    Integer boxnum = productInventory1.getTotalBoxNum()-1;
+                    productInventory1.setTotalBoxNum(boxnum);//合计箱数
+                    Double suttle = productInventory1.getTotalSuttle() - historyproductCodeAList.getSuttle();
+                    productInventory1.setTotalSuttle(suttle);//合计净重
+                    Double grossweight = productInventory1.getTotalGrossWeight() - historyproductCodeAList.getGrossWeight();
+                    productInventory1.setTotalGrossWeight(grossweight);//合计毛重
+                    productInventoryMapper.updateProductInventory(productInventory1);
+                }
                 ProductCodeLog productCodeLog = new ProductCodeLog();
                 BeanUtils.copyProperties(historyproductCodeAList,productCodeLog);
                 productCodeLog.setId(null);

+ 18 - 18
zkqy-custom-business/src/main/java/com/zkqy/business/domain/ProductCodeAList.java

@@ -72,9 +72,17 @@ public class ProductCodeAList extends BaseEntity
     @Excel(name = "箱数", readConverterExp = "总=码单存储多少总箱数")
     private Long boxNum;
 
+    public Double getSuttle() {
+        return suttle;
+    }
+
+    public void setSuttle(Double suttle) {
+        this.suttle = suttle;
+    }
+
     /** 净重 */
     @Excel(name = "净重")
-    private Long suttle;
+    private Double suttle;
 
     /** 生产日期 */
     @JsonFormat(pattern = "yyyy-MM-dd")
@@ -85,9 +93,17 @@ public class ProductCodeAList extends BaseEntity
     @Excel(name = "机台")
     private String machineTool;
 
+    public Double getGrossWeight() {
+        return grossWeight;
+    }
+
+    public void setGrossWeight(Double grossWeight) {
+        this.grossWeight = grossWeight;
+    }
+
     /** 毛重 */
     @Excel(name = "毛重")
-    private Long grossWeight;
+    private Double grossWeight;
 
     /** 包装 */
     @Excel(name = "包装")
@@ -252,15 +268,7 @@ public class ProductCodeAList extends BaseEntity
     {
         return boxNum;
     }
-    public void setSuttle(Long suttle) 
-    {
-        this.suttle = suttle;
-    }
 
-    public Long getSuttle() 
-    {
-        return suttle;
-    }
     public void setProductionDate(Date productionDate) 
     {
         this.productionDate = productionDate;
@@ -279,15 +287,7 @@ public class ProductCodeAList extends BaseEntity
     {
         return machineTool;
     }
-    public void setGrossWeight(Long grossWeight) 
-    {
-        this.grossWeight = grossWeight;
-    }
 
-    public Long getGrossWeight() 
-    {
-        return grossWeight;
-    }
     public void setPackaging(String packaging) 
     {
         this.packaging = packaging;

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

@@ -81,6 +81,11 @@ public interface ProductInventoryMapper {
      */
     List<ProductInventory> oldselectProductInventoryByLotNumAndProductId(ProductInventory productInventory);
 
+    /**
+     * 根据批号码单号,产品编号,颜色,库存类型查询库存数据
+     */
+    ProductInventory oldselectProductInventoryByLotNumAndProductIdAndqrcoud(ProductInventory productInventory);
+
     /**
      * 老库存出库带产品名称
      * @param productInventory

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

@@ -242,12 +242,12 @@
 
     <delete id="deleteProductInventoryById" parameterType="Long">
         delete
-        from product_inventory
+        from {DBNAME}.product_inventory
         where id = #{id}
     </delete>
 
     <delete id="deleteProductInventoryByIds" parameterType="String">
-        delete from product_inventory where id in
+        delete from {DBNAME}.product_inventory where id in
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>
@@ -297,6 +297,18 @@
         <if test="inventoryType != null and inventoryType != ''">and inventory_type = #{inventoryType}</if>
     </select>
 
+<!--    根据批号码单号,产品编号,颜色,库存类型查询库存数据-->
+    <select id="oldselectProductInventoryByLotNumAndProductIdAndqrcoud" resultType="com.zkqy.business.domain.ProductInventory">
+        select * from {DBNAME}.product_inventory
+        where del_flag = '0'
+        <if test="lotNum != null and lotNum != '' ">and lot_num = #{lotNum}</if>
+        <if test="qrCode != null">and qr_code = #{qrCode}</if>
+        <if test="productId != null">and product_id = #{productId}</if>
+        <if test="productColour != null and productColour != ''">and product_colour = #{productColour}  </if>
+        <if test="inventoryType != null and inventoryType != ''">and inventory_type = #{inventoryType}</if>
+        <if test="levels != null"> and levels = #{levels}</if>
+    </select>
+
     <select id="oldselectProductInventoryByLotNumAndProductIdJoinProduction" resultType="com.zkqy.business.domain.ProductInventory">
         select pi.*,p.product_name from {DBNAME}.product_inventory as pi
                  left join {DBNAME}.production as p

+ 0 - 2
zkqy-ui/src/views/orderMange/codeListManage/index.vue

@@ -1937,9 +1937,7 @@ export default {
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      console.log("---------------------",row)
       const ids = row.id;
-      console.log("---------------------",ids)
       this.$modal
         .confirm(this.$t('codeListManage.deleteConfirm') + '"' + ids )
         .then(function () {

+ 5 - 5
zkqy-ui/src/views/orderMange/planTable/index.vue

@@ -942,10 +942,10 @@
                     @click.native.prevent="handleEditPlan(scope.row)"
                     >{{ $t('planTable.editPlan') }}</el-dropdown-item
                   >
-                  <el-dropdown-item
-                    @click.native.prevent="handleStopProductionLine(scope.row)"
-                    >{{ $t('planTable.machineStatus') }}</el-dropdown-item
-                  >
+<!--                  <el-dropdown-item-->
+<!--                    @click.native.prevent="handleStopProductionLine(scope.row)"-->
+<!--                    >{{ $t('planTable.machineStatus') }}</el-dropdown-item-->
+<!--                  >-->
                 </el-dropdown-menu>
               </el-dropdown>
             </template>
@@ -1053,7 +1053,7 @@
               <template v-slot:default="scope">
                 <el-input
                   v-if="scope.row.isEditing"
-              
+
                   v-model="scope.row.currentLotNumber"
                   :placeholder="$t('planTable.inputBatchNo')"
                   @blur.stop.prevent="handleInputBlur(scope.row)"