diff --git a/backend/chkpower/src/main/java/com/hotent/chkpower/controller/WCurrentController.java b/backend/chkpower/src/main/java/com/hotent/chkpower/controller/WCurrentController.java index bb293a5..fe8bbb6 100644 --- a/backend/chkpower/src/main/java/com/hotent/chkpower/controller/WCurrentController.java +++ b/backend/chkpower/src/main/java/com/hotent/chkpower/controller/WCurrentController.java @@ -1,6 +1,9 @@ package com.hotent.chkpower.controller; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.TemplateExportParams; +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.RequestBody; @@ -15,7 +18,11 @@ import com.hotent.base.controller.BaseController; import com.hotent.chkpower.model.WCurrent; import com.hotent.chkpower.manager.WCurrentManager; -import java.util.List; +import javax.servlet.http.HttpServletResponse; +import java.io.OutputStream; +import java.math.BigDecimal; +import java.net.URLEncoder; +import java.util.*; /** * 活期账户 前端控制器 @@ -61,6 +68,72 @@ public class WCurrentController extends BaseController gslxList = baseService.getCurrentOrgTypeList(); + List> list = new ArrayList>(); + BigDecimal hz = new BigDecimal(0.00); + for (String orgType : gslxList) { + List> listData = baseService.getCurrentAccountBalanceList(orgType,date+" 00:00:00"); + + BigDecimal totalBalance = listData.stream() + .filter(d -> d.containsKey("F_account_balance")) // 确保键存在 + .map(d -> { + Object value = d.get("F_account_balance"); + if (value instanceof Number) { + return new BigDecimal(value.toString()); + } + return new BigDecimal(0.00); + }) + .filter(Objects::nonNull) // 确保值非空 + .reduce(BigDecimal.ZERO, BigDecimal::add); // 计算总和 + if (listData!=null && listData.size()>0){ + + HashMap hzMap = new HashMap<>(); + hzMap.put("F_org_type","小计"); + hzMap.put("F_org_name",""); + hzMap.put("F_account_balance",String.valueOf(totalBalance)); + hz=hz.add(totalBalance); + listData.add(hzMap); + } + list.addAll(listData); + } + HashMap hzMap = new HashMap<>(); + hzMap.put("F_org_type","汇总"); + hzMap.put("F_org_name",""); + hzMap.put("F_account_balance",String.valueOf(hz)); + list.add(hzMap); + + map.put("list",list); + TemplateExportParams params = new TemplateExportParams("doc/hqzhAll.xls"); + params.setColForEach(true); + Workbook workbook = ExcelExportUtil.exportExcel(params, map); + String filedisplay="正常账户可用余额.xls"; + response.setContentType("APPLICATION/OCTET-STREAM"); + response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); + response.addHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(filedisplay, "utf-8") ); + OutputStream os = null; + try { + os = response.getOutputStream(); + workbook.write(os); + os.flush(); + os.close(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (os != null) + os.close(); + } + } + } diff --git a/backend/chkpower/src/main/java/com/hotent/chkpower/dao/WCurrentDao.java b/backend/chkpower/src/main/java/com/hotent/chkpower/dao/WCurrentDao.java index f42ba1b..73189ef 100644 --- a/backend/chkpower/src/main/java/com/hotent/chkpower/dao/WCurrentDao.java +++ b/backend/chkpower/src/main/java/com/hotent/chkpower/dao/WCurrentDao.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; /** @@ -19,5 +20,11 @@ public interface WCurrentDao extends BaseMapper { List getHistoricalDetail( @Param("orgIdList") ArrayList orgIdList); + List> getCurrentAccountBalanceList( @Param("fOrgType") String fOrgType, @Param("fDate") String fDate); + + + List getCurrentOrgTypeList(); + + } diff --git a/backend/chkpower/src/main/java/com/hotent/chkpower/manager/WCurrentManager.java b/backend/chkpower/src/main/java/com/hotent/chkpower/manager/WCurrentManager.java index 4317c42..d4f6d13 100644 --- a/backend/chkpower/src/main/java/com/hotent/chkpower/manager/WCurrentManager.java +++ b/backend/chkpower/src/main/java/com/hotent/chkpower/manager/WCurrentManager.java @@ -3,6 +3,8 @@ package com.hotent.chkpower.manager; import com.hotent.chkpower.model.WCurrent; import com.hotent.base.manager.BaseManager; +import java.time.LocalDateTime; +import java.util.HashMap; import java.util.List; /** @@ -29,5 +31,14 @@ public interface WCurrentManager extends BaseManager { List getHistoricalDetail(); + List> getCurrentAccountBalanceList(String fOrgType, String fDate); + + /** + * 查询全部公司类 + * @return + */ + List getCurrentOrgTypeList(); + + } diff --git a/backend/chkpower/src/main/java/com/hotent/chkpower/manager/impl/WCurrentManagerImpl.java b/backend/chkpower/src/main/java/com/hotent/chkpower/manager/impl/WCurrentManagerImpl.java index 83515b1..2951ce2 100644 --- a/backend/chkpower/src/main/java/com/hotent/chkpower/manager/impl/WCurrentManagerImpl.java +++ b/backend/chkpower/src/main/java/com/hotent/chkpower/manager/impl/WCurrentManagerImpl.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.List; import javax.annotation.Resource; import com.hotent.base.util.BeanUtils; @@ -47,4 +48,14 @@ public class WCurrentManagerImpl extends BaseManagerImpl return data; } + + @Override + public List> getCurrentAccountBalanceList(String fOrgType, String fDate) { + return baseMapper.getCurrentAccountBalanceList(fOrgType, fDate); + } + + @Override + public List getCurrentOrgTypeList() { + return baseMapper.getCurrentOrgTypeList(); + } } diff --git a/backend/chkpower/src/main/resources/doc/hqzhAll.xls b/backend/chkpower/src/main/resources/doc/hqzhAll.xls new file mode 100644 index 0000000..040cdf3 Binary files /dev/null and b/backend/chkpower/src/main/resources/doc/hqzhAll.xls differ diff --git a/backend/chkpower/src/main/resources/mapper/WCurrentMapper.xml b/backend/chkpower/src/main/resources/mapper/WCurrentMapper.xml index 79c9875..4709a5d 100644 --- a/backend/chkpower/src/main/resources/mapper/WCurrentMapper.xml +++ b/backend/chkpower/src/main/resources/mapper/WCurrentMapper.xml @@ -99,4 +99,27 @@ and 1=2 + + + + -- libgit2 0.21.2