From 1742240f8f6841e2d930e549caabab94f2a58ece Mon Sep 17 00:00:00 2001
From: futian.liu <liufutianyoo@163.com>
Date: 星期三, 22 十一月 2023 18:37:10 +0800
Subject: [PATCH] --报废单

---
 consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java |  130 +++++++++++++++++++++++--------------------
 1 files changed, 69 insertions(+), 61 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 df1ea64..45982fd 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
@@ -3,14 +3,17 @@
 import com.consum.base.core.CodeGeneratorEnum;
 import com.consum.base.core.CodeGeneratorService;
 import com.consum.base.core.utils.IdUtil;
-import com.consum.base.core.utils.MapRowMapper;
 import com.consum.base.core.utils.MapUtils;
 import com.consum.base.core.utils.MapperUtil;
+import com.consum.base.core.utils.PageUtil;
+import com.consum.base.pojo.query.LWhFormInventoryQry;
 import com.consum.base.pojo.request.FormInventoryParam;
 import com.consum.base.pojo.request.LWhFormInventoryParam;
+import com.consum.base.pojo.response.FormInventoryDetailVO;
 import com.consum.base.pojo.response.FormInventoryGoodsVO;
 import com.consum.base.pojo.response.FormInventoryVO;
 import com.consum.model.po.BaseWarehouse;
+import com.consum.model.po.FinSysTenant;
 import com.consum.model.po.FinSysTenantUser;
 import com.consum.model.po.LWhFormInventory;
 import com.walker.db.page.GenericPager;
@@ -48,6 +51,8 @@
     private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
     @Autowired
     private LWhGoodsService lWhGoodsService;
+    @Autowired
+    private FinSysTenantServiceImpl finSysTenantService;
 
 
     private static final String QUERY_LIST = "select * from l_wh_form_inventory where 1=1 ";
@@ -60,10 +65,10 @@
         + "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 ";
+        "SELECT fig.id,fi.WAREHOUSE_NAME,fig.GOODS_TEMPLATE_NAME,fig.BASE_GOODS_MODELS_NAME,fig.INVENTORY_RESULT,fig.INIT_COUNTS,fig.INVENTORY_COUNTS,"
+            + "fig.ERROR_COUNTS,fi.AGENCY_NAME,fi.OPERATOR_NAME,fi.STOP_TIME operatorTime,"
+            + "CASE WHEN fig.INVENTORY_RESULT = 2 THEN fi.IN_BUSINESS_FORM_CODE WHEN fig.INVENTORY_RESULT = 3 THEN fi.OUT_BUSINESS_FORM_CODE END warehouseFormCode "
+            + "FROM l_wh_form_inventory fi INNER JOIN l_wh_form_inventory_goods fig ON fi.ID = fig.WH_FORM_INVENTORY_ID where 1=1 ";
 
     /**
      * @param param
@@ -99,7 +104,8 @@
 
         lWhFormInventory.setStates(0);
         lWhFormInventory.setAgencyId(Long.valueOf(currentUser.getTenantId()));
-        lWhFormInventory.setAgencyName(currentUser.getTenantName());
+        FinSysTenant finSysTenant = finSysTenantService.selectById(Long.valueOf(currentUser.getTenantId()));
+        lWhFormInventory.setAgencyName(finSysTenant.getName());
         lWhFormInventory.setCreatorId(currentUser.getSysUserId());
         lWhFormInventory.setCreatorName(currentUser.getUserName());
         lWhFormInventory.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
@@ -112,7 +118,7 @@
      * @Author 鍗㈠簡闃�
      * @Date 2023/10/31
      */
