Commit 22a583016be60e77dd60f8d3039f4a4ba2c1fdb1

Authored by 陈威
1 parent ff0bd3bf
Exists in master

导出汇总表

backend/chkpower/src/main/java/com/hotent/chkpower/controller/WCurrentController.java
1 1 package com.hotent.chkpower.controller;
2 2  
3 3  
  4 +import cn.afterturn.easypoi.excel.ExcelExportUtil;
  5 +import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
  6 +import org.apache.poi.ss.usermodel.Workbook;
4 7 import org.springframework.web.bind.annotation.GetMapping;
5 8 import org.springframework.web.bind.annotation.PostMapping;
6 9 import org.springframework.web.bind.annotation.RequestBody;
... ... @@ -15,7 +18,11 @@ import com.hotent.base.controller.BaseController;
15 18 import com.hotent.chkpower.model.WCurrent;
16 19 import com.hotent.chkpower.manager.WCurrentManager;
17 20  
18   -import java.util.List;
  21 +import javax.servlet.http.HttpServletResponse;
  22 +import java.io.OutputStream;
  23 +import java.math.BigDecimal;
  24 +import java.net.URLEncoder;
  25 +import java.util.*;
19 26  
20 27 /**
21 28 * 活期账户 前端控制器
... ... @@ -61,6 +68,72 @@ public class WCurrentController extends BaseController<WCurrentManager, WCurrent
61 68 return new CommonResult(true, "成功", data);
62 69 }
63 70  
  71 + /**
  72 + * 导出
  73 + * @param response
  74 + * @throws Exception
  75 + */
  76 + @GetMapping("exportYchzb")
  77 + public void exportYchzb(HttpServletResponse response) throws Exception {
  78 + String date="2024-07-04";
  79 + HashMap map=new HashMap();
  80 + map.put("date",date);
  81 + List<String> gslxList = baseService.getCurrentOrgTypeList();
  82 + List<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
  83 + BigDecimal hz = new BigDecimal(0.00);
  84 + for (String orgType : gslxList) {
  85 + List<HashMap<String,String>> listData = baseService.getCurrentAccountBalanceList(orgType,date+" 00:00:00");
  86 +
  87 + BigDecimal totalBalance = listData.stream()
  88 + .filter(d -> d.containsKey("F_account_balance")) // 确保键存在
  89 + .map(d -> {
  90 + Object value = d.get("F_account_balance");
  91 + if (value instanceof Number) {
  92 + return new BigDecimal(value.toString());
  93 + }
  94 + return new BigDecimal(0.00);
  95 + })
  96 + .filter(Objects::nonNull) // 确保值非空
  97 + .reduce(BigDecimal.ZERO, BigDecimal::add); // 计算总和
64 98  
65 99  
  100 + if (listData!=null && listData.size()>0){
  101 +
  102 + HashMap<String, String> hzMap = new HashMap<>();
  103 + hzMap.put("F_org_type","小计");
  104 + hzMap.put("F_org_name","");
  105 + hzMap.put("F_account_balance",String.valueOf(totalBalance));
  106 + hz=hz.add(totalBalance);
  107 + listData.add(hzMap);
  108 + }
  109 + list.addAll(listData);
  110 + }
  111 + HashMap<String, String> hzMap = new HashMap<>();
  112 + hzMap.put("F_org_type","汇总");
  113 + hzMap.put("F_org_name","");
  114 + hzMap.put("F_account_balance",String.valueOf(hz));
  115 + list.add(hzMap);
  116 +
  117 + map.put("list",list);
  118 + TemplateExportParams params = new TemplateExportParams("doc/hqzhAll.xls");
  119 + params.setColForEach(true);
  120 + Workbook workbook = ExcelExportUtil.exportExcel(params, map);
  121 + String filedisplay="正常账户可用余额.xls";
  122 + response.setContentType("APPLICATION/OCTET-STREAM");
  123 + response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
  124 + response.addHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(filedisplay, "utf-8") );
  125 + OutputStream os = null;
  126 + try {
  127 + os = response.getOutputStream();
  128 + workbook.write(os);
  129 + os.flush();
  130 + os.close();
  131 + } catch (Exception e) {
  132 + e.printStackTrace();
  133 + } finally {
  134 + if (os != null)
  135 + os.close();
  136 + }
  137 + }
  138 +
66 139 }
... ...
backend/chkpower/src/main/java/com/hotent/chkpower/dao/WCurrentDao.java
... ... @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 5 import org.apache.ibatis.annotations.Param;
6 6  
7 7 import java.util.ArrayList;
  8 +import java.util.HashMap;
