From 0c989fbcca1cd4b53d59e8ba288227a5a68d92a4 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期五, 27 六月 2025 18:08:25 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/laboratory --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaProduceReportController.java | 82 +++++++++++++++++++++++++++++++++++++--- 1 files changed, 75 insertions(+), 7 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaProduceReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaProduceReportController.java index 839d2a4..ffe8072 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaProduceReportController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaProduceReportController.java @@ -7,26 +7,34 @@ 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.*; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.enums.QAProduceReportStatusEnum; +import com.ruoyi.common.enums.QaReportFileEnum; +import com.ruoyi.common.enums.QaReportTypeEnum; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.AuditStatusDTO; import com.ruoyi.system.dto.TQaProduceReportDTO; import com.ruoyi.system.dto.TQaProduceReportEvaluateDTO; +import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.model.TProjectTeam; import com.ruoyi.system.model.TProjectTeamStaff; import com.ruoyi.system.model.TQaProduceReport; import com.ruoyi.system.model.TQaReportFile; import com.ruoyi.system.query.TQaProduceReportQuery; import com.ruoyi.system.service.*; +import com.ruoyi.system.vo.TProjectTeamVO; import com.ruoyi.system.vo.TQaProduceReportVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import java.time.LocalDateTime; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; @@ -38,6 +46,7 @@ * @author xiaochen * @since 2025-04-08 */ +@Slf4j @Api(tags = "中试、生产验证分析报告;辅料;产品报告管理") @RestController @RequestMapping("") @@ -49,14 +58,18 @@ private final TProjectTeamService projectTeamService; private final TProjectTeamStaffService projectTeamStaffService; private final ISysUserService sysUserService; + private final SysUserMapper sysUserMapper; + private final TNoticeService noticeService; @Autowired - public TQaProduceReportController(TQaProduceReportService qaProduceReportService, TQaReportFileService qaReportFileService, TokenService tokenService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, ISysUserService sysUserService) { + public TQaProduceReportController(TQaProduceReportService qaProduceReportService, TQaReportFileService qaReportFileService, TokenService tokenService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TNoticeService noticeService) { this.qaProduceReportService = qaProduceReportService; this.qaReportFileService = qaReportFileService; this.tokenService = tokenService; this.projectTeamService = projectTeamService; this.projectTeamStaffService = projectTeamStaffService; this.sysUserService = sysUserService; + this.sysUserMapper = sysUserMapper; + this.noticeService = noticeService; } /** @@ -106,6 +119,30 @@ } /** + * 获取中试、生产验证分析报告;辅料;产品报告管理评定列表 + */ + //@PreAuthorize("@ss.hasPermi('system:qaProduceReport:evaluateList')") + @ApiOperation(value = "获取中试、生产验证分析报告;辅料;产品报告管理评定数量统计", response = TQaProduceReportQuery.class) + @PostMapping(value = "/api/t-qa-produce-report/evaluateCount") + public R<Map<String,Integer>> evaluateCount(@RequestBody String param) { + TQaProduceReportQuery query = JSON.parseObject(param, TQaProduceReportQuery.class); + Long userId = tokenService.getLoginUser().getUserId(); + Integer roleType = tokenService.getLoginUser().getUser().getRoleType(); + if(roleType != 1){ + // 查询用户所在项目组 + List<TProjectTeamStaff> projectTeamStaffs = projectTeamStaffService.list(Wrappers.lambdaQuery(TProjectTeamStaff.class) + .eq(TProjectTeamStaff::getUserId, userId)); + if(projectTeamStaffs.size() > 0){ + // 查询项目组id + List<String> teamIds = projectTeamStaffs.stream().map(TProjectTeamStaff::getTeamId).distinct().collect(Collectors.toList()); + query.setTeamIds(teamIds); + } + } + Map<String,Integer> map = qaProduceReportService.evaluateCount(query); + return R.ok(map); + } + + /** * 添加中试、生产验证分析报告;辅料;产品报告管理管理 */ //@PreAuthorize("@ss.hasPermi('system:qaProduceReport:add')") @@ -124,7 +161,7 @@ return R.fail("当前用户未分配项目组,无法创建项目课题方案"); } // 查询项目组 - TProjectTeam projectTeam = projectTeamService.getById(projectTeamStaff.getTeamId()); + TProjectTeam projectTeam = projectTeamService.getById(dto.getTeamId()); if(Objects.isNull(projectTeam)){ return R.fail("项目组不存在"); } @@ -172,6 +209,16 @@ } } qaReportFileService.saveBatch(qaReportFiles); + + // MESSAGE 添加消息 + TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class) + .eq(TProjectTeamStaff::getTeamId, projectTeam.getId()) + .eq(TProjectTeamStaff::getRoleType, 3) + .last("LIMIT 1")); + if(Objects.nonNull(teamStaff)){ + noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【项目检测项、检验包列表】/【中试、生产验证试验检验分析报告】/【原辅料、包材、竞品检验分析报告】/【产品报批及项目工作总结报告】等待审核", tokenService.getLoginUser().getUser().getNickName(),9); + } + return R.ok(); } @@ -225,8 +272,25 @@ .eq(TQaReportFile::getReportId, id) .ne(TQaReportFile::getReportType, QaReportFileEnum.TEST_REPORT.getCode())); qaProduceReportVO.setQaReportFileList(qaReportFiles); - // 获取项目组名称 - qaProduceReportVO.setTeamName(projectTeamService.getById(qaProduceReport.getTeamId()).getTeamName()); + // 查询项目组名称 + TProjectTeam projectTeam = projectTeamService.getById(qaProduceReport.getTeamId()); + TProjectTeamVO projectTeamVO = new TProjectTeamVO(); + BeanUtils.copyProperties(projectTeam, projectTeamVO); + // 查询项目组成员 + List<TProjectTeamStaff> list = projectTeamStaffService.list(Wrappers.lambdaQuery(TProjectTeamStaff.class).eq(TProjectTeamStaff::getTeamId, qaProduceReport.getTeamId())); + if (!CollectionUtils.isEmpty(list)){ + List<Long> userIds = list.stream().map(TProjectTeamStaff::getUserId).distinct().collect(Collectors.toList()); + // 查询所有人员 + List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds); + 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); + } + qaProduceReportVO.setProjectTeamVO(projectTeamVO); // 获取审批人名称 SysUser sysUser = sysUserService.selectUserById(qaProduceReport.getAuditPersonId()); if (Objects.nonNull(sysUser)) { @@ -298,6 +362,10 @@ qaProduceReport.setAuditPersonId(userId); qaProduceReport.setAuditTime(LocalDateTime.now()); qaProduceReportService.updateById(qaProduceReport); + + // MESSAGE 添加消息 + noticeService.saveNotice(userId, "您有【1】条【项目检测项、检验包列表】/【中试、生产验证试验检验分析报告】/【原辅料、包材、竞品检验分析报告】/【产品报批及项目工作总结报告】等待评定", tokenService.getLoginUser().getUser().getNickName(),10); + return R.ok(); } @@ -306,7 +374,7 @@ */ //@PreAuthorize("@ss.hasPermi('system:qaTestItem:evaluate')") @Log(title = "中试、生产验证分析报告;辅料;产品报告管理信息-评定中试、生产验证分析报告;辅料;产品报告管理信息", businessType = BusinessType.UPDATE) - @ApiOperation(value = "评定QA检测项管理",response = TQaProduceReportEvaluateDTO.class) + @ApiOperation(value = "评定中试、生产验证分析报告;辅料;产品报告管理信息",response = TQaProduceReportEvaluateDTO.class) @PostMapping(value = "/api/t-qa-produce-report/evaluate") public R<Boolean> evaluate(@RequestBody String param) { TQaProduceReportEvaluateDTO dto = JSON.parseObject(param,TQaProduceReportEvaluateDTO.class); @@ -319,6 +387,6 @@ qaProduceReportService.updateById(qaProduceReport); return R.ok(); } - + } -- Gitblit v1.7.1