commit
This commit is contained in:
+1
-1
@@ -145,7 +145,7 @@ public class MemberApplyMineController {
|
|||||||
*/
|
*/
|
||||||
@At
|
@At
|
||||||
@ApiOperation("获取申请信息")
|
@ApiOperation("获取申请信息")
|
||||||
@SaCheckPermission(value = {"member.apply.mine", "member.apply.branchUnionApproval", "member.apply.branchUnionApproval"}, mode = SaMode.OR)
|
@SaCheckPermission(value = {"member.apply.mine", "member.apply.query", "member.apply.branchUnionApproval", "member.apply.branchUnionApproval"}, mode = SaMode.OR)
|
||||||
public Result findMemberApplyRecord(@Valid String id) {
|
public Result findMemberApplyRecord(@Valid String id) {
|
||||||
MemberApplyRecord record = dao.fetch(MemberApplyRecord.class, id);
|
MemberApplyRecord record = dao.fetch(MemberApplyRecord.class, id);
|
||||||
return Result.success().addData(record);
|
return Result.success().addData(record);
|
||||||
|
|||||||
+109
@@ -0,0 +1,109 @@
|
|||||||
|
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() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@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<NutMap> pagination = memberCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||||
|
return Result.success().addData(pagination);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出入会申请表
|
||||||
|
*
|
||||||
|
* @param id 入会申请记录id
|
||||||
|
* @param response 文件响应对象
|
||||||
|
*/
|
||||||
|
@At
|
||||||
|
@Ok("void")
|
||||||
|
@ApiOperation("导出入会申请表")
|
||||||
|
@SaCheckPermission("member.apply.query")
|
||||||
|
public void exportApplyDocx(String id, HttpServletResponse response) {
|
||||||
|
memberCommonService.exportApplyDocx(id, response);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -54,11 +54,11 @@ const INFO = {
|
|||||||
<el-empty v-else :image-size="50" description="暂无家庭成员信息"></el-empty>
|
<el-empty v-else :image-size="50" description="暂无家庭成员信息"></el-empty>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="个人学习及工作经历" :span="3">
|
<el-descriptions-item label="个人学习及工作经历" :span="3">
|
||||||
<div v-if="viewData.personalData" class="text-left" v-html="viewData.personalData"></div>
|
<div v-if="viewData.personalData" class="text-left w-e-text member-apply-rich-text" v-html="viewData.personalData"></div>
|
||||||
<el-tag type="warning" v-else>暂无</el-tag>
|
<el-tag type="warning" v-else>暂无</el-tag>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="特长及获奖情况" :span="3">
|
<el-descriptions-item label="特长及获奖情况" :span="3">
|
||||||
<div v-if="viewData.specialty" class="text-left" v-html="viewData.specialty"></div>
|
<div v-if="viewData.specialty" class="text-left w-e-text member-apply-rich-text" v-html="viewData.specialty"></div>
|
||||||
<el-tag type="warning" v-else>暂无</el-tag>
|
<el-tag type="warning" v-else>暂无</el-tag>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,114 @@
|
|||||||
|
<!--#
|
||||||
|
layout("/layouts/platform.html"){
|
||||||
|
#-->
|
||||||
|
<div id="app" v-cloak>
|
||||||
|
<guava ref="guava">
|
||||||
|
<el-card shadow="never">
|
||||||
|
<common-query ref="commonQueryRef" @search="search"></common-query>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<el-card shadow="never" class="mt10">
|
||||||
|
<table-tool label="申请列表"></table-tool>
|
||||||
|
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder" ref="table" row-key="id" style="width: 100%">
|
||||||
|
<el-table-column
|
||||||
|
:index="indexMethod"
|
||||||
|
align="center"
|
||||||
|
header-align="center"
|
||||||
|
label="序号"
|
||||||
|
type="index"
|
||||||
|
width="80px"
|
||||||
|
></el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
:label="column.label"
|
||||||
|
:prop="column.prop"
|
||||||
|
:sortable="column.sortable"
|
||||||
|
:width="column.width"
|
||||||
|
header-align="center"
|
||||||
|
min-width="100px"
|
||||||
|
show-overflow-tooltip
|
||||||
|
v-for="column in tableColumns"
|
||||||
|
>
|
||||||
|
<template scope="{row}" v-if="column.prop=='loginName'">
|
||||||
|
<el-link @click="openView(row)" type="primary">{{row.loginName}}</el-link>
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='instanceState'">
|
||||||
|
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"
|
||||||
|
size="small"></enum-tag>
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='taskName'">
|
||||||
|
{{row.taskName}}
|
||||||
|
<template v-if="row.auditUser">
|
||||||
|
-{{row.auditUser}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" width="220" fixed="right">
|
||||||
|
<template slot-scope="{row}">
|
||||||
|
<el-button @click="openView(row)" size="mini" type="primary">
|
||||||
|
查看
|
||||||
|
</el-button>
|
||||||
|
<el-button @click="exportApplyDocx(row.id)" size="mini" type="primary">
|
||||||
|
导出申请表
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<!--#include("/layouts/pagination.html"){}#-->
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<template #view>
|
||||||
|
<info ref="info"></info>
|
||||||
|
</template>
|
||||||
|
</guava>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script nonce="${cspNonce!}">
|
||||||
|
<!--#include("../common/info.js"){}#-->
|
||||||
|
<!--#include("../common/commonQuery.js"){}#-->
|
||||||
|
|
||||||
|
new Vue({
|
||||||
|
el: "#app",
|
||||||
|
store,
|
||||||
|
mixins: [initTableMixins],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
tableColumns: [
|
||||||
|
{ prop: "loginName", label: "工号", sortable: true },
|
||||||
|
{ prop: "userName", label: "姓名", sortable: true },
|
||||||
|
{ prop: "userState", label: "在职状态", sortable: true },
|
||||||
|
{ prop: "nativePlace", label: "籍贯", sortable: true },
|
||||||
|
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||||
|
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||||
|
{ prop: "instanceState", label: "流程状态" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
"info": INFO,
|
||||||
|
"common-query": COMMON_QUERY
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
exportApplyDocx(id) {
|
||||||
|
this.$downLoad("/platform/member/apply/query/exportApplyDocx", { id: id })
|
||||||
|
},
|
||||||
|
openView(row) {
|
||||||
|
this.$refs.guava.view(() => {
|
||||||
|
this.$refs.info.onOpen(row)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
search(pageForm) {
|
||||||
|
if (pageForm) {
|
||||||
|
this.pageForm = Object.assign({}, this.pageForm, pageForm)
|
||||||
|
}
|
||||||
|
this.doSearch()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.pageData()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!--#
|
||||||
|
}
|
||||||
|
#-->
|
||||||
Reference in New Issue
Block a user