package com.ruoyi.web.controller.api; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.framework.web.domain.server.Sys; import com.ruoyi.system.dto.ChoiceDTO; import com.ruoyi.system.dto.SysUserDTO; import com.ruoyi.system.dto.TProjectTeamDTO; import com.ruoyi.system.dto.UpAndDownDTO; import com.ruoyi.system.model.TProjectTeam; import com.ruoyi.system.model.TProjectTeamStaff; import com.ruoyi.system.query.TProjectTeamQuery; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.TProjectTeamService; import com.ruoyi.system.service.TProjectTeamStaffService; import com.ruoyi.system.vo.ChoiceUserVO; import com.ruoyi.system.vo.TProjectTeamVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** *

* 项目租 前端控制器 *

* * @author 无关风月 * @since 2025-04-12 */ @RestController @RequestMapping("") @Api(tags = "项目组管理") public class TProjectGroupController { @Resource private TProjectTeamService projectTeamService; @Resource private TProjectTeamStaffService projectTeamStaffService; @Resource private ISysUserService sysUserService; /** * 获取项目组管理列表 */ //@PreAuthorize("@ss.hasPermi('system:projectTeam:list')") @ApiOperation(value = "获取项目组分页列表") @PostMapping(value = "/api/t_project_team/pageList") public R> pageList(@RequestBody String param) { TProjectTeamQuery query = JSON.parseObject(param, TProjectTeamQuery.class); return R.ok(projectTeamService.pageList(query)); } @ApiOperation(value = "新增报告-获取项目组分页列表") @PostMapping(value = "/api/t_project_team/pageList1") public R> pageList1(@RequestBody String param) { TProjectTeamQuery query = JSON.parseObject(param, TProjectTeamQuery.class); return R.ok(projectTeamService.pageList(query)); } /** * 添加项目组管理 */ //@PreAuthorize("@ss.hasPermi('system:projectTeam:add')") @Log(title = "项目组信息-新增项目组", businessType = BusinessType.INSERT) @ApiOperation(value = "添加项目组",response = TProjectTeamDTO.class) @PostMapping(value = "/api/t_project_team/add") public R add(@RequestBody String param) { TProjectTeamDTO dto = JSON.parseObject(param,TProjectTeamDTO.class); projectTeamService.save(dto); // 保存项目组成员 List staffs = dto.getStaffs(); for (TProjectTeamStaff staff : staffs) { staff.setTeamId(dto.getId()); } projectTeamStaffService.saveBatch(staffs); return R.ok(); } /** * 修改项目组 */ //@PreAuthorize("@ss.hasPermi('system:projectTeam:edit')") @Log(title = "项目组信息-修改项目组", businessType = BusinessType.UPDATE) @ApiOperation(value = "修改项目组") @PostMapping(value = "/api/t_project_team/update") public R update(@RequestBody String param) { TProjectTeamDTO dto = JSON.parseObject(param,TProjectTeamDTO.class); projectTeamService.updateById(dto); // 删除项目组成员 projectTeamStaffService.remove(Wrappers.lambdaQuery(TProjectTeamStaff.class).eq(TProjectTeamStaff::getTeamId, dto.getId())); // 保存项目组成员 List staffs = dto.getStaffs(); for (TProjectTeamStaff staff : staffs) { staff.setTeamId(dto.getId()); } projectTeamStaffService.saveBatch(staffs); return R.ok(); } /** * 查看项目组详情 */ //@PreAuthorize("@ss.hasPermi('system:projectTeam:detail')") @ApiOperation(value = "查看项目组详情") @GetMapping(value = "/open/t_project_team/getDetailById") public R getDetailById(@RequestParam String id) { TProjectTeam projectTeam = projectTeamService.getById(id); TProjectTeamVO projectTeamVO = new TProjectTeamVO(); BeanUtils.copyProperties(projectTeam, projectTeamVO); // 查询项目组人员 List list = projectTeamStaffService.list(Wrappers.lambdaQuery(TProjectTeamStaff.class).eq(TProjectTeamStaff::getTeamId, id)); // 查询所有人员 List sysUsers = sysUserService.selectList(); for (TProjectTeamStaff tProjectTeamStaff : list) { sysUsers.stream().filter(sysUser -> sysUser.getUserId().equals(Long.valueOf(tProjectTeamStaff.getUserId()))).forEach(sysUser -> { tProjectTeamStaff.setNickName(sysUser.getNickName()); tProjectTeamStaff.setAvatar(sysUser.getAvatar()); }); } projectTeamVO.setStaffs(list); return R.ok(projectTeamVO); } /** * 删除项目组 */ //@PreAuthorize("@ss.hasPermi('system:projectTeam:delete')") @Log(title = "项目组信息-删除项目组", businessType = BusinessType.DELETE) @ApiOperation(value = "删除项目组") @DeleteMapping(value = "/open/t_project_team/deleteById") public R deleteById(@RequestParam String id) { // 删除项目组成员 projectTeamStaffService.remove(Wrappers.lambdaQuery(TProjectTeamStaff.class).eq(TProjectTeamStaff::getTeamId, id)); return R.ok(projectTeamService.removeById(id)); } /** * 批量删除项目组 */ //@PreAuthorize("@ss.hasPermi('system:projectTeam:delete')") @Log(title = "项目组信息-删除项目组", businessType = BusinessType.DELETE) @ApiOperation(value = "批量删除项目组") @DeleteMapping(value = "/api/t_project_team/deleteByIds") public R deleteByIds(@RequestBody List ids) { // 删除项目组成员 projectTeamStaffService.remove(Wrappers.lambdaQuery(TProjectTeamStaff.class).in(TProjectTeamStaff::getTeamId, ids)); return R.ok(projectTeamService.removeByIds(ids)); } /** * 修改项目组 */ //@PreAuthorize("@ss.hasPermi('system:projectTeam:upAndDown')") @Log(title = "项目组信息-修改项目组状态", businessType = BusinessType.UPDATE) @ApiOperation(value = "修改项目组状态",response = UpAndDownDTO.class) @PostMapping(value = "/api/t_project_team/upAndDown") public R upAndDown(@RequestBody String param) { UpAndDownDTO dto = JSON.parseObject(param,UpAndDownDTO.class); TProjectTeam projectTeam = projectTeamService.getById(dto.getId()); if (projectTeam.getStatus()==1){ projectTeam.setStatus(2); }else{ projectTeam.setStatus(1); } projectTeamService.updateById(projectTeam); return R.ok(); } /** * 项目组选择人员 */ @ApiOperation(value = "项目组选择人员") @PostMapping("/api/t_project_team/choiceUser") public R> choiceUser(@RequestBody String param) { ChoiceDTO user = JSON.parseObject(param,ChoiceDTO.class); return R.ok(sysUserService.choiceUser(user)); } }