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