Commit a79ad7c997e97c4c997d78b18b45b3f7312abd43
1 parent
ae7e3fdf
m
Showing
7 changed files
with
274 additions
and
275 deletions
trash-activiti/src/main/java/com/trash/activiti/controller/TaskController.java
| @@ -2,6 +2,7 @@ package com.trash.activiti.controller; | @@ -2,6 +2,7 @@ package com.trash.activiti.controller; | ||
| 2 | 2 | ||
| 3 | 3 | ||
| 4 | import com.github.pagehelper.Page; | 4 | import com.github.pagehelper.Page; |
| 5 | +import com.trash.common.annotation.RepeatSubmit; | ||
| 5 | import com.trash.common.core.controller.BaseController; | 6 | import com.trash.common.core.controller.BaseController; |
| 6 | import com.trash.common.core.domain.AjaxResult; | 7 | import com.trash.common.core.domain.AjaxResult; |
| 7 | import com.trash.common.core.page.PageDomain; | 8 | import com.trash.common.core.page.PageDomain; |
| @@ -53,6 +54,7 @@ public class TaskController extends BaseController { | @@ -53,6 +54,7 @@ public class TaskController extends BaseController { | ||
| 53 | 54 | ||
| 54 | //保存表单 | 55 | //保存表单 |
| 55 | @PostMapping(value = "/formDataSave/{taskID}") | 56 | @PostMapping(value = "/formDataSave/{taskID}") |
| 57 | + @RepeatSubmit | ||
| 56 | public AjaxResult formDataSave(@PathVariable("taskID") String taskID, | 58 | public AjaxResult formDataSave(@PathVariable("taskID") String taskID, |
| 57 | @RequestBody List<ActWorkflowFormDataDTO> formData ) throws ParseException { | 59 | @RequestBody List<ActWorkflowFormDataDTO> formData ) throws ParseException { |
| 58 | return toAjax(actTaskService.formDataSave(taskID, formData)); | 60 | return toAjax(actTaskService.formDataSave(taskID, formData)); |
trash-activiti/src/main/java/com/trash/activiti/service/impl/ActTaskServiceImpl.java
| @@ -54,286 +54,283 @@ import com.trash.common.utils.spring.SpringUtils; | @@ -54,286 +54,283 @@ import com.trash.common.utils.spring.SpringUtils; | ||
| 54 | @Service | 54 | @Service |
| 55 | public class ActTaskServiceImpl implements IActTaskService { | 55 | public class ActTaskServiceImpl implements IActTaskService { |
| 56 | 56 | ||
| 57 | - @Autowired | ||
| 58 | - private RepositoryService repositoryService; | ||
| 59 | - | ||
| 60 | - @Autowired | ||
| 61 | - private myTaskService taskRuntime; | ||
| 62 | - | ||
| 63 | - @Autowired | ||
| 64 | - private TaskService taskService; | ||
| 65 | - | ||
| 66 | - @Autowired | ||
| 67 | - private RuntimeService runtimeService; | ||
| 68 | - | ||
| 69 | - @Autowired | ||
| 70 | - private IActWorkflowFormDataService actWorkflowFormDataService; | ||
| 71 | - | ||
| 72 | - | ||
| 73 | - @Autowired | ||
| 74 | - private ActReDeploymentMapper actMapper; | ||
| 75 | - | ||
| 76 | - @Autowired | ||
| 77 | - SecurityManager securityManager; | ||
| 78 | - | ||
| 79 | - @Autowired | ||
| 80 | - UserGroupManager userGroupManager; | ||
| 81 | - | ||
| 82 | - HistoricProcessInstanceQuery processInstanceQuery; | 57 | + @Autowired |
| 58 | + private RepositoryService repositoryService; | ||
| 83 | 59 | ||
| 60 | + @Autowired | ||
| 61 | + private myTaskService taskRuntime; | ||
| 84 | 62 | ||
| 85 | - @Override | ||
| 86 | - public Page<ActTaskDTO> selectProcessDefinitionList(PageDomain pageDomain) { | ||
| 87 | - Page<ActTaskDTO> list = new Page<ActTaskDTO>(); | ||
| 88 | - | 63 | + @Autowired |
| 64 | + private TaskService taskService; | ||
| 89 | 65 | ||
| 90 | -// if (ServletUtils.getParameter("role") != null) { | ||
| 91 | -// List<String> posts = new ArrayList<>(); | ||
| 92 | -// posts.add(ServletUtils.getParameter("role")); | ||
| 93 | -// SecurityUtils.getLoginUser().getUser().setPostIds(posts); | ||
| 94 | -// } | ||
| 95 | -// if (ServletUtils.getParameter("dept") != null) { | ||
| 96 | -// List<String> roles = new ArrayList<>(); | ||
| 97 | -// roles.add(ServletUtils.getParameter("dept")); | ||
| 98 | -// SecurityUtils.getLoginUser().getUser().setRoleIds(roles); | ||
| 99 | -// } | ||
| 100 | -// if (SecurityUtils.getLoginUser().getUser().getPostIds().size() == 0 || SecurityUtils.getLoginUser().getUser().getRoleIds().size() == 0) { | ||
| 101 | -// return list; | ||
| 102 | -// } | ||
| 103 | - | ||
| 104 | - | ||
| 105 | - org.activiti.api.runtime.shared.query.Page<Task> pageTasks = taskRuntime.tasks(Pageable.of((pageDomain.getPageNum() - 1) * pageDomain.getPageSize(), pageDomain.getPageSize())); | ||
| 106 | - | ||
| 107 | - List<Task> tasks = pageTasks.getContent(); | ||
| 108 | - int totalItems = pageTasks.getTotalItems(); | ||
| 109 | - list.setTotal(totalItems); | ||
| 110 | - if (totalItems != 0) { | ||
| 111 | - Set<String> processInstanceIdIds = tasks.parallelStream().map(t -> t.getProcessInstanceId()).collect(Collectors.toSet()); | ||
| 112 | - | ||
| 113 | - List<ProcessInstance> processInstanceList = runtimeService.createProcessInstanceQuery().processInstanceIds(processInstanceIdIds).list(); | ||
| 114 | - Set<String> idString = new HashSet<String>(); | ||
| 115 | - for(ProcessInstance pi:processInstanceList){ | ||
| 116 | - idString.add(pi.getBusinessKey()); | ||
| 117 | - } | ||
| 118 | - | ||
| 119 | - List<Map<String, String>> maps = actMapper.selectWorkByIds(idString); | ||
| 120 | - | ||
| 121 | - List<ActTaskDTO> actTaskDTOS = tasks.stream().map(t -> new ActTaskDTO(t, | ||
| 122 | - processInstanceList.parallelStream().filter(pi -> t.getProcessInstanceId().equals(pi.getId())).findAny().get(), | ||
| 123 | - maps.parallelStream().filter(pi -> t.getProcessInstanceId().equals(pi.get("instance_id"))).findAny().get())).collect(Collectors.toList()); | 66 | + @Autowired |
| 67 | + private RuntimeService runtimeService; | ||
| 124 | 68 | ||
| 125 | - list.addAll(actTaskDTOS); | ||
| 126 | - } | ||
| 127 | - return list; | ||
| 128 | - } | 69 | + @Autowired |
| 70 | + private IActWorkflowFormDataService actWorkflowFormDataService; | ||
| 129 | 71 | ||
| 130 | - @Override | ||
| 131 | - public Page<ActTaskDTO> selectTaskEndHistoryDefinitionList(PageDomain pageDomain) { | ||
| 132 | - Page<ActTaskDTO> list = new Page<ActTaskDTO>(); | ||
| 133 | - | ||
| 134 | - ProcessEngine pes = ProcessEngines.getDefaultProcessEngine(); | ||
| 135 | - HistoryService historyService = pes.getHistoryService(); | ||
| 136 | - | ||
| 137 | - String username = securityManager.getAuthenticatedUserId(); | ||
| 138 | - | ||
| 139 | - List<String> collect = actMapper.selectCompleteWorkByUsername(username); | ||
| 140 | - | ||
| 141 | - if (collect.size() > 0) { | ||
| 142 | - Set<String> set = new HashSet(collect); | ||
| 143 | - | ||
| 144 | - List<HistoricProcessInstance> processInstanceList = historyService.createHistoricProcessInstanceQuery().involvedUser(username).processInstanceIds(set).list(); | ||
| 145 | - | ||
| 146 | - Set<String> idString = new HashSet<String>(); | ||
| 147 | - for(HistoricProcessInstance pi:processInstanceList){ | ||
| 148 | - idString.add(pi.getId()); | ||
| 149 | - } | ||
| 150 | - | ||
| 151 | - List<Map<String, String>> maps = actMapper.selectHistoryWorkByPIds(idString); | ||
| 152 | - | ||
| 153 | - list.setTotal(processInstanceList.size()); | ||
| 154 | - | ||
| 155 | - if (processInstanceList.size() > 0) { | ||
| 156 | - for (HistoricProcessInstance p : processInstanceList) { | ||
| 157 | - ActTaskDTO actTaskDTOS = new ActTaskDTO(p, maps.parallelStream().filter(pi -> p.getId().equals(pi.get("instance_id"))).findAny().get()); | ||
| 158 | - | ||
| 159 | - getCheckData(actTaskDTOS); | ||
| 160 | - | ||
| 161 | - list.add(actTaskDTOS); | ||
| 162 | - } | ||
| 163 | - | ||
| 164 | - } | ||
| 165 | - } | ||
| 166 | - | ||
| 167 | - list.setPageNum(pageDomain.getPageNum()); | ||
| 168 | - list.setPageSize(pageDomain.getPageSize()); | ||
| 169 | - | ||
| 170 | - list.setTotal(list.size()); | ||
| 171 | - | ||
| 172 | - return list; | ||
| 173 | - } | ||
| 174 | - | ||
| 175 | - | ||
| 176 | - @Override | ||
| 177 | - public Page<ActTaskDTO> selectRuntimeTaskHistoryDefinitionList(PageDomain pageDomain) { | ||
| 178 | - Page<ActTaskDTO> list = new Page<ActTaskDTO>(); | ||
| 179 | - | ||
| 180 | - Set<String> collect = actMapper.selectUnCompleteWorkByUsername(securityManager.getAuthenticatedUserId()); | ||
| 181 | - | ||
| 182 | - if (collect.size() > 0) { | ||
| 183 | - | ||
| 184 | - List<ProcessInstance> processInstanceList = runtimeService.createProcessInstanceQuery().processInstanceIds(collect).list(); | ||
| 185 | - | ||
| 186 | - list.setTotal(processInstanceList.size()); | ||
| 187 | - | ||
| 188 | - Set<String> idString = new HashSet<String>(); | ||
| 189 | - for(ProcessInstance pi:processInstanceList){ | ||
| 190 | - idString.add(pi.getBusinessKey()); | ||
| 191 | - } | ||
| 192 | - | ||
| 193 | - List<Map<String, String>> maps = actMapper.selectWorkByIds(idString); | ||
| 194 | - | ||
| 195 | - | ||
| 196 | - if (processInstanceList.size() > 0) { | ||
| 197 | - for (ProcessInstance p : processInstanceList) { | ||
| 198 | - ActTaskDTO actTaskDTOS = new ActTaskDTO(p, maps.parallelStream().filter(pi -> p.getProcessInstanceId().equals(pi.get("instance_id"))).findAny().get()); | ||
| 199 | - | ||
| 200 | - getCheckData(actTaskDTOS); | ||
| 201 | - | ||
| 202 | - list.add(actTaskDTOS); | ||
| 203 | - } | ||
| 204 | - | ||
| 205 | - } | ||
| 206 | - } | ||
| 207 | - | ||
| 208 | - list.setPageNum(pageDomain.getPageNum()); | ||
| 209 | - list.setPageSize(pageDomain.getPageSize()); | ||
| 210 | - | ||
| 211 | - list.setTotal(list.size()); | ||
| 212 | - return list; | ||
| 213 | - } | ||
| 214 | - | ||
| 215 | - | ||
| 216 | - public void getCheckData(ActTaskDTO actTaskDTOS) { | ||
| 217 | - ActWorkflowFormData ActWorkflowFormData = new ActWorkflowFormData(); | ||
| 218 | - ActWorkflowFormData.setBusinessKey(actTaskDTOS.getBusinessKey()); | ||
| 219 | - ActWorkflowFormData.setCreateBy(securityManager.getAuthenticatedUserId()); | ||
| 220 | - ActWorkflowFormData.setControlName("审批"); | ||
| 221 | - | ||
| 222 | - actTaskDTOS.setCheckStatus(actWorkflowFormDataService.selectActWorkflowFormDataList(ActWorkflowFormData).get(0).getControlValue().equals("通过") ? "0" : "1"); | ||
| 223 | - } | ||
| 224 | - | ||
| 225 | - SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS"); | ||
| 226 | - | ||
| 227 | - @Override | ||
| 228 | - public List<String> formDataShow(String taskID) { | ||
| 229 | - Task task = taskRuntime.task(taskID); | ||
| 230 | - /* | ||
| 231 | - * --------------------------------------------------------------------- | ||
| 232 | - * --------- FormProperty_0ueitp2--__!!类型--__!!名称--__!!是否参数--__!!默认值 例子: | ||
| 233 | - * FormProperty_0lovri0--__!!string--__!!姓名--__!!f--__!!同意!!__--驳回 | ||
| 234 | - * FormProperty_1iu6onu--__!!int--__!!年龄--__!!s | ||
| 235 | - * | ||
| 236 | - * 默认值:无、字符常量、FormProperty_开头定义过的控件ID | ||
| 237 | - * 是否参数:f为不是参数,s是字符,t是时间(不需要int,因为这里int等价于string) | ||
| 238 | - * 注:类型是可以获取到的,但是为了统一配置原则,都配置到 | ||
| 239 | - */ | ||
| 240 | - | ||
| 241 | - // 注意!!!!!!!!:表单Key必须要任务编号一模一样,因为参数需要任务key,但是无法获取,只能获取表单key“task.getFormKey()”当做任务key | ||
| 242 | - UserTask userTask = (UserTask) repositoryService.getBpmnModel(task.getProcessDefinitionId()) | ||
| 243 | - .getFlowElement(task.getFormKey()); | ||
| 244 | - | ||
| 245 | - if (userTask == null) { | ||
| 246 | - return null; | ||
| 247 | - } | ||
| 248 | - List<FormProperty> formProperties = userTask.getFormProperties(); | ||
| 249 | - List<String> collect = formProperties.stream().map(fp -> fp.getId()).collect(Collectors.toList()); | 72 | + @Autowired |
| 73 | + private ActReDeploymentMapper actMapper; | ||
| 250 | 74 | ||
| 251 | - return collect; | ||
| 252 | - } | 75 | + @Autowired |
| 76 | + SecurityManager securityManager; | ||
| 253 | 77 | ||
| 254 | - @Override | ||
| 255 | - public int formDataSave(String taskID, List<ActWorkflowFormDataDTO> awfs) throws ParseException { | ||
| 256 | - Task task = taskRuntime.task(taskID); | 78 | + @Autowired |
| 79 | + UserGroupManager userGroupManager; | ||
| 257 | 80 | ||
| 81 | + HistoricProcessInstanceQuery processInstanceQuery; | ||
| 258 | 82 | ||
| 259 | - ProcessInstance processInstance = runtimeService.createProcessInstanceQuery() | ||
| 260 | - .processInstanceId(task.getProcessInstanceId()).singleResult(); | ||
| 261 | - | ||
| 262 | - Map<String, Object> str = processInstance.getProcessVariables(); | 83 | + @Override |
| 84 | + public Page<ActTaskDTO> selectProcessDefinitionList(PageDomain pageDomain) { | ||
| 85 | + Page<ActTaskDTO> list = new Page<ActTaskDTO>(); | ||
| 86 | + | ||
| 87 | + // if (ServletUtils.getParameter("role") != null) { | ||
| 88 | + // List<String> posts = new ArrayList<>(); | ||
| 89 | + // posts.add(ServletUtils.getParameter("role")); | ||
| 90 | + // SecurityUtils.getLoginUser().getUser().setPostIds(posts); | ||
| 91 | + // } | ||
| 92 | + // if (ServletUtils.getParameter("dept") != null) { | ||
| 93 | + // List<String> roles = new ArrayList<>(); | ||
| 94 | + // roles.add(ServletUtils.getParameter("dept")); | ||
| 95 | + // SecurityUtils.getLoginUser().getUser().setRoleIds(roles); | ||
| 96 | + // } | ||
| 97 | + // if (SecurityUtils.getLoginUser().getUser().getPostIds().size() == 0 | ||
| 98 | + // || SecurityUtils.getLoginUser().getUser().getRoleIds().size() == 0) { | ||
| 99 | + // return list; | ||
| 100 | + // } | ||
| 101 | + | ||
| 102 | + org.activiti.api.runtime.shared.query.Page<Task> pageTasks = taskRuntime | ||
| 103 | + .tasks(Pageable.of((pageDomain.getPageNum() - 1) * pageDomain.getPageSize(), pageDomain.getPageSize())); | ||
| 104 | + | ||
| 105 | + List<Task> tasks = pageTasks.getContent(); | ||
| 106 | + int totalItems = pageTasks.getTotalItems(); | ||
| 107 | + list.setTotal(totalItems); | ||
| 108 | + if (totalItems != 0) { | ||
| 109 | + Set<String> processInstanceIdIds = tasks.parallelStream().map(t -> t.getProcessInstanceId()) | ||
| 110 | + .collect(Collectors.toSet()); | ||
| 111 | + | ||
| 112 | + List<ProcessInstance> processInstanceList = runtimeService.createProcessInstanceQuery() | ||
| 113 | + .processInstanceIds(processInstanceIdIds).list(); | ||
| 114 | + Set<String> idString = new HashSet<String>(); | ||
| 115 | + for (ProcessInstance pi : processInstanceList) { | ||
| 116 | + idString.add(pi.getBusinessKey()); | ||
| 117 | + } | ||
| 118 | + | ||
| 119 | + List<Map<String, String>> maps = actMapper.selectWorkByIds(idString); | ||
| 120 | + | ||
| 121 | + List<ActTaskDTO> actTaskDTOS = tasks.stream() | ||
| 122 | + .map(t -> new ActTaskDTO(t, | ||
| 123 | + processInstanceList.parallelStream() | ||
| 124 | + .filter(pi -> t.getProcessInstanceId().equals(pi.getId())).findAny().get(), | ||
| 125 | + maps.parallelStream().filter(pi -> t.getProcessInstanceId().equals(pi.get("instance_id"))) | ||
| 126 | + .findAny().get())) | ||
| 127 | + .collect(Collectors.toList()); | ||
| 128 | + | ||
| 129 | + list.addAll(actTaskDTOS); | ||
| 130 | + } | ||
| 131 | + return list; | ||
| 132 | + } | ||
| 133 | + | ||
| 134 | + @Override | ||
| 135 | + public Page<ActTaskDTO> selectTaskEndHistoryDefinitionList(PageDomain pageDomain) { | ||
| 136 | + Page<ActTaskDTO> list = new Page<ActTaskDTO>(); | ||
| 137 | + | ||
| 138 | + ProcessEngine pes = ProcessEngines.getDefaultProcessEngine(); | ||
| 139 | + HistoryService historyService = pes.getHistoryService(); | ||
| 140 | + | ||
| 141 | + String username = securityManager.getAuthenticatedUserId(); | ||
| 142 | + | ||
| 143 | + List<String> collect = actMapper.selectCompleteWorkByUsername(username); | ||
| 144 | + | ||
| 145 | + if (collect.size() > 0) { | ||
| 146 | + Set<String> set = new HashSet(collect); | ||
| 147 | + | ||
| 148 | + List<HistoricProcessInstance> processInstanceList = historyService.createHistoricProcessInstanceQuery() | ||
| 149 | + .involvedUser(username).processInstanceIds(set).list(); | ||
| 150 | + | ||
| 151 | + Set<String> idString = new HashSet<String>(); | ||
| 152 | + for (HistoricProcessInstance pi : processInstanceList) { | ||
| 153 | + idString.add(pi.getId()); | ||
| 154 | + } | ||
| 155 | + | ||
| 156 | + List<Map<String, String>> maps = actMapper.selectHistoryWorkByPIds(idString); | ||
| 157 | + | ||
| 158 | + list.setTotal(processInstanceList.size()); | ||
| 159 | + | ||
| 160 | + if (processInstanceList.size() > 0) { | ||
| 161 | + for (HistoricProcessInstance p : processInstanceList) { | ||
| 162 | + ActTaskDTO actTaskDTOS = new ActTaskDTO(p, maps.parallelStream() | ||
| 163 | + .filter(pi -> p.getId().equals(pi.get("instance_id"))).findAny().get()); | ||
| 164 | + | ||
| 165 | + getCheckData(actTaskDTOS); | ||
| 166 | + | ||
| 167 | + list.add(actTaskDTOS); | ||
| 168 | + } | ||
| 169 | + | ||
| 170 | + } | ||
| 171 | + } | ||
| 172 | + | ||
| 173 | + list.setPageNum(pageDomain.getPageNum()); | ||
| 174 | + list.setPageSize(pageDomain.getPageSize()); | ||
| 175 | + | ||
| 176 | + list.setTotal(list.size()); | ||
| 177 | + | ||
| 178 | + return list; | ||
| 179 | + } | ||
| 180 | + | ||
| 181 | + @Override | ||
| 182 | + public Page<ActTaskDTO> selectRuntimeTaskHistoryDefinitionList(PageDomain pageDomain) { | ||
| 183 | + Page<ActTaskDTO> list = new Page<ActTaskDTO>(); | ||
| 184 | + | ||
| 185 | + Set<String> collect = actMapper.selectUnCompleteWorkByUsername(securityManager.getAuthenticatedUserId()); | ||
| 186 | + | ||
| 187 | + if (collect.size() > 0) { | ||
| 188 | + | ||
| 189 | + List<ProcessInstance> processInstanceList = runtimeService.createProcessInstanceQuery() | ||
| 190 | + .processInstanceIds(collect).list(); | ||
| 191 | + | ||
| 192 | + list.setTotal(processInstanceList.size()); | ||
| 193 | + | ||
| 194 | + Set<String> idString = new HashSet<String>(); | ||
| 195 | + for (ProcessInstance pi : processInstanceList) { | ||
| 196 | + idString.add(pi.getBusinessKey()); | ||
| 197 | + } | ||
| 198 | + | ||
| 199 | + List<Map<String, String>> maps = actMapper.selectWorkByIds(idString); | ||
| 200 | + | ||
| 201 | + if (processInstanceList.size() > 0) { | ||
| 202 | + for (ProcessInstance p : processInstanceList) { | ||
| 203 | + ActTaskDTO actTaskDTOS = new ActTaskDTO(p, maps.parallelStream() | ||
| 204 | + .filter(pi -> p.getProcessInstanceId().equals(pi.get("instance_id"))).findAny().get()); | ||
| 263 | 205 | ||
| 264 | - String desc = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult().getDescription(); | ||
| 265 | - //办文办事功能:分管领导指定部门时,将部门code存入desc | ||
| 266 | - if (!StringUtils.isEmpty(awfs.get(0).getDeptCode())) { | ||
| 267 | - desc = awfs.get(0).getDeptCode(); | ||
| 268 | - } | ||
| 269 | - | ||
| 270 | - | ||
| 271 | - Boolean hasVariables = false;// 没有任何参数 | ||
| 272 | - HashMap<String, Object> variables = new HashMap<String, Object>(); | ||
| 273 | - // 前端传来的字符串,拆分成每个控件 | ||
| 274 | - List<ActWorkflowFormData> acwfds = new ArrayList<>(); | ||
| 275 | - for (ActWorkflowFormDataDTO awf : awfs) { | ||
| 276 | - ActWorkflowFormData actWorkflowFormData = new ActWorkflowFormData(processInstance.getBusinessKey(), awf, | ||
| 277 | - task); | ||
| 278 | - acwfds.add(actWorkflowFormData); | ||
| 279 | - // 构建参数集合 | ||
| 280 | - if (!"f".equals(awf.getControlIsParam())) { | ||
| 281 | - variables.put(awf.getControlId(), awf.getControlValue()); | ||
| 282 | - hasVariables = true; | ||
| 283 | - } | ||
| 284 | - | ||
| 285 | - if (processInstance.getProcessDefinitionKey().equals("handleAffairs") && awf.getControlId().equals("FormProperty_0aq22i0")) { | ||
| 286 | - variables.put("index", awf.getIndex()); | ||
| 287 | - } | ||
| 288 | - } // for结束 | ||
| 289 | - if (task.getAssignee() == null) | ||
| 290 | - { | ||
| 291 | - taskRuntime.claim(TaskPayloadBuilder.claim().withTaskId(task.getId()).build()); | ||
| 292 | - } | ||
| 293 | - if (hasVariables) { | ||
| 294 | - // 带参数完成任务 | ||
| 295 | - taskRuntime.complete(TaskPayloadBuilder.complete().withTaskId(taskID).withVariables(variables).build()); | ||
| 296 | - } else { | ||
| 297 | - taskRuntime.complete(TaskPayloadBuilder.complete().withTaskId(taskID).build()); | ||
| 298 | - } | ||
| 299 | - | ||
| 300 | - if(desc != null) | ||
| 301 | - updateThreesetpTask(processInstance, desc); | ||
| 302 | - | ||
| 303 | - | ||
| 304 | - // 写入数据库 | ||
| 305 | - return actWorkflowFormDataService.insertActWorkflowFormDatas(acwfds); | ||
| 306 | - } | 206 | + getCheckData(actTaskDTOS); |
| 307 | 207 | ||
| 208 | + list.add(actTaskDTOS); | ||
| 209 | + } | ||
| 210 | + | ||
| 211 | + } | ||
| 212 | + } | ||
| 213 | + | ||
| 214 | + list.setPageNum(pageDomain.getPageNum()); | ||
| 215 | + list.setPageSize(pageDomain.getPageSize()); | ||
| 216 | + | ||
| 217 | + list.setTotal(list.size()); | ||
| 218 | + return list; | ||
| 219 | + } | ||
| 220 | + | ||
| 221 | + public void getCheckData(ActTaskDTO actTaskDTOS) { | ||
| 222 | + ActWorkflowFormData ActWorkflowFormData = new ActWorkflowFormData(); | ||
| 223 | + ActWorkflowFormData.setBusinessKey(actTaskDTOS.getBusinessKey()); | ||
| 224 | + ActWorkflowFormData.setCreateBy(securityManager.getAuthenticatedUserId()); | ||
| 225 | + ActWorkflowFormData.setControlName("审批"); | ||
| 226 | + | ||
| 227 | + actTaskDTOS.setCheckStatus(actWorkflowFormDataService.selectActWorkflowFormDataList(ActWorkflowFormData).get(0) | ||
| 228 | + .getControlValue().equals("通过") ? "0" : "1"); | ||
| 229 | + } | ||
| 230 | + | ||
| 231 | + SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS"); | ||
| 232 | + | ||
| 233 | + @Override | ||
| 234 | + public List<String> formDataShow(String taskID) { | ||
| 235 | + Task task = taskRuntime.task(taskID); | ||
| 236 | + /* | ||
| 237 | + * --------------------------------------------------------------------- | ||
| 238 | + * --------- FormProperty_0ueitp2--__!!类型--__!!名称--__!!是否参数--__!!默认值 例子: | ||
| 239 | + * FormProperty_0lovri0--__!!string--__!!姓名--__!!f--__!!同意!!__--驳回 | ||
| 240 | + * FormProperty_1iu6onu--__!!int--__!!年龄--__!!s | ||
| 241 | + * | ||
| 242 | + * 默认值:无、字符常量、FormProperty_开头定义过的控件ID | ||
| 243 | + * 是否参数:f为不是参数,s是字符,t是时间(不需要int,因为这里int等价于string) | ||
| 244 | + * 注:类型是可以获取到的,但是为了统一配置原则,都配置到 | ||
| 245 | + */ | ||
| 246 | + | ||
| 247 | + // 注意!!!!!!!!:表单Key必须要任务编号一模一样,因为参数需要任务key,但是无法获取,只能获取表单key“task.getFormKey()”当做任务key | ||
| 248 | + UserTask userTask = (UserTask) repositoryService.getBpmnModel(task.getProcessDefinitionId()) | ||
| 249 | + .getFlowElement(task.getFormKey()); | ||
| 250 | + | ||
| 251 | + if (userTask == null) { | ||
| 252 | + return null; | ||
| 253 | + } | ||
| 254 | + List<FormProperty> formProperties = userTask.getFormProperties(); | ||
| 255 | + List<String> collect = formProperties.stream().map(fp -> fp.getId()).collect(Collectors.toList()); | ||
| 256 | + | ||
| 257 | + return collect; | ||
| 258 | + } | ||
| 259 | + | ||
| 260 | + @Override | ||
| 261 | + public int formDataSave(String taskID, List<ActWorkflowFormDataDTO> awfs) throws ParseException { | ||
| 262 | + Task task = taskRuntime.task(taskID); | ||
| 263 | + | ||
| 264 | + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery() | ||
| 265 | + .processInstanceId(task.getProcessInstanceId()).singleResult(); | ||
| 266 | + | ||
| 267 | + Map<String, Object> str = processInstance.getProcessVariables(); | ||
| 268 | + | ||
| 269 | + String desc = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult() | ||
| 270 | + .getDescription(); | ||
| 271 | + // 办文办事功能:分管领导指定部门时,将部门code存入desc | ||
| 272 | + if (!StringUtils.isEmpty(awfs.get(0).getDeptCode())) { | ||
| 273 | + desc = awfs.get(0).getDeptCode(); | ||
| 274 | + } | ||
| 275 | + | ||
| 276 | + Boolean hasVariables = false;// 没有任何参数 | ||
| 277 | + HashMap<String, Object> variables = new HashMap<String, Object>(); | ||
| 278 | + // 前端传来的字符串,拆分成每个控件 | ||
| 279 | + List<ActWorkflowFormData> acwfds = new ArrayList<>(); | ||
| 280 | + for (ActWorkflowFormDataDTO awf : awfs) { | ||
| 281 | + ActWorkflowFormData actWorkflowFormData = new ActWorkflowFormData(processInstance.getBusinessKey(), awf, | ||
| 282 | + task); | ||
| 283 | + acwfds.add(actWorkflowFormData); | ||
| 284 | + // 构建参数集合 | ||
| 285 | + if (!"f".equals(awf.getControlIsParam())) { | ||
| 286 | + variables.put(awf.getControlId(), awf.getControlValue()); | ||
| 287 | + hasVariables = true; | ||
| 288 | + } | ||
| 289 | + | ||
| 290 | + if (processInstance.getProcessDefinitionKey().equals("handleAffairs") | ||
| 291 | + && awf.getControlId().equals("FormProperty_0aq22i0")) { | ||
| 292 | + variables.put("index", awf.getIndex()); | ||
| 293 | + } | ||
| 294 | + } // for结束 | ||
| 295 | + if (task.getAssignee() == null) { | ||
| 296 | + taskRuntime.claim(TaskPayloadBuilder.claim().withTaskId(task.getId()).build()); | ||
| 297 | + } | ||
| 298 | + if (hasVariables) { | ||
| 299 | + // 带参数完成任务 | ||
| 300 | + taskRuntime.complete(TaskPayloadBuilder.complete().withTaskId(taskID).withVariables(variables).build()); | ||
| 301 | + } else { | ||
| 302 | + taskRuntime.complete(TaskPayloadBuilder.complete().withTaskId(taskID).build()); | ||
| 303 | + } | ||
| 304 | + | ||
| 305 | + if (desc != null) | ||
| 306 | + updateThreesetpTask(processInstance, desc); | ||
| 307 | + | ||
| 308 | + // 写入数据库 | ||
| 309 | + return actWorkflowFormDataService.insertActWorkflowFormDatas(acwfds); | ||
| 310 | + } | ||
| 308 | 311 | ||
| 309 | private void updateThreesetpTask(ProcessInstance processInstance, String placeCode) { | 312 | private void updateThreesetpTask(ProcessInstance processInstance, String placeCode) { |
| 310 | 313 | ||
| 311 | - org.activiti.engine.task.Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); | 314 | + org.activiti.engine.task.Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()) |
| 315 | + .singleResult(); | ||
| 312 | 316 | ||
| 313 | - if(task == null) | 317 | + if (task == null) |
| 314 | return; | 318 | return; |
| 315 | 319 | ||
| 316 | task.setDescription(placeCode); | 320 | task.setDescription(placeCode); |
| 317 | 321 | ||
| 318 | - if(processInstance.getProcessDefinitionKey().equals("workflow_conract") || | ||
| 319 | - processInstance.getProcessDefinitionKey().equals("workflow_leave") || processInstance.getProcessDefinitionKey().equals("workflow_caseoffline") || | ||
| 320 | - processInstance.getProcessDefinitionKey().equals("logistics") || processInstance.getProcessDefinitionKey().equals("conference") | ||
| 321 | - || processInstance.getProcessDefinitionKey().equals("workflow_threestep") || processInstance.getProcessDefinitionKey().equals("workflow_casefile") | ||
| 322 | - || processInstance.getProcessDefinitionKey().equals("handleAffairs") || processInstance.getProcessDefinitionKey().equals("gongwenchuli")){ | ||
| 323 | - List<IdentityLink> list = taskService.getIdentityLinksForTask(task.getId()); | ||
| 324 | - | ||
| 325 | - if(list.size() == 1){ | ||
| 326 | - taskService.addCandidateUser(task.getId(), placeCode); | ||
| 327 | - } | 322 | + List<IdentityLink> list = taskService.getIdentityLinksForTask(task.getId()); |
| 328 | 323 | ||
| 329 | - task.setDescription(placeCode); | 324 | + if (list.size() == 1) { |
| 325 | + taskService.addCandidateUser(task.getId(), placeCode); | ||
| 330 | } | 326 | } |
| 331 | 327 | ||
| 328 | + task.setDescription(placeCode); | ||
| 329 | + | ||
| 332 | taskService.saveTask(task); | 330 | taskService.saveTask(task); |
| 333 | 331 | ||
| 334 | } | 332 | } |
| 335 | 333 | ||
| 336 | - | ||
| 337 | @Override | 334 | @Override |
| 338 | public void deleteProcessById(String type) { | 335 | public void deleteProcessById(String type) { |
| 339 | runtimeService.deleteProcessInstance(type, "删除"); | 336 | runtimeService.deleteProcessInstance(type, "删除"); |
| @@ -341,20 +338,18 @@ public class ActTaskServiceImpl implements IActTaskService { | @@ -341,20 +338,18 @@ public class ActTaskServiceImpl implements IActTaskService { | ||
| 341 | 338 | ||
| 342 | @Override | 339 | @Override |
| 343 | public void endAllThreesteptask(String type) { | 340 | public void endAllThreesteptask(String type) { |
| 344 | - | ||
| 345 | - | ||
| 346 | - | 341 | + |
| 347 | List<ProcessInstance> processes = runtimeService.createProcessInstanceQuery().processDefinitionKey(type).list(); | 342 | List<ProcessInstance> processes = runtimeService.createProcessInstanceQuery().processDefinitionKey(type).list(); |
| 348 | 343 | ||
| 349 | - for(ProcessInstance proc:processes){ | ||
| 350 | - if(type.equals(proc.getProcessDefinitionKey())){ | 344 | + for (ProcessInstance proc : processes) { |
| 345 | + if (type.equals(proc.getProcessDefinitionKey())) { | ||
| 351 | try { | 346 | try { |
| 352 | - | 347 | + |
| 353 | String executionId = proc.getSuperExecutionId(); | 348 | String executionId = proc.getSuperExecutionId(); |
| 354 | Map<String, Object> map = proc.getProcessVariables(); | 349 | Map<String, Object> map = proc.getProcessVariables(); |
| 355 | - | ||
| 356 | -// runtimeService.removeVariable(executionId, variableName); | ||
| 357 | - | 350 | + |
| 351 | + // runtimeService.removeVariable(executionId, variableName); | ||
| 352 | + | ||
| 358 | runtimeService.deleteProcessInstance(proc.getId(), "超时"); | 353 | runtimeService.deleteProcessInstance(proc.getId(), "超时"); |
| 359 | } catch (Exception e) { | 354 | } catch (Exception e) { |
| 360 | e.printStackTrace(); | 355 | e.printStackTrace(); |
trash-admin/src/main/resources/application-dev.yml
| @@ -16,9 +16,9 @@ trash: | @@ -16,9 +16,9 @@ trash: | ||
| 16 | # 验证码类型 math 数组计算 char 字符验证 | 16 | # 验证码类型 math 数组计算 char 字符验证 |
| 17 | captchaType: math | 17 | captchaType: math |
| 18 | # 远程服务器地址 | 18 | # 远程服务器地址 |
| 19 | - #remotePath: http://175.6.47.84:8008 | 19 | + remotePath: http://175.6.47.84:8008 |
| 20 | #token: durable:auth:token:eyJhbGciOiJIUzUxMiJ9.eyJ5ZWEiOiJjc3poIiwiZXhwIjo0MTAyNDE1OTk5LCJjcmVhdGVkIjoxNjg0MzI3NzQ1ODkyfQ.4BrpgD9i_1TwjLRGqa3wo4Ikx8t8Gcl3FzHfjL_uolPnNMm2rd7fCvrUoBBN4Qp4cMGzg9h2Nt4NNx8PYThTaQ | 20 | #token: durable:auth:token:eyJhbGciOiJIUzUxMiJ9.eyJ5ZWEiOiJjc3poIiwiZXhwIjo0MTAyNDE1OTk5LCJjcmVhdGVkIjoxNjg0MzI3NzQ1ODkyfQ.4BrpgD9i_1TwjLRGqa3wo4Ikx8t8Gcl3FzHfjL_uolPnNMm2rd7fCvrUoBBN4Qp4cMGzg9h2Nt4NNx8PYThTaQ |
| 21 | - remotePath: http://183.66.242.6:14601 | 21 | + #remotePath: http://183.66.242.6:14601 |
| 22 | token: durable:auth:token:eyJhbGciOiJIUzUxMiJ9.eyJ5ZWEiOiJjc3poIiwiZXhwIjo0MTAyNDE1OTk5LCJjcmVhdGVkIjoxNjg0NDU5MjEzNzQ2fQ.85oIrOnU7cz7L_-IGt4Bt1LXDTkFtyrdqNt05K0v9-4nsrrzzpbjbemK-yMlbnUpe4Fx2FFES-Wbw8Yr8ML69w | 22 | token: durable:auth:token:eyJhbGciOiJIUzUxMiJ9.eyJ5ZWEiOiJjc3poIiwiZXhwIjo0MTAyNDE1OTk5LCJjcmVhdGVkIjoxNjg0NDU5MjEzNzQ2fQ.85oIrOnU7cz7L_-IGt4Bt1LXDTkFtyrdqNt05K0v9-4nsrrzzpbjbemK-yMlbnUpe4Fx2FFES-Wbw8Yr8ML69w |
| 23 | 23 | ||
| 24 | # 数据源配置 | 24 | # 数据源配置 |
trash-ui/src/api/three_step.js
| @@ -193,8 +193,10 @@ | @@ -193,8 +193,10 @@ | ||
| 193 | }, | 193 | }, |
| 194 | created() { | 194 | created() { |
| 195 | if(window.location.search){ | 195 | if(window.location.search){ |
| 196 | + debugger; | ||
| 196 | let arr = window.location.search.split("&"); | 197 | let arr = window.location.search.split("&"); |
| 197 | - this.queryParams.pageStatus = arr[0].split("=")[1]; | 198 | + if(arr[0].split("=")[0] != "?token") |
| 199 | + this.queryParams.pageStatus = arr[0].split("=")[1]; | ||
| 198 | } | 200 | } |
| 199 | 201 | ||
| 200 | 202 |
trash-ui/src/layout/index.vue
| 1 | <template> | 1 | <template> |
| 2 | - <div :class="classObj" class="app-wrapper"> | ||
| 3 | - <sidebar class="sidebar-container" /> | ||
| 4 | - <div :class="{hasTagsView:needTagsView}" class="main-container"> | ||
| 5 | - <tags-view v-if="needTagsView" /> | ||
| 6 | <app-main /> | 2 | <app-main /> |
| 7 | - | ||
| 8 | - </div> | ||
| 9 | - </div> | ||
| 10 | </template> | 3 | </template> |
| 11 | 4 | ||
| 12 | <script> | 5 | <script> |
trash-ui/src/layout/index5.vue renamed to trash-ui/src/layout/index66.vue
| 1 | <template> | 1 | <template> |
| 2 | + <div :class="classObj" class="app-wrapper"> | ||
| 3 | + <sidebar class="sidebar-container" /> | ||
| 4 | + <div :class="{hasTagsView:needTagsView}" class="main-container"> | ||
| 5 | + <tags-view v-if="needTagsView" /> | ||
| 2 | <app-main /> | 6 | <app-main /> |
| 7 | + | ||
| 8 | + </div> | ||
| 9 | + </div> | ||
| 3 | </template> | 10 | </template> |
| 4 | 11 | ||
| 5 | <script> | 12 | <script> |
trash-ui/vue.config.js
| @@ -41,8 +41,8 @@ module.exports = { | @@ -41,8 +41,8 @@ module.exports = { | ||
| 41 | } | 41 | } |
| 42 | }, | 42 | }, |
| 43 | ['/api']: { | 43 | ['/api']: { |
| 44 | - target: `http://183.66.242.6:14601`, | ||
| 45 | - // target: `http://183.66.242.6:6001`, | 44 | + // target: `http://183.66.242.6:14601`, |
| 45 | + target: `http://175.6.47.84:8008`, | ||
| 46 | changeOrigin: true, | 46 | changeOrigin: true, |
| 47 | }, | 47 | }, |
| 48 | 48 |