From 391d3fed7809454f742d71dddc55ed7ca1bc089e Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 19 六月 2025 14:19:08 +0800
Subject: [PATCH] 保洁巡检本周代码

---
 ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java |   79 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 78 insertions(+), 1 deletions(-)

diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java
index f7add81..f36c4c0 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java
@@ -1,6 +1,7 @@
 package com.ruoyi.web.controller.api;
 
 
+import cn.hutool.core.util.RandomUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.basic.PageInfo;
@@ -9,6 +10,7 @@
 import com.ruoyi.common.core.domain.entity.SysRole;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.applet.dto.*;
@@ -35,9 +37,14 @@
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -92,7 +99,64 @@
     @Resource
     private TProblemEscalationService problemEscalationService;
 
+    @ApiOperation(value = "个人中心-首页")
+    @PostMapping(value = "/userIndex")
+    public R<UserIndexVO> userIndex() {
+        UserIndexVO userIndexVO = new UserIndexVO();
 
+        Long userId = tokenService.getLoginUserApplet().getUserId();
+        SysUser sysUser = sysUserService.selectUserById(userId);
+        userIndexVO.setAvatar(sysUser.getAvatar());
+        userIndexVO.setNickName(sysUser.getNickName());
+        userIndexVO.setPhonenumber(sysUser.getPhonenumber());
+        if (sysUser.getDeptType() == 1){
+            TProjectDept tProjectDept = projectDeptService.getById(sysUser.getDeptId());
+            if (!tProjectDept.getParentId().equals("0")){
+                TProjectDept tProjectDept1 = projectDeptService.getById(tProjectDept.getParentId());
+                userIndexVO.setDeptName(tProjectDept1.getProjectName()+">"+tProjectDept.getProjectName());
+            }else{
+                userIndexVO.setDeptName(tProjectDept.getProjectName());
+            }
+        }else{
+            TDept tDept = deptService.getById(sysUser.getDeptId());
+            userIndexVO.setDeptName(tDept.getDeptName());
+        }
+        // 查询请假状态
+        List<TLeave> list = leaveService.lambdaQuery().eq(TLeave::getLeavePerson, userId)
+                .eq(TLeave::getAuditStatus, 2)
+                .list();
+        userIndexVO.setIsLeave(0);
+        for (TLeave tLeave : list) {
+            LocalDate now = LocalDate.now();
+            LocalDate startDate = tLeave.getStartTime().toLocalDate();
+            LocalDate endDate = tLeave.getStartTime().toLocalDate();
+            if (now.isAfter(startDate) && now.isBefore(endDate)) {
+                userIndexVO.setIsLeave(1);
+            }else if (now.isEqual(startDate)|| now.isEqual(endDate)){
+                userIndexVO.setIsLeave(1);
+            }
+        }
+        // 获取本月第一天凌晨00:00:00 和本月最后一天23:59:59 类型为LocalDateTime
+        // 获取当前日期
+        LocalDate now = LocalDate.now();
+        // 本月第一天
+        LocalDate firstDayOfMonth = now.withDayOfMonth(1);
+        // 本月最后一天
+        LocalDate lastDayOfMonth = now.withDayOfMonth(now.lengthOfMonth());
+        // 转换为 LocalDateTime:第一天的 00:00:00
+        LocalDateTime startOfMonth = LocalDateTime.of(firstDayOfMonth, LocalTime.MIN);
+        // 转换为 LocalDateTime:最后一天的 23:59:59
+        LocalDateTime endOfMonth = LocalDateTime.of(lastDayOfMonth, LocalTime.MAX);
+        List<TTask> finishTask = taskCleanerService.lambdaQuery().eq(TTask::getPatrolInspector, userId)
+                .ge(TTask::getImplementTime, startOfMonth)
+                .le(TTask::getImplementTime, endOfMonth).list();
+        int size = (int) finishTask.stream().filter(e -> e.getStatus() == 5 || e.getStatus() == 6).count();
+        userIndexVO.setFinishCount(size);
+        BigDecimal divide = new BigDecimal(size).divide(new BigDecimal(finishTask.size()), 2, BigDecimal.ROUND_DOWN);
+        userIndexVO.setRate(divide);
+//        userIndexVO.setRanking();
+        return R.ok(userIndexVO);
+    }
     @ApiOperation(value = "任务记录分页列表")
     @PostMapping(value = "/taskList")
     public R<PageInfo<TaskUserListVO>> pageList(@RequestBody TaskUserListQuery query) {
@@ -329,6 +393,11 @@
         List<SysUser> sysUsers = sysUserService.selectAllList();
         SysUser auditPerson = sysUserService.selectUserById(999L);
         leaveDTO.setAuditStatus(1);
+        Date date = new Date();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
+        // 生成随机数字6位
+        String format = simpleDateFormat.format(date);
+        leaveDTO.setCode(format+ RandomUtil.randomNumbers(6));
         leaveService.save(leaveDTO);
         //项目负责人、部门负责人、公司成员提交由最终审批人审批;
         if (user.getDeptType()==2 ||sysRole.getRoleName().contains("项目负责人")||sysRole.getRoleName().contains("部门负责人")){
@@ -387,6 +456,14 @@
     public R<PageInfo<LeaveUserListVO>> leaveList(@RequestBody LeaveListUserQuery query) {
         query.setUserId(tokenService.getLoginUser().getUserId()+"");
         return R.ok( leaveService.leaveList(query));
+    }
+    @ApiOperation(value = "我的审批-审批")
+    @PostMapping(value = "/auditLeave")
+    public R<Boolean> auditLeave(@RequestBody LeaveAuditDTO dto) {
+        dto.setAuditId(tokenService.getLoginUser().getUserId()+"");
+        dto.setAuditTime(LocalDateTime.now());
+        leaveService.updateById(dto);
+        return R.ok();
     }
     @ApiOperation(value = "我的审批-详情")
     @GetMapping(value = "/leaveDetail")
@@ -466,7 +543,7 @@
         leaveUserDetailVO.setAuditTime(leave.getAuditTime());
         leaveUserDetailVO.setAuditRemark(leave.getAuditRemark());
         leaveUserDetailVO.setCode(leave.getCode());
-        return R.ok( );
+        return R.ok(leaveUserDetailVO);
     }
 }
 

--
Gitblit v1.7.1