From 8db5b7ff317abcfd6905a2722850944d8574eafa Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期三, 13 十二月 2023 19:07:18 +0800
Subject: [PATCH] feat: 导出统一修改

---
 consum-base/src/main/java/com/consum/base/service/DepFormScrappedServiceImpl.java |  212 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 201 insertions(+), 11 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/service/DepFormScrappedServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/DepFormScrappedServiceImpl.java
index 62021c8..4b178c1 100644
--- a/consum-base/src/main/java/com/consum/base/service/DepFormScrappedServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/DepFormScrappedServiceImpl.java
@@ -3,20 +3,24 @@
 import cn.hutool.core.convert.Convert;
 import com.consum.base.core.CodeGeneratorEnum;
 import com.consum.base.core.CodeGeneratorService;
+import com.consum.base.core.DepFormScrappedCoreServiceImpl;
+import com.consum.base.core.utils.IdUtil;
 import com.consum.base.core.utils.MapperUtil;
 import com.consum.base.pojo.DepFormScrappedGoodsParam;
 import com.consum.base.pojo.DepFormScrappedModelParam;
 import com.consum.base.pojo.LDeptFormScrappedParam;
 import com.consum.base.pojo.query.LDeptFormScrappedQry;
+import com.consum.base.pojo.response.DepFormScrappedExtendVo;
 import com.consum.model.po.*;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.iplatform.model.po.S_user_core;
 import com.walker.db.page.GenericPager;
 import com.walker.infrastructure.utils.CollectionUtils;
 import com.walker.infrastructure.utils.DateUtils;
-import com.walker.infrastructure.utils.NumberGenerator;
 import com.walker.infrastructure.utils.StringUtils;
 import com.walker.jdbc.service.BaseServiceImpl;
 import com.walker.web.ResponseValue;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -40,15 +44,18 @@
     @Resource
     private CodeGeneratorService codeGeneratorService;
     @Resource
-    private FinSysTenantDepartmentServiceImpl departmentService;
+    private FinSysTenantDepartmentService departmentService;
     @Resource
-    private LWhFormTransferServiceImpl lWhFormTransferService;
+    private LWhFormTransferService lWhFormTransferService;
     @Resource
-    private BaseCategoryServiceImpl baseCategoryService;
+    private BaseCategoryService baseCategoryService;
     @Resource
     private SDictDataServiceImpl sDictDataService;
     @Resource
-    private BaseGoodsModelsServiceImpl baseGoodsModelsService;
+    private BaseGoodsModelsService baseGoodsModelsService;
+
+    @Resource
+    private DepFormScrappedCoreServiceImpl depFormScrappedCoreService;
 
     @Transactional
     public ResponseValue add(LDeptFormScrappedParam param, S_user_core currentUser, FinSysTenantUser sysInfo) {
@@ -57,7 +64,7 @@
         //1.鏂板鎶ュ簾鍗曡褰�
         DepFormScrapped lDeptFormScrapped = new DepFormScrapped();
         //鎶ュ簾鍗昳d
-        long lWhFormScrappedId = NumberGenerator.getLongSequenceNumber();
+        long lWhFormScrappedId = IdUtil.generateId();
         lDeptFormScrapped.setId(lWhFormScrappedId);
         lDeptFormScrapped.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Scrapped));
         lDeptFormScrapped.setProcureDoc(param.getProcureDoc());
@@ -83,7 +90,6 @@
             lDeptFormScrapped.setDepartmentName(department.getName());
         }
 
-
         lDeptFormScrapped.setCreateTime(dealTime);
         lDeptFormScrapped.setStates(1);
 
@@ -97,7 +103,7 @@
 
         for (DepFormScrappedGoodsParam depFormScrappedGoodsParam : scrappedGoodsInfo) {
             DepFormScrappedGoods depFormScrappedGoods = new DepFormScrappedGoods();
-            depFormScrappedGoods.setId(NumberGenerator.getLongSequenceNumber());
+            depFormScrappedGoods.setId(IdUtil.generateId());
             depFormScrappedGoods.setDepFormScrappedId(lWhFormScrappedId);
             depFormScrappedGoods.setBaseGoodsTemplateId(depFormScrappedGoodsParam.getBaseGoodsTemplateId());
             depFormScrappedGoods.setBaseGoodsTemplateName(depFormScrappedGoodsParam.getGoodsTemplateName());
@@ -135,7 +141,7 @@
 
             for (DepFormScrappedModelParam depFormScrappedModelParam : modelList) {
                 DepFormScrappedModel depFormScrappedModel = new DepFormScrappedModel();
-                depFormScrappedModel.setId(NumberGenerator.getLongSequenceNumber());
+                depFormScrappedModel.setId(IdUtil.generateId());
                 depFormScrappedModel.setDepFormScrappedId(lWhFormScrappedId);
                 depFormScrappedModel.setDepFormScrappedGoodsId(depFormScrappedGoods.getId());
                 //鎶ュ簾鍘熷洜
@@ -180,6 +186,7 @@
         }
         int i = insertBatch(scrappedGoodsArrayList);
         int i2 = insertBatch(modelArrayList);
+        depFormScrappedCoreService.updateScrapped(lWhFormScrappedId,currentUser,dealTime);
         return ResponseValue.success();
     }
 
