From ceecebe477faf5a45b19f3b258f7add8f93b4583 Mon Sep 17 00:00:00 2001
From: futian.liu <liufutianyoo@163.com>
Date: 星期二, 05 十二月 2023 10:00:24 +0800
Subject: [PATCH] 代码优化 结构调整

---
 consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java |  182 ++++++++++++++++++---------------------------
 1 files changed, 72 insertions(+), 110 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java
index 273cd1c..e7345dc 100644
--- a/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java
@@ -1,5 +1,19 @@
 package com.consum.base.service.impl;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.apache.commons.compress.utils.Lists;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
 import com.consum.base.core.CodeGeneratorEnum;
 import com.consum.base.core.CodeGeneratorService;
 import com.consum.base.core.DepUsingFormBackCoreServiceImpl;
@@ -12,7 +26,7 @@
 import com.consum.base.pojo.request.UsingFormBackGoodsInfo;
 import com.consum.base.pojo.request.UsingFormBackParam;
 import com.consum.base.pojo.request.baseGoodModel;
-import com.consum.base.pojo.response.BaseGoodsTemplateInfo;
+import com.consum.base.pojo.response.GoodsTemplateCountVO;
 import com.consum.base.pojo.response.UseInfo;
 import com.consum.base.pojo.response.UsingFormBackDetailListVO;
 import com.consum.base.pojo.response.UsingFormBackDetailVO;
@@ -38,17 +52,6 @@
 import com.walker.infrastructure.utils.DateUtils;
 import com.walker.infrastructure.utils.StringUtils;
 import com.walker.jdbc.service.BaseServiceImpl;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import javax.annotation.Resource;
