|
@@ -565,7 +565,7 @@ public class TaskController extends BladeController {
|
|
|
|
|
|
task.setType(1);
|
|
task.setType(1);
|
|
task.setApprovalType(5); //计量
|
|
task.setApprovalType(5); //计量
|
|
- task.setFixedFlowId(0L);
|
|
|
|
|
|
+ task.setFixedFlowId(ObjectUtil.isNotEmpty(approvalDTO.getFixedFlowId()) ? Long.parseLong(approvalDTO.getFixedFlowId()) : 0L);
|
|
task.setStatus(1); //待审批
|
|
task.setStatus(1); //待审批
|
|
task.setIsDeleted(0);
|
|
task.setIsDeleted(0);
|
|
taskClient.saveTask(task);
|
|
taskClient.saveTask(task);
|
|
@@ -1063,6 +1063,7 @@ public class TaskController extends BladeController {
|
|
vo.setMeterType(task.getMeterTaskType());
|
|
vo.setMeterType(task.getMeterTaskType());
|
|
vo.setTaskDesc(task.getTaskContent());
|
|
vo.setTaskDesc(task.getTaskContent());
|
|
vo.setTaskReportUserName(nameMap.get(Long.parseLong(task.getReportUser())));
|
|
vo.setTaskReportUserName(nameMap.get(Long.parseLong(task.getReportUser())));
|
|
|
|
+ vo.setFixedFlowId(ObjectUtil.isNotEmpty(task.getFixedFlowId()) ? task.getFixedFlowId().equals(0L) ? null : task.getFixedFlowId() : null);
|
|
List<TaskParallel> taskParallelList = finalTaskParallelGroupMap.get(task.getProcessInstanceId());
|
|
List<TaskParallel> taskParallelList = finalTaskParallelGroupMap.get(task.getProcessInstanceId());
|
|
if (taskParallelList != null && taskParallelList.size() > 0) {
|
|
if (taskParallelList != null && taskParallelList.size() > 0) {
|
|
List<String> names = taskParallelList.stream().map(TaskParallel::getTaskUserName).collect(Collectors.toList());
|
|
List<String> names = taskParallelList.stream().map(TaskParallel::getTaskUserName).collect(Collectors.toList());
|
|
@@ -1118,44 +1119,95 @@ public class TaskController extends BladeController {
|
|
throw new ServiceException("任务id、用户信息不能为空");
|
|
throw new ServiceException("任务id、用户信息不能为空");
|
|
}
|
|
}
|
|
TaskDetailVO vo = new TaskDetailVO();
|
|
TaskDetailVO vo = new TaskDetailVO();
|
|
- Task task = jdbcTemplate.query("SELECT * FROM u_task WHERE id = " + id, new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
|
|
|
|
|
|
+ Task task = jdbcTemplate.query("SELECT * FROM u_task WHERE id = ?", new Object[]{id}, new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
|
|
if (task != null) {
|
|
if (task != null) {
|
|
|
|
+
|
|
|
|
+ List<Map<String, Object>> taskProcessInfo = new LinkedList<>();
|
|
|
|
+
|
|
/*左侧任务流程信息*/
|
|
/*左侧任务流程信息*/
|
|
- List<TaskParallel> taskParallels = jdbcTemplate.query("select process_instance_id,task_user,task_user_name,e_visa_status,e_visa_content,status,sort,update_time from u_task_parallel where process_instance_id = " + task.getProcessInstanceId() + " order by sort", new BeanPropertyRowMapper<>(TaskParallel.class));
|
|
|
|
- List<Map<String, String>> taskProcessInfo = new LinkedList<>();
|
|
|
|
|
|
+ List<TaskParallel> taskParallels = jdbcTemplate.query("SELECT process_instance_id,task_user,task_user_name,e_visa_status,e_visa_content,status,sort,update_time FROM u_task_parallel WHERE process_instance_id = ? ORDER BY sort", new Object[]{task.getProcessInstanceId()}, new BeanPropertyRowMapper<>(TaskParallel.class));
|
|
|
|
|
|
/*上报人*/
|
|
/*上报人*/
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
- Map<String, String> taskUserOne = new LinkedHashMap<>();
|
|
|
|
|
|
+ Map<String, Object> taskUserOne = new LinkedHashMap<>();
|
|
taskUserOne.put("name", task.getReportUserName());
|
|
taskUserOne.put("name", task.getReportUserName());
|
|
taskUserOne.put("date", sdf.format(task.getCreateTime()));
|
|
taskUserOne.put("date", sdf.format(task.getCreateTime()));
|
|
taskUserOne.put("status", "2");
|
|
taskUserOne.put("status", "2");
|
|
taskUserOne.put("flowValue", "上报");
|
|
taskUserOne.put("flowValue", "上报");
|
|
- taskUserOne.put("sort", "0");
|
|
|
|
taskProcessInfo.add(0, taskUserOne);
|
|
taskProcessInfo.add(0, taskUserOne);
|
|
|
|
|
|
- /*流程人*/
|
|
|
|
- for (int i = 0; i < taskParallels.size(); i++) {
|
|
|
|
- TaskParallel taskParallel = taskParallels.get(i);
|
|
|
|
- Map<String, String> taskUserOther = new LinkedHashMap<>();
|
|
|
|
- taskUserOther.put("name", taskParallel.getTaskUserName());
|
|
|
|
- if (taskParallel.getStatus().equals(2) || taskParallel.getStatus().equals(3)) {
|
|
|
|
- taskUserOther.put("date", sdf.format(taskParallel.getUpdateTime()));
|
|
|
|
- }
|
|
|
|
- taskUserOther.put("status", taskParallel.getStatus().toString());
|
|
|
|
- if (i == taskParallels.size() - 1) {
|
|
|
|
- taskUserOther.put("flowValue", (taskParallel.getStatus().equals(2) ? "同意" : taskParallel.getStatus().equals(1) ? "待审批" : "已废除") + "</br></br>结束流程");
|
|
|
|
- } else {
|
|
|
|
- taskUserOther.put("flowValue", taskParallel.getStatus().equals(2) ? "同意" : taskParallel.getStatus().equals(1) ? "待审批" : "已废除");
|
|
|
|
|
|
+ /*预设流程(平行、顺序审批)*/
|
|
|
|
+ if (ObjectUtil.isNotEmpty(task.getFixedFlowId()) && !task.getFixedFlowId().equals(0L)) {
|
|
|
|
+ List<FixedFlowLink> query = jdbcTemplate.query("SELECT * FROM u_fixed_flow_link WHERE fixed_flow_id = ?", new Object[]{task.getFixedFlowId()}, new BeanPropertyRowMapper<>(FixedFlowLink.class));
|
|
|
|
+ Map<String, List<FixedFlowLink>> group = query.stream()
|
|
|
|
+ .collect(Collectors.groupingBy(obj -> obj.getFixedFlowLink() + "@@@" + obj.getFixedFlowLinkType(),
|
|
|
|
+ LinkedHashMap::new,
|
|
|
|
+ Collectors.toList()));
|
|
|
|
+
|
|
|
|
+ for (Map.Entry<String, List<FixedFlowLink>> stringListEntry : group.entrySet()) {
|
|
|
|
+ Map<String, Object> m = new LinkedHashMap<>();
|
|
|
|
+ m.put("taskBranchName", stringListEntry.getKey().split("@@@")[0]);
|
|
|
|
+ m.put("taskBranchType", stringListEntry.getKey().split("@@@")[1]);
|
|
|
|
+
|
|
|
|
+ List<FixedFlowLink> value = stringListEntry.getValue();
|
|
|
|
+ if (stringListEntry.getKey().split("@@@")[1].equals("1")) {
|
|
|
|
+ value.sort(Comparator.comparingInt(FixedFlowLink::getFixedFlowLinkSort));
|
|
|
|
+ }
|
|
|
|
+ List<Long> userIds = value.stream().map(FixedFlowLink::getFixedFlowLinkUser).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ List<Map<String, String>> userList = new LinkedList<>();
|
|
|
|
+ for (int i = 0; i < taskParallels.size(); i++) {
|
|
|
|
+ TaskParallel taskParallel = taskParallels.get(i);
|
|
|
|
+ if (userIds.contains(Long.parseLong(taskParallel.getTaskUser()))) {
|
|
|
|
+ Map<String, String> taskUserOther = new LinkedHashMap<>();
|
|
|
|
+ taskUserOther.put("name", taskParallel.getTaskUserName());
|
|
|
|
+ if (taskParallel.getStatus().equals(2) || taskParallel.getStatus().equals(3)) {
|
|
|
|
+ taskUserOther.put("date", sdf.format(taskParallel.getUpdateTime()));
|
|
|
|
+ }
|
|
|
|
+ taskUserOther.put("status", taskParallel.getStatus().toString());
|
|
|
|
+ if (i == taskParallels.size() - 1) {
|
|
|
|
+ taskUserOther.put("flowValue", (taskParallel.getStatus().equals(2) ? "同意" : taskParallel.getStatus().equals(1) ? "待审批" : "已废除") + "</br></br>结束流程");
|
|
|
|
+ } else {
|
|
|
|
+ taskUserOther.put("flowValue", taskParallel.getStatus().equals(2) ? "同意" : taskParallel.getStatus().equals(1) ? "待审批" : "已废除");
|
|
|
|
+ }
|
|
|
|
+ userList.add(taskUserOther);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ m.put("userList", userList);
|
|
|
|
+
|
|
|
|
+ String var = "1";
|
|
|
|
+ List<String> statusList = userList.stream()
|
|
|
|
+ .map(user -> user.get("status"))
|
|
|
|
+ .filter(Objects::nonNull)
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ if (statusList.stream().allMatch("2"::equals)) {
|
|
|
|
+ var = "2";
|
|
|
|
+ }
|
|
|
|
+ m.put("taskBranchStatus", var);
|
|
|
|
+
|
|
|
|
+ taskProcessInfo.add(m);
|
|
}
|
|
}
|
|
- taskUserOther.put("sort", taskParallel.getSort().toString());
|
|
|
|
- taskProcessInfo.add(taskUserOther);
|
|
|
|
- }
|
|
|
|
- vo.setTaskProcessInfo(taskProcessInfo);
|
|
|
|
|
|
+ vo.setTaskProcessInfo(taskProcessInfo);
|
|
|
|
|
|
- /*Map<String, List<Map<String, String>>> groupedBySort = taskProcessInfo.stream().collect(Collectors.groupingBy(obj_1 -> obj_1.get("sort")));
|
|
|
|
- groupedBySort.values().forEach(group -> group.sort(Comparator.comparing(obj_2 -> obj_2.get("sort"))));
|
|
|
|
- vo.setTaskProcessInfo(groupedBySort);*/
|
|
|
|
|
|
+ /*非预设流程(默认顺序审批)*/
|
|
|
|
+ } else if (ObjectUtil.isEmpty(task.getFixedFlowId()) || task.getFixedFlowId().equals(0L)) {
|
|
|
|
+ for (int i = 0; i < taskParallels.size(); i++) {
|
|
|
|
+ TaskParallel taskParallel = taskParallels.get(i);
|
|
|
|
+ Map<String, Object> taskUserOther = new LinkedHashMap<>();
|
|
|
|
+ taskUserOther.put("name", taskParallel.getTaskUserName());
|
|
|
|
+ if (taskParallel.getStatus().equals(2) || taskParallel.getStatus().equals(3)) {
|
|
|
|
+ taskUserOther.put("date", sdf.format(taskParallel.getUpdateTime()));
|
|
|
|
+ }
|
|
|
|
+ taskUserOther.put("status", taskParallel.getStatus().toString());
|
|
|
|
+ if (i == taskParallels.size() - 1) {
|
|
|
|
+ taskUserOther.put("flowValue", (taskParallel.getStatus().equals(2) ? "同意" : taskParallel.getStatus().equals(1) ? "待审批" : "已废除") + "</br></br>结束流程");
|
|
|
|
+ } else {
|
|
|
|
+ taskUserOther.put("flowValue", taskParallel.getStatus().equals(2) ? "同意" : taskParallel.getStatus().equals(1) ? "待审批" : "已废除");
|
|
|
|
+ }
|
|
|
|
+ taskProcessInfo.add(taskUserOther);
|
|
|
|
+ }
|
|
|
|
+ vo.setTaskProcessInfo(taskProcessInfo);
|
|
|
|
+ }
|
|
|
|
|
|
/*中间业务taskVO复制数据(只有待审批、已审批任务才能查看到具体的taskVO复制数据,因为废除任务时taskVO被删除,但是单条驳回时有记录单条数据的历史信息,所以通过的任务还是能查看到)*/
|
|
/*中间业务taskVO复制数据(只有待审批、已审批任务才能查看到具体的taskVO复制数据,因为废除任务时taskVO被删除,但是单条驳回时有记录单条数据的历史信息,所以通过的任务还是能查看到)*/
|
|
if (ObjectUtil.isNotEmpty(task.getFormDataId()) && Arrays.asList(1, 2).contains(task.getStatus())) {
|
|
if (ObjectUtil.isNotEmpty(task.getFormDataId()) && Arrays.asList(1, 2).contains(task.getStatus())) {
|