From 05fed078888dd5c2624751b6b29c5e16b7f1b2e6 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期一, 19 五月 2025 09:29:28 +0800 Subject: [PATCH] 测评接口,bug修改 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFeasibilityStudyReportServiceImpl.java | 34 + ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentSchemePerson.java | 8 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TClinicalTrialPointsServiceImpl.java | 27 + ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentSchemeService.java | 7 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTesterOtherTaskController.java | 179 +++++++++ ruoyi-system/src/main/java/com/ruoyi/system/model/TClinicalTrialPoints.java | 10 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentResultReportServiceImpl.java | 14 ruoyi-system/src/main/resources/mapper/system/TExperimentResultReportMapper.xml | 41 ++ ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentResultReportQuery.java | 6 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentResultReportController.java | 48 ++ ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentResultReportService.java | 6 ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentSchemeVO.java | 14 ruoyi-system/src/main/resources/mapper/system/TExperimentSchemeMapper.xml | 27 + ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentResultReport.java | 8 ruoyi-system/src/main/java/com/ruoyi/system/dto/TClinicalTrialPointsDTO.java | 13 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java | 41 ++ ruoyi-system/src/main/resources/mapper/system/TClinicalTrialPointsMapper.xml | 36 + ruoyi-system/src/main/java/com/ruoyi/system/service/TFeasibilityStudyReportService.java | 16 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentSchemeServiceImpl.java | 54 ++ ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentDispatch.java | 9 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java | 13 ruoyi-system/src/main/java/com/ruoyi/system/vo/TFeasibilityStudyReportVO.java | 6 ruoyi-system/src/main/java/com/ruoyi/system/query/TFeasibilityStudyReportQuery.java | 5 ruoyi-system/src/main/resources/mapper/system/TFeasibilityStudyReportMapper.xml | 76 ++++ ruoyi-system/src/main/java/com/ruoyi/system/vo/TClinicalTrialPointsVO.java | 22 + ruoyi-system/src/main/java/com/ruoyi/system/service/TClinicalTrialPointsService.java | 9 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentResultReportMapper.java | 7 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TFeasibilityStudyReportMapper.java | 17 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFeasibilityStudyReportController.java | 82 ++++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TClinicalTrialPointsController.java | 166 +++++++++ ruoyi-system/src/main/java/com/ruoyi/system/query/TClinicalTrialPointsQuery.java | 20 + ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentSchemeMapper.java | 8 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TClinicalTrialPointsMapper.java | 13 ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentScheme.java | 8 34 files changed, 1,010 insertions(+), 40 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TClinicalTrialPointsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TClinicalTrialPointsController.java index 64a5ffa..18464ce 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TClinicalTrialPointsController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TClinicalTrialPointsController.java @@ -1,9 +1,33 @@ 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.framework.web.service.TokenService; +import com.ruoyi.system.dto.TClinicalTrialPointsDTO; +import com.ruoyi.system.mapper.SysUserMapper; +import com.ruoyi.system.model.TClinicalTrialPoints; +import com.ruoyi.system.model.TProjectTeam; +import com.ruoyi.system.model.TProjectTeamStaff; +import com.ruoyi.system.query.TClinicalTrialPointsQuery; +import com.ruoyi.system.service.TClinicalTrialPointsService; +import com.ruoyi.system.service.TProjectTeamService; +import com.ruoyi.system.service.TProjectTeamStaffService; +import com.ruoyi.system.vo.TClinicalTrialPointsVO; 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.web.bind.annotation.*; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; /** * <p> @@ -15,8 +39,144 @@ */ @Api(tags = "临床试验积分") @RestController -@RequestMapping("/t-clinical-trial-points") +@RequestMapping("") public class TClinicalTrialPointsController { + private final TClinicalTrialPointsService clinicalTrialPointsService; + private final TokenService tokenService; + private final TProjectTeamService projectTeamService; + private final TProjectTeamStaffService projectTeamStaffService; + private final SysUserMapper sysUserMapper; + @Autowired + public TClinicalTrialPointsController(TClinicalTrialPointsService clinicalTrialPointsService, TokenService tokenService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, SysUserMapper sysUserMapper) { + this.clinicalTrialPointsService = clinicalTrialPointsService; + this.tokenService = tokenService; + this.projectTeamService = projectTeamService; + this.projectTeamStaffService = projectTeamStaffService; + this.sysUserMapper = sysUserMapper; + } + + /** + * 获取临床试验积分列表 + */ + //@PreAuthorize("@ss.hasPermi('system:clinicalTrialPoints:list')") + @ApiOperation(value = "获取临床试验积分分页列表", response = TClinicalTrialPointsQuery.class) + @PostMapping(value = "/api/t-clinical-trial-points/pageList") + public R<PageInfo<TClinicalTrialPointsVO>> pageList(@RequestBody String param) { + TClinicalTrialPointsQuery query = JSON.parseObject(param, TClinicalTrialPointsQuery.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); + } + } + return R.ok(clinicalTrialPointsService.pageList(query)); + } + + /** + * 添加临床试验积分管理 + */ + //@PreAuthorize("@ss.hasPermi('system:clinicalTrialPoints:add')") + @Log(title = "临床试验积分信息-新增临床试验积分", businessType = BusinessType.INSERT) + @ApiOperation(value = "添加临床试验积分",response = TClinicalTrialPointsDTO.class) + @PostMapping(value = "/api/t-clinical-trial-points/add") + public R<Boolean> add(@RequestBody String param) { + TClinicalTrialPointsDTO dto = JSON.parseObject(param,TClinicalTrialPointsDTO.class); + // 通过当前用户查询项目组 + Long userId = tokenService.getLoginUser().getUserId(); + Integer roleType = tokenService.getLoginUser().getUser().getRoleType(); + if(roleType == 2){ + TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class) + .eq(TProjectTeamStaff::getUserId, userId) + .last("LIMIT 1")); + if(Objects.isNull(projectTeamStaff)){ + return R.fail("当前用户未分配项目组,无法创建临床试验积分"); + } + } + // 查询项目组 + TProjectTeam projectTeam = projectTeamService.getById(dto.getTeamId()); + if(Objects.isNull(projectTeam)){ + return R.fail("项目组不存在"); + } + if(projectTeam.getStatus() == 2){ + return R.fail("项目组已封存,无法创建临床试验积分"); + } + // 查询项目组工艺工程师id + TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class) + .eq(TProjectTeamStaff::getTeamId, dto.getTeamId()) + .eq(TProjectTeamStaff::getRoleType, 3) + .last("LIMIT 1")); + if(Objects.isNull(projectTeamStaff)){ + return R.fail("当前项目组未分配工艺工程师,无法创建临床试验积分"); + } + dto.setProcessEngineerId(projectTeamStaff.getId()); + clinicalTrialPointsService.save(dto); + return R.ok(); + } + + /** + * 修改临床试验积分 + */ + //@PreAuthorize("@ss.hasPermi('system:clinicalTrialPoints:edit')") + @Log(title = "临床试验积分信息-修改临床试验积分", businessType = BusinessType.UPDATE) + @ApiOperation(value = "修改临床试验积分") + @PostMapping(value = "/api/t-clinical-trial-points/update") + public R<Boolean> update(@RequestBody String param) { + TClinicalTrialPointsDTO dto = JSON.parseObject(param,TClinicalTrialPointsDTO.class); + clinicalTrialPointsService.updateById(dto); + return R.ok(); + } + + /** + * 查看临床试验积分详情 + */ + //@PreAuthorize("@ss.hasPermi('system:clinicalTrialPoints:detail')") + @ApiOperation(value = "查看临床试验积分详情") + @GetMapping(value = "/open/t-clinical-trial-points/getDetailById") + public R<TClinicalTrialPointsVO> getDetailById(@RequestParam String id) { + TClinicalTrialPoints clinicalTrialPoints = clinicalTrialPointsService.getById(id); + TClinicalTrialPointsVO clinicalTrialPointsVO = new TClinicalTrialPointsVO(); + BeanUtils.copyProperties(clinicalTrialPoints, clinicalTrialPointsVO); + // 查询项目组 + TProjectTeam projectTeam = projectTeamService.getById(clinicalTrialPoints.getTeamId()); + // 查询项目组成员 + List<TProjectTeamStaff> projectTeamStaffs = projectTeamStaffService.list(Wrappers.lambdaQuery(TProjectTeamStaff.class) + .eq(TProjectTeamStaff::getTeamId, projectTeam.getId())); + List<Long> userIds = projectTeamStaffs.stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList()); + List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds); + clinicalTrialPointsVO.setStaffNames(sysUsers.stream().map(SysUser::getNickName).collect(Collectors.joining(","))); + clinicalTrialPointsVO.setProjectTeam(projectTeam); + + return R.ok(clinicalTrialPointsVO); + } + + /** + * 删除临床试验积分 + */ + //@PreAuthorize("@ss.hasPermi('system:clinicalTrialPoints:delete')") + @Log(title = "临床试验积分信息-删除临床试验积分", businessType = BusinessType.DELETE) + @ApiOperation(value = "删除临床试验积分") + @DeleteMapping(value = "/open/t-clinical-trial-points/deleteById") + public R<Boolean> deleteById(@RequestParam String id) { + return R.ok(clinicalTrialPointsService.removeById(id)); + } + + /** + * 批量删除临床试验积分 + */ + //@PreAuthorize("@ss.hasPermi('system:clinicalTrialPoints:delete')") + @Log(title = "临床试验积分信息-删除临床试验积分", businessType = BusinessType.DELETE) + @ApiOperation(value = "批量删除临床试验积分") + @DeleteMapping(value = "/open/t-clinical-trial-points/deleteByIds") + public R<Boolean> deleteByIds(@RequestBody List<String> ids) { + return R.ok(clinicalTrialPointsService.removeByIds(ids)); + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentResultReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentResultReportController.java index d3e94b4..6dcec42 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentResultReportController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentResultReportController.java @@ -9,10 +9,7 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.TExperimentResultReportDTO; -import com.ruoyi.system.model.TExperimentResultReport; -import com.ruoyi.system.model.TExperimentScheme; -import com.ruoyi.system.model.TInspectionReport; -import com.ruoyi.system.model.TResultWorkEvaluate; +import com.ruoyi.system.model.*; import com.ruoyi.system.query.TExperimentResultReportQuery; import com.ruoyi.system.service.*; import com.ruoyi.system.vo.TExperimentResultReportVO; @@ -20,10 +17,10 @@ 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.web.bind.annotation.*; import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -44,14 +41,18 @@ private final TResultWorkEvaluateService resultWorkEvaluateService; private final TExperimentSchemeService experimentSchemeService; private final TInspectionReportService inspectionReportService; + private final TProjectTeamStaffService projectTeamStaffService; + private final TExperimentDispatchParticipantsService experimentDispatchParticipantsService; @Autowired - public TExperimentResultReportController(TExperimentResultReportService experimentResultReportService, TokenService tokenService, ISysUserService sysUserService, TResultWorkEvaluateService resultWorkEvaluateService, TExperimentSchemeService experimentSchemeService, TInspectionReportService inspectionReportService) { + public TExperimentResultReportController(TExperimentResultReportService experimentResultReportService, TokenService tokenService, ISysUserService sysUserService, TResultWorkEvaluateService resultWorkEvaluateService, TExperimentSchemeService experimentSchemeService, TInspectionReportService inspectionReportService, TProjectTeamStaffService projectTeamStaffService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService) { this.experimentResultReportService = experimentResultReportService; this.tokenService = tokenService; this.sysUserService = sysUserService; this.resultWorkEvaluateService = resultWorkEvaluateService; this.experimentSchemeService = experimentSchemeService; this.inspectionReportService = inspectionReportService; + this.projectTeamStaffService = projectTeamStaffService; + this.experimentDispatchParticipantsService = experimentDispatchParticipantsService; } /** @@ -62,10 +63,45 @@ @PostMapping(value = "/api/t-experiment-result-report/pageList") public R<PageInfo<TExperimentResultReportVO>> pageList(@RequestBody String param) { TExperimentResultReportQuery query = JSON.parseObject(param, TExperimentResultReportQuery.class); + Long userId = tokenService.getLoginUser().getUserId(); + Integer roleType = tokenService.getLoginUser().getUser().getRoleType(); + if(roleType != 1){ + // 查询用户所参与的实验调度 + List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class) + .eq(TExperimentDispatchParticipants::getUserId, userId)); + if(experimentDispatchParticipants.size() > 0){ + // 查询项目组id + List<String> dispatchIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getDispatchId).distinct().collect(Collectors.toList()); + query.setDispatchIds(dispatchIds); + } + } return R.ok(experimentResultReportService.pageList(query)); } /** + * 获取实验结果汇报评定列表 + */ + //@PreAuthorize("@ss.hasPermi('system:experimentResultReport:list')") + @ApiOperation(value = "获取实验结果汇报评定列表-审批人使用",response = TExperimentResultReportQuery.class) + @PostMapping(value = "/api/t-experiment-result-report/evaluatePageList") + public R<PageInfo<TExperimentResultReportVO>> evaluatePageList(@RequestBody String param) { + TExperimentResultReportQuery query = JSON.parseObject(param, TExperimentResultReportQuery.class); + Long userId = tokenService.getLoginUser().getUserId(); + Integer roleType = tokenService.getLoginUser().getUser().getRoleType(); + if(roleType != 1){ + // 查询用户所参与的实验调度 + List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class) + .eq(TExperimentDispatchParticipants::getUserId, userId)); + if(experimentDispatchParticipants.size() > 0){ + // 查询项目组id + List<String> dispatchIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getDispatchId).distinct().collect(Collectors.toList()); + query.setDispatchIds(dispatchIds); + } + } + return R.ok(experimentResultReportService.evaluatePageList(query)); + } + + /** * 添加实验结果汇报管理 */ //@PreAuthorize("@ss.hasPermi('system:experimentResultReport:add')") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java index 92d8b8e..9073e78 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java @@ -74,6 +74,16 @@ TExperimentSchemeQuery query = JSON.parseObject(param, TExperimentSchemeQuery.class); return R.ok(experimentSchemeService.pageList(query)); } + /** + * 获取实验方案管理列表-中止审批列表 + */ + //@PreAuthorize("@ss.hasPermi('system:testMethodConfirmSheet:list')") + @ApiOperation(value = "获取实验方案分页列表-中止审批列表",response = TExperimentSchemeQuery.class) + @PostMapping(value = "/api/t-experiment-scheme/auditPageList") + public R<PageInfo<TExperimentSchemeVO>> auditPageList(@RequestBody String param) { + TExperimentSchemeQuery query = JSON.parseObject(param, TExperimentSchemeQuery.class); + return R.ok(experimentSchemeService.auditPageList(query)); + } /** * 通过实验调度查询查询组别列表 @@ -148,6 +158,20 @@ } /** + * 修改实验方案 + */ + //@PreAuthorize("@ss.hasPermi('system:testMethodConfirmSheet:edit')") + @Log(title = "实验方案信息-修改实验方案-实验员提交", businessType = BusinessType.UPDATE) + @ApiOperation(value = "修改实验方案-实验员提交") + @PostMapping(value = "/api/t-experiment-scheme/updateTester") + public R<Boolean> updateTester(@RequestBody String param) { + TExperimentSchemeDTO dto = JSON.parseObject(param,TExperimentSchemeDTO.class); + dto.setStatus(6); + experimentSchemeService.updateById(dto); + return R.ok(); + } + + /** * 查看实验方案详情 */ //@PreAuthorize("@ss.hasPermi('system:testMethodConfirmSheet:detail')") @@ -165,6 +189,7 @@ TProjectProposal projectProposal = projectProposalService.getById(experimentDispatch.getProposalId()); if(Objects.nonNull(projectProposal)){ experimentDispatch.setProjectName(projectProposal.getProjectName()); + experimentDispatch.setProjectCode(projectProposal.getProjectCode()); } } experimentSchemeVO.setExperimentDispatch(experimentDispatch); @@ -177,7 +202,21 @@ // 获取实验人员 List<TExperimentSchemePerson> experimentSchemePersons = experimentSchemePersonService.list(Wrappers.lambdaQuery(TExperimentSchemePerson.class) .eq(TExperimentSchemePerson::getSchemeId, id)); + List<Long> userIds = experimentSchemePersons.stream().map(TExperimentSchemePerson::getUserId).collect(Collectors.toList()); + List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds); + sysUsers.forEach(sysUser -> { + experimentSchemePersons.stream().filter(experimentSchemePerson -> experimentSchemePerson.getUserId().equals(sysUser.getUserId())).forEach(experimentSchemePerson -> { + experimentSchemePerson.setNickName(sysUser.getNickName()); + experimentSchemePerson.setAvatar(sysUser.getAvatar()); + }); + }); experimentSchemeVO.setExperimentSchemePersons(experimentSchemePersons); + + // 查询审核人姓名 + SysUser sysUser = sysUserService.selectUserById(experimentScheme.getAuditPersonId()); + if(Objects.nonNull(sysUser)){ + experimentSchemeVO.setAuditPersonName(sysUser.getNickName()); + } return R.ok(experimentSchemeVO); } @@ -213,7 +252,7 @@ */ //@PreAuthorize("@ss.hasPermi('system:testMethodConfirmSheet:sign')") @Log(title = "实验方案信息-申请中止实验", businessType = BusinessType.UPDATE) - @ApiOperation(value = "申请中止实验") + @ApiOperation(value = "申请中止实验",response = ApplicationTerminationDTO.class) @PostMapping(value = "/api/t-experiment-scheme/applicationTermination") public R<Boolean> applicationTermination(@RequestBody String param) { ApplicationTerminationDTO applicationTerminationDTO = JSON.parseObject(param, ApplicationTerminationDTO.class); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFeasibilityStudyReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFeasibilityStudyReportController.java index 7cf5eca..d36c0f2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFeasibilityStudyReportController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFeasibilityStudyReportController.java @@ -31,6 +31,7 @@ import java.time.LocalDateTime; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; @@ -86,6 +87,49 @@ } } return R.ok(feasibilityStudyReportService.pageList(query)); + } + + /** + * 获取可研、可行、工艺开发工具、验证发布报告管理列表 + */ + //@PreAuthorize("@ss.hasPermi('system:feasibilityStudyReport:evaluatePageList')") + @ApiOperation(value = "获取专业报告课题评定分页列表-超管、审批人",response = TFeasibilityStudyReportQuery.class) + @PostMapping(value = "/api/t-feasibility-study-report/evaluatePageList") + public R<PageInfo<TFeasibilityStudyReportVO>> evaluatePageList(@RequestBody String param) { + TFeasibilityStudyReportQuery query = JSON.parseObject(param, TFeasibilityStudyReportQuery.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); + } + } + return R.ok(feasibilityStudyReportService.evaluatePageList(query)); + } + + @ApiOperation(value = "获取专业报告课题评定数量统计",response = TFeasibilityStudyReportQuery.class) + @PostMapping(value = "/api/t-feasibility-study-report/evaluateCount") + public R<Map<String,Integer>> evaluateCount(@RequestBody String param) { + TFeasibilityStudyReportQuery query = JSON.parseObject(param, TFeasibilityStudyReportQuery.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 = feasibilityStudyReportService.evaluateCount(query); + return R.ok(); } /** @@ -289,6 +333,44 @@ feasibilityStudyReportService.updateById(feasibilityStudyReport); return R.ok(); } + + /** + * 课题评定-进行评定 + */ + //@PreAuthorize("@ss.hasPermi('system:feasibilityStudyReport:evaluate')") + @Log(title = "课题评定-进行评定", businessType = BusinessType.UPDATE) + @ApiOperation(value = "课题评定") + @PutMapping(value = "/open/t-feasibility-study-report/evaluate") + public R<Boolean> evaluate(@RequestParam(value = "id") String id, + @RequestParam(value = "evaluateScore") String evaluateScore) { + Long userId = tokenService.getLoginUser().getUserId(); + TFeasibilityStudyReport feasibilityStudyReport = feasibilityStudyReportService.getById(id); + feasibilityStudyReport.setStatus(3); + feasibilityStudyReport.setEvaluatePersonId(userId); + feasibilityStudyReport.setEvaluateTime(LocalDateTime.now()); + feasibilityStudyReport.setEvaluateScore(evaluateScore); + feasibilityStudyReportService.updateById(feasibilityStudyReport); + return R.ok(); + } + + /** + * 课题评定-评定详情 + */ + //@PreAuthorize("@ss.hasPermi('system:feasibilityStudyReport:evaluate')") + @Log(title = "课题评定-评定详情", businessType = BusinessType.UPDATE) + @ApiOperation(value = "评定详情") + @GetMapping(value = "/open/t-feasibility-study-report/evaluateDetail") + public R<TFeasibilityStudyReportVO> evaluateDetail(@RequestParam(value = "id") String id) { + TFeasibilityStudyReport feasibilityStudyReport = feasibilityStudyReportService.getById(id); + TFeasibilityStudyReportVO tFeasibilityStudyReportVO = new TFeasibilityStudyReportVO(); + BeanUtils.copyProperties(feasibilityStudyReport, tFeasibilityStudyReportVO); + // 查询评定人员名称 + SysUser sysUser = sysUserService.selectUserById(feasibilityStudyReport.getEvaluatePersonId()); + if(Objects.nonNull(sysUser)){ + tFeasibilityStudyReportVO.setEvaluatePersonName(sysUser.getNickName()); + } + return R.ok(tFeasibilityStudyReportVO); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTesterOtherTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTesterOtherTaskController.java index bed0986..f97936a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTesterOtherTaskController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTesterOtherTaskController.java @@ -1,9 +1,34 @@ 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.enums.BusinessType; +import com.ruoyi.common.enums.QaReportFileEnum; +import com.ruoyi.common.enums.QaReportTypeEnum; +import com.ruoyi.framework.web.service.TokenService; +import com.ruoyi.system.dto.TQaTestItemReportDTO; +import com.ruoyi.system.model.TProjectTeam; +import com.ruoyi.system.model.TProjectTeamStaff; +import com.ruoyi.system.model.TQaReportFile; +import com.ruoyi.system.model.TQaTestItemReport; +import com.ruoyi.system.query.TQaTestItemReportQuery; +import com.ruoyi.system.service.TProjectTeamService; +import com.ruoyi.system.service.TProjectTeamStaffService; +import com.ruoyi.system.service.TQaReportFileService; +import com.ruoyi.system.service.TQaTestItemReportService; +import com.ruoyi.system.vo.TQaTestItemReportVO; 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.web.bind.annotation.*; + +import java.util.List; +import java.util.Objects; /** * <p> @@ -18,5 +43,155 @@ @RequestMapping("/t-tester-other-task") public class TTesterOtherTaskController { + private final TQaTestItemReportService qaTestItemReportService; + private final TQaReportFileService qaReportFileService; + private final TokenService tokenService; + private final TProjectTeamService projectTeamService; + private final TProjectTeamStaffService projectTeamStaffService; + @Autowired + public TTesterOtherTaskController(TQaTestItemReportService qaTestItemReportService, TQaReportFileService qaReportFileService, TokenService tokenService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService) { + this.qaTestItemReportService = qaTestItemReportService; + this.qaReportFileService = qaReportFileService; + this.tokenService = tokenService; + this.projectTeamService = projectTeamService; + this.projectTeamStaffService = projectTeamStaffService; + } + + /** + * 获取QA检测项报告管理列表 + */ + //@PreAuthorize("@ss.hasPermi('system:qaTestItemReport:list')") + @ApiOperation(value = "获取QA检测项报告管理分页列表-工艺工程师使用", response = TQaTestItemReportQuery.class) + @PostMapping(value = "/api/t-qa-test-item-report/pageList") + public R<PageInfo<TQaTestItemReportVO>> pageList(@RequestBody String param) { + TQaTestItemReportQuery query = JSON.parseObject(param, TQaTestItemReportQuery.class); + + return R.ok(qaTestItemReportService.pageList(query)); + } + + /** + * 获取QA检测项报告管理列表 + */ + @ApiOperation(value = "获取QA检测项报告管理下拉列表-化验师使用") + @GetMapping(value = "/open/t-qa-test-item-report/getListByItemId") + public R<List<TQaTestItemReport>> getListByItemId(@RequestParam String itemId) { + List<TQaTestItemReport> list = qaTestItemReportService.list(Wrappers.lambdaQuery(TQaTestItemReport.class) + .eq(TQaTestItemReport::getItemId, itemId)); + return R.ok(list); + } + + /** + * 添加QA检测项报告管理管理 + */ + //@PreAuthorize("@ss.hasPermi('system:qaTestItemReport:add')") + @Log(title = "QA检测项报告管理信息-新增QA检测项报告管理", businessType = BusinessType.INSERT) + @ApiOperation(value = "添加QA检测项报告管理",response = TQaTestItemReportDTO.class) + @PostMapping(value = "/api/t-qa-test-item-report/add") + public R<Boolean> add(@RequestBody String param) { + TQaTestItemReportDTO dto = JSON.parseObject(param,TQaTestItemReportDTO.class); + // 通过当前用户查询项目组 + Long userId = tokenService.getLoginUser().getUserId(); + TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class) + .eq(TProjectTeamStaff::getUserId, userId) + .last("LIMIT 1")); + if(Objects.isNull(projectTeamStaff)){ + return R.fail("当前用户未分配项目组,无法创建项目课题方案"); + } + // 查询项目组 + TProjectTeam projectTeam = projectTeamService.getById(projectTeamStaff.getTeamId()); + if(Objects.isNull(projectTeam)){ + return R.fail("项目组不存在"); + } + if(projectTeam.getStatus() == 2){ + return R.fail("项目组已封存,无法创建项目课题方案"); + } + // 生成中试、生产验证编号 + String reportCode = projectTeam.getTeamName() + "-" + QaReportTypeEnum.TEST_REPORT.getCode(); + + // 查询上个项目课题方案的序号 + long count = qaTestItemReportService.count(Wrappers.lambdaQuery(TQaTestItemReport.class) + .like(TQaTestItemReport::getReportCode, reportCode)); + reportCode = reportCode + "-" + String.format("%03d", count+1); + dto.setReportCode(reportCode); + + qaTestItemReportService.save(dto); + // 添加检测报告文件 + List<TQaReportFile> qaReportFiles = dto.getQaReportFiles(); + for (TQaReportFile qaReportFile : qaReportFiles) { + qaReportFile.setReportId(dto.getId()); + qaReportFile.setReportType(QaReportFileEnum.TEST_REPORT.getCode()); + } + qaReportFileService.saveBatch(qaReportFiles); + return R.ok(); + } + + /** + * 修改QA检测项报告管理 + */ + //@PreAuthorize("@ss.hasPermi('system:qaTestItemReport:edit')") + @Log(title = "QA检测项报告管理信息-修改QA检测项报告管理", businessType = BusinessType.UPDATE) + @ApiOperation(value = "修改QA检测项报告管理") + @PostMapping(value = "/api/t-qa-test-item-report/update") + public R<Boolean> update(@RequestBody String param) { + TQaTestItemReportDTO dto = JSON.parseObject(param,TQaTestItemReportDTO.class); + qaTestItemReportService.updateById(dto); + qaReportFileService.remove(Wrappers.lambdaQuery(TQaReportFile.class) + .eq(TQaReportFile::getReportId, dto.getId())); + // 添加检测报告文件 + List<TQaReportFile> qaReportFiles = dto.getQaReportFiles(); + for (TQaReportFile qaReportFile : qaReportFiles) { + qaReportFile.setReportId(dto.getId()); + qaReportFile.setReportType(QaReportFileEnum.TEST_REPORT.getCode()); + } + qaReportFileService.saveBatch(qaReportFiles); + return R.ok(); + } + + /** + * 查看QA检测项报告管理详情 + */ + //@PreAuthorize("@ss.hasPermi('system:qaTestItemReport:detail')") + @ApiOperation(value = "查看QA检测项报告管理详情") + @GetMapping(value = "/open/t-qa-test-item-report/getDetailById") + public R<TQaTestItemReportVO> getDetailById(@RequestParam String id) { + TQaTestItemReport testItemReport = qaTestItemReportService.getById(id); + TQaTestItemReportVO testItemReportVO = new TQaTestItemReportVO(); + BeanUtils.copyProperties(testItemReport, testItemReportVO); + // 查询检测报告文件 + List<TQaReportFile> qaReportFiles = qaReportFileService.list(Wrappers.lambdaQuery(TQaReportFile.class) + .eq(TQaReportFile::getReportId, id) + .eq(TQaReportFile::getReportType, QaReportFileEnum.TEST_REPORT.getCode())); + testItemReportVO.setQaReportFileList(qaReportFiles); + return R.ok(testItemReportVO); + } + + /** + * 删除QA检测项报告管理 + */ + //@PreAuthorize("@ss.hasPermi('system:qaTestItemReport:delete')") + @Log(title = "QA检测项报告管理信息-删除QA检测项报告管理", businessType = BusinessType.DELETE) + @ApiOperation(value = "删除QA检测项报告管理") + @DeleteMapping(value = "/open/t-qa-test-item-report/deleteById") + public R<Boolean> deleteById(@RequestParam String id) { + // 删除QA检测项报告文件 + qaReportFileService.remove(Wrappers.lambdaQuery(TQaReportFile.class).eq(TQaReportFile::getReportId, id) + .in(TQaReportFile::getReportType, QaReportFileEnum.TEST_REPORT.getCode())); + return R.ok(qaTestItemReportService.removeById(id)); + } + + /** + * 批量删除QA检测项报告管理 + */ + //@PreAuthorize("@ss.hasPermi('system:qaTestItemReport:delete')") + @Log(title = "QA检测项报告管理信息-删除QA检测项报告管理", businessType = BusinessType.DELETE) + @ApiOperation(value = "批量删除QA检测项报告管理") + @DeleteMapping(value = "/open/t-qa-test-item-report/deleteByIds") + public R<Boolean> deleteByIds(@RequestBody List<String> ids) { + // 删除QA检测项报告检测报告文件 + qaReportFileService.remove(Wrappers.lambdaQuery(TQaReportFile.class).in(TQaReportFile::getReportId, ids) + .in(TQaReportFile::getReportType, QaReportFileEnum.TEST_REPORT.getCode())); + return R.ok(qaTestItemReportService.removeByIds(ids)); + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index 807702d..c0da812 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -1,6 +1,7 @@ package com.ruoyi.web.controller.system; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.basic.PageInfo; @@ -15,7 +16,6 @@ import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.SysUserUpdateStatusDTO; -import com.ruoyi.system.model.TProjectTeam; import com.ruoyi.system.model.TProjectTeamStaff; import com.ruoyi.system.query.SysUserQuery; import com.ruoyi.system.service.*; @@ -24,9 +24,7 @@ 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.util.CollectionUtils; -import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.time.LocalDateTime; @@ -92,9 +90,12 @@ return AjaxResult.success(new ArrayList<>()); } List<String> teamIds = staffs.stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); - List<TProjectTeamStaff> teamStaffs = projectTeamStaffService.list(Wrappers.lambdaQuery(TProjectTeamStaff.class) - .eq(TProjectTeamStaff::getTeamId, teamIds) - .eq(Objects.nonNull(roleId),TProjectTeamStaff::getRoleType,Integer.parseInt(roleId.toString()))); + LambdaQueryWrapper<TProjectTeamStaff> wrapper = new LambdaQueryWrapper<>(); + if(Objects.nonNull(roleId)){ + wrapper.eq(TProjectTeamStaff::getRoleType,Integer.parseInt(roleId.toString())); + } + wrapper.in(TProjectTeamStaff::getTeamId, teamIds); + List<TProjectTeamStaff> teamStaffs = projectTeamStaffService.list(wrapper); List<Long> userIds = teamStaffs.stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList()); List<SysUser> list = userService.listByRole(userIds,nickName); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/TClinicalTrialPointsDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/TClinicalTrialPointsDTO.java new file mode 100644 index 0000000..2cd0c92 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/TClinicalTrialPointsDTO.java @@ -0,0 +1,13 @@ +package com.ruoyi.system.dto; + +import com.ruoyi.system.model.TClinicalTrialPoints; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +@Data +@ApiModel(value = "临床试验积分新增编辑DTO") +public class TClinicalTrialPointsDTO extends TClinicalTrialPoints { + + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TClinicalTrialPointsMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TClinicalTrialPointsMapper.java index 33870e7..7bd9879 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TClinicalTrialPointsMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TClinicalTrialPointsMapper.java @@ -1,7 +1,13 @@ package com.ruoyi.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.TClinicalTrialPoints; +import com.ruoyi.system.query.TClinicalTrialPointsQuery; +import com.ruoyi.system.vo.TClinicalTrialPointsVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +19,11 @@ */ public interface TClinicalTrialPointsMapper extends BaseMapper<TClinicalTrialPoints> { + /** + * 获取列表 + * @param query + * @param pageInfo + * @return + */ + List<TClinicalTrialPointsVO> pageList(@Param("query") TClinicalTrialPointsQuery query, @Param("pageInfo")PageInfo<TClinicalTrialPointsVO> pageInfo); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentResultReportMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentResultReportMapper.java index e539278..970faa0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentResultReportMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentResultReportMapper.java @@ -26,5 +26,12 @@ * @return 实验结果汇报分页列表 */ List<TExperimentResultReportVO> pageList(@Param("query") TExperimentResultReportQuery query, @Param("pageInfo")PageInfo<TExperimentResultReportVO> pageInfo); + /** + * 分页查询实验结果汇报评定列表 + * + * @param query 查询条件 + * @return 实验结果汇报分页列表 + */ + List<TExperimentResultReportVO> evaluatePageList(@Param("query") TExperimentResultReportQuery query, @Param("pageInfo")PageInfo<TExperimentResultReportVO> pageInfo); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentSchemeMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentSchemeMapper.java index 1b39665..de5151e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentSchemeMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentSchemeMapper.java @@ -26,4 +26,12 @@ * @return */ List<TExperimentSchemeVO> pageList(@Param("query") TExperimentSchemeQuery query, @Param("pageInfo") PageInfo<TExperimentSchemeVO> pageInfo); + + /** + * 审核分页查询 + * @param query + * @param pageInfo + * @return + */ + List<TExperimentSchemeVO> auditPageList(@Param("query")TExperimentSchemeQuery query, @Param("pageInfo")PageInfo<TExperimentSchemeVO> pageInfo); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TFeasibilityStudyReportMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TFeasibilityStudyReportMapper.java index e9bf127..bbc8892 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TFeasibilityStudyReportMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TFeasibilityStudyReportMapper.java @@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * <p> @@ -26,4 +27,20 @@ * @return */ List<TFeasibilityStudyReportVO> pageList(@Param("query") TFeasibilityStudyReportQuery query, @Param("pageInfo")PageInfo<TFeasibilityStudyReportVO> pageInfo); + + /** + * 课题评定分页查询可研、可行、工艺开发工具、验证发布报告管理 + * @param query + * @param pageInfo + * @return + */ + List<TFeasibilityStudyReportVO> evaluatePageList(@Param("query")TFeasibilityStudyReportQuery query, @Param("pageInfo")PageInfo<TFeasibilityStudyReportVO> pageInfo); + + /** + * 课题评定数量统计 + * @param query + * @return + */ + Map<String, Integer> evaluateCount(@Param("query")TFeasibilityStudyReportQuery query); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TClinicalTrialPoints.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TClinicalTrialPoints.java index 8850534..0ba8797 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TClinicalTrialPoints.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TClinicalTrialPoints.java @@ -1,6 +1,9 @@ package com.ruoyi.system.model; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; @@ -8,7 +11,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; -import java.io.Serializable; import java.time.LocalDateTime; /** @@ -34,6 +36,10 @@ @TableField("team_id") private String teamId; + @ApiModelProperty(value = "工艺工程师id") + @TableField("process_engineer_id") + private String processEngineerId; + @ApiModelProperty(value = "临床实验内容") @TableField("trial_content") private String trialContent; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentDispatch.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentDispatch.java index 360118a..726accf 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentDispatch.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentDispatch.java @@ -1,6 +1,9 @@ package com.ruoyi.system.model; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; @@ -8,7 +11,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; -import java.io.Serializable; import java.time.LocalDateTime; /** @@ -68,6 +70,9 @@ @ApiModelProperty(value = "课题方案名称") @TableField(exist = false) private String projectName; + @ApiModelProperty(value = "课题方案编号") + @TableField(exist = false) + private String projectCode; @ApiModelProperty(value = "参与人员名称拼接") @TableField(exist = false) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentResultReport.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentResultReport.java index 8b34017..8bc3643 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentResultReport.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentResultReport.java @@ -1,6 +1,9 @@ package com.ruoyi.system.model; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; @@ -8,7 +11,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; -import java.io.Serializable; import java.time.LocalDateTime; /** @@ -38,7 +40,7 @@ @TableField("experiment_result") private String experimentResult; - @ApiModelProperty(value = "状态 -1=草稿箱 1=待提交 2=待评定 3=已评定 4=已封存") + @ApiModelProperty(value = "状态 -1=草稿箱 1=待提交 2=待评定 3=已评定 4=已封存 5=已解封") @TableField("status") private Integer status; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentScheme.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentScheme.java index e525f84..e08c7f4 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentScheme.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentScheme.java @@ -1,6 +1,9 @@ package com.ruoyi.system.model; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; @@ -8,7 +11,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; -import java.io.Serializable; import java.time.LocalDateTime; /** @@ -75,7 +77,7 @@ @TableField("commit_sign") private String commitSign; - @ApiModelProperty(value = "审批状态 -1=草稿箱 1=已发送 2=申请中止待审核 3=申请中止已通过 4=申请中止已驳回 5=已封存") + @ApiModelProperty(value = "审批状态 -1=草稿箱 1=已发送 2=申请中止待审核 3=申请中止已通过 4=申请中止已驳回 5=已封存 6=实验员已提交") @TableField("status") private Integer status; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentSchemePerson.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentSchemePerson.java index 28ebad8..7864a18 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentSchemePerson.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentSchemePerson.java @@ -38,12 +38,18 @@ @ApiModelProperty(value = "用户id") @TableField("user_id") - private Integer userId; + private Long userId; @ApiModelProperty(value = "提交时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("commit_time") private LocalDateTime commitTime; + @ApiModelProperty(value = "用户昵称") + @TableField(exist = false) + private String nickName; + @ApiModelProperty(value = "用户头像") + @TableField(exist = false) + private String avatar; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TClinicalTrialPointsQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TClinicalTrialPointsQuery.java new file mode 100644 index 0000000..82f925d --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TClinicalTrialPointsQuery.java @@ -0,0 +1,20 @@ +package com.ruoyi.system.query; + +import com.ruoyi.common.core.domain.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel(value = " 临床积分查询query") +public class TClinicalTrialPointsQuery extends BasePage { + + @ApiModelProperty(value = "项目组名称") + private String teamName; + @ApiModelProperty(value = "实验内容") + private String trialContent; + @ApiModelProperty(value = "项目组id集合 前端忽略") + private List<String> teamIds; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentResultReportQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentResultReportQuery.java index 2134a64..484e9ed 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentResultReportQuery.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentResultReportQuery.java @@ -1,10 +1,11 @@ package com.ruoyi.system.query; -import com.baomidou.mybatisplus.annotation.TableField; import com.ruoyi.common.core.domain.model.TimeRangeQueryBody; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; + +import java.util.List; @Data @ApiModel(value = "实验结果汇报查询条件query") @@ -22,4 +23,7 @@ @ApiModelProperty(value = "状态 -1=草稿箱 1=待提交 2=待评定 3=已评定 4=已封存") private Integer status; + @ApiModelProperty(value = "实验调度id集合 前端忽略") + private List<String> dispatchIds; + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TFeasibilityStudyReportQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TFeasibilityStudyReportQuery.java index 235f4e5..950f53c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TFeasibilityStudyReportQuery.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TFeasibilityStudyReportQuery.java @@ -8,7 +8,7 @@ import java.util.List; @Data -@ApiModel(value="可研、可行、工艺开发工具、验证发布报告管理查询参数query") +@ApiModel(value="(可研、可行、工艺开发工具、验证发布报告管理)、(课题评定列表)查询参数query") public class TFeasibilityStudyReportQuery extends TimeRangeQueryBody { @ApiModelProperty(value = "项目组名称") @@ -23,6 +23,9 @@ @ApiModelProperty(value = "类型 1=可研报告 2=可行报告 3=工艺开发工具 4=验证与发布") private Integer reportType; + @ApiModelProperty(value = "提交人") + private String createBy; + @ApiModelProperty(value = "状态 -1=草稿箱 1=待审核 2=待评定 3=已评定 4=已驳回 5=已撤回") private Integer status; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TClinicalTrialPointsService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TClinicalTrialPointsService.java index fbce299..8f71073 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TClinicalTrialPointsService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TClinicalTrialPointsService.java @@ -1,7 +1,10 @@ package com.ruoyi.system.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.TClinicalTrialPoints; +import com.ruoyi.system.query.TClinicalTrialPointsQuery; +import com.ruoyi.system.vo.TClinicalTrialPointsVO; /** * <p> @@ -13,4 +16,10 @@ */ public interface TClinicalTrialPointsService extends IService<TClinicalTrialPoints> { + /** + * 临床试验积分分页列表 + * @param query + * @return + */ + PageInfo<TClinicalTrialPointsVO> pageList(TClinicalTrialPointsQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentResultReportService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentResultReportService.java index 6e720b1..b08e098 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentResultReportService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentResultReportService.java @@ -22,4 +22,10 @@ * @return */ PageInfo<TExperimentResultReportVO> pageList(TExperimentResultReportQuery query); + /** + * 获取实验结果汇报评定列表 + * @param query + * @return + */ + PageInfo<TExperimentResultReportVO> evaluatePageList(TExperimentResultReportQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentSchemeService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentSchemeService.java index 2c515b6..ce54e95 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentSchemeService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentSchemeService.java @@ -22,4 +22,11 @@ * @return */ PageInfo<TExperimentSchemeVO> pageList(TExperimentSchemeQuery query); + + /** + * 获取检验方法确认单分页列表 + * @param query + * @return + */ + PageInfo<TExperimentSchemeVO> auditPageList(TExperimentSchemeQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TFeasibilityStudyReportService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TFeasibilityStudyReportService.java index 4563433..6eb47cf 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TFeasibilityStudyReportService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TFeasibilityStudyReportService.java @@ -6,6 +6,8 @@ import com.ruoyi.system.query.TFeasibilityStudyReportQuery; import com.ruoyi.system.vo.TFeasibilityStudyReportVO; +import java.util.Map; + /** * <p> * 可研、可行、工艺开发工具、验证发布报告 服务类 @@ -22,4 +24,18 @@ * @return */ PageInfo<TFeasibilityStudyReportVO> pageList(TFeasibilityStudyReportQuery query); + + /** + * 获取专业报告课题评定分页列表 + * @param query + * @return + */ + PageInfo<TFeasibilityStudyReportVO> evaluatePageList(TFeasibilityStudyReportQuery query); + + /** + * 获取专业报告课题评定数量统计 + * @param query + * @return + */ + Map<String, Integer> evaluateCount(TFeasibilityStudyReportQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TClinicalTrialPointsServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TClinicalTrialPointsServiceImpl.java index 206d817..c58481e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TClinicalTrialPointsServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TClinicalTrialPointsServiceImpl.java @@ -1,10 +1,18 @@ package com.ruoyi.system.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.mapper.TClinicalTrialPointsMapper; import com.ruoyi.system.model.TClinicalTrialPoints; +import com.ruoyi.system.query.TClinicalTrialPointsQuery; import com.ruoyi.system.service.TClinicalTrialPointsService; +import com.ruoyi.system.vo.TClinicalTrialPointsVO; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -17,4 +25,23 @@ @Service public class TClinicalTrialPointsServiceImpl extends ServiceImpl<TClinicalTrialPointsMapper, TClinicalTrialPoints> implements TClinicalTrialPointsService { + @Override + public PageInfo<TClinicalTrialPointsVO> pageList(TClinicalTrialPointsQuery query) { + PageInfo<TClinicalTrialPointsVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + List<TClinicalTrialPointsVO> list = this.baseMapper.pageList(query,pageInfo); + // 统计当前项目组累计分数 + List<String> teamIds = list.stream().map(TClinicalTrialPointsVO::getTeamId).distinct().collect(Collectors.toList()); + List<TClinicalTrialPoints> teamList = this.list(Wrappers.lambdaQuery(TClinicalTrialPoints.class) + .in(TClinicalTrialPoints::getTeamId,teamIds)); + for (TClinicalTrialPointsVO clinicalTrialPointsVO : list) { + List<TClinicalTrialPoints> clinicalTrialPoints = teamList.stream().filter(item -> item.getTeamId().equals(clinicalTrialPointsVO.getTeamId())).collect(Collectors.toList()); + if(CollectionUtils.isEmpty(clinicalTrialPoints)){ + clinicalTrialPointsVO.setTotalScore(0.0); + }else { + clinicalTrialPointsVO.setTotalScore(clinicalTrialPoints.stream().mapToDouble(TClinicalTrialPoints::getEvaluateScore).sum()); + } + } + pageInfo.setRecords(list); + return pageInfo; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentResultReportServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentResultReportServiceImpl.java index b3e6307..50d303f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentResultReportServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentResultReportServiceImpl.java @@ -1,21 +1,15 @@ package com.ruoyi.system.service.impl; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.basic.PageInfo; -import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.system.mapper.TExperimentResultReportMapper; -import com.ruoyi.system.model.TExperimentDispatchParticipants; import com.ruoyi.system.model.TExperimentResultReport; import com.ruoyi.system.query.TExperimentResultReportQuery; import com.ruoyi.system.service.TExperimentResultReportService; -import com.ruoyi.system.vo.TExperimentDispatchVO; import com.ruoyi.system.vo.TExperimentResultReportVO; import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; import java.util.List; -import java.util.stream.Collectors; /** * <p> @@ -36,4 +30,12 @@ pageInfo.setRecords(list); return pageInfo; } + + @Override + public PageInfo<TExperimentResultReportVO> evaluatePageList(TExperimentResultReportQuery query) { + PageInfo<TExperimentResultReportVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + List<TExperimentResultReportVO> list = this.baseMapper.evaluatePageList(query,pageInfo); + pageInfo.setRecords(list); + return pageInfo; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentSchemeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentSchemeServiceImpl.java index 725372e..5b3c6ae 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentSchemeServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentSchemeServiceImpl.java @@ -1,16 +1,23 @@ package com.ruoyi.system.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.mapper.TExperimentSchemeMapper; +import com.ruoyi.system.mapper.TExperimentSchemePersonMapper; import com.ruoyi.system.model.TExperimentScheme; +import com.ruoyi.system.model.TExperimentSchemePerson; import com.ruoyi.system.query.TExperimentSchemeQuery; import com.ruoyi.system.service.TExperimentSchemeService; -import com.ruoyi.system.vo.SysOperLogVO; import com.ruoyi.system.vo.TExperimentSchemeVO; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -23,10 +30,55 @@ @Service public class TExperimentSchemeServiceImpl extends ServiceImpl<TExperimentSchemeMapper, TExperimentScheme> implements TExperimentSchemeService { + @Autowired + private TExperimentSchemePersonMapper experimentSchemePersonMapper; + @Autowired + private SysUserMapper sysUserMapper; + @Override public PageInfo<TExperimentSchemeVO> pageList(TExperimentSchemeQuery query) { PageInfo<TExperimentSchemeVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<TExperimentSchemeVO> list = this.baseMapper.pageList(query,pageInfo); + List<String> schemeIds = list.stream().map(TExperimentSchemeVO::getId).collect(Collectors.toList()); + if(CollectionUtils.isEmpty(schemeIds)){ + return pageInfo; + } + List<TExperimentSchemePerson> experimentSchemePersonList = experimentSchemePersonMapper.selectList(Wrappers.lambdaQuery(TExperimentSchemePerson.class).in(TExperimentSchemePerson::getSchemeId, schemeIds)); + List<Long> userIds = experimentSchemePersonList.stream().map(TExperimentSchemePerson::getUserId).collect(Collectors.toList()); + List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds); + sysUsers.forEach(sysUser -> { + experimentSchemePersonList.stream().filter(experimentSchemePerson -> experimentSchemePerson.getUserId().equals(sysUser.getUserId())).forEach(experimentSchemePerson -> experimentSchemePerson.setNickName(sysUser.getNickName())); + }); + for (TExperimentSchemeVO experimentSchemeVO : list) { + List<TExperimentSchemePerson> personList = experimentSchemePersonList.stream().filter(experimentSchemePerson -> experimentSchemePerson.getSchemeId().equals(experimentSchemeVO.getId())).collect(Collectors.toList()); + experimentSchemeVO.setExperimentSchemePersons(personList); + // 写入名称 + experimentSchemeVO.setSchemePersonName(personList.stream().map(TExperimentSchemePerson::getNickName).collect(Collectors.joining(","))); + } + pageInfo.setRecords(list); + return pageInfo; + } + + @Override + public PageInfo<TExperimentSchemeVO> auditPageList(TExperimentSchemeQuery query) { + PageInfo<TExperimentSchemeVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + List<TExperimentSchemeVO> list = this.baseMapper.auditPageList(query,pageInfo); + List<String> schemeIds = list.stream().map(TExperimentSchemeVO::getId).collect(Collectors.toList()); + if(CollectionUtils.isEmpty(schemeIds)){ + return pageInfo; + } + List<TExperimentSchemePerson> experimentSchemePersonList = experimentSchemePersonMapper.selectList(Wrappers.lambdaQuery(TExperimentSchemePerson.class).in(TExperimentSchemePerson::getSchemeId, schemeIds)); + List<Long> userIds = experimentSchemePersonList.stream().map(TExperimentSchemePerson::getUserId).collect(Collectors.toList()); + List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds); + sysUsers.forEach(sysUser -> { + experimentSchemePersonList.stream().filter(experimentSchemePerson -> experimentSchemePerson.getUserId().equals(sysUser.getUserId())).forEach(experimentSchemePerson -> experimentSchemePerson.setNickName(sysUser.getNickName())); + }); + for (TExperimentSchemeVO experimentSchemeVO : list) { + List<TExperimentSchemePerson> personList = experimentSchemePersonList.stream().filter(experimentSchemePerson -> experimentSchemePerson.getSchemeId().equals(experimentSchemeVO.getId())).collect(Collectors.toList()); + experimentSchemeVO.setExperimentSchemePersons(personList); + // 写入名称 + experimentSchemeVO.setSchemePersonName(personList.stream().map(TExperimentSchemePerson::getNickName).collect(Collectors.joining(","))); + } pageInfo.setRecords(list); return pageInfo; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFeasibilityStudyReportServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFeasibilityStudyReportServiceImpl.java index 2eb4262..b5e15b4 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFeasibilityStudyReportServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFeasibilityStudyReportServiceImpl.java @@ -7,10 +7,11 @@ import com.ruoyi.system.query.TFeasibilityStudyReportQuery; import com.ruoyi.system.service.TFeasibilityStudyReportService; import com.ruoyi.system.vo.TFeasibilityStudyReportVO; -import com.ruoyi.system.vo.TQaTestItemVO; import org.springframework.stereotype.Service; +import java.util.Arrays; import java.util.List; +import java.util.Map; /** * <p> @@ -30,4 +31,35 @@ pageInfo.setRecords(list); return pageInfo; } + + @Override + public PageInfo<TFeasibilityStudyReportVO> evaluatePageList(TFeasibilityStudyReportQuery query) { + PageInfo<TFeasibilityStudyReportVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + List<TFeasibilityStudyReportVO> list = this.baseMapper.evaluatePageList(query,pageInfo); + for (TFeasibilityStudyReportVO tFeasibilityStudyReportVO : list) { + String scoreStr = tFeasibilityStudyReportVO.getEvaluateScore(); + if (scoreStr == null || scoreStr.isEmpty()) { + tFeasibilityStudyReportVO.setTotalScore(0); + continue; + } + + try { + // 使用 Stream 累加分数 + int sum = Arrays.stream(scoreStr.split(",")) + .mapToInt(Integer::parseInt) + .sum(); + tFeasibilityStudyReportVO.setTotalScore(sum); + } catch (NumberFormatException e) { + tFeasibilityStudyReportVO.setTotalScore(0); + } + } + pageInfo.setRecords(list); + return pageInfo; + } + + @Override + public Map<String, Integer> evaluateCount(TFeasibilityStudyReportQuery query) { + Map<String, Integer> map = this.baseMapper.evaluateCount(query); + return map; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TClinicalTrialPointsVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TClinicalTrialPointsVO.java new file mode 100644 index 0000000..e544f0d --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TClinicalTrialPointsVO.java @@ -0,0 +1,22 @@ +package com.ruoyi.system.vo; + +import com.ruoyi.system.model.TClinicalTrialPoints; +import com.ruoyi.system.model.TProjectTeam; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "临床试验积分VO") +public class TClinicalTrialPointsVO extends TClinicalTrialPoints { + + @ApiModelProperty(value = "项目组信息") + private TProjectTeam projectTeam; + + @ApiModelProperty(value = "项目组成员名称拼接") + private String staffNames; + + @ApiModelProperty(value = "总分") + private Double totalScore; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentSchemeVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentSchemeVO.java index 38b8bf0..cb9e465 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentSchemeVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentSchemeVO.java @@ -13,6 +13,20 @@ @Data @ApiModel(value = "实验方案管理VO", description = "实验方案管理VO") public class TExperimentSchemeVO extends TExperimentScheme { + @ApiModelProperty(value = "项目课题方案") + private String projectName; + + @ApiModelProperty(value = "实验编号") + private String experimentCode; + + @ApiModelProperty(value = "实验名称") + private String experimentName; + + @ApiModelProperty(value = "实验员名称") + private String schemePersonName; + + @ApiModelProperty(value = "审核人名称") + private String auditPersonName; @ApiModelProperty(value = "实验人员信息") private List<TExperimentSchemePerson> experimentSchemePersons; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TFeasibilityStudyReportVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TFeasibilityStudyReportVO.java index 9fe3710..5ab1ed8 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TFeasibilityStudyReportVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TFeasibilityStudyReportVO.java @@ -22,6 +22,12 @@ @ApiModelProperty(value = "项目组成员名称拼接") private String staffNames; + @ApiModelProperty(value = "总分") + private Integer totalScore; + + @ApiModelProperty(value = "评定人员名称") + private String evaluatePersonName; + @ApiModelProperty(value = "报告文件") private List<TFeasibilityReportFile> feasibilityReportFiles; diff --git a/ruoyi-system/src/main/resources/mapper/system/TClinicalTrialPointsMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TClinicalTrialPointsMapper.xml index 690705f..cedee2b 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TClinicalTrialPointsMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TClinicalTrialPointsMapper.xml @@ -6,6 +6,7 @@ <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TClinicalTrialPoints"> <id column="id" property="id" /> <result column="team_id" property="teamId" /> + <result column="process_engineer_id" property="processEngineerId" /> <result column="trial_content" property="trialContent" /> <result column="trial_time" property="trialTime" /> <result column="evaluate_score" property="evaluateScore" /> @@ -18,7 +19,40 @@ <!-- 通用查询结果列 --> <sql id="Base_Column_List"> - id, team_id, trial_content, trial_time, evaluate_score, create_time, update_time, create_by, update_by, disabled + id, team_id, process_engineer_id,trial_content, trial_time, evaluate_score, create_time, update_time, create_by, update_by, disabled </sql> + <select id="pageList" resultType="com.ruoyi.system.vo.TClinicalTrialPointsVO"> + select + t.id, + t.team_id, + t.process_engineer_id, + t.trial_content, + t.trial_time, + t.evaluate_score, + t.create_time, + t.update_time, + t.create_by, + t.update_by, + t.disabled, + p.team_name AS teamName + from t_clinical_trial_points t + left join t_project_team p on t.team_id = p.id + <where> + <if test="query.teamName != null and query.teamName != ''"> + and p.team_name like concat('%',#{query.teamName},'%') + </if> + <if test="query.trialContent != null and query.trialContent != ''"> + and t.trial_content like concat('%',#{query.trialContent},'%') + </if> + <if test="query.teamIds != null and query.teamIds.size() > 0"> + and t.team_id in + <foreach item="teamId" collection="query.teamIds" separator="," open="(" close=")" index=""> + #{teamId} + </foreach> + </if> + AND t.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + </where> + ORDER BY t.create_time DESC + </select> </mapper> diff --git a/ruoyi-system/src/main/resources/mapper/system/TExperimentResultReportMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TExperimentResultReportMapper.xml index 3419716..0e34df5 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TExperimentResultReportMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TExperimentResultReportMapper.xml @@ -51,6 +51,47 @@ <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> AND terr.create_time BETWEEN #{query.startTime} AND #{query.endTime} </if> + <if test="query.dispatchIds != null and query.dispatchIds.size() > 0"> + AND terr.dispatch_id IN + <foreach collection="query.dispatchIds" item="item" index="index" open="(" close=")" separator=","> + #{item} + </foreach> + </if> + AND terr.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + </where> + ORDER BY terr.create_time DESC + </select> + <select id="evaluatePageList" resultType="com.ruoyi.system.vo.TExperimentResultReportVO"> + select terr.id, terr.dispatch_id, terr.experiment_result, terr.status, terr.evaluate_one, terr.evaluate_two, terr.evaluate_three, + terr.evaluate_four, terr.evaluate_five, terr.evaluate_six, terr.evaluate_person_id, terr.evaluate_time, terr.create_time, + terr.update_time, terr.create_by, terr.update_by, terr.disabled, tpp.project_name AS projectName, + ted.experiment_code AS experimentCode, ted.experiment_name AS experimentName + from t_experiment_result_report terr + left join t_experiment_dispatch ted on terr.dispatch_id = ted.id + left join t_project_proposal tpp on ted.proposal_id = tpp.id + <where> + <if test="query.projectName != null and query.projectName != ''"> + and tpp.project_name like concat('%', #{query.projectName}, '%') + </if> + <if test="query.experimentCode != null and query.experimentCode != ''"> + and ted.experiment_code like concat('%', #{query.experimentCode}, '%') + </if> + <if test="query.experimentName != null and query.experimentName != ''"> + and ted.experiment_name like concat('%', #{query.experimentName}, '%') + </if> + <if test="query.status != null"> + and terr.status = #{query.status} + </if> + <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> + AND terr.create_time BETWEEN #{query.startTime} AND #{query.endTime} + </if> + <if test="query.dispatchIds != null and query.dispatchIds.size() > 0"> + AND terr.dispatch_id IN + <foreach collection="query.dispatchIds" item="item" index="index" open="(" close=")" separator=","> + #{item} + </foreach> + </if> + AND terr.status IN (2,3,4,5) AND terr.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> ORDER BY terr.create_time DESC diff --git a/ruoyi-system/src/main/resources/mapper/system/TExperimentSchemeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TExperimentSchemeMapper.xml index 55577e8..e6a7d76 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TExperimentSchemeMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TExperimentSchemeMapper.xml @@ -59,5 +59,32 @@ </where> ORDER BY tes.create_time DESC </select> + <select id="auditPageList" resultType="com.ruoyi.system.vo.TExperimentSchemeVO"> + select tes.id, tes.dispatch_id, tes.experiment_date, tes.experiment_objective, tes.experiment_param_route, + tes.experiment_material, tes.experiment_device, tes.experiment_step_record, tes.stop_reason, tes.stop_file,tes.stop_file_name, + tes.commit_sign, tes.status, tes.audit_person_id, tes.audit_time, tes.audit_remark, tes.create_time, tes.update_time, + tes.create_by, tes.update_by, tes.disabled, tpp.project_name as projectName,ted.experiment_code as experimentCode, + ted.experiment_name as experimentName + from t_experiment_scheme tes + left join t_experiment_dispatch ted on tes.dispatch_id = ted.id + left join t_project_proposal tpp on ted.proposal_id = tpp.id + <where> + <if test="query.status != null"> + and tes.status = #{query.status} + </if> + <if test="query.projectName != null and query.projectName != ''"> + and tpp.project_name like concat('%', #{query.projectName}, '%') + </if> + <if test="query.experimentCode != null and query.experimentCode != ''"> + and tes.experiment_code like concat('%', #{query.experimentCode}, '%') + </if> + <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> + AND tes.create_time BETWEEN #{query.startTime} AND #{query.endTime} + </if> + AND tes.status IN (2,3,4) + AND tes.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + </where> + ORDER BY tes.create_time DESC + </select> </mapper> diff --git a/ruoyi-system/src/main/resources/mapper/system/TFeasibilityStudyReportMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TFeasibilityStudyReportMapper.xml index 67910d9..f8b7e33 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TFeasibilityStudyReportMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TFeasibilityStudyReportMapper.xml @@ -63,5 +63,81 @@ </where> ORDER BY tfsr.create_time DESC </select> + <select id="evaluatePageList" resultType="com.ruoyi.system.vo.TFeasibilityStudyReportVO"> + select tfsr.id, tfsr.team_id, tfsr.report_code, tfsr.report_name, tfsr.report_text, tfsr.report_type, tfsr.status, + tfsr.audit_person_id, tfsr.audit_time, tfsr.audit_remark, tfsr.evaluate_person_id, tfsr.evaluate_time, tfsr.evaluate_score, + tfsr.create_time, tfsr.update_time, tfsr.create_by, tfsr.update_by, tfsr.disabled, tpt.team_name as teamName + from t_feasibility_study_report tfsr + left join t_project_team tpt on tpt.id = tfsr.team_id + <where> + <if test="query.reportName != null and query.reportName != ''"> + and tfsr.report_name like concat('%', #{query.reportName}, '%') + </if> + <if test="query.reportCode != null and query.reportCode != ''"> + and tfsr.report_code like concat('%', #{query.reportCode}, '%') + </if> + <if test="query.teamName != null and query.teamName != ''"> + and tpt.team_name like concat('%', #{query.teamName}) + </if> + <if test="query.status != null"> + and tfsr.status = #{query.status} + </if> + <if test="query.reportType != null"> + and tfsr.report_type = #{query.reportType} + </if> + <if test="query.createBy != null and query.createBy != ''"> + and tfsr.createBy like concat('%', #{query.createBy}) + </if> + <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> + AND tfsr.create_time BETWEEN #{query.startTime} AND #{query.endTime} + </if> + <if test="query.teamIds != null and query.teamIds.size() > 0"> + and tfsr.team_id in + <foreach item="teamId" collection="query.teamIds" separator="," open="(" close=")" index=""> + #{teamId} + </foreach> + </if> + AND tfsr.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + </where> + ORDER BY tfsr.create_time DESC + </select> + <select id="evaluateCount" resultType="java.util.Map"> + select + COUNT(tfsr.id) as totalCount, + SUM(CASE WHEN tfsr.status = 2 THEN 1 ELSE 0 END) AS toEvaluatedCount, + SUM(CASE WHEN tfsr.status = 3 THEN 1 ELSE 0 END) AS evaluatedCount, + from t_feasibility_study_report tfsr + left join t_project_team tpt on tpt.id = tfsr.team_id + <where> + <if test="query.reportName != null and query.reportName != ''"> + and tfsr.report_name like concat('%', #{query.reportName}, '%') + </if> + <if test="query.reportCode != null and query.reportCode != ''"> + and tfsr.report_code like concat('%', #{query.reportCode}, '%') + </if> + <if test="query.teamName != null and query.teamName != ''"> + and tpt.team_name like concat('%', #{query.teamName}) + </if> + <if test="query.status != null"> + and tfsr.status = #{query.status} + </if> + <if test="query.reportType != null"> + and tfsr.report_type = #{query.reportType} + </if> + <if test="query.createBy != null and query.createBy != ''"> + and tfsr.createBy like concat('%', #{query.createBy}) + </if> + <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> + AND tfsr.create_time BETWEEN #{query.startTime} AND #{query.endTime} + </if> + <if test="query.teamIds != null and query.teamIds.size() > 0"> + and tfsr.team_id in + <foreach item="teamId" collection="query.teamIds" separator="," open="(" close=")" index=""> + #{teamId} + </foreach> + </if> + AND tfsr.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + </where> + </select> </mapper> -- Gitblit v1.7.1