From a6acf1f8924a8fabaa4b74f6771ddbe41ab6b204 Mon Sep 17 00:00:00 2001
From: haoyahui <2032914783@qq.com>
Date: 星期一, 20 十一月 2023 18:47:09 +0800
Subject: [PATCH] 盘点编辑

---
 consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java |  155 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 149 insertions(+), 6 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java
index 5076e20..f1ad54d 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java
@@ -2,9 +2,10 @@
 
 import com.consum.base.core.CodeGeneratorEnum;
 import com.consum.base.core.CodeGeneratorService;
+import com.consum.base.core.utils.MapRowMapper;
 import com.consum.base.pojo.LWhFormInventoryDto;
 import com.consum.base.pojo.LWhFormInventoryParam;
-import com.consum.base.util.IdUtil;
+import com.consum.base.core.utils.IdUtil;
 import com.consum.model.po.*;
 import com.iplatform.model.po.S_user_core;
 import com.walker.db.page.GenericPager;
@@ -17,7 +18,6 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -53,6 +53,18 @@
             "                      AND STATES = ?\n" +
             "                    GROUP BY BASE_GOODS_MODELS_ID) record ON record.BASE_GOODS_MODELS_ID = model.id\n" +
             "left join base_goods_template bgt on bgt.ID = model.GOODS_TEMPLATES_ID; ";
+
+    private static final String QUERY_PD_DETAIL_LIST = "select lwfi.WAREHOUSE_NAME,lwfig.GOODS_TEMPLATE_NAME,\n" +
+            "       lwfig.BASE_GOODS_MODELS_NAME,\n" +
+            "       lwfig.INVENTORY_RESULT,\n" +
+            "       lwfig.INIT_COUNTS,\n" +
+            "       lwfig.INVENTORY_COUNTS,\n" +
+            "       lwfig.ERROR_COUNTS,\n" +
+            "       lwfi.AGENCY_NAME,\n" +
+            "       lwfi.OPERATOR_NAME,\n" +
+            "       lwfi.STOP_TIME\n" +
+            "from l_wh_form_inventory lwfi\n" +
+            "         inner join l_wh_form_inventory_goods lwfig on lwfi.ID = lwfig.WH_FORM_INVENTORY_ID ";
 
     /**
      * @Description 鏂板
@@ -165,9 +177,140 @@
      */
     public int temporaryStorage(LWhFormInventoryDto dto) {
         //1.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗�
-
-        //2.鍒犻櫎鐩樼偣鍗曠墿鍝�
-        //3.鏂板鐩樼偣鍗曠墿鍝�
-        return 0;
+        LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(dto.getId()));
+        if (lWhFormInventory == null) {
+            log.error("鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗� 澶辫触");
+            return 0;
+        }
+        //2.淇敼鐩樼偣鍗�
+        lWhFormInventory.setStates(1);
+        lWhFormInventory.setInventoryDate(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+        int flag1 = this.update(lWhFormInventory);
+        if (flag1 == 0) {
+            log.error("淇敼鐩樼偣鍗� 澶辫触");
+            return 0;
+        }
+        //3.鏇存柊鐩樼偣鍗曠墿鍝�
+        List<LWhFormInventoryGoods> inventoryGoodsList = dto.getInventoryGoodsList();
+        int flag2 = inventoryGoodsService.update(inventoryGoodsList);
+        if (flag2 != inventoryGoodsList.size()) {
+            log.error("鏇存柊鐩樼偣鍗曠墿鍝� 澶辫触");
+            return 0;
+        }
+        return 1;
     }
