From a18f77cd6818a1898de7017d97ebbc8d99de28e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=8C=E5=85=88=E8=88=9C?= <2499071264@qq.com> Date: Wed, 23 Sep 2026 18:27:31 +0800 Subject: [PATCH 1/8] =?UTF-8?q?feat:=20=E7=A7=BB=E5=8A=A8=E7=AB=AF-?= =?UTF-8?q?=E5=8D=8F=E4=BC=9A=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apply/ClubUserJoinApprovalController.java | 120 +------------- .../h5controller/H5ClubAuditController.java | 38 +++++ .../club/service/ClubUserJoinService.java | 12 ++ .../service/impl/ClubUserJoinServiceImpl.java | 133 +++++++++++++++ .../zhgh/club/join/clubApproval/index.html | 34 +++- .../platform/zhghh5/club/audit/index.html | 152 +++++++++--------- 6 files changed, 290 insertions(+), 199 deletions(-) diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApprovalController.java b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApprovalController.java index 42bc1c7..1896ac1 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApprovalController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApprovalController.java @@ -1,32 +1,11 @@ package com.budwk.app.zhgh.club.controller.apply; import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.hutool.core.bean.BeanUtil; -import com.budwk.app.base.constant.RoleConstant; -import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; -import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum; -import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum; -import com.budwk.app.bpm.models.BpmProcessInstance; -import com.budwk.app.bpm.models.BpmProcessTask; import com.budwk.app.bpm.param.BpmTaskApprovalParam; -import com.budwk.app.bpm.service.BpmService; -import com.budwk.app.web.commons.auth.utils.AuthUtil; -import com.budwk.app.web.commons.auth.utils.SecurityUtil; -import com.budwk.app.web.controllers.open.commons.service.CommonService; -import com.budwk.app.zhgh.club.model.ClubUser; -import com.budwk.app.zhgh.club.model.ClubUserApply; import com.budwk.app.zhgh.club.param.ClubUserJoinPageForm; import com.budwk.app.zhgh.club.service.ClubUserJoinService; -import com.budwk.app.zhgh.club.vo.ClubUserJoinPageVo; import io.swagger.annotations.ApiOperation; -import org.nutz.aop.interceptor.ioc.TransAop; -import org.nutz.dao.Cnd; -import org.nutz.dao.Dao; -import org.nutz.dao.Sqls; -import org.nutz.dao.sql.Sql; -import org.nutz.dao.util.cri.Static; -import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.mvc.annotation.At; @@ -34,23 +13,14 @@ import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; import javax.validation.Valid; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; @IocBean @At("/platform/club/join/clubApproval") @Ok("json:full") public class ClubUserJoinApprovalController { - @Inject - private CommonService commonService; - @Inject - private BpmService bpmService; @Inject private ClubUserJoinService clubUserJoinService; - @Inject - private Dao dao; @At("") @SaCheckPermission("club.join.clubApproval") @@ -62,106 +32,22 @@ public class ClubUserJoinApprovalController { @At @SaCheckPermission("club.join.clubApproval") public Result pageData(@Valid ClubUserJoinPageForm pageForm, boolean approval) { - Sql sql = Sqls.create(""" - SELECT - info.*, - u.loginname AS loginName, - u.username AS userName, - u.sex, - u.unitName, - u.unionName, - club.clubName, - inst.id processInstanceId, - inst.processInstanceNodeId, - inst.processInstanceNodeName, - inst.processInstanceTaskIds, - inst.processInstanceStatus, - task.id processInstanceTaskId, - task.taskStatus processInstanceTaskStatus, - COUNT( nt.id ) OVER ( PARTITION BY task.id ) > 0 AS nextTaskIsComplete - FROM - bpm_process_task task - INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId - INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId - INNER JOIN club_user_apply info ON info.id = inst.processInstanceBusinessId - LEFT JOIN sys_club club ON club.id = info.clubId - LEFT JOIN vw_user u on u.id = info.userId - LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id - AND nt.taskStatus = 'COMPLETE' - $condition - """); - Cnd cnd = Cnd.NEW(); - if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){ - cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname()))); - } - - cnd.and("nd.nodeCode","=",20); - if(approval){ - cnd.and("task.taskStatus","=", BpmProcessTaskStatusEnum.COMPLETE); - }else{ - cnd.and("task.taskStatus","=",BpmProcessTaskStatusEnum.ACTIVE); - } - - cnd.andEX("YEAR(info.applyDate)","=",pageForm.getYear()); - cnd.and(Cnd.likeEX("u.userName", pageForm.getUserName())); - cnd.and(Cnd.likeEX("u.loginName", pageForm.getLoginName())); - cnd.andEX("u.unionId","=",pageForm.getUnionId()); - cnd.andEX("u.unitId","=",pageForm.getUnitId()); - cnd.andEX("info.clubId","=",pageForm.getClubId()); - sql.setCondition(cnd); - - Pagination pageVO = clubUserJoinService.listPageVO(pageForm, sql, ClubUserJoinPageVo.class); - return Result.success(pageVO); + return Result.success(clubUserJoinService.pageDataByClubApproval(pageForm, approval)); } @At @SaCheckPermission("club.join.clubApproval") @ApiOperation("审核") - @Aop(TransAop.READ_COMMITTED) public Result approval(@Valid @Param("approval") BpmTaskApprovalParam approvalParam){ -// approvalParam.getBpmTaskApprovalTypeEnum(); -// Map variables = BeanUtil.beanToMap(approvalParam); -// List assignments = new ArrayList<>(); -// if(approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)){ -// String approvalLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_CLUB_ADMIN); -// assignments.add(approvalLoginName); -// } -// bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, assignments); - - - Map variables = BeanUtil.beanToMap(approvalParam); - List assignments = new ArrayList<>(); - bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, assignments); - - if (approvalParam.getBpmTaskApprovalTypeEnum() == BpmTaskApprovalTypeEnum.PASS) { - String processInstanceBusinessId = approvalParam.getProcessInstanceBusinessId(); - ClubUserApply clubUserApply = dao.fetch(ClubUserApply.class, processInstanceBusinessId); - if (clubUserApply != null) { - ClubUser existUser = dao.fetch(ClubUser.class, Cnd.where("userId", "=", clubUserApply.getUserId()).and("clubId", "=", clubUserApply.getClubId())); - if (existUser == null) { - ClubUser clubUser = BeanUtil.copyProperties(clubUserApply, ClubUser.class); - dao.insert(clubUser); - } - } - } + clubUserJoinService.clubApproval(approvalParam); return Result.success(); } @At @SaCheckPermission("club.join.clubApproval") @ApiOperation("撤回") - @Aop(TransAop.READ_COMMITTED) public Result revoke(@Valid String taskId){ - bpmService.revokeTask(taskId); - - BpmProcessTask task = dao.fetch(BpmProcessTask.class, taskId); - String processInstanceId = task.getProcessInstanceId(); - BpmProcessInstance processInstance = dao.fetch(BpmProcessInstance.class, processInstanceId); - String businessId = processInstance.getProcessInstanceBusinessId(); - - ClubUserApply clubUserApply = dao.fetch(ClubUserApply.class, businessId); - dao.clear(ClubUser.class, Cnd.where(ClubUser::getUserId, "=", clubUserApply.getUserId()) - .and(ClubUser::getClubId, "=", clubUserApply.getClubId())); + clubUserJoinService.revokeClubApproval(taskId); return Result.success(); } diff --git a/src/main/java/com/budwk/app/zhgh/club/h5controller/H5ClubAuditController.java b/src/main/java/com/budwk/app/zhgh/club/h5controller/H5ClubAuditController.java index 321f89b..546ee2c 100644 --- a/src/main/java/com/budwk/app/zhgh/club/h5controller/H5ClubAuditController.java +++ b/src/main/java/com/budwk/app/zhgh/club/h5controller/H5ClubAuditController.java @@ -1,10 +1,18 @@ package com.budwk.app.zhgh.club.h5controller; import cn.dev33.satoken.annotation.SaCheckPermission; +import com.budwk.app.base.result.Result; +import com.budwk.app.bpm.param.BpmTaskApprovalParam; +import com.budwk.app.zhgh.club.param.ClubUserJoinPageForm; +import com.budwk.app.zhgh.club.service.ClubUserJoinService; import io.swagger.annotations.Api; +import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +import javax.validation.Valid; @IocBean @At("/platform/h5/club/audit") @@ -12,10 +20,40 @@ import org.nutz.mvc.annotation.Ok; @Api("h5入会审核") public class H5ClubAuditController { + @Inject + private ClubUserJoinService clubUserJoinService; + @At("") @Ok("beetl:/platform/zhghh5/club/audit/index.html") @SaCheckPermission("h5.club.audit") public void index() { } + + @At + @SaCheckPermission("h5.club.audit") + public Result pageData(@Valid ClubUserJoinPageForm pageForm, boolean approval, Integer auditType) { + Boolean approvalStatus = approval; + if (Integer.valueOf(1).equals(auditType)) { + approvalStatus = null; + } else if (auditType != null) { + approvalStatus = Integer.valueOf(2).equals(auditType); + } + return Result.success(clubUserJoinService.pageDataByClubApproval(pageForm, approvalStatus)); + } + + @At + @SaCheckPermission("h5.club.audit") + public Result doAudit(@Valid @Param("approval") BpmTaskApprovalParam approvalParam) { + clubUserJoinService.clubApproval(approvalParam); + return Result.success(); + } + + @At + @SaCheckPermission("h5.club.audit") + public Result revoke(@Valid String taskId){ + clubUserJoinService.revokeClubApproval(taskId); + return Result.success(); + } + } diff --git a/src/main/java/com/budwk/app/zhgh/club/service/ClubUserJoinService.java b/src/main/java/com/budwk/app/zhgh/club/service/ClubUserJoinService.java index e94a9d4..54b5b21 100644 --- a/src/main/java/com/budwk/app/zhgh/club/service/ClubUserJoinService.java +++ b/src/main/java/com/budwk/app/zhgh/club/service/ClubUserJoinService.java @@ -1,7 +1,19 @@ package com.budwk.app.zhgh.club.service; +import com.budwk.app.base.page.Pagination; +import com.budwk.app.bpm.param.BpmTaskApprovalParam; +import com.budwk.app.zhgh.club.param.ClubUserJoinPageForm; +import com.budwk.app.zhgh.club.vo.ClubUserJoinPageVo; import com.budwk.app.base.service.BaseService; import com.budwk.app.zhgh.club.model.ClubUserApply; public interface ClubUserJoinService extends BaseService { + + Pagination pageDataByClubApproval(ClubUserJoinPageForm pageForm, boolean approval); + + Pagination pageDataByClubApproval(ClubUserJoinPageForm pageForm, Boolean approval); + + void clubApproval(BpmTaskApprovalParam approvalParam); + + void revokeClubApproval(String taskId); } diff --git a/src/main/java/com/budwk/app/zhgh/club/service/impl/ClubUserJoinServiceImpl.java b/src/main/java/com/budwk/app/zhgh/club/service/impl/ClubUserJoinServiceImpl.java index ad74026..1e182e3 100644 --- a/src/main/java/com/budwk/app/zhgh/club/service/impl/ClubUserJoinServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/club/service/impl/ClubUserJoinServiceImpl.java @@ -1,14 +1,147 @@ package com.budwk.app.zhgh.club.service.impl; +import cn.hutool.core.bean.BeanUtil; +import com.budwk.app.base.constant.RoleConstant; +import com.budwk.app.base.page.Pagination; +import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum; +import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum; +import com.budwk.app.bpm.models.BpmProcessInstance; +import com.budwk.app.bpm.models.BpmProcessTask; +import com.budwk.app.bpm.param.BpmTaskApprovalParam; +import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.web.commons.auth.utils.AuthUtil; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.zhgh.club.model.ClubUser; +import com.budwk.app.zhgh.club.param.ClubUserJoinPageForm; +import com.budwk.app.zhgh.club.vo.ClubUserJoinPageVo; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.dao.util.cri.Static; +import org.nutz.ioc.aop.Aop; +import org.nutz.ioc.loader.annotation.Inject; import com.budwk.app.base.service.impl.BaseServiceImpl; import com.budwk.app.zhgh.club.model.ClubUserApply; import com.budwk.app.zhgh.club.service.ClubUserJoinService; import org.nutz.dao.Dao; import org.nutz.ioc.loader.annotation.IocBean; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + @IocBean(args = {"refer:dao"}) public class ClubUserJoinServiceImpl extends BaseServiceImpl implements ClubUserJoinService { + @Inject + private BpmService bpmService; + public ClubUserJoinServiceImpl(Dao dao) { super(dao); } + + @Override + public Pagination pageDataByClubApproval(ClubUserJoinPageForm pageForm, boolean approval) { + return pageDataByClubApproval(pageForm, Boolean.valueOf(approval)); + } + + @Override + public Pagination pageDataByClubApproval(ClubUserJoinPageForm pageForm, Boolean approval) { + Sql sql = Sqls.create(""" + SELECT + info.*, + u.loginname AS loginName, + u.username AS userName, + u.sex, + u.unitName, + u.unionName, + club.clubName, + inst.id processInstanceId, + inst.processInstanceNodeId, + inst.processInstanceNodeName, + inst.processInstanceTaskIds, + inst.processInstanceStatus, + task.id processInstanceTaskId, + task.taskStatus processInstanceTaskStatus, + COUNT( nt.id ) OVER ( PARTITION BY task.id ) > 0 AS nextTaskIsComplete + FROM + bpm_process_task task + INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId + INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId + INNER JOIN club_user_apply info ON info.id = inst.processInstanceBusinessId + LEFT JOIN sys_club club ON club.id = info.clubId + LEFT JOIN vw_user u on u.id = info.userId + LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id + AND nt.taskStatus = 'COMPLETE' + $condition + """); + Cnd cnd = Cnd.NEW(); + if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){ + cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname()))); + } + + cnd.and("nd.nodeCode","=",20); + if(approval == null){ + cnd.and("task.taskStatus", "in", List.of(BpmProcessTaskStatusEnum.ACTIVE.name(), BpmProcessTaskStatusEnum.COMPLETE.name())); + }else if(approval){ + cnd.and("task.taskStatus","=", BpmProcessTaskStatusEnum.COMPLETE); + }else{ + cnd.and("task.taskStatus","=",BpmProcessTaskStatusEnum.ACTIVE); + } + + cnd.andEX("YEAR(info.applyDate)","=",pageForm.getYear()); + cnd.and(Cnd.likeEX("u.userName", pageForm.getUserName())); + cnd.and(Cnd.likeEX("u.loginName", pageForm.getLoginName())); + cnd.andEX("u.unionId","=",pageForm.getUnionId()); + cnd.andEX("u.unitId","=",pageForm.getUnitId()); + cnd.andEX("info.clubId","=",pageForm.getClubId()); + sql.setCondition(cnd); + + return listPageVO(pageForm, sql, ClubUserJoinPageVo.class); + } + + @Override + @Aop(TransAop.READ_COMMITTED) + public void clubApproval(BpmTaskApprovalParam approvalParam) { +// approvalParam.getBpmTaskApprovalTypeEnum(); +// Map variables = BeanUtil.beanToMap(approvalParam); +// List assignments = new ArrayList<>(); +// if(approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)){ +// String approvalLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_CLUB_ADMIN); +// assignments.add(approvalLoginName); +// } +// bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, assignments); + + + Map variables = BeanUtil.beanToMap(approvalParam); + List assignments = new ArrayList<>(); + bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, assignments); + + if (approvalParam.getBpmTaskApprovalTypeEnum() == BpmTaskApprovalTypeEnum.PASS) { + String processInstanceBusinessId = approvalParam.getProcessInstanceBusinessId(); + ClubUserApply clubUserApply = dao().fetch(ClubUserApply.class, processInstanceBusinessId); + if (clubUserApply != null) { + ClubUser existUser = dao().fetch(ClubUser.class, Cnd.where("userId", "=", clubUserApply.getUserId()).and("clubId", "=", clubUserApply.getClubId())); + if (existUser == null) { + ClubUser clubUser = BeanUtil.copyProperties(clubUserApply, ClubUser.class); + dao().insert(clubUser); + } + } + } + } + + @Override + @Aop(TransAop.READ_COMMITTED) + public void revokeClubApproval(String taskId) { + bpmService.revokeTask(taskId); + + BpmProcessTask task = dao().fetch(BpmProcessTask.class, taskId); + String processInstanceId = task.getProcessInstanceId(); + BpmProcessInstance processInstance = dao().fetch(BpmProcessInstance.class, processInstanceId); + String businessId = processInstance.getProcessInstanceBusinessId(); + + ClubUserApply clubUserApply = dao().fetch(ClubUserApply.class, businessId); + dao().clear(ClubUser.class, Cnd.where(ClubUser::getUserId, "=", clubUserApply.getUserId()) + .and(ClubUser::getClubId, "=", clubUserApply.getClubId())); + } } diff --git a/src/main/resources/views/platform/zhgh/club/join/clubApproval/index.html b/src/main/resources/views/platform/zhgh/club/join/clubApproval/index.html index 73d84fc..9a6c385 100644 --- a/src/main/resources/views/platform/zhgh/club/join/clubApproval/index.html +++ b/src/main/resources/views/platform/zhgh/club/join/clubApproval/index.html @@ -46,14 +46,14 @@ layout("/layouts/platform.html"){ 未审核 - + - +