@@ -187,7 +194,7 @@
     /**
      * @Description 鍒楄〃鏌ヨ
      */
-    private static String QUERY_LIST = "SELECT scrap.id,scrap.BUSINESS_FORM_CODE,scrap.DEPARTMENT_NAME,scrap.OPERATOR_NAME,scrap.DEAL_TIME,model.BASE_GOODS_TEMPLATE_ID,model.BASE_GOODS_TEMPLATE_NAME,SUM(model.COUNTS) total_Count FROM DEP_FORM_SCRAPPED scrap LEFT JOIN DEP_FORM_SCRAPPED_MODEL model ON scrap.id=model.DEP_FORM_SCRAPPED_ID where 1=1";
+    private static String QUERY_LIST = "SELECT scrap.id,scrap.BUSINESS_FORM_CODE,scrap.AGENCY_NAME,scrap.DEPARTMENT_NAME,scrap.OPERATOR_NAME,scrap.DEAL_TIME,model.BASE_GOODS_TEMPLATE_ID,model.BASE_GOODS_TEMPLATE_NAME,SUM(model.COUNTS) total_Count,model.unit FROM DEP_FORM_SCRAPPED scrap LEFT JOIN DEP_FORM_SCRAPPED_MODEL model ON scrap.id=model.DEP_FORM_SCRAPPED_ID where 1=1";
     private static String QUERY_LIST_END = " GROUP BY scrap.id,scrap.BUSINESS_FORM_CODE,scrap.DEPARTMENT_NAME,scrap.OPERATOR_NAME,scrap.DEAL_TIME,model.BASE_GOODS_TEMPLATE_ID,model.BASE_GOODS_TEMPLATE_NAME ORDER BY scrap.DEAL_TIME DESC";
 
     public GenericPager<Map<String, Object>> queryList(LDeptFormScrappedQry param) {
@@ -199,8 +206,8 @@
             paramts.put("businessFormCode", param.getBusinessFormCode());
         }
         //鏈烘瀯
-        sql.append(" and scrap.AGENCY_ID = :agencyId ");
         if (param.getAgencyId() != null) {
+            sql.append(" and scrap.AGENCY_ID = :agencyId ");
             paramts.put("agencyId", param.getAgencyId());
         }
         //鐗╁搧鍚嶇О
@@ -225,4 +232,187 @@
         sql.append(QUERY_LIST_END);
         return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil());
     }
