package com.ruoyi.web.controller.api; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.WorkBenchesDTO; import com.ruoyi.system.model.TDept; import com.ruoyi.system.model.TProjectDept; import com.ruoyi.system.service.*; import com.ruoyi.system.vo.system.DeptNoLimitChildVO; import com.ruoyi.system.vo.system.DeptNoLimitParentVO; import com.ruoyi.system.vo.system.DeptNoLimitVO; import com.ruoyi.system.vo.system.WorkBenchesVO; import com.ruoyi.web.util.OssUploadUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** *

* 任务申诉 前端控制器 *

* * @author xiaochen * @since 2025-05-28 */ @Api(tags = "工作台") @RestController @RequestMapping("/workbenches") public class WorkbenchesController { @Resource private TTaskCleanService taskCleanerService; @Resource private TTaskDetailService taskDetailService; @Resource private TLocationTypeService locationTypeService; @Resource private TLocationService locationService; @Resource private TProjectDeptService projectDeptService; @Resource private TTaskDetailService tTaskDetailService; @Resource private TDeptService deptService; @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 private TAppealService appealService; @Resource private TInspectorService inspectorService; @Resource private TFeedbackService feedbackService; @Resource private TProblemEscalationService problemEscalationService; @PostMapping("/data") @ApiOperation(value = "工作台", tags = "工作台") public R data(@RequestBody WorkBenchesDTO dto) { return R.ok(); } @ApiOperation(value = "查询部门 项目部列表 不分页") @GetMapping(value = "/listDepts") public R> listDepts() { Long userId = tokenService.getLoginUser().getUserId(); SysUser sysUser = sysUserService.selectUserById(userId); List parent = projectDeptService.lambdaQuery().eq(TProjectDept::getParentId, "0").list(); List child = projectDeptService.lambdaQuery().ne(TProjectDept::getParentId, "0").list(); List res = new ArrayList<>(); DeptNoLimitVO deptNoLimitVO2 = new DeptNoLimitVO(); deptNoLimitVO2.setDeptName("公司"); res.add(deptNoLimitVO2); if (sysUser.getDeptType()==1){ parent = parent.stream().filter(e -> e.getId().equals(sysUser.getDeptId())).collect(Collectors.toList()); } for (DeptNoLimitVO re : res) { if (re.getDeptName().equals("项目部")) { List deptNoLimitVOS = new ArrayList<>(); for (TProjectDept tProjectDept : parent) { DeptNoLimitParentVO deptNoLimitVO = new DeptNoLimitParentVO(); deptNoLimitVO.setDeptName(tProjectDept.getProjectName()); deptNoLimitVO.setDeptId(tProjectDept.getId()); List collect = child.stream().filter(e -> e.getParentId().equals(tProjectDept.getId())).collect(Collectors.toList()); List deptNoLimitChildVOS = new ArrayList<>(); for (TProjectDept projectDept : collect) { DeptNoLimitChildVO deptNoLimitChildVO = new DeptNoLimitChildVO(); deptNoLimitChildVO.setDeptName(projectDept.getProjectName()); deptNoLimitChildVO.setDeptId(projectDept.getId()); deptNoLimitChildVOS.add(deptNoLimitChildVO); } deptNoLimitVO.setDeptChild(deptNoLimitChildVOS); deptNoLimitVOS.add(deptNoLimitVO); } re.setDeptChild(deptNoLimitVOS); } } return R.ok(res); } }