commit
This commit is contained in:
@@ -109,6 +109,8 @@ public interface FlowConst {
|
||||
// 流程实例名称
|
||||
String PROCESS_INSTANCE_NAME = "instanceName";
|
||||
|
||||
|
||||
//============================================扩展==================================================
|
||||
// 开启之后不会校验任务执行所属权
|
||||
String EXT_ENABLE_OPERATOR = "";
|
||||
|
||||
}
|
||||
|
||||
@@ -22,6 +22,9 @@ public class FlowCommonService {
|
||||
public void executeTask(Dict args){
|
||||
Long processTaskId = args.getLong(FlowConst.PROCESS_TASK_ID_KEY);
|
||||
String operator = SecurityUtil.getUserId();
|
||||
if (args.containsKey(FlowConst.EXT_ENABLE_OPERATOR)&&args.getBool(FlowConst.EXT_ENABLE_OPERATOR)){
|
||||
operator = FlowConst.ADMIN_ID;
|
||||
}
|
||||
args.remove(FlowConst.PROCESS_TASK_ID_KEY);
|
||||
Integer submitType = args.getInt(FlowConst.SUBMIT_TYPE);
|
||||
if (submitType == null) {
|
||||
|
||||
+19
-24
@@ -289,35 +289,23 @@ public class TeacherCongressDelegatePushController {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
info.*,
|
||||
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
|
||||
t.displayName taskName
|
||||
FROM
|
||||
teacher_congress_delegate_push 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 t ON t.processInstanceId = ins.id
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("info.sessionId", "=", sessionId);
|
||||
cnd.andEX("info.unionId", "=", SecurityUtil.getUnionId());
|
||||
cnd.andEX("t.taskName", "=", "53ff0c2a-ba93-45e9-a9fd-db51cdab3080");
|
||||
cnd.andEX("t.taskName", "=", "0cacd1e7-7bb2-47dd-818b-6a73062e0c62");
|
||||
cnd.groupBy("info.id");
|
||||
sql.setCondition(cnd);
|
||||
List<NutMap> writeList = baseService.listMap(sql);
|
||||
|
||||
|
||||
// 已上报总人数
|
||||
int total = writeList.size();
|
||||
// 已上报女代表人数
|
||||
@@ -340,21 +328,28 @@ public class TeacherCongressDelegatePushController {
|
||||
if (total > allocation.getAllocationNum()) {
|
||||
tips.append("上报总人数超出分配名额!");
|
||||
}
|
||||
/* if (female < allocation.getFemaleNum()) {
|
||||
tips.append("女教师代表数不满足分配名额数!");
|
||||
}
|
||||
|
||||
if (seniorTeacher < allocation.getSeniorTeaNum()) {
|
||||
tips.append("高级职称专任教师数不满足分配名额数!");
|
||||
}
|
||||
if (intermediateBelow < allocation.getIntermediateBelowNum()) {
|
||||
tips.append("中级职称及以下代表数不满足分配名额数!");
|
||||
}
|
||||
|
||||
if (ordinaryTeacher < allocation.getOrdinaryTeaNum()) {
|
||||
tips.append("专任教师数不满足分配名额数!");
|
||||
if (cadre < allocation.getCadreNum()) {
|
||||
tips.append("干部代表数不满足分配名额数!");
|
||||
}
|
||||
|
||||
if (worker < allocation.getWorkerNum()) {
|
||||
tips.append("工人代表数不满足分配名额数!");
|
||||
}
|
||||
if (female < allocation.getFemaleNum()) {
|
||||
tips.append("女教师代表数不满足分配名额数!");
|
||||
}
|
||||
|
||||
if (under45 < allocation.getLess45Num()) {
|
||||
tips.append("45岁以下教师代表数不满足分配名额数!");
|
||||
}*/
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(tips)) {
|
||||
return Result.error(tips.toString());
|
||||
@@ -368,7 +363,7 @@ public class TeacherCongressDelegatePushController {
|
||||
@ApiOperation("本单位代表上报情况")
|
||||
@SaCheckPermission("tc.delegate.push")
|
||||
public Result selfUnionPushMetric(String sessionId, String unionId) {
|
||||
if (StrUtil.isBlank(unionId)){
|
||||
if (StrUtil.isBlank(unionId)) {
|
||||
unionId = SecurityUtil.getUnionId();
|
||||
}
|
||||
|
||||
|
||||
+3
-2
@@ -103,7 +103,7 @@ public class TeacherCongressDelegatePushWriteController {
|
||||
|
||||
@At
|
||||
@ApiOperation("代表信息填写保存")
|
||||
@SaCheckPermission("tc.delegate.push.write")
|
||||
@SaCheckLogin
|
||||
public Result save(TeacherCongressDelegatePush teacherCongressDelegatePush){
|
||||
dao.updateIgnoreNull(teacherCongressDelegatePush);
|
||||
return Result.success();
|
||||
@@ -111,13 +111,14 @@ public class TeacherCongressDelegatePushWriteController {
|
||||
|
||||
@At
|
||||
@ApiOperation("代表信息填写提交")
|
||||
@SaCheckPermission("tc.delegate.push.write")
|
||||
@SaCheckLogin
|
||||
public Result submit(TeacherCongressDelegatePush teacherCongressDelegatePush,String taskId){
|
||||
dao.updateIgnoreNull(teacherCongressDelegatePush);
|
||||
|
||||
Dict dict = Dict.create();
|
||||
dict.set(FlowConst.PROCESS_TASK_ID_KEY, taskId);
|
||||
dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.AGREE.getCode());
|
||||
dict.set(FlowConst.EXT_ENABLE_OPERATOR,true);
|
||||
flowCommonService.executeTask(dict);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
+1
@@ -67,6 +67,7 @@ public class TeacherCongressDelegatePushServiceImpl extends BaseServiceImpl<Teac
|
||||
Dict dict = Dict.create();
|
||||
dict.set(FlowConst.PROCESS_TASK_ID_KEY, push.getString("taskId"));
|
||||
dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.AGREE.getCode());
|
||||
dict.set(FlowConst.EXT_ENABLE_OPERATOR,true);
|
||||
flowCommonService.executeTask(dict);
|
||||
});
|
||||
}
|
||||
|
||||
+17
-14
@@ -22,7 +22,7 @@ layout("/layouts/platform.html"){
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never">
|
||||
<push-progress ref="pushProgressRef" ></push-progress>
|
||||
<push-progress ref="pushProgressRef"></push-progress>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never">
|
||||
@@ -153,8 +153,8 @@ layout("/layouts/platform.html"){
|
||||
</el-table-column>
|
||||
<el-table-column label="代表类型" prop="representativeType" show-overflow-tooltip
|
||||
width="100"></el-table-column>
|
||||
<el-table-column prop="taskName" label="当前节点" width="120"fixed="right"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态"fixed="right">
|
||||
<el-table-column prop="taskName" label="当前节点" width="120" fixed="right"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态" fixed="right">
|
||||
<template slot-scope="{row}">
|
||||
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"
|
||||
size="small"></enum-tag>
|
||||
@@ -174,7 +174,9 @@ layout("/layouts/platform.html"){
|
||||
删除
|
||||
</el-button>
|
||||
<el-button
|
||||
v-else-if="row.taskKey === 'startTask' || row.taskKey==='53ff0c2a-ba93-45e9-a9fd-db51cdab3080' || !row.instanceId"
|
||||
v-else-if="row.taskKey === 'startTask'
|
||||
|| row.taskKey==='53ff0c2a-ba93-45e9-a9fd-db51cdab3080'
|
||||
|| row.taskKey==='0cacd1e7-7bb2-47dd-818b-6a73062e0c62' || !row.instanceId"
|
||||
@click="onDelete(row.id)"
|
||||
size="mini" type="danger">删除
|
||||
</el-button>
|
||||
@@ -238,7 +240,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData()
|
||||
const fullName = this.sessionOptions.find(v => v.id === this.pageForm.sessionId)?.fullName;
|
||||
|
||||
this.$refs.pushProgressRef.refreshData(this.pageForm.sessionId, fullName,this.pageForm.unionId)
|
||||
this.$refs.pushProgressRef.refreshData(this.pageForm.sessionId, fullName, this.pageForm.unionId)
|
||||
},
|
||||
onView(row) {
|
||||
this.writeDialog = true
|
||||
@@ -278,18 +280,19 @@ layout("/layouts/platform.html"){
|
||||
type: 'warning'
|
||||
}).then(async () => {
|
||||
const loading = createLoading('正在提交中')
|
||||
const {code, msg} = await this.$axios.post('/platform/teacherCongress/delegate/push/batchSubmit', {
|
||||
this.$axios.post('/platform/teacherCongress/delegate/push/batchSubmit', {
|
||||
ids: JSON.stringify(selection.map(v => v.id)),
|
||||
sessionId: this.pageForm.sessionId
|
||||
}).then(resp => {
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg)
|
||||
this.doSearch()
|
||||
this.$refs.tableRef.clearSelection()
|
||||
}
|
||||
}).finally(() => {
|
||||
loading.close()
|
||||
})
|
||||
loading.close()
|
||||
if (code === 0) {
|
||||
this.$message.success(msg)
|
||||
this.doSearch()
|
||||
this.$refs.tableRef.clearSelection()
|
||||
} else {
|
||||
this.$message.error(msg)
|
||||
}
|
||||
|
||||
})
|
||||
},
|
||||
listUnion() {
|
||||
|
||||
+125
-110
@@ -51,131 +51,146 @@ const write = {
|
||||
ref="formRef"
|
||||
:model="formData"
|
||||
:rules="rules"
|
||||
label-width="100px"
|
||||
label-position="top"
|
||||
label-width="150px"
|
||||
:class="{ hidden: !isSelected }"
|
||||
:disabled="(formData && formData.taskKey!=='53ff0c2a-ba93-45e9-a9fd-db51cdab3080') || is_read"
|
||||
>
|
||||
<div class="form-section">
|
||||
<h3 class="section-title">基本信息</h3>
|
||||
<div class="form-grid">
|
||||
<el-form-item label="姓名" prop="userName">
|
||||
<el-input v-model="formData.userName" readonly></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="工号" prop="loginName">
|
||||
<el-input v-model="formData.loginName" readonly></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="性别" prop="sex">
|
||||
<el-radio-group v-model="formData.sex" size="small">
|
||||
<el-radio border label="男">男</el-radio>
|
||||
<el-radio border label="女">女</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="出生年月" prop="birthday">
|
||||
<el-date-picker
|
||||
v-model="formData.birthday"
|
||||
type="date"
|
||||
placeholder="选择日期"
|
||||
value-format="yyyy-MM-dd"
|
||||
style="width: 100%"
|
||||
></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="民族" prop="nation">
|
||||
<dict-select v-model="formData.nation" style="width: 100%" placeholder="请选择民族"
|
||||
code="USER_NATION"></dict-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="政治面貌" prop="political">
|
||||
<el-input maxlength="100" placeholder="政治面貌"
|
||||
v-model="formData.political"></el-input>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="学历" prop="education">
|
||||
<dict-select v-model="formData.education" style="width: 100%" placeholder="请选择学历"
|
||||
code="USER_EDUCATION"></dict-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="学位" prop="academicDegree">
|
||||
<dict-select v-model="formData.academicDegree" style="width: 100%"
|
||||
placeholder="请选择学位"
|
||||
code="USER_ACADEMIC_DEGREE"></dict-select>
|
||||
</el-form-item>-->
|
||||
|
||||
<el-form-item label="所属工会">
|
||||
<el-input
|
||||
v-model="formData.unionName"
|
||||
readonly
|
||||
placeholder="请输入所属工会"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="所属单位">
|
||||
<el-input
|
||||
v-model="formData.unitName"
|
||||
readonly
|
||||
placeholder="请输入所属单位"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="职称" prop="professionalTitle">
|
||||
<dict-select v-model="formData.professionalTitle" style="width: 100%"
|
||||
placeholder="请选择职称"
|
||||
code="technical_title_level"></dict-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="职级" prop="professionalLevel">
|
||||
<dict-select v-model="formData.professionalLevel" style="width: 100%"
|
||||
placeholder="请选择职级"
|
||||
code="JobTitle"></dict-select>
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item label="是否专任教师" prop="ordinaryTeacher">
|
||||
<el-radio-group v-model="formData.ordinaryTeacher" size="small">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="姓名" prop="userName">
|
||||
<el-input v-model="formData.userName" readonly></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="工号" prop="loginName">
|
||||
<el-input v-model="formData.loginName" readonly></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="性别" prop="sex">
|
||||
<el-radio-group v-model="formData.sex" size="small">
|
||||
<el-radio border label="男">男</el-radio>
|
||||
<el-radio border label="女">女</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="出生年月" prop="birthday">
|
||||
<el-date-picker
|
||||
v-model="formData.birthday"
|
||||
type="date"
|
||||
placeholder="选择日期"
|
||||
value-format="yyyy-MM-dd"
|
||||
style="width: 100%"
|
||||
></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="民族" prop="nation">
|
||||
<dict-select v-model="formData.nation" style="width: 100%" placeholder="请选择民族"
|
||||
code="USER_NATION"></dict-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="政治面貌" prop="political">
|
||||
<el-input maxlength="100" placeholder="政治面貌"
|
||||
v-model="formData.political"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所属工会">
|
||||
<el-input
|
||||
v-model="formData.unionName"
|
||||
readonly
|
||||
placeholder="请输入所属工会"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所属单位">
|
||||
<el-input
|
||||
v-model="formData.unitName"
|
||||
readonly
|
||||
placeholder="请输入所属单位"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="职称" prop="professionalTitle">
|
||||
<dict-select v-model="formData.professionalTitle" style="width: 100%"
|
||||
placeholder="请选择职称"
|
||||
code="technical_title_level"></dict-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否高级职称" prop="seniorTeacher">
|
||||
<el-radio-group v-model="formData.seniorTeacher" size="small">
|
||||
<el-radio border :label="true">是</el-radio>
|
||||
<el-radio border :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>-->
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="是否高级职称" prop="seniorTeacher">
|
||||
<el-radio-group v-model="formData.seniorTeacher" size="small">
|
||||
<el-radio border :label="true">是</el-radio>
|
||||
<el-radio border :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否中级职称及以下" prop="intermediateBelow">
|
||||
<el-radio-group v-model="formData.intermediateBelow" size="small">
|
||||
<el-radio border :label="true">是</el-radio>
|
||||
<el-radio border :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否干部" prop="cadre">
|
||||
<el-radio-group v-model="formData.cadre" size="small">
|
||||
<el-radio border :label="true">是</el-radio>
|
||||
<el-radio border :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否工人" prop="worker">
|
||||
<el-radio-group v-model="formData.worker" size="small">
|
||||
<el-radio border :label="true">是</el-radio>
|
||||
<el-radio border :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="校级领导" prop="schoolLeader">
|
||||
<el-radio-group v-model="formData.schoolLeader" size="small">
|
||||
<el-radio border :label="true">是</el-radio>
|
||||
<el-radio border :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="中层领导" prop="middleLevelLeader">
|
||||
<el-radio-group v-model="formData.middleLevelLeader" size="small">
|
||||
<el-radio border :label="true">是</el-radio>
|
||||
<el-radio border :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
|
||||
<el-form-item label="是否中级职称及以下" prop="intermediateBelow">
|
||||
<el-radio-group v-model="formData.intermediateBelow" size="small">
|
||||
<el-radio border :label="true">是</el-radio>
|
||||
<el-radio border :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
|
||||
<el-form-item label="是否干部" prop="cadre">
|
||||
<el-radio-group v-model="formData.cadre" size="small">
|
||||
<el-radio border :label="true">是</el-radio>
|
||||
<el-radio border :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="是否工人" prop="worker">
|
||||
<el-radio-group v-model="formData.worker" size="small">
|
||||
<el-radio border :label="true">是</el-radio>
|
||||
<el-radio border :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="校级领导" prop="schoolLeader">
|
||||
<el-radio-group v-model="formData.schoolLeader" size="small">
|
||||
<el-radio border :label="true">是</el-radio>
|
||||
<el-radio border :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="中层领导" prop="middleLevelLeader">
|
||||
<el-radio-group v-model="formData.middleLevelLeader" size="small">
|
||||
<el-radio border :label="true">是</el-radio>
|
||||
<el-radio border :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-grid">
|
||||
|
||||
+1
-1
@@ -41,7 +41,7 @@ layout("/layouts/platform_h5.html"){
|
||||
<i class="fa fa-undo"></i>
|
||||
<span>撤回</span>
|
||||
</div>
|
||||
<div class="action-btn delete" @click="onDelete(row)"
|
||||
<div class="action-btn delete" @click="onDelete(row.id)"
|
||||
v-if="row.taskKey === 'startTask' || !row.instanceId">
|
||||
<i class="fa fa-trash"></i>
|
||||
<span>删除</span>
|
||||
|
||||
Reference in New Issue
Block a user