From 6e7850f30ac3844ba9929dc46e1b13b21cdcc010 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 17 六月 2025 21:07:30 +0800
Subject: [PATCH] 保洁巡检本周代码

---
 ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java |  228 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 218 insertions(+), 10 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 68d0346..f7add81 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
@@ -6,6 +6,7 @@
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.BaseModel;
 import com.ruoyi.common.core.domain.R;
+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.bean.BeanUtils;
@@ -13,10 +14,9 @@
 import com.ruoyi.system.applet.dto.*;
 import com.ruoyi.system.applet.query.AppealListQuery;
 import com.ruoyi.system.applet.query.KnowledgeListUserQuery;
+import com.ruoyi.system.applet.query.LeaveListUserQuery;
 import com.ruoyi.system.applet.query.TaskUserListQuery;
-import com.ruoyi.system.applet.vo.KnowledgeVO;
-import com.ruoyi.system.applet.vo.TaskListAllVO;
-import com.ruoyi.system.applet.vo.TaskUserListVO;
+import com.ruoyi.system.applet.vo.*;
 import com.ruoyi.system.dto.KnowledgeDTO;
 import com.ruoyi.system.dto.TTaskAuditBatchDTO;
 import com.ruoyi.system.dto.TTaskAuditDTO;
@@ -74,9 +74,13 @@
     @Resource
     private ISysUserService sysUserService;
     @Resource
+    private ISysRoleService roleService;
+    @Resource
     private TDictDataService dictDataService;
     @Resource
     private TLeaveService leaveService;
+    @Resource
+    private TLeaveAuditService leaveAuditService;
     @Resource
     private TokenService tokenService;
     @Resource
@@ -231,13 +235,7 @@
         );
         return R.ok(list);
     }
-    @ApiOperation(value = "发起请假")
-    @PostMapping(value = "/addLeave")
-    public R<Boolean> addLeave(@RequestBody LeaveDTO leaveDTO) {
-        leaveService.save(leaveDTO);
-        // todo 生成审批记录
-        return R.ok();
-    }
+
 
     @Resource
     private TKnowledgeService knowledgeService;
@@ -260,5 +258,215 @@
         knowledgeService.updateById(byId);
         return R.ok(byId);
     }
