From ed7d7e411534f3bcc649f681aa8c529672b31e89 Mon Sep 17 00:00:00 2001
From: cy <1664593601@qq.com>
Date: 星期五, 01 十二月 2023 17:43:42 +0800
Subject: [PATCH] feat: 报废

---
 consum-base/src/main/java/com/consum/base/controller/DepFormScrappedController.java |  180 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 179 insertions(+), 1 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/controller/DepFormScrappedController.java b/consum-base/src/main/java/com/consum/base/controller/DepFormScrappedController.java
index 7d75df1..fe0d734 100644
--- a/consum-base/src/main/java/com/consum/base/controller/DepFormScrappedController.java
+++ b/consum-base/src/main/java/com/consum/base/controller/DepFormScrappedController.java
@@ -1,22 +1,41 @@
 package com.consum.base.controller;
 
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.util.ReflectUtil;
 import com.consum.base.BaseController;
 import com.consum.base.core.utils.CommonUtil;
 import com.consum.base.pojo.LDeptFormScrappedParam;
 import com.consum.base.pojo.query.LDeptFormScrappedQry;
 import com.consum.base.service.DepFormScrappedServiceImpl;
 import com.consum.model.po.FinSysTenantUser;
+import com.walker.db.page.GenericPager;
+import com.walker.infrastructure.utils.CollectionUtils;
+import com.walker.infrastructure.utils.DateUtils;
 import com.walker.web.ResponseValue;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @ClassName DepFormScrappedController
@@ -65,6 +84,165 @@
             return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
         }
         param.setAgencyId(sysInfo.getTenantId());
-        return ResponseValue.success(depFormScrappedService.queryList(param));
+
+        GenericPager<Map<String, Object>> mapGenericPager = depFormScrappedService.queryList(param);
+        // 澶勭悊涓�涓嬫暟鎹�
+        List<Map<String, Object>> datas = mapGenericPager.getDatas();
+        if (CollectionUtils.isEmpty(datas)) {
+            return ResponseValue.success(mapGenericPager);
+        }
+        List<Map<String, Object>> maps = mergeData(datas);
+        ReflectUtil.setFieldValue(mapGenericPager, "datas", maps);
+        return ResponseValue.success(mapGenericPager);
+    }
+
+    private static List<Map<String, Object>> mergeData(List<Map<String, Object>> dataList) {
+        Map<Long, Map<String, Object>> mergedDataMap = new HashMap<>();
+        // 閬嶅巻鍘熷鏁版嵁杩涜鍚堝苟
+        for (Map<String, Object> data : dataList) {
+            Long id = Convert.toLong(data.get("id"));
+            HashMap hashMap = new HashMap();
+            hashMap.put("baseGoodsTemplateId", data.get("operatorName"));
+            hashMap.put("baseGoodsTemplateName", data.get("baseGoodsTemplateName"));
+            hashMap.put("totalCount", data.get("totalCount"));
+            hashMap.put("unit", data.get("unit"));
+
+            if (!mergedDataMap.containsKey(id)) {
+                // 濡傛灉id鍦ㄥ悎骞舵暟鎹腑涓嶅瓨鍦紝鍒欐柊澧炰竴鏉¤褰�
+                Map<String, Object> mergedMap = new HashMap<>();
+                mergedMap.put("departmentName", data.get("departmentName"));
+                mergedMap.put("dealTime", data.get("dealTime"));
+                mergedMap.put("businessFormCode", data.get("businessFormCode"));
+                mergedMap.put("operatorName", data.get("operatorName"));
+                mergedMap.put("id", data.get("id"));
+                ArrayList<HashMap> goodsList = new ArrayList<>();
+                goodsList.add(hashMap);
+                mergedMap.put("goods", goodsList);
+                mergedDataMap.put(id, mergedMap);
+            } else {
+                // 濡傛灉id鍦ㄥ悎骞舵暟鎹腑宸插瓨鍦紝鍒欏皢k3杩藉姞鍒板凡瀛樺湪璁板綍鐨刱3鍒楄〃涓�
+                Map<String, Object> mergedMap = mergedDataMap.get(id);
+                ArrayList<HashMap> goodsList = (ArrayList<HashMap>) mergedMap.get("goods");
+                goodsList.add(hashMap);
+            }
+        }
+        // 灏嗗悎骞跺悗鐨勬暟鎹浆鎹负List杩斿洖
+        return new ArrayList<>(mergedDataMap.values());
+    }
+
+    /**
+     * @Description 鏍规嵁id鏌ヨ璇︽儏
+     */
+    @ApiOperation(value = "鏍规嵁id鏌ヨ璇︽儏", notes = "鏍规嵁id鏌ヨ璇︽儏")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "鎶ュ簾鍗昳d", dataType = "Long", paramType = "query")
+    })
+    @GetMapping("/deptDetail")
+    public ResponseValue getById(Long id) {
+        if (id == null) {
+            return ResponseValue.error("鎶ュ簾鍗昳d涓虹┖");
+        }
+        return ResponseValue.success(this.depFormScrappedService.getById(id));
+    }
+
+    @ApiOperation(value = "瀵煎嚭鎶ュ簾鍗�", notes = "瀵煎嚭鎶ュ簾鍗�")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "鎶ュ簾鍗昳d", dataType = "Long", paramType = "query")
+    })
+    @GetMapping("/deptList/export")
+    public void export(Long id, HttpServletResponse response) throws Exception {
+        if (id == null) {
+            throw new RuntimeException("鎶ュ簾鍗昳d涓虹┖");
+        }
+        FinSysTenantUser sysInfo = getSysInfo();
+        if (sysInfo == null) {
+            throw new RuntimeException("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
+        }
+        List<Map<String, Object>> export = depFormScrappedService.export(id, sysInfo.getTenantId());
+        if (CollectionUtils.isEmpty(export)) {
+            throw new RuntimeException("鏁版嵁涓虹┖");
+        }
+        TemplateExportParams exportParams = new TemplateExportParams("import/deptScrapped.xlsx");
+        exportParams.setHeadingStartRow(2);
+        Map<String, Object> scrappedInfoExcelTemplate = export.get(0);
+
+        Long dealTime = Convert.toLong(scrappedInfoExcelTemplate.get("dealTime"));
+        String operatorName = Convert.toStr(scrappedInfoExcelTemplate.get("operatorName"));
+        String businessFormCode = Convert.toStr(scrappedInfoExcelTemplate.get("businessFormCode"));
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("code", businessFormCode);
+        map.put("date", DateUtils.toShowDate(dealTime));
+        map.put("name", operatorName);
+        map.put("countNum", 0);
+        map.put("totalAmount", 0);
+        map.put("dataList", export);
+
+        Workbook workbook = ExcelExportUtil.exportExcel(exportParams, map);
+        // 璁剧疆鍝嶅簲澶�
+        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
+        response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode("閮ㄩ棬鎶ュ簾鍗�.xlsx", "utf-8"));
+        try (OutputStream outputStream = response.getOutputStream()) {
+            workbook.write(outputStream);
+            workbook.close();
+        }
+    }
+
+    public static void main(String[] args) {
+        TemplateExportParams exportParams = new TemplateExportParams("D:\\MyProjects\\jmy\\浣庡�兼槗鑰楀搧\\low-consum-manage\\deploy-jar-single\\src\\main\\resources\\import\\deptScrapped.xlsx");
+        exportParams.setHeadingStartRow(2);
+
+        List<Map<String, Object>> export = new ArrayList<>();
+
+        // 鍒涘缓绗竴鏉℃暟鎹�
+        Map<String, Object> data1 = new HashMap<>();
+        data1.put("agencyName", 1);
+        data1.put("baseGoodsTemplateName", "Bob");
+        data1.put("scrappedName", "Bob");
+        data1.put("bz", "Bob");
+        data1.put("baseGoodsModelsName", 30);
+        data1.put("counts", 30);
+        data1.put("totalPrice", 30);
+        export.add(data1);
+
+        // 鍒涘缓绗簩鏉℃暟鎹�
+        Map<String, Object> data2 = new HashMap<>();
+        data2.put("agencyName", 2);
+        data2.put("baseGoodsTemplateName", "Bob");
+        data2.put("scrappedName", "Bob");
+        data2.put("bz", "Bob");
+        data2.put("baseGoodsModelsName", 30);
+        data2.put("counts", 30);
+        data2.put("totalPrice", 30);
+        export.add(data2);
+
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("code", "2023");
+        map.put("date", "2023");
+        map.put("name", "operatorName");
+        map.put("countNum", 0);
+        map.put("totalAmount", 0);
+        map.put("maplist", export);
+
+        Workbook workbook = ExcelExportUtil.exportExcel(exportParams, map);
+
+        File file = new File("C:\\Users\\cy\\Desktop\\鏂板缓鏂囦欢澶�");
+        OutputStream stream = null;
+        try {
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd");
+            stream = new FileOutputStream(new File(file, "鏈烘瀯瀹㈡埛淇℃伅琛�.xls"));
+            //document.write(stream);
+            workbook.write(stream);
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (stream != null) ;
+            try {
+                stream.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
     }
 }

--
Gitblit v1.9.1