医疗互助系统-医保,报销数据导入:导入学校二次报销数据接口报错处理;导出汇总-补助计算金额字段值修复(四项之和减去学校二次报销金额后的结果带入‘江苏河海大学计算方法’计算一下);
This commit is contained in:
@@ -3,6 +3,7 @@ package io.v.nutz.sickHelp.constant;
|
||||
import cn.hutool.core.date.DateField;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import io.v.nutz.sickHelp.model.SickFundMember;
|
||||
import io.v.nutz.sickHelp.model.SickHelp;
|
||||
import lombok.Data;
|
||||
@@ -96,9 +97,20 @@ public class SickHelpApply {
|
||||
*/
|
||||
public int howManyYearsDidNotApply(String loginName, Integer year) {
|
||||
SickFundMember fundMember = dao.fetch(SickFundMember.class, Cnd.where("loginName", "=", loginName));
|
||||
if (fundMember == null || year == null || StrUtil.isBlank(fundMember.getMutualGoldStartTime())) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
//起扣年度
|
||||
DateTime mgsTime = DateUtil.parse(fundMember.getMutualGoldStartTime());
|
||||
DateTime mgsTime;
|
||||
try {
|
||||
mgsTime = DateUtil.parse(fundMember.getMutualGoldStartTime());
|
||||
} catch (Exception e) {
|
||||
return 0;
|
||||
}
|
||||
if (mgsTime == null) {
|
||||
return 0;
|
||||
}
|
||||
int mutualGoldStartYear = mgsTime.getField(DateField.YEAR);
|
||||
|
||||
//补助年度
|
||||
|
||||
@@ -209,11 +209,27 @@ public class SickHelpImportController {
|
||||
sickHelp.setMedicalFourTotalMoney(v.getSxzf());
|
||||
sickHelp.setSelfPayTotalMoney(v.getLxzf());
|
||||
sickHelp.setSchoolSecondSubsidyMoney(v.getEcbx());
|
||||
sickHelp.setSelfPayMoney(v.getCalc());
|
||||
BigDecimal selfPayMoney = v.getSxzf() != null && v.getEcbx() != null
|
||||
? v.getSxzf().subtract(v.getEcbx()) : null;
|
||||
sickHelp.setSelfPayMoney(selfPayMoney);
|
||||
return sickHelp;
|
||||
}).filter(v -> v.getSelfPayMoney() == null || (v.getSelfPayMoney() != null && v.getSelfPayMoney().compareTo(BigDecimal.valueOf(10000)) >= 0)).collect(Collectors.toList());
|
||||
}).filter(v -> v.getSelfPayMoney() == null || (v.getSelfPayMoney() != null && v.getSelfPayMoney().compareTo(BigDecimal.valueOf(10000)) > 0)).collect(Collectors.toList());
|
||||
|
||||
List<SickHelp> sickHelps = sickHelpImportService.checkData(collect);
|
||||
|
||||
Map<String, SickHelpMedicalIns> medicalInsMap = insList.stream()
|
||||
.filter(v -> StrUtil.isNotBlank(v.getLoginName()))
|
||||
.collect(Collectors.toMap(SickHelpMedicalIns::getLoginName, v -> v, (v1, v2) -> v1));
|
||||
insList.forEach(v -> v.setCalc(null));
|
||||
sickHelps.forEach(v -> {
|
||||
SickHelpMedicalIns medicalIns = medicalInsMap.get(v.getLoginName());
|
||||
if (Boolean.TRUE.equals(v.getValid()) && medicalIns != null && v.getNoLimitSubsidyMoney() != null) {
|
||||
medicalIns.setCalc(v.getNoLimitSubsidyMoney());
|
||||
}
|
||||
});
|
||||
if (!insList.isEmpty()) {
|
||||
dao.update(insList, "calc");
|
||||
}
|
||||
return Result.success(sickHelps);
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,9 @@ import cn.hutool.core.util.StrUtil;
|
||||
import cn.wizzer.framework.base.Result;
|
||||
import io.v.nutz.base.page.Pagination;
|
||||
import io.v.nutz.modules.models.PageForm;
|
||||
import io.v.nutz.sickHelp.model.SickHelp;
|
||||
import io.v.nutz.sickHelp.model.SickHelpMedicalIns;
|
||||
import io.v.nutz.sickHelp.service.SickHelpImportService;
|
||||
import io.v.nutz.sys.services.SysUserService;
|
||||
import io.v.nutz.util.ViTool;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
@@ -40,6 +42,7 @@ import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -52,6 +55,8 @@ public class SickHelpMedicalInsController {
|
||||
private Dao dao;
|
||||
@Inject
|
||||
private SysUserService sysUserService;
|
||||
@Inject
|
||||
private SickHelpImportService sickHelpImportService;
|
||||
|
||||
@At("")
|
||||
@RequiresPermissions("sickHelp.medicalIns")
|
||||
@@ -275,8 +280,7 @@ public class SickHelpMedicalInsController {
|
||||
continue;
|
||||
}
|
||||
ins.setEcbx(ecbx);
|
||||
BigDecimal subtract = ins.getSxzf().subtract(ecbx);
|
||||
ins.setCalc(subtract);
|
||||
ins.setCalc(null);
|
||||
successData.add(ins);
|
||||
success += 1;
|
||||
} else {
|
||||
@@ -289,6 +293,7 @@ public class SickHelpMedicalInsController {
|
||||
|
||||
if (!successData.isEmpty()) {
|
||||
dao.update(successData, "ecbx|calc");
|
||||
refreshCalc(list);
|
||||
}
|
||||
HashMap<String, Object> hashMap = new HashMap<>();
|
||||
hashMap.put("success", success);
|
||||
@@ -405,6 +410,7 @@ public class SickHelpMedicalInsController {
|
||||
@Ok("void")
|
||||
public Result exportXlsx(int year, HttpServletResponse response) {
|
||||
List<SickHelpMedicalIns> list = dao.query(SickHelpMedicalIns.class, Cnd.where("year", "=", year));
|
||||
refreshCalc(list);
|
||||
|
||||
List<ExcelExportEntity> entities = new ArrayList<>();
|
||||
entities.add(new ExcelExportEntity("工号", "loginName", 20));
|
||||
@@ -432,5 +438,40 @@ public class SickHelpMedicalInsController {
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出前按补助规则重新计算补助计算额度。
|
||||
*/
|
||||
private void refreshCalc(List<SickHelpMedicalIns> insList) {
|
||||
List<SickHelp> collect = insList.stream().map(v -> {
|
||||
SickHelp sickHelp = new SickHelp();
|
||||
sickHelp.setYear(v.getYear());
|
||||
sickHelp.setLoginName(v.getLoginName());
|
||||
sickHelp.setUserName(v.getUserName());
|
||||
sickHelp.setMedicalFourTotalMoney(v.getSxzf());
|
||||
sickHelp.setSelfPayTotalMoney(v.getLxzf());
|
||||
sickHelp.setSchoolSecondSubsidyMoney(v.getEcbx());
|
||||
BigDecimal selfPayMoney = v.getSxzf() != null && v.getEcbx() != null
|
||||
? v.getSxzf().subtract(v.getEcbx()) : null;
|
||||
sickHelp.setSelfPayMoney(selfPayMoney);
|
||||
return sickHelp;
|
||||
}).filter(v -> v.getSelfPayMoney() == null || v.getSelfPayMoney().compareTo(BigDecimal.valueOf(10000)) > 0)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
List<SickHelp> sickHelps = sickHelpImportService.checkData(collect);
|
||||
Map<String, SickHelpMedicalIns> medicalInsMap = insList.stream()
|
||||
.filter(v -> StrUtil.isNotBlank(v.getLoginName()))
|
||||
.collect(Collectors.toMap(SickHelpMedicalIns::getLoginName, v -> v, (v1, v2) -> v1));
|
||||
insList.forEach(v -> v.setCalc(null));
|
||||
sickHelps.forEach(v -> {
|
||||
SickHelpMedicalIns medicalIns = medicalInsMap.get(v.getLoginName());
|
||||
if (Boolean.TRUE.equals(v.getValid()) && medicalIns != null && v.getNoLimitSubsidyMoney() != null) {
|
||||
medicalIns.setCalc(v.getNoLimitSubsidyMoney());
|
||||
}
|
||||
});
|
||||
if (!insList.isEmpty()) {
|
||||
dao.update(insList, "calc");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -283,7 +283,7 @@ layout("/layouts/platform.html"){
|
||||
$.post(loc() + '/checkEc').then(res => {
|
||||
if (res.code === 0) {
|
||||
|
||||
this.$confirm('计算补助金额将会自动过滤掉补助计算金额小于10000元的记录, 是否继续?', '提示', {
|
||||
this.$confirm('计算补助金额将会自动过滤掉补助计算金额不超过10000元的记录, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user