+    @ApiOperation(value = "发起请假-获取审批流程")
+    @GetMapping(value = "/leaveAuditList")
+    public R<LeaveAuditListVO> leaveAuditList() {
+        LeaveAuditListVO res = new LeaveAuditListVO();
+        Long userId = tokenService.getLoginUser().getUserId();
+        SysUser user = sysUserService.selectUserById(userId);
+        Long userRole = sysUserService.getUserRole(userId);
+        SysRole sysRole = roleService.selectRoleById(userRole);
+        List<SysUser> sysUsers = sysUserService.selectAllList();
+
+        SysUser auditPerson = sysUserService.selectUserById(999L);
+        //项目负责人、部门负责人、公司成员提交由最终审批人审批;
+        if (user.getDeptType()==2 ||sysRole.getRoleName().contains("项目负责人")||sysRole.getRoleName().contains("部门负责人")){
+            LeaveAuditVO tLeaveAudit = new LeaveAuditVO();
+            tLeaveAudit.setAvatar(auditPerson.getAvatar());
+            tLeaveAudit.setNickName(auditPerson.getNickName());
+            res.setAuditPerson(tLeaveAudit);
+        }else if (!sysRole.getRoleName().equals("部门助理")){
+            // 审批人根据当前角色类型来
+            if (sysRole.getRoleName().contains("现场负责人")||sysRole.getRoleName().contains("组长")){
+                List<SysUser> collect = sysUsers.stream().filter(e -> e.getDeptType() == 1 &&
+                        e.getDeptId().equals(user.getDeptId())).collect(Collectors.toList());
+                for (SysUser sysUser : collect) {
+                    Long userRole1 = sysUserService.getUserRole(sysUser.getUserId());
+                    SysRole sysRole1 = roleService.selectRoleById(userRole1);
+                    if (sysRole1!=null&&sysRole1.getRoleName().equals("项目负责人")){
+                        LeaveAuditVO tLeaveAudit = new LeaveAuditVO();
+                        tLeaveAudit.setAvatar(sysUser.getAvatar());
+                        tLeaveAudit.setNickName(sysUser.getNickName());
+                        res.setAuditPerson(tLeaveAudit);
+                    }
+                }
+            }
+        }else{
+            List<SysUser> collect = sysUsers.stream().filter(e -> e.getDeptType() == 1 &&
+                    e.getDeptId().equals(user.getDeptId())).collect(Collectors.toList());
+            for (SysUser sysUser : collect) {
+                Long userRole1 = sysUserService.getUserRole(sysUser.getUserId());
+                SysRole sysRole1 = roleService.selectRoleById(userRole1);
+                if (sysRole1!=null&&sysRole1.getRoleName().equals("部门负责人")){
+                    LeaveAuditVO tLeaveAudit = new LeaveAuditVO();
+                    tLeaveAudit.setAvatar(sysUser.getAvatar());
+                    tLeaveAudit.setNickName(sysUser.getNickName());
+                    res.setAuditPerson(tLeaveAudit);
+                }
+            }
+        }
+        List<LeaveAuditVO> leaveAuditVOS = new ArrayList<>();
+        // 当前登陆人-抄送人
+        LeaveAuditVO leaveAuditVO1 = new LeaveAuditVO();
+        leaveAuditVO1.setAvatar(user.getAvatar());
+        leaveAuditVO1.setNickName(user.getNickName());
+        // 最终审核人-抄送人
+        LeaveAuditVO leaveAuditVO = new LeaveAuditVO();
+        leaveAuditVO.setAvatar(auditPerson.getAvatar());
+        leaveAuditVO.setNickName(auditPerson.getNickName());
+        leaveAuditVOS.add(leaveAuditVO);
+        leaveAuditVOS.add(leaveAuditVO1);
+        res.setCopyPerson(leaveAuditVOS);
+        return R.ok(res);
+    }
+    @ApiOperation(value = "发起请假")
+    @PostMapping(value = "/addLeave")
+    public R addLeave(@RequestBody LeaveDTO leaveDTO) {
+        Long userId = tokenService.getLoginUser().getUserId();
+        SysUser user = sysUserService.selectUserById(userId);
+        Long userRole = sysUserService.getUserRole(userId);
+        SysRole sysRole = roleService.selectRoleById(userRole);
+        List<SysUser> sysUsers = sysUserService.selectAllList();
+        SysUser auditPerson = sysUserService.selectUserById(999L);
+        leaveDTO.setAuditStatus(1);
+        leaveService.save(leaveDTO);
+        //项目负责人、部门负责人、公司成员提交由最终审批人审批;
+        if (user.getDeptType()==2 ||sysRole.getRoleName().contains("项目负责人")||sysRole.getRoleName().contains("部门负责人")){
+            TLeaveAudit tLeaveAudit1 = new TLeaveAudit();
+            tLeaveAudit1.setLeaveId(leaveDTO.getId());
+            tLeaveAudit1.setAuditStatus(1);
+            tLeaveAudit1.setAuditId(auditPerson.getUserId()+"");
+            tLeaveAudit1.setAuditType(1);
+            leaveAuditService.save(tLeaveAudit1);
+        }else if (!sysRole.getRoleName().equals("部门助理")){
+            // 审批人根据当前角色类型来
+            if (sysRole.getRoleName().contains("现场负责人")||sysRole.getRoleName().contains("组长")){
+                List<SysUser> collect = sysUsers.stream().filter(e -> e.getDeptType() == 1 &&
+                        e.getDeptId().equals(user.getDeptId())).collect(Collectors.toList());
+                for (SysUser sysUser : collect) {
+                    Long userRole1 = sysUserService.getUserRole(sysUser.getUserId());
+                    SysRole sysRole1 = roleService.selectRoleById(userRole1);
+                    if (sysRole1!=null&&sysRole1.getRoleName().equals("项目负责人")){
+                        TLeaveAudit tLeaveAudit1 = new TLeaveAudit();
+                        tLeaveAudit1.setLeaveId(leaveDTO.getId());
+                        tLeaveAudit1.setAuditStatus(1);
+                        tLeaveAudit1.setAuditId(sysUser.getUserId()+"");
+                        tLeaveAudit1.setAuditType(1);
+                        leaveAuditService.save(tLeaveAudit1);
+                    }
+                }
+            }
+        }else{
+            List<SysUser> collect = sysUsers.stream().filter(e -> e.getDeptType() == 1 &&
+                    e.getDeptId().equals(user.getDeptId())).collect(Collectors.toList());
+            for (SysUser sysUser : collect) {
+                Long userRole1 = sysUserService.getUserRole(sysUser.getUserId());
+                SysRole sysRole1 = roleService.selectRoleById(userRole1);
+                if (sysRole1!=null&&sysRole1.getRoleName().equals("部门负责人")){
+                    TLeaveAudit tLeaveAudit1 = new TLeaveAudit();
+                    tLeaveAudit1.setLeaveId(leaveDTO.getId());
+                    tLeaveAudit1.setAuditStatus(1);
+                    tLeaveAudit1.setAuditId(sysUser.getUserId()+"");
+                    tLeaveAudit1.setAuditType(1);
+                    leaveAuditService.save(tLeaveAudit1);
+                }
+            }
+        }
+        TLeaveAudit tLeaveAudit2 = new TLeaveAudit();
+        tLeaveAudit2.setLeaveId(leaveDTO.getId());
+        tLeaveAudit2.setAuditStatus(2);
+        tLeaveAudit2.setAuditId(user.getUserId()+","+auditPerson.getUserId());
+        tLeaveAudit2.setAuditType(2);
+        tLeaveAudit2.setAuditTime(LocalDateTime.now());
+        leaveAuditService.save(tLeaveAudit2);
+        return R.ok();
+    }
+
+    @ApiOperation(value = "我的审批-我的申请")
+    @PostMapping(value = "/leaveList")
+    public R<PageInfo<LeaveUserListVO>> leaveList(@RequestBody LeaveListUserQuery query) {
+        query.setUserId(tokenService.getLoginUser().getUserId()+"");
+        return R.ok( leaveService.leaveList(query));
+    }
+    @ApiOperation(value = "我的审批-详情")
+    @GetMapping(value = "/leaveDetail")
+    public R<LeaveUserDetailVO> leaveDetail(@RequestParam String id) {
+        LeaveUserDetailVO leaveUserDetailVO = new LeaveUserDetailVO();
+        SysUser sysUser = sysUserService.selectUserById(Long.parseLong(leaveUserDetailVO.getLeavePerson()));
+        Long userRole = sysUserService.getUserRole(sysUser.getUserId());
+        SysRole sysRole = roleService.selectRoleById(userRole);
+        if (sysRole.getRoleName().contains("现场负责人")||sysRole.getRoleName().equals("组长")){
+            if (sysUser.getDeptType() == 1){
+                TProjectDept tProjectDept = projectDeptService.getById(sysUser.getDeptId());
+                if (!tProjectDept.getParentId().equals("0")){
+                    TProjectDept tProjectDept1 = projectDeptService.getById(tProjectDept.getParentId());
+                    leaveUserDetailVO.setDeptName(tProjectDept1.getProjectName()+">"+tProjectDept.getProjectName());
+                }else{
+                    leaveUserDetailVO.setDeptName(tProjectDept.getProjectName());
+                }
+            }else{
+                TDept tDept = deptService.getById(sysUser.getDeptId());
+                leaveUserDetailVO.setDeptName(tDept.getDeptName());
+            }
+        }else if (sysRole.getRoleName().contains("项目负责人")){
+            TProjectDept tProjectDept = projectDeptService.getById(sysUser.getDeptId());
+            leaveUserDetailVO.setDeptName(tProjectDept.getProjectName());
+        }
+        if (sysUser.getDeptType() == 2){
+            TDept byId = deptService.getById(sysUser.getDeptId());
+            leaveUserDetailVO.setDeptName(byId.getDeptName());
+        }
+        TLeave leave = leaveService.getById(id);
+        leaveUserDetailVO.setLeavePersonName(sysUser.getNickName());
+        LeaveAuditListVO leaveAuditListVO = new LeaveAuditListVO();
+        List<TLeaveAudit> list = leaveAuditService.list(new LambdaQueryWrapper<TLeaveAudit>()
+                .eq(TLeaveAudit::getAuditId, leave.getId()));
+        for (TLeaveAudit tLeaveAudit : list) {
+            if (tLeaveAudit.getAuditType()==1){
+                LeaveAuditVO leaveAuditVO = new LeaveAuditVO();
+                SysUser sysUser1 = sysUserService.selectUserById(Long.valueOf(tLeaveAudit.getAuditId()));
+                if (sysUser1!=null){
+                    leaveAuditVO.setAvatar(sysUser1.getAvatar());
+                    leaveAuditVO.setNickName(sysUser1.getNickName());
+                }
+                leaveAuditVO.setCreateTime(tLeaveAudit.getAuditTime());
+                leaveAuditVO.setAuditStatus(tLeaveAudit.getAuditStatus());
+                leaveAuditListVO.setAuditPerson(leaveAuditVO);
+            }else{
+                List<LeaveAuditVO> leaveAuditVOS = new ArrayList<>();
+                // 抄送人
+                LeaveAuditVO leaveAuditVO = new LeaveAuditVO();
+                SysUser sysUser1 = sysUserService.selectUserById(Long.valueOf(tLeaveAudit.getAuditId().split(",")[0]));
+                leaveAuditVO.setAvatar(sysUser1.getAvatar());
+                leaveAuditVO.setNickName(sysUser1.getNickName());
+                leaveAuditVO.setCreateTime(tLeaveAudit.getCreateTime());
+                leaveAuditVO.setAuditStatus(tLeaveAudit.getAuditStatus());
+                leaveAuditVOS.add(leaveAuditVO);
+                LeaveAuditVO leaveAuditVO1 = new LeaveAuditVO();
+                SysUser sysUser2 = sysUserService.selectUserById(Long.valueOf(tLeaveAudit.getAuditId().split(",")[1]));
+                leaveAuditVO1.setAvatar(sysUser2.getAvatar());
+                leaveAuditVO1.setNickName(sysUser2.getNickName());
+                leaveAuditVO1.setCreateTime(tLeaveAudit.getCreateTime());
+                leaveAuditVO1.setAuditStatus(tLeaveAudit.getAuditStatus());
+                leaveAuditVOS.add(leaveAuditVO1);
+                leaveAuditListVO.setCopyPerson(leaveAuditVOS);
+            }
+        }
+        leaveUserDetailVO.setAudit(leaveAuditListVO);
+        leaveUserDetailVO.setId(leave.getId());
+        leaveUserDetailVO.setLeavePerson(leave.getLeavePerson());
+        leaveUserDetailVO.setStartTime(leave.getStartTime());
+        leaveUserDetailVO.setEndTime(leave.getEndTime());
+        leaveUserDetailVO.setLeaveType(leave.getLeaveType());
+        leaveUserDetailVO.setLeaveDay(leave.getLeaveDay());
+        leaveUserDetailVO.setLeaveCause(leave.getLeaveCause());
+        leaveUserDetailVO.setPictures(leave.getPictures());
+        leaveUserDetailVO.setAuditStatus(leave.getAuditStatus());
+        leaveUserDetailVO.setAuditId(leave.getAuditId());
+        leaveUserDetailVO.setAuditTime(leave.getAuditTime());
+        leaveUserDetailVO.setAuditRemark(leave.getAuditRemark());
+        leaveUserDetailVO.setCode(leave.getCode());
+        return R.ok( );
+    }
 }
 

--
Gitblit v1.7.1