From ce0651907f18a57dae80065e01589e975530f53e Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 20 五月 2025 18:52:44 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectTeamController.java | 156 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 153 insertions(+), 3 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectTeamController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectTeamController.java index 12d48d1..2d269e3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectTeamController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectTeamController.java @@ -1,9 +1,32 @@ 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.R; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.enums.BusinessType; +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.TProjectProposalQuery; +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.TProjectTeamVO; import io.swagger.annotations.Api; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * <p> @@ -15,8 +38,135 @@ */ @Api(tags = "项目组管理") @RestController -@RequestMapping("/t-project-team") +@RequestMapping("") public class TProjectTeamController { + private final TProjectTeamService projectTeamService; + private final TProjectTeamStaffService projectTeamStaffService; + private final ISysUserService sysUserService; + @Autowired + public TProjectTeamController(TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, ISysUserService sysUserService) { + this.projectTeamService = projectTeamService; + this.projectTeamStaffService = projectTeamStaffService; + this.sysUserService = sysUserService; + } + + /** + * 获取项目组管理列表 + */ + //@PreAuthorize("@ss.hasPermi('system:projectTeam:list')") + @ApiOperation(value = "获取项目组分页列表",response = TProjectTeamQuery.class) + @PostMapping(value = "/api/t-project-team/pageList") + public R<PageInfo<TProjectTeamVO>> pageList(@RequestBody String param) { + TProjectTeamQuery query = JSON.parseObject(param, TProjectTeamQuery.class); + PageInfo<TProjectTeamVO> tProjectTeamVOPageInfo = projectTeamService.pageList(query); + return R.ok(tProjectTeamVOPageInfo); + } + + /** + * 添加项目组管理 + */ + //@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<Boolean> add(@RequestBody String param) { + TProjectTeamDTO dto = JSON.parseObject(param,TProjectTeamDTO.class); + projectTeamService.save(dto); + // 保存项目组成员 + List<TProjectTeamStaff> 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<Boolean> 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<TProjectTeamStaff> 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<TProjectTeamVO> getDetailById(@RequestParam String id) { + TProjectTeam projectTeam = projectTeamService.getById(id); + TProjectTeamVO projectTeamVO = new TProjectTeamVO(); + BeanUtils.copyProperties(projectTeam, projectTeamVO); + // 查询项目组人员 + List<TProjectTeamStaff> list = projectTeamStaffService.list(Wrappers.lambdaQuery(TProjectTeamStaff.class).eq(TProjectTeamStaff::getTeamId, id)); + // 查询所有人员 + List<SysUser> sysUsers = sysUserService.selectList(); + for (TProjectTeamStaff tProjectTeamStaff : list) { + sysUsers.stream().filter(sysUser -> sysUser.getUserId().equals(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<Boolean> 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 = "/open/t-project-team/deleteByIds") + public R<Boolean> deleteByIds(@RequestBody List<String> 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<Boolean> upAndDown(@RequestBody String param) { + UpAndDownDTO dto = JSON.parseObject(param,UpAndDownDTO.class); + TProjectTeam projectTeam = projectTeamService.getById(dto.getId()); + projectTeam.setStatus(dto.getStatus()); + projectTeamService.updateById(projectTeam); + return R.ok(); + } + } -- Gitblit v1.7.1