医疗互助系统-补助台账:修复搜索异常;修复数据导入计算时报错数据也被导入等问题;

This commit is contained in:
2026-09-23 19:06:54 +08:00
parent c90c4619ee
commit 1c2630a338
5 changed files with 30 additions and 15 deletions
@@ -128,7 +128,12 @@ public class SickHelpImportController {
@Ok("json:full")
@ViReturn
public Object doImport(@Param("sickHelps") SickHelp[] sickHelps) {
sickHelpImportService.importData(Arrays.asList(sickHelps));
List<SickHelp> checkList = sickHelpImportService.checkData(Arrays.asList(sickHelps));
boolean hasErrorData = checkList.stream().anyMatch(v -> !Boolean.TRUE.equals(v.getValid()));
if (hasErrorData) {
return Result.error("存在校验不合格的数据,无法导入");
}
sickHelpImportService.importData(checkList);
return null;
}
@@ -223,8 +228,8 @@ public class SickHelpImportController {
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 (Boolean.TRUE.equals(v.getValid()) && medicalIns != null && v.getSubsidyMoney() != null) {
medicalIns.setCalc(v.getSubsidyMoney());
}
});
if (!insList.isEmpty()) {
@@ -464,8 +464,8 @@ public class SickHelpMedicalInsController {
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 (medicalIns != null && v.getSubsidyMoney() != null) {
medicalIns.setCalc(v.getSubsidyMoney());
}
});
if (!insList.isEmpty()) {
@@ -108,15 +108,14 @@ public class SickHelpImportServiceImpl extends ViServiceImpl<SickHelp> implement
sick.setValidMsg(sick.getValidMsg());
}
//本年是否有重复记录 这里只对新增的判断
if (StrUtil.isBlank(sick.getId())) {
//同工号、同年度已有记录时按更新处理
if (StrUtil.isBlank(sick.getId()) && sick.getYear() != null) {
Cnd duplicateCnd = Cnd.NEW();
duplicateCnd.and("loginName", "=", fundMember.getLoginName());
duplicateCnd.and("year", "=", sick.getYear());
int count = dao().count(SickHelp.class, duplicateCnd);
if (count > 0) {
sick.getValidMsg().add("数据库中该用户已存在" + sick.getYear() + "年记录");
sick.setValidMsg(sick.getValidMsg());
SickHelp oldData = dao().fetch(SickHelp.class, duplicateCnd);
if (oldData != null) {
sick.setId(oldData.getId());
}
}
@@ -170,9 +169,18 @@ public class SickHelpImportServiceImpl extends ViServiceImpl<SickHelp> implement
@Aop(TransAop.READ_COMMITTED)
public void importData(List<SickHelp> sickHelps) {
for (SickHelp sickHelp : sickHelps) {
sickHelp.setStateCode(SickHelpStateEnum.DTJ.getStateCode());
SickHelp oldData = dao().fetch(SickHelp.class, Cnd.where("loginName", "=", sickHelp.getLoginName())
.and("year", "=", sickHelp.getYear()));
if (oldData == null) {
sickHelp.setId(null);
sickHelp.setStateCode(SickHelpStateEnum.DTJ.getStateCode());
dao().insert(sickHelp);
} else {
sickHelp.setId(oldData.getId());
sickHelp.setStateCode(null);
dao().updateIgnoreNull(sickHelp);
}
}
dao().insertOrUpdate(sickHelps);
}
@Override
@@ -240,8 +240,8 @@ layout("/layouts/platform.html"){
async doImport() {
const hasErrorData = this.tableData.some(v => !v.valid)
if (hasErrorData) {
// this.notifyWarning('数据校验不合格,无法导入')
// return
this.notifyWarning('数据校验不合格,无法导入')
return
}
const resp = await $.post('/platform/sickHelp/import/doImport', {sickHelps: JSON.stringify(this.tableData)})
if (resp.code === 0) {
@@ -249,6 +249,8 @@ layout("/layouts/platform.html"){
this.globalYear = null
this.notifySuccess(resp.msg)
this.$refs.excelUpload.clearFiles()
} else {
this.notifyWarning(resp.msg)
}
},
globalYearChange(val) {