-    public GenericPager<LWhFormInventory> queryList(com.consum.base.pojo.LWhFormInventoryParam param, FinSysTenantUser sysInfo) {
+    public GenericPager<LWhFormInventory> queryList(LWhFormInventoryQry param, FinSysTenantUser sysInfo) {
         StringBuilder sql = new StringBuilder(QUERY_LIST);
         HashMap<String, Object> paramts = new HashMap<>();
 
@@ -148,41 +154,39 @@
         return selectSplit(sql.toString(), paramts, new LWhFormInventory());
     }
 
-    /**
-     * @param id 鐩樼偣鍗昳d
-     * @Description 鐩樼偣
-     * @Author 鍗㈠簡闃�
-     * @Date 2023/10/31
-     */
-    public List queryPdList(Long id) {
+
+    public void saveInventory(FormInventoryVO dto, Long id) {
         //1.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗�
         LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(id));
         if (lWhFormInventory == null) {
-            log.error("鐩樼偣澶辫触");
+            log.error("鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗曞け璐�");
         }
-        //2.鏌ヨ鐩樼偣鍗曟暟鎹�
-        List<Map<String, Object>> list = this.select(QUERY_PD_List, new Object[]{lWhFormInventory.getWarehouseId()});
-        if (CollectionUtils.isEmpty(list)) {
-            log.error("鐩樼偣澶辫触");
-            return null;
+        //2.淇敼鐩樼偣鍗�
+        lWhFormInventory.setStates(1);
+        lWhFormInventory.setInventoryDate(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+        int flag1 = this.update(lWhFormInventory);
+        if (flag1 == 0) {
+            log.error("淇敼鐩樼偣鍗曞け璐�");
         }
-        //3.鏂板鐩樼偣鍗曠墿鍝佽褰�
-//        int flag = inventoryGoodsService.add(list, lWhFormInventory.getWarehouseId());
-//        if (flag != list.size()) {
-//            log.error("鏂板鐩樼偣鍗曡褰�");
-//            return null;
-//        }
-        //4.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗曠墿鍝�
-        return inventoryGoodsService.getByInventoryId(id);
+        //3.娣诲姞鐩樼偣鍗曠墿鍝�
+        List<FormInventoryGoodsVO> formInventoryGoodsList = dto.getFormInventoryGoodsList();
+        if (CollectionUtils.isEmpty(formInventoryGoodsList)) {
+            log.error("鐩樼偣鍗曠墿鍝佷负绌�");
+        }
+        int num = inventoryGoodsService.add(formInventoryGoodsList, id);
+        if (num != formInventoryGoodsList.size()) {
+            log.error("鏇存柊鐩樼偣鍗曠墿鍝佸け璐�");
+        }
+
     }
 
     /**
-     * 鏆傚瓨
+     * 淇濆瓨鐩樼偣淇℃伅
      *
      * @author 鍗㈠簡闃�
      * @date 2023/10/31
      */
-    public int temporaryStorage(LWhFormInventoryParam dto, Integer state) {
+    public int updateInventoryInfo(LWhFormInventoryParam dto, Integer state) {
         //1.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗�
         LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(dto.getId()));
         if (lWhFormInventory == null) {
@@ -203,11 +207,7 @@
             log.error("鐩樼偣鍗曠墿鍝佷负绌�");
             return 0;
         }
-        int flag2 = inventoryGoodsService.add(inventoryGoodsList, lWhFormInventory.getWarehouseId());
-        if (flag2 != inventoryGoodsList.size()) {
-            log.error("鏇存柊鐩樼偣鍗曠墿鍝佸け璐�");
-            return 0;
-        }
+        this.inventoryGoodsService.updateInventoryGoods(inventoryGoodsList);
         return 1;
     }
 
@@ -263,7 +263,7 @@
      * @Author 鍗㈠簡闃�
      * @Date 2023/11/1
      */
-    public GenericPager<Map<String, Object>> queryPdDetailList(com.consum.base.pojo.LWhFormInventoryParam param, FinSysTenantUser sysInfo) {
+    public PageUtil<FormInventoryDetailVO> queryPdDetailList(LWhFormInventoryQry param, FinSysTenantUser sysInfo) {
         StringBuilder sql = new StringBuilder(QUERY_PD_DETAIL_LIST);
         HashMap<String, Object> paramts = new HashMap<>();
 
@@ -276,60 +276,67 @@
         }
         //浠撳簱缂栧彿
         if (param.getWarehouseId() != null) {
-            sql.append(" and WAREHOUSE_ID =:WAREHOUSE_ID ");
+            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 ");
+            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 ");
+            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 ");
+            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);
-            }
+            sql.append(
+                " and CASE WHEN fig.INVENTORY_RESULT = 2 THEN fi.IN_BUSINESS_FORM_CODE =:warehouseFormCode WHEN fig.INVENTORY_RESULT = 3 THEN fi.OUT_BUSINESS_FORM_CODE =:warehouseFormCode END ");
+            paramts.put("warehouseFormCode", param.getWarehouseFormCode());
         }
         //鎿嶄綔浜�
         if (!StringUtils.isEmpty(param.getOperatorName())) {
-            sql.append(" and OPERATOR_NAME =:OPERATOR_NAME ");
+            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.getStartTime() != null) {
+            sql.append("and STOP_TIME >=:stopTimeStart ");
+            paramts.put("stopTimeStart", param.getStartTime() * 1000000);
         }
-        if (param.getStopTimeEnd() != null) {
-            sql.append(" and STOP_TIME <:stopTimeEnd ");
-            paramts.put("stopTimeEnd", param.getStopTimeEnd() * 1000000 + 240000);
+        if (param.getEndTime() != null) {
+            sql.append("and STOP_TIME <:stopTimeEnd ");
+            paramts.put("stopTimeEnd", param.getEndTime() * 1000000 + 240000);
         }
-
-        sql.append(" ORDER BY CREATE_TIME DESC ");
-
-        return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapRowMapper());
+        sql.append("AND fig.INVENTORY_RESULT in(2,3) ");
+        sql.append("ORDER BY CREATE_TIME DESC ");
+        GenericPager<Map<String, Object>> mapGenericPager = selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil());
+        PageUtil<FormInventoryDetailVO> pageUtil = new PageUtil<>(mapGenericPager);
+        List<FormInventoryDetailVO> result = Lists.newArrayList();
+        mapGenericPager.getDatas().forEach(item -> {
+            FormInventoryDetailVO formInventoryDetailVO = MapUtils.convertMapToObj(item, FormInventoryDetailVO.class);
+            formInventoryDetailVO.setInventoryResultType(
+                formInventoryDetailVO.getInventoryResult() == null ? null : (formInventoryDetailVO.getInventoryResult() == 2 ? "鐩樼泩" : "鐩樹簭"));
+            formInventoryDetailVO.setInventoryType(
+                formInventoryDetailVO.getInventoryResult() == null ? null : (formInventoryDetailVO.getInventoryResult() == 2 ? "鐩樼泩鍏ュ簱" : "鐩樹簭鍑哄簱"));
+            result.add(formInventoryDetailVO);
+        });
+        pageUtil.setDatas(result);
+        return pageUtil;
     }
 
     public List<FormInventoryGoodsVO> selectDetailById(Long id) {
 
         String sql = "select fig.id, fig.BASE_GOODS_TEMPLATE_ID,fig.GOODS_TEMPLATE_NAME,fig.BASE_GOODS_MODELS_NAME,"
-            + "fig.INIT_COUNTS total,fig.INVENTORY_COUNTS,fig.INVENTORY_RESULT status from "
-            + "l_wh_form_inventory_goods fig where fig.WH_FORM_INVENTORY_ID = :id";
+            + "fig.INIT_COUNTS inventoryCount,fig.INVENTORY_COUNTS realNum,fig.INVENTORY_RESULT status,fig.unit,bgt.CLASSIFICATION type from "
+            + "l_wh_form_inventory_goods fig left join base_goods_template bgt on bgt.id =fig.BASE_GOODS_TEMPLATE_ID  where fig.WH_FORM_INVENTORY_ID = :id";
         HashMap<String, Object> param = new HashMap<>();
         param.put("id", id);
         List<Map<String, Object>> select = select(sql, param, new MapperUtil());
@@ -359,7 +366,8 @@
         formInventoryVO.setWarehouseName(inventory.getWarehouseName());
 
         String sql =
-            "select bgm.id,bgt.id baseGoodsTemplateId,bgt.GOODS_NAME goodsTemplateName,bgm.MODEL_NAME baseGoodsModelsName,bgt.CLASSIFICATION type,bgm.UNIT from base_goods_models bgm left join base_goods_template bgt on bgm.GOODS_TEMPLATES_ID = bgt.id "
+            "select bgm.id,bgt.id baseGoodsTemplateId,bgt.GOODS_NAME goodsTemplateName,bgm.MODEL_NAME baseGoodsModelsName,bgt.CLASSIFICATION type,bgm.UNIT "
+                + "from base_goods_models bgm left join base_goods_template bgt on bgm.GOODS_TEMPLATES_ID = bgt.id "
                 + "where bgt.AGENCY_ID = :agencyId";
         HashMap<String, Object> param = new HashMap<>();
         param.put("agencyId", inventory.getAgencyId());

--
Gitblit v1.9.1