大病互助

This commit is contained in:
那些花儿
2025-04-21 14:44:01 +08:00
parent f2d174a8a7
commit 8b39a3b1ff
@@ -4,6 +4,7 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
import cn.afterturn.easypoi.excel.entity.vo.BaseEntityTypeConstants;
import cn.hutool.core.util.StrUtil;
import cn.wizzer.framework.base.Result;
import io.v.nutz.annontation.ViReturn;
@@ -31,6 +32,7 @@ import org.nutz.mvc.upload.UploadAdaptor;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -175,7 +177,7 @@ public class SickHelpListController {
@At("/exportData")
@Ok("void")
@ViReturn
public void exportData(Integer year, String unitName, HttpServletResponse response) {
public void exportData(Integer year, String unitName, Integer isMeetRequirements, Integer isAccept, HttpServletResponse response) {
// List<SickHelp> subsidyList = sickHelpListService.findSubsidyList(year, unitName);
Sql sql = Sqls.create("""
SELECT
@@ -200,29 +202,42 @@ public class SickHelpListController {
Cnd cnd = Cnd.NEW();
cnd.andEX("sick.year", "=", year);
cnd.andEX("sick.unitName", "=", unitName);
cnd.andEX("sick.isMeetRequirements", "=", isMeetRequirements);
if (isMeetRequirements != null && isMeetRequirements != 0) {
cnd.andEX("isAccept", "=", isAccept);
}
sql.setCondition(cnd);
List<NutMap> list = sickHelpListService.listMap(sql);
for (NutMap row : list) {
String userState = row.getString("userState", "");
String userState2 = row.getString("userState2", "");
for (int i = 0; i < list.size(); i++) {
list.get(i).put("index", i + 1);
String userState = list.get(i).getString("userState", "");
String userState2 = list.get(i).getString("userState2", "");
if (!userState.equals(userState2)) {
row.put("userState", userState2);
list.get(i).put("userState", userState2);
}
}
// 求和
list.stream().map(v -> v.getAs("subsidyMoney", BigDecimal.class)).reduce(BigDecimal::add).ifPresent(v -> {
list.add(NutMap.NEW().addv("selfPayMoney", "补助总额:").addv("subsidyMoney", v));
});
ExportParams exportParams = new ExportParams();
exportParams.setType(ExcelType.XSSF);
exportParams.setTitle(year + "教职工大病医疗互助金补助汇总表");
ArrayList<ExcelExportEntity> excelExportEntities = new ArrayList<>();
ExcelExportEntity indexExcelExportEntity = new ExcelExportEntity("序号", "index", 10);
indexExcelExportEntity.setType(BaseEntityTypeConstants.DOUBLE_TYPE);
excelExportEntities.add(indexExcelExportEntity);
excelExportEntities.add(new ExcelExportEntity("工资号", "loginName", 20));
excelExportEntities.add(new ExcelExportEntity("姓名", "userName", 20));
excelExportEntities.add(new ExcelExportEntity("单位", "unitName", 20));
excelExportEntities.add(new ExcelExportEntity("状态", "userState", 20));
excelExportEntities.add(new ExcelExportEntity("医保四项之和金额(元)", "medicalFourTotalMoney", 30));
excelExportEntities.add(new ExcelExportEntity("两项自付之和金额(元)", "selfPayTotalMoney", 30));
excelExportEntities.add(new ExcelExportEntity("学校二次报销金额(元)", "schoolSecondSubsidyMoney", 30));
excelExportEntities.add(new ExcelExportEntity("医保系统中个人自付、个人自理总金额(元)", "medicalFourTotalMoney", 30));
excelExportEntities.add(new ExcelExportEntity("医保系统中个人自付金额(元)", "selfPayTotalMoney", 30));
excelExportEntities.add(new ExcelExportEntity("学校补充医疗保险报销金额(元)", "schoolSecondSubsidyMoney", 30));
excelExportEntities.add(new ExcelExportEntity("个人支付金额(元)", "selfPayMoney", 20));
excelExportEntities.add(new ExcelExportEntity("补助金额(元)", "subsidyMoney", 20));
excelExportEntities.add(new ExcelExportEntity("未补助年份", "noSubsidyYear", 20));