diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyQueryController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyQueryController.java new file mode 100644 index 0000000..62ceafa --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyQueryController.java @@ -0,0 +1,115 @@ +package com.budwk.app.zhgh.staffmanage.member.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.result.Result; +import com.budwk.app.base.utils.PageUtil; +import com.budwk.app.flow.enums.ProcessInstanceStateEnum; +import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberApplyPageForm; +import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService; +import io.swagger.annotations.ApiOperation; +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.servlet.http.HttpServletResponse; + +/** + * 会员入会申请查询统计。 + */ +@IocBean +@Ok("json:full") +@At("/platform/member/apply/query") +public class MemberApplyQueryController { + + @Inject + private MemberCommonService memberCommonService; + + @At("") + @Ok("beetl:/platform/zhgh/staffmanage/member/apply/query/index.html") + @SaCheckPermission("member.apply.query") + public void index() { + } + + /** + * 查询已办结的会员入会申请记录。 + * + * @param pageForm 查询参数:姓名/工号、工会、单位、在职状态、教职工类别、编制类别以及分页排序信息 + * @return Result 包装的分页数据,list 字段为入会申请记录,totalCount 为总数 + */ + @At + @ApiOperation("会员入会申请查询统计列表") + @SaCheckPermission("member.apply.query") + public Result pageData(MemberApplyPageForm pageForm) { + Sql sql = Sqls.create(""" + SELECT + info.id, + info.userName, + info.loginName, + info.unitName, + info.unionName, + info.userState, + info.preparedBy, + info.personType, + info.applyDateTime, + info.sign, + info.nativePlace, + info.jobCategory, + 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, + GROUP_CONCAT(DISTINCT ta.actorName, '(', ta.actorAccount, ')' ) AS auditUser, + (select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask' AND taskState in (10,20)) AS startTaskId + FROM + member_apply_record info + 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(); + MemberApplyPageForm.buildSearch(cnd, pageForm); + // 查询统计只展示流程已完成的入会申请,避免未完结流程进入统计口径。 + cnd.and("ins.state", "=", ProcessInstanceStateEnum.FINISHED.getCode()); + if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.desc("info.applyDateTime"); + } else { + cnd.orderBy("info." + pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } + cnd.groupBy("info.id"); + sql.setCondition(cnd); + Pagination pagination = memberCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success().addData(pagination); + } + + /** + * 导出入会申请表。 + * + * @param id 入会申请记录id + * @param response docx 文件下载响应 + */ + @At + @Ok("void") + @ApiOperation("导出入会申请表") + @SaCheckPermission("member.apply.query") + public void exportApplyDocx(String id, HttpServletResponse response) { + memberCommonService.exportApplyDocx(id, response); + } +} diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/apply/query/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/apply/query/index.html new file mode 100644 index 0000000..f3f707d --- /dev/null +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/apply/query/index.html @@ -0,0 +1,114 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + +