This commit is contained in:
=
2026-08-20 08:40:44 +08:00
6 changed files with 23 additions and 15 deletions
@@ -101,7 +101,8 @@ public class ProposalExpeditingController {
$condition
""");
Cnd cnd = Cnd.NEW();
cnd.and("t.taskName", "in", List.of("master_reply", "slave_reply", "opinion_master_reply"));
// 催办列表只展示现行 WF 承办答复环节中尚未完成的主办、二次答复及意见答复任务。
cnd.and("t.taskName", "in", List.of("unit_reply", "two_unit_reply", "opinion_unit_reply"));
if (!AuthUtil.hasRole(RoleConstant.SYSADMIN.name()) && !AuthUtil.hasRole(RoleConstant.SCHOOL_UNION_ADMIN.name())) {
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
@@ -47,6 +47,7 @@ public class ProposalControlController {
@SaCheckPermission("proposal.control")
@ApiOperation("分页列表")
public Result pageData(@Valid ProposalSearchParam pageForm) {
// 状态调整属于提案业务,只保留能够关联到 proposal_info 的 WF 任务,排除其他业务流程产生的空白行。
Sql sql = Sqls.create("""
SELECT
info.*,
@@ -72,7 +73,7 @@ public class ProposalControlController {
LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId
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 proposal_info info ON info.id = ins.businessNo
INNER JOIN proposal_info info ON info.id = ins.businessNo
LEFT JOIN proposal_type type ON type.id = info.typeId
LEFT JOIN teacher_congress_session tcs ON tcs.id = info.sessionId
LEFT JOIN teacher_congress_delegation tcd ON tcd.id = info.delegationId
@@ -10,7 +10,7 @@ layout("/layouts/platform.html"){
<search @search="doSearch">
<search-item label="教代会">
<el-select @change="meetingChange" clearable filterable placeholder="所属教代会"
v-model="pageForm.sessionId">
v-model="pageForm.searchSessionId">
<el-option :key="item.id" :label="item.fullName" :value="item.id"
v-for="item in sessionOptions"></el-option>
</el-select>
@@ -277,7 +277,7 @@ layout("/layouts/platform.html"){
this.listDelegation()
},
listDelegation() {
this.$axios.post("/platform/proposal/common/listDelegation", {sessionId: this.pageForm.sessionId}).then((res) => {
this.$axios.post("/platform/proposal/common/listDelegation", {sessionId: this.pageForm.searchSessionId}).then((res) => {
if (res.code === 0) {
this.delegationOptions = res.data
}
@@ -288,7 +288,7 @@ layout("/layouts/platform.html"){
if (res.code === 0) {
this.sessionOptions = res.data
if (this.sessionOptions) {
this.$set(this.pageForm, "sessionId", this.sessionOptions[0].id)
this.$set(this.pageForm, "searchSessionId", this.sessionOptions[0].id)
this.listDelegation()
this.pageData()
}
@@ -10,7 +10,7 @@ layout("/layouts/platform.html"){
<search @search="doSearch">
<search-item label="教代会">
<el-select @change="meetingChange" clearable filterable placeholder="所属教代会"
v-model="pageForm.sessionId">
v-model="pageForm.searchSessionId">
<el-option :key="item.id" :label="item.fullName" :value="item.id"
v-for="item in sessionOptions"></el-option>
</el-select>
@@ -207,7 +207,7 @@ layout("/layouts/platform.html"){
this.listDelegation()
},
listDelegation() {
this.$axios.post("/platform/proposal/common/listDelegation", {sessionId: this.pageForm.sessionId}).then((res) => {
this.$axios.post("/platform/proposal/common/listDelegation", {sessionId: this.pageForm.searchSessionId}).then((res) => {
if (res.code === 0) {
this.delegationOptions = res.data
}
@@ -218,7 +218,7 @@ layout("/layouts/platform.html"){
if (res.code === 0) {
this.sessionOptions = res.data
if (this.sessionOptions) {
this.$set(this.pageForm, "sessionId", this.sessionOptions[0].id)
this.$set(this.pageForm, "searchSessionId", this.sessionOptions[0].id)
this.listDelegation()
this.pageData()
}
@@ -9,7 +9,7 @@ layout("/layouts/platform.html"){
<el-card shadow="never">
<search @search="doSearch">
<search-item label="教代会">
<el-select @change="meetingChange" clearable filterable placeholder="所属教代会" v-model="pageForm.sessionId">
<el-select @change="meetingChange" clearable filterable placeholder="所属教代会" v-model="pageForm.searchSessionId">
<el-option :key="item.id" :label="item.fullName" :value="item.id" v-for="item in sessionOptions"></el-option>
</el-select>
</search-item>
@@ -181,7 +181,7 @@ layout("/layouts/platform.html"){
this.listDelegation()
},
listDelegation() {
this.$axios.post("/platform/proposal/common/listDelegation", { sessionId: this.pageForm.sessionId }).then((res) => {
this.$axios.post("/platform/proposal/common/listDelegation", { sessionId: this.pageForm.searchSessionId }).then((res) => {
if (res.code === 0) {
this.delegationOptions = res.data
}
@@ -192,7 +192,7 @@ layout("/layouts/platform.html"){
if (res.code === 0) {
this.sessionOptions = res.data
if (this.sessionOptions) {
this.$set(this.pageForm, "sessionId", this.sessionOptions[0].id)
this.$set(this.pageForm, "searchSessionId", this.sessionOptions[0].id)
this.listDelegation()
this.pageData()
}
@@ -6,7 +6,7 @@ layout("/layouts/platform.html"){
<el-card shadow="never">
<search @search="doSearch">
<search-item label="教代会">
<el-select @change="meetingChange" clearable filterable placeholder="所属教代会" v-model="pageForm.sessionId">
<el-select @change="doSearch" clearable filterable placeholder="所属教代会" v-model="pageForm.sessionId">
<el-option :key="item.id" :label="item.fullName" :value="item.id" v-for="item in sessionOptions"></el-option>
</el-select>
</search-item>
@@ -85,6 +85,7 @@ layout("/layouts/platform.html"){
el: "#app",
store,
mixins: [initTableMixins],
components: {
"proposal-info": PROPOSAL_INFO
},
@@ -111,11 +112,12 @@ layout("/layouts/platform.html"){
jumpForm: {
targetTaskName: "",
tf_audit: true
}
},
sessionOptions:[],
}
},
created() {
this.pageData()
// 默认届次确定后再加载表格,避免无届次请求覆盖已按届次筛选的结果。
this.listOpenSession()
},
methods: {
@@ -173,10 +175,14 @@ layout("/layouts/platform.html"){
listOpenSession() {
this.$axios.post("/platform/proposal/common/listOpenSession").then((res) => {
if (res.code === 0) {
this.sessionOptions = res.data
this.sessionOptions = res.data || []
if (this.sessionOptions && this.sessionOptions.length) {
this.$set(this.pageForm, "sessionId", this.sessionOptions[0].id)
this.pageData()
} else {
// 没有开启的教代会时保持空列表,避免发起无届次的全量流程查询。
this.tableData = []
this.$set(this.pageForm, "totalCount", 0)
}
}
})