-import org.apache.commons.compress.utils.Lists;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
 /**
  * @author asus
@@ -73,6 +76,8 @@
     private LWhFormTransferService lWhFormTransferService;
     @Resource
     private DepUsingFormBackCoreServiceImpl depUsingFormBackCoreService;
+    @Resource
+    private UsingFormBackModelService UsingFormBackModelService;
 
     @Override
     public void add(UsingFormBackParam usingFormBackParam, FinSysTenantUser sysInfo, S_user_core currentUser) {
@@ -92,7 +97,8 @@
         String departmentName = department.getName();
 
         // 娣诲姞閫�鍥炶〃鍗�
-        Long usingFormBackId = addUsingFormBack(sysInfo, departmentId, departmentName, operatorId, operatorName, backTime, procureDoc);
+        Long usingFormBackId =
+            addUsingFormBack(sysInfo, departmentId, departmentName, operatorId, operatorName, backTime, procureDoc);
 
         // 鎵归噺鎻掑叆閫�鍥炲晢鍝佸拰閫�鍥炲晢鍝佹ā鍨�
         List<UsingFormBackGoods> goodsBatch = new ArrayList<>();
@@ -103,7 +109,8 @@
             goodsBatch.add(goods);
 
             for (baseGoodModel model : goodsInfo.getModels()) {
-                UsingFormBackModel formModel = createUsingFormBackModel(usingFormBackId, goods.getId(), goodsInfo, model);
+                UsingFormBackModel formModel =
+                    createUsingFormBackModel(usingFormBackId, goods.getId(), goodsInfo, model);
                 modelBatch.add(formModel);
             }
         }
@@ -112,7 +119,8 @@
         usingFormBackModelService.insertBatch(goodsBatch);
         usingFormBackGoodsService.insertBatch(modelBatch);
 
-        depUsingFormBackCoreService.updateBack(usingFormBackId, currentUser, DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+        depUsingFormBackCoreService.updateBack(usingFormBackId, currentUser,
+            DateUtils.getDateTimeNumber(System.currentTimeMillis()));
     }
 
     private UsingFormBackGoods createUsingFormBackGoods(Long usingFormBackId, UsingFormBackGoodsInfo goodsInfo) {
@@ -133,8 +141,8 @@
         return goods;
     }
 
-    private UsingFormBackModel createUsingFormBackModel(Long usingFormBackId, Long usingFormBackGoodsId, UsingFormBackGoodsInfo goodsInfo,
-        baseGoodModel model) {
+    private UsingFormBackModel createUsingFormBackModel(Long usingFormBackId, Long usingFormBackGoodsId,
+        UsingFormBackGoodsInfo goodsInfo, baseGoodModel model) {
         UsingFormBackModel formModel = new UsingFormBackModel();
         formModel.setId(IdUtil.generateId());
         formModel.setUsingFormBackId(usingFormBackId);
@@ -154,21 +162,13 @@
         return formModel;
     }
 
-
     @Override
     public PageUtil selectPageByList(UsingFormBackQry usingFormBackParam) {
 
-        StringBuilder sql = new StringBuilder("SELECT\n"
-            + "\tDISTINCT ufb.ID,\n"
-            + "\tufb.BUSINESS_FORM_CODE,\n"
-            + "\tufb.DEPARTMENT_NAME,\n"
-            + "\tufb.OPERATOR_NAME,\n"
-            + "\tufb.DEAL_TIME\n"
-            + "FROM\n"
-            + "\tusing_form_back ufb\n"
-            + "\tLEFT JOIN using_form_back_goods ufbg ON ufb.ID = ufbg.USING_FORM_BACK_ID\n"
-            + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID\n"
-            + "where 1=1 ");
+        StringBuilder sql = new StringBuilder("SELECT\n" + "\tDISTINCT ufb.ID,\n" + "\tufb.BUSINESS_FORM_CODE,\n"
+            + "\tufb.DEPARTMENT_NAME,\n" + "\tufb.OPERATOR_NAME,\n" + "\tufb.DEAL_TIME\n" + "FROM\n"
+            + "\tusing_form_back ufb\n" + "\tLEFT JOIN using_form_back_goods ufbg ON ufb.ID = ufbg.USING_FORM_BACK_ID\n"
+            + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID\n" + "where 1=1 ");
 
         String businessFormCode = usingFormBackParam.getBusinessFormCode();
         Long departmentId = usingFormBackParam.getDepartmentId();
@@ -217,31 +217,15 @@
             map.put("createName", createName);
         }
         sql.append("ORDER BY ufb.CREATE_TIME DESC ");
-        GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), map, usingFormBackParam.getPageNum(),
-            usingFormBackParam.getPageSize(), new MapperUtil());
+        GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), map,
+            usingFormBackParam.getPageNum(), usingFormBackParam.getPageSize(), new MapperUtil());
         PageUtil pageUtil = new PageUtil(mapGenericPager);
         List<UsingFormBackVO> pageList = Lists.newArrayList();
         mapGenericPager.getDatas().forEach(item -> {
             UsingFormBackVO usingFormBackVO = MapUtils.convertMapToObj(item, UsingFormBackVO.class);
-
             Long id = usingFormBackVO.getId();
-            StringBuilder countSql = new StringBuilder("SELECT \n"
-                + "\tufbg.BASE_GOODS_TEMPLATE_NAME,\n"
-                + "\tsum(ufbm.COUNTS) count,\n"
-                + "\tufbm.UNIT\n"
-                + "FROM\n"
-                + "\tusing_form_back_goods ufbg\n"
-                + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID\n"
-                + "where ufbg.USING_FORM_BACK_ID = :id group by ufbg.BASE_GOODS_TEMPLATE_ID ");
-            Map<String, Object> countSqlMap = new HashMap<>();
-            countSqlMap.put("id", id);
-            List<Map<String, Object>> select = this.select(countSql.toString(), countSqlMap, new MapperUtil());
-            List<BaseGoodsTemplateInfo> baseGoodsTemplateInfoList = Lists.newArrayList();
-            select.forEach(entity -> {
-                BaseGoodsTemplateInfo baseGoodsTemplateInfo = MapUtils.convertMapToObj(entity, BaseGoodsTemplateInfo.class);
-                baseGoodsTemplateInfoList.add(baseGoodsTemplateInfo);
-            });
-            usingFormBackVO.setGoodsTemplateInfoList(baseGoodsTemplateInfoList);
+            List<GoodsTemplateCountVO> usingCount = UsingFormBackModelService.getUsingCountByBusinessId(id);
+            usingFormBackVO.setGoodsTemplateInfoList(usingCount);
             pageList.add(usingFormBackVO);
         });
         pageUtil.setDatas(pageList);
@@ -250,28 +234,13 @@
 
     @Override
     public UsingFormBackDetailVO getDetail(Long id) {
-        StringBuilder sql = new StringBuilder("SELECT\n"
-            + "\tDISTINCT ufb.ID,\n"
-            + "\tufb.BUSINESS_FORM_CODE,\n"
-            + "\tufb.AGENCY_NAME,\n"
-            + "\tufb.DEPARTMENT_NAME,\n"
-            + "\tufb.OPERATOR_NAME,\n"
-            + "\tufb.DEAL_TIME,\n"
-            + "\tufb.PROCURE_DOC,\n"
-            + "\tufbg.CATEGORY_NAME,\n"
-            + "\tufbg.BASE_GOODS_TEMPLATE_NAME,\n"
-            + "\tufbg.CLASSIFICATION,\n"
-            + "\tufbg.BUSINESS_FORM_CODE,\n"
-            + "\tufbm.BASE_GOODS_MODELS_NAME,\n"
-            + "\tufbm.BASE_GOODS_TEMPLATE_ID,\n"
-            + "\tufbm.BASE_GOODS_MODELS_ID,\n"
-            + "\tufbm.UNIT,\n"
-            + "\tufbm.COUNTS,\n"
-            + "\tufbm.USE_COUNT,\n"
-            + "\tufbm.GOODS_USER_NAME\n"
-            + "FROM\n"
-            + "\tusing_form_back ufb\n"
-            + "\tLEFT JOIN using_form_back_goods ufbg ON ufb.ID = ufbg.USING_FORM_BACK_ID\n"
+        StringBuilder sql = new StringBuilder("SELECT\n" + "\tDISTINCT ufb.ID,\n" + "\tufb.BUSINESS_FORM_CODE,\n"
+            + "\tufb.AGENCY_NAME,\n" + "\tufb.DEPARTMENT_NAME,\n" + "\tufb.OPERATOR_NAME,\n" + "\tufb.DEAL_TIME,\n"
+            + "\tufb.PROCURE_DOC,\n" + "\tufbg.CATEGORY_NAME,\n" + "\tufbg.BASE_GOODS_TEMPLATE_NAME,\n"
+            + "\tufbg.CLASSIFICATION,\n" + "\tufbg.BUSINESS_FORM_CODE,\n" + "\tufbm.BASE_GOODS_MODELS_NAME,\n"
+            + "\tufbm.BASE_GOODS_TEMPLATE_ID,\n" + "\tufbm.BASE_GOODS_MODELS_ID,\n" + "\tufbm.UNIT,\n"
+            + "\tufbm.COUNTS,\n" + "\tufbm.USE_COUNT,\n" + "\tufbm.GOODS_USER_NAME\n" + "FROM\n"
+            + "\tusing_form_back ufb\n" + "\tLEFT JOIN using_form_back_goods ufbg ON ufb.ID = ufbg.USING_FORM_BACK_ID\n"
             + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID where ufb.id =:id");
         Map<String, Object> map = new HashMap<>();
         map.put("id", id);
@@ -281,13 +250,15 @@
         }
         List<UsingFormBackDetailDTO> usingFormBackDetailDTOList = Lists.newArrayList();
         select.forEach(item -> {
-            UsingFormBackDetailDTO usingFormBackDetailDTO = MapUtils.convertMapToObj(item, UsingFormBackDetailDTO.class);
+            UsingFormBackDetailDTO usingFormBackDetailDTO =
+                MapUtils.convertMapToObj(item, UsingFormBackDetailDTO.class);
             usingFormBackDetailDTOList.add(usingFormBackDetailDTO);
         });
 
         UsingFormBackDetailVO usingFormBackDetailVO = new UsingFormBackDetailVO();
         List<UsingFormBackGoodsTemplateInfo> goodsTemplateInfoList = Lists.newArrayList();
-        usingFormBackDetailDTOList.stream().collect(Collectors.groupingBy(UsingFormBackDetailDTO::getBaseGoodsTemplateId))
+        usingFormBackDetailDTOList.stream()
+            .collect(Collectors.groupingBy(UsingFormBackDetailDTO::getBaseGoodsTemplateId))
             .forEach((templateId, templateInfo) -> {
                 UsingFormBackDetailDTO templateInfoDTO = templateInfo.get(0);
                 BeanUtils.copyProperties(templateInfoDTO, usingFormBackDetailVO);
@@ -300,24 +271,25 @@
                 goodsTemplateInfoList.add(usingFormBackGoodsTemplateInfo);
                 usingFormBackDetailVO.setGoodsTemplateInfoList(goodsTemplateInfoList);
                 List<UsingFormBackModelInfo> modelInfoList = Lists.newArrayList();
-                templateInfo.stream().collect(Collectors.groupingBy(UsingFormBackDetailDTO::getBaseGoodsModelsId)).forEach((modelId, modelInfo) -> {
-                    UsingFormBackDetailDTO modelInfoDTO = modelInfo.get(0);
-                    UsingFormBackModelInfo usingFormBackModelInfo = new UsingFormBackModelInfo();
-                    usingFormBackModelInfo.setBaseGoodsModelsName(modelInfoDTO.getBaseGoodsModelsName());
-                    usingFormBackModelInfo.setUnit(modelInfoDTO.getUnit());
-                    usingFormBackModelInfo.setId(modelId);
-                    modelInfoList.add(usingFormBackModelInfo);
-                    usingFormBackGoodsTemplateInfo.setModelInfoList(modelInfoList);
-                    List<UseInfo> useInfoList = Lists.newArrayList();
-                    for (UsingFormBackDetailDTO useInfoDTO : modelInfo) {
-                        UseInfo useInfo = new UseInfo();
-                        useInfo.setUseName(useInfoDTO.getGoodsUserName());
-                        useInfo.setReturnNum(useInfoDTO.getCounts());
-                        useInfo.setUseUnm(useInfoDTO.getUseCount());
-                        useInfoList.add(useInfo);
-                        usingFormBackModelInfo.setUseInfoList(useInfoList);
-                    }
-                });
+                templateInfo.stream().collect(Collectors.groupingBy(UsingFormBackDetailDTO::getBaseGoodsModelsId))
+                    .forEach((modelId, modelInfo) -> {
+                        UsingFormBackDetailDTO modelInfoDTO = modelInfo.get(0);
+                        UsingFormBackModelInfo usingFormBackModelInfo = new UsingFormBackModelInfo();
+                        usingFormBackModelInfo.setBaseGoodsModelsName(modelInfoDTO.getBaseGoodsModelsName());
+                        usingFormBackModelInfo.setUnit(modelInfoDTO.getUnit());
+                        usingFormBackModelInfo.setId(modelId);
+                        modelInfoList.add(usingFormBackModelInfo);
+                        usingFormBackGoodsTemplateInfo.setModelInfoList(modelInfoList);
+                        List<UseInfo> useInfoList = Lists.newArrayList();
+                        for (UsingFormBackDetailDTO useInfoDTO : modelInfo) {
+                            UseInfo useInfo = new UseInfo();
+                            useInfo.setUseName(useInfoDTO.getGoodsUserName());
+                            useInfo.setReturnNum(useInfoDTO.getCounts());
+                            useInfo.setUseUnm(useInfoDTO.getUseCount());
+                            useInfoList.add(useInfo);
+                            usingFormBackModelInfo.setUseInfoList(useInfoList);
+                        }
+                    });
             });
 
         return usingFormBackDetailVO;
@@ -325,21 +297,12 @@
 
     @Override
     public PageUtil selectPageByDetail(UsingFormBackQry usingFormBackParam) {
-        StringBuilder sql = new StringBuilder("SELECT\n"
-            + "\tufb.ID,\n"
-            + "\tufb.BUSINESS_FORM_CODE,\n"
-            + "\tufbm.BASE_GOODS_TEMPLATE_NAME,\n"
-            + "\tufbm.BASE_GOODS_MODELS_NAME,\n"
-            + "\tufbm.counts,\n"
-            + "\tufb.AGENCY_NAME,\n"
-            + "\tufb.DEPARTMENT_NAME,\n"
-            + "\tufb.OPERATOR_NAME,\n"
-            + "\tufb.DEAL_TIME\n"
-            + "FROM\n"
-            + "\tusing_form_back ufb\n"
+        StringBuilder sql = new StringBuilder("SELECT\n" + "\tufb.ID,\n" + "\tufb.BUSINESS_FORM_CODE,\n"
+            + "\tufbm.BASE_GOODS_TEMPLATE_NAME,\n" + "\tufbm.BASE_GOODS_MODELS_NAME,\n" + "\tufbm.counts,\n"
+            + "\tufb.AGENCY_NAME,\n" + "\tufb.DEPARTMENT_NAME,\n" + "\tufb.OPERATOR_NAME,\n" + "\tufb.DEAL_TIME\n"
+            + "FROM\n" + "\tusing_form_back ufb\n"
             + "\tLEFT JOIN using_form_back_goods ufbg ON ufb.ID = ufbg.USING_FORM_BACK_ID\n"
-            + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID\n"
-            + "where 1=1 ");
+            + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID\n" + "where 1=1 ");
 
         String businessFormCode = usingFormBackParam.getBusinessFormCode();
         Long departmentId = usingFormBackParam.getDepartmentId();
@@ -388,8 +351,8 @@
             map.put("createName", createName);
         }
         sql.append("ORDER BY ufb.CREATE_TIME DESC ");
-        GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), map, usingFormBackParam.getPageNum(),
-            usingFormBackParam.getPageSize(), new MapperUtil());
+        GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), map,
+            usingFormBackParam.getPageNum(), usingFormBackParam.getPageSize(), new MapperUtil());
         PageUtil pageUtil = new PageUtil(mapGenericPager);
         List<UsingFormBackDetailListVO> pageList = Lists.newArrayList();
         mapGenericPager.getDatas().forEach(item -> {
@@ -400,10 +363,9 @@
         return pageUtil;
     }
 
-
     @Transactional
-    public Long addUsingFormBack(FinSysTenantUser sysInfo, Long departmentId, String departmentName, Long operatorId, String operatorName, Long backTime,
-        String procureDoc) {
+    public Long addUsingFormBack(FinSysTenantUser sysInfo, Long departmentId, String departmentName, Long operatorId,
+        String operatorName, Long backTime, String procureDoc) {
         UsingFormBack usingFormBack = new UsingFormBack();
         usingFormBack.setId(IdUtil.generateId());
         usingFormBack.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.GOBACK));

--
Gitblit v1.9.1