From 5a39de9794572330418915924278fc45368b0075 Mon Sep 17 00:00:00 2001 From: Paidax Date: Fri, 17 Oct 2025 08:43:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=9A=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apply/MemberApplyController.java | 10 ++++++ .../change/MemberChangeApplyController.java | 9 +++++ .../change/MemberChangeManageController.java | 6 ++++ .../member/service/MemberCommonService.java | 8 +++++ .../service/impl/MemberManageServiceImpl.java | 35 +++++++++++++++++++ .../staffmanage/member/info/board/index.html | 2 +- 6 files changed, 69 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyController.java index 54b0b67b..90899d98 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyController.java @@ -2,6 +2,7 @@ package com.budwk.app.zhgh.staffmanage.member.controller.apply; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.lang.Dict; +import cn.hutool.core.util.StrUtil; import com.budwk.app.base.annotation.SLog; import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.page.Pagination; @@ -72,6 +73,9 @@ public class MemberApplyController { @SaCheckPermission("member.apply.submit") @SLog(tag = "会员入会申请", msg = "保存申请,申请人: ${args[0].username}") public Result save(@Param("data") MemberApplyRecord memberApplyRecord) { + if (StrUtil.isBlank(memberApplyRecord.getId())) { + memberCommonService.validateApplyOrChangeIsDoing(null, "apply"); + } dao.insertOrUpdate(memberApplyRecord); return Result.success(); } @@ -83,6 +87,9 @@ public class MemberApplyController { @SaCheckPermission("member.apply.submit") @SLog(tag = "会员入会申请", msg = "提交申请,申请人: ${args[0].username}") public Result submit(@Param("data") MemberApplyRecord memberApplyRecord){ + if (StrUtil.isBlank(memberApplyRecord.getId())) { + memberCommonService.validateApplyOrChangeIsDoing(null, "apply"); + } // 开启流程实例 Dict args = Dict.create(); // 设置流程变量 @@ -119,6 +126,9 @@ public class MemberApplyController { @SaCheckPermission("member.apply.submit") @SLog(tag = "会员入会申请", msg = "重新提交申请,申请人: ${args[0].username}") public Result submitAgain(@Param("data") MemberApplyRecord memberApplyRecord, @Param("taskId") Long taskId) { + if (StrUtil.isBlank(memberApplyRecord.getId())) { + memberCommonService.validateApplyOrChangeIsDoing(null, "apply"); + } Dict dict = Dict.create(); // 设置流程变量 if ("HMC".equals(Globals.SchoolCode)) { diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeApplyController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeApplyController.java index 038e4c84..e813fca0 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeApplyController.java @@ -75,6 +75,9 @@ public class MemberChangeApplyController { @SaCheckPermission("member.apply.submit") @SLog(tag = "会员变更申请", msg = "保存申请,申请人: ${args[0].username}") public Result save(@Param("data") MemberChangeRecord memberChangeRecord) { + if (StrUtil.isBlank(memberChangeRecord.getId())) { + memberCommonService.validateApplyOrChangeIsDoing(null, "change"); + } // 校验是否有变更 memberCommonService.validateChangeAndSetBasicData(memberChangeRecord); dao.insertOrUpdate(memberChangeRecord); @@ -88,6 +91,9 @@ public class MemberChangeApplyController { @SaCheckPermission("member.apply.submit") @SLog(tag = "会员变更申请", msg = "提交申请,申请人: ${args[0].username}") public Result submit(@Param("data") MemberChangeRecord memberChangeRecord){ + if (StrUtil.isBlank(memberChangeRecord.getId())) { + memberCommonService.validateApplyOrChangeIsDoing(null, "change"); + } // 校验是否有变更 memberCommonService.validateChangeAndSetBasicData(memberChangeRecord); dao.insertOrUpdate(memberChangeRecord); @@ -118,6 +124,9 @@ public class MemberChangeApplyController { @SaCheckPermission("member.apply.submit") @SLog(tag = "会员变更申请", msg = "重新提交申请,申请人: ${args[0].username}") public Result submitAgain(@Param("data") MemberChangeRecord memberChangeRecord, @Param("taskId") Long taskId) { + if (StrUtil.isBlank(memberChangeRecord.getId())) { + memberCommonService.validateApplyOrChangeIsDoing(null, "change"); + } // 校验是否有变更 memberCommonService.validateChangeAndSetBasicData(memberChangeRecord); dao.insertOrUpdate(memberChangeRecord); diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java index 365f1634..9a7cc1e6 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java @@ -5,6 +5,7 @@ import cn.dev33.satoken.annotation.SaMode; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Dict; +import cn.hutool.core.util.StrUtil; import com.budwk.app.base.annotation.RepeatSubmit; import com.budwk.app.base.annotation.SLog; import com.budwk.app.base.constant.BpmProcessConstant; @@ -100,6 +101,11 @@ public class MemberChangeManageController { if (Lang.isEmpty(record)) { return Result.error("未获取到异动数据"); } + + if (StrUtil.isBlank(record.getId())) { + memberCommonService.validateApplyOrChangeIsDoing(record.getUserId(), "change"); + } + boolean schoolRoleBool = AuthUtil.hasRoleOr(RoleConstant.SCHOOL_UNION_CHAIRMAN.name(), RoleConstant.SCHOOL_UNION_MEMBER_ADMIN.name(), RoleConstant.SYSADMIN.name()); boolean branchRoleBool = AuthUtil.hasRoleOr(RoleConstant.BRANCH_UNION_CHAIRMAN.name(), RoleConstant.BRANCH_UNION_OPERATOR.name()); boolean groupRoleBool = AuthUtil.hasRole(RoleConstant.BRANCH_UNION_GROUP_LEADER.name()); diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberCommonService.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberCommonService.java index 167dcbe3..4b2879df 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberCommonService.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberCommonService.java @@ -107,4 +107,12 @@ public interface MemberCommonService extends BaseService { * @param record */ void validateChangeAndSetBasicData(MemberChangeRecord record, MemberChangeOrigin origin); + + + /** + * 校验申请和变更是否正在进行中 + * @param userId 用户id + * @param type 类型: apply or change + */ + void validateApplyOrChangeIsDoing(String userId, String type); } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberManageServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberManageServiceImpl.java index 012a8231..57d22fca 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberManageServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberManageServiceImpl.java @@ -10,6 +10,9 @@ import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.exception.BaseException; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.service.impl.BaseServiceImpl; +import com.budwk.app.flow.engine.FlowEngine; +import com.budwk.app.flow.entity.ProcessInstance; +import com.budwk.app.flow.enums.ProcessTaskStateEnum; import com.budwk.app.sys.models.*; import com.budwk.app.sys.services.SysDictService; import com.budwk.app.sys.services.SysRoleService; @@ -508,6 +511,38 @@ public class MemberManageServiceImpl extends BaseServiceImpl implement record.setApplyDateTime(DateUtil.date()); } + + /** + * 验证申请或变更是否正在进行 + * @param userId 用户id + * @param type 类型: apply or change + */ + @Override + public void validateApplyOrChangeIsDoing(String userId, String type) { + String businessNo = ""; + + Cnd cnd = Cnd.NEW(); + cnd.and("userId", "=", StrUtil.isNotBlank(userId) ? userId : SecurityUtil.getUserId()); + cnd.desc("applyDateTime"); + if ("apply".equals(type)) { + // 申请 + MemberApplyRecord apply = dao().fetch(MemberApplyRecord.class, cnd); + businessNo = apply.getId(); + } else { + // 变更 + MemberChangeRecord change = dao().fetch(MemberChangeRecord.class, cnd); + businessNo = change.getId(); + } + + int count = dao().count(ProcessInstance.class, Cnd.where("businessNo", "=", businessNo) + .and(ProcessInstance::getState, "=", ProcessTaskStateEnum.DOING.getCode())); + if (count > 0) { + throw new BaseException("您有%s流程还在进行中,请等待流程结束后再次操作".formatted("apply".equals(type) ? "申请" : "变更")); + } + + } + + private String booleanVerification(Object value) { // 检查是否为null或空字符串 if (ObjectUtil.isAllEmpty(value, "")) { diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/info/board/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/info/board/index.html index 36c3420d..2662ec58 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/info/board/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/info/board/index.html @@ -106,7 +106,7 @@ layout("/layouts/platform.html"){ .content-left .card .chart-container { flex: 1; - min-height: 200px; + /*min-height: 200px;*/ } /* 右侧表格样式 */