package com.ruoyi.web.controller.api; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.system.model.*; import com.ruoyi.system.query.LeaveListQuery; import com.ruoyi.system.service.*; import com.ruoyi.system.vo.system.LeaveAuditDetailVO; import com.ruoyi.system.vo.system.LeaveDetailVO; import com.ruoyi.system.vo.system.LeaveListVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; /** *

* 请假记录 前端控制器 *

* * @author xiaochen * @since 2025-05-28 */ @Api(tags = "请假记录") @RestController @RequestMapping("/t-leave") public class TLeaveController { @Resource private TLeaveService leaveService; @Resource private TLeaveAuditService leaveAuditService; @Resource private TProjectDeptService projectDeptService; @Resource private TDeptService deptService; @Resource private ISysUserService sysUserService; @ApiOperation(value = "请假记录分页列表") @PostMapping(value = "/pageList") public R> pageList(@RequestBody LeaveListQuery query) { return R.ok(leaveService.pageList(query)); } @ApiOperation(value = "详情") @GetMapping(value = "/detail") public R detail(@RequestParam String id) { LeaveDetailVO leaveDetailVO = new LeaveDetailVO(); TLeave byId = leaveService.getById(id); BeanUtils.copyProperties(byId,leaveDetailVO); SysUser sysUser = sysUserService.selectUserById(Long.valueOf(byId.getLeavePerson())); if (sysUser!=null){ leaveDetailVO.setNickName(sysUser.getNickName()); leaveDetailVO.setPhone(sysUser.getPhonenumber()); if (sysUser.getDeptType() == 1){ TProjectDept tProjectDept = projectDeptService.getById(sysUser.getDeptId()); if(tProjectDept!=null){ if (!tProjectDept.getParentId().equals("0")){ TProjectDept tProjectDept1 = projectDeptService.getById(tProjectDept.getParentId()); if (tProjectDept1!=null){ leaveDetailVO.setDeptName(tProjectDept1.getProjectName()+">"+tProjectDept.getProjectName()); } }else{ leaveDetailVO.setDeptName(tProjectDept.getProjectName()); } } }else{ TDept tDept = deptService.getById(sysUser.getDeptId()); if (tDept!=null){ leaveDetailVO.setDeptName(tDept.getDeptName()); } } } List list = leaveAuditService.lambdaQuery().eq(TLeaveAudit::getLeaveId, id) .list(); List leaveAuditDetailVOS = new ArrayList<>(); for (TLeaveAudit tLeaveAudit : list) { LeaveAuditDetailVO leaveAuditDetailVO = new LeaveAuditDetailVO(); BeanUtils.copyProperties(tLeaveAudit,leaveAuditDetailVO); if (tLeaveAudit.getAuditType()==2){ for (String s : tLeaveAudit.getAuditId().split(",")) { SysUser sysUser1 = sysUserService.selectUserById(Long.valueOf(s)); if (sysUser1!=null){ leaveAuditDetailVO.setAvatar(sysUser1.getAvatar()); leaveAuditDetailVO.setNickName(sysUser1.getNickName()); leaveAuditDetailVOS.add(leaveAuditDetailVO); } } }else{ SysUser sysUser1 = sysUserService.selectUserById(Long.valueOf(tLeaveAudit.getAuditId())); // 查询审核人 leaveAuditDetailVO.setNickName(sysUser1.getNickName()); leaveAuditDetailVO.setAvatar(sysUser1.getAvatar()); leaveAuditDetailVOS.add(leaveAuditDetailVO); } } leaveDetailVO.setList(leaveAuditDetailVOS); return R.ok(leaveDetailVO); } }