liuyc 1 year ago
parent
commit
6f481eae73

+ 3 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/dto/LogHistoryInfoDTO.java

@@ -13,4 +13,7 @@ public class LogHistoryInfoDTO extends LogHistoryInfo {
     @ApiModelProperty(value = "结束时间")
     private String endTime;
 
+    @ApiModelProperty(value = "任务ids")
+    private String taskIds;
+
 }

+ 14 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/LogHistoryInfoVO.java

@@ -21,4 +21,18 @@ public class LogHistoryInfoVO extends LogHistoryInfo {
    /*@ApiModelProperty(value = "当前日志关联的任务信息List")
     private List<TaskInfo> taskList;*/
 
+    @ApiModelProperty(value = "当前日志所有已读人")
+    private List<ReadUser> readUsers;
+
+    @Data
+    public static class ReadUser {
+        private String headPicture;
+        private String name;
+
+        public ReadUser(String headPicture, String name) {
+            this.headPicture = headPicture;
+            this.name = name;
+        }
+    }
+
 }

+ 4 - 0
blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClient.java

@@ -57,6 +57,7 @@ public interface IUserClient {
     String UPDATE_USERS_ROLE_ID = API_PREFIX + "/user-roleId-update-three";
     String USER_INFO_LIST = API_PREFIX + "/find-user-info-list";
     String USER_INFO_ALL = API_PREFIX + "/get-users-all";
+    String USER_LIST_INFO_BY_IDS = API_PREFIX + "/getUserListByIds";
 
     /**
      * 获取所有有效用户
@@ -162,4 +163,7 @@ public interface IUserClient {
     @GetMapping(USER_INFO_ALL)
     List<User> selectUserAll();
 
+    @GetMapping(USER_LIST_INFO_BY_IDS)
+    List<User> userInfoByIds(@RequestBody List<Long> userIds);
+
 }

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

@@ -31,7 +31,7 @@ public class LogHistoryController extends BladeController {
 
     @PostMapping("/submit")
     @ApiOperationSupport(order = 2)
-    @ApiOperation(value = "日志填报新增或修改", notes = "传入HistoryLogInfoDTO")
+    @ApiOperation(value = "日志填报新增或修改", notes = "传入HistoryLogInfoDTO")
     public R<Object> logSubmit(@RequestBody LogHistoryInfoDTO dto) {
         return R.status(logHistoryService.logSubmit(dto));
     }
@@ -43,4 +43,19 @@ public class LogHistoryController extends BladeController {
         return R.data(logHistoryService.logDetail(id));
     }
 
+    @PostMapping("/task/complete")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "日志任务完成", notes = "传入日志logId、任务taskId")
+    public R<Object> logTaskComplete(@RequestParam Long logId, @RequestParam Long taskId) {
+        return R.status(logHistoryService.logTaskComplete(logId, taskId));
+    }
+
+    @PostMapping("/task/list")
+    @ApiOperationSupport(order = 5)
+    @ApiOperation(value = "日志任务列表", notes = "传入日志logId")
+    public R<Object> logTaskList(@RequestParam Long logId) {
+        return R.data(logHistoryService.logTaskList(logId));
+    }
+
+
 }

+ 4 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/LogHistoryService.java

@@ -16,4 +16,8 @@ public interface LogHistoryService extends BaseService<LogHistoryInfo> {
 
     LogHistoryInfoVO logDetail(Long id);
 
+    boolean logTaskComplete(Long logId, Long taskId);
+
+    Object logTaskList(Long logId);
+
 }

+ 40 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/LogHistoryServiceImpl.java

@@ -102,8 +102,16 @@ public class LogHistoryServiceImpl extends BaseServiceImpl<LogHistoryMapper, Log
 
     @Override
     public boolean logSubmit(LogHistoryInfoDTO dto) {
+        if (ObjectUtil.isEmpty(SecureUtil.getUserId())) {
+            throw new ServiceException("获取当前用户信息失败,请联系管理员");
+        }
+        dto.setUserId(SecureUtil.getUserId());
         this.saveOrUpdate(dto);
 
+        if (ObjectUtil.isNotEmpty(dto.getTaskIds())){
+            //新增日志与任务关系信息 TODO
+        }
+
         if (ObjectUtil.isNotEmpty(dto.getExpenseReimbursementAmount())) {
             //报销金额不为空,在财务报销里面新增一条草稿箱内容 TODO
         }
@@ -130,14 +138,46 @@ public class LogHistoryServiceImpl extends BaseServiceImpl<LogHistoryMapper, Log
                 Long row = jdbcTemplate.queryForObject("select count(1) from c_log_history_read_record where log_id = " + vo.getId() + " and user_id = " + SecureUtil.getUserId(), Long.class);
                 if (row == null || row == 0L) {
                     jdbcTemplate.execute("insert into c_log_history_read_record(id,log_id,user_id) values (" + SnowFlakeUtil.getId() + "," + vo.getId() + "," + SecureUtil.getUserId() + ")");
+                    vo.setIsRead(1);
                 }
 
                 //处理当前日志taskList任务列表 TODO
 
+                //处理所有已读人信息
+                List<LogHistoryInfoReadVO> readUsersInfo = jdbcTemplate.query("select * from c_log_history_read_record where log_id = " + vo.getId(), new BeanPropertyRowMapper<>(LogHistoryInfoReadVO.class));
+                List<Long> userIds = readUsersInfo.stream().map(LogHistoryInfoReadVO::getUserId).distinct().collect(Collectors.toList());
+                if (userIds.size() > 0) {
+                    List<User> readUserInfoList = iUserClient.userInfoByIds(userIds);
+                    List<LogHistoryInfoVO.ReadUser> readUsers = new ArrayList<>();
+                    for (User userRead : readUserInfoList) {
+                        readUsers.add(new LogHistoryInfoVO.ReadUser(userRead.getAvatar(), userRead.getRealName()));
+                    }
+                    vo.setReadUsers(readUsers);
+                }
 
                 return vo;
             }
         }
         return null;
     }
+
+    @Override
+    public boolean logTaskComplete(Long logId, Long taskId) {
+        if (ObjectUtil.isEmpty(logId)) {
+            throw new ServiceException("请先提交日志后,再变更任务");
+        }
+        //修改计划任务的状态为已完成,推送到对应的当前部门负责人审批(此处修改的任务状态为计划任务,新增推送的任务为审批任务) TODO
+
+        return true;
+    }
+
+    @Override
+    public Object logTaskList(Long logId) {
+        if (ObjectUtil.isEmpty(SecureUtil.getUserId())) {
+            throw new ServiceException("获取当前用户信息失败,请联系管理员");
+        }
+        //获取当前用户当天的所有任务信息 TODO
+
+        return null;
+    }
 }

+ 5 - 0
blade-service/blade-user/src/main/java/org/springblade/system/user/feign/UserClient.java

@@ -119,4 +119,9 @@ public class UserClient implements IUserClient {
         return service.selectUserAll();
     }
 
+    @Override
+    public List<User> userInfoByIds(List<Long> userIds) {
+        return service.getBaseMapper().selectBatchIds(userIds);
+    }
+
 }