|
|
@@ -200,6 +200,9 @@ public class DecisionServiceImpl extends FlowServiceFactory implements IDecision
|
|
|
tProjectPool.setProjectState("h");//项目状态-准备项目投决材料
|
|
|
tProjectPool.setProjectStatus("0");//项目机会状态-正常
|
|
|
tProjectPoolService.updateTProjectPool(tProjectPool);
|
|
|
+ if(flowBaseInfo.isFlag()){
|
|
|
+ getAssignee(tProjectDecision,flowBaseInfo);
|
|
|
+ }
|
|
|
// todo 短信
|
|
|
//sendMessage(flowBaseInfo,"");
|
|
|
return AjaxResult.success();
|
|
|
@@ -218,7 +221,7 @@ public class DecisionServiceImpl extends FlowServiceFactory implements IDecision
|
|
|
|
|
|
}
|
|
|
@Override
|
|
|
- public AjaxResult complete(TProjectDecision tProjectDecision, TProjectMeeting tProjectMeeting,TProjectScoring tProjectScoring, FlowBaseInfo flow,HttpServletRequest request){
|
|
|
+ public AjaxResult complete(TProjectDecision tProjectDecision, TProjectMeeting tProjectMeeting,TProjectScoring tProjectScoring, FlowBaseInfo flow,HttpServletRequest request) throws Exception {
|
|
|
//Task task=taskService.createTaskQuery().processInstanceId(tProjectApproval.getProcInstId()).singleResult();
|
|
|
Task task = taskService.createTaskQuery().taskId(flow.getTaskId()).singleResult();
|
|
|
if (Objects.isNull(task)) {
|
|
|
@@ -231,7 +234,7 @@ public class DecisionServiceImpl extends FlowServiceFactory implements IDecision
|
|
|
Map<String, Object> formProperties = new HashMap<>();
|
|
|
formProperties.put("auditPass", tProjectDecision.isFlag());
|
|
|
//会议投决人
|
|
|
- if("meeting".equals(task.getTaskDefinitionKey())) {
|
|
|
+ if("meeting".equals(task.getTaskDefinitionKey())&&tProjectDecision.isFlag()) {
|
|
|
//立项审批人
|
|
|
List<String> userIds = Arrays.asList(tProjectDecision.getParticipantsId().split(","));
|
|
|
//List<String> userIds = Arrays.asList(tProjectMeeting.getParticipantsId().split(","));//会议人
|
|
|
@@ -270,7 +273,7 @@ public class DecisionServiceImpl extends FlowServiceFactory implements IDecision
|
|
|
userInfo.getNickName(), "k", "5");
|
|
|
}
|
|
|
//发起会议
|
|
|
- if ("meeting".equals(task.getTaskDefinitionKey())) {
|
|
|
+ if ("meeting".equals(task.getTaskDefinitionKey())&&tProjectDecision.isFlag()) {
|
|
|
tProjectMeeting.setId(IdUtils.fastSimpleUUID());
|
|
|
tProjectMeeting.setCreateBy(userInfo.getNickName());
|
|
|
tProjectMeeting.setProjectPoolId(tProjectDecision.getProjectPoolId());
|
|
|
@@ -403,6 +406,9 @@ public class DecisionServiceImpl extends FlowServiceFactory implements IDecision
|
|
|
|
|
|
tProjectDecisionService.updateTProjectDecision(tProjectDecision);
|
|
|
activitiBaseInfoService.addActivitiBaseInfo(flow);
|
|
|
+ if(flow.isFlag()){
|
|
|
+ getAssignee(tProjectDecision,flow);
|
|
|
+ }
|
|
|
//todo 短信
|
|
|
//sendMessage(flow,result);
|
|
|
}
|
|
|
@@ -520,4 +526,76 @@ public class DecisionServiceImpl extends FlowServiceFactory implements IDecision
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 跳节点
|
|
|
+ * @param projectDecision
|
|
|
+ * @param flow
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ public void getAssignee(TProjectDecision projectDecision, FlowBaseInfo flow) throws Exception {
|
|
|
+ SysUser sysUser=SecurityUtils.getLoginUser().getUser();//当前登陆人
|
|
|
+ if (sysUser == null) {
|
|
|
+ sysUser=sysUserService.selectUserById(Long.parseLong(projectDecision.getCreateBy()));
|
|
|
+ }
|
|
|
+ List<Task> tasks = taskService.createTaskQuery().processInstanceId(flow.getProcInsId()).list();
|
|
|
+ Long userId=sysUser.getUserId();
|
|
|
+ for(int i = 0; i < tasks.size(); i++) {
|
|
|
+ Task task = tasks.get(i);
|
|
|
+ if (task == null || StringUtils.isBlank(task.getAssignee())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Long assignee = Long.parseLong(task.getAssignee());
|
|
|
+ if ("deptLeader".equals(task.getTaskDefinitionKey()) && (userId.equals(assignee) || projectDecision.getCreateBy().equals(assignee))) {
|
|
|
+ JumpNode(projectDecision, flow);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public Map<String, Object> JumpNode(TProjectDecision projectDecision, FlowBaseInfo flow) throws Exception{
|
|
|
+ List<Task> list = taskService.createTaskQuery().processInstanceId(flow.getProcInsId()).list();
|
|
|
+ String taskId=null;
|
|
|
+ Map<String, Object> rs = new HashMap<String, Object>();
|
|
|
+ rs.put("status",true);
|
|
|
+ if (list.size()>0) {
|
|
|
+ taskId = list.get(0).getId();
|
|
|
+ Task task=list.get(0);
|
|
|
+ flow.setTaskId(taskId);
|
|
|
+ boolean flag = flow.isFlag();
|
|
|
+ //当前流程节点Id信息
|
|
|
+// ExecutionEntity execution = (ExecutionEntity) runtimeService.createProcessInstanceQuery().processInstanceId(flow.getProcInsId()).singleResult();
|
|
|
+// String activitiId = execution.getActivityId();
|
|
|
+ Map<String, Object> formProperties = new HashMap<>();
|
|
|
+ formProperties.put("auditPass", flow.isFlag());
|
|
|
+ //部门负责人
|
|
|
+ String leader=sysDeptMapper.selectDeptLeader("投资部");
|
|
|
+ SysUser sysUser=sysUserService.selectUserByUserName(leader);
|
|
|
+ formProperties.put("MANAGER",sysUser.getUserId());
|
|
|
+ //会议投决人
|
|
|
+ if("meeting".equals(task.getTaskDefinitionKey())) {
|
|
|
+ //立项审批人
|
|
|
+ List<String> userIds = Arrays.asList(projectDecision.getParticipantsId().split(","));
|
|
|
+ formProperties.put("decisionList", userIds);
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotBlank(projectDecision.getIsTerminate())) {//不为空代表结束流程
|
|
|
+ formProperties.put("whetherToEnd", true);
|
|
|
+ }else{
|
|
|
+ formProperties.put("whetherToEnd", false);
|
|
|
+ }
|
|
|
+ //当前登陆人
|
|
|
+ Long userId=SecurityUtils.getUserId();
|
|
|
+ try {
|
|
|
+ //表单审核
|
|
|
+ rs = flowService.taskComplete(taskId, flag, formProperties, userId.toString());
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ rs.put("status", false);
|
|
|
+ rs.put("msg", "流程审批失败");
|
|
|
+ }
|
|
|
+ if (flow.isFlag()){
|
|
|
+ getAssignee(projectDecision,flow);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ return rs;
|
|
|
+ }
|
|
|
+
|
|
|
}
|