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

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