+
+
+    /**
+     * @Description 鏍规嵁id鏌ヨ璇︽儏
+     */
+    public DepFormScrappedExtendVo getById(Long id) {
+        DepFormScrappedExtendVo scrappedExtend = new DepFormScrappedExtendVo();
+        //1.鏌ヨ鎶ュ簾鍗�
+        DepFormScrapped lWhFormScrapped = this.get(new DepFormScrapped(id));
+        if (lWhFormScrapped != null) {
+            BeanUtils.copyProperties(lWhFormScrapped, scrappedExtend);
+        }
+        ObjectMapper objectMapper = new ObjectMapper();
+
+        //2.鏌ヨ鎶ュ簾鍗曠墿鍝�
+        DepFormScrappedGoods goodsQuery = new DepFormScrappedGoods();
+        goodsQuery.setDepFormScrappedId(id);
+        List<DepFormScrappedGoods> formScrappedGoodsList = select(goodsQuery);
+        List<Map> goodsList = new ArrayList<>();
+        for (DepFormScrappedGoods scrappedGoods : formScrappedGoodsList) {
+            Map<String, Object> scrappedGoodsMap = objectMapper.convertValue(scrappedGoods, Map.class);
+            // 鏌ヨ瑙勬牸鍨嬪彿
+            Long scrappedGoodsId = scrappedGoods.getId();
+            DepFormScrappedModel depFormScrappedModel = new DepFormScrappedModel();
+            depFormScrappedModel.setDepFormScrappedGoodsId(scrappedGoodsId);
+            List<DepFormScrappedModel> scrappedModelList = select(depFormScrappedModel);
+            List<List<DepFormScrappedModel>> modelList = scrappedModelList.stream()
+                .collect(Collectors.groupingBy(DepFormScrappedModel::getBaseGoodsModelsId))
+                .values().stream()
+                .map(list -> list.stream().collect(Collectors.toList()))
+                .collect(Collectors.toList());
+
+            scrappedGoodsMap.put("models", modelList);
+            goodsList.add(scrappedGoodsMap);
+        }
+        scrappedExtend.setGoods(goodsList);
+        return scrappedExtend;
+    }
+
+    private static String EXPORT_SQL = "SELECT scrap.id,scrap.BUSINESS_FORM_CODE,model.BASE_GOODS_TEMPLATE_NAME,model.BASE_GOODS_MODELS_NAME,model.COUNTS,scrap.AGENCY_NAME,scrap.DEPARTMENT_NAME,scrap.OPERATOR_NAME,scrap.DEAL_TIME,scrap.OUT_WAREHOUSE_NAME,ROUND( IFNULL( TOTAL_AMOUNT, 0 )/ 100, 2 ) AS TOTAL_PRICE,model.SCRAPPED_NAME,NULL AS bz FROM DEP_FORM_SCRAPPED scrap LEFT JOIN DEP_FORM_SCRAPPED_MODEL model ON scrap.id=model.DEP_FORM_SCRAPPED_ID WHERE 1=1 ";
+    private static String EXPORT_SQL_END = "order by scrap.DEAL_TIME DESC";
+
+    public List<Map<String, Object>> export(Long id, String agencyId) {
+        HashMap<String, Object> paramts = new HashMap<>();
+        StringBuilder sql = new StringBuilder(EXPORT_SQL);
+        //鎶ュ簾鍗曞彿
+        if (id != null) {
+            sql.append(" and scrap.id = :id");
+            paramts.put("id", id);
+        }
+        //鏈烘瀯
+        sql.append(" and scrap.AGENCY_ID = :agencyId ");
+        if (agencyId != null) {
+            paramts.put("agencyId", agencyId);
+        }
+        return select(sql.append(EXPORT_SQL_END).toString(), paramts, new MapperUtil());
+    }
+
+    public List<Map<String, Object>> listByModel(LDeptFormScrappedQry param) {
+        HashMap<String, Object> paramts = new HashMap<>();
+        StringBuilder sql = new StringBuilder(EXPORT_SQL);
+        //鎶ュ簾鍗昳d
+        if (param.getId() != null) {
+            sql.append(" and scrap.id = :id");
+            paramts.put("id", param.getId());
+        }
+        //鎶ュ簾鍗曞彿
+        if (param.getBusinessFormCode() != null) {
+            sql.append(" and scrap.BUSINESS_FORM_CODE= :businessFormCode");
+            paramts.put("businessFormCode", param.getBusinessFormCode());
+        }
+        //鐗╁搧鍚嶇О
+        if (StringUtils.isNotEmpty(param.getGoodsTemplateName())) {
+            sql.append(" and model.BASE_GOODS_TEMPLATE_NAME LIKE :goodsTemplateName ");
+            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
+        }
+        //瑙勬牸鍨嬪彿
+        if (param.getBaseGoodsModelsId() != null) {
+            sql.append("and model.BASE_GOODS_MODELS_ID =:baseGoodsModelsId ");
+            paramts.put("baseGoodsModelsId", param.getBaseGoodsModelsId());
+        }
+
+        //鏈烘瀯
+        if (param.getAgencyId() != null) {
+            sql.append(" and scrap.AGENCY_ID = :agencyId ");
+            paramts.put("agencyId", param.getAgencyId());
+        }
+        // 閮ㄩ棬 姝ゅ鎸夌殑鏄墿鍝佷娇鐢ㄩ儴闂� 鑰屼笉鏄� 鎿嶄綔浜烘墍鍦ㄩ儴闂�
+        if (param.getDepartmentId() != null) {
+            sql.append(" and scrap.OUT_WAREHOUSE_ID= :departmentId");
+            paramts.put("departmentId", param.getDepartmentId());
+        }
+        //鍒涘缓浜�
+        if (!StringUtils.isEmpty(param.getOperatorName())) {
+            sql.append(" and scrap.OPERATOR_NAME LIKE :operatorName ");
+            paramts.put("operatorName", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT);
+        }
+        //鎶ュ簾鏃堕棿
+        if (param.getStartTime() != null) {
+            sql.append(" and scrap.DEAL_TIME >=:dealTimeStart ");
+            paramts.put("dealTimeStart", param.getStartTime() * 1000000);
+        }
+        if (param.getEndTime() != null) {
+            sql.append(" and scrap.DEAL_TIME <:dealTimeEnd ");
+            paramts.put("dealTimeEnd", param.getEndTime() * 1000000 + 240000);
+        }
+        return select(sql.append(EXPORT_SQL_END).toString(), paramts, new MapperUtil());
+    }
+
+    public GenericPager<Map<String, Object>> listByModel2(LDeptFormScrappedQry param) {
+        HashMap<String, Object> paramts = new HashMap<>();
+        StringBuilder sql = new StringBuilder(EXPORT_SQL);
+        //鎶ュ簾鍗昳d
+        if (param.getId() != null) {
+            sql.append(" and scrap.id = :id");
+            paramts.put("id", param.getId());
+        }
+        //鎶ュ簾鍗曞彿
+        if (param.getBusinessFormCode() != null) {
+            sql.append(" and scrap.BUSINESS_FORM_CODE= :businessFormCode");
+            paramts.put("businessFormCode", param.getBusinessFormCode());
+        }
+        //鐗╁搧鍚嶇О
+        if (StringUtils.isNotEmpty(param.getGoodsTemplateName())) {
+            sql.append(" and model.BASE_GOODS_TEMPLATE_NAME LIKE :goodsTemplateName ");
+            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
+        }
+        //瑙勬牸鍨嬪彿
+        if (param.getBaseGoodsModelsId() != null) {
+            sql.append("and model.BASE_GOODS_MODELS_ID =:baseGoodsModelsId ");
+            paramts.put("baseGoodsModelsId", param.getBaseGoodsModelsId());
+        }
+
+        //鏈烘瀯
+        if (param.getAgencyId() != null) {
+            sql.append(" and scrap.AGENCY_ID = :agencyId ");
+            paramts.put("agencyId", param.getAgencyId());
+        }
+        // 閮ㄩ棬 姝ゅ鎸夌殑鏄墿鍝佷娇鐢ㄩ儴闂� 鑰屼笉鏄� 鎿嶄綔浜烘墍鍦ㄩ儴闂�
+        if (param.getDepartmentId() != null) {
+            sql.append(" and scrap.OUT_WAREHOUSE_ID= :departmentId");
+            paramts.put("departmentId", param.getDepartmentId());
+        }
+        //鍒涘缓浜�
+        if (!StringUtils.isEmpty(param.getOperatorName())) {
+            sql.append(" and scrap.OPERATOR_NAME LIKE :operatorName ");
+            paramts.put("operatorName", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT);
+        }
+        //鎶ュ簾鏃堕棿
+        if (param.getStartTime() != null) {
+            sql.append(" and scrap.DEAL_TIME >=:dealTimeStart ");
+            paramts.put("dealTimeStart", param.getStartTime() * 1000000);
+        }
+        if (param.getEndTime() != null) {
+            sql.append(" and scrap.DEAL_TIME <:dealTimeEnd ");
+            paramts.put("dealTimeEnd", param.getEndTime() * 1000000 + 240000);
+        }
+        return selectSplit(sql.append(EXPORT_SQL_END).toString(),paramts, param.getPageNum(), param.getPageSize(),  new MapperUtil());
+
+//        return select(sql.append(EXPORT_SQL_END).toString(), paramts, new MapperUtil());
+    }
+
+    private static String GET_BF_MODEL_LIST = "SELECT\n" +
+            "\tscrGoods.TRANS_BUSINESS_ID,\n" +
+            "\tscrGoods.BUSINESS_FORM_CODE,\n" +
+            "\tscrGoods.TRANS_OUT_WAREHOUSE_TYPE,\n" +
+            "\tscrGoods.TRANS_OUT_WAREHOUSE_ID,\n" +
+            "\tgoodsModel.BASE_GOODS_TEMPLATE_ID,\n" +
+            "\tgoodsModel.COUNTS,\n" +
+            "\tgoodsModel.PROCURE_MODEL_USER_ID,\n" +
+            "\tgoodsModel.GOODS_USER_NAME \n" +
+            "FROM\n" +
+            "\tDEP_FORM_SCRAPPED_GOODS scrGoods\n" +
+            "\tLEFT JOIN DEP_FORM_SCRAPPED_MODEL goodsModel ON scrgoods.id = goodsModel.DEP_FORM_SCRAPPED_GOODS_ID";
+
+    public List<Map<String, Object>> getBfModelList(Long lWhFormScrappedId) {
+        HashMap<String, Object> paramts = new HashMap<>();
+        StringBuilder sql = new StringBuilder(GET_BF_MODEL_LIST);
+        //鎶ュ簾鍗昳d
+        sql.append(" and scrGoods.DEP_FORM_SCRAPPED_ID = :lWhFormScrappedId");
+        paramts.put("lWhFormScrappedId", lWhFormScrappedId);
+        return select(sql.toString(), paramts, new MapperUtil());
+    }
 }

--
Gitblit v1.9.1