From 3836720e3b0fc9ab884d178e0ac27e942b175da2 Mon Sep 17 00:00:00 2001
From: futian.liu <liufutianyoo@163.com>
Date: 星期二, 05 十二月 2023 15:23:01 +0800
Subject: [PATCH] 报废单添加金额字段

---
 consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java |  166 +++++++++++++++++++++++++++++++++---------------------
 1 files changed, 101 insertions(+), 65 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 bb7ee4f..b828350 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
@@ -1,11 +1,25 @@
 package com.consum.base.service;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.compress.utils.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
 import com.consum.base.core.CodeGeneratorEnum;
 import com.consum.base.core.CodeGeneratorService;
+import com.consum.base.core.type.InventoryStatesType;
 import com.consum.base.core.utils.IdUtil;
 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.excel.InventoryExcelTemplate;
 import com.consum.base.pojo.query.LWhFormInventoryQry;
 import com.consum.base.pojo.request.FormInventoryParam;
 import com.consum.base.pojo.request.LWhFormInventoryParam;
@@ -21,17 +35,8 @@
 import com.walker.infrastructure.utils.DateUtils;
 import com.walker.infrastructure.utils.StringUtils;
 import com.walker.jdbc.service.BaseServiceImpl;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.compress.utils.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
 
 /**
  * @Description 鐩樼偣
@@ -40,12 +45,12 @@
  */
 @Slf4j
 @Service
