From ca2635b60f2062bb8c4cef092a014f9c2ca90670 Mon Sep 17 00:00:00 2001 From: zhouhefeng Date: Thu, 3 Sep 2026 16:08:08 +0800 Subject: [PATCH] commit --- .../controller/WelfareListController.java | 17 ++++++++ .../welfare/service/WelfareListService.java | 8 ++++ .../service/impl/WelfareListServiceImpl.java | 26 ++++++++++++ .../platform/welfare/list/ListMange.html | 42 +++++++++++++++++++ 4 files changed, 93 insertions(+) diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareListController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareListController.java index 8e90984..1686cfb 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareListController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareListController.java @@ -220,6 +220,23 @@ public class WelfareListController { return null; } + /** + * 更新福利名单中的单位信息。 + * + * @param projectId 福利项目ID,前端必须传入当前选中的福利项目 + * @return Integer,表示实际更新的福利名单数量 + */ + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("welfare.list.mange") + public Object updateWelfareListUnitInfo(@Param("projectId") String projectId) { + if (StrUtil.isBlank(projectId)) { + return Result.error("请选择福利项目"); + } + return welfareListService.updateWelfareListUnitInfo(projectId); + } + @At @ViReturn diff --git a/src/main/java/io/v/nutz/zhgh/welfare/service/WelfareListService.java b/src/main/java/io/v/nutz/zhgh/welfare/service/WelfareListService.java index d1ce6e3..d8a2e0f 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/service/WelfareListService.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/service/WelfareListService.java @@ -29,5 +29,13 @@ public interface WelfareListService extends ViService { */ void joinWelfareList(String projectId, List userIds); + /** + * 将指定福利项目名单中的福利单位和二级单位,同步为用户主档案中的最新信息。 + * + * @param projectId 福利项目ID + * @return 实际更新的福利名单数量 + */ + int updateWelfareListUnitInfo(String projectId); + List getToNotWelfareUsers(String projectId); } diff --git a/src/main/java/io/v/nutz/zhgh/welfare/service/impl/WelfareListServiceImpl.java b/src/main/java/io/v/nutz/zhgh/welfare/service/impl/WelfareListServiceImpl.java index 374a928..9d92cee 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/service/impl/WelfareListServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/service/impl/WelfareListServiceImpl.java @@ -120,6 +120,32 @@ public class WelfareListServiceImpl extends ViServiceImpl implement // joinWelfareList(listMap(sql), projectId); } + /** + * 福利名单保存的是生成名单时的单位快照;人员调动后,通过用户ID关联用户主档案更新该快照。 + * 用户的福利单位或二级单位为空时不参与同步,避免将名单中已有的有效信息清空。 + * + * @param projectId 福利项目ID + * @return 实际更新的福利名单数量 + */ + @Override + @Aop(TransAop.READ_COMMITTED) + public int updateWelfareListUnitInfo(String projectId) { + Sql sql = Sqls.create(""" + UPDATE welfare_list wl + INNER JOIN sys_user u ON u.id = wl.userId + SET wl.welfareUnitId = u.$welfareUnitField, + wl.welfareSecondLevelUnitId = u.unitid + WHERE wl.projectId = @projectId + AND u.$welfareUnitField IS NOT NULL + AND u.$welfareUnitField != '' + AND u.unitid IS NOT NULL + AND u.unitid != '' + """); + sql.setVar("welfareUnitField", WelfareUnitMode.getMode().getField()); + sql.setParam("projectId", projectId); + return dao().execute(sql).getUpdateCount(); + } + @Override public List getToNotWelfareUsers(String projectId) { Sql sql = Sqls.create(""" diff --git a/src/main/resources/views/platform/welfare/list/ListMange.html b/src/main/resources/views/platform/welfare/list/ListMange.html index d055b8e..c2b086e 100644 --- a/src/main/resources/views/platform/welfare/list/ListMange.html +++ b/src/main/resources/views/platform/welfare/list/ListMange.html @@ -280,6 +280,17 @@ layout("/layouts/platform.html"){ > 导入快递单号 + + 修改福利信息 + { + this.$set(this, "updateWelfareListUnitInfoLoading", true) + $.post(loc() + "/updateWelfareListUnitInfo", { + projectId: this.pageForm.projectId + }).then((resp) => { + if (resp.code === 0) { + this.notifySuccess("福利信息修改成功,共更新" + resp.data + "条名单") + this.pageData() + } else { + this.notifyWarning(resp.msg) + } + }).always(() => { + this.$set(this, "updateWelfareListUnitInfoLoading", false) + }) + }).catch(() => { + }) + }, receiveAddressChange(address, optionIndex) { this.$set(this.welfareOptions[optionIndex], "receiveAddress", address) this.$forceUpdate()