From 678ffba7dc83569d8f8de518c15f2d32e60f6163 Mon Sep 17 00:00:00 2001
From: futian.liu <liufutianyoo@163.com>
Date: 星期三, 06 十二月 2023 14:20:51 +0800
Subject: [PATCH] 漏洞修复

---
 consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java |   62 +++++++++++++++++++------------
 1 files changed, 38 insertions(+), 24 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java b/consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
index 1de90ad..8465516 100644
--- a/consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
+++ b/consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
@@ -5,7 +5,9 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
@@ -23,10 +25,9 @@
 
 import com.consum.base.BaseController;
 import com.consum.base.core.utils.CommonUtil;
-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.LWhFormOutputParam;
+import com.consum.base.pojo.dto.GoodModelInfoDTO;
 import com.consum.base.pojo.excel.OutputExcelTemplate;
 import com.consum.base.pojo.query.LWhFormOutputQry;
 import com.consum.base.pojo.response.FormOutputGoodsVO;
@@ -154,35 +155,48 @@
         BeanUtils.copyProperties(lWhFormOutput, lWhFormOutputExtendVO);
         lWhFormOutputExtendVO.setDoc(lWhFormOutput.getOutputDoc());
 
-        String sql = "SELECT bgt.id, CATEGORY_ID, CATEGORY_NAME, GOODS_NAME "
-            + "FROM l_wh_procure_model pm LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID "
-            + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID "
-            + "WHERE pm.BUSINESS_ID =:id GROUP BY bgt.id ";
-        Map<String, Object> paramMap = new HashMap<>();
-        paramMap.put("id", lWhFormOutputExtendVO.getId());
-        List<Map<String, Object>> procureModelList = lWhFormOutputService.select(sql, paramMap, new MapperUtil());
+        List<GoodModelInfoDTO> goodsModelList =
+            lWhProcureModelService.getGoodsModelListByBusinessId(lWhFormOutputExtendVO.getId());
+        if (CollectionUtils.isEmpty(goodsModelList)) {
+            return ResponseValue.success(lWhFormOutputExtendVO);
+        }
+        Map<Long, List<GoodModelInfoDTO>> collect =
+            goodsModelList.stream().collect(Collectors.groupingBy(GoodModelInfoDTO::getBaseGoodsTemplateId));
         List<FormOutputGoodsVO> fromOutputGoods = Lists.newArrayList();
-        for (Map<String, Object> map : procureModelList) {
-            FormOutputGoodsVO procureTemplateInfoVO = MapUtils.convertMapToObj(map, FormOutputGoodsVO.class);
-
-            // 鏌ヨ鍨嬪彿鏁伴噺
-            List<GoodsModelVO> goodsModelVOList = Lists.newArrayList();
-            String sql2 = "SELECT pm.id,pm.BASE_GOODS_MODELS_NAME,bgm.UNIT,COUNTS,total_amount "
-                + "FROM l_wh_procure_model pm LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID "
-                + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID " + "WHERE pm.BUSINESS_ID =:id";
-            List<Map<String, Object>> modelList = lWhFormOutputService.select(sql2, paramMap, new MapperUtil());
-            modelList.forEach(item -> {
-                GoodsModelVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsModelVO.class);
-                goodsModelVOList.add(goodsModelVO);
-            });
-            procureTemplateInfoVO.setModels(goodsModelVOList);
-            fromOutputGoods.add(procureTemplateInfoVO);
+        for (Map.Entry<Long, List<GoodModelInfoDTO>> entry : collect.entrySet()) {
+            FormOutputGoodsVO formOutputGoodsVO = getFormOutputGoodsVO(entry);
+            fromOutputGoods.add(formOutputGoodsVO);
         }
         lWhFormOutputExtendVO.setFromOutputGoods(fromOutputGoods);
 
         return ResponseValue.success("鏌ヨ鎴愬姛!", lWhFormOutputExtendVO);
     }
 
+    private static FormOutputGoodsVO getFormOutputGoodsVO(Entry<Long, List<GoodModelInfoDTO>> entry) {
+        Long baseGoodsTemplateId = entry.getKey();
+        List<GoodModelInfoDTO> goodModelInfoDTOS = entry.getValue();
+        GoodModelInfoDTO goodModelInfoDTO = goodModelInfoDTOS.stream().findFirst().orElse(null);
+        FormOutputGoodsVO formOutputGoodsVO = new FormOutputGoodsVO();
+        if (goodModelInfoDTO != null) {
+            formOutputGoodsVO.setId(baseGoodsTemplateId);
+            formOutputGoodsVO.setCategoryId(goodModelInfoDTO.getCategoryId());
+            formOutputGoodsVO.setCategoryName(goodModelInfoDTO.getCategoryName());
+            formOutputGoodsVO.setGoodsName(goodModelInfoDTO.getBaseGoodsModelsName());
+        }
+        List<GoodsModelVO> goodsModelList = Lists.newArrayList();
+        for (GoodModelInfoDTO goodModelInfo : goodModelInfoDTOS) {
+            GoodsModelVO goodsModelVO = new GoodsModelVO();
+            goodsModelVO.setId(goodModelInfo.getId());
+            goodsModelVO.setBaseGoodsModelsName(goodModelInfo.getBaseGoodsModelsName());
+            goodsModelVO.setUnit(goodModelInfo.getUnit());
+            goodsModelVO.setCounts(goodModelInfo.getCounts());
+            goodsModelVO.setTotalAmount(goodModelInfo.getTotalAmount());
+            goodsModelList.add(goodsModelVO);
+        }
+        formOutputGoodsVO.setModels(goodsModelList);
+        return formOutputGoodsVO;
+    }
+
     @ApiOperation(value = "鏌ヨ鍑哄簱鍗曡鎯呮槑缁�", notes = "鏌ヨ鍑哄簱鍗曡鎯呮槑缁�")
     @ApiImplicitParam(name = "formOutputQry", value = "鍑哄簱鍗曡鎯呮煡璇㈡潯浠�", required = true, dataType = "LWhFormOutputQry",
         paramType = "query")

--
Gitblit v1.9.1