+
+    /**
+     * 瀹屾垚鐩樼偣
+     * @author 鍗㈠簡闃�
+     * @date 2023/10/31
+     */
+    public int finishPd(LWhFormInventoryDto dto) {
+        //1.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗�
+        LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(dto.getId()));
+        if (lWhFormInventory == null) {
+            log.error("鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗� 澶辫触");
+            return 0;
+        }
+        //2.淇敼鐩樼偣鍗�
+        lWhFormInventory.setStates(2);
+        lWhFormInventory.setStopTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+        int flag1 = this.update(lWhFormInventory);
+        if (flag1 == 0) {
+            log.error("淇敼鐩樼偣鍗� 澶辫触");
+            return 0;
+        }
+        //3.鏇存柊鐩樼偣鍗曠墿鍝�
+        List<LWhFormInventoryGoods> inventoryGoodsList = dto.getInventoryGoodsList();
+        if (CollectionUtils.isEmpty(inventoryGoodsList)) {
+            log.error("鐩樼偣鍗曠墿鍝� 涓虹┖");
+            return 0;
+        }
+        for (LWhFormInventoryGoods inventoryGoods : inventoryGoodsList) {
+            int errorCounts = inventoryGoods.getInitCounts() - inventoryGoods.getInventoryCounts();
+            if (errorCounts >0 ) {
+                inventoryGoods.setInventoryResult(3);
+            } else if (errorCounts <0){
+                inventoryGoods.setInventoryResult(2);
+            } else {
+                inventoryGoods.setInventoryResult(1);
+            }
+            inventoryGoods.setErrorCounts(Math.abs(errorCounts));
+        }
+        int flag2 = inventoryGoodsService.update(inventoryGoodsList);
+        if (flag2 != inventoryGoodsList.size()) {
+            log.error("鏇存柊鐩樼偣鍗曠墿鍝� 澶辫触");
+            return 0;
+        }
+        return 1;
+    }
+
+    /**
+     * @Description 寮傚父鏄庣粏鍒楄〃鏌ヨ
+     * @Author 鍗㈠簡闃�
+     * @Date 2023/11/1
+     * @return
+     */
+    public GenericPager<Map<String, Object>> queryPdDetailList(LWhFormInventoryParam param, FinSysTenantUser sysInfo) {
+        StringBuilder sql = new StringBuilder(QUERY_PD_DETAIL_LIST);
+        HashMap<String, Object> paramts = new HashMap<>();
+
+        //鏈烘瀯
+        sql.append(" and AGENCY_ID like:AGENCY_ID ");
+        if (param.getAgencyId() != null) {
+            paramts.put("AGENCY_ID", param.getAgencyId() + StringUtils.CHAR_PERCENT);
+        } else {
+            paramts.put("AGENCY_ID", sysInfo.getTenantId() + StringUtils.CHAR_PERCENT);
+        }
+        //浠撳簱缂栧彿
+        if (param.getWarehouseId() != null) {
+            sql.append(" and WAREHOUSE_ID =:WAREHOUSE_ID ");
+            paramts.put("WAREHOUSE_ID", param.getWarehouseId());
+        }
+        //鐗╁搧鍚嶇О
+        if (!StringUtils.isEmpty(param.getGoodsTemplateName())) {
+            sql.append(" and GOODS_TEMPLATE_NAME =:GOODS_TEMPLATE_NAME ");
+            paramts.put("GOODS_TEMPLATE_NAME", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
+        }
+        //瑙勬牸鍨嬪彿
+        if (param.getBaseGoodsModelsId() != null) {
+            sql.append(" and BASE_GOODS_MODELS_ID =:BASE_GOODS_MODELS_ID ");
+            paramts.put("BASE_GOODS_MODELS_ID", param.getBaseGoodsModelsId());
+        }
+        //绫诲瀷(鍑哄叆搴撶被鍨�)
+        Integer inventoryResult = param.getInventoryResult();
+        if (inventoryResult != null) {
+            sql.append(" and INVENTORY_RESULT =:INVENTORY_RESULT ");
+            paramts.put("INVENTORY_RESULT", inventoryResult);
+        }
+        //鍑哄叆搴撳崟鍙�
+        if (param.getWarehouseFormCode() != null) {
+            if (inventoryResult == 2) { //鐩樼泩鍏ュ簱
+                sql.append(" and IN_BUSINESS_FORM_CODE =:IN_BUSINESS_FORM_CODE ");
+                paramts.put("IN_BUSINESS_FORM_CODE", StringUtils.CHAR_PERCENT + param.getWarehouseFormCode() + StringUtils.CHAR_PERCENT);
+            } else {  //鐩樹簭鍑哄簱
+                sql.append(" and OUT_BUSINESS_FORM_CODE =:OUT_BUSINESS_FORM_CODE ");
+                paramts.put("OUT_BUSINESS_FORM_CODE", StringUtils.CHAR_PERCENT + param.getWarehouseFormCode() + StringUtils.CHAR_PERCENT);
+            }
+        }
+        //鎿嶄綔浜�
+        if (!StringUtils.isEmpty(param.getOperatorName())) {
+            sql.append(" and OPERATOR_NAME =:OPERATOR_NAME ");
+            paramts.put("OPERATOR_NAME", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT);
+        }
+        //缁撴潫鏃堕棿
+        if (param.getStopTimeStart() != null) {
+            sql.append(" and STOP_TIME >=:stopTimeStart ");
+            paramts.put("stopTimeStart", param.getStopTimeStart() * 1000000);
+        }
+        if (param.getStopTimeEnd() != null) {
+            sql.append(" and STOP_TIME <:stopTimeEnd ");
+            paramts.put("stopTimeEnd", param.getStopTimeEnd() * 1000000 + 240000);
+        }
+
+        sql.append(" ORDER BY CREATE_TIME DESC ");
+
+        return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapRowMapper());
+    }
+
 }

--
Gitblit v1.9.1