liuyc 2 éve
szülő
commit
6f7ecceaac

+ 1 - 1
blade-service/blade-control/src/main/java/org/springblade/control/controller/AttendanceManagerController.java

@@ -28,7 +28,7 @@ public class AttendanceManagerController extends BladeController {
     @PostMapping("/trip/page")
     @ApiOperationSupport(order = 1)
     @ApiOperation(value = "出差信息分页查询", notes = "传入AttendanceTripInfoDTO、Query")
-    public R<IPage<AttendanceTripInfoVO>> tripPage(AttendanceTripInfoDTO dto,@RequestBody Query query) {
+    public R<IPage<AttendanceTripInfoVO>> tripPage(@RequestBody AttendanceTripInfoDTO dto, @RequestBody Query query) {
         return R.data(attendanceTripService.tripPage(Condition.getPage(query), dto));
     }
 

+ 3 - 3
blade-service/blade-control/src/main/java/org/springblade/control/controller/LogHistoryController.java

@@ -54,14 +54,14 @@ public class LogHistoryController extends BladeController {
 
     @PostMapping("/task/complete")
     @ApiOperationSupport(order = 5)
-    @ApiOperation(value = "日志任务完成", notes = "传入日志logId(编辑时完成要传日志logId)、任务taskId")
-    public R<Object> logTaskComplete(Long logId, @RequestParam Long taskId) {
+    @ApiOperation(value = "日志任务完成", notes = "传入日志logId(编辑时完成要传日志logId、新增传空)、任务taskId")
+    public R<Object> logTaskComplete(@RequestParam Long logId, @RequestParam Long taskId) {
         return R.status(logHistoryService.logTaskComplete(logId, taskId));
     }
 
     @PostMapping("/task/list")
     @ApiOperationSupport(order = 6)
-    @ApiOperation(value = "日志任务列表-获取当前用户当日的任务信息", notes = "")
+    @ApiOperation(value = "日志任务列表-获取当前用户当日的任务信息")
     public R<List<TaskPlanInfoVO>> logTaskList() {
         return R.data(logHistoryService.logTaskList());
     }

+ 6 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AttendanceTripServiceImpl.java

@@ -45,6 +45,9 @@ public class AttendanceTripServiceImpl extends BaseServiceImpl<AttendanceTripMap
         queryWrapper.lambda().eq(AttendanceTripInfo::getIsTemp, 1); //提交的数据
         IPage<AttendanceTripInfo> pages = this.page(page, queryWrapper.lambda().orderBy(true, true, AttendanceTripInfo::getCreateTime));
         Map<Long, String> userMap = iUserClient.selectUserAll().stream().filter(f -> ObjectUtil.isNotEmpty(f.getRealName())).collect(Collectors.toMap(User::getId, User::getRealName));
+        List<ControlProjectInfo> projectInfoList = jdbcTemplate.query("select id,name from c_control_project_info", new BeanPropertyRowMapper<>(ControlProjectInfo.class));
+        Map<Long, String> maps = projectInfoList.stream().collect(Collectors.toMap(ControlProjectInfo::getId, ControlProjectInfo::getName));
+
         return pages.convert(obj -> {
             AttendanceTripInfoVO vo = new AttendanceTripInfoVO();
             BeanUtils.copyProperties(obj, vo);
@@ -63,6 +66,9 @@ public class AttendanceTripServiceImpl extends BaseServiceImpl<AttendanceTripMap
             vo.setCreateName(userMap.get(vo.getCreateUser()));
             vo.setApprovalStatusName(vo.getStatus().equals(1) ? "待审批" : (vo.getStatus().equals(2) ? "已审批" : (vo.getStatus().equals(3) ? "已驳回" : "未上报")));
             vo.setApprovalResultName(vo.getApprovalStatusName().equals("已审批") || vo.getApprovalStatusName().equals("已驳回") ? "已通过" : "未通过");
+            vo.setProjectName(ObjectUtil.isNotEmpty(maps.get(obj.getProjectId())) ? maps.get(obj.getProjectId()) : null);
+            vo.setDurationAll(ObjectUtil.isNotEmpty(obj.getDurationAll()) ? obj.getDurationAll() : null);
+            vo.setDuration(ObjectUtil.isNotEmpty(obj.getDuration()) ? obj.getDuration() : null);
             return vo;
         });
     }

+ 4 - 1
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/LogHistoryServiceImpl.java

@@ -431,7 +431,7 @@ public class LogHistoryServiceImpl extends BaseServiceImpl<LogHistoryMapper, Log
             taskProcessInfo.setStatus(1); //待审批
             taskProcessInfo.setReportDate(new Date());
             taskProcessInfo.setTaskType(1); //任务审批
-            taskProcessInfo.setTaskName("【" + SecureUtil.getUser().getNickName() + "】向您发起【任务完成】审批");
+            taskProcessInfo.setTaskName("【" + SecureUtil.getUser().getNickName() + "】向您发起【计划任务完成】审批");
 
             //上报人
             taskProcessInfo.setReportUserId(SecureUtil.getUserId());
@@ -445,6 +445,9 @@ public class LogHistoryServiceImpl extends BaseServiceImpl<LogHistoryMapper, Log
                 //如果审批人中存在自己本身,那么移除,自己不审批自己的任务
                 if (StringUtils.isNotEmpty(userId) && !userId.equals(String.valueOf(SecureUtil.getUserId()))) {
                     nonEmptyAuditUserIds.add(userId);
+                } else if (auditUserIds.size() == 1 && StringUtils.isNotEmpty(userId) && userId.equals(String.valueOf(SecureUtil.getUserId()))) {
+                    //如果只有本身,就是自己给自己提交的任务,只有一个审批人,那么就要添加
+                    nonEmptyAuditUserIds.add(userId);
                 }
             }
             if (nonEmptyAuditUserIds.size() == 0) {

+ 39 - 10
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/TaskProcessServiceImpl.java

@@ -652,9 +652,26 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
             List<String> taskIds = Func.toStrList(dto.getTaskIds());
             SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             String completionTimeStr = dateFormatter.format(dto.getCompletionTime());
+
+            //获取所有审批任务与计划任务关系
+            Map<String, ExpenseTaskRecord> taskRecordMaps = new LinkedHashMap<>();
+            if (ObjectUtil.isNotEmpty(dto.getTaskIds())) {
+                List<ExpenseTaskRecord> expenseTaskRecords = jdbcTemplate.query("select task_id,expense_info_id from c_expense_task_record where expense_info_type = 1 and expense_info_id in(" + dto.getTaskIds() + ")", new BeanPropertyRowMapper<>(ExpenseTaskRecord.class));
+                taskRecordMaps = expenseTaskRecords.stream().collect(Collectors.toMap(ExpenseTaskRecord::getExpenseInfoId, Function.identity()));
+            }
+
             for (String taskId : taskIds) {
                 ProjectCostBudget planTaskInfo = projectCostBudgetService.getById(taskId);
                 if (planTaskInfo != null) {
+                    //判断计划任务状态
+                    ExpenseTaskRecord record = taskRecordMaps.getOrDefault(String.valueOf(taskId), null);
+                    if (record != null) {
+                        TaskProcessInfo task = jdbcTemplate.query("select status from c_task_process_info where id = " + record.getTaskId(), new BeanPropertyRowMapper<>(TaskProcessInfo.class)).stream().findAny().orElse(null);
+                        if (task != null && (Arrays.asList(1, 2).contains(task.getStatus()))) {
+                            throw new ServiceException("计划任务【" + (ObjectUtil.isNotEmpty(planTaskInfo.getPlanTaskDesc()) ? planTaskInfo.getPlanTaskDesc() : null) + "】不是未提交或已驳回状态,操作失败");
+                        }
+                    }
+
                     User departmentHead = this.getDepartmentHead(planTaskInfo.getDeptId());
                     if (departmentHead != null && dto.getUpdateType().equals("1")) {
                         //任务完成
@@ -663,7 +680,7 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
                         taskProcessInfo.setStatus(1); //待审批
                         taskProcessInfo.setReportDate(new Date());
                         taskProcessInfo.setTaskType(1); //任务审批
-                        taskProcessInfo.setTaskName("【" + SecureUtil.getUser().getNickName() + "】向您发起【计划完成】审批");
+                        taskProcessInfo.setTaskName("【" + SecureUtil.getUser().getNickName() + "】向您发起【计划任务完成】审批");
 
                         //上报人
                         taskProcessInfo.setReportUserId(SecureUtil.getUserId());
@@ -677,6 +694,9 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
                             //如果审批人中存在自己本身,那么移除,自己不审批自己的任务
                             if (StringUtils.isNotEmpty(userId) && !userId.equals(String.valueOf(SecureUtil.getUserId()))) {
                                 nonEmptyAuditUserIds.add(userId);
+                            } else if (auditUserIds.size() == 1 && StringUtils.isNotEmpty(userId) && userId.equals(String.valueOf(SecureUtil.getUserId()))) {
+                                //如果只有本身,就是自己给自己提交的任务,只有一个审批人,那么就要添加
+                                nonEmptyAuditUserIds.add(userId);
                             }
                         }
                         taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
@@ -697,7 +717,7 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
                         taskProcessInfo.setStatus(1); //待审批
                         taskProcessInfo.setReportDate(new Date());
                         taskProcessInfo.setTaskType(1); //任务审批
-                        taskProcessInfo.setTaskName("【" + SecureUtil.getUser().getNickName() + "】向您发起【任务转移】审批");
+                        taskProcessInfo.setTaskName("【" + SecureUtil.getUser().getNickName() + "】向您发起【计划任务转移】审批");
 
                         //上报人
                         taskProcessInfo.setReportUserId(SecureUtil.getUserId());
@@ -711,6 +731,9 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
                             //如果审批人中存在自己本身,那么移除,自己不审批自己的任务
                             if (StringUtils.isNotEmpty(userId) && !userId.equals(String.valueOf(SecureUtil.getUserId()))) {
                                 nonEmptyAuditUserIds.add(userId);
+                            } else if (auditUserIds.size() == 1 && StringUtils.isNotEmpty(userId) && userId.equals(String.valueOf(SecureUtil.getUserId()))) {
+                                //如果只有本身,就是自己给自己提交的任务,只有一个审批人,那么就要添加
+                                nonEmptyAuditUserIds.add(userId);
                             }
                         }
                         taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
@@ -823,6 +846,9 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
                     //如果审批人中存在自己本身,那么移除,自己不审批自己的任务
                     if (StringUtils.isNotEmpty(userId) && !userId.equals(String.valueOf(SecureUtil.getUserId()))) {
                         nonEmptyAuditUserIds.add(userId);
+                    } else if (auditUserIds.size() == 1 && StringUtils.isNotEmpty(userId) && userId.equals(String.valueOf(SecureUtil.getUserId()))) {
+                        //如果只有本身,就是自己给自己提交的任务,只有一个审批人,那么就要添加
+                        nonEmptyAuditUserIds.add(userId);
                     }
                 }
                 taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
@@ -1023,6 +1049,9 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
             //如果审批人中存在自己本身,那么移除,自己不审批自己的任务
             if (StringUtils.isNotEmpty(userId) && !userId.equals(String.valueOf(SecureUtil.getUserId()))) {
                 nonEmptyAuditUserIds.add(userId);
+            } else if (auditUserIds.size() == 1 && StringUtils.isNotEmpty(userId) && userId.equals(String.valueOf(SecureUtil.getUserId()))) {
+                //如果只有本身,就是自己给自己提交的任务,只有一个审批人,那么就要添加
+                nonEmptyAuditUserIds.add(userId);
             }
         }
         if (nonEmptyAuditUserIds.size() == 0) {
@@ -1051,21 +1080,21 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
     private String taskNameByType(int type) {
         switch (type) {
             case 2:
-                return "向您发起【报销审批】审批";
+                return "向您发起【报销申请】审批";
             case 3:
-                return "向您发起【支付审批】审批";
+                return "向您发起【支付申请】审批";
             case 4:
-                return "向您发起【借款审批】审批";
+                return "向您发起【借款申请】审批";
             case 5:
-                return "向您发起【采购审批】审批";
+                return "向您发起【采购申请】审批";
             case 6:
-                return "向您发起【用车审批】审批";
+                return "向您发起【用车申请】审批";
             case 7:
-                return "向您发起【发票审批】审批";
+                return "向您发起【发票申请】审批";
             case 8:
-                return "向您发起【外包支付】审批";
+                return "向您发起【外包支付申请】审批";
             case 9:
-                return "向您发起【出差审批】审批";
+                return "向您发起【出差申请】审批";
         }
         return "";
     }