commit
This commit is contained in:
+1
-1
@@ -191,7 +191,7 @@ public class ProposalPositiveSecondedController {
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission(value = {"proposal.seconded", "h5.proposal.seconded"}, mode = SaMode.OR)
|
||||
@SaCheckPermission(value = {"proposal.seconded", "h5.proposal.seconded", "proposal.schoolLeaderApproval", "h5.proposal.schoolLeaderApproval"}, mode = SaMode.OR)
|
||||
public Result listPositiveSeconded(String bizId) {
|
||||
List<ProposalSecond> list = dao.query(ProposalSecond.class, Cnd.where(ProposalSecond::getProposalId, "=", bizId).and(ProposalSecond::getMode, "=", false));
|
||||
return Result.success(list);
|
||||
|
||||
+31
-3
@@ -1,6 +1,7 @@
|
||||
package com.budwk.app.zhgh.democratic.proposal.interceptor;
|
||||
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import com.budwk.app.base.exception.BaseException;
|
||||
import com.budwk.app.flow.engine.FlowInterceptor;
|
||||
import com.budwk.app.flow.engine.core.Execution;
|
||||
import com.budwk.app.flow.engine.core.ServiceContext;
|
||||
@@ -12,13 +13,19 @@ import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.json.Json;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 提案承办单位答复任务设置信息拦截器
|
||||
* 承办单位名称、ID、是否主办等信息
|
||||
*/
|
||||
public class ProposalUnderTakeInfoInterceptor implements FlowInterceptor {
|
||||
private static final Set<String> REPLY_TASK_NAMES = Set.of("master_reply", "slave_reply", "opinion_master_reply");
|
||||
|
||||
@Override
|
||||
public void intercept(Execution execution) {
|
||||
Dao dao = ServiceContext.find(Dao.class);
|
||||
@@ -26,20 +33,41 @@ public class ProposalUnderTakeInfoInterceptor implements FlowInterceptor {
|
||||
// 提案ID
|
||||
String proposalId = execution.getProcessInstance().getBusinessNo();
|
||||
// 当前任务
|
||||
List<ProcessTask> processTaskList = execution.getProcessTaskList();
|
||||
// Include the current completed reply task and any reply tasks created by this transition.
|
||||
Map<Long, ProcessTask> processTaskMap = new LinkedHashMap<>();
|
||||
addReplyTask(processTaskMap, execution.getProcessTask());
|
||||
for (ProcessTask task : execution.getProcessTaskList()) {
|
||||
addReplyTask(processTaskMap, task);
|
||||
}
|
||||
|
||||
for (ProcessTask task : processTaskList) {
|
||||
List<ProcessTask> updateTaskList = new ArrayList<>();
|
||||
for (ProcessTask task : processTaskMap.values()) {
|
||||
// 办理人
|
||||
ProcessTaskActor taskActor = dao.fetch(ProcessTaskActor.class, Cnd.where(ProcessTaskActor::getProcessTaskId, "=", task.getId()));
|
||||
if (taskActor == null) {
|
||||
throw new BaseException("Task actor is empty, cannot write proposal undertaking unit info.");
|
||||
}
|
||||
String actorUnitId = taskActor.getActorUnitId();
|
||||
ProposalReplyUnit replyUnit = dao.fetch(ProposalReplyUnit.class, Cnd.where(ProposalReplyUnit::getProposalId, "=", proposalId).and(ProposalReplyUnit::getUnitId, "=", actorUnitId));
|
||||
if (replyUnit == null) {
|
||||
throw new BaseException("Proposal undertaking unit is empty, cannot write proposal undertaking unit info.");
|
||||
}
|
||||
|
||||
Dict variable = FlowUtil.variableToDict(task.getVariable());
|
||||
variable.set("underTakeName", replyUnit.getUnitName());
|
||||
variable.set("underTakeId", replyUnit.getUnitId());
|
||||
variable.set("underTakeIsMaster", replyUnit.getIsMaster());
|
||||
task.setVariable(Json.toJson(variable));
|
||||
updateTaskList.add(task);
|
||||
}
|
||||
if (!updateTaskList.isEmpty()) {
|
||||
dao.update(updateTaskList, "variable");
|
||||
}
|
||||
}
|
||||
|
||||
private void addReplyTask(Map<Long, ProcessTask> processTaskMap, ProcessTask task) {
|
||||
if (task != null && REPLY_TASK_NAMES.contains(task.getTaskName())) {
|
||||
processTaskMap.put(task.getId(), task);
|
||||
}
|
||||
dao.update(processTaskList,"variable");
|
||||
}
|
||||
}
|
||||
|
||||
+48
@@ -1,6 +1,7 @@
|
||||
package com.budwk.app.zhgh.democratic.proposal.service.common;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
@@ -23,6 +24,7 @@ import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.sys.models.Sys_user_role;
|
||||
import com.budwk.app.sys.services.SysDictService;
|
||||
import com.budwk.app.sys.services.SysRoleService;
|
||||
import com.budwk.app.sys.views.View_user;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.web.commons.base.Globals;
|
||||
import com.budwk.app.zhgh.democratic.proposal.models.ProposalConsolidation;
|
||||
@@ -210,6 +212,51 @@ public class ProposalCommonServiceImpl extends BaseServiceImpl<ProposalInfo> imp
|
||||
List<ProcessTask> doneTaskList = flowEngine.processTaskService().getDoneTaskList(processInstance.getId(), null);
|
||||
for (ProcessTask doneTask : doneTaskList) {
|
||||
ProcessTaskVO taskVO = flowEngine.processTaskService().findById(doneTask.getId());
|
||||
String taskName = taskVO.getTaskName();
|
||||
// 模板按当前 JDHTA_NC 节点名称展示,按任务编码处理可兼容历史提案中已保存的旧节点显示名称。
|
||||
if ("startTask".equals(taskName)) {
|
||||
taskVO.setDisplayName("撰写提案");
|
||||
} else if ("invite".equals(taskName)) {
|
||||
taskVO.setDisplayName("邀请附议人");
|
||||
} else if ("second".equals(taskName)) {
|
||||
taskVO.setDisplayName("提案附议");
|
||||
} else if ("delegation".equals(taskName)) {
|
||||
taskVO.setDisplayName("团长审核");
|
||||
} else if ("committee_member_review".equals(taskName)) {
|
||||
taskVO.setDisplayName("提案委委员审议");
|
||||
} else if ("committee".equals(taskName)) {
|
||||
taskVO.setDisplayName("提案委主任意见");
|
||||
} else if ("school_leader_instruction".equals(taskName)) {
|
||||
taskVO.setDisplayName("分管校领导批示");
|
||||
} else if ("master_reply".equals(taskName) || "opinion_master_reply".equals(taskName)) {
|
||||
taskVO.setDisplayName("主办单位答复");
|
||||
} else if ("slave_reply".equals(taskName)) {
|
||||
taskVO.setDisplayName("协办单位答复");
|
||||
} else if ("committee_director_opinion".equals(taskName)) {
|
||||
taskVO.setDisplayName("提案委主任审核");
|
||||
} else if ("school_leader".equals(taskName)) {
|
||||
taskVO.setDisplayName("分管校领导审核");
|
||||
} else if ("feedback".equals(taskName)) {
|
||||
taskVO.setDisplayName("反馈评价");
|
||||
Dict variable = FlowUtil.variableToDict(taskVO.getVariable());
|
||||
String feedback = variable.getStr(FlowConst.TASK_FORM_DATA_PREFIX + "feedback");
|
||||
variable.put(FlowConst.TASK_FORM_DATA_PREFIX + "feedback_name", feedBackMap.getOrDefault(feedback, feedback));
|
||||
taskVO.setVariable(Json.toJson(variable));
|
||||
}
|
||||
if ("second".equals(taskName) || "committee_member_review".equals(taskName)) {
|
||||
Dict variable = FlowUtil.variableToDict(taskVO.getVariable());
|
||||
View_user user = null;
|
||||
if (StrUtil.isNotBlank(taskVO.getOperator())) {
|
||||
user = dao().fetch(View_user.class, Cnd.where(View_user::getId, "=", taskVO.getOperator()));
|
||||
}
|
||||
if (user == null && StrUtil.isNotBlank(variable.getStr(FlowConst.TASK_FORM_DATA_PREFIX + "loginName"))) {
|
||||
user = dao().fetch(View_user.class, Cnd.where(View_user::getLoginname, "=", variable.getStr(FlowConst.TASK_FORM_DATA_PREFIX + "loginName")));
|
||||
}
|
||||
if (user != null && StrUtil.isNotBlank(user.getUnitName())) {
|
||||
variable.put(FlowConst.TASK_FORM_DATA_PREFIX + "unitName", user.getUnitName());
|
||||
taskVO.setVariable(Json.toJson(variable));
|
||||
}
|
||||
}
|
||||
doneTaskVos.add(taskVO);
|
||||
}
|
||||
|
||||
@@ -224,6 +271,7 @@ public class ProposalCommonServiceImpl extends BaseServiceImpl<ProposalInfo> imp
|
||||
Configure config = Configure.builder()
|
||||
.bind("seconders", policy)
|
||||
.bind("提案附议", policy)
|
||||
.bind("提案委委员审议", policy)
|
||||
.bind("brief", htmlRenderPolicy)
|
||||
.bind("measures", htmlRenderPolicy)
|
||||
.bind("taskFormData.tf_opinion", htmlRenderPolicy)
|
||||
|
||||
Reference in New Issue
Block a user