From 1c2630a338d5bd4db61240ab2f796a7cb9cd9e1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E5=AD=A6=E6=88=90?= <1274337408@qq.com> Date: Wed, 23 Sep 2026 19:06:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=BB=E7=96=97=E4=BA=92=E5=8A=A9=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F-=E8=A1=A5=E5=8A=A9=E5=8F=B0=E8=B4=A6=EF=BC=9A?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=90=9C=E7=B4=A2=E5=BC=82=E5=B8=B8=EF=BC=9B?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE=E5=AF=BC=E5=85=A5=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E6=97=B6=E6=8A=A5=E9=94=99=E6=95=B0=E6=8D=AE=E4=B9=9F?= =?UTF-8?q?=E8=A2=AB=E5=AF=BC=E5=85=A5=E7=AD=89=E9=97=AE=E9=A2=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SickHelpImportController.java | 11 +++++--- .../SickHelpMedicalInsController.java | 4 +-- .../impl/SickHelpImportServiceImpl.java | 24 ++++++++++++------ .../views/platform/sickHelp/import/excel.html | 6 +++-- .../controller/SickHelpImportController.class | Bin 12814 -> 13176 bytes 5 files changed, 30 insertions(+), 15 deletions(-) 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 c67c2df5c9b5affc9d2aab0a267d23f9cca7c47a..4225506d722c041656d0e7a4ab118fc099889d68 100644 GIT binary patch delta 4903 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 delta 4457 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 F{|Cc3!dw6V