From 45bfb77d4b4d1b1d3204475caba9b9c0e3e04ef9 Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期二, 12 十二月 2023 16:58:29 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java |   80 ++++++++++++++++++++++++----------------
 1 files changed, 48 insertions(+), 32 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 d38acba..81cb5cb 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,19 +25,19 @@
 
 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.CurrencyUtil;
 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;
 import com.consum.base.pojo.response.FormOutputVO;
 import com.consum.base.pojo.response.GoodsModelVO;
 import com.consum.base.pojo.response.GoodsTemplateCountVO;
+import com.consum.base.pojo.response.GoodsTemplateInfoVO;
 import com.consum.base.pojo.response.LWhFormOutputExtendVO;
 import com.consum.base.service.LWarehouseFlowService;
-import com.consum.base.service.LWhFormOutputServiceImpl;
+import com.consum.base.service.LWhFormOutputService;
 import com.consum.base.service.LWhProcureModelService;
 import com.consum.model.po.FinSysTenantUser;
 import com.consum.model.po.LWhFormOutput;
@@ -64,7 +66,7 @@
 public class LWhFormOutputController extends BaseController {
 
     @Autowired
-    private LWhFormOutputServiceImpl lWhFormOutputService;
+    private LWhFormOutputService lWhFormOutputService;
     @Autowired
     private LWhProcureModelService lWhProcureModelService;
     @Resource
@@ -154,33 +156,45 @@
         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<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);
+        List<GoodModelInfoDTO> goodsModelList =
+            lWhProcureModelService.getGoodsModelListByBusinessId(lWhFormOutputExtendVO.getId(), null);
+        if (CollectionUtils.isEmpty(goodsModelList)) {
+            return ResponseValue.success(lWhFormOutputExtendVO);
         }
-        lWhFormOutputExtendVO.setFromOutputGoods(fromOutputGoods);
+        Map<Long, List<GoodModelInfoDTO>> collect =
+            goodsModelList.stream().collect(Collectors.groupingBy(GoodModelInfoDTO::getBaseGoodsTemplateId));
+        List<GoodsTemplateInfoVO> goodsTemplateInfoList = Lists.newArrayList();
+        for (Map.Entry<Long, List<GoodModelInfoDTO>> entry : collect.entrySet()) {
+            GoodsTemplateInfoVO goodsTemplateInfoVO = getFormOutputGoodsVO(entry);
+            goodsTemplateInfoList.add(goodsTemplateInfoVO);
+        }
+        lWhFormOutputExtendVO.setFromOutputGoods(goodsTemplateInfoList);
 
         return ResponseValue.success("鏌ヨ鎴愬姛!", lWhFormOutputExtendVO);
+    }
+
+    private GoodsTemplateInfoVO getFormOutputGoodsVO(Entry<Long, List<GoodModelInfoDTO>> entry) {
+        Long baseGoodsTemplateId = entry.getKey();
+        List<GoodModelInfoDTO> goodModelInfoDTOS = entry.getValue();
+        GoodModelInfoDTO goodModelInfoDTO = goodModelInfoDTOS.stream().findFirst().orElse(null);
+        GoodsTemplateInfoVO goodsTemplateInfoVO = new GoodsTemplateInfoVO();
+        if (goodModelInfoDTO != null) {
+            goodsTemplateInfoVO.setId(baseGoodsTemplateId);
+            goodsTemplateInfoVO.setCategoryName(goodModelInfoDTO.getCategoryName());
+            goodsTemplateInfoVO.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(CurrencyUtil.convertFenToYuan(goodModelInfo.getTotalAmount()));
+            goodsModelList.add(goodsModelVO);
+        }
+        goodsTemplateInfoVO.setModels(goodsModelList);
+        return goodsTemplateInfoVO;
     }
 
     @ApiOperation(value = "鏌ヨ鍑哄簱鍗曡鎯呮槑缁�", notes = "鏌ヨ鍑哄簱鍗曡鎯呮槑缁�")
@@ -189,10 +203,11 @@
     @GetMapping("/detail/list")
     public ResponseValue queryFormOutputDetailList() {
         LWhFormOutputQry formOutputQry = CommonUtil.getObjFromReq(LWhFormOutputQry.class);
-        S_user_core currentUser = this.getCurrentUser();
+        FinSysTenantUser currentUser = this.getSysInfo();
         if (currentUser == null) {
             return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
         }
+        formOutputQry.setAgencyId(Long.valueOf(currentUser.getTenantId()));
         PageUtil genericPager = lWarehouseFlowService.queryAllBusinessFlow(formOutputQry);
         return ResponseValue.success(genericPager);
     }
@@ -200,7 +215,7 @@
     @ApiOperation(value = "鍑哄簱鍗曞鍑�", notes = "鍑哄簱鍗曞鍑�")
     @ApiImplicitParam(name = "id", value = "鍑哄簱鍗昳d", required = true, dataType = "Long", paramType = "query")
     @GetMapping("/list/export")
-    public void export(Long id, HttpServletResponse response) throws Exception {
+    public ResponseValue export(Long id, HttpServletResponse response) throws Exception {
         FinSysTenantUser sysInfo = this.getSysInfo();
         if (sysInfo == null) {
             throw new RuntimeException("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
@@ -236,7 +251,8 @@
         map.put("totalAmount", totalAmount);
 
         Workbook workbook = ExcelExportUtil.exportExcel(params, OutputExcelTemplate.class, exportList, map);
-        downLoadExcel("鍑哄簱鍗�", response, workbook);
+        String filePath = downLoadExcel("鍑哄簱鍗�", response, workbook);
+        return ResponseValue.success("瀵煎嚭鎴愬姛", filePath);
 
     }
 

--
Gitblit v1.9.1