Compare commits
12
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a09c6ae2c9 | ||
|
|
d197c78b9c | ||
|
|
dbca87f09c | ||
|
|
38b1a09e11 | ||
|
|
5cecb3b185 | ||
|
|
fc727c690a | ||
|
|
063e22491a | ||
|
|
48ebcc148d | ||
|
|
50f82e05e5 | ||
|
|
94fa74af53 | ||
|
|
3c3e64f2be | ||
|
|
a18f77cd68 |
+16
-1
@@ -12,6 +12,7 @@ import com.budwk.app.bpm.service.BpmService;
|
|||||||
import com.budwk.app.sys.models.Sys_user;
|
import com.budwk.app.sys.models.Sys_user;
|
||||||
import com.budwk.app.sys.models.Sys_user_role;
|
import com.budwk.app.sys.models.Sys_user_role;
|
||||||
import com.budwk.app.sys.services.SysMsgService;
|
import com.budwk.app.sys.services.SysMsgService;
|
||||||
|
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||||
import com.budwk.app.web.controllers.open.commons.service.CommonService;
|
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.ClubUser;
|
||||||
@@ -63,6 +64,7 @@ public class ClubUserJoinApplyController {
|
|||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
cua.*,
|
cua.*,
|
||||||
|
club.clubName,
|
||||||
u.loginname AS loginName,
|
u.loginname AS loginName,
|
||||||
u.username AS userName,
|
u.username AS userName,
|
||||||
u.sex,
|
u.sex,
|
||||||
@@ -74,6 +76,7 @@ public class ClubUserJoinApplyController {
|
|||||||
FROM
|
FROM
|
||||||
club_user_apply cua
|
club_user_apply cua
|
||||||
LEFT JOIN vw_user u ON u.id = cua.userId
|
LEFT JOIN vw_user u ON u.id = cua.userId
|
||||||
|
LEFT JOIN sys_club club ON club.id = cua.clubId
|
||||||
WHERE cua.id = @id
|
WHERE cua.id = @id
|
||||||
""").setParam("id", id);
|
""").setParam("id", id);
|
||||||
sql.setCallback(Sqls.callback.map());
|
sql.setCallback(Sqls.callback.map());
|
||||||
@@ -87,10 +90,22 @@ public class ClubUserJoinApplyController {
|
|||||||
@SaCheckPermission("club.join.apply")
|
@SaCheckPermission("club.join.apply")
|
||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
public Result submit(ClubUserApply clubUserApply) {
|
public Result submit(ClubUserApply clubUserApply) {
|
||||||
|
if (StrUtil.isNotBlank(clubUserApply.getId())) {
|
||||||
|
ClubUserApply existingApply = dao.fetch(ClubUserApply.class, clubUserApply.getId());
|
||||||
|
if (existingApply == null || !StrUtil.equals(existingApply.getUserId(), clubUserApply.getUserId())
|
||||||
|
|| (!AuthUtil.hasRole(RoleConstant.SYSADMIN.name()) && !StrUtil.equals(existingApply.getUserId(), SecurityUtil.getUserId()))) {
|
||||||
|
return Result.error("申请不存在或无权编辑!");
|
||||||
|
}
|
||||||
|
BpmProcessInstance existingInstance = dao.fetch(BpmProcessInstance.class, Cnd.where(BpmProcessInstance::getProcessInstanceBusinessId, "=", existingApply.getId()));
|
||||||
|
if (existingInstance == null || existingInstance.getProcessInstanceNodeCode() == null
|
||||||
|
|| !List.of(10, 40, 70).contains(existingInstance.getProcessInstanceNodeCode())) {
|
||||||
|
return Result.error("当前申请状态不允许编辑提交!");
|
||||||
|
}
|
||||||
|
}
|
||||||
Sys_user user = dao.fetch(Sys_user.class, Cnd.where("id", "=", clubUserApply.getUserId()));
|
Sys_user user = dao.fetch(Sys_user.class, Cnd.where("id", "=", clubUserApply.getUserId()));
|
||||||
if (!user.getMember() && !("劳务派遣一类".equals(user.getPreparedBy()) || "劳务派遣二类".equals(user.getPreparedBy()))) return Result.error("暂无申请加入协会资格!");
|
if (!user.getMember() && !("劳务派遣一类".equals(user.getPreparedBy()) || "劳务派遣二类".equals(user.getPreparedBy()))) return Result.error("暂无申请加入协会资格!");
|
||||||
|
|
||||||
ClubUserApply userApply = dao.fetch(ClubUserApply.class, Cnd.where("userId", "=", clubUserApply.getUserId()).and("clubId", "=", clubUserApply.getClubId()).and("mode", "=", 1).desc(ClubUserApply::getApplyDate));
|
ClubUserApply userApply = dao.fetch(ClubUserApply.class, Cnd.where("userId", "=", clubUserApply.getUserId()).and("clubId", "=", clubUserApply.getClubId()).and("mode", "=", 1).andEX("id", "!=", clubUserApply.getId()).desc(ClubUserApply::getApplyDate));
|
||||||
if (ObjectUtil.isNotEmpty(userApply) && StrUtil.isNotBlank(userApply.getId())) {
|
if (ObjectUtil.isNotEmpty(userApply) && StrUtil.isNotBlank(userApply.getId())) {
|
||||||
BpmProcessInstance processInstance = dao.fetch(BpmProcessInstance.class, Cnd.where(BpmProcessInstance::getProcessInstanceBusinessId, "=", userApply.getId()));
|
BpmProcessInstance processInstance = dao.fetch(BpmProcessInstance.class, Cnd.where(BpmProcessInstance::getProcessInstanceBusinessId, "=", userApply.getId()));
|
||||||
if (!processInstance.getProcessInstanceStatus().equals(BpmProcessInstanceStatusEnum.COMPLETED.name())) {
|
if (!processInstance.getProcessInstanceStatus().equals(BpmProcessInstanceStatusEnum.COMPLETED.name())) {
|
||||||
|
|||||||
+3
-117
@@ -1,32 +1,11 @@
|
|||||||
package com.budwk.app.zhgh.club.controller.apply;
|
package com.budwk.app.zhgh.club.controller.apply;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import com.budwk.app.base.constant.RoleConstant;
|
|
||||||
import com.budwk.app.base.page.Pagination;
|
|
||||||
import com.budwk.app.base.result.Result;
|
import com.budwk.app.base.result.Result;
|
||||||
import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum;
|
|
||||||
import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum;
|
|
||||||
import com.budwk.app.bpm.models.BpmProcessInstance;
|
|
||||||
import com.budwk.app.bpm.models.BpmProcessTask;
|
|
||||||
import com.budwk.app.bpm.param.BpmTaskApprovalParam;
|
import com.budwk.app.bpm.param.BpmTaskApprovalParam;
|
||||||
import com.budwk.app.bpm.service.BpmService;
|
|
||||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
|
||||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
|
||||||
import com.budwk.app.web.controllers.open.commons.service.CommonService;
|
|
||||||
import com.budwk.app.zhgh.club.model.ClubUser;
|
|
||||||
import com.budwk.app.zhgh.club.model.ClubUserApply;
|
|
||||||
import com.budwk.app.zhgh.club.param.ClubUserJoinPageForm;
|
import com.budwk.app.zhgh.club.param.ClubUserJoinPageForm;
|
||||||
import com.budwk.app.zhgh.club.service.ClubUserJoinService;
|
import com.budwk.app.zhgh.club.service.ClubUserJoinService;
|
||||||
import com.budwk.app.zhgh.club.vo.ClubUserJoinPageVo;
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
|
||||||
import org.nutz.dao.Cnd;
|
|
||||||
import org.nutz.dao.Dao;
|
|
||||||
import org.nutz.dao.Sqls;
|
|
||||||
import org.nutz.dao.sql.Sql;
|
|
||||||
import org.nutz.dao.util.cri.Static;
|
|
||||||
import org.nutz.ioc.aop.Aop;
|
|
||||||
import org.nutz.ioc.loader.annotation.Inject;
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
import org.nutz.mvc.annotation.At;
|
import org.nutz.mvc.annotation.At;
|
||||||
@@ -34,23 +13,14 @@ import org.nutz.mvc.annotation.Ok;
|
|||||||
import org.nutz.mvc.annotation.Param;
|
import org.nutz.mvc.annotation.Param;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@IocBean
|
@IocBean
|
||||||
@At("/platform/club/join/clubApproval")
|
@At("/platform/club/join/clubApproval")
|
||||||
@Ok("json:full")
|
@Ok("json:full")
|
||||||
public class ClubUserJoinApprovalController {
|
public class ClubUserJoinApprovalController {
|
||||||
|
|
||||||
@Inject
|
|
||||||
private CommonService commonService;
|
|
||||||
@Inject
|
|
||||||
private BpmService bpmService;
|
|
||||||
@Inject
|
@Inject
|
||||||
private ClubUserJoinService clubUserJoinService;
|
private ClubUserJoinService clubUserJoinService;
|
||||||
@Inject
|
|
||||||
private Dao dao;
|
|
||||||
|
|
||||||
@At("")
|
@At("")
|
||||||
@SaCheckPermission("club.join.clubApproval")
|
@SaCheckPermission("club.join.clubApproval")
|
||||||
@@ -62,106 +32,22 @@ public class ClubUserJoinApprovalController {
|
|||||||
@At
|
@At
|
||||||
@SaCheckPermission("club.join.clubApproval")
|
@SaCheckPermission("club.join.clubApproval")
|
||||||
public Result pageData(@Valid ClubUserJoinPageForm pageForm, boolean approval) {
|
public Result pageData(@Valid ClubUserJoinPageForm pageForm, boolean approval) {
|
||||||
Sql sql = Sqls.create("""
|
return Result.success(clubUserJoinService.pageDataByClubApproval(pageForm, approval));
|
||||||
SELECT
|
|
||||||
info.*,
|
|
||||||
u.loginname AS loginName,
|
|
||||||
u.username AS userName,
|
|
||||||
u.sex,
|
|
||||||
u.unitName,
|
|
||||||
u.unionName,
|
|
||||||
club.clubName,
|
|
||||||
inst.id processInstanceId,
|
|
||||||
inst.processInstanceNodeId,
|
|
||||||
inst.processInstanceNodeName,
|
|
||||||
inst.processInstanceTaskIds,
|
|
||||||
inst.processInstanceStatus,
|
|
||||||
task.id processInstanceTaskId,
|
|
||||||
task.taskStatus processInstanceTaskStatus,
|
|
||||||
COUNT( nt.id ) OVER ( PARTITION BY task.id ) > 0 AS nextTaskIsComplete
|
|
||||||
FROM
|
|
||||||
bpm_process_task task
|
|
||||||
INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId
|
|
||||||
INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId
|
|
||||||
INNER JOIN club_user_apply info ON info.id = inst.processInstanceBusinessId
|
|
||||||
LEFT JOIN sys_club club ON club.id = info.clubId
|
|
||||||
LEFT JOIN vw_user u on u.id = info.userId
|
|
||||||
LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id
|
|
||||||
AND nt.taskStatus = 'COMPLETE'
|
|
||||||
$condition
|
|
||||||
""");
|
|
||||||
Cnd cnd = Cnd.NEW();
|
|
||||||
if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){
|
|
||||||
cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname())));
|
|
||||||
}
|
|
||||||
|
|
||||||
cnd.and("nd.nodeCode","=",20);
|
|
||||||
if(approval){
|
|
||||||
cnd.and("task.taskStatus","=", BpmProcessTaskStatusEnum.COMPLETE);
|
|
||||||
}else{
|
|
||||||
cnd.and("task.taskStatus","=",BpmProcessTaskStatusEnum.ACTIVE);
|
|
||||||
}
|
|
||||||
|
|
||||||
cnd.andEX("YEAR(info.applyDate)","=",pageForm.getYear());
|
|
||||||
cnd.and(Cnd.likeEX("u.userName", pageForm.getUserName()));
|
|
||||||
cnd.and(Cnd.likeEX("u.loginName", pageForm.getLoginName()));
|
|
||||||
cnd.andEX("u.unionId","=",pageForm.getUnionId());
|
|
||||||
cnd.andEX("u.unitId","=",pageForm.getUnitId());
|
|
||||||
cnd.andEX("info.clubId","=",pageForm.getClubId());
|
|
||||||
sql.setCondition(cnd);
|
|
||||||
|
|
||||||
Pagination<ClubUserJoinPageVo> pageVO = clubUserJoinService.listPageVO(pageForm, sql, ClubUserJoinPageVo.class);
|
|
||||||
return Result.success(pageVO);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@SaCheckPermission("club.join.clubApproval")
|
@SaCheckPermission("club.join.clubApproval")
|
||||||
@ApiOperation("审核")
|
@ApiOperation("审核")
|
||||||
@Aop(TransAop.READ_COMMITTED)
|
|
||||||
public Result approval(@Valid @Param("approval") BpmTaskApprovalParam approvalParam){
|
public Result approval(@Valid @Param("approval") BpmTaskApprovalParam approvalParam){
|
||||||
// approvalParam.getBpmTaskApprovalTypeEnum();
|
clubUserJoinService.clubApproval(approvalParam);
|
||||||
// Map<String, Object> variables = BeanUtil.beanToMap(approvalParam);
|
|
||||||
// List<String> assignments = new ArrayList<>();
|
|
||||||
// if(approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)){
|
|
||||||
// String approvalLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_CLUB_ADMIN);
|
|
||||||
// assignments.add(approvalLoginName);
|
|
||||||
// }
|
|
||||||
// bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, assignments);
|
|
||||||
|
|
||||||
|
|
||||||
Map<String, Object> variables = BeanUtil.beanToMap(approvalParam);
|
|
||||||
List<String> assignments = new ArrayList<>();
|
|
||||||
bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, assignments);
|
|
||||||
|
|
||||||
if (approvalParam.getBpmTaskApprovalTypeEnum() == BpmTaskApprovalTypeEnum.PASS) {
|
|
||||||
String processInstanceBusinessId = approvalParam.getProcessInstanceBusinessId();
|
|
||||||
ClubUserApply clubUserApply = dao.fetch(ClubUserApply.class, processInstanceBusinessId);
|
|
||||||
if (clubUserApply != null) {
|
|
||||||
ClubUser existUser = dao.fetch(ClubUser.class, Cnd.where("userId", "=", clubUserApply.getUserId()).and("clubId", "=", clubUserApply.getClubId()));
|
|
||||||
if (existUser == null) {
|
|
||||||
ClubUser clubUser = BeanUtil.copyProperties(clubUserApply, ClubUser.class);
|
|
||||||
dao.insert(clubUser);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@SaCheckPermission("club.join.clubApproval")
|
@SaCheckPermission("club.join.clubApproval")
|
||||||
@ApiOperation("撤回")
|
@ApiOperation("撤回")
|
||||||
@Aop(TransAop.READ_COMMITTED)
|
|
||||||
public Result revoke(@Valid String taskId){
|
public Result revoke(@Valid String taskId){
|
||||||
bpmService.revokeTask(taskId);
|
clubUserJoinService.revokeClubApproval(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();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,18 @@
|
|||||||
package com.budwk.app.zhgh.club.h5controller;
|
package com.budwk.app.zhgh.club.h5controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import com.budwk.app.base.result.Result;
|
||||||
|
import com.budwk.app.bpm.param.BpmTaskApprovalParam;
|
||||||
|
import com.budwk.app.zhgh.club.param.ClubUserJoinPageForm;
|
||||||
|
import com.budwk.app.zhgh.club.service.ClubUserJoinService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
import org.nutz.mvc.annotation.At;
|
import org.nutz.mvc.annotation.At;
|
||||||
import org.nutz.mvc.annotation.Ok;
|
import org.nutz.mvc.annotation.Ok;
|
||||||
|
import org.nutz.mvc.annotation.Param;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
@IocBean
|
@IocBean
|
||||||
@At("/platform/h5/club/audit")
|
@At("/platform/h5/club/audit")
|
||||||
@@ -12,10 +20,40 @@ import org.nutz.mvc.annotation.Ok;
|
|||||||
@Api("h5入会审核")
|
@Api("h5入会审核")
|
||||||
public class H5ClubAuditController {
|
public class H5ClubAuditController {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private ClubUserJoinService clubUserJoinService;
|
||||||
|
|
||||||
|
|
||||||
@At("")
|
@At("")
|
||||||
@Ok("beetl:/platform/zhghh5/club/audit/index.html")
|
@Ok("beetl:/platform/zhghh5/club/audit/index.html")
|
||||||
@SaCheckPermission("h5.club.audit")
|
@SaCheckPermission("h5.club.audit")
|
||||||
public void index() {
|
public void index() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@SaCheckPermission("h5.club.audit")
|
||||||
|
public Result pageData(@Valid ClubUserJoinPageForm pageForm, boolean approval, Integer auditType) {
|
||||||
|
Boolean approvalStatus = approval;
|
||||||
|
if (Integer.valueOf(1).equals(auditType)) {
|
||||||
|
approvalStatus = null;
|
||||||
|
} else if (auditType != null) {
|
||||||
|
approvalStatus = Integer.valueOf(2).equals(auditType);
|
||||||
|
}
|
||||||
|
return Result.success(clubUserJoinService.pageDataByClubApproval(pageForm, approvalStatus));
|
||||||
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@SaCheckPermission("h5.club.audit")
|
||||||
|
public Result doAudit(@Valid @Param("approval") BpmTaskApprovalParam approvalParam) {
|
||||||
|
clubUserJoinService.clubApproval(approvalParam);
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@SaCheckPermission("h5.club.audit")
|
||||||
|
public Result revoke(@Valid String taskId){
|
||||||
|
clubUserJoinService.revokeClubApproval(taskId);
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,19 @@
|
|||||||
package com.budwk.app.zhgh.club.service;
|
package com.budwk.app.zhgh.club.service;
|
||||||
|
|
||||||
|
import com.budwk.app.base.page.Pagination;
|
||||||
|
import com.budwk.app.bpm.param.BpmTaskApprovalParam;
|
||||||
|
import com.budwk.app.zhgh.club.param.ClubUserJoinPageForm;
|
||||||
|
import com.budwk.app.zhgh.club.vo.ClubUserJoinPageVo;
|
||||||
import com.budwk.app.base.service.BaseService;
|
import com.budwk.app.base.service.BaseService;
|
||||||
import com.budwk.app.zhgh.club.model.ClubUserApply;
|
import com.budwk.app.zhgh.club.model.ClubUserApply;
|
||||||
|
|
||||||
public interface ClubUserJoinService extends BaseService<ClubUserApply> {
|
public interface ClubUserJoinService extends BaseService<ClubUserApply> {
|
||||||
|
|
||||||
|
Pagination<ClubUserJoinPageVo> pageDataByClubApproval(ClubUserJoinPageForm pageForm, boolean approval);
|
||||||
|
|
||||||
|
Pagination<ClubUserJoinPageVo> pageDataByClubApproval(ClubUserJoinPageForm pageForm, Boolean approval);
|
||||||
|
|
||||||
|
void clubApproval(BpmTaskApprovalParam approvalParam);
|
||||||
|
|
||||||
|
void revokeClubApproval(String taskId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,147 @@
|
|||||||
package com.budwk.app.zhgh.club.service.impl;
|
package com.budwk.app.zhgh.club.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import com.budwk.app.base.constant.RoleConstant;
|
||||||
|
import com.budwk.app.base.page.Pagination;
|
||||||
|
import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum;
|
||||||
|
import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum;
|
||||||
|
import com.budwk.app.bpm.models.BpmProcessInstance;
|
||||||
|
import com.budwk.app.bpm.models.BpmProcessTask;
|
||||||
|
import com.budwk.app.bpm.param.BpmTaskApprovalParam;
|
||||||
|
import com.budwk.app.bpm.service.BpmService;
|
||||||
|
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||||
|
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||||
|
import com.budwk.app.zhgh.club.model.ClubUser;
|
||||||
|
import com.budwk.app.zhgh.club.param.ClubUserJoinPageForm;
|
||||||
|
import com.budwk.app.zhgh.club.vo.ClubUserJoinPageVo;
|
||||||
|
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||||
|
import org.nutz.dao.Cnd;
|
||||||
|
import org.nutz.dao.Sqls;
|
||||||
|
import org.nutz.dao.sql.Sql;
|
||||||
|
import org.nutz.dao.util.cri.Static;
|
||||||
|
import org.nutz.ioc.aop.Aop;
|
||||||
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||||
import com.budwk.app.zhgh.club.model.ClubUserApply;
|
import com.budwk.app.zhgh.club.model.ClubUserApply;
|
||||||
import com.budwk.app.zhgh.club.service.ClubUserJoinService;
|
import com.budwk.app.zhgh.club.service.ClubUserJoinService;
|
||||||
import org.nutz.dao.Dao;
|
import org.nutz.dao.Dao;
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@IocBean(args = {"refer:dao"})
|
@IocBean(args = {"refer:dao"})
|
||||||
public class ClubUserJoinServiceImpl extends BaseServiceImpl<ClubUserApply> implements ClubUserJoinService {
|
public class ClubUserJoinServiceImpl extends BaseServiceImpl<ClubUserApply> implements ClubUserJoinService {
|
||||||
|
@Inject
|
||||||
|
private BpmService bpmService;
|
||||||
|
|
||||||
public ClubUserJoinServiceImpl(Dao dao) {
|
public ClubUserJoinServiceImpl(Dao dao) {
|
||||||
super(dao);
|
super(dao);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Pagination<ClubUserJoinPageVo> pageDataByClubApproval(ClubUserJoinPageForm pageForm, boolean approval) {
|
||||||
|
return pageDataByClubApproval(pageForm, Boolean.valueOf(approval));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Pagination<ClubUserJoinPageVo> pageDataByClubApproval(ClubUserJoinPageForm pageForm, Boolean approval) {
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
info.*,
|
||||||
|
u.loginname AS loginName,
|
||||||
|
u.username AS userName,
|
||||||
|
u.sex,
|
||||||
|
u.unitName,
|
||||||
|
u.unionName,
|
||||||
|
club.clubName,
|
||||||
|
inst.id processInstanceId,
|
||||||
|
inst.processInstanceNodeId,
|
||||||
|
inst.processInstanceNodeName,
|
||||||
|
inst.processInstanceTaskIds,
|
||||||
|
inst.processInstanceStatus,
|
||||||
|
task.id processInstanceTaskId,
|
||||||
|
task.taskStatus processInstanceTaskStatus,
|
||||||
|
COUNT( nt.id ) OVER ( PARTITION BY task.id ) > 0 AS nextTaskIsComplete
|
||||||
|
FROM
|
||||||
|
bpm_process_task task
|
||||||
|
INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId
|
||||||
|
INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId
|
||||||
|
INNER JOIN club_user_apply info ON info.id = inst.processInstanceBusinessId
|
||||||
|
LEFT JOIN sys_club club ON club.id = info.clubId
|
||||||
|
LEFT JOIN vw_user u on u.id = info.userId
|
||||||
|
LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id
|
||||||
|
AND nt.taskStatus = 'COMPLETE'
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){
|
||||||
|
cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname())));
|
||||||
|
}
|
||||||
|
|
||||||
|
cnd.and("nd.nodeCode","=",20);
|
||||||
|
if(approval == null){
|
||||||
|
cnd.and("task.taskStatus", "in", List.of(BpmProcessTaskStatusEnum.ACTIVE.name(), BpmProcessTaskStatusEnum.COMPLETE.name()));
|
||||||
|
}else if(approval){
|
||||||
|
cnd.and("task.taskStatus","=", BpmProcessTaskStatusEnum.COMPLETE);
|
||||||
|
}else{
|
||||||
|
cnd.and("task.taskStatus","=",BpmProcessTaskStatusEnum.ACTIVE);
|
||||||
|
}
|
||||||
|
|
||||||
|
cnd.andEX("YEAR(info.applyDate)","=",pageForm.getYear());
|
||||||
|
cnd.and(Cnd.likeEX("u.userName", pageForm.getUserName()));
|
||||||
|
cnd.and(Cnd.likeEX("u.loginName", pageForm.getLoginName()));
|
||||||
|
cnd.andEX("u.unionId","=",pageForm.getUnionId());
|
||||||
|
cnd.andEX("u.unitId","=",pageForm.getUnitId());
|
||||||
|
cnd.andEX("info.clubId","=",pageForm.getClubId());
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
|
||||||
|
return listPageVO(pageForm, sql, ClubUserJoinPageVo.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
|
public void clubApproval(BpmTaskApprovalParam approvalParam) {
|
||||||
|
// approvalParam.getBpmTaskApprovalTypeEnum();
|
||||||
|
// Map<String, Object> variables = BeanUtil.beanToMap(approvalParam);
|
||||||
|
// List<String> assignments = new ArrayList<>();
|
||||||
|
// if(approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)){
|
||||||
|
// String approvalLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_CLUB_ADMIN);
|
||||||
|
// assignments.add(approvalLoginName);
|
||||||
|
// }
|
||||||
|
// bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, assignments);
|
||||||
|
|
||||||
|
|
||||||
|
Map<String, Object> variables = BeanUtil.beanToMap(approvalParam);
|
||||||
|
List<String> assignments = new ArrayList<>();
|
||||||
|
bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, assignments);
|
||||||
|
|
||||||
|
if (approvalParam.getBpmTaskApprovalTypeEnum() == BpmTaskApprovalTypeEnum.PASS) {
|
||||||
|
String processInstanceBusinessId = approvalParam.getProcessInstanceBusinessId();
|
||||||
|
ClubUserApply clubUserApply = dao().fetch(ClubUserApply.class, processInstanceBusinessId);
|
||||||
|
if (clubUserApply != null) {
|
||||||
|
ClubUser existUser = dao().fetch(ClubUser.class, Cnd.where("userId", "=", clubUserApply.getUserId()).and("clubId", "=", clubUserApply.getClubId()));
|
||||||
|
if (existUser == null) {
|
||||||
|
ClubUser clubUser = BeanUtil.copyProperties(clubUserApply, ClubUser.class);
|
||||||
|
dao().insert(clubUser);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
|
public void revokeClubApproval(String taskId) {
|
||||||
|
bpmService.revokeTask(taskId);
|
||||||
|
|
||||||
|
BpmProcessTask task = dao().fetch(BpmProcessTask.class, taskId);
|
||||||
|
String processInstanceId = task.getProcessInstanceId();
|
||||||
|
BpmProcessInstance processInstance = dao().fetch(BpmProcessInstance.class, processInstanceId);
|
||||||
|
String businessId = processInstance.getProcessInstanceBusinessId();
|
||||||
|
|
||||||
|
ClubUserApply clubUserApply = dao().fetch(ClubUserApply.class, businessId);
|
||||||
|
dao().clear(ClubUser.class, Cnd.where(ClubUser::getUserId, "=", clubUserApply.getUserId())
|
||||||
|
.and(ClubUser::getClubId, "=", clubUserApply.getClubId()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, processKey, platform, moduleId, isQuickEntry) VALUES ('56e0941221324d04bea7329cb8f549c4', '', '0079', '协会审核', null, 'menu', '/platform/h5/club/audit', null, '/platform/sys/file/download?id=19cl7j298kj3logm5qlb0vslhi', 1, 0, 'h5.club.audit', null, 223, 0, '17a7f8ad3ee947b4a26175049a9c253d', 1790154555839, '17a7f8ad3ee947b4a26175049a9c253d', 1790155973918, 0, null, 'H5', '5710401a805645d59060f888eb863b60', 0);
|
||||||
|
|
||||||
|
INSERT INTO sys_role_menu (roleId, menuId) VALUES ('7f4a820d5a394bb8a0a92d6699afe7c8', '56e0941221324d04bea7329cb8f549c4');
|
||||||
|
INSERT INTO sys_role_menu (roleId, menuId) VALUES ('53650479ee954e748fda6cceabdd2918', '56e0941221324d04bea7329cb8f549c4');
|
||||||
|
INSERT INTO sys_role_menu (roleId, menuId) VALUES ('419844ad90f34ca58807e84224905f27', '56e0941221324d04bea7329cb8f549c4');
|
||||||
|
INSERT INTO sys_role_menu (roleId, menuId) VALUES ('d8d30588c356492ebb8645bc2b593270', '56e0941221324d04bea7329cb8f549c4');
|
||||||
|
INSERT INTO sys_role_menu (roleId, menuId) VALUES ('cf0a07b773f444d3800bc18216d8cffb', '56e0941221324d04bea7329cb8f549c4');
|
||||||
@@ -46,14 +46,14 @@ layout("/layouts/platform.html"){
|
|||||||
<el-radio-button :label="false">未审核</el-radio-button>
|
<el-radio-button :label="false">未审核</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</table-tool>
|
</table-tool>
|
||||||
<el-table :data="tableData" @sort-change="pageOrder">
|
<el-table v-loading="tableLoading" element-loading-text="加载中..." :data="tableData" @sort-change="pageOrder">
|
||||||
<el-table-column type="index" width="50px" label="序号" :index="indexMethod"></el-table-column>
|
<el-table-column type="index" width="50px" label="序号" :index="indexMethod"></el-table-column>
|
||||||
<el-table-column prop="userName" label="姓名"></el-table-column>
|
<el-table-column prop="userName" label="姓名"></el-table-column>
|
||||||
<el-table-column prop="loginName" label="工号"></el-table-column>
|
<el-table-column prop="loginName" label="工号"></el-table-column>
|
||||||
<el-table-column prop="sex" label="性别"></el-table-column>
|
<el-table-column prop="sex" label="性别"></el-table-column>
|
||||||
<el-table-column prop="unitName" label="单位" show-overflow-tooltip></el-table-column>
|
<el-table-column prop="unitName" label="单位" show-overflow-tooltip></el-table-column>
|
||||||
<el-table-column prop="unionName" label="分工会" show-overflow-tooltip></el-table-column>
|
<el-table-column prop="unionName" label="分工会" show-overflow-tooltip></el-table-column>
|
||||||
<el-table-column prop="clubName" label="申请协会" show-overflow-tooltip></el-table-column>
|
<el-table-column prop="clubName" label="申请协会" min-width="180px" show-overflow-tooltip></el-table-column>
|
||||||
<el-table-column prop="mode" label="申请模式">
|
<el-table-column prop="mode" label="申请模式">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag size="mini" v-if="scope.row.mode" type="success">加入</el-tag>
|
<el-tag size="mini" v-if="scope.row.mode" type="success">加入</el-tag>
|
||||||
@@ -62,7 +62,7 @@ layout("/layouts/platform.html"){
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="applyDate" label="申请时间" show-overflow-tooltip></el-table-column>
|
<el-table-column prop="applyDate" label="申请时间" show-overflow-tooltip></el-table-column>
|
||||||
<el-table-column label="当前节点" prop="processInstanceNodeName" show-overflow-tooltip></el-table-column>
|
<el-table-column label="当前节点" prop="processInstanceNodeName" show-overflow-tooltip></el-table-column>
|
||||||
<el-table-column label="操作" width="300px">
|
<el-table-column label="操作" width="160px">
|
||||||
<template slot-scope="{row}">
|
<template slot-scope="{row}">
|
||||||
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
|
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
|
||||||
<el-button v-if="row.processInstanceTaskStatus==='ACTIVE'" @click="openApproval(row)" size="mini" type="primary">
|
<el-button v-if="row.processInstanceTaskStatus==='ACTIVE'" @click="openApproval(row)" size="mini" type="primary">
|
||||||
@@ -131,6 +131,21 @@ layout("/layouts/platform.html"){
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
pageData(url = null, data = null) {
|
||||||
|
this.tableLoading = true
|
||||||
|
return this.$axios.post(url || loc() + "/pageData", data || this.pageForm).then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.tableData = res.data.list
|
||||||
|
this.pageForm.totalCount = res.data.totalCount
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg)
|
||||||
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
this.$message.error("审核列表加载失败")
|
||||||
|
}).finally(() => {
|
||||||
|
this.tableLoading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
openView(row) {
|
openView(row) {
|
||||||
this.$refs.guava.public(() => {
|
this.$refs.guava.public(() => {
|
||||||
this.$refs.infoRef.onOpen(row.id)
|
this.$refs.infoRef.onOpen(row.id)
|
||||||
@@ -178,10 +193,15 @@ layout("/layouts/platform.html"){
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
async created() {
|
async created() {
|
||||||
|
this.tableLoading = true
|
||||||
|
try {
|
||||||
this.unitList = await this.$businessTool.listUnit()
|
this.unitList = await this.$businessTool.listUnit()
|
||||||
this.unionList = await this.$businessTool.listUnion()
|
this.unionList = await this.$businessTool.listUnion()
|
||||||
this.clubList = await this.$businessTool.listClub()
|
this.clubList = await this.$businessTool.listClub()
|
||||||
this.pageData()
|
await this.pageData()
|
||||||
|
} finally {
|
||||||
|
this.tableLoading = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -203,7 +203,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
|
|
||||||
<!-- 提交按钮 -->
|
<!-- 提交按钮 -->
|
||||||
<div class="submit-btn">
|
<div class="submit-btn">
|
||||||
<van-button round block type="info">提交申请</van-button>
|
<van-button round block type="info" :disabled="formLoading">提交申请</van-button>
|
||||||
</div>
|
</div>
|
||||||
</van-form>
|
</van-form>
|
||||||
<van-popup :style="{ height: '100%',width: '100%'}" position="right" safe-area-inset-bottom v-model="viewShow">
|
<van-popup :style="{ height: '100%',width: '100%'}" position="right" safe-area-inset-bottom v-model="viewShow">
|
||||||
@@ -227,6 +227,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
viewShow: false,
|
viewShow: false,
|
||||||
|
formLoading: false,
|
||||||
formData: {
|
formData: {
|
||||||
clubId: "",
|
clubId: "",
|
||||||
clubName: "",
|
clubName: "",
|
||||||
@@ -284,6 +285,22 @@ layout("/layouts/platform_h5.html"){
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
init() {
|
init() {
|
||||||
|
const id = GetQueryString("id");
|
||||||
|
if (id) {
|
||||||
|
this.formLoading = true;
|
||||||
|
this.$axios.post("/platform/club/join/apply/info", { id }).then(res => {
|
||||||
|
if (res.code === 0 && res.data) {
|
||||||
|
this.formData = { ...this.formData, ...res.data };
|
||||||
|
this.isAgree = true;
|
||||||
|
this.formLoading = false;
|
||||||
|
} else {
|
||||||
|
this.$toast.fail(res.msg || "申请信息加载失败");
|
||||||
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
this.$toast.fail("申请信息加载失败");
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
const user = this.$store.state.user;
|
const user = this.$store.state.user;
|
||||||
this.formData.userId = user.id;
|
this.formData.userId = user.id;
|
||||||
this.formData.userName = user.username;
|
this.formData.userName = user.username;
|
||||||
@@ -298,6 +315,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
this.formData.governmentPosition = user.governmentPosition;
|
this.formData.governmentPosition = user.governmentPosition;
|
||||||
},
|
},
|
||||||
doSubmit() {
|
doSubmit() {
|
||||||
|
if (this.formLoading) return;
|
||||||
if (!this.isAgree) {
|
if (!this.isAgree) {
|
||||||
this.$toast.fail("请先阅读并同意协议");
|
this.$toast.fail("请先阅读并同意协议");
|
||||||
return;
|
return;
|
||||||
@@ -309,7 +327,9 @@ layout("/layouts/platform_h5.html"){
|
|||||||
this.$axios.post("/platform/club/join/apply/submit", this.formData).then(res => {
|
this.$axios.post("/platform/club/join/apply/submit", this.formData).then(res => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.$toast(res.msg);
|
this.$toast(res.msg);
|
||||||
this.$pjaxReplace("/platform/club/join/mine")
|
this.$pjaxReplace("/platform/h5/club/mine")
|
||||||
|
} else {
|
||||||
|
this.$toast.fail(res.msg);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -11,23 +11,17 @@ layout("/layouts/platform_h5.html"){
|
|||||||
<div id="app" v-cloak>
|
<div id="app" v-cloak>
|
||||||
<van-sticky>
|
<van-sticky>
|
||||||
<van-nav-bar title="入会审核" left-text="返回" left-arrow @click-left="$pjaxReplace('/platform/h5/home')"></van-nav-bar>
|
<van-nav-bar title="入会审核" left-text="返回" left-arrow @click-left="$pjaxReplace('/platform/h5/home')"></van-nav-bar>
|
||||||
<van-search
|
<van-search v-model="pageForm.loginName" placeholder="请输入工号查询" @search="doSearch" @clear="doSearch"></van-search>
|
||||||
v-model="pageForm.searchKeyword"
|
|
||||||
:show-action="showAction"
|
|
||||||
placeholder="请输入姓名/工号查询"
|
|
||||||
@search="doSearch"
|
|
||||||
@cancel="doSearch"
|
|
||||||
></van-search>
|
|
||||||
<van-dropdown-menu>
|
<van-dropdown-menu>
|
||||||
<van-dropdown-item v-model="pageForm.applyType" :options="applyTypeOptions" @change="doSearch"></van-dropdown-item>
|
<van-dropdown-item v-model="pageForm.year" :options="yearList" @change="doSearch"></van-dropdown-item>
|
||||||
<van-dropdown-item v-model="pageForm.auditType" :options="auditTypeOptions" @change="doSearch"></van-dropdown-item>
|
<van-dropdown-item v-model="pageForm.auditType" :options="auditTypeOptions" @change="doSearch"></van-dropdown-item>
|
||||||
</van-dropdown-menu>
|
</van-dropdown-menu>
|
||||||
</van-sticky>
|
</van-sticky>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<van-list v-if="tableData.length>0" v-model="tableLoading" :finished="tableFinished" finished-text="没有更多了" @load="pageData">
|
<van-list v-if="tableData.length>0 || tableLoading" v-model="tableLoading" :immediate-check="false" :finished="tableFinished" loading-text="加载中..." finished-text="没有更多了" @load="pageData">
|
||||||
<div class="table-list">
|
<div class="table-list">
|
||||||
<div class="table-card" v-for="row in tableData" :key="row.id">
|
<div class="table-card" v-for="row in tableData" :key="row.processInstanceTaskId">
|
||||||
<van-cell>
|
<van-cell>
|
||||||
<template slot="title">
|
<template slot="title">
|
||||||
<div class="flex-align">
|
<div class="flex-align">
|
||||||
@@ -39,23 +33,16 @@ layout("/layouts/platform_h5.html"){
|
|||||||
<van-cell title="工号" :value="row.loginName"></van-cell>
|
<van-cell title="工号" :value="row.loginName"></van-cell>
|
||||||
<van-cell title="性别" :value="row.sex"></van-cell>
|
<van-cell title="性别" :value="row.sex"></van-cell>
|
||||||
<van-cell title="所属工会" :value="row.unionName"></van-cell>
|
<van-cell title="所属工会" :value="row.unionName"></van-cell>
|
||||||
<van-cell v-if="pageForm.applyType === 1 && row.status" title="入会状态">
|
<van-cell title="申请模式" :value="row.mode ? '加入' : '退出'"></van-cell>
|
||||||
<span v-if="row.status == 1">待协会审核</span>
|
<van-cell title="当前节点" :value="row.processInstanceNodeName"></van-cell>
|
||||||
<span v-else-if="row.status == 2">协会不通过</span>
|
<van-cell title="审核状态" :value="row.processInstanceTaskStatus === 'ACTIVE' ? '待审核' : '已审核'"></van-cell>
|
||||||
<span v-else-if="row.status == 3">待校工会审核</span>
|
<van-cell v-if="row.processInstanceTaskStatus === 'ACTIVE'" class="table-card-footer">
|
||||||
<span v-else-if="row.status == 4">校工会不通过</span>
|
<van-button size="small" @click="openAudit(row, 'BACK')" type="danger">退回重新申请</van-button>
|
||||||
<span v-else-if="row.status == 5">审核通过</span>
|
<van-button size="small" @click="openAudit(row, 'REJECT')" type="danger">拒绝申请</van-button>
|
||||||
|
<van-button size="small" @click="openAudit(row, 'PASS')" type="info">同意申请</van-button>
|
||||||
</van-cell>
|
</van-cell>
|
||||||
<van-cell v-if="pageForm.applyType === 2 && row.exitStatus" title="退会状态">
|
<van-cell v-if="row.processInstanceTaskStatus === 'COMPLETE' && !row.nextTaskIsComplete" class="table-card-footer">
|
||||||
<span v-if="row.exitStatus == 1">待协会审核</span>
|
<van-button size="small" @click="openRevoke(row.processInstanceTaskId)" type="danger">撤回</van-button>
|
||||||
<span v-else-if="row.exitStatus == 2">协会不通过</span>
|
|
||||||
<span v-else-if="row.exitStatus == 3">待校工会审核</span>
|
|
||||||
<span v-else-if="row.exitStatus == 4">校工会不通过</span>
|
|
||||||
<span v-else-if="row.exitStatus == 5">审核通过</span>
|
|
||||||
</van-cell>
|
|
||||||
<van-cell v-if="pageForm.auditType !== 2 && (row.status === 1 || row.exitStatus === 1)" class="table-card-footer">
|
|
||||||
<van-button size="small" @click="openPayed(row, false)" type="danger">不通过</van-button>
|
|
||||||
<van-button size="small" @click="openPayed(row, true)" type="info">通过</van-button>
|
|
||||||
</van-cell>
|
</van-cell>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -63,17 +50,8 @@ layout("/layouts/platform_h5.html"){
|
|||||||
<van-empty v-else image="/assets/platform/plugins/vant-green/images/nodata/nodata.png" description="暂无数据"></van-empty>
|
<van-empty v-else image="/assets/platform/plugins/vant-green/images/nodata/nodata.png" description="暂无数据"></van-empty>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<van-dialog v-model="payedShow" title="是否缴费" show-cancel-button :lazy-render="false" @confirm="doAudit">
|
<van-dialog v-model="auditShow" title="审核意见" show-cancel-button get-container="body" :overlay="true" :overlay-style="{ backgroundColor: 'rgba(0, 0, 0, 0.5)' }" :lazy-render="false" :before-close="beforeAuditClose">
|
||||||
<van-radio-group v-model="payed">
|
<van-field v-model="approvalOpinion" type="textarea" placeholder="请输入审核意见" :error-message="approvalOpinionError" @input="approvalOpinionError = ''"></van-field>
|
||||||
<van-cell-group>
|
|
||||||
<van-cell title="已缴费" clickable @click="payed = true">
|
|
||||||
<van-radio slot="right-icon" :name="true"></van-radio>
|
|
||||||
</van-cell>
|
|
||||||
<van-cell title="未缴费" clickable @click="payed = false">
|
|
||||||
<van-radio slot="right-icon" :name="false"></van-radio>
|
|
||||||
</van-cell>
|
|
||||||
</van-cell-group>
|
|
||||||
</van-radio-group>
|
|
||||||
</van-dialog>
|
</van-dialog>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -84,19 +62,21 @@ layout("/layouts/platform_h5.html"){
|
|||||||
components: {},
|
components: {},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
showAction: true,
|
auditShow: false,
|
||||||
payedShow: false,
|
approvalOpinion: "",
|
||||||
payed: false,
|
approvalOpinionError: "",
|
||||||
|
tableLoading: false,
|
||||||
|
tableFinished: false,
|
||||||
|
submitting: false,
|
||||||
pageForm: {
|
pageForm: {
|
||||||
pageNumber: 1,
|
pageNumber: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
totalCount: 0,
|
totalCount: 0,
|
||||||
searchKeyword: ""
|
loginName: "",
|
||||||
|
year: new Date().getFullYear(),
|
||||||
|
auditType: 3
|
||||||
},
|
},
|
||||||
applyTypeOptions: [
|
yearList: [],
|
||||||
{ text: "申请加入", value: 1 },
|
|
||||||
{ text: "申请退会", value: 2 }
|
|
||||||
],
|
|
||||||
auditTypeOptions: [
|
auditTypeOptions: [
|
||||||
{ text: "全部", value: 1 },
|
{ text: "全部", value: 1 },
|
||||||
{ text: "已审核", value: 2 },
|
{ text: "已审核", value: 2 },
|
||||||
@@ -104,54 +84,83 @@ layout("/layouts/platform_h5.html"){
|
|||||||
],
|
],
|
||||||
typeOptions: [],
|
typeOptions: [],
|
||||||
tableData: [],
|
tableData: [],
|
||||||
auditResult: false,
|
approvalType: "",
|
||||||
auditIdList: []
|
approvalParam: {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
openPayed(row, flag) {
|
openAudit(row, approvalType) {
|
||||||
this.auditResult = flag
|
this.approvalType = approvalType
|
||||||
this.auditIdList = [row.id]
|
this.approvalParam = row.approvalParam
|
||||||
if (this.pageForm.applyType === 1) {
|
this.approvalOpinion = ""
|
||||||
this.payedShow = true
|
this.approvalOpinionError = ""
|
||||||
} else {
|
this.auditShow = true
|
||||||
this.doAudit()
|
},
|
||||||
|
async beforeAuditClose(action, done) {
|
||||||
|
if (action !== 'confirm') {
|
||||||
|
done()
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
if (!this.approvalOpinion.trim()) {
|
||||||
|
this.approvalOpinionError = "请输入审核意见"
|
||||||
|
done(false)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
done(await this.doAudit() === true)
|
||||||
},
|
},
|
||||||
async doAudit() {
|
async doAudit() {
|
||||||
const confirm = await this.$dialog.confirm({
|
if (this.submitting) return
|
||||||
title: "提示",
|
this.submitting = true
|
||||||
message: "您确定要提交审核吗?"
|
try {
|
||||||
|
const resp = await this.$axios.post("/platform/h5/club/audit/doAudit", {
|
||||||
|
approval: JSON.stringify({
|
||||||
|
...this.approvalParam,
|
||||||
|
bpmTaskApprovalType: this.approvalType,
|
||||||
|
approvalOpinion: this.approvalOpinion
|
||||||
})
|
})
|
||||||
if (confirm === "confirm") {
|
|
||||||
const resp = await this.$axios.post("/platform/club/applyJoin/clubAudit/doAudit", {
|
|
||||||
ids: JSON.stringify(this.auditIdList),
|
|
||||||
auditResult: this.auditResult,
|
|
||||||
auditType: 1,
|
|
||||||
applyType: this.pageForm.applyType,
|
|
||||||
payed: this.payed
|
|
||||||
})
|
})
|
||||||
if (resp.code === 0) {
|
if (resp.code === 0) {
|
||||||
this.$toast.success(resp.msg)
|
this.$toast.success(resp.msg)
|
||||||
this.auditIdList = []
|
this.doSearch()
|
||||||
this.payedShow = false
|
return true
|
||||||
|
} else {
|
||||||
|
this.$toast(resp.msg)
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
this.$toast.fail("审核提交失败")
|
||||||
|
} finally {
|
||||||
|
this.submitting = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
openRevoke(taskId) {
|
||||||
|
this.$dialog.confirm({ title: "提示", message: "您确定要撤回吗?" }).then(async () => {
|
||||||
|
const resp = await this.$axios.post("/platform/h5/club/audit/revoke", { taskId })
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.$toast.success(resp.msg)
|
||||||
this.doSearch()
|
this.doSearch()
|
||||||
} else {
|
} else {
|
||||||
this.$toast(resp.msg)
|
this.$toast(resp.msg)
|
||||||
}
|
}
|
||||||
}
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
pageData() {
|
pageData() {
|
||||||
this.tableLoading = true
|
this.tableLoading = true
|
||||||
this.pageForm.source = 1
|
this.$axios.post("/platform/h5/club/audit/pageData", this.pageForm).then((resp) => {
|
||||||
this.$axios.post("/platform/club/applyJoin/clubAudit/pageData", this.pageForm).then((resp) => {
|
if (resp.code !== 0) {
|
||||||
|
this.tableFinished = true
|
||||||
|
this.$toast(resp.msg)
|
||||||
|
return
|
||||||
|
}
|
||||||
this.tableData = this.tableData.concat(resp.data.list)
|
this.tableData = this.tableData.concat(resp.data.list)
|
||||||
this.pageForm.totalCount = resp.data.totalCount
|
this.pageForm.totalCount = resp.data.totalCount
|
||||||
if (this.tableData.length >= this.pageForm.totalCount) {
|
this.tableFinished = this.tableData.length >= this.pageForm.totalCount
|
||||||
this.tableFinished = true
|
if (!this.tableFinished) {
|
||||||
} else {
|
|
||||||
this.pageForm.pageNumber++
|
this.pageForm.pageNumber++
|
||||||
}
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
this.tableFinished = true
|
||||||
|
this.$toast.fail("审核列表加载失败")
|
||||||
|
}).finally(() => {
|
||||||
this.tableLoading = false
|
this.tableLoading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@@ -159,12 +168,14 @@ layout("/layouts/platform_h5.html"){
|
|||||||
this.pageForm.pageNumber = 1
|
this.pageForm.pageNumber = 1
|
||||||
this.pageForm.totalCount = 0
|
this.pageForm.totalCount = 0
|
||||||
this.tableData = []
|
this.tableData = []
|
||||||
|
this.tableFinished = false
|
||||||
this.pageData()
|
this.pageData()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.$set(this.pageForm, "applyType", 1)
|
for (let i = new Date().getFullYear() - 10; i <= new Date().getFullYear(); i++) {
|
||||||
this.$set(this.pageForm, "auditType", 3)
|
this.yearList.unshift({ value: i, text: i + "年" })
|
||||||
|
}
|
||||||
this.pageData()
|
this.pageData()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -29,6 +29,24 @@ const clubUserJoin = {
|
|||||||
</template>
|
</template>
|
||||||
</van-cell>
|
</van-cell>
|
||||||
</van-cell-group>
|
</van-cell-group>
|
||||||
|
<div v-for="nodeTask in viewData.nodeTasks" :key="nodeTask.id">
|
||||||
|
<van-cell-group :title="nodeTask.nodeName">
|
||||||
|
<div v-for="task in nodeTask.tasks" :key="task.id">
|
||||||
|
<van-cell title="审核人">{{ task.actualOwnerLoginName }}-{{ task.actualOwnerUserName }}</van-cell>
|
||||||
|
<van-cell title="审核时间">{{ task.endOn }}</van-cell>
|
||||||
|
<van-cell title="审核结果">
|
||||||
|
<template v-if="task.extVariable">
|
||||||
|
<van-tag type="success" v-if="task.extVariable.bpmTaskApprovalType === 'PASS'">同意</van-tag>
|
||||||
|
<van-tag type="danger" v-if="task.extVariable.bpmTaskApprovalType === 'BACK'">退回重新填写</van-tag>
|
||||||
|
<van-tag type="danger" v-if="task.extVariable.bpmTaskApprovalType === 'REJECT'">拒绝</van-tag>
|
||||||
|
</template>
|
||||||
|
</van-cell>
|
||||||
|
<van-cell title="审核意见">
|
||||||
|
<div style="white-space: pre-wrap; overflow-wrap: anywhere; text-align: right">{{ task.extVariable && task.extVariable.approvalOpinion }}</div>
|
||||||
|
</van-cell>
|
||||||
|
</div>
|
||||||
|
</van-cell-group>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
`,
|
`,
|
||||||
data() {
|
data() {
|
||||||
|
|||||||
@@ -81,6 +81,9 @@ layout("/layouts/platform_h5.html"){
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
openEdit(row) {
|
||||||
|
this.$pjaxReplace("/platform/h5/club/apply?id=" + encodeURIComponent(row.id))
|
||||||
|
},
|
||||||
onOpen(row) {
|
onOpen(row) {
|
||||||
this.viewShow = true
|
this.viewShow = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user