From dde0dc9610f4716753efd4134b55958e8b98039b Mon Sep 17 00:00:00 2001 From: "@jyuhsin" <729757837@qq.com> Date: Mon, 25 Aug 2025 10:26:01 +0800 Subject: [PATCH] commit --- .../base/service/impl/BaseServiceImpl.java | 10 +- .../app/sys/controller/SysUserController.java | 2 +- .../controller/YearPlanController.java | 31 +- .../controller/YearSummaryController.java | 31 +- .../apply/ClubUserClubListController.java | 107 +++++++ .../apply/ClubUserJoinApplyController.java | 56 ++-- .../apply/ClubUserJoinApprovalController.java | 100 +++--- .../apply/ClubUserJoinCommonController.java | 56 ---- .../apply/ClubUserJoinMineController.java | 87 +++-- .../ClubUserJoinSchoolApprovalController.java | 115 +++---- .../apply/ClubUserMineClubController.java | 16 +- .../applyJoin/ClubUserApplyController.java | 174 ---------- .../ClubUserClubAuditController.java | 67 ---- .../common/ClubCommonController.java | 10 +- .../evaluate/ClubEvaluateApplyController.java | 74 +++-- .../ClubEvaluateCommonController.java | 55 ---- .../evaluate/ClubEvaluateMineController.java | 19 +- .../ClubEvaluateSchoolAuditController.java | 26 +- .../examine/ClubExamineApplyController.java | 61 ++-- .../examine/ClubExamineMineController.java | 20 +- .../ClubExamineSchoolAuditController.java | 29 +- .../infoManage/ClubInfoManageController.java | 56 +--- .../register/ClubMyApplyController.java | 31 +- .../register/ClubRegistApplyController.java | 37 ++- .../ClubRegisterCommonController.java | 29 -- .../register/ClubSchoolReplyController.java | 98 +----- .../statistics/ClubStatisticsController.java | 34 +- .../interceptor/ClubRegisterInterceptor.java | 58 ++++ .../interceptor/ClubUserJoinInterceptor.java | 33 ++ .../impl/SysClubEvaluateServiceImpl.java | 109 ++++--- .../impl/SysClubExamineServiceImpl.java | 120 ++++--- .../impl/SysClubInfoManageServiceImpl.java | 37 +-- .../club/service/impl/SysClubServiceImpl.java | 173 +++++----- .../app/zhgh/club/vo/ClubEvaluatePageVo.java | 21 +- .../app/zhgh/club/vo/ClubEvaluateVo.java | 2 - .../app/zhgh/club/vo/ClubExaminePageVo.java | 21 +- .../app/zhgh/club/vo/ClubRegisterPageVo.java | 24 +- .../zhgh/club/vo/ClubUserCommonPageVo.java | 3 +- .../app/zhgh/club/vo/ClubUserJoinPageVo.java | 37 +-- .../app/zhgh/club/vo/ClubUserJoinVo.java | 11 +- .../RecuperationLineSelectController.java | 13 +- .../zhgh/club/applyJoin/apply/index.html | 302 ------------------ .../zhgh/club/applyJoin/clubAudit/index.html | 213 ------------ .../zhgh/club/common/clubInfoComponent.js | 147 +++++---- .../zhgh/club/common/clubRoleConstant.js | 10 +- .../platform/zhgh/club/common/clubUserJoin.js | 189 ++++++----- .../zhgh/club/evaluate/apply/index.html | 19 +- .../zhgh/club/evaluate/common/evaluateInfo.js | 150 +++++---- .../zhgh/club/evaluate/mine/index.html | 53 ++- .../zhgh/club/evaluate/schoolAudit/index.html | 110 ++++--- .../zhgh/club/examine/apply/index.html | 198 +----------- .../zhgh/club/examine/common/examineInfo.js | 110 ++++--- .../zhgh/club/examine/mine/index.html | 64 ++-- .../zhgh/club/examine/schoolAudit/index.html | 117 +++---- .../club/infoManage/manage/clubInfoManage.js | 53 +-- .../zhgh/club/infoManage/manage/index.html | 4 +- .../infoManage/manage/schoolClubManage.js | 4 +- .../platform/zhgh/club/join/apply/index.html | 11 +- .../zhgh/club/join/clubApproval/index.html | 121 +++---- .../platform/zhgh/club/join/list/index.html | 156 +++++++++ .../platform/zhgh/club/join/mine/index.html | 82 ++--- .../zhgh/club/join/mineclub/index.html | 64 ++-- .../club/join/schoolUnionApproval/index.html | 121 +++---- .../zhgh/club/register/apply/index.html | 8 +- .../zhgh/club/register/mine/index.html | 52 ++- .../zhgh/club/register/schoolReply/index.html | 120 +++---- .../platform/zhgh/club/statistics/index.html | 6 +- .../staffbenefit/condolence/common/info.js | 12 +- .../staffbenefit/condolence/mine/index.html | 5 +- .../recuperation/lineSelect/index.html | 8 +- 70 files changed, 1863 insertions(+), 2739 deletions(-) create mode 100644 src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserClubListController.java delete mode 100644 src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinCommonController.java delete mode 100644 src/main/java/com/budwk/app/zhgh/club/controller/applyJoin/ClubUserApplyController.java delete mode 100644 src/main/java/com/budwk/app/zhgh/club/controller/applyJoin/ClubUserClubAuditController.java delete mode 100644 src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateCommonController.java delete mode 100644 src/main/java/com/budwk/app/zhgh/club/controller/register/ClubRegisterCommonController.java create mode 100644 src/main/java/com/budwk/app/zhgh/club/interceptor/ClubRegisterInterceptor.java create mode 100644 src/main/java/com/budwk/app/zhgh/club/interceptor/ClubUserJoinInterceptor.java delete mode 100644 src/main/resources/views/platform/zhgh/club/applyJoin/apply/index.html delete mode 100644 src/main/resources/views/platform/zhgh/club/applyJoin/clubAudit/index.html create mode 100644 src/main/resources/views/platform/zhgh/club/join/list/index.html diff --git a/src/main/java/com/budwk/app/base/service/impl/BaseServiceImpl.java b/src/main/java/com/budwk/app/base/service/impl/BaseServiceImpl.java index 69253000..e02fe83f 100644 --- a/src/main/java/com/budwk/app/base/service/impl/BaseServiceImpl.java +++ b/src/main/java/com/budwk/app/base/service/impl/BaseServiceImpl.java @@ -916,8 +916,14 @@ public class BaseServiceImpl extends EntityService implements BaseService< List list = sql.getList(Map.class); try { - C c = clazz.getDeclaredConstructor().newInstance(); - List voList = list.stream().map(map -> BeanUtil.fillBeanWithMapIgnoreCase(map, c, true)).toList(); + List voList = list.stream().map(map -> { + try { + C instance = clazz.getDeclaredConstructor().newInstance(); + return BeanUtil.fillBeanWithMapIgnoreCase(map, instance, true); + } catch (Exception e) { + throw new RuntimeException("Failed to instantiate or fill bean", e); + } + }).toList(); return new Pagination(pageNumber, pageSize, pager.getRecordCount(), voList); } catch (Exception e) { throw new RuntimeException(e); diff --git a/src/main/java/com/budwk/app/sys/controller/SysUserController.java b/src/main/java/com/budwk/app/sys/controller/SysUserController.java index df26448b..67fae5b8 100644 --- a/src/main/java/com/budwk/app/sys/controller/SysUserController.java +++ b/src/main/java/com/budwk/app/sys/controller/SysUserController.java @@ -356,7 +356,7 @@ public class SysUserController { if (StrUtil.isBlank(pathname)) { } - Sys_menu menu = sysMenuService.fetch(Cnd.where(Sys_menu::getHref, "=", pathname)); + Sys_menu menu = sysMenuService.fetch(Cnd.where(Sys_menu::getHref, "like", pathname + "%")); if (menu == null) { return Result.success(); } diff --git a/src/main/java/com/budwk/app/zhgh/activity/planSummary/controller/YearPlanController.java b/src/main/java/com/budwk/app/zhgh/activity/planSummary/controller/YearPlanController.java index c4317535..e7cee1ed 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/planSummary/controller/YearPlanController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/planSummary/controller/YearPlanController.java @@ -187,33 +187,20 @@ public class YearPlanController { try (ZipOutputStream zos = new ZipOutputStream(response.getOutputStream())) { for (String url : urlList) { - String fileId = extractFileId(url); - if(StrUtil.isNotBlank(fileId)) { - Sys_file file = dao.fetch(Sys_file.class, fileId); - byte[] bytes = SysFileMinIoUtil.getFileBytes(file.getBucket(), file.getStoragePath()); - if(bytes == null || bytes.length == 0){ - continue; - } - - String entryName = file.getName(); - zos.putNextEntry(new ZipEntry(entryName)); - zos.write(bytes); - zos.closeEntry(); + Sys_file file = dao.fetch(Sys_file.class, Cnd.where(Sys_file::getDownloadPath, "=", url)); + byte[] bytes = SysFileMinIoUtil.getFileBytes(file.getBucket(), file.getStoragePath()); + if(bytes == null || bytes.length == 0){ + continue; } + + String entryName = file.getName(); + zos.putNextEntry(new ZipEntry(entryName)); + zos.write(bytes); + zos.closeEntry(); } } catch (Exception e) { response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "生成ZIP文件失败"); e.printStackTrace(); } } - - public static String extractFileId(String url) { - if (url == null) return null; - Pattern pattern = Pattern.compile("[?&]id=([^&]*)"); - Matcher matcher = pattern.matcher(url); - if (matcher.find()) { - return matcher.group(1); - } - return null; - } } diff --git a/src/main/java/com/budwk/app/zhgh/activity/planSummary/controller/YearSummaryController.java b/src/main/java/com/budwk/app/zhgh/activity/planSummary/controller/YearSummaryController.java index 29ca4263..9485b86d 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/planSummary/controller/YearSummaryController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/planSummary/controller/YearSummaryController.java @@ -168,33 +168,20 @@ public class YearSummaryController { try (ZipOutputStream zos = new ZipOutputStream(response.getOutputStream())) { for (String url : urlList) { - String fileId = extractFileId(url); - if(StrUtil.isNotBlank(fileId)) { - Sys_file file = dao.fetch(Sys_file.class, fileId); - byte[] bytes = SysFileMinIoUtil.getFileBytes(file.getBucket(), file.getStoragePath()); - if(bytes == null || bytes.length == 0){ - continue; - } - - String entryName = file.getName(); - zos.putNextEntry(new ZipEntry(entryName)); - zos.write(bytes); - zos.closeEntry(); + Sys_file file = dao.fetch(Sys_file.class, Cnd.where(Sys_file::getDownloadPath, "=", url)); + byte[] bytes = SysFileMinIoUtil.getFileBytes(file.getBucket(), file.getStoragePath()); + if(bytes == null || bytes.length == 0){ + continue; } + + String entryName = file.getName(); + zos.putNextEntry(new ZipEntry(entryName)); + zos.write(bytes); + zos.closeEntry(); } } catch (Exception e) { response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "生成ZIP文件失败"); e.printStackTrace(); } } - - public static String extractFileId(String url) { - if (url == null) return null; - Pattern pattern = Pattern.compile("[?&]id=([^&]*)"); - Matcher matcher = pattern.matcher(url); - if (matcher.find()) { - return matcher.group(1); - } - return null; - } } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserClubListController.java b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserClubListController.java new file mode 100644 index 00000000..9c91c0ca --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserClubListController.java @@ -0,0 +1,107 @@ +package com.budwk.app.zhgh.club.controller.apply; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.util.StrUtil; +import com.budwk.app.base.page.Pagination; +import com.budwk.app.base.param.PageForm; +import com.budwk.app.base.result.Result; +import com.budwk.app.base.utils.PageUtil; +import com.budwk.app.flow.entity.ProcessInstance; +import com.budwk.app.flow.enums.ProcessInstanceStateEnum; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.zhgh.club.model.SysClub; +import com.budwk.app.zhgh.club.service.SysClubService; +import com.budwk.app.zhgh.club.service.SysClubUserService; +import com.budwk.app.zhgh.club.vo.ClubRegisterVo; +import lombok.extern.slf4j.Slf4j; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.dao.util.cri.Static; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Strings; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; + +import javax.validation.Valid; +import java.util.List; + +/** + * @Author: JyuHsin + * @Date: 2024/8/7 10:14 + * @Version: v1.0.0 + * @Description: TODO + **/ +@Slf4j +@IocBean +@Ok("json") +@At("/platform/club/join/list") +public class ClubUserClubListController { + + @Inject + private SysClubService sysClubService; + @Inject + private SysClubUserService sysClubUserService; + + @At("") + @Ok("beetl:/platform/zhgh/club/join/list/index.html") + @SaCheckPermission("club.join.list") + public void index() { + } + + @At + @SaCheckPermission("club.join.list") + public Result pageData(@Valid PageForm pageForm, Boolean hasJoin, String clubName, String clubType) { + Cnd cnd = Cnd.NEW(); + cnd.and("dismiss", "=", false); + cnd.andEX("clubType", "=", clubType); + if (StrUtil.isNotBlank(clubName)) { + cnd.and("clubName", "like", "%" + clubName + "%"); + } + if (hasJoin) { + cnd.and(new Static("club.id in (SELECT clubId from club_user WHERE userId = '%s')".formatted(SecurityUtil.getUserId()))); + } else { + cnd.and(new Static("club.id not in (SELECT clubId from club_user WHERE userId = '%s')".formatted(SecurityUtil.getUserId()))); + } + if (Strings.isNotBlank(pageForm.getPageOrderName()) && Strings.isNotBlank(pageForm.getPageOrderBy())) { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } else { + cnd.asc("club.clubCode"); + } + Pagination allClubWithPage = sysClubService.getAllClubWithPage(pageForm, cnd); + return Result.success(allClubWithPage); + } + + @At + @SaCheckPermission("club.join.list") + public Result getCount() { + // 获取所有协会 + List list = sysClubService.query(); + // 获取审核通过的 + List instanceList = sysClubService.dao().query( + ProcessInstance.class, + Cnd.where(ProcessInstance::getBusinessNo, "in", list.stream().map(SysClub::getId).toList()) + .and(ProcessInstance::getState, "=", ProcessInstanceStateEnum.FINISHED.getCode()) + ); + // 获取id + List passList = instanceList.stream().map(ProcessInstance::getBusinessNo).toList(); + + int hasJoinCount = sysClubService.count(Cnd.NEW().and("dismiss", "=", false) + .and("id", "in", passList) + .and(new Static("id in (SELECT clubId from club_user WHERE userId = '%s')".formatted(SecurityUtil.getUserId())))); + + int noJoinCount = sysClubService.count(Cnd.NEW().and("dismiss", "=", false) + .and("id", "in", passList) + .and(new Static("id not in (SELECT clubId from club_user WHERE userid = '%s')".formatted(SecurityUtil.getUserId())))); + NutMap nutMap = new NutMap().setv("hasJoinCount", hasJoinCount).setv("noJoinCount", noJoinCount); + return Result.success(nutMap); + } + + @At + @SaCheckPermission("club.join.list") + public Result findOne(@Valid String id) { + ClubRegisterVo clubRegisterVo = sysClubService.findOne(id); + return Result.success(clubRegisterVo); + } +} diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApplyController.java b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApplyController.java index 678ef9e4..1ecba748 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApplyController.java @@ -1,14 +1,22 @@ package com.budwk.app.zhgh.club.controller.apply; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.lang.Dict; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.budwk.app.base.annotation.SLog; import com.budwk.app.base.constant.BpmProcessConstant; import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.result.Result; import com.budwk.app.bpm.enums.BpmProcessInstanceStatusEnum; import com.budwk.app.bpm.models.BpmProcessInstance; import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.flow.constant.FlowConst; +import com.budwk.app.flow.engine.FlowEngine; +import com.budwk.app.flow.entity.ProcessInstance; +import com.budwk.app.flow.entity.ProcessTask; +import com.budwk.app.flow.enums.ProcessInstanceStateEnum; +import com.budwk.app.flow.enums.ProcessSubmitTypeEnum; import com.budwk.app.sys.models.Sys_user; import com.budwk.app.sys.models.Sys_user_role; import com.budwk.app.sys.services.SysMsgService; @@ -45,16 +53,14 @@ public class ClubUserJoinApplyController { @Inject private CommonService commonService; @Inject - private BpmService bpmService; - @Inject private SysMsgService sysMsgService; + @Inject + private FlowEngine flowEngine; @At("") @SaCheckPermission("club.join.apply") @Ok("beetl:/platform/zhgh/club/join/apply/index.html") - public void index() { - - } + public void index() {} @At @ApiOperation("详情") @@ -78,7 +84,6 @@ public class ClubUserJoinApplyController { """).setParam("id", id); sql.setCallback(Sqls.callback.map()); dao.execute(sql); -// ClubUserApply clubUser = dao.fetch(ClubUserApply.class, id); return Result.success(sql.getResult()); } @@ -86,37 +91,31 @@ public class ClubUserJoinApplyController { @ApiOperation("提交") @SaCheckPermission("club.join.apply") @Aop(TransAop.READ_COMMITTED) + @SLog(type = "clubUser", tag = "申请协会", msg = "申请协会") public Result submit(ClubUserApply clubUserApply) { ClubUserApply userApply = dao.fetch(ClubUserApply.class, Cnd.where("userId", "=", clubUserApply.getUserId()).and("clubId", "=", clubUserApply.getClubId()).and("mode", "=", 1).desc(ClubUserApply::getApplyDate)); if (ObjectUtil.isNotEmpty(userApply) && StrUtil.isBlank(userApply.getId())) { - BpmProcessInstance processInstance = dao.fetch(BpmProcessInstance.class, Cnd.where(BpmProcessInstance::getProcessInstanceBusinessId, "=", userApply.getId())); - if (!processInstance.getProcessInstanceStatus().equals(BpmProcessInstanceStatusEnum.COMPLETED.name())) { + ProcessInstance processInstance = dao.fetch(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "=", userApply.getId())); + if (!processInstance.getState().equals(ProcessInstanceStateEnum.FINISHED.getCode())) { return Result.error("您有该协会的申请记录尚未完成,请到我的申请里查看!"); } } - //查询协会操作员 - String operatorLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.CLUB_OPERATOR, Cnd.where(Sys_user_role::getClubId, "=", clubUserApply.getClubId())); - String presidentLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.CLUB_PRESIDENT, Cnd.where(Sys_user_role::getClubId, "=", clubUserApply.getClubId())); - if (StrUtil.isAllBlank(operatorLoginName, presidentLoginName)) { - return Result.error("该协会未配置审批人,请联系校工会!"); - } - clubUserApply.setRoleCode(RoleConstant.CLUB_MEMBER.name()); clubUserApply.setMode(true); clubUserApply.setApplyDate(new Date()); dao.insertOrUpdate(clubUserApply); - Sys_user applyUser = dao.fetch(Sys_user.class, clubUserApply.getUserId()); + // 开启流程实例 + Dict args = Dict.create(); + args.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.APPLY.getCode()); + args.set(FlowConst.FORM_DATA, clubUserApply); + ProcessInstance instance = flowEngine.startProcessInstanceByKey("XHRH", clubUserApply.getId(), SecurityUtil.getUserId(), args); - if (StrUtil.isNotBlank(operatorLoginName)) { - bpmService.startSubmitProcessInstance(BpmProcessConstant.CLUB_JOIN.name(), applyUser.getUsername() + "的申请", clubUserApply.getId(), List.of(operatorLoginName), null); - // 发送消息 - sysMsgService.sendMsg(operatorLoginName, "协会入会审核", "您有一条新的协会入会申请待处理,请登录暖心工会进行审批。", SecurityUtil.getUserId()); - }else{ - bpmService.startSubmitProcessInstance(BpmProcessConstant.CLUB_JOIN.name(), applyUser.getUsername() + "的申请", clubUserApply.getId(), List.of(presidentLoginName), null); - // 发送消息 - sysMsgService.sendMsg(presidentLoginName, "协会入会审核", "您有一条新的协会入会申请待处理,请登录暖心工会进行审批。", SecurityUtil.getUserId()); + // 自动完成第一个申请任务 + List doingTaskList = flowEngine.processTaskService().getDoingTaskList(instance.getId(), null); + for (ProcessTask task : doingTaskList) { + flowEngine.executeProcessTask(task.getId(), SecurityUtil.getUserId(), args); } return Result.success(); } @@ -132,16 +131,13 @@ public class ClubUserJoinApplyController { } if (ObjectUtil.isNotEmpty(clubUser)) { - { - return Result.error("请勿重复申请!"); - } + return Result.error("请勿重复申请!"); } - BpmProcessInstance processInstance = dao.fetch(BpmProcessInstance.class, Cnd.where(BpmProcessInstance::getProcessInstanceBusinessId, "=", userApply.getId())); - if (!processInstance.getProcessInstanceStatus().equals(BpmProcessInstanceStatusEnum.COMPLETED.name())) { + ProcessInstance processInstance = dao.fetch(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "=", userApply.getId())); + if (!processInstance.getState().equals(ProcessInstanceStateEnum.FINISHED.getCode())) { return Result.error("您有该协会的申请记录尚未完成,请到我的申请里查看!"); } return Result.success(); } - } 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 2cd9baa3..bf51f50e 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 @@ -2,13 +2,16 @@ package com.budwk.app.zhgh.club.controller.apply; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; 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.base.utils.PageUtil; import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum; import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum; import com.budwk.app.bpm.param.BpmTaskApprovalParam; import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.flow.enums.ProcessTaskStateEnum; 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; @@ -41,16 +44,12 @@ public class ClubUserJoinApprovalController { @Inject private CommonService commonService; @Inject - private BpmService bpmService; - @Inject private ClubUserJoinService clubUserJoinService; @At("") @SaCheckPermission("club.join.clubApproval") @Ok("beetl:/platform/zhgh/club/join/clubApproval/index.html") - public void index() { - - } + public void index() {} @At @SaCheckPermission("club.join.clubApproval") @@ -64,71 +63,62 @@ public class ClubUserJoinApprovalController { 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 + ins.id AS instanceId, + ins.businessNo, + ins.state instanceState, + ins.variable instanceVariable, + ins.processDefineId instanceProcessDefineId, + t.id taskId, + t.taskName AS taskKey, + t.displayName taskName, + t.taskType, + t.performType taskPerformType, + t.taskState, + t.finishTime, + t.taskParentId, + t.variable taskVariable, + IFNULL(GROUP_CONCAT(DISTINCT nt.displayName),'结束') curTaskName, + IF(rt.id IS NOT NULL, 1, 0) AS canRevoke 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 + wf_process_task t + LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId + LEFT JOIN club_user_apply info ON info.id = ins.businessNo + LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id + LEFT JOIN wf_process_task nt ON nt.processInstanceId = ins.id AND nt.taskState = 10 + LEFT JOIN wf_process_task rt ON rt.processInstanceId = ins.id AND rt.taskParentId = t.id AND rt.taskState = 10 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.and("t.taskName", "=", "1625a683-3890-4788-95b7-cab8240f6731"); + cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); cnd.andEX("YEAR(info.applyDate)","=",pageForm.getYear()); cnd.and(Cnd.likeEX("info.userName", pageForm.getUserName())); cnd.and(Cnd.likeEX("info.loginName", pageForm.getLoginName())); cnd.andEX("info.unionId","=",pageForm.getUnionId()); cnd.andEX("info.unitId","=",pageForm.getUnitId()); - sql.setCondition(cnd); + if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){ + cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname()))); + } + + if (approval) { + cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); + } else { + cnd.and("t.taskState", "=", ProcessTaskStateEnum.DOING.getCode()); + } + if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.desc("info.applyDate"); + } else { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } + cnd.groupBy("t.id"); + + sql.setCondition(cnd); Pagination pageVO = clubUserJoinService.listPageVO(pageForm, sql, ClubUserJoinPageVo.class); return Result.success(pageVO); } - - @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); - return Result.success(); - } - - @At - @SaCheckPermission("club.join.clubApproval") - @ApiOperation("撤回") - @Aop(TransAop.READ_COMMITTED) - public Result revoke(@Valid String taskId){ - bpmService.revokeTask(taskId); - return Result.success(); - } - } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinCommonController.java b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinCommonController.java deleted file mode 100644 index 3e8f6df1..00000000 --- a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinCommonController.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.budwk.app.zhgh.club.controller.apply; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import com.budwk.app.base.constant.BpmProcessConstant; -import com.budwk.app.base.result.Result; -import com.budwk.app.bpm.service.BpmService; -import com.budwk.app.zhgh.club.service.ClubUserJoinService; -import com.budwk.app.zhgh.club.vo.ClubUserJoinVo; -import io.swagger.annotations.ApiOperation; -import org.nutz.dao.Sqls; -import org.nutz.dao.sql.Sql; -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 javax.validation.Valid; - -@IocBean -@At("/platform/club/join/common") -@Ok("json:full") -public class ClubUserJoinCommonController { - - @Inject - private ClubUserJoinService clubUserJoinService; - @Inject - private BpmService bpmService; - - @At - @ApiOperation("申请详情") - @SaCheckPermission("club") - public Result info(@Valid String id) { - Sql sql = Sqls.create(""" - SELECT - cua.*, - u.loginname AS loginName, - u.username AS userName, - u.sex, - u.mobile, - u.unitName, - u.unionName, - u.technicalTitle, - u.education, - u.academicDegree - FROM - club_user_apply cua - LEFT JOIN vw_user u ON u.id = cua.userId - WHERE cua.id = @id - """); - sql.setParam("id",id); - ClubUserJoinVo clubUserJoinVo = clubUserJoinService.fetchVO(sql, ClubUserJoinVo.class); - clubUserJoinVo.setNodeTasks(bpmService.getNodeTasks(BpmProcessConstant.CLUB_JOIN, id)); - return Result.success(clubUserJoinVo); - } - -} diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinMineController.java b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinMineController.java index 17883bd8..839297d4 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinMineController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinMineController.java @@ -1,16 +1,21 @@ package com.budwk.app.zhgh.club.controller.apply; import cn.dev33.satoken.annotation.SaCheckPermission; +import com.budwk.app.base.annotation.SLog; +import com.budwk.app.base.constant.BpmProcessConstant; import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.param.PageForm; import com.budwk.app.base.result.Result; import com.budwk.app.base.service.BaseService; import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.flow.engine.FlowEngine; 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.model.ClubUserApply; +import com.budwk.app.zhgh.club.service.ClubUserJoinService; +import com.budwk.app.zhgh.club.vo.ClubUserJoinVo; import io.swagger.annotations.ApiOperation; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; @@ -33,16 +38,14 @@ public class ClubUserJoinMineController { @Inject private Dao dao; @Inject - private BaseService baseService; + private FlowEngine flowEngine; @Inject - private BpmService bpmService; + private ClubUserJoinService clubUserJoinService; @At("") @SaCheckPermission("club.join.mine") @Ok("beetl:/platform/zhgh/club/join/mine/index.html") - public void index() { - - } + public void index() {} @At @SaCheckPermission("club.join.mine") @@ -53,34 +56,39 @@ public class ClubUserJoinMineController { club.clubName, u.loginname as loginName, u.username as userName, - inst.processInstanceNodeId, - inst.processInstanceNodeCode, - inst.processInstanceNodeName, - inst.processInstanceTaskIds, - inst.processInstanceStatus, - ( - SELECT - count( 1 ) > 0 - FROM - bpm_process_task - WHERE - prevTaskId = ( SELECT id FROM bpm_process_task WHERE processInstanceId = inst.id AND processTaskNodeCode IN ( 10, 40,70 ) ORDER BY createdAt DESC LIMIT 1 ) - AND taskStatus = 'COMPELTE' - ) AS nextTaskIsComplete + ins.id AS instanceId, + ins.businessNo, + ins.state instanceState, + ins.variable instanceVariable, + ins.processDefineId instanceProcessDefineId, + t.id taskId, + t.taskName AS taskKey, + t.displayName taskName, + t.taskType, + t.performType taskPerformType, + t.taskState, + t.finishTime, + t.taskParentId, + t.variable taskVariable, + IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke, + (select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask') AS startTaskId FROM club_user_apply info LEFT JOIN sys_user u on u.id = info.userId LEFT JOIN sys_club club ON club.id = info.clubId - LEFT JOIN bpm_process_instance inst ON inst.processInstanceBusinessId = info.id + LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id + LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10 + LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id $condition """); Cnd cnd = Cnd.NEW(); if (!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())) { - cnd.and("inst.processInstanceInitiatorLoginName", "=", SecurityUtil.getUserLoginname()); + cnd.and("info.userId", "=", SecurityUtil.getUserId()); } cnd.groupBy("info.id"); + cnd.desc("info.applyDate"); sql.setCondition(cnd); - Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + Pagination pagination = clubUserJoinService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); return Result.success(pagination); } @@ -88,22 +96,37 @@ public class ClubUserJoinMineController { @SaCheckPermission("club.join.apply") @ApiOperation("删除") @Aop(TransAop.READ_COMMITTED) + @SLog(type = "clubUser", tag = "删除协会入会", msg = "删除协会入会") public Result delete(@Valid String id) { dao.delete(ClubUserApply.class, id); dao.delete(ClubUser.class, id); - bpmService.deleteInstance(id); + flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id); return Result.success(); } - @At - @SaCheckPermission("club.join.apply") - @ApiOperation("撤销") - @Aop(TransAop.READ_COMMITTED) - public Result revokeApply(@Valid String id) { - bpmService.revokeApply(id); - return Result.success(); + @ApiOperation("申请详情") + @SaCheckPermission("club") + public Result info(@Valid String id) { + Sql sql = Sqls.create(""" + SELECT + cua.*, + u.loginname AS loginName, + u.username AS userName, + u.sex, + u.mobile, + u.unitName, + u.unionName, + u.technicalTitle, + u.education, + u.academicDegree + FROM + club_user_apply cua + LEFT JOIN vw_user u ON u.id = cua.userId + WHERE cua.id = @id + """); + sql.setParam("id",id); + ClubUserJoinVo clubUserJoinVo = clubUserJoinService.fetchVO(sql, ClubUserJoinVo.class); + return Result.success(clubUserJoinVo); } - - } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinSchoolApprovalController.java b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinSchoolApprovalController.java index 291d96f6..72782421 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinSchoolApprovalController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinSchoolApprovalController.java @@ -2,15 +2,18 @@ package com.budwk.app.zhgh.club.controller.apply; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; 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.base.utils.PageUtil; 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.flow.enums.ProcessTaskStateEnum; 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; @@ -34,6 +37,7 @@ import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; import javax.validation.Valid; +import java.util.List; import java.util.Map; @IocBean @@ -44,8 +48,6 @@ public class ClubUserJoinSchoolApprovalController { @Inject private CommonService commonService; @Inject - private BpmService bpmService; - @Inject private ClubUserJoinService clubUserJoinService; @Inject private Dao dao; @@ -53,9 +55,7 @@ public class ClubUserJoinSchoolApprovalController { @At("") @SaCheckPermission("club.join.schoolUnionApproval") @Ok("beetl:/platform/zhgh/club/join/schoolUnionApproval/index.html") - public void index() { - - } + public void index() {} @At @SaCheckPermission("club.join.schoolUnionApproval") @@ -69,81 +69,62 @@ public class ClubUserJoinSchoolApprovalController { 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 + ins.id AS instanceId, + ins.businessNo, + ins.state instanceState, + ins.variable instanceVariable, + ins.processDefineId instanceProcessDefineId, + t.id taskId, + t.taskName AS taskKey, + t.displayName taskName, + t.taskType, + t.performType taskPerformType, + t.taskState, + t.finishTime, + t.taskParentId, + t.variable taskVariable, + IFNULL(GROUP_CONCAT(DISTINCT nt.displayName),'结束') curTaskName, + IF(rt.id IS NOT NULL, 1, 0) AS canRevoke 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 + wf_process_task t + LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId + LEFT JOIN club_user_apply info ON info.id = ins.businessNo + LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id + LEFT JOIN wf_process_task nt ON nt.processInstanceId = ins.id AND nt.taskState = 10 + LEFT JOIN wf_process_task rt ON rt.processInstanceId = ins.id AND rt.taskParentId = t.id AND rt.taskState = 10 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", "=", 50); - if (approval) { - cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.COMPLETE); - } else { - cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.ACTIVE); - } + + cnd.and("t.taskName", "=", "6af3b155-60db-47f4-a418-c72e8333f5b4"); + cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); + cnd.andEX("YEAR(info.applyDate)", "=", pageForm.getYear()); cnd.and(Cnd.likeEX("info.userName", pageForm.getUserName())); cnd.and(Cnd.likeEX("info.loginName", pageForm.getLoginName())); cnd.andEX("info.unionId", "=", pageForm.getUnionId()); cnd.andEX("info.unitId", "=", pageForm.getUnitId()); - sql.setCondition(cnd); + if (!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())) { + cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname()))); + } + + if (approval) { + cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); + } else { + cnd.and("t.taskState", "=", ProcessTaskStateEnum.DOING.getCode()); + } + if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.desc("info.applyDate"); + } else { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } + cnd.groupBy("t.id"); + + sql.setCondition(cnd); Pagination pageVO = clubUserJoinService.listPageVO(pageForm, sql, ClubUserJoinPageVo.class); return Result.success(pageVO); } - - @At - @SaCheckPermission("club.join.schoolUnionApproval") - @ApiOperation("审核") - @Aop(TransAop.READ_COMMITTED) - public Result approval(@Valid @Param("approval") BpmTaskApprovalParam approvalParam) { - approvalParam.getBpmTaskApprovalTypeEnum(); - Map variables = BeanUtil.beanToMap(approvalParam); - bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, null); - - if (approvalParam.getBpmTaskApprovalTypeEnum() == BpmTaskApprovalTypeEnum.PASS) { - String processInstanceBusinessId = approvalParam.getProcessInstanceBusinessId(); - ClubUserApply clubUserApply = dao.fetch(ClubUserApply.class, processInstanceBusinessId); - ClubUser clubUser = BeanUtil.copyProperties(clubUserApply, ClubUser.class); - dao.insert(clubUser); - } - return Result.success(); - } - - @At - @SaCheckPermission("club.join.schoolUnionApproval") - @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())); - - return Result.success(); - } - } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserMineClubController.java b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserMineClubController.java index 6688d873..d08c5dba 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserMineClubController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserMineClubController.java @@ -6,6 +6,7 @@ import com.budwk.app.base.result.Result; import com.budwk.app.base.service.BaseService; import com.budwk.app.bpm.service.BpmService; import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.zhgh.club.model.ClubUser; import com.budwk.app.zhgh.club.model.SysClubUser; import com.budwk.app.zhgh.club.param.ClubUserPageForm; import org.nutz.dao.Cnd; @@ -30,8 +31,6 @@ public class ClubUserMineClubController { private Dao dao; @Inject private BaseService baseService; - @Inject - private BpmService bpmService; @At("") @SaCheckPermission("club.join.mine.club") @@ -41,11 +40,11 @@ public class ClubUserMineClubController { @At @SaCheckPermission("club.join.mine.club") public Result pageData(@Valid ClubUserPageForm pageForm) { - List query = dao.query(SysClubUser.class, Cnd.where("userId", "=", SecurityUtil.getUserId()).groupBy("clubId")); + List query = dao.query(ClubUser.class, Cnd.where("userId", "=", SecurityUtil.getUserId()).groupBy("clubId")); if (Lang.isEmpty(query)) { return Result.success(); } - List clubIds = query.stream().map(SysClubUser::getClubId).toList(); + List clubIds = query.stream().map(ClubUser::getClubId).toList(); Sql sql = Sqls.create(""" SELECT club.*, @@ -55,11 +54,9 @@ public class ClubUserMineClubController { FROM sys_club club LEFT JOIN club_user uc ON club.id = uc.clubId - LEFT JOIN club_user presidentCu ON presidentCu.clubId = club.id - AND presidentCu.roleCode = 'CLUB_PRESIDENT' + LEFT JOIN club_user presidentCu ON presidentCu.clubId = club.id AND presidentCu.roleCode = 'CLUB_PRESIDENT' LEFT JOIN sys_user presidentUser ON presidentUser.id = presidentCu.userId - LEFT JOIN sys_club_user secretaryCu ON secretaryCu.clubId = club.id - AND secretaryCu.roleCode = 'CLUB_SECRETARY' + LEFT JOIN club_user secretaryCu ON secretaryCu.clubId = club.id AND secretaryCu.roleCode = 'CLUB_SECRETARY' LEFT JOIN sys_user secretaryUser ON secretaryUser.id = secretaryCu.userId $condition """); @@ -73,8 +70,6 @@ public class ClubUserMineClubController { return Result.success(pagination); } - - @At @SaCheckPermission("club.join.mine.club") public Result getClubUsers(@Valid String clubId) { @@ -98,6 +93,7 @@ public class ClubUserMineClubController { LEFT JOIN sys_role role ON role.`code` = scu.rolecode WHERE scu.clubId = @clubId + ORDER BY FIELD( scu.roleCode, 'CLUB_PRESIDENT', 'CLUB_VICE_PRESIDENT', 'CLUB_SECRETARY', 'CLUB_VICE_SECRETARY','CLUB_OPERATOR', 'CLUB_MEMBER' ) """).setParam("clubId", clubId); return Result.success(baseService.listMap(sql)); } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/applyJoin/ClubUserApplyController.java b/src/main/java/com/budwk/app/zhgh/club/controller/applyJoin/ClubUserApplyController.java deleted file mode 100644 index db6d9da8..00000000 --- a/src/main/java/com/budwk/app/zhgh/club/controller/applyJoin/ClubUserApplyController.java +++ /dev/null @@ -1,174 +0,0 @@ -package com.budwk.app.zhgh.club.controller.applyJoin; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.hutool.core.date.DateUtil; -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; -import com.budwk.app.base.param.PageForm; -import com.budwk.app.base.result.Result; -import com.budwk.app.base.utils.PageUtil; -import com.budwk.app.sys.models.Sys_user; -import com.budwk.app.web.commons.auth.utils.SecurityUtil; -import com.budwk.app.zhgh.club.model.SysClub; -import com.budwk.app.zhgh.club.model.SysClubUser; -import com.budwk.app.zhgh.club.service.SysClubService; -import com.budwk.app.zhgh.club.service.SysClubUserService; -import com.budwk.app.zhgh.club.vo.ClubRegisterVo; -import lombok.extern.slf4j.Slf4j; -import org.nutz.aop.interceptor.ioc.TransAop; -import org.nutz.dao.Chain; -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 org.nutz.ioc.loader.annotation.IocBean; -import org.nutz.lang.Strings; -import org.nutz.lang.util.NutMap; -import org.nutz.mvc.annotation.At; -import org.nutz.mvc.annotation.Ok; - -import javax.validation.Valid; -import java.util.List; -import java.util.Objects; - -/** - * @Author: JyuHsin - * @Date: 2024/8/7 10:14 - * @Version: v1.0.0 - * @Description: TODO - **/ -@Slf4j -@IocBean -@Ok("json") -@At("/platform/club/applyJoin/apply") -public class ClubUserApplyController { - - @Inject - private SysClubService sysClubService; - - @Inject - private SysClubUserService sysClubUserService; - - @At("") - @Ok("beetl:/platform/zhgh/club/applyJoin/apply/index.html") - @SaCheckPermission("club.applyJoin.apply") - public void index() { - } - - @At - @SaCheckPermission("club.applyJoin.apply") - public Result pageData(@Valid PageForm pageForm, Boolean hasJoin, String clubName, String clubType) { - Cnd cnd = Cnd.NEW(); - cnd.and("dismiss", "=", false); - cnd.andEX("clubType", "=", clubType); - if (StrUtil.isNotBlank(clubName)) { - cnd.and("clubName", "like", "%" + clubName + "%"); - } - if (hasJoin) { - cnd.and(new Static("club.id in (SELECT clubId from club_user WHERE userId = '%s')".formatted(SecurityUtil.getUserId()))); - } else { - cnd.and(new Static("club.id not in (SELECT clubId from club_user WHERE userId = '%s')".formatted(SecurityUtil.getUserId()))); - } - if (Strings.isNotBlank(pageForm.getPageOrderName()) && Strings.isNotBlank(pageForm.getPageOrderBy())) { - cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); - } else { - cnd.asc("club.clubCode"); - } - Pagination allClubWithPage = sysClubService.getAllClubWithPage(pageForm, cnd); - return Result.success(allClubWithPage); - } - - @At - @SaCheckPermission("club.applyJoin.apply") - public Result getCount() { - int hasJoinCount = sysClubService.dao().count(SysClub.class, Cnd.NEW().and("dismiss", "=", false) - //.and("state", "=", ClubRegistAuditState.SCHOOL_PASS) - .and(new Static("id in (SELECT clubId from club_user WHERE userId = '%s')".formatted(SecurityUtil.getUserId())))); - int noJoinCount = sysClubService.dao().count(SysClub.class, Cnd.NEW().and("dismiss", "=", false) - //.and("state", "=", ClubRegistAuditState.SCHOOL_PASS) - .and(new Static("id not in (SELECT clubId from club_user WHERE userid = '%s')".formatted(SecurityUtil.getUserId())))); - NutMap nutMap = new NutMap().setv("hasJoinCount", hasJoinCount).setv("noJoinCount", noJoinCount); - return Result.success(nutMap); - } - - @At - @SaCheckPermission("club.applyJoin.apply") - public Result getInClubByCurUser() { - String id = Objects.requireNonNull(SecurityUtil.getUserId()); - Sys_user sysUser = sysClubService.dao().fetch(Sys_user.class, id); - if (sysUser.getUserState() != null && !List.of("在职", "在岗").contains(sysUser.getUserState())) { - return Result.error("只支持在职教职工申请加入协会"); - } - Sql sql = Sqls.create(""" - select - club.* - from sys_club club - left join club_user cu on club.id=cu.clubId - where - cu.userId=@userId - group by cu.clubId - """).setParam("userId", id); - List list = sysClubService.listMap(sql); - return Result.success(list); - } - - @At - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("club.applyJoin.apply") - @SLog(type = "clubApplyJoin", tag = "提交入会申请", msg = "提交入会申请") - public Result submit(@Valid String id) { - - sysClubService.dao().clear(SysClubUser.class, Cnd.where("clubId", "=", id).and("userId", "=", SecurityUtil.getUserId())); - - SysClubUser sysClubUser = new SysClubUser(); - sysClubUser.setClubId(id); - sysClubUser.setUserId(SecurityUtil.getUserId()); - sysClubUser.setJoinTime(DateUtil.now()); - sysClubUser.setRoleCode(RoleConstant.CLUB_MEMBER.name()); - sysClubUser.setStatus(1); - sysClubUser.setPayed(false); - sysClubUser.setIsNormal(true); - sysClubUser.setGiveMoney(false); - sysClubService.dao().insert(sysClubUser); - - return Result.success(); - } - - @At - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("club.applyJoin.apply") - @SLog(type = "clubApplyJoin", tag = "撤销入会申请", msg = "撤销入会申请") - public Result revocation(@Valid String id) { - sysClubService.dao().clear(SysClubUser.class, Cnd.where("clubId", "=", id).and("userId", "=", SecurityUtil.getUserId())); - return Result.success(); - } - - @At - @SaCheckPermission("club.applyJoin.apply") - public Result findOne(@Valid String id) { - ClubRegisterVo clubRegisterVo = sysClubService.findOne(id); - return Result.success(clubRegisterVo); - } - - @At - @SaCheckPermission("club.applyJoin.apply") - @SLog(type = "clubApplyJoin", tag = "提交退会申请", msg = "提交退会申请") - public Result exitClub(@Valid String id) { - sysClubUserService.update(Chain.make("exitStatus", 1) - , Cnd.where("clubId", "=", id).and("userId", "=", SecurityUtil.getUserId())); - return Result.success(); - } - - @At - @SaCheckPermission("club.applyJoin.apply") - @SLog(type = "clubApplyJoin", tag = "撤销退会申请", msg = "撤销退会申请") - public Result cancelExitClub(@Valid String id) { - sysClubUserService.update(Chain.make("exitStatus", null) - , Cnd.where("clubId", "=", id).and("userId", "=", SecurityUtil.getUserId())); - return Result.success(); - } -} diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/applyJoin/ClubUserClubAuditController.java b/src/main/java/com/budwk/app/zhgh/club/controller/applyJoin/ClubUserClubAuditController.java deleted file mode 100644 index 186f45cb..00000000 --- a/src/main/java/com/budwk/app/zhgh/club/controller/applyJoin/ClubUserClubAuditController.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.budwk.app.zhgh.club.controller.applyJoin; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import com.budwk.app.base.annotation.SLog; -import com.budwk.app.base.page.Pagination; -import com.budwk.app.base.result.Result; -import com.budwk.app.zhgh.club.model.SysClub; -import com.budwk.app.zhgh.club.param.ClubUserPageForm; -import com.budwk.app.zhgh.club.service.SysClubService; -import com.budwk.app.zhgh.club.service.SysClubUserService; -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 javax.validation.Valid; -import java.util.List; - -/** - * @Author: JyuHsin - * @Date: 2024/8/7 10:14 - * @Version: v1.0.0 - * @Description: TODO - **/ -@IocBean -@Ok("json") -@At("/platform/club/applyJoin/clubAudit") -public class ClubUserClubAuditController { - - @Inject - private SysClubService sysClubService; - - @Inject - private SysClubUserService sysClubUserService; - - @At("") - @Ok("beetl:/platform/zhgh/club/applyJoin/clubAudit/index.html") - @SaCheckPermission("club.applyJoin.clubAudit") - public void index() { - } - - @At - @SaCheckPermission("club.applyJoin.clubAudit") - public Result pageData(@Valid ClubUserPageForm pageForm) { - Pagination pagination = sysClubUserService.pageDataByApplyJoinClubAudit(pageForm); - return Result.success(pagination); - } - - @At - @SaCheckPermission("club.applyJoin.clubAudit") - public Result getMyMangeClub() { - List myManageClub = sysClubService.getMyManageClub(); - return Result.success(myManageClub); - } - - @At - @SaCheckPermission("club.applyJoin.clubAudit") - @SLog(type = "clubApplyAudit", tag = "协会审核入会申请", msg = "协会审核入会申请") - public Result doAudit(@Valid String[] ids, - @Valid Boolean auditResult, - @Valid Integer auditType, - @Valid Integer applyType, - @Valid Boolean payed) { - sysClubUserService.doAudit(ids, auditResult, auditType, applyType, payed); - return Result.success(); - } -} diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/common/ClubCommonController.java b/src/main/java/com/budwk/app/zhgh/club/controller/common/ClubCommonController.java index f0bab411..f1ba868d 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/common/ClubCommonController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/common/ClubCommonController.java @@ -3,6 +3,9 @@ package com.budwk.app.zhgh.club.controller.common; import cn.dev33.satoken.annotation.SaCheckPermission; import com.budwk.app.base.result.Result; import com.budwk.app.base.service.BaseService; +import com.budwk.app.bpm.enums.BpmProcessInstanceStatusEnum; +import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum; +import com.budwk.app.flow.enums.ProcessInstanceStateEnum; import com.budwk.app.zhgh.club.model.SysClub; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; @@ -32,11 +35,10 @@ public class ClubCommonController { c.* FROM `sys_club` c - LEFT JOIN bpm_process_instance inst ON inst.processInstanceBusinessId = c.id + LEFT JOIN wf_process_instance inst ON inst.businessNo = c.id WHERE - inst.processInstanceStatus = 'COMPLETED' - AND inst.processInstanceNodeCode = 80 - """); + inst.state = @state + """).setParam("state", ProcessInstanceStateEnum.FINISHED.getCode()); List list = baseService.listVO(sql, SysClub.class); return Result.success(list); } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateApplyController.java b/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateApplyController.java index 99e3471a..aecf5367 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateApplyController.java @@ -1,20 +1,26 @@ package com.budwk.app.zhgh.club.controller.evaluate; import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.hutool.core.util.StrUtil; +import cn.hutool.core.lang.Dict; +import cn.hutool.db.Db; +import cn.hutool.db.ds.DSFactory; import com.budwk.app.base.annotation.SLog; import com.budwk.app.base.constant.BpmProcessConstant; import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.result.Result; -import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.flow.constant.FlowConst; +import com.budwk.app.flow.engine.FlowEngine; +import com.budwk.app.flow.entity.ProcessInstance; +import com.budwk.app.flow.entity.ProcessTask; +import com.budwk.app.flow.enums.ProcessSubmitTypeEnum; 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.SysClub; import com.budwk.app.zhgh.club.model.SysClubEvaluate; import com.budwk.app.zhgh.club.service.SysClubEvaluateService; import com.budwk.app.zhgh.club.service.SysClubService; +import com.budwk.app.zhgh.club.vo.ClubEvaluateVo; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; @@ -45,15 +51,12 @@ public class ClubEvaluateApplyController { @Inject private SysClubEvaluateService evaluateService; @Inject - private BpmService bpmService; - @Inject - private CommonService commonService; + private FlowEngine flowEngine; @At("") @Ok("beetl:/platform/zhgh/club/evaluate/apply/index.html") @SaCheckPermission("club.evaluate.apply") - public void index() { - } + public void index() {} @At @Aop(TransAop.READ_COMMITTED) @@ -61,15 +64,6 @@ public class ClubEvaluateApplyController { @SLog(type = "evaluateApply", tag = "保存协会评优申请", msg = "保存协会评优申请") public Result doSave(@Param("evaluate") SysClubEvaluate evaluate) { evaluateService.dao().insertOrUpdate(evaluate); - SysClub club = sysClubService.fetch(evaluate.getClubId()); - bpmService.startSaveProcessInstance(BpmProcessConstant.CLUB_EVALUATE.name(), club.getClubName() + "的协会评优申请", evaluate.getId(), null); - return Result.success(evaluate); - } - - @At - @SaCheckPermission("club.evaluate") - public Result info(@Valid String id) { - SysClubEvaluate evaluate = evaluateService.fetch(id); return Result.success(evaluate); } @@ -79,16 +73,45 @@ public class ClubEvaluateApplyController { @SLog(type = "evaluateApply", tag = "提交协会评优", msg = "提交协会评优") public Result doSubmit(@Valid @Param("evaluate") SysClubEvaluate evaluate) { evaluateService.dao().insertOrUpdate(evaluate); - SysClub club = sysClubService.fetch(evaluate.getClubId()); - //查询校协会管理员审批人工号 - String clubPresidentLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_CLUB_ADMIN, Cnd.NEW()); - if (StrUtil.isBlank(clubPresidentLoginName)) { - return Result.error("校协会管理员未配置审批人,请联系校工会!"); + + // 开启流程实例 + Dict args = Dict.create(); + args.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.APPLY.getCode()); + args.set(FlowConst.FORM_DATA, evaluate); + ProcessInstance instance = flowEngine.startProcessInstanceByKey("XHPY", evaluate.getId(), SecurityUtil.getUserId(), args); + + // 自动完成第一个申请任务 + List doingTaskList = flowEngine.processTaskService().getDoingTaskList(instance.getId(), null); + for (ProcessTask task : doingTaskList) { + flowEngine.executeProcessTask(task.getId(), SecurityUtil.getUserId(), args); } - bpmService.startSubmitProcessInstance(BpmProcessConstant.CLUB_EVALUATE.name(), club.getClubName() + "的协会评优申请", evaluate.getId(), List.of(clubPresidentLoginName), null); return Result.success(evaluate); } + @At + @SaCheckPermission("club.evaluate") + public Result info(@Valid String id) { + Cnd cnd = Cnd.NEW(); + Sql sql = Sqls.create(""" + SELECT + ce.*, + c.clubName, + c.clubCode, + c.createTime, + d.NAME AS typeName, + c.foundTime + FROM + sys_club_evaluate ce + left join sys_club c on ce.clubId = c.id + LEFT JOIN sys_dict d ON d.CODE = c.clubType + $condition + """); + cnd.andEX("ce.id", "=", id); + sql.setCondition(cnd); + ClubEvaluateVo clubEvaluateVo = evaluateService.fetchVO(sql, ClubEvaluateVo.class); + return Result.success(clubEvaluateVo); + } + @At @SaCheckPermission("club") public Result getMyClubAndYearAuditPass(Integer year) { @@ -99,10 +122,9 @@ public class ClubEvaluateApplyController { c.id FROM `sys_club` c - LEFT JOIN bpm_process_instance inst ON inst.processInstanceBusinessId = c.id + LEFT JOIN wf_process_instance inst ON inst.businessNo = c.id WHERE - inst.processInstanceStatus = 'COMPLETED' - AND inst.processInstanceNodeCode = 80 + inst.state = 20 """); sql.setCallback(Sqls.callback.strList()); sysClubService.execute(sql); diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateCommonController.java b/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateCommonController.java deleted file mode 100644 index 163568a3..00000000 --- a/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateCommonController.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.budwk.app.zhgh.club.controller.evaluate; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import com.budwk.app.base.constant.BpmProcessConstant; -import com.budwk.app.base.result.Result; -import com.budwk.app.bpm.service.BpmService; -import com.budwk.app.zhgh.club.service.SysClubEvaluateService; -import com.budwk.app.zhgh.club.vo.ClubEvaluateVo; -import org.nutz.dao.Cnd; -import org.nutz.dao.Sqls; -import org.nutz.dao.sql.Sql; -import org.nutz.ioc.loader.annotation.Inject; -import org.nutz.ioc.loader.annotation.IocBean; -import org.nutz.lang.util.NutMap; -import org.nutz.mvc.annotation.At; -import org.nutz.mvc.annotation.Ok; - -import javax.validation.Valid; - -@IocBean -@Ok("json") -@At("/platform/club/evaluate/common") -public class ClubEvaluateCommonController { - - @Inject - private SysClubEvaluateService sysClubEvaluateService; - - @Inject - private BpmService bpmService; - - @At - @SaCheckPermission("club.evaluate") - public Result findOne(@Valid String id) { - Cnd cnd = Cnd.NEW(); - Sql sql = Sqls.create(""" - SELECT - ce.*, - c.clubName, - c.clubCode, - c.createTime, - d.NAME AS typeName, - c.foundTime - FROM - sys_club_evaluate ce - left join sys_club c on ce.clubId = c.id - LEFT JOIN sys_dict d ON d.CODE = c.clubType - $condition - """); - cnd.andEX("ce.id", "=", id); - sql.setCondition(cnd); - ClubEvaluateVo clubEvaluateVo = sysClubEvaluateService.fetchVO(sql, ClubEvaluateVo.class); - clubEvaluateVo.setNodeTasks(bpmService.getNodeTasks(BpmProcessConstant.CLUB_EVALUATE, id)); - return Result.success(clubEvaluateVo); - } -} diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateMineController.java b/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateMineController.java index 675e4371..72601087 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateMineController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateMineController.java @@ -5,6 +5,7 @@ import com.budwk.app.base.annotation.SLog; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.flow.engine.FlowEngine; import com.budwk.app.zhgh.club.model.SysClubEvaluate; import com.budwk.app.zhgh.club.param.ClubUserPageForm; import com.budwk.app.zhgh.club.service.SysClubEvaluateService; @@ -32,15 +33,13 @@ public class ClubEvaluateMineController { @Inject private SysClubEvaluateService sysClubEvaluateService; - @Inject - private BpmService bpmService; + private FlowEngine flowEngine; @At("") @Ok("beetl:/platform/zhgh/club/evaluate/mine/index.html") @SaCheckPermission("club.evaluate.mine") - public void index() { - } + public void index() {} @At @SaCheckPermission("club.evaluate.mine") @@ -55,17 +54,7 @@ public class ClubEvaluateMineController { @SLog(type = "evaluateApply", tag = "删除协会评优", msg = "删除协会评优") public Result doDelete(@Valid String id) { sysClubEvaluateService.dao().delete(SysClubEvaluate.class, id); - bpmService.deleteInstance(id); - return Result.success(); - } - - @At - @SaCheckPermission("club.evaluate.mine") - @ApiOperation("撤回") - @Aop(TransAop.READ_COMMITTED) - @SLog(tag = "协会评优", msg = "撤回申请") - public Result revokeApply(@Valid String id) { - bpmService.revokeApply(id); + flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id); return Result.success(); } } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateSchoolAuditController.java b/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateSchoolAuditController.java index 16edb5d4..98c328fc 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateSchoolAuditController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/evaluate/ClubEvaluateSchoolAuditController.java @@ -35,14 +35,10 @@ public class ClubEvaluateSchoolAuditController { @Inject private SysClubEvaluateService sysClubEvaluateService; - @Inject - private BpmService bpmService; - @At("") @Ok("beetl:/platform/zhgh/club/evaluate/schoolAudit/index.html") @SaCheckPermission("club.evaluate.schoolAudit") - public void index() { - } + public void index() {} @At @SaCheckPermission("club.evaluate.schoolAudit") @@ -50,24 +46,4 @@ public class ClubEvaluateSchoolAuditController { Pagination pagination = sysClubEvaluateService.schoolAuditPageData(pageForm); return Result.success(pagination); } - - @At - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("club.evaluate.schoolAudit") - @SLog(type = "clubEvaluate", tag = "校工会审核评优申请", msg = "校工会审核评优申请", param = true) - public Result approval(@Valid @Param("approval") BpmTaskApprovalParam approvalParam) { - approvalParam.getBpmTaskApprovalTypeEnum(); - Map variables = BeanUtil.beanToMap(approvalParam); - bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, null); - return Result.success(); - } - - @At - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("club.evaluate.schoolAudit") - @SLog(type = "clubEvaluate", tag = "校工会撤回评优申请", msg = "校工会撤回评优申请", param = true) - public Result revoke(@Valid String taskId) { - bpmService.revokeTask(taskId); - return Result.success(); - } } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/examine/ClubExamineApplyController.java b/src/main/java/com/budwk/app/zhgh/club/controller/examine/ClubExamineApplyController.java index bfa2920e..342b3939 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/examine/ClubExamineApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/examine/ClubExamineApplyController.java @@ -1,20 +1,24 @@ package com.budwk.app.zhgh.club.controller.examine; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Dict; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import com.budwk.app.base.annotation.SLog; -import com.budwk.app.base.constant.BpmProcessConstant; -import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.result.Result; -import com.budwk.app.bpm.service.BpmService; -import com.budwk.app.web.controllers.open.commons.service.CommonService; +import com.budwk.app.flow.constant.FlowConst; +import com.budwk.app.flow.engine.FlowEngine; +import com.budwk.app.flow.entity.ProcessInstance; +import com.budwk.app.flow.entity.ProcessTask; +import com.budwk.app.flow.enums.ProcessInstanceStateEnum; +import com.budwk.app.flow.enums.ProcessSubmitTypeEnum; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.club.model.SysClub; import com.budwk.app.zhgh.club.model.SysClubExamineRegister; import com.budwk.app.zhgh.club.model.SysClubUser; import com.budwk.app.zhgh.club.service.SysClubExamineService; import com.budwk.app.zhgh.club.service.SysClubService; -import com.budwk.app.zhgh.club.service.SysClubUserService; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; @@ -44,27 +48,27 @@ public class ClubExamineApplyController { @Inject private SysClubService sysClubService; @Inject - private SysClubUserService sysClubUserService; - @Inject private Dao dao; @Inject private SysClubExamineService sysClubExamineService; @Inject - private BpmService bpmService; - @Inject - private CommonService commonService; + private FlowEngine flowEngine; @At("") @Ok("beetl:/platform/zhgh/club/examine/apply/index.html") @SaCheckPermission("club.examine.apply") - public void index() { - } + public void index() {} @At @SaCheckPermission("club") public Result getCount(@Valid String id,@Valid Integer year) { - int count = dao.count(SysClubExamineRegister.class, Cnd.where("clubId", "=", id).and("year(registerDate)", "=", year)); - return Result.success(count); + List list = dao.query(SysClubExamineRegister.class, Cnd.where("clubId", "=", id).and("year(registerDate)", "=", year)); + List instanceList = dao.query( + ProcessInstance.class, + Cnd.where(ProcessInstance::getBusinessNo, "in", list.stream().map(SysClubExamineRegister::getId).toList()) + .and(ProcessInstance::getState, "in", List.of(ProcessInstanceStateEnum.DOING.getCode(), ProcessInstanceStateEnum.FINISHED.getCode())) + ); + return Result.success(instanceList.size()); } @At @@ -109,10 +113,10 @@ public class ClubExamineApplyController { @SaCheckPermission("club") public Result getLasYearSurplus(@Valid String clubId) { SysClubExamineRegister register = dao.fetch(SysClubExamineRegister.class, Cnd.where("clubId", "=", clubId) - .and("YEAR(registerDate)", "=", cn.hutool.core.date.DateUtil.thisYear() - 1)); + .and("YEAR(registerDate)", "=", DateUtil.thisYear() - 1)); if (Lang.isNotEmpty(register)) { - List incomeCensuss = register.getIncomeCensus(); - float surplus = incomeCensuss.get(0).getFloat("surplus"); + List list = register.getIncomeCensus(); + float surplus = list.get(0).getFloat("surplus"); return Result.success(surplus); } return Result.success(0); @@ -133,13 +137,11 @@ public class ClubExamineApplyController { public Result doSave(@Param("data") SysClubExamineRegister examineRegister, @Param("incomeDetailed") String incomeDetailed, @Param("incomeCensus") String incomeCensus) { - SysClubExamineRegister register; if(StrUtil.isBlank(examineRegister.getId())) { - register = sysClubExamineService.doAdd(examineRegister, incomeDetailed, incomeCensus); + sysClubExamineService.doAdd(examineRegister, incomeDetailed, incomeCensus); } else { - register = sysClubExamineService.doEdit(examineRegister, incomeDetailed, incomeCensus); + sysClubExamineService.doEdit(examineRegister, incomeDetailed, incomeCensus); } - bpmService.startSaveProcessInstance(BpmProcessConstant.CLUB_EXAMINE.name(), register.getClubName()+"的协会考核申请", register.getId(), null); return Result.success(); } @@ -156,12 +158,19 @@ public class ClubExamineApplyController { } else { reg = sysClubExamineService.doEdit(examineRegister, incomeDetailed, incomeCensus); } - //查询校协会管理员审批人工号 - String clubPresidentLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_CLUB_ADMIN, Cnd.NEW()); - if(StrUtil.isBlank(clubPresidentLoginName)){ - return Result.error("校协会管理员未配置审批人,请联系校工会!"); + + // 开启流程实例 + Dict args = Dict.create(); + args.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.APPLY.getCode()); + args.set(FlowConst.FORM_DATA, reg); + ProcessInstance instance = flowEngine.startProcessInstanceByKey("XHPY", reg.getId(), SecurityUtil.getUserId(), args); + + // 自动完成第一个申请任务 + List doingTaskList = flowEngine.processTaskService().getDoingTaskList(instance.getId(), null); + for (ProcessTask task : doingTaskList) { + flowEngine.executeProcessTask(task.getId(), SecurityUtil.getUserId(), args); } - bpmService.startSubmitProcessInstance(BpmProcessConstant.CLUB_EXAMINE.name(), examineRegister.getClubName()+"的协会考核申请", examineRegister.getId(), List.of(clubPresidentLoginName),null); + return Result.success(reg); } } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/examine/ClubExamineMineController.java b/src/main/java/com/budwk/app/zhgh/club/controller/examine/ClubExamineMineController.java index ed179ab6..4afac786 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/examine/ClubExamineMineController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/examine/ClubExamineMineController.java @@ -5,6 +5,7 @@ import com.budwk.app.base.annotation.SLog; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.flow.engine.FlowEngine; import com.budwk.app.zhgh.club.model.SysClubExamineRegisterDetailed; import com.budwk.app.zhgh.club.param.ClubUserPageForm; import com.budwk.app.zhgh.club.service.SysClubExamineService; @@ -29,15 +30,13 @@ public class ClubExamineMineController { @Inject private SysClubExamineService sysClubExamineService; - @Inject - private BpmService bpmService; + private FlowEngine flowEngine; @At("") @Ok("beetl:/platform/zhgh/club/examine/mine/index.html") @SaCheckPermission("club.examine.mine") - public void index() { - } + public void index() {} @At @SaCheckPermission("club.examine.mine") @@ -53,17 +52,7 @@ public class ClubExamineMineController { public Result doDelete(@Valid String id) { sysClubExamineService.delete(id); sysClubExamineService.dao().clear(SysClubExamineRegisterDetailed.class, Cnd.where("registerId", "=", id)); - bpmService.deleteInstance(id); - return Result.success(); - } - - @At - @SaCheckPermission("club.examine.mine") - @ApiOperation("撤回") - @Aop(TransAop.READ_COMMITTED) - @SLog(tag = "协会年审", msg = "撤回申请") - public Result revokeApply(@Valid String id) { - bpmService.revokeApply(id); + flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id); return Result.success(); } @@ -126,5 +115,4 @@ public class ClubExamineMineController { e.printStackTrace(); }*/ } - } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/examine/ClubExamineSchoolAuditController.java b/src/main/java/com/budwk/app/zhgh/club/controller/examine/ClubExamineSchoolAuditController.java index 3a2eafec..799cacc0 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/examine/ClubExamineSchoolAuditController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/examine/ClubExamineSchoolAuditController.java @@ -30,17 +30,10 @@ public class ClubExamineSchoolAuditController { @Inject private SysClubExamineService sysClubExamineService; - @Inject - private BpmService bpmService; - - @Inject - private CommonService commonService; - @At("") @Ok("beetl:/platform/zhgh/club/examine/schoolAudit/index.html") @SaCheckPermission("club.examine.schoolAudit") - public void index() { - } + public void index() {} @At @SaCheckPermission("club.examine.schoolAudit") @@ -48,24 +41,4 @@ public class ClubExamineSchoolAuditController { Pagination pagination = sysClubExamineService.schoolAuditPageData(pageForm); return Result.success(pagination); } - - @At - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("club.examine.schoolAudit") - @SLog(type = "clubExamine", tag = "校工会审核年度考核", msg = "校工会审核年度考核", param = true) - public Result approval(@Valid @Param("approval") BpmTaskApprovalParam approvalParam) { - approvalParam.getBpmTaskApprovalTypeEnum(); - Map variables = BeanUtil.beanToMap(approvalParam); - bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, null); - return Result.success(); - } - - @At - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("club.examine.schoolAudit") - @SLog(type = "clubExamine", tag = "校工会撤回年度考核", msg = "校工会撤回年度考核", param = true) - public Result revoke(@Valid String taskId) { - bpmService.revokeTask(taskId); - return Result.success(); - } } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubInfoManageController.java b/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubInfoManageController.java index 3f9c4a67..179d1476 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubInfoManageController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubInfoManageController.java @@ -63,19 +63,14 @@ public class ClubInfoManageController { @Inject private SysClubInfoManageService clubInfoManageService; - @Inject private SysClubUserService sysClubUserService; - @Inject private Dao dao; - @Inject private CommonService commonService; - @Inject private SysRoleService sysRoleService; - @Inject private SysUserService sysUserService; @@ -133,24 +128,14 @@ public class ClubInfoManageController { return Result.success(); } - @At - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("club.infoManage.manage") - @SLog(type = "infoManage", tag = "撤回变更身份", msg = "撤回变更身份", param = true) - public Result rollbackChange(@Valid String id) { - dao.update(SysClubUser.class, Chain.make("state", null).add("changeRoleCode", null) - .add("roleCodeChangeTime", null), Cnd.where("id", "=", id)); - return Result.success(); - } - @At @Aop(TransAop.READ_COMMITTED) @SaCheckPermission("club.infoManage.manage") @SLog(type = "infoManage", tag = "退会", msg = "退会", param = true) public Result exitClub(@Valid String id) { - SysClubUser clubUser = dao.fetch(SysClubUser.class, id); + ClubUser clubUser = dao.fetch(ClubUser.class, id); Sys_role sysRole = sysRoleService.getByCode(clubUser.getRoleCode()); - dao.update(SysClubUser.class, Chain.make("isNormal", false).add("changeTime", DateUtil.now()) + dao.update(ClubUser.class, Chain.make("isNormal", false).add("changeTime", DateUtil.now()) , Cnd.where("id", "=", id)); dao.clear(Sys_user_role.class, Cnd.where("userId", "=", clubUser.getUserId()) .and("roleId", "=", sysRole.getId()) @@ -167,7 +152,6 @@ public class ClubInfoManageController { public Result userDelete(@Valid String id) { ClubUser clubUser = dao.fetch(ClubUser.class, id); dao.delete(ClubUser.class,id); -// sysClubUserService.clear(Cnd.where("id", "=", id)); Sys_role sysRole = sysRoleService.getByCode(clubUser.getRoleCode()); if(ObjectUtil.isNotEmpty(sysRole)){ dao.clear(Sys_user_role.class, Cnd.NEW().and("userId", "=", clubUser.getUserId()) @@ -220,26 +204,6 @@ public class ClubInfoManageController { clubUser.setRoleCode(roleCode); dao.update(clubUser); - /* //变更社团负责人,如果是管理员直接变更完成 - if (AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name(), RoleConstant.SCHOOL_CLUB_MANAGER.name())) { - //先清除原始身份的角色 - dao.clear(Sys_user_role.class, Cnd.where("clubId", "=", clubId).and("userId", "=", clubUser.getUserId()) - .and("roleId", "in", roleList)); - //插入新的身份角色 - Sys_user_role sysUserRole = new Sys_user_role(); - sysUserRole.setUserId(clubUser.getUserId()); - Sys_role sysRole = sysRoleService.getByCode(roleCode); - sysUserRole.setRoleId(sysRole.getId()); - sysUserRole.setClubId(clubId); - dao.insert(sysUserRole); - - clubUser.setRoleCode(roleCode); - dao.update(clubUser); - } else { - //社团负责人变更的,则需要校工会审核 - sysClubUserService.update(Chain.make("changeRoleCode", roleCode).add("state", 1).add("roleCodeChangeTime", DateUtil.now()) - , Cnd.where("id", "=", id)); - }*/ } sysUserService.clearCache(); sysRoleService.clearCache(); @@ -291,20 +255,14 @@ public class ClubInfoManageController { return Result.error((Objects.equals(roleCode, RoleConstant.CLUB_PRESIDENT.name()) ? "会长" : "秘书长") + "只能有一位"); } } - int status = 0; - if (AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name(), RoleConstant.SCHOOL_UNION_CLUB_ADMIN.name()) || Objects.equals(RoleConstant.CLUB_MEMBER.name(), roleCode)) { - status = 5; - } else { - status = 3; - } Sys_role sysRole = sysRoleService.getByCode(roleCode); for (String user : users) { if (AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name(), RoleConstant.SCHOOL_UNION_CLUB_ADMIN.name()) || !Objects.equals(RoleConstant.CLUB_MEMBER.name(), roleCode)) { - Sys_user_role sys_user_role = new Sys_user_role(); - sys_user_role.setUserId(user); - sys_user_role.setRoleId(sysRole.getId()); - sys_user_role.setClubId(clubId); - dao.insert(sys_user_role); + Sys_user_role sysUserRole = new Sys_user_role(); + sysUserRole.setUserId(user); + sysUserRole.setRoleId(sysRole.getId()); + sysUserRole.setClubId(clubId); + dao.insert(sysUserRole); sysUserService.clearCache(); sysRoleService.clearCache(); } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubMyApplyController.java b/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubMyApplyController.java index f4eebf18..9472226e 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubMyApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubMyApplyController.java @@ -5,13 +5,13 @@ import com.budwk.app.base.annotation.SLog; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.flow.engine.FlowEngine; import com.budwk.app.sys.models.Sys_user_role; -import com.budwk.app.zhgh.club.model.ClubUser; -import com.budwk.app.zhgh.club.model.ClubUserApply; -import com.budwk.app.zhgh.club.model.SysClubSponsor; +import com.budwk.app.zhgh.club.model.*; import com.budwk.app.zhgh.club.param.ClubUserPageForm; import com.budwk.app.zhgh.club.service.SysClubService; import com.budwk.app.zhgh.club.vo.ClubRegisterPageVo; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; @@ -31,22 +31,22 @@ import javax.validation.Valid; **/ @IocBean @Ok("json") +@Api("协会-我的注册") @At("/platform/club/register/clubMyApply") public class ClubMyApplyController { @Inject private SysClubService sysClubService; - @Inject - private BpmService bpmService; + private FlowEngine flowEngine; @At("") @Ok("beetl:/platform/zhgh/club/register/mine/index.html") @SaCheckPermission("club.register.myApply") - public void index() { - } + public void index() {} @At + @ApiOperation("分页查询") @SaCheckPermission("club.register.myApply") public Result pageData(@Valid ClubUserPageForm pageForm) { Pagination pagination = sysClubService.minePageData(pageForm); @@ -54,27 +54,20 @@ public class ClubMyApplyController { } @At + @ApiOperation("删除协会") @Aop(TransAop.READ_COMMITTED) @SaCheckPermission("club.register.myApply") + @SLog(type = "clubRegister", tag = "删除协会", msg = "删除协会") public Result doDelete(@Valid String id) { sysClubService.delete(id); sysClubService.dao().clear(SysClubSponsor.class, Cnd.where("clubId", "=", id)); -// sysClubService.dao().clear(SysClubUser.class, Cnd.where("clubId", "=", id)); sysClubService.dao().clear(ClubUser.class, Cnd.where("clubId", "=", id)); sysClubService.dao().clear(ClubUserApply.class, Cnd.where("clubId", "=", id)); sysClubService.dao().clear(Sys_user_role.class, Cnd.where("clubId", "=", id)); + sysClubService.dao().clear(SysClubEvaluate.class, Cnd.where("clubId", "=", id)); + sysClubService.dao().clear(SysClubExamineRegister.class, Cnd.where("clubId", "=", id)); - bpmService.deleteInstance(id); - return Result.success(); - } - - @At - @SaCheckPermission("club.register.myApply") - @ApiOperation("撤回") - @Aop(TransAop.READ_COMMITTED) - @SLog(tag = "协会注册", msg = "撤回申请") - public Result revokeApply(@Valid String id) { - bpmService.revokeApply(id); + flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id); return Result.success(); } } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubRegistApplyController.java b/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubRegistApplyController.java index 048da837..dc718e47 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubRegistApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubRegistApplyController.java @@ -3,13 +3,17 @@ package com.budwk.app.zhgh.club.controller.register; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; +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.BpmProcessConstant; -import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.result.Result; -import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.flow.constant.FlowConst; +import com.budwk.app.flow.engine.FlowEngine; +import com.budwk.app.flow.entity.ProcessInstance; +import com.budwk.app.flow.entity.ProcessTask; +import com.budwk.app.flow.enums.ProcessSubmitTypeEnum; import com.budwk.app.sys.services.SysUserService; +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.SysClub; import com.budwk.app.zhgh.club.service.SysClubService; @@ -45,9 +49,7 @@ public class ClubRegistApplyController { @Inject private SysClubService sysClubService; @Inject - private BpmService bpmService; - @Inject - private CommonService commonService; + private FlowEngine flowEngine; @At("") @Ok("beetl:/platform/zhgh/club/register/apply/index.html") @@ -62,13 +64,12 @@ public class ClubRegistApplyController { public Result doSave(@Param("club") SysClub club, @Param("::deleteIds") List deleteIds, @Param("::managePerson") List managePerson) { - SysClub sysClub; + // 如果用户是保存,则只操作业务表 if (StrUtil.isBlank(club.getId())) { - sysClub = sysClubService.doAdd(club, managePerson); + sysClubService.doAdd(club, managePerson); } else { - sysClub = sysClubService.doEdit(club, deleteIds, managePerson); + sysClubService.doEdit(club, deleteIds, managePerson); } - bpmService.startSaveProcessInstance(BpmProcessConstant.CLUB_REGISTER.name(), sysClub.getClubName() + "的注册申请", sysClub.getId(), null); return Result.success(); } @@ -86,12 +87,17 @@ public class ClubRegistApplyController { sysClub = sysClubService.doEdit(club, deleteIds, managePerson); } - //校工会协会管理员 - String loginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_CLUB_ADMIN); - if (StrUtil.isBlank(loginName)) { - return Result.error("未查询到相关审批人,请联系校工会!"); + // 开启流程实例 + Dict args = Dict.create(); + args.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.APPLY.getCode()); + args.set(FlowConst.FORM_DATA, sysClub); + ProcessInstance instance = flowEngine.startProcessInstanceByKey("XHZC", sysClub.getId(), SecurityUtil.getUserId(), args); + + // 自动完成第一个申请任务 + List doingTaskList = flowEngine.processTaskService().getDoingTaskList(instance.getId(), null); + for (ProcessTask task : doingTaskList) { + flowEngine.executeProcessTask(task.getId(), SecurityUtil.getUserId(), args); } - bpmService.startSubmitProcessInstance(BpmProcessConstant.CLUB_REGISTER.name(), sysClub.getClubName() + "的注册申请", sysClub.getId(), List.of(loginName), null); return Result.success(sysClub); } @@ -154,5 +160,4 @@ public class ClubRegistApplyController { String s = String.format("%02d", count + 1); return Result.success().addData(Convert.toStr(DateUtil.thisYear()) + s); } - } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubRegisterCommonController.java b/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubRegisterCommonController.java deleted file mode 100644 index d660e498..00000000 --- a/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubRegisterCommonController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.budwk.app.zhgh.club.controller.register; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import com.budwk.app.base.result.Result; -import com.budwk.app.zhgh.club.service.SysClubService; -import com.budwk.app.zhgh.club.vo.ClubExamineVo; -import com.budwk.app.zhgh.club.vo.ClubRegisterVo; -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 javax.validation.Valid; - -@IocBean -@Ok("json") -@At("/platform/club/register/common") -public class ClubRegisterCommonController { - - @Inject - private SysClubService sysClubService; - - @At - @SaCheckPermission("club.register") - public Result findOne(@Valid String id) { - ClubRegisterVo clubRegisterVo = sysClubService.findOne(id); - return Result.success(clubRegisterVo); - } -} diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubSchoolReplyController.java b/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubSchoolReplyController.java index 7abeed1b..b0215b7b 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubSchoolReplyController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/register/ClubSchoolReplyController.java @@ -1,43 +1,17 @@ package com.budwk.app.zhgh.club.controller.register; import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.lang.Dict; -import cn.hutool.json.JSON; -import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; -import com.budwk.app.base.annotation.SLog; -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.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.sys.models.Sys_role; -import com.budwk.app.sys.models.Sys_user_role; -import com.budwk.app.sys.services.SysRoleService; -import com.budwk.app.sys.services.SysUserService; -import com.budwk.app.web.controllers.open.commons.service.CommonService; -import com.budwk.app.zhgh.club.model.SysClubUser; import com.budwk.app.zhgh.club.param.ClubUserPageForm; import com.budwk.app.zhgh.club.service.SysClubService; import com.budwk.app.zhgh.club.vo.ClubRegisterPageVo; -import org.nutz.aop.interceptor.ioc.TransAop; -import org.nutz.dao.Cnd; -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; 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; -import java.util.Objects; /** * @Author: JyuHsin @@ -53,23 +27,10 @@ public class ClubSchoolReplyController { @Inject private SysClubService sysClubService; - @Inject - private SysRoleService sysRoleService; - - @Inject - private SysUserService sysUserService; - - @Inject - private BpmService bpmService; - - @Inject - private CommonService commonService; - @At("") @Ok("beetl:/platform/zhgh/club/register/schoolReply/index.html") @SaCheckPermission("club.register.schoolReply") - public void index() { - } + public void index() {} @At @SaCheckPermission("club.register.schoolReply") @@ -77,61 +38,4 @@ public class ClubSchoolReplyController { Pagination pagination = sysClubService.schoolReplyPageData(pageForm); return Result.success(pagination); } - - @At - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("club.register.schoolReply") - @SLog(type = "schoolReply", tag = "校领导批复注册协会", msg = "校领导批复注册协会", param = true) - public Result approval(@Valid @Param("approval") BpmTaskApprovalParam approvalParam) { - - Map variables = BeanUtil.beanToMap(approvalParam); - bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, null); - - //如果审核通过,就给角色 - //找理事机构 - List clubUsers = sysClubService.dao().query(SysClubUser.class, Cnd.where("clubId", "=", approvalParam.getProcessInstanceBusinessId()) - .and("roleCode", "!=", RoleConstant.CLUB_MEMBER.name()) - .and("isNormal", "=", true) - .and("status", "=", 5)); - //找会长 - List clubPresidents = clubUsers.stream().filter(o -> o.getRoleCode().equals(RoleConstant.CLUB_PRESIDENT.name())).toList(); - if(Objects.equals(approvalParam.getBpmTaskApprovalType(), BpmTaskApprovalTypeEnum.PASS.name())) { - List userRoles = new ArrayList<>(); - clubUsers.forEach(cu -> { - Sys_user_role uRole = new Sys_user_role(); - Sys_role sysRole = sysRoleService.getByCode(cu.getRoleCode()); - uRole.setRoleId(sysRole.getId()); - uRole.setUserId(cu.getUserId()); - uRole.setClubId(approvalParam.getProcessInstanceBusinessId()); - userRoles.add(uRole); - }); - sysClubService.dao().insert(userRoles); - sysUserService.clearCache(); - sysRoleService.clearCache(); - } - return Result.success(); - } - - @At - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("club.register.schoolReply") - @SLog(type = "schoolReply", tag = "校领导撤回注册协会", msg = "校领导撤回注册协会", param = true) - public Result revoke(@Valid String taskId) { - //撤回需要删除相关角色 - BpmProcessTask processTask = sysClubService.dao().fetch(BpmProcessTask.class, taskId); - BpmProcessInstance instance = sysClubService.dao().fetch(BpmProcessInstance.class, processTask.getProcessInstanceId()); - String clubId = instance.getProcessInstanceBusinessId(); - - List roleList = commonService.findUserRoleByRoleCode(List.of( - RoleConstant.CLUB_PRESIDENT.name(), - RoleConstant.CLUB_VICE_PRESIDENT.name(), - RoleConstant.CLUB_SECRETARY.name(), - RoleConstant.CLUB_VICE_SECRETARY.name() - )); - sysClubService.dao().clear(Sys_user_role.class, Cnd.where("clubId", "=", clubId) - .and("roleId", "in", roleList)); - - bpmService.revokeTask(taskId); - return Result.success(); - } } diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/statistics/ClubStatisticsController.java b/src/main/java/com/budwk/app/zhgh/club/controller/statistics/ClubStatisticsController.java index 0e4f8f92..ce81b1a9 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/statistics/ClubStatisticsController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/statistics/ClubStatisticsController.java @@ -15,9 +15,13 @@ import com.budwk.app.base.result.Result; import com.budwk.app.base.utils.CommonDownloadUtil; import com.budwk.app.bpm.enums.BpmProcessInstanceStatusEnum; import com.budwk.app.bpm.models.BpmProcessInstance; +import com.budwk.app.flow.entity.ProcessInstance; +import com.budwk.app.flow.enums.ProcessInstanceStateEnum; +import com.budwk.app.sys.models.Sys_file; import com.budwk.app.sys.models.Sys_role; import com.budwk.app.sys.models.Sys_user_role; import com.budwk.app.sys.services.SysRoleService; +import com.budwk.app.sys.utils.SysFileMinIoUtil; 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.SysClub; @@ -57,9 +61,9 @@ import java.util.zip.ZipOutputStream; public class ClubStatisticsController { private static final Logger log = LoggerFactory.getLogger(ClubStatisticsController.class); + @Inject private SysClubService sysClubService; - @Inject private SysRoleService sysRoleService; @@ -85,8 +89,8 @@ public class ClubStatisticsController { List examineRegisters = sysClubService.dao().query(SysClubExamineRegister.class, Cnd.where("year(registerDate)", "=", DateUtil.thisYear())); List list = examineRegisters.stream().map(SysClubExamineRegister::getId).toList(); - List instanceList = sysClubService.dao().query(BpmProcessInstance.class, Cnd.where("processInstanceStatus", "=", BpmProcessInstanceStatusEnum.COMPLETED).and("processInstanceBusinessId", "in", list)); - List businessNoList = instanceList.stream().map(BpmProcessInstance::getProcessInstanceBusinessId).toList(); + List instanceList = sysClubService.dao().query(ProcessInstance.class, Cnd.where(ProcessInstance::getState, "=", ProcessInstanceStateEnum.FINISHED.getCode()).and(ProcessInstance::getBusinessNo, "in", list)); + List businessNoList = instanceList.stream().map(ProcessInstance::getBusinessNo).toList(); List registers = examineRegisters.stream().filter(o -> businessNoList.contains(o.getId())).toList(); cnd.and("id", auditState ? "in" : "not in", registers.stream().map(SysClubExamineRegister::getClubId).toList()); @@ -170,9 +174,6 @@ public class ClubStatisticsController { cnd.andEX("c.clubId", "=", clubId); cnd.andEX("u.userState", "=", userState); cnd.andEX("u.sex", "=", sex); -// cnd.andEX("c.giveMoney", "=", giveMoney); -// cnd.andEX("c.isNormal", "=", true); -// cnd.andEX("c.status", "=", 5); sql.setCondition(cnd); List listMap = sysClubService.listMap(sql); //获取所有社团 @@ -187,8 +188,6 @@ public class ClubStatisticsController { exportEntities.add(new ExcelExportEntity("联系方式", "mobile", 20)); exportEntities.add(new ExcelExportEntity("所在单位", "unitName", 20)); exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20)); -// exportEntities.add(new ExcelExportEntity("是否拨付", "giveMoney", 20)); -// exportEntities.add(new ExcelExportEntity("是否缴费", "payed", 20)); exportEntities.add(new ExcelExportEntity("职务", "roleName", 20)); ZipOutputStream zipOutputStream = new ZipOutputStream(new BufferedOutputStream(response.getOutputStream())); clubList.forEach(item -> { @@ -229,6 +228,7 @@ public class ClubStatisticsController { exportEntities.add(new ExcelExportEntity("退休人数", "retire", 20)); exportEntities.add(new ExcelExportEntity("男", "man", 20)); exportEntities.add(new ExcelExportEntity("女", "woman", 20)); + exportEntities.add(new ExcelExportEntity("理事机构人数", "governing_body", 20)); ExportParams exportParams = new ExportParams(); exportParams.setType(ExcelType.XSSF); @@ -286,17 +286,14 @@ public class ClubStatisticsController { List sysFiles = fileList.get(item.getId()); sysFiles.forEach(f -> { try { - System.out.println(1); String fileName = f.getStr("name"); + String filepath = f.getStr("url"); - JSONObject entries = f.getJSONObject("response"); - String filepath = entries.getStr("data"); + Sys_file file = sysClubService.dao().fetch(Sys_file.class, Cnd.where(Sys_file::getDownloadPath, "=", filepath)); + byte[] bytes = SysFileMinIoUtil.getFileBytes(file.getBucket(), file.getStoragePath()); zipOutputStream.putNextEntry(new ZipEntry(item.getClubName() + "/" + System.currentTimeMillis() + fileName)); - - InputStream inputStream = Http.get(filepath).getStream(); - IOUtils.copy(inputStream, zipOutputStream); - inputStream.close(); + zipOutputStream.write(bytes); zipOutputStream.closeEntry(); } catch (Exception e) { log.error(e.getMessage()); @@ -314,7 +311,7 @@ public class ClubStatisticsController { club.clubCode, club.clubName, sum( CASE WHEN cu.userId is not null $myCondition THEN 1 ELSE 0 END ) AS total, - sum( CASE WHEN su.userState = '在职' $myCondition THEN 1 ELSE 0 END ) AS `work`, + sum( CASE WHEN su.userState in ('在职', '在岗') $myCondition THEN 1 ELSE 0 END ) AS `work`, sum( CASE WHEN su.userState in ('退休') $myCondition THEN 1 ELSE 0 END ) AS retire, sum( CASE WHEN su.sex = '男' $myCondition THEN 1 ELSE 0 END ) AS man, sum( CASE WHEN su.sex = '女' $myCondition THEN 1 ELSE 0 END ) AS woman, @@ -323,7 +320,7 @@ public class ClubStatisticsController { sys_club club LEFT JOIN club_user cu ON cu.clubId = club.id LEFT JOIN sys_user su ON cu.userId = su.id - LEFT JOIN bpm_process_instance ins ON ins.processInstanceBusinessId = club.id + LEFT JOIN wf_process_instance ins ON ins.businessNo = club.id $condition """); Cnd cnd = Cnd.NEW(); @@ -341,7 +338,7 @@ public class ClubStatisticsController { List myClubId = userRoles.stream().map(Sys_user_role::getClubId).toList(); cnd.and("club.id", "in", myClubId); } - cnd.and("ins.processInstanceStatus", "=", BpmProcessInstanceStatusEnum.COMPLETED); + cnd.and("ins.state", "=", ProcessInstanceStateEnum.FINISHED.getCode()); cnd.andEX("club.id", "=", clubId); cnd.and("club.dismiss", "=", false); cnd.groupBy("club.id"); @@ -356,7 +353,6 @@ public class ClubStatisticsController { if (!myCnd.where().isEmpty()) { sql.vars().set("myCondition", "AND " + myCnd.toSql(null)); } - sql.setCondition(cnd); return sql; } diff --git a/src/main/java/com/budwk/app/zhgh/club/interceptor/ClubRegisterInterceptor.java b/src/main/java/com/budwk/app/zhgh/club/interceptor/ClubRegisterInterceptor.java new file mode 100644 index 00000000..490d11a1 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/club/interceptor/ClubRegisterInterceptor.java @@ -0,0 +1,58 @@ +package com.budwk.app.zhgh.club.interceptor; + +import com.budwk.app.base.constant.RoleConstant; +import com.budwk.app.flow.constant.FlowConst; +import com.budwk.app.flow.engine.FlowInterceptor; +import com.budwk.app.flow.engine.core.Execution; +import com.budwk.app.flow.engine.core.ServiceContext; +import com.budwk.app.sys.models.Sys_role; +import com.budwk.app.sys.models.Sys_user_role; +import com.budwk.app.sys.services.SysRoleService; +import com.budwk.app.sys.services.SysUserService; +import com.budwk.app.zhgh.club.model.ClubUser; +import com.budwk.app.zhgh.club.model.SysClub; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.json.Json; + +import java.util.List; + +/** + * @ClassName ClubRegisterInterceptor + * @Author JyuHsin + * @Date 2025/8/21 15:44 + * @Version 1.0 + * @Description TODO + */ +public class ClubRegisterInterceptor implements FlowInterceptor { + + @Override + public void intercept(Execution execution) { + + String formDataStr = execution.getArgs().getStr(FlowConst.FORM_DATA); + SysClub club = Json.fromJson(SysClub.class, formDataStr); + + Dao dao = ServiceContext.find(Dao.class); + SysRoleService sysRoleService = ServiceContext.find(SysRoleService.class); + SysUserService sysUserService = ServiceContext.find(SysUserService.class); + + // 审核通过,就给角色,找理事机构 + List clubUsers = dao.query( + ClubUser.class, + Cnd.where("roleCode", "!=", RoleConstant.CLUB_MEMBER.name()) + .and("clubId", "=", club.getId()) + ); + List list = clubUsers.stream().map(o -> { + Sys_user_role userRole = new Sys_user_role(); + Sys_role sysRole = sysRoleService.getByCode(o.getRoleCode()); + userRole.setRoleId(sysRole.getId()); + userRole.setUserId(o.getUserId()); + userRole.setClubId(club.getId()); + return userRole; + }).toList(); + + dao.insert(list); + sysUserService.clearCache(); + sysRoleService.clearCache(); + } +} diff --git a/src/main/java/com/budwk/app/zhgh/club/interceptor/ClubUserJoinInterceptor.java b/src/main/java/com/budwk/app/zhgh/club/interceptor/ClubUserJoinInterceptor.java new file mode 100644 index 00000000..419db81d --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/club/interceptor/ClubUserJoinInterceptor.java @@ -0,0 +1,33 @@ +package com.budwk.app.zhgh.club.interceptor; + +import cn.hutool.core.bean.BeanUtil; +import com.budwk.app.flow.constant.FlowConst; +import com.budwk.app.flow.engine.FlowInterceptor; +import com.budwk.app.flow.engine.core.Execution; +import com.budwk.app.flow.engine.core.ServiceContext; +import com.budwk.app.zhgh.club.model.ClubUser; +import com.budwk.app.zhgh.club.model.ClubUserApply; +import org.nutz.dao.Dao; +import org.nutz.json.Json; + +/** + * @ClassName ClubUserJoinInterceptor + * @Author JyuHsin + * @Date 2025/8/22 16:07 + * @Version 1.0 + * @Description TODO + */ +public class ClubUserJoinInterceptor implements FlowInterceptor { + + @Override + public void intercept(Execution execution) { + + String formDataStr = execution.getArgs().getStr(FlowConst.FORM_DATA); + ClubUserApply clubUserApply = Json.fromJson(ClubUserApply.class, formDataStr); + + Dao dao = ServiceContext.find(Dao.class); + + ClubUser clubUser = BeanUtil.copyProperties(clubUserApply, ClubUser.class); + dao.insert(clubUser); + } +} diff --git a/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubEvaluateServiceImpl.java b/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubEvaluateServiceImpl.java index 6e8cafd8..74f4df29 100644 --- a/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubEvaluateServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubEvaluateServiceImpl.java @@ -1,9 +1,12 @@ package com.budwk.app.zhgh.club.service.impl; +import cn.hutool.core.util.StrUtil; import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.service.impl.BaseServiceImpl; +import com.budwk.app.base.utils.PageUtil; import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum; +import com.budwk.app.flow.enums.ProcessTaskStateEnum; 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.SysClubEvaluate; @@ -16,6 +19,8 @@ import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; import org.nutz.ioc.loader.annotation.IocBean; +import java.util.List; + /** * @Author: JyuHsin * @Date: 2024/8/9 17:17 @@ -33,43 +38,45 @@ public class SysClubEvaluateServiceImpl extends BaseServiceImpl public Pagination minePageData(ClubUserPageForm pageForm) { Sql sql = Sqls.create(""" SELECT - ce.*, + info.*, club.foundTime, club.clubName, club.clubCode, dict.name as typeName, - inst.processInstanceNodeId, - inst.processInstanceNodeCode, - inst.processInstanceNodeName, - inst.processInstanceTaskIds, - inst.processInstanceStatus, - nd.nodeType AS processInstanceTaskNodeType, - ( - SELECT - count( 1 ) > 0 - FROM - bpm_process_task - WHERE - prevTaskId = ( SELECT id FROM bpm_process_task WHERE processInstanceId = inst.id AND processTaskNodeCode IN ( 10, 40, 70 ) ORDER BY createdAt DESC LIMIT 1 ) - AND taskStatus = 'COMPELTE' - ) AS nextTaskIsComplete + ins.id AS instanceId, + ins.businessNo, + ins.state instanceState, + ins.variable instanceVariable, + ins.processDefineId instanceProcessDefineId, + t.id taskId, + t.taskName AS taskKey, + t.displayName taskName, + t.taskType, + t.performType taskPerformType, + t.taskState, + t.finishTime, + t.taskParentId, + t.variable taskVariable, + IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke, + (select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask') AS startTaskId FROM - sys_club_evaluate ce - LEFT JOIN sys_club club on club.id = ce.clubId + sys_club_evaluate info + LEFT JOIN sys_club club on club.id = info.clubId LEFT JOIN sys_dict dict ON dict.CODE = club.clubType - LEFT JOIN bpm_process_instance inst ON inst.processInstanceBusinessId = ce.id - LEFT JOIN bpm_process_node_define nd ON nd.id = inst.processInstanceNodeId + LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id + LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10 + LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id $condition """); Cnd cnd = Cnd.NEW(); - cnd.andEX("ce.clubId", "=", pageForm.getClubId()); - cnd.andEX("year(ce.applyTime)", "=", pageForm.getYear()); + cnd.andEX("info.clubId", "=", pageForm.getClubId()); + cnd.andEX("year(info.applyTime)", "=", pageForm.getYear()); if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name(), RoleConstant.SCHOOL_UNION_CLUB_ADMIN.name())) { - cnd.and("ce.userId", "=", SecurityUtil.getUserId()); + cnd.and("info.userId", "=", SecurityUtil.getUserId()); } - cnd.groupBy("ce.id"); + cnd.groupBy("info.id"); cnd.desc("applyTime"); sql.setCondition(cnd); return listPageVO(pageForm, sql, ClubEvaluatePageVo.class); @@ -89,7 +96,8 @@ public class SysClubEvaluateServiceImpl extends BaseServiceImpl @Override public Pagination schoolAuditPageData(ClubUserPageForm pageForm) { Cnd cnd = Cnd.NEW(); - cnd.and("nd.nodeCode","=",20); + cnd.and("t.taskName", "=", "ec81591d-da91-412a-90c9-df853dcef478"); + cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); Sql sql = generateSql(pageForm, cnd); return listPageVO(pageForm, sql, ClubEvaluatePageVo.class); } @@ -102,20 +110,29 @@ public class SysClubEvaluateServiceImpl extends BaseServiceImpl club.clubName, club.clubCode, dict.name as typeName, - 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 + ins.id AS instanceId, + ins.businessNo, + ins.state instanceState, + ins.variable instanceVariable, + ins.processDefineId instanceProcessDefineId, + t.id taskId, + t.taskName AS taskKey, + t.displayName taskName, + t.taskType, + t.performType taskPerformType, + t.taskState, + t.finishTime, + t.taskParentId, + t.variable taskVariable, + IFNULL(GROUP_CONCAT(DISTINCT nt.displayName),'结束') curTaskName, + IF(rt.id IS NOT NULL, 1, 0) AS canRevoke 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 sys_club_evaluate ce ON ce.id = inst.processInstanceBusinessId - LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE' + wf_process_task t + LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId + LEFT JOIN sys_club_evaluate ce ON ce.id = ins.businessNo + LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id + LEFT JOIN wf_process_task nt ON nt.processInstanceId = ins.id AND nt.taskState = 10 + LEFT JOIN wf_process_task rt ON rt.processInstanceId = ins.id AND rt.taskParentId = t.id AND rt.taskState = 10 LEFT JOIN sys_club club on club.id = ce.clubId LEFT JOIN sys_dict dict ON dict.CODE = club.clubType $condition @@ -124,14 +141,18 @@ public class SysClubEvaluateServiceImpl extends BaseServiceImpl cnd.andEX("ce.clubId", "=", pageForm.getClubId()); cnd.andEX("year(ce.applyTime)", "=", pageForm.getYear()); - if(pageForm.getAudit()){ - cnd.and("task.taskStatus","=", BpmProcessTaskStatusEnum.COMPLETE); - }else{ - cnd.and("task.taskStatus","=",BpmProcessTaskStatusEnum.ACTIVE); + if (pageForm.getAudit()) { + cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); + } else { + cnd.and("t.taskState", "=", ProcessTaskStateEnum.DOING.getCode()); + } + if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.desc("applyTime"); + } else { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); } - cnd.groupBy("ce.id"); - cnd.desc("applyTime"); + cnd.groupBy("t.id"); sql.setCondition(cnd); return sql; } diff --git a/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubExamineServiceImpl.java b/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubExamineServiceImpl.java index 404216c8..2aaba3e7 100644 --- a/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubExamineServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubExamineServiceImpl.java @@ -1,13 +1,16 @@ package com.budwk.app.zhgh.club.service.impl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import com.budwk.app.base.constant.BpmProcessConstant; import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.service.impl.BaseServiceImpl; +import com.budwk.app.base.utils.PageUtil; import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum; import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.flow.enums.ProcessTaskStateEnum; import com.budwk.app.sys.services.SysDictService; import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil; @@ -144,43 +147,45 @@ public class SysClubExamineServiceImpl extends BaseServiceImpl myManageClub = sysClubService.getMyManageClub(); - cnd.and("scer.clubId", "in", myManageClub.stream().map(SysClub::getId).toList()); + cnd.and("info.clubId", "in", myManageClub.stream().map(SysClub::getId).toList()); } Sql sql = Sqls.create(""" SELECT - scer.*, + info.*, u.username as concatPersonName, sc.concatPersonMobile, - inst.processInstanceNodeId, - inst.processInstanceNodeCode, - inst.processInstanceNodeName, - inst.processInstanceTaskIds, - inst.processInstanceStatus, - nd.nodeType AS processInstanceTaskNodeType, - ( - SELECT - count( 1 ) > 0 - FROM - bpm_process_task - WHERE - prevTaskId = ( SELECT id FROM bpm_process_task WHERE processInstanceId = inst.id AND processTaskNodeCode IN ( 10, 40, 70 ) ORDER BY createdAt DESC LIMIT 1 ) - AND taskStatus = 'COMPELTE' - ) AS nextTaskIsComplete + ins.id AS instanceId, + ins.businessNo, + ins.state instanceState, + ins.variable instanceVariable, + ins.processDefineId instanceProcessDefineId, + t.id taskId, + t.taskName AS taskKey, + t.displayName taskName, + t.taskType, + t.performType taskPerformType, + t.taskState, + t.finishTime, + t.taskParentId, + t.variable taskVariable, + IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke, + (select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask') AS startTaskId FROM - `sys_club_examine_register` scer - LEFT JOIN sys_club sc ON sc.id = scer.clubId + `sys_club_examine_register` info + LEFT JOIN sys_club sc ON sc.id = info.clubId LEFT JOIN `vw_user` u ON u.id = sc.concatPerson - LEFT JOIN bpm_process_instance inst ON inst.processInstanceBusinessId = scer.id - LEFT JOIN bpm_process_node_define nd ON nd.id = inst.processInstanceNodeId + LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id + LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10 + LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id $condition """); - cnd.andEX("YEAR(scer.registerDate)", "=", pageForm.getYear()); + cnd.andEX("YEAR(info.registerDate)", "=", pageForm.getYear()); cnd.andEX("sc.id", "=", pageForm.getClubId()); if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name(), RoleConstant.SCHOOL_UNION_CLUB_ADMIN.name())) { -// cnd.and("scer.userId", "=", SecurityUtil.getUserId()); + cnd.and("info.userId", "=", SecurityUtil.getUserId()); } - cnd.groupBy("scer.id"); + cnd.groupBy("info.id"); cnd.desc("registerDate"); sql.setCondition(cnd); return listPageVO(pageForm, sql, ClubExaminePageVo.class); @@ -200,14 +205,14 @@ public class SysClubExamineServiceImpl extends BaseServiceImpl schoolAuditPageData(ClubUserPageForm pageForm) { Cnd cnd = Cnd.NEW(); - cnd.and("nd.nodeCode","=",50); + cnd.and("t.taskName", "=", "ed4f6e9f-f0ea-4a73-ad57-bfcd8dd4d4bd"); + cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); Sql sql = generateSql(pageForm, cnd); return listPageVO(pageForm, sql, ClubExaminePageVo.class); } @Override public ClubExamineVo findOne(String id) { - Sql sql = Sqls.create(""" SELECT scer.*, @@ -220,8 +225,6 @@ public class SysClubExamineServiceImpl extends BaseServiceImpl detailedList = dao().query(SysClubExamineRegisterDetailed.class, Cnd.where("registerId", "=", id).asc("location")); clubExamineVo.setDetailedList(detailedList); return clubExamineVo; @@ -230,39 +233,54 @@ public class SysClubExamineServiceImpl extends BaseServiceImpl 0 AS nextTaskIsComplete + ins.id AS instanceId, + ins.businessNo, + ins.state instanceState, + ins.variable instanceVariable, + ins.processDefineId instanceProcessDefineId, + t.id taskId, + t.taskName AS taskKey, + t.displayName taskName, + t.taskType, + t.performType taskPerformType, + t.taskState, + t.finishTime, + t.taskParentId, + t.variable taskVariable, + IFNULL(GROUP_CONCAT(DISTINCT nt.displayName),'结束') curTaskName, + IF(rt.id IS NOT NULL, 1, 0) AS canRevoke 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 sys_club_examine_register scer ON scer.id = inst.processInstanceBusinessId - LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE' - LEFT JOIN sys_club club on club.id = scer.clubId + wf_process_task t + LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId + LEFT JOIN sys_club_examine_register info ON info.id = ins.businessNo + LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id + LEFT JOIN wf_process_task nt ON nt.processInstanceId = ins.id AND nt.taskState = 10 + LEFT JOIN wf_process_task rt ON rt.processInstanceId = ins.id AND rt.taskParentId = t.id AND rt.taskState = 10 + LEFT JOIN sys_club club on club.id = info.clubId LEFT JOIN sys_dict dict ON dict.CODE = club.clubType LEFT JOIN `vw_user` u ON u.id = club.concatPerson $condition """); - cnd.andEX("scer.clubId", "=", pageForm.getClubId()); - cnd.andEX("YEAR(scer.registerDate)", "=", pageForm.getYear()); - if(pageForm.getAudit()){ - cnd.and("task.taskStatus","=", BpmProcessTaskStatusEnum.COMPLETE); - }else{ - cnd.and("task.taskStatus","=",BpmProcessTaskStatusEnum.ACTIVE); + cnd.andEX("info.clubId", "=", pageForm.getClubId()); + cnd.andEX("YEAR(info.registerDate)", "=", pageForm.getYear()); + + if (pageForm.getAudit()) { + cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); + } else { + cnd.and("t.taskState", "=", ProcessTaskStateEnum.DOING.getCode()); } - cnd.groupBy("scer.id,task.id"); - cnd.desc("registerDate"); + if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.desc("registerDate"); + } else { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } + + cnd.groupBy("t.id"); sql.setCondition(cnd); return sql; } diff --git a/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubInfoManageServiceImpl.java b/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubInfoManageServiceImpl.java index 1d9c2b29..0c7d8637 100644 --- a/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubInfoManageServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/club/service/impl/SysClubInfoManageServiceImpl.java @@ -7,6 +7,7 @@ import com.budwk.app.base.service.impl.BaseServiceImpl; import com.budwk.app.base.utils.CommonDownloadUtil; import com.budwk.app.base.utils.SysOfficeTemplateUtil; import com.budwk.app.bpm.enums.BpmProcessInstanceStatusEnum; +import com.budwk.app.flow.enums.ProcessInstanceStateEnum; import com.budwk.app.sys.models.Sys_user_role; import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil; @@ -63,16 +64,15 @@ public class SysClubInfoManageServiceImpl extends BaseServiceImpl infoManagePageData(ClubUserPageForm pageForm) { Cnd cnd = Cnd.NEW(); -// Sql sql = generateSql(pageForm, cnd); Sql sql = Sqls.create(""" SELECT c.*, d.NAME AS typeName, ( SELECT - count( DISTINCT scu.userId ) - FROM - club_user scu + count( DISTINCT scu.userId ) + FROM + club_user scu WHERE scu.clubId = c.id ) currentNum, @@ -85,7 +85,7 @@ public class SysClubInfoManageServiceImpl extends BaseServiceImpl clubIdList = clubList.stream().map(Sys_user_role::getClubId).toList(); cnd.and("c.id", "in", clubIdList); } -// cnd.asc("c.state").desc("createTime"); cnd.asc("c.clubCode"); sql.setCondition(cnd); return listPageVO(pageForm, sql, ClubCommonPageVo.class); @@ -135,27 +132,20 @@ public class SysClubInfoManageServiceImpl extends BaseServiceImpl vo = sysClubService.listPageVO(pageForm, sql, ClubUserCommonPageVo.class); + return vo; } @Override @@ -295,7 +286,7 @@ public class SysClubInfoManageServiceImpl extends BaseServiceImpl implements SysC @Override public Pagination getAllClubWithPage(PageForm pageForm, Cnd cnd) { -// (select count(*) from sys_user where userState in ('在职', '在岗') and id in (select userId from sys_club_user where clubId = club.id and `status` = 5 and isNormal = true)) as workNum, -// (select count(*) from sys_user where userState in ('退休') and id in (select userId from sys_club_user where clubId = club.id and `status` = 5 and isNormal = true)) as retireNum, Sql sql = Sqls.create(""" SELECT club.*, @@ -71,10 +73,10 @@ public class SysClubServiceImpl extends BaseServiceImpl implements SysC FROM sys_club club LEFT JOIN sys_user u on club.concatPerson = u.id - LEFT JOIN bpm_process_instance ins ON ins.processInstanceBusinessId = club.id + LEFT JOIN wf_process_instance ins ON ins.businessNo = club.id $condition """).setParam("userId", SecurityUtil.getUserId()); - cnd.and("ins.processInstanceStatus", "=", BpmProcessInstanceStatusEnum.COMPLETED); + cnd.and("ins.state", "=", ProcessInstanceStateEnum.FINISHED.getCode()); sql.setCondition(cnd); return listPageVO(pageForm, sql, ClubCommonPageVo.class); } @@ -100,8 +102,6 @@ public class SysClubServiceImpl extends BaseServiceImpl implements SysC """); sql.setParam("id", clubId); ClubRegisterVo clubRegisterVo = fetchVO(sql, ClubRegisterVo.class); - - clubRegisterVo.setNodeTasks(bpmService.getNodeTasks(BpmProcessConstant.CLUB_REGISTER, clubId)); List clubUser = sysClubUserService.getClubUser(clubId); clubRegisterVo.setClubUser(clubUser); return clubRegisterVo; @@ -115,9 +115,7 @@ public class SysClubServiceImpl extends BaseServiceImpl implements SysC if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name(), RoleConstant.SCHOOL_UNION_CLUB_ADMIN.name())) { List roleList = commonService.findUserRoleByRoleCode(List.of(RoleConstant.CLUB_PRESIDENT.name(), RoleConstant.CLUB_VICE_PRESIDENT.name(), RoleConstant.CLUB_SECRETARY.name(), RoleConstant.CLUB_VICE_SECRETARY.name(),RoleConstant.CLUB_OPERATOR.name())); - List clubList = dao().query(Sys_user_role.class, Cnd.where("roleId", "in", roleList).and("userId", "=", SecurityUtil.getUserId()).and("clubId", "is not", null)); - List clubIdList = clubList.stream().map(Sys_user_role::getClubId).toList(); cnd.and("id", "in", clubIdList); @@ -126,8 +124,8 @@ public class SysClubServiceImpl extends BaseServiceImpl implements SysC List clubList = query(cnd); List list = clubList.stream().map(SysClub::getId).toList(); - List instanceList = dao().query(BpmProcessInstance.class, Cnd.where("processInstanceBusinessId", "in", list).and("processInstanceStatus", "=", BpmProcessInstanceStatusEnum.COMPLETED)); - List businessNoList = instanceList.stream().map(BpmProcessInstance::getProcessInstanceBusinessId).toList(); + List instanceList = dao().query(ProcessInstance.class, Cnd.where("businessNo", "in", list).and("state", "=", ProcessInstanceStateEnum.FINISHED.getCode())); + List businessNoList = instanceList.stream().map(ProcessInstance::getBusinessNo).toList(); return clubList.stream().filter(o -> businessNoList.contains(o.getId())).toList(); } @@ -141,13 +139,13 @@ public class SysClubServiceImpl extends BaseServiceImpl implements SysC sys_club club LEFT JOIN sys_club_examine_register ex ON club.id = ex.clubId LEFT JOIN sys_user_role ur ON club.id = ur.clubId - LEFT JOIN bpm_process_instance bpi ON bpi.processInstanceBusinessId = club.id - LEFT JOIN bpm_process_instance instance ON instance.processInstanceBusinessId = ex.id + LEFT JOIN wf_process_instance bpi ON bpi.businessNo = club.id + LEFT JOIN wf_process_instance instance ON instance.businessNo = ex.id $condition """); Cnd cnd = Cnd.NEW(); - cnd.and("bpi.processInstanceStatus", "=", BpmProcessInstanceStatusEnum.COMPLETED); - cnd.and("instance.processInstanceStatus", "=", BpmProcessInstanceStatusEnum.COMPLETED); + cnd.and("bpi.state", "=", ProcessInstanceStateEnum.FINISHED.getCode()); + cnd.and("instance.state", "=", ProcessInstanceStateEnum.FINISHED.getCode()); if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name(), RoleConstant.SCHOOL_UNION_CLUB_ADMIN.name())) { cnd.and("ur.userId", "=", SecurityUtil.getUserId()); List roleList = commonService.findUserRoleByRoleCode(List.of(RoleConstant.CLUB_PRESIDENT.name(), RoleConstant.CLUB_VICE_PRESIDENT.name(), RoleConstant.CLUB_SECRETARY.name(), RoleConstant.CLUB_VICE_SECRETARY.name(), RoleConstant.CLUB_OPERATOR.name())); @@ -183,18 +181,13 @@ public class SysClubServiceImpl extends BaseServiceImpl implements SysC @Override public SysClub doEdit(SysClub club, List deleteIds, List managePerson) { + // 修改协会表 dao().update(club); + // 修改发起人表 dao().clear(SysClubSponsor.class, Cnd.where("clubId", "=", club.getId())); + // 重新插入发起人 dao().insertLinks(club, "sponsors"); - //if (!Objects.equals(club.getState(), ClubRegistAuditState.SCHOOL_PASS)) { - //插入新建社团时填入的理事机构 -// List users = dao().query(SysClubUser.class, Cnd.NEW().andEX("id", "in", deleteIds)); -// List idList = users.stream().map(SysClubUser::getUserId).collect(Collectors.toList()); -// List roleList = commonService.findUserRoleByRoleCode(List.of(RoleConstant.CLUB_PRESIDENT.name(), RoleConstant.CLUB_VICE_PRESIDENT.name(), RoleConstant.CLUB_SECRETARY.name(), RoleConstant.CLUB_VICE_SECRETARY.name())); -// if (Lang.isNotEmpty(deleteIds)) { -// dao().clear(SysClubUser.class, Cnd.where("id", "in", deleteIds)); -// } dao().clear(Sys_user_role.class, Cnd.where("clubId", "=", club.getId())); dao().clear(ClubUser.class, Cnd.where(ClubUser::getClubId, "=", club.getId())); @@ -208,28 +201,6 @@ public class SysClubServiceImpl extends BaseServiceImpl implements SysC }).toList(); dao().insert(clubUsers); } - -// List clubUsers = new ArrayList<>(); -// managePerson.forEach(item -> { -// SysClubUser cUser = new SysClubUser(); -// SysClubUser fetch = dao().fetch(SysClubUser.class, Cnd.where("clubId", "=", club.getId()).and("userId", "=", item.getString("userId"))); -// if (fetch != null) { -// cUser = fetch; -// cUser.setUserId(item.getString("userId")); -// cUser.setRoleCode(item.getString("roleCode")); -// } else { -// cUser.setClubId(club.getId()); -// cUser.setUserId(item.getString("userId")); -// cUser.setJoinTime(DateUtil.now()); -// cUser.setRoleCode(item.getString("roleCode")); -// cUser.setPayed(true); -// cUser.setStatus(5); -// cUser.setGiveMoney(true); -// cUser.setIsNormal(true); -// } -// clubUsers.add(cUser); -// dao().insertOrUpdate(cUser); -// }); return club; } @@ -237,44 +208,43 @@ public class SysClubServiceImpl extends BaseServiceImpl implements SysC public Pagination minePageData(ClubUserPageForm pageForm) { Sql sql = Sqls.create(""" SELECT - club.*, + info.*, u.username AS concatPersonName, dict.name as typeName, - ( select GROUP_CONCAT(username) from `vw_user` where id in (select sponsorId from sys_club_sponsor where clubId = club.id) ) as sponsorName, - inst.processInstanceNodeId, - inst.processInstanceNodeCode, - inst.processInstanceNodeName, - inst.processInstanceTaskIds, - inst.processInstanceStatus, - nd.nodeType AS processInstanceTaskNodeType, - ( - SELECT - count( 1 ) > 0 - FROM - bpm_process_task - WHERE - prevTaskId = ( SELECT id FROM bpm_process_task WHERE processInstanceId = inst.id AND processTaskNodeCode IN ( 10, 40, 70 ) ORDER BY createdAt DESC LIMIT 1 ) - AND taskStatus = 'COMPELTE' - ) AS nextTaskIsComplete + ( select GROUP_CONCAT(username) from `vw_user` where id in (select sponsorId from sys_club_sponsor where clubId = info.id) ) as sponsorName, + ins.id AS instanceId, + ins.businessNo, + ins.state instanceState, + ins.variable instanceVariable, + ins.processDefineId instanceProcessDefineId, + t.id taskId, + t.taskName AS taskKey, + t.displayName taskName, + t.taskType, + t.performType taskPerformType, + t.taskState, + t.finishTime, + t.taskParentId, + t.variable taskVariable, + IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke, + (select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask') AS startTaskId FROM - sys_club club - LEFT JOIN sys_dict dict ON dict.CODE = club.clubType - LEFT JOIN sys_user u ON u.id = club.concatPerson - LEFT JOIN bpm_process_instance inst ON inst.processInstanceBusinessId = club.id - LEFT JOIN bpm_process_node_define nd ON nd.id = inst.processInstanceNodeId + sys_club info + LEFT JOIN sys_dict dict ON dict.CODE = info.clubType + LEFT JOIN sys_user u ON u.id = info.concatPerson + LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id + LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10 + LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id $condition """); Cnd cnd = Cnd.NEW(); - if (StrUtil.isNotBlank(pageForm.getClubName())) { - cnd.andEX("club.clubName", "like", "%" + pageForm.getClubName() + "%"); + cnd.andEX("info.clubName", "like", "%" + pageForm.getClubName() + "%"); } - cnd.andEX("year(club.createTime)", "=", pageForm.getYear()); - + cnd.andEX("year(info.createTime)", "=", pageForm.getYear()); if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name(), RoleConstant.SCHOOL_UNION_CLUB_ADMIN.name())) { - cnd.and("club.userId", "=", SecurityUtil.getUserId()); + cnd.and("info.userId", "=", SecurityUtil.getUserId()); } - cnd.groupBy("club.id"); cnd.desc("createTime"); sql.setCondition(cnd); return listPageVO(pageForm, sql, ClubRegisterPageVo.class); @@ -291,7 +261,8 @@ public class SysClubServiceImpl extends BaseServiceImpl implements SysC @Override public Pagination schoolReplyPageData(ClubUserPageForm pageForm) { Cnd cnd = Cnd.NEW(); - cnd.and("nd.nodeCode", "=", 50); + cnd.and("t.taskName", "=", "58ac932c-c304-4fbe-b379-dd85e9575001"); + cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); Sql sql = generateSql(pageForm, cnd); return listPageVO(pageForm, sql, ClubRegisterPageVo.class); } @@ -311,42 +282,48 @@ public class SysClubServiceImpl extends BaseServiceImpl implements SysC u.username AS concatPersonName, dict.name as typeName, ( select GROUP_CONCAT(username) from `vw_user` where id in (select sponsorId from sys_club_sponsor where clubId = club.id) ) as sponsorName, - 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 + ins.id AS instanceId, + ins.businessNo, + ins.state instanceState, + ins.variable instanceVariable, + ins.processDefineId instanceProcessDefineId, + t.id taskId, + t.taskName AS taskKey, + t.displayName taskName, + t.taskType, + t.performType taskPerformType, + t.taskState, + t.finishTime, + t.taskParentId, + t.variable taskVariable, + IFNULL(GROUP_CONCAT(DISTINCT nt.displayName),'结束') curTaskName, + IF(rt.id IS NOT NULL, 1, 0) AS canRevoke 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 sys_club club ON club.id = inst.processInstanceBusinessId - LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE' + wf_process_task t + LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId + LEFT JOIN sys_club club ON club.id = ins.businessNo + LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id + LEFT JOIN wf_process_task nt ON nt.processInstanceId = ins.id AND nt.taskState = 10 + LEFT JOIN wf_process_task rt ON rt.processInstanceId = ins.id AND rt.taskParentId = t.id AND rt.taskState = 10 LEFT JOIN sys_dict dict ON dict.CODE = club.clubType LEFT JOIN sys_user u ON u.id = club.concatPerson $condition """); - + cnd.andEX("year(club.createTime)", "=", pageForm.getYear()); if (StrUtil.isNotBlank(pageForm.getClubName())) { cnd.andEX("club.clubName", "like", "%" + pageForm.getClubName() + "%"); } - cnd.andEX("year(club.createTime)", "=", pageForm.getYear()); - - /*if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) { - cnd.and("club.userId", "=", SecurityUtil.getUserId()); - }*/ - if (pageForm.getAudit()) { - cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.COMPLETE); + cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); } else { - cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.ACTIVE); + cnd.and("t.taskState", "=", ProcessTaskStateEnum.DOING.getCode()); } - - cnd.groupBy("club.id"); - cnd.desc("createTime"); + if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.desc("createTime"); + } else { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } + cnd.groupBy("t.id"); sql.setCondition(cnd); return sql; } diff --git a/src/main/java/com/budwk/app/zhgh/club/vo/ClubEvaluatePageVo.java b/src/main/java/com/budwk/app/zhgh/club/vo/ClubEvaluatePageVo.java index 24a8bca2..09654e4c 100644 --- a/src/main/java/com/budwk/app/zhgh/club/vo/ClubEvaluatePageVo.java +++ b/src/main/java/com/budwk/app/zhgh/club/vo/ClubEvaluatePageVo.java @@ -7,8 +7,7 @@ import lombok.EqualsAndHashCode; import java.util.Date; @Data -@EqualsAndHashCode(callSuper = true) -public class ClubEvaluatePageVo extends BpmTaskApprovalVo { +public class ClubEvaluatePageVo { private String id; private String year; @@ -18,4 +17,22 @@ public class ClubEvaluatePageVo extends BpmTaskApprovalVo { private String foundTime; private String typeName; private Date applyTime; + + private String instanceId; + private String businessNo; + private Integer instanceState; + private String instanceVariable; + private String instanceProcessDefineId; + private String taskId; + private String taskKey; + private String taskName; + private Integer taskType; + private Integer taskPerformType; + private Integer taskState; + private Date finishTime; + private String taskParentId; + private String taskVariable; + private String curTaskName; + private Boolean canRevoke; + private String startTaskId; } diff --git a/src/main/java/com/budwk/app/zhgh/club/vo/ClubEvaluateVo.java b/src/main/java/com/budwk/app/zhgh/club/vo/ClubEvaluateVo.java index cd9f5e43..c3572ab2 100644 --- a/src/main/java/com/budwk/app/zhgh/club/vo/ClubEvaluateVo.java +++ b/src/main/java/com/budwk/app/zhgh/club/vo/ClubEvaluateVo.java @@ -12,8 +12,6 @@ import java.util.List; @EqualsAndHashCode(callSuper = true) public class ClubEvaluateVo extends SysClubEvaluate { - @ApiModelProperty("节点审批记录") - private List nodeTasks; private String clubName; private String clubCode; private String createTime; diff --git a/src/main/java/com/budwk/app/zhgh/club/vo/ClubExaminePageVo.java b/src/main/java/com/budwk/app/zhgh/club/vo/ClubExaminePageVo.java index 493ab7c8..0dd05975 100644 --- a/src/main/java/com/budwk/app/zhgh/club/vo/ClubExaminePageVo.java +++ b/src/main/java/com/budwk/app/zhgh/club/vo/ClubExaminePageVo.java @@ -5,11 +5,11 @@ import com.budwk.app.bpm.vo.BpmTaskApprovalVo; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.Date; import java.util.List; @Data -@EqualsAndHashCode(callSuper = true) -public class ClubExaminePageVo extends BpmTaskApprovalVo { +public class ClubExaminePageVo{ private String id; private String year; @@ -19,4 +19,21 @@ public class ClubExaminePageVo extends BpmTaskApprovalVo { private String registerDate; private String typeName; + private String instanceId; + private String businessNo; + private Integer instanceState; + private String instanceVariable; + private String instanceProcessDefineId; + private String taskId; + private String taskKey; + private String taskName; + private Integer taskType; + private Integer taskPerformType; + private Integer taskState; + private Date finishTime; + private String taskParentId; + private String taskVariable; + private String curTaskName; + private Boolean canRevoke; + private String startTaskId; } diff --git a/src/main/java/com/budwk/app/zhgh/club/vo/ClubRegisterPageVo.java b/src/main/java/com/budwk/app/zhgh/club/vo/ClubRegisterPageVo.java index 806efde0..d6bcfd63 100644 --- a/src/main/java/com/budwk/app/zhgh/club/vo/ClubRegisterPageVo.java +++ b/src/main/java/com/budwk/app/zhgh/club/vo/ClubRegisterPageVo.java @@ -1,12 +1,14 @@ package com.budwk.app.zhgh.club.vo; +import cn.hutool.core.date.DateTime; import com.budwk.app.bpm.vo.BpmTaskApprovalVo; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.Date; + @Data -@EqualsAndHashCode(callSuper = true) -public class ClubRegisterPageVo extends BpmTaskApprovalVo { +public class ClubRegisterPageVo { private String id; private String clubCode; @@ -24,4 +26,22 @@ public class ClubRegisterPageVo extends BpmTaskApprovalVo { private String typeName; private String userId; private String sponsor; + + private String instanceId; + private String businessNo; + private Integer instanceState; + private String instanceVariable; + private String instanceProcessDefineId; + private String taskId; + private String taskKey; + private String taskName; + private Integer taskType; + private Integer taskPerformType; + private Integer taskState; + private Date finishTime; + private String taskParentId; + private String taskVariable; + private String curTaskName; + private Boolean canRevoke; + private String startTaskId; } diff --git a/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserCommonPageVo.java b/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserCommonPageVo.java index 2081a099..af59f470 100644 --- a/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserCommonPageVo.java +++ b/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserCommonPageVo.java @@ -1,6 +1,7 @@ package com.budwk.app.zhgh.club.vo; import cn.hutool.json.JSONObject; +import com.budwk.app.zhgh.club.model.ClubUser; import com.budwk.app.zhgh.club.model.SysClubUser; import lombok.Data; import lombok.EqualsAndHashCode; @@ -9,7 +10,7 @@ import java.util.List; @Data @EqualsAndHashCode(callSuper = true) -public class ClubUserCommonPageVo extends SysClubUser { +public class ClubUserCommonPageVo extends ClubUser { private String clubName; private String clubCode; diff --git a/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserJoinPageVo.java b/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserJoinPageVo.java index 7c92b803..73f2bc55 100644 --- a/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserJoinPageVo.java +++ b/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserJoinPageVo.java @@ -6,41 +6,42 @@ import lombok.EqualsAndHashCode; import java.util.Date; -@EqualsAndHashCode(callSuper = true) @Data -public class ClubUserJoinPageVo extends BpmTaskApprovalVo { +public class ClubUserJoinPageVo{ private String id; - private String clubId; - private String userId; - private String roleCode; - private Boolean mode; - private String clubPosition; - private String email; - private String avatar; - private String sameTimeJoinOtherClubSituation; - private String awardsExperience; - private Date applyDate; - private String clubName; - private String loginName; - private String userName; - private String unitName; - private String unionName; - private String sex; + + private String instanceId; + private String businessNo; + private Integer instanceState; + private String instanceVariable; + private String instanceProcessDefineId; + private String taskId; + private String taskKey; + private String taskName; + private Integer taskType; + private Integer taskPerformType; + private Integer taskState; + private Date finishTime; + private String taskParentId; + private String taskVariable; + private String curTaskName; + private Boolean canRevoke; + private String startTaskId; } diff --git a/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserJoinVo.java b/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserJoinVo.java index 8ce699d3..2070791b 100644 --- a/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserJoinVo.java +++ b/src/main/java/com/budwk/app/zhgh/club/vo/ClubUserJoinVo.java @@ -8,23 +8,14 @@ import lombok.EqualsAndHashCode; import java.util.List; -@EqualsAndHashCode(callSuper = true) @Data +@EqualsAndHashCode(callSuper = true) public class ClubUserJoinVo extends ClubUserApply { private String loginName; - private String userName; - private String unitName; - private String unionName; - private String sex; - private String mobile; - - @ApiModelProperty("节点审批记录") - private List nodeTasks; - } diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/recuperation/controller/RecuperationLineSelectController.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/recuperation/controller/RecuperationLineSelectController.java index 6ddd3150..44856394 100644 --- a/src/main/java/com/budwk/app/zhgh/staffbenefit/recuperation/controller/RecuperationLineSelectController.java +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/recuperation/controller/RecuperationLineSelectController.java @@ -37,6 +37,7 @@ import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; +import javax.servlet.http.HttpServletRequest; import java.util.*; import java.util.stream.Collectors; @@ -59,10 +60,18 @@ public class RecuperationLineSelectController { @Inject private RecuperationLineSelectService lineSelectService; - @At("") + @At("/branchUnion") @Ok("beetl:/platform/zhgh/staffbenefit/recuperation/lineSelect/index.html") @SaCheckLogin - public void index() { + public void branchUnion(HttpServletRequest request) { + request.setAttribute("mode", 1); + } + + @At("/schoolUnion") + @Ok("beetl:/platform/zhgh/staffbenefit/recuperation/lineSelect/index.html") + @SaCheckLogin + public void schoolUnion(HttpServletRequest request) { + request.setAttribute("mode", 2); } @At diff --git a/src/main/resources/views/platform/zhgh/club/applyJoin/apply/index.html b/src/main/resources/views/platform/zhgh/club/applyJoin/apply/index.html deleted file mode 100644 index 32e1b46f..00000000 --- a/src/main/resources/views/platform/zhgh/club/applyJoin/apply/index.html +++ /dev/null @@ -1,302 +0,0 @@ - - - -
- - - - - -
- - diff --git a/src/main/resources/views/platform/zhgh/club/applyJoin/clubAudit/index.html b/src/main/resources/views/platform/zhgh/club/applyJoin/clubAudit/index.html deleted file mode 100644 index 2bba4e49..00000000 --- a/src/main/resources/views/platform/zhgh/club/applyJoin/clubAudit/index.html +++ /dev/null @@ -1,213 +0,0 @@ - - - -
- - - - - - - - 已缴费 - 未缴费 - - - - - 取 消 - 确 定 - - -
- - diff --git a/src/main/resources/views/platform/zhgh/club/common/clubInfoComponent.js b/src/main/resources/views/platform/zhgh/club/common/clubInfoComponent.js index eaff9879..880fa534 100644 --- a/src/main/resources/views/platform/zhgh/club/common/clubInfoComponent.js +++ b/src/main/resources/views/platform/zhgh/club/common/clubInfoComponent.js @@ -3,8 +3,11 @@ const REGISTER_INFO_COMPONENT = {
-
协会信息
- +
+ 协会信息 + 点击查看流程图 +
+ {{viewData.clubName}} @@ -17,65 +20,46 @@ const REGISTER_INFO_COMPONENT = { {{ viewData.sponsorName }} - + {{ viewData.typeName }} - - - - - - - - - {{viewData.createTime}} - + {{viewData.due}} - +
- +
- - + - + - + - + - + -
+ +
成员信息
@@ -83,7 +67,7 @@ const REGISTER_INFO_COMPONENT = { :header-cell-style="{background:'#F5F5F5',color:'#606266'}"> @@ -95,25 +79,34 @@ const REGISTER_INFO_COMPONENT = {
- - - + + + + + @@ -69,21 +65,26 @@ layout("/layouts/platform.html"){
@@ -112,42 +113,47 @@ layout("/layouts/platform.html"){ methods: { openView(row) { this.$refs.guava.public(() => { - this.$refs.examineInfoRef.onOpen(row.id) + this.$refs.evaluateInfoRef.onOpen(row) this.showApprovalForm = false }) }, - openApproval(row) { + onAudit(row) { this.$refs.guava.public(() => { - this.$refs.examineInfoRef.onOpen(row.id) - this.formData = row.approvalParam - this.showApprovalForm = true - }) - }, - doApproval(approvalType) { - this.formData.bpmTaskApprovalType = approvalType - this.$refs.approvalFormRef.validate((valid) => { - if (valid) { - this.$axios - .post(loc() + "/approval", { - approval: JSON.stringify(this.formData) - }) - .then((res) => { - if (res.code === 0) { - this.$refs.guava.index() - this.$message.success(res.msg) - this.doSearch() - } - }) + this.formData = { + processTaskId: row.taskId, + taskName: row.curTaskName } + this.showApprovalForm = true + this.$refs.evaluateInfoRef.onOpen(row) }) }, - openRevoke(taskId) { + handleTaskAction(val) { + this.$confirm("您确定要提交吗?", "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }).then(() => { + this.$axios.post("/flow/common/executeTask", { + data: JSON.stringify({ + ...this.formData, + submitType: val + }) + }).then((res) => { + if (res.code === 0) { + this.$refs.guava.index() + this.$message.success(res.msg) + this.doSearch() + } + }) + }) + }, + onRevoke(row) { this.$confirm("您确定要撤回吗?", "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "info" }).then(() => { - this.$axios.post(loc() + "/revoke", { taskId }).then((res) => { + this.$axios.post("/flow/common/revokeTask", {taskId: row.taskId}).then((res) => { if (res.code === 0) { this.$message.success(res.msg) this.doSearch() diff --git a/src/main/resources/views/platform/zhgh/club/examine/apply/index.html b/src/main/resources/views/platform/zhgh/club/examine/apply/index.html index 8608434e..af1ea006 100644 --- a/src/main/resources/views/platform/zhgh/club/examine/apply/index.html +++ b/src/main/resources/views/platform/zhgh/club/examine/apply/index.html @@ -4,11 +4,6 @@ layout("/layouts/platform.html"){
@@ -17,10 +12,7 @@ layout("/layouts/platform.html"){
- 返回 - -

考核登记

+

考核登记

@@ -32,7 +24,6 @@ layout("/layouts/platform.html"){ - - - - - - - - - - - - - - - - - - - 说明:非赛事活动无需填写赛事举办单位、获奖情况。 - @@ -142,7 +108,7 @@ layout("/layouts/platform.html"){ - @@ -154,7 +120,7 @@ layout("/layouts/platform.html"){ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -