diff --git a/src/main/java/io/v/nutz/sickHelp/controller/SickHelpImportController.java b/src/main/java/io/v/nutz/sickHelp/controller/SickHelpImportController.java index 9502fe1..a82ffa2 100644 --- a/src/main/java/io/v/nutz/sickHelp/controller/SickHelpImportController.java +++ b/src/main/java/io/v/nutz/sickHelp/controller/SickHelpImportController.java @@ -128,7 +128,12 @@ public class SickHelpImportController { @Ok("json:full") @ViReturn public Object doImport(@Param("sickHelps") SickHelp[] sickHelps) { - sickHelpImportService.importData(Arrays.asList(sickHelps)); + List 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()) { diff --git a/src/main/java/io/v/nutz/sickHelp/controller/SickHelpMedicalInsController.java b/src/main/java/io/v/nutz/sickHelp/controller/SickHelpMedicalInsController.java index b425713..279fe24 100644 --- a/src/main/java/io/v/nutz/sickHelp/controller/SickHelpMedicalInsController.java +++ b/src/main/java/io/v/nutz/sickHelp/controller/SickHelpMedicalInsController.java @@ -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()) { diff --git a/src/main/java/io/v/nutz/sickHelp/service/impl/SickHelpImportServiceImpl.java b/src/main/java/io/v/nutz/sickHelp/service/impl/SickHelpImportServiceImpl.java index 764c7eb..444a094 100644 --- a/src/main/java/io/v/nutz/sickHelp/service/impl/SickHelpImportServiceImpl.java +++ b/src/main/java/io/v/nutz/sickHelp/service/impl/SickHelpImportServiceImpl.java @@ -108,15 +108,14 @@ public class SickHelpImportServiceImpl extends ViServiceImpl 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 implement @Aop(TransAop.READ_COMMITTED) public void importData(List 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 diff --git a/src/main/resources/views/platform/sickHelp/import/excel.html b/src/main/resources/views/platform/sickHelp/import/excel.html index 6ea38d2..c525be0 100644 --- a/src/main/resources/views/platform/sickHelp/import/excel.html +++ b/src/main/resources/views/platform/sickHelp/import/excel.html @@ -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) { diff --git a/target/classes/io/v/nutz/sickHelp/controller/SickHelpImportController.class b/target/classes/io/v/nutz/sickHelp/controller/SickHelpImportController.class index c67c2df..4225506 100644 Binary files a/target/classes/io/v/nutz/sickHelp/controller/SickHelpImportController.class and b/target/classes/io/v/nutz/sickHelp/controller/SickHelpImportController.class differ