Commit 22a583016be60e77dd60f8d3039f4a4ba2c1fdb1
1 parent
ff0bd3bf
Exists in
master
导出汇总表
Showing
6 changed files
with
126 additions
and
1 deletions
Show diff stats
backend/chkpower/src/main/java/com/hotent/chkpower/controller/WCurrentController.java
1 | package com.hotent.chkpower.controller; | 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 | import org.springframework.web.bind.annotation.GetMapping; | 7 | import org.springframework.web.bind.annotation.GetMapping; |
5 | import org.springframework.web.bind.annotation.PostMapping; | 8 | import org.springframework.web.bind.annotation.PostMapping; |
6 | import org.springframework.web.bind.annotation.RequestBody; | 9 | import org.springframework.web.bind.annotation.RequestBody; |
@@ -15,7 +18,11 @@ import com.hotent.base.controller.BaseController; | @@ -15,7 +18,11 @@ import com.hotent.base.controller.BaseController; | ||
15 | import com.hotent.chkpower.model.WCurrent; | 18 | import com.hotent.chkpower.model.WCurrent; |
16 | import com.hotent.chkpower.manager.WCurrentManager; | 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,6 +68,72 @@ public class WCurrentController extends BaseController<WCurrentManager, WCurrent | ||
61 | return new CommonResult(true, "成功", data); | 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,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||
5 | import org.apache.ibatis.annotations.Param; | 5 | import org.apache.ibatis.annotations.Param; |
6 | 6 | ||
7 | import java.util.ArrayList; | 7 | import java.util.ArrayList; |
8 | +import java.util.HashMap; | ||
8 | import java.util.List; | 9 | import java.util.List; |
9 | 10 | ||
10 | /** | 11 | /** |
@@ -19,5 +20,11 @@ public interface WCurrentDao extends BaseMapper<WCurrent> { | @@ -19,5 +20,11 @@ public interface WCurrentDao extends BaseMapper<WCurrent> { | ||
19 | List<WCurrent> getHistoricalDetail( @Param("orgIdList") ArrayList<String> orgIdList); | 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,6 +3,8 @@ package com.hotent.chkpower.manager; | ||
3 | import com.hotent.chkpower.model.WCurrent; | 3 | import com.hotent.chkpower.model.WCurrent; |
4 | import com.hotent.base.manager.BaseManager; | 4 | import com.hotent.base.manager.BaseManager; |
5 | 5 | ||
6 | +import java.time.LocalDateTime; | ||
7 | +import java.util.HashMap; | ||
6 | import java.util.List; | 8 | import java.util.List; |
7 | 9 | ||
8 | /** | 10 | /** |
@@ -29,5 +31,14 @@ public interface WCurrentManager extends BaseManager<WCurrent> { | @@ -29,5 +31,14 @@ public interface WCurrentManager extends BaseManager<WCurrent> { | ||
29 | List<WCurrent> getHistoricalDetail(); | 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,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||
11 | 11 | ||
12 | import java.util.ArrayList; | 12 | import java.util.ArrayList; |
13 | import java.util.Collections; | 13 | import java.util.Collections; |
14 | +import java.util.HashMap; | ||
14 | import java.util.List; | 15 | import java.util.List; |
15 | import javax.annotation.Resource; | 16 | import javax.annotation.Resource; |
16 | import com.hotent.base.util.BeanUtils; | 17 | import com.hotent.base.util.BeanUtils; |
@@ -47,4 +48,14 @@ public class WCurrentManagerImpl extends BaseManagerImpl<WCurrentDao, WCurrent> | @@ -47,4 +48,14 @@ public class WCurrentManagerImpl extends BaseManagerImpl<WCurrentDao, WCurrent> | ||
47 | 48 | ||
48 | return data; | 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 | } |
No preview for this file type
backend/chkpower/src/main/resources/mapper/WCurrentMapper.xml
@@ -99,4 +99,27 @@ | @@ -99,4 +99,27 @@ | ||
99 | and 1=2 | 99 | and 1=2 |
100 | </if> | 100 | </if> |
101 | </select> | 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 | </mapper> | 125 | </mapper> |