-public class LWhFormInventoryServiceImpl extends BaseServiceImpl {
+public class LWhFormInventoryServiceImpl extends BaseServiceImpl implements LWhFormInventoryService {
 
     @Autowired
     private CodeGeneratorService codeGeneratorService;
     @Autowired
-    private BaseWarehouseServiceImpl baseWarehouseService;
+    private BaseWarehouseService baseWarehouseService;
     @Autowired
     private LWhFormInventoryGoodsServiceImpl inventoryGoodsService;
     @Autowired
@@ -56,15 +61,7 @@
     @Lazy
     private LWhFormInventoryCoreService lWhFormInventoryCoreService;
 
-
     private static final String QUERY_LIST = "select * from l_wh_form_inventory where 1=1 ";
-
-    private static final String QUERY_PD_List = "SELECT bgt.GOODS_NAME goodsName,model.MODEL_NAME modelName,bgt.CLASSIFICATION,model.UNIT,\n"
-        + "       record.endCount,bgt.ID goodsTemplateId,model.ID modelsId\n" + "FROM BASE_GOODS_MODELS model\n"
-        + "         LEFT JOIN (SELECT COUNT(1) endCount, BASE_GOODS_MODELS_ID\n" + "                    FROM L_WH_GOODS\n"
-        + "                    WHERE WAREHOUSE_TYPE = 0\n" + "                      AND WAREHOUSE_ID = 1\n" + "                      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 fig.id,fi.WAREHOUSE_NAME,fig.GOODS_TEMPLATE_NAME,fig.BASE_GOODS_MODELS_NAME,fig.INVENTORY_RESULT,fig.INIT_COUNTS,fig.INVENTORY_COUNTS,"
@@ -74,23 +71,25 @@
 
     /**
      * @param param
-     * @param currentUser  褰撳墠鐧诲綍鐢ㄦ埛
+     * @param currentUser 褰撳墠鐧诲綍鐢ㄦ埛
      * @param operatorUser 鐩樼偣浜�
-     * @param monitorUser  鐩戠洏浜�
+     * @param monitorUser 鐩戠洏浜�
      * @return
      * @Description 鏂板
      * @Author 鍗㈠簡闃�
      * @Date 2023/10/31
      */
-    public int add(FormInventoryParam param, FinSysTenantUser currentUser, FinSysTenantUser operatorUser, FinSysTenantUser monitorUser) {
-        //鏂板鐩樼偣鍗�
+    @Override
+    public int add(FormInventoryParam param, FinSysTenantUser currentUser, FinSysTenantUser operatorUser,
+        FinSysTenantUser monitorUser) {
+        // 鏂板鐩樼偣鍗�
         LWhFormInventory lWhFormInventory = new LWhFormInventory();
         BeanUtils.copyProperties(param, lWhFormInventory);
         lWhFormInventory.setId(IdUtil.generateId());
-        //鐩樼偣鍗曠紪鐮�
+        // 鐩樼偣鍗曠紪鐮�
         String businessFormCode = codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Inventory);
         lWhFormInventory.setBusinessFormCode(businessFormCode);
-        //鏍规嵁浠撳簱id鏌ヨ浠撳簱
+        // 鏍规嵁浠撳簱id鏌ヨ浠撳簱
         BaseWarehouse baseWarehouse = this.baseWarehouseService.getById(param.getWarehouseId());
         if (baseWarehouse != null) {
             lWhFormInventory.setWarehouseName(baseWarehouse.getWarehouseName());
@@ -104,7 +103,7 @@
             lWhFormInventory.setOperatorName2(monitorUser.getUserName());
         }
 
-        lWhFormInventory.setStates(0);
+        lWhFormInventory.setStates(InventoryStatesType.NEW.getValue());
         lWhFormInventory.setAgencyId(Long.valueOf(currentUser.getTenantId()));
         FinSysTenant finSysTenant = finSysTenantService.selectById(Long.valueOf(currentUser.getTenantId()));
         lWhFormInventory.setAgencyName(finSysTenant.getName());
@@ -120,26 +119,28 @@
      * @Author 鍗㈠簡闃�
      * @Date 2023/10/31
      */
+    @Override
     public GenericPager<LWhFormInventory> queryList(LWhFormInventoryQry param, FinSysTenantUser sysInfo) {
         StringBuilder sql = new StringBuilder(QUERY_LIST);
         HashMap<String, Object> paramts = new HashMap<>();
 
-        //鐩樼偣鍗曞彿
+        // 鐩樼偣鍗曞彿
         if (!StringUtils.isEmpty(param.getBusinessFormCode())) {
             sql.append("and BUSINESS_FORM_CODE =:BUSINESS_FORM_CODE ");
             paramts.put("BUSINESS_FORM_CODE", param.getBusinessFormCode());
         }
-        //鐩樼偣鍗曞悕绉�
+        // 鐩樼偣鍗曞悕绉�
         if (!StringUtils.isEmpty(param.getBusinessFormName())) {
             sql.append("and BUSINESS_FORM_NAME like :BUSINESS_FORM_NAME ");
-            paramts.put("BUSINESS_FORM_NAME", StringUtils.CHAR_PERCENT + param.getBusinessFormName() + StringUtils.CHAR_PERCENT);
+            paramts.put("BUSINESS_FORM_NAME",
+                StringUtils.CHAR_PERCENT + param.getBusinessFormName() + StringUtils.CHAR_PERCENT);
         }
-        //浠撳簱缂栧彿
+        // 浠撳簱缂栧彿
         if (param.getWarehouseId() != null) {
             sql.append("and WAREHOUSE_ID =:WAREHOUSE_ID ");
             paramts.put("WAREHOUSE_ID", param.getWarehouseId());
         }
-        //鐩樼偣鏃堕棿
+        // 鐩樼偣鏃堕棿
         if (param.getStartTime() != null) {
             sql.append("and INVENTORY_DATE >=:inventoryDateStart ");
             paramts.put("inventoryDateStart", param.getStartTime() * 1000000);
@@ -148,7 +149,7 @@
             sql.append("and INVENTORY_DATE <:inventoryDateEnd ");
             paramts.put("inventoryDateEnd", param.getEndTime() * 1000000 + 240000);
         }
-        //鏈烘瀯
+        // 鏈烘瀯
         sql.append("and AGENCY_ID =:AGENCY_ID ");
         paramts.put("AGENCY_ID", sysInfo.getTenantId());
 
@@ -156,30 +157,29 @@
         return selectSplit(sql.toString(), paramts, new LWhFormInventory());
     }
 
-
-    public List<FormInventoryGoodsVO> saveInventory(FormInventoryVO dto, Long id) {
-        //1.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗�
+    @Override
+    public FormInventoryVO saveInventory(FormInventoryVO dto, Long id) {
+        // 1.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗�
         LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(id));
         if (lWhFormInventory == null) {
             log.error("鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗曞け璐�");
         }
-        //2.淇敼鐩樼偣鍗�
-        lWhFormInventory.setStates(1);
+        // 2.淇敼鐩樼偣鍗�
+        lWhFormInventory.setStates(InventoryStatesType.PENDING.getValue());
         lWhFormInventory.setInventoryDate(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
         int flag1 = this.update(lWhFormInventory);
         if (flag1 == 0) {
             log.error("淇敼鐩樼偣鍗曞け璐�");
         }
-        //3.娣诲姞鐩樼偣鍗曠墿鍝�
+        // 3.娣诲姞鐩樼偣鍗曠墿鍝�
         List<FormInventoryGoodsVO> formInventoryGoodsList = dto.getFormInventoryGoodsList();
         if (CollectionUtils.isEmpty(formInventoryGoodsList)) {
             log.error("鐩樼偣鍗曠墿鍝佷负绌�");
         }
         List<FormInventoryGoodsVO> result = inventoryGoodsService.add(formInventoryGoodsList, id);
-
-        return result;
+        dto.setFormInventoryGoodsList(result);
+        return dto;
     }
-
 
     /**
      * 淇濆瓨鐩樼偣淇℃伅
@@ -188,27 +188,30 @@
      * @date 2023/10/31
      */
     @Transactional(rollbackFor = Exception.class)
-    public int updateInventoryInfo(LWhFormInventoryParam dto, Integer state, S_user_core currentUser, FinSysTenantUser sysInfo) {
-        //1.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗�
+    @Override
+    public int updateInventoryInfo(LWhFormInventoryParam dto, Integer state, S_user_core currentUser,
+        FinSysTenantUser sysInfo) {
+        // 1.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗�
         LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(dto.getId()));
         if (lWhFormInventory == null) {
             log.error("鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗曞け璐�");
             return 0;
         }
-        //娣诲姞鐩樼偣鍗曠墿鍝�
+        // 娣诲姞鐩樼偣鍗曠墿鍝�
         List<FormInventoryGoodsVO> inventoryGoodsList = dto.getInventoryGoodsList();
         if (CollectionUtils.isEmpty(inventoryGoodsList)) {
             log.error("鐩樼偣鍗曠墿鍝佷负绌�");
             return 0;
         }
         this.inventoryGoodsService.updateInventoryGoods(inventoryGoodsList);
-        //淇敼鐩樼偣鍗�
+        // 淇敼鐩樼偣鍗�
         if (state == 2) {
-            //瀹屾垚鐩樼偣鏃惰缃畬鎴愮洏鐐规椂闂�
+            // 瀹屾垚鐩樼偣鏃惰缃畬鎴愮洏鐐规椂闂�
             lWhFormInventory.setStopTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
 
-            //瀹屾垚鐩樼偣鏃惰缃畬鎴愮洏鐐规椂闂�
-            String inOutFormByInventoryId = lWhFormInventoryCoreService.createInOutFormByInventoryId(dto.getId(), currentUser, sysInfo);
+            // 瀹屾垚鐩樼偣鏃惰缃畬鎴愮洏鐐规椂闂�
+            String inOutFormByInventoryId =
+                lWhFormInventoryCoreService.createInOutFormByInventoryId(dto.getId(), currentUser, sysInfo);
             if (!StringUtils.isEmpty(inOutFormByInventoryId)) {
                 log.error(inOutFormByInventoryId);
                 return 0;
@@ -225,57 +228,58 @@
         return 1;
     }
 
-
     /**
      * @return
      * @Description 寮傚父鏄庣粏鍒楄〃鏌ヨ
      * @Author 鍗㈠簡闃�
      * @Date 2023/11/1
      */
+    @Override
     public PageUtil<FormInventoryDetailVO> queryPdDetailList(LWhFormInventoryQry 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);
+            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) {
             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 ");
             paramts.put("OPERATOR_NAME", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT);
         }
-        //缁撴潫鏃堕棿
+        // 缁撴潫鏃堕棿
         if (param.getStartTime() != null) {
             sql.append("and STOP_TIME >=:stopTimeStart ");
             paramts.put("stopTimeStart", param.getStartTime() * 1000000);
@@ -286,15 +290,16 @@
         }
         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());
+        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 ? "鐩樼泩鍏ュ簱" : "鐩樹簭鍑哄簱"));
+            formInventoryDetailVO.setInventoryResultType(formInventoryDetailVO.getInventoryResult() == null ? null
+                : (formInventoryDetailVO.getInventoryResult() == 2 ? "鐩樼泩" : "鐩樹簭"));
+            formInventoryDetailVO.setInventoryType(formInventoryDetailVO.getInventoryResult() == null ? null
+                : (formInventoryDetailVO.getInventoryResult() == 2 ? "鐩樼泩鍏ュ簱" : "鐩樹簭鍑哄簱"));
             formInventoryDetailVO.setWarehouseFormCode(formInventoryDetailVO.getWarehouseFormCode());
             result.add(formInventoryDetailVO);
         });
@@ -302,6 +307,7 @@
         return pageUtil;
     }
 
+    @Override
     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,"
@@ -318,6 +324,7 @@
         return result;
     }
 
+    @Override
     public FormInventoryVO queryInventBaseGoodTemplate(Long id) {
         FormInventoryVO formInventoryVO = new FormInventoryVO();
 
@@ -345,11 +352,40 @@
         List<FormInventoryGoodsVO> goodsVOList = Lists.newArrayList();
         result.forEach(item -> {
             FormInventoryGoodsVO baseGoodsModels = MapUtils.convertMapToObj(item, FormInventoryGoodsVO.class);
-            int inventoryCount = this.lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseId, baseGoodsModels.getId(), 1, null);
+            int inventoryCount =
+                this.lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseId, baseGoodsModels.getId(), 1, null);
             baseGoodsModels.setInventoryCount(inventoryCount);
             goodsVOList.add(baseGoodsModels);
         });
         formInventoryVO.setFormInventoryGoodsList(goodsVOList);
         return formInventoryVO;
     }
+
+    @Override
+    public List<InventoryExcelTemplate> getExportList(Long id) {
+        String sql = "SELECT\n" + "\tfi.INVENTORY_DATE createTime,\n" + "\tfi.STOP_TIME endTime,\n"
+            + "\tfi.OPERATOR_NAME,\n" + "\tfi.OPERATOR_NAME2 monitorName,\n" + "\tfi.AGENCY_NAME tenantName,\n"
+            + "\tfig.GOODS_TEMPLATE_NAME templateName,\n" + "\tfig.BASE_GOODS_MODELS_NAME baseModelName,\n"
+            + "\tfig.INVENTORY_COUNTS num,\n" + "\tfig.INIT_COUNTS stockNum,\n" + "\tfig.INVENTORY_RESULT,\n"
+            + "\tBEIZ1 remark\n" + "FROM\n" + "\tl_wh_form_inventory fi\n"
+            + "\tLEFT JOIN l_wh_form_inventory_goods fig ON fi.ID = fig.WH_FORM_INVENTORY_ID\n" + "WHERE\n"
+            + "\tfi.ID = :id";
+        HashMap<String, Object> param = new HashMap<>();
+        param.put("id", id);
+        List<Map<String, Object>> select = this.select(sql, param, new MapperUtil());
+        if (CollectionUtils.isEmpty(select)) {
+            return null;
+        }
+        List<InventoryExcelTemplate> list = Lists.newArrayList();
+        select.forEach(item -> {
+            InventoryExcelTemplate inventoryExcelTemplate =
+                MapUtils.convertMapToObj(item, InventoryExcelTemplate.class);
+            inventoryExcelTemplate.setInventoryDeception(inventoryExcelTemplate.getInventoryResult() == 1 ? "鏄�" : "鍚�");
+            inventoryExcelTemplate.setDeception(inventoryExcelTemplate.getInventoryResult() == 1 ? "姝e父"
+                : (inventoryExcelTemplate.getInventoryResult() == 2 ? "鐩樼泩" : "鐩樹簭"));
+            list.add(inventoryExcelTemplate);
+        });
+        return list;
+
+    }
 }

--
Gitblit v1.9.1