8 9 import java.util.List;
9 10  
10 11 /**
... ... @@ -19,5 +20,11 @@ public interface WCurrentDao extends BaseMapper&lt;WCurrent&gt; {
19 20 List<WCurrent> getHistoricalDetail( @Param("orgIdList") ArrayList<String> orgIdList);
20 21  
21 22  
  23 + List<HashMap<String, String>> getCurrentAccountBalanceList( @Param("fOrgType") String fOrgType, @Param("fDate") String fDate);
  24 +
  25 +
  26 + List<String> getCurrentOrgTypeList();
  27 +
  28 +
22 29  
23 30 }
... ...
backend/chkpower/src/main/java/com/hotent/chkpower/manager/WCurrentManager.java
... ... @@ -3,6 +3,8 @@ package com.hotent.chkpower.manager;
3 3 import com.hotent.chkpower.model.WCurrent;
4 4 import com.hotent.base.manager.BaseManager;
5 5  
  6 +import java.time.LocalDateTime;
  7 +import java.util.HashMap;
6 8 import java.util.List;
7 9  
8 10 /**
... ... @@ -29,5 +31,14 @@ public interface WCurrentManager extends BaseManager&lt;WCurrent&gt; {
29 31 List<WCurrent> getHistoricalDetail();
30 32  
31 33  
  34 + List<HashMap<String, String>> getCurrentAccountBalanceList(String fOrgType, String fDate);
  35 +
  36 + /**
  37 + * 查询全部公司类
  38 + * @return
  39 + */
  40 + List<String> getCurrentOrgTypeList();
  41 +
  42 +
32 43  
33 44 }
... ...
backend/chkpower/src/main/java/com/hotent/chkpower/manager/impl/WCurrentManagerImpl.java
... ... @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
11 11  
12 12 import java.util.ArrayList;
13 13 import java.util.Collections;
  14 +import java.util.HashMap;
14 15 import java.util.List;
15 16 import javax.annotation.Resource;
16 17 import com.hotent.base.util.BeanUtils;
... ... @@ -47,4 +48,14 @@ public class WCurrentManagerImpl extends BaseManagerImpl&lt;WCurrentDao, WCurrent&gt;
47 48  
48 49 return data;
49 50 }
  51 +
  52 + @Override
  53 + public List<HashMap<String, String>> getCurrentAccountBalanceList(String fOrgType, String fDate) {
  54 + return baseMapper.getCurrentAccountBalanceList(fOrgType, fDate);
  55 + }
  56 +
  57 + @Override
  58 + public List<String> getCurrentOrgTypeList() {
  59 + return baseMapper.getCurrentOrgTypeList();
  60 + }
50 61 }
... ...
backend/chkpower/src/main/resources/doc/hqzhAll.xls 0 → 100644
No preview for this file type
backend/chkpower/src/main/resources/mapper/WCurrentMapper.xml
... ... @@ -99,4 +99,27 @@
99 99 and 1=2
100 100 </if>
101 101 </select>
  102 +
  103 + <select id="getCurrentAccountBalanceList" resultType="java.util.HashMap">
  104 + SELECT org.ID_ as F_org_id,org.NAME_ as F_org_name,acc.F_org_type,org.ORDER_NO_,YE.F_account_balance
  105 + FROM uc_org org
  106 + INNER JOIN w_bank_account acc ON acc.F_org_id= org.ID_
  107 + LEFT JOIN (
  108 + SELECT F_org_id, F_org_name,SUM(F_account_balance) AS F_account_balance
  109 + FROM w_current
  110 + WHERE F_date =#{fDate}
  111 + GROUP BY F_org_id, F_org_name
  112 + ) YE ON YE.F_org_id = acc.F_org_id
  113 + WHERE 1=1
  114 + AND acc.F_org_type= #{fOrgType}
  115 + ORDER BY org.ORDER_NO_ ASC
  116 + </select>
  117 +
  118 + <select id="getCurrentOrgTypeList" resultType="java.lang.String">
  119 + SELECT orgParams.VALUE_ AS orgType
  120 + FROM uc_org org
  121 + JOIN uc_org_params orgParams on orgParams.ORG_ID_= org.ID_
  122 + GROUP BY orgParams.VALUE_
  123 + ORDER BY MAX(org.ORDER_NO_) ASC
  124 + </select>
102 125 </mapper>
... ...