From 0220811fbcffd4bd4df334502a2af272ae29f1e3 Mon Sep 17 00:00:00 2001
From: wenminjie <1036699586@qq.com>
Date: 星期一, 13 七月 2026 10:14:30 +0800
Subject: [PATCH] 修复了已知BUG
---
ruoyi-system/src/main/resources/mapper/system/TExperimentDispatchMapper.xml | 10
ruoyi-system/src/main/resources/mapper/system/TSamplingRecordMapper.xml | 5
ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetOriginalMapper.xml | 7
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java | 1187 ++-----------------------
ruoyi-system/src/main/java/com/ruoyi/system/vo/TInspectionReportVO.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TClinicalTrialPointsServiceImpl.java | 17
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaProduceReportController.java | 42
ruoyi-system/src/main/java/com/ruoyi/system/query/TInspectionReportQuery.java | 3
ruoyi-system/src/main/resources/mapper/system/TExperimentResultReportMapper.xml | 7
ruoyi-system/src/main/resources/mapper/system/TExperimentSchemeMapper.xml | 12
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WorkEvaluateService.java | 583 ++++++++++++
ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateDetailUserVO.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/query/TTestMethodConfirmSheetQuery.java | 3
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java | 14
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java | 9
ruoyi-system/src/main/java/com/ruoyi/system/model/EvaluateResult.java | 13
ruoyi-common/src/main/java/com/ruoyi/common/filter/SmCryptoFilter.java | 28
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentSchemeServiceImpl.java | 12
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSamplingRecordController.java | 5
ruoyi-system/src/main/java/com/ruoyi/system/vo/TClinicalTrialPointsVO.java | 3
ruoyi-system/src/main/java/com/ruoyi/system/vo/TSamplingRecordVO.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/vo/ResultEvaluateChemistTesterVO.java | 3
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TQaTestItemServiceImpl.java | 105 ++
ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelHandlerAdapter.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/service/TQaTestItemReportService.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/query/TTestMethodConfirmSheetOriginalQuery.java | 3
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectProposalController.java | 29
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaTestItemReportController.java | 19
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectionReportController.java | 18
ruoyi-common/src/main/java/com/ruoyi/common/filter/CustomRequestWrapper.java | 93 +
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetOriginalController.java | 9
ruoyi-system/src/main/resources/mapper/system/TInspectionReportMapper.xml | 5
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTesterOtherTaskController.java | 6
ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentResultReportQuery.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentDispatchQuery.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentSchemeQuery.java | 3
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentResultReportController.java | 30
ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentSchemeVO.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/query/TSamplingRecordQuery.java | 3
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaTestItemController.java | 7
ruoyi-system/src/main/java/com/ruoyi/system/vo/TTestMethodConfirmSheetVO.java | 3
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java | 34
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectApprovalReportController.java | 45
ruoyi-system/src/main/java/com/ruoyi/system/query/TResultWorkEvaluateQuery.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterOtherTaskServiceImpl.java | 14
ruoyi-system/src/main/java/com/ruoyi/system/vo/TTestMethodConfirmSheetOriginalVO.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentResultReportVO.java | 2
ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetMapper.xml | 5
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFeasibilityStudyReportController.java | 77
ruoyi-system/src/main/java/com/ruoyi/system/query/ResultEvaluateChemistTesterQuery.java | 2
ruoyi-system/src/main/resources/mapper/system/TResultWorkEvaluateMapper.xml | 17
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TQaTestItemReportServiceImpl.java | 19
ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateVO.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterWorkEvaluateServiceImpl.java | 261 +---
ruoyi-common/src/main/java/com/ruoyi/common/core/controller/FileController.java | 1
55 files changed, 1,346 insertions(+), 1,449 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java
index 0d7ccaa..1a075e6 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java
@@ -8,6 +8,7 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.ExperimentDispatchSignDTO;
import com.ruoyi.system.dto.TExperimentDispatchDTO;
@@ -188,7 +189,15 @@
@PostMapping(value = "/api/t-experiment-dispatch/update")
public R<Boolean> update(@RequestBody String param) {
TExperimentDispatchDTO dto = JSON.parseObject(param,TExperimentDispatchDTO.class);
+
+ if (SecurityUtils.isAdmin(SecurityUtils.getUserId())){
+ dto.setStatus(null);
+ experimentDispatchService.updateById(dto);
+ return R.ok();
+ }
+
experimentDispatchService.updateById(dto);
+
// 添加实验分组
experimentDispatchGroupService.remove(Wrappers.lambdaQuery(TExperimentDispatchGroup.class).eq(TExperimentDispatchGroup::getDispatchId, dto.getId()));
List<TExperimentDispatchGroup> experimentDispatchGroups = dto.getExperimentDispatchGroups();
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 95c2403..747c793 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
@@ -8,6 +8,7 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.TExperimentResultReportDTO;
import com.ruoyi.system.dto.TExperimentResultReportRejectDTO;
@@ -137,7 +138,7 @@
// 查询项目组
List<TProjectTeamStaff> projectTeamStaffs = projectTeamStaffService.list(Wrappers.lambdaQuery(TProjectTeamStaff.class)
.eq(TProjectTeamStaff::getUserId, userId)
- .eq(TProjectTeamStaff::getRoleType, 2));
+ .in(TProjectTeamStaff::getRoleType, 2,3));
if(!CollectionUtils.isEmpty(projectTeamStaffs)){
List<String> teamIds = projectTeamStaffs.stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
// 查询分组
@@ -217,10 +218,16 @@
@PostMapping(value = "/api/t-experiment-result-report/update")
public R<Boolean> update(@RequestBody String param) {
TExperimentResultReportDTO dto = JSON.parseObject(param,TExperimentResultReportDTO.class);
+
+ if (SecurityUtils.isAdmin(SecurityUtils.getUserId())){
+ dto.setStatus(null);
+ }
+
experimentResultReportService.updateById(dto);
// 修改实验结果工作评价
List<TResultWorkEvaluate> resultWorkEvaluates = dto.getResultWorkEvaluates();
resultWorkEvaluateService.saveOrUpdateBatch(resultWorkEvaluates);
+
// 获取当前用户的项目组id
Long userId = tokenService.getLoginUser().getUserId();
TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
@@ -235,15 +242,17 @@
}
// 查询项目组
- TProjectTeam projectTeam = projectTeamService.getById(projectTeamStaff.getTeamId());
- if(dto.getStatus() != -1){
- // MESSAGE 添加消息
- TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
- .eq(TProjectTeamStaff::getTeamId, projectTeam.getId())
- .eq(TProjectTeamStaff::getRoleType, 2)
- .last("LIMIT 1"));
- if(Objects.nonNull(teamStaff)){
- noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【实验结果汇报】等待评定", tokenService.getLoginUser().getUser().getNickName(),3);
+ if (projectTeamStaff != null) {
+ TProjectTeam projectTeam = projectTeamService.getById(projectTeamStaff.getTeamId());
+ if(dto.getStatus() != null || dto.getStatus() != -1){
+ // MESSAGE 添加消息
+ TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
+ .eq(TProjectTeamStaff::getTeamId, projectTeam.getId())
+ .eq(TProjectTeamStaff::getRoleType, 2)
+ .last("LIMIT 1"));
+ if(Objects.nonNull(teamStaff)){
+ noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【实验结果汇报】等待评定", tokenService.getLoginUser().getUser().getNickName(),3);
+ }
}
}
return R.ok();
@@ -352,6 +361,7 @@
// 查询项目课题
TProjectProposal proposal = projectProposalService.getById(experimentDispatch.getProposalId());
experimentDispatchVO.setProjectName(proposal.getProjectName());
+ experimentDispatchVO.setProjectCode(proposal.getProjectCode());
// 查询参与人员
List<TExperimentDispatchParticipants> tExperimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
.eq(TExperimentDispatchParticipants::getDispatchId, experimentResultReport.getDispatchId()));
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 0912568..4a0d0d3 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
@@ -8,6 +8,7 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.ApplicationTerminationAuditDTO;
import com.ruoyi.system.dto.ApplicationTerminationDTO;
@@ -223,14 +224,21 @@
@PostMapping(value = "/api/t-experiment-scheme/update")
public R<Boolean> update(@RequestBody String param) {
TExperimentSchemeDTO dto = JSON.parseObject(param,TExperimentSchemeDTO.class);
+
+ if (SecurityUtils.isAdmin(SecurityUtils.getUserId())){
+ dto.setStatus(null);
+ }
+
experimentSchemeService.updateById(dto);
experimentSchemePersonService.remove(Wrappers.lambdaQuery(TExperimentSchemePerson.class).eq(TExperimentSchemePerson::getSchemeId,dto.getId()));
List<TExperimentSchemePerson> experimentSchemePersons = dto.getExperimentSchemePersons();
- experimentSchemePersons.forEach(experimentSchemePerson -> {
- experimentSchemePerson.setSchemeId(dto.getId());
- experimentSchemePerson.setCommitTime(LocalDateTime.now());
- });
- experimentSchemePersonService.saveBatch(experimentSchemePersons);
+ if (experimentSchemePersons != null) {
+ experimentSchemePersons.forEach(experimentSchemePerson -> {
+ experimentSchemePerson.setSchemeId(dto.getId());
+ experimentSchemePerson.setCommitTime(LocalDateTime.now());
+ });
+ experimentSchemePersonService.saveBatch(experimentSchemePersons);
+ }
return R.ok();
}
@@ -279,13 +287,17 @@
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());
+
+ if (!userIds.isEmpty()) {
+ 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);
// 查询实验调度信息
TExperimentDispatch experimentDispatch = experimentDispatchService.getById(experimentSchemeVO.getDispatchId());
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 94f01e7..924d5f6 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
@@ -11,6 +11,7 @@
import com.ruoyi.common.enums.FeasibilityReportFileEnum;
import com.ruoyi.common.enums.FeasibilityStudyReportStatusEnum;
import com.ruoyi.common.enums.StudyReportTypeEnum;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.AuditStatusDTO;
import com.ruoyi.system.dto.TFeasibilityStudyReportDTO;
@@ -245,6 +246,11 @@
@PostMapping(value = "/api/t-feasibility-study-report/update")
public R<Boolean> update(@RequestBody String param) {
TFeasibilityStudyReportDTO dto = JSON.parseObject(param,TFeasibilityStudyReportDTO.class);
+
+ if (SecurityUtils.isAdmin(SecurityUtils.getUserId())){
+ dto.setStatus(null);
+ }
+
feasibilityStudyReportService.updateById(dto);
feasibilityReportFileService.remove(Wrappers.lambdaQuery(TFeasibilityReportFile.class)
.eq(TFeasibilityReportFile::getReportId, dto.getId()));
@@ -278,32 +284,35 @@
TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
.eq(TProjectTeamStaff::getUserId, userId)
.last("LIMIT 1"));
- // 查询项目组
- TProjectTeam projectTeam = projectTeamService.getById(projectTeamStaff.getTeamId());
- if(dto.getStatus() != -1){
- // MESSAGE 添加消息
- TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
- .eq(TProjectTeamStaff::getTeamId, projectTeam.getId())
- .eq(TProjectTeamStaff::getRoleType, 2)
- .last("LIMIT 1"));
- if(Objects.nonNull(teamStaff)){
- TFeasibilityStudyReport feasibilityStudyReport = feasibilityStudyReportService.getById(dto.getId());
- Integer reportType = feasibilityStudyReport.getReportType();
- switch (reportType) {
- case 1:
- noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【可研报告】等待评定", tokenService.getLoginUser().getUser().getNickName(),4);
- break;
- case 2:
- noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【可行报告】等待评定", tokenService.getLoginUser().getUser().getNickName(),4);
- break;
- case 3:
- noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【工艺开发工具】等待评定", tokenService.getLoginUser().getUser().getNickName(),4);
- break;
- case 4:
- noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【验证与发布】等待评定", tokenService.getLoginUser().getUser().getNickName(),4);
- break;
- default:
- break;
+
+ if (projectTeamStaff != null) {
+ // 查询项目组
+ TProjectTeam projectTeam = projectTeamService.getById(projectTeamStaff.getTeamId());
+ if(dto.getStatus() != null && dto.getStatus() != -1){
+ // MESSAGE 添加消息
+ TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
+ .eq(TProjectTeamStaff::getTeamId, projectTeam.getId())
+ .eq(TProjectTeamStaff::getRoleType, 2)
+ .last("LIMIT 1"));
+ if(Objects.nonNull(teamStaff)){
+ TFeasibilityStudyReport feasibilityStudyReport = feasibilityStudyReportService.getById(dto.getId());
+ Integer reportType = feasibilityStudyReport.getReportType();
+ switch (reportType) {
+ case 1:
+ noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【可研报告】等待评定", tokenService.getLoginUser().getUser().getNickName(),4);
+ break;
+ case 2:
+ noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【可行报告】等待评定", tokenService.getLoginUser().getUser().getNickName(),4);
+ break;
+ case 3:
+ noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【工艺开发工具】等待评定", tokenService.getLoginUser().getUser().getNickName(),4);
+ break;
+ case 4:
+ noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【验证与发布】等待评定", tokenService.getLoginUser().getUser().getNickName(),4);
+ break;
+ default:
+ break;
+ }
}
}
}
@@ -326,13 +335,15 @@
feasibilityStudyReportVO.setFeasibilityReportFiles(feasibilityReportFiles);
// 查询项目组
TProjectTeam projectTeam = projectTeamService.getById(feasibilityStudyReport.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);
- feasibilityStudyReportVO.setStaffNames(sysUsers.stream().map(SysUser::getNickName).collect(Collectors.joining(",")));
- feasibilityStudyReportVO.setProjectTeam(projectTeam);
+ if (projectTeam != null) {
+ // 查询项目组成员
+ 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);
+ feasibilityStudyReportVO.setStaffNames(sysUsers.stream().map(SysUser::getNickName).collect(Collectors.joining(",")));
+ feasibilityStudyReportVO.setProjectTeam(projectTeam);
+ }
SysUser sysUser = sysUserService.selectUserById(feasibilityStudyReport.getAuditPersonId());
if(Objects.nonNull(sysUser)){
feasibilityStudyReportVO.setAuditPersonName(sysUser.getNickName());
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectionReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectionReportController.java
index f6f4d10..cfbdb77 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectionReportController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectionReportController.java
@@ -8,6 +8,7 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.TInspectionReportDTO;
import com.ruoyi.system.mapper.SysUserMapper;
@@ -147,8 +148,13 @@
@PostMapping(value = "/api/t-inspection-report/update")
public R<Boolean> update(@RequestBody String param) {
TInspectionReportDTO dto = JSON.parseObject(param,TInspectionReportDTO.class);
+
+ if (SecurityUtils.isAdmin(SecurityUtils.getUserId())) {
+ dto.setStatus(null);
+ }
+
inspectionReportService.updateById(dto);
- if(dto.getStatus() != -1){
+ if(dto.getStatus() != null && dto.getStatus() != -1){
// 通过当前用户查询项目组
Long userId = tokenService.getLoginUser().getUserId();
TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
@@ -180,9 +186,13 @@
BeanUtils.copyProperties(inspectionReport, inspectionReportVO);
// 查询实验调度
TExperimentDispatch experimentDispatch = experimentDispatchService.getById(inspectionReportVO.getDispatchId());
- // 查询项目课题
- TProjectProposal projectProposal = projectProposalService.getById(experimentDispatch.getProposalId());
- experimentDispatch.setProjectName(projectProposal.getProjectName());
+
+ if (experimentDispatch != null) {
+ // 查询项目课题
+ TProjectProposal projectProposal = projectProposalService.getById(experimentDispatch.getProposalId());
+ experimentDispatch.setProjectName(projectProposal.getProjectName());
+ experimentDispatch.setProjectCode(projectProposal.getProjectCode());
+ }
// 查询实验调度人员
List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
.eq(TExperimentDispatchParticipants::getDispatchId, inspectionReportVO.getDispatchId()));
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectApprovalReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectApprovalReportController.java
index 2da67ca..b5721f7 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectApprovalReportController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectApprovalReportController.java
@@ -10,6 +10,7 @@
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.enums.FeasibilityReportFileEnum;
import com.ruoyi.common.enums.ProjectApprovalReportStatusEnum;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.AuditStatusDTO;
import com.ruoyi.system.dto.TProjectApprovalReportDTO;
@@ -153,6 +154,11 @@
@PostMapping(value = "/api/t-project-approval-report/update")
public R<Boolean> update(@RequestBody String param) {
TProjectApprovalReportDTO dto = JSON.parseObject(param,TProjectApprovalReportDTO.class);
+
+ if (SecurityUtils.isAdmin(SecurityUtils.getUserId())){
+ dto.setStatus(null);
+ }
+
projectApprovalReportService.updateById(dto);
feasibilityReportFileService.remove(Wrappers.lambdaQuery(TFeasibilityReportFile.class)
.eq(TFeasibilityReportFile::getReportId, dto.getId()));
@@ -165,20 +171,23 @@
}
feasibilityReportFileService.saveBatch(feasibilityReportFiles);
}
- if(dto.getStatus() != -1){
+ if(dto.getStatus() != null && dto.getStatus() != -1){
Long userId = tokenService.getLoginUser().getUserId();
TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
.eq(TProjectTeamStaff::getUserId, userId)
.last("LIMIT 1"));
- // 查询项目组
- TProjectTeam projectTeam = projectTeamService.getById(projectTeamStaff.getTeamId());
- // MESSAGE 添加消息
- TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
- .eq(TProjectTeamStaff::getTeamId, projectTeam.getId())
- .eq(TProjectTeamStaff::getRoleType, 2)
- .last("LIMIT 1"));
- if(Objects.nonNull(teamStaff)){
- noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【立项报告库】等待审核", tokenService.getLoginUser().getUser().getNickName(),4);
+
+ if (projectTeamStaff != null) {
+ // 查询项目组
+ TProjectTeam projectTeam = projectTeamService.getById(projectTeamStaff.getTeamId());
+ // MESSAGE 添加消息
+ TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
+ .eq(TProjectTeamStaff::getTeamId, projectTeam.getId())
+ .eq(TProjectTeamStaff::getRoleType, 2)
+ .last("LIMIT 1"));
+ if(Objects.nonNull(teamStaff)){
+ noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【立项报告库】等待审核", tokenService.getLoginUser().getUser().getNickName(),4);
+ }
}
}
return R.ok();
@@ -200,13 +209,15 @@
projectApprovalReportVO.setFeasibilityReportFiles(feasibilityReportFiles);
// 查询项目组
TProjectTeam projectTeam = projectTeamService.getById(projectApprovalReport.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);
- projectApprovalReportVO.setStaffNames(sysUsers.stream().map(SysUser::getNickName).collect(Collectors.joining(",")));
- projectApprovalReportVO.setProjectTeam(projectTeam);
+ if (projectTeam != null) {
+ // 查询项目组成员
+ 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);
+ projectApprovalReportVO.setStaffNames(sysUsers.stream().map(SysUser::getNickName).collect(Collectors.joining(",")));
+ projectApprovalReportVO.setProjectTeam(projectTeam);
+ }
return R.ok(projectApprovalReportVO);
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectProposalController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectProposalController.java
index d3f8b74..ecba42a 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectProposalController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectProposalController.java
@@ -9,6 +9,7 @@
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.enums.ProjectStageEnum;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.AuditStatusDTO;
import com.ruoyi.system.dto.TProjectProposalDTO;
@@ -176,22 +177,30 @@
@PostMapping(value = "/api/t-project-proposal/update")
public R<Boolean> update(@RequestBody String param) {
TProjectProposalDTO dto = JSON.parseObject(param,TProjectProposalDTO.class);
+
+ if (SecurityUtils.isAdmin(SecurityUtils.getUserId())) {
+ dto.setAuditStatus(null);
+ }
+
projectProposalService.updateById(dto);
- if(dto.getAuditStatus() != -1){
+ if(dto.getAuditStatus() != null && dto.getAuditStatus() != -1){
// 通过当前用户查询项目组
Long userId = tokenService.getLoginUser().getUserId();
TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
.eq(TProjectTeamStaff::getUserId, userId)
.last("LIMIT 1"));
- // 查询项目组
- TProjectTeam projectTeam = projectTeamService.getById(projectTeamStaff.getTeamId());
- // MESSAGE 添加消息
- TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
- .eq(TProjectTeamStaff::getTeamId, projectTeam.getId())
- .eq(TProjectTeamStaff::getRoleType, 2)
- .last("LIMIT 1"));
- if(Objects.nonNull(teamStaff)){
- noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【项目课题方案】等待审批", tokenService.getLoginUser().getUser().getNickName(),1);
+
+ if (projectTeamStaff != null && !com.ruoyi.common.utils.StringUtils.isEmpty(projectTeamStaff.getTeamId())) {
+ // 查询项目组
+ TProjectTeam projectTeam = projectTeamService.getById(projectTeamStaff.getTeamId());
+ // MESSAGE 添加消息
+ TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
+ .eq(TProjectTeamStaff::getTeamId, projectTeam.getId())
+ .eq(TProjectTeamStaff::getRoleType, 2)
+ .last("LIMIT 1"));
+ if(Objects.nonNull(teamStaff)){
+ noticeService.saveNotice(teamStaff.getUserId(), "您有【1】条【项目课题方案】等待审批", tokenService.getLoginUser().getUser().getNickName(),1);
+ }
}
}
return R.ok();
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 a6968b5..b47a4d4 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
@@ -11,6 +11,7 @@
import com.ruoyi.common.enums.QAProduceReportStatusEnum;
import com.ruoyi.common.enums.QaReportFileEnum;
import com.ruoyi.common.enums.QaReportTypeEnum;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.AuditStatusDTO;
import com.ruoyi.system.dto.TQaProduceReportDTO;
@@ -245,32 +246,39 @@
@PostMapping(value = "/api/t-qa-produce-report/update")
public R<Boolean> update(@RequestBody String param) {
TQaProduceReportDTO dto = JSON.parseObject(param,TQaProduceReportDTO.class);
+
+ if (SecurityUtils.isAdmin(SecurityUtils.getUserId())){
+ dto.setStatus(null);
+ }
+
qaProduceReportService.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());
- switch (QaReportFileEnum.fromCode(qaReportFile.getReportType())) {
- case TEST_REPORT:
- qaReportFile.setReportType(QaReportFileEnum.TEST_REPORT.getCode());
- break;
- case PILOT_PRODUCTION_VALIDATION:
- qaReportFile.setReportType(QaReportFileEnum.PILOT_PRODUCTION_VALIDATION.getCode());
- break;
- case RAW_MATERIAL_REPORT:
- qaReportFile.setReportType(QaReportFileEnum.RAW_MATERIAL_REPORT.getCode());
- break;
- case PRODUCT_APPROVAL_REPORT:
- qaReportFile.setReportType(QaReportFileEnum.PRODUCT_APPROVAL_REPORT.getCode());
- break;
+ if (qaReportFiles != null) {
+ for (TQaReportFile qaReportFile : qaReportFiles) {
+ qaReportFile.setReportId(dto.getId());
+ switch (QaReportFileEnum.fromCode(qaReportFile.getReportType())) {
+ case TEST_REPORT:
+ qaReportFile.setReportType(QaReportFileEnum.TEST_REPORT.getCode());
+ break;
+ case PILOT_PRODUCTION_VALIDATION:
+ qaReportFile.setReportType(QaReportFileEnum.PILOT_PRODUCTION_VALIDATION.getCode());
+ break;
+ case RAW_MATERIAL_REPORT:
+ qaReportFile.setReportType(QaReportFileEnum.RAW_MATERIAL_REPORT.getCode());
+ break;
+ case PRODUCT_APPROVAL_REPORT:
+ qaReportFile.setReportType(QaReportFileEnum.PRODUCT_APPROVAL_REPORT.getCode());
+ break;
+ }
}
+ qaReportFileService.saveBatch(qaReportFiles);
}
- qaReportFileService.saveBatch(qaReportFiles);
- if(dto.getStatus() != -1){
+ if(dto.getStatus() != null && dto.getStatus() != -1){
// 查询项目组
TProjectTeam projectTeam = projectTeamService.getById(dto.getTeamId());
// MESSAGE 添加消息 20251208 将qa报告审核转到审批人
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaTestItemController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaTestItemController.java
index c7728da..0341403 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaTestItemController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaTestItemController.java
@@ -9,6 +9,7 @@
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.enums.QATestItemStatusEnum;
+import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.TQaTestItemDTO;
import com.ruoyi.system.dto.TQaTestItemEvaluateDTO;
@@ -85,6 +86,7 @@
query.setTeamIds(teamIds);
}
}
+
return R.ok(qaTestItemService.pageList(query));
}
@@ -184,6 +186,11 @@
testItemVO.setQaTestItemReportList(qaTestItemReportVOS);
// 查询项目组名称
TProjectTeam projectTeam = projectTeamService.getById(testItemVO.getTeamId());
+
+ if (projectTeam == null) {
+ throw new ServiceException("当前数据项目组不存在");
+ }
+
TProjectTeamVO projectTeamVO = new TProjectTeamVO();
BeanUtils.copyProperties(projectTeam, projectTeamVO);
// 查询项目组成员
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaTestItemReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaTestItemReportController.java
index 5763010..d1cb064 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaTestItemReportController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaTestItemReportController.java
@@ -107,6 +107,25 @@
}
/**
+ * 获取QA检测项报告管理列表 草稿箱里面的
+ */
+ @ApiOperation(value = "获取QA检测项报告管理下拉列表-化验师使用、评定使用 草稿箱里面的")
+ @GetMapping(value = "/open/t-qa-test-item-report-draft/getListByItemId")
+ public R<List<TQaTestItemReportVO>> getListByItemIdDraft(@RequestParam String itemId) {
+ List<TQaTestItemReportVO> list = qaTestItemReportService.getListByItemIdDraft(itemId);
+ if(!CollectionUtils.isEmpty(list)){
+ List<SysUser> sysUsers = sysUserService.selectList();
+ list.forEach(itemReport -> {
+ SysUser sysUser = sysUsers.stream().filter(user -> user.getUserId().equals(itemReport.getAuditPersonId())).findFirst().orElse(null);
+ if(Objects.nonNull(sysUser)){
+ itemReport.setAuditPersonName(sysUser.getNickName());
+ }
+ });
+ }
+ return R.ok(list);
+ }
+
+ /**
* 添加QA检测项报告管理管理
*/
//@PreAuthorize("@ss.hasPermi('system:qaTestItemReport:add')")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java
index a5a1d7c..dff9950 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java
@@ -10,6 +10,7 @@
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.TResultWorkEvaluateDTO;
import com.ruoyi.system.mapper.SysUserMapper;
@@ -18,6 +19,7 @@
import com.ruoyi.system.query.TProjectApprovalReportQuery;
import com.ruoyi.system.query.TResultWorkEvaluateQuery;
import com.ruoyi.system.service.*;
+import com.ruoyi.system.service.impl.WorkEvaluateService;
import com.ruoyi.system.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -28,9 +30,7 @@
import javax.annotation.Resource;
import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -80,6 +80,14 @@
private SysUserMapper sysUserMapper;
@Autowired
private TExperimentDispatchParticipantsService experimentDispatchParticipantsService;
+ @Autowired
+ private TExperimentResultReportService tExperimentResultReportService;
+ @Autowired
+ private TExperimentDispatchService tExperimentDispatchService;
+ @Autowired
+ private TProjectProposalService tProjectProposalService;
+ @Autowired
+ private WorkEvaluateService workEvaluateCalculateService;
/**
* 获取化验师工作评定分页列表
@@ -308,6 +316,11 @@
LoginUser loginUser = tokenService.getLoginUser();
TResultWorkEvaluateQuery query = JSON.parseObject(param, TResultWorkEvaluateQuery.class);
+
+ if (SecurityUtils.isAdmin(SecurityUtils.getUserId())){
+ query.setUserId(null);
+ }
+
SysUser sysUser = sysUserService.selectUserById(loginUser.getUser().getUserId());
if (sysUser.getRoleType() != 1) {
List<String> teamIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, loginUser.getUser().getUserId()).list()
@@ -316,9 +329,22 @@
return R.ok(new PageInfo<>());
}
query.setTeamIds(teamIds);
+ }else {
+ List<String> teamIds = projectTeamStaffService.lambdaQuery()
+ .list()
+ .stream()
+ .map(TProjectTeamStaff::getTeamId)
+ .filter(Objects::nonNull)
+ .distinct()
+ .collect(Collectors.toList());
+ if (teamIds.isEmpty()) {
+ return R.ok(new PageInfo<>());
+ }
+ query.setTeamIds(teamIds);
}
return R.ok(tResultWorkEvaluateService.pageList(query));
}
+
/**
* 查看取样记录详情
@@ -338,8 +364,10 @@
List<Long> role5 = projectTeamStaffService.lambdaQuery()
.eq(TProjectTeamStaff::getRoleType, 5).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list()
.stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList());
+
List<SysUser> user4 = new ArrayList<>();
List<SysUser> user5 = new ArrayList<>();
+
for (Long l : role4) {
SysUser sysUser = sysUserService.selectUserById(l);
if (sysUser != null) {
@@ -352,173 +380,56 @@
user5.add(sysUser);
}
}
- List<TResultWorkEvaluate> list = tResultWorkEvaluateService.lambdaQuery().eq(TResultWorkEvaluate::getTeamId, resultWorkEvaluate.getTeamId())
- .eq(TResultWorkEvaluate::getStatus, 1).orderByDesc(TResultWorkEvaluate::getEvaluateTime).list();
- int temp1 = 0;
- int temp2 = 0;
- int temp3 = 0;
- int temp4 = 0;
- int temp5 = 0;
- for (TResultWorkEvaluate tResultWorkEvaluate : list) {
- Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
- switch (evaluateOne) {
- case 1:
- if (tResultWorkEvaluate.getEvaluateType() == 1) {
- temp2 += 2;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 2) {
- temp3 += 2;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 3) {
- temp4 += 2;
- }
- temp1 += 2;
- break;
- case 2:
- temp1 += 1;
- if (tResultWorkEvaluate.getEvaluateType() == 1) {
- temp2 += 1;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 2) {
- temp3 += 1;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 3) {
- temp4 += 1;
- }
- break;
- }
- Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
- switch (evaluateTwo) {
- case 1:
- temp1 += 2;
- if (tResultWorkEvaluate.getEvaluateType() == 1) {
- temp2 += 2;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 2) {
- temp3 += 2;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 3) {
- temp4 += 2;
- }
- break;
- case 2:
- temp1 += 1;
- if (tResultWorkEvaluate.getEvaluateType() == 1) {
- temp2 += 1;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 2) {
- temp3 += 1;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 3) {
- temp4 += 1;
- }
- break;
- }
- Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
- switch (evaluateThree) {
- case 1:
- temp1 += 2;
- if (tResultWorkEvaluate.getEvaluateType() == 1) {
- temp2 += 2;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 2) {
- temp3 += 2;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 3) {
- temp4 += 2;
- }
- break;
- case 2:
- temp1 += 1;
- if (tResultWorkEvaluate.getEvaluateType() == 1) {
- temp2 += 1;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 2) {
- temp3 += 1;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 3) {
- temp4 += 1;
- }
- break;
- }
- Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
- switch (evaluateFour) {
- case 1:
- temp1 += 2;
- if (tResultWorkEvaluate.getEvaluateType() == 1) {
- temp2 += 2;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 2) {
- temp3 += 2;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 3) {
- temp4 += 2;
- }
- break;
- case 2:
- temp1 += 1;
- if (tResultWorkEvaluate.getEvaluateType() == 1) {
- temp2 += 1;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 2) {
- temp3 += 1;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 3) {
- temp4 += 1;
- }
- break;
- }
- Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
- switch (evaluateFive) {
- case 1:
- temp1 += 2;
- if (tResultWorkEvaluate.getEvaluateType() == 1) {
- temp2 += 2;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 2) {
- temp3 += 2;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 3) {
- temp4 += 2;
- }
- break;
- case 2:
- temp1 += 1;
- if (tResultWorkEvaluate.getEvaluateType() == 1) {
- temp2 += 1;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 2) {
- temp3 += 1;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 3) {
- temp4 += 1;
- }
- break;
- }
- Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
- switch (evaluateSix) {
- case 1:
- temp1 -= 3;
- if (tResultWorkEvaluate.getEvaluateType() == 1) {
- temp2 -= 3;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 2) {
- temp3 -= 3;
- }
- if (tResultWorkEvaluate.getEvaluateType() == 3) {
- temp4 -= 3;
- }
- break;
- }
+ int engineerIntegral = 0; // 工艺工程师总积分
+ int chemistIntegral = 0; // 化验师总积分
+ int testerIntegral = 0; // 实验员总积分
+
+ // 单独获取各角色积分
+ TResultWorkEvaluateDetailVO engineerEvaluateDetail = workEvaluateCalculateService.getProcessEngineerEvaluateDetail(id);//工艺工程师
+ if (engineerEvaluateDetail != null && engineerEvaluateDetail.getEngineerList() != null) {
+ engineerIntegral = engineerEvaluateDetail.getEngineerList().stream()
+ .mapToInt(vo -> Optional.ofNullable(vo.getIntegral()).orElse(0))
+ .sum();
}
- tResultWorkEvaluateDetailVO.setTeamIntegral(temp1);
- tResultWorkEvaluateDetailVO.setEngineerIntegral(temp2);
- tResultWorkEvaluateDetailVO.setChemistIntegral(temp3);
- tResultWorkEvaluateDetailVO.setTesterIntegral(temp4);
- if (!list.isEmpty()) {
- tResultWorkEvaluateDetailVO.setEndTime(list.get(0).getEvaluateTime());
+
+ TResultWorkEvaluateDetailVO chemistEvaluateDetail = workEvaluateCalculateService.getChemistEvaluateDetail(id);//4 化验师
+ if (chemistEvaluateDetail != null && chemistEvaluateDetail.getChemistList() != null) {
+ chemistIntegral = chemistEvaluateDetail.getChemistList().stream()
+ .filter(user -> user.getList() != null)
+ .flatMap(user -> user.getList().stream())
+ .mapToInt(vo -> Optional.ofNullable(vo.getIntegral()).orElse(0))
+ .sum();
}
+
+ TResultWorkEvaluateDetailVO testerEvaluateDetail = workEvaluateCalculateService.getTesterEvaluateDetail(id);// 5 实验员
+ if (testerEvaluateDetail != null && testerEvaluateDetail.getTesterList() != null) {
+ testerIntegral = testerEvaluateDetail.getTesterList().stream()
+ .filter(user -> user.getList() != null)
+ .flatMap(user -> user.getList().stream())
+ .mapToInt(vo -> Optional.ofNullable(vo.getIntegral()).orElse(0))
+ .sum();
+ }
+
+ // 计算项目组总积分
+ int teamIntegral = engineerIntegral + chemistIntegral + testerIntegral;
+
+ tResultWorkEvaluateDetailVO.setTeamIntegral(teamIntegral);
+ tResultWorkEvaluateDetailVO.setEngineerIntegral(engineerIntegral);
+ tResultWorkEvaluateDetailVO.setChemistIntegral(chemistIntegral);
+ tResultWorkEvaluateDetailVO.setTesterIntegral(testerIntegral);
+
+ //查询最后一条数据的时间
+ TResultWorkEvaluate tResultWorkEvaluate = tResultWorkEvaluateService.lambdaQuery()
+ .eq(TResultWorkEvaluate::getTeamId, projectTeam.getId())
+ .eq(TResultWorkEvaluate::getDisabled, 0)//未删除
+ .orderByDesc(TResultWorkEvaluate::getEvaluateTime)// 按评定时间倒序排序
+ .last("limit 1")// 取第一条
+ .one();
+ if (tResultWorkEvaluate != null) {
+ tResultWorkEvaluateDetailVO.setEndTime(tResultWorkEvaluate.getEvaluateTime());
+ }
+
// 查询项目组总的失败次数
String teamId = resultWorkEvaluate.getTeamId();
List<String> projectProposalIds = projectProposalService.lambdaQuery().eq(TProjectProposal::getTeamId, teamId).list()
@@ -544,379 +455,9 @@
@ApiOperation(value = "查看详情-左侧数据-工艺工程师工作内容评定")
@GetMapping(value = "/open/t-result-work-evaluate/getDetailByIdLeftOne")
public R<TResultWorkEvaluateDetailVO> getDetailByIdLeftOne(@RequestParam String id) {
- TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO();
+ TResultWorkEvaluateDetailVO engineerEvaluateDetail = workEvaluateCalculateService.getProcessEngineerEvaluateDetail(id);
- TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
- TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId());
- TProjectTeamStaff projectTeamStaff = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).eq(TProjectTeamStaff::getRoleType, 3).last("limit 1")
- .one();
- TProjectTeamStaff projectTeamStaff1 = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).eq(TProjectTeamStaff::getRoleType, 2).last("limit 1")
- .one();
- tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime());
- Long userId = projectTeamStaff.getUserId();
- Long auditUserId = projectTeamStaff1.getUserId();
- List<TFeasibilityStudyReport> total = feasibilityStudyReportService.lambdaQuery()
- .eq(TFeasibilityStudyReport::getStatus, 3)
- .eq(TFeasibilityStudyReport::getEvaluatePersonId, auditUserId).list();
- List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>();
- // 工艺可研
- TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO = new TResultWorkEvaluateDetailEngineerVO();
- List<TFeasibilityStudyReport> collect = total.stream().filter(e -> e.getReportType().equals(1)).collect(Collectors.toList());
- int tempDetail = 0;
- for (TFeasibilityStudyReport tFeasibilityStudyReport : collect) {
- if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) {
- for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
- tempDetail += Integer.parseInt(s);
- }
- }
- }
- tResultWorkEvaluateDetailEngineerVO.setCount(collect.size());
- tResultWorkEvaluateDetailEngineerVO.setIntegral(tempDetail);
- if (!collect.isEmpty()) {
- tResultWorkEvaluateDetailEngineerVO.setEndTime(collect.get(collect.size() - 1).getEvaluateTime());
- tResultWorkEvaluateDetailEngineerVO.setStartTime(projectTeam.getCreateTime());
- }
-
- tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO);
- // 工艺可行
- TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO1 = new TResultWorkEvaluateDetailEngineerVO();
- List<TFeasibilityStudyReport> collect1 = total.stream().filter(e -> e.getReportType().equals(2)).collect(Collectors.toList());
- int tempDetail1 = 0;
- for (TFeasibilityStudyReport tFeasibilityStudyReport : collect1) {
- if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) {
- for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
- tempDetail1 += Integer.parseInt(s);
- }
- }
- }
- tResultWorkEvaluateDetailEngineerVO1.setCount(collect1.size());
- tResultWorkEvaluateDetailEngineerVO1.setIntegral(tempDetail1);
- if (!collect1.isEmpty()) {
- tResultWorkEvaluateDetailEngineerVO1.setStartTime(collect1.get(0).getEvaluateTime());
-
- tResultWorkEvaluateDetailEngineerVO1.setEndTime(collect1.get(collect1.size() - 1).getEvaluateTime());
- }
-
- tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO1);
-
- // 开发阶段
- TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO2 = new TResultWorkEvaluateDetailEngineerVO();
- List<Integer> status = new ArrayList<>();
- status.add(-1);
- status.add(1);
- status.add(3);
- status.add(4);
- status.add(5);
- List<TProjectProposal> list2 = projectProposalService.lambdaQuery().eq(TProjectProposal::getCommitUserId, userId)
- .notIn(TProjectProposal::getAuditStatus, status).list();
- List<String> collect5 = list2.stream().filter(e -> e.getProjectStage().equals(1)).map(TProjectProposal::getId).collect(Collectors.toList());
- if (collect5.isEmpty()) {
- collect5.add("0");
- }
- List<TExperimentDispatch> experimentDispatches1 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect5)
- .notIn(TExperimentDispatch::getStatus, -1,1,3).list();
- List<String> collect6 = experimentDispatches1.stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
- if (collect6.isEmpty()) {
- collect6.add("0");
- }
- List<TResultWorkEvaluate> list1 = tResultWorkEvaluateService.lambdaQuery()
- .eq(TResultWorkEvaluate::getStatus, 1)
- .eq(TResultWorkEvaluate::getEvaluateType, 1)
- .in(TResultWorkEvaluate::getDispatchId, collect6).list();
- int tempDetail2 = 0;
- for (TResultWorkEvaluate tResultWorkEvaluate : list1) {
- Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
- switch (evaluateOne) {
- case 1:
- tempDetail2 += 2;
- break;
- case 2:
- tempDetail2 += 1;
- break;
- }
- Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
- switch (evaluateTwo) {
- case 1:
- tempDetail2 += 2;
- break;
- case 2:
- tempDetail2 += 1;
- break;
- }
- Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
- switch (evaluateThree) {
- case 1:
- tempDetail2 += 2;
- break;
- case 2:
- tempDetail2 += 1;
- break;
- }
- Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
- switch (evaluateFour) {
- case 1:
- tempDetail2 += 2;
- break;
- case 2:
- tempDetail2 += 1;
- break;
- }
- Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
- switch (evaluateFive) {
- case 1:
- tempDetail2 += 2;
- break;
- case 2:
- tempDetail2 += 1;
- break;
- }
- Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
- switch (evaluateSix) {
- case 1:
- tempDetail2 -= 3;
- break;
- }
- }
- if (!list1.isEmpty()) {
- tResultWorkEvaluateDetailEngineerVO2.setStartTime(list1.get(0).getEvaluateTime());
-
- tResultWorkEvaluateDetailEngineerVO2.setEndTime(list1.get(list1.size() - 1).getEvaluateTime());
- }
-
- tResultWorkEvaluateDetailEngineerVO2.setCount(experimentDispatches1.size());
- tResultWorkEvaluateDetailEngineerVO2.setIntegral(tempDetail2);
- tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO2);
-
- // 中试试验阶段
- TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO3 = new TResultWorkEvaluateDetailEngineerVO();
-
- List<String> collect7 = list2.stream().filter(e -> e.getProjectStage().equals(2)).map(TProjectProposal::getId).collect(Collectors.toList());
- if (collect7.isEmpty()) {
- collect7.add("0");
- }
- List<TExperimentDispatch> experimentDispatches2 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect7)
- .notIn(TExperimentDispatch::getStatus, -1,1,3).list();
- List<String> collect8 = experimentDispatches2.stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
- if (collect8.isEmpty()) {
- collect8.add("0");
- }
-
- List<TResultWorkEvaluate> list3 = tResultWorkEvaluateService.lambdaQuery()
- .eq(TResultWorkEvaluate::getStatus, 1)
- .eq(TResultWorkEvaluate::getEvaluateType, 1)
- .in(TResultWorkEvaluate::getDispatchId, collect8).list();
- int tempDetail3 = 0;
- for (TResultWorkEvaluate tResultWorkEvaluate : list3) {
- Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
- switch (evaluateOne) {
- case 1:
-
- tempDetail3 += 2;
- break;
- case 2:
- tempDetail3 += 1;
-
- break;
-
- }
- Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
- switch (evaluateTwo) {
- case 1:
- tempDetail3 += 2;
- break;
- case 2:
- tempDetail3 += 1;
-
- break;
- }
- Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
- switch (evaluateThree) {
- case 1:
- tempDetail3 += 2;
-
- break;
- case 2:
- tempDetail3 += 1;
- break;
- }
- Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
- switch (evaluateFour) {
- case 1:
- tempDetail3 += 2;
-
- break;
- case 2:
- tempDetail3 += 1;
- break;
- }
- Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
- switch (evaluateFive) {
- case 1:
- tempDetail3 += 2;
-
- break;
- case 2:
- tempDetail3 += 1;
- break;
- }
- Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
- switch (evaluateSix) {
- case 1:
- tempDetail3 -= 3;
- break;
- }
- }
- if (!list3.isEmpty()) {
- tResultWorkEvaluateDetailEngineerVO3.setStartTime(list3.get(0).getEvaluateTime());
- tResultWorkEvaluateDetailEngineerVO3.setEndTime(list3.get(list3.size() - 1).getEvaluateTime());
- }
- tResultWorkEvaluateDetailEngineerVO3.setCount(experimentDispatches2.size());
- tResultWorkEvaluateDetailEngineerVO3.setIntegral(tempDetail3);
- tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO3);
- // 验证试验阶段
- TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO4 = new TResultWorkEvaluateDetailEngineerVO();
-
- List<String> collect10 = list2.stream().filter(e -> e.getProjectStage().equals(3)).map(TProjectProposal::getId).collect(Collectors.toList());
- if (collect10.isEmpty()) {
- collect10.add("0");
- }
- List<TExperimentDispatch> experimentDispatches3 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect10)
- .notIn(TExperimentDispatch::getStatus, -1,1,3).list();
- List<String> collect11 = experimentDispatches3.stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
- if (collect11.isEmpty()) {
- collect11.add("0");
- }
- List<TResultWorkEvaluate> list4 = tResultWorkEvaluateService.lambdaQuery()
- .eq(TResultWorkEvaluate::getStatus, 1)
- .eq(TResultWorkEvaluate::getEvaluateType, 1)
- .in(TResultWorkEvaluate::getDispatchId, collect11).list();
- int tempDetail4 = 0;
- for (TResultWorkEvaluate tResultWorkEvaluate : list4) {
- Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
- switch (evaluateOne) {
- case 1:
-
- tempDetail4 += 2;
- break;
- case 2:
- tempDetail4 += 1;
-
- break;
-
- }
- Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
- switch (evaluateTwo) {
- case 1:
- tempDetail4 += 2;
- break;
- case 2:
- tempDetail4 += 1;
-
- break;
- }
- Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
- switch (evaluateThree) {
- case 1:
- tempDetail4 += 2;
-
- break;
- case 2:
- tempDetail4 += 1;
- break;
- }
- Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
- switch (evaluateFour) {
- case 1:
- tempDetail4 += 2;
-
- break;
- case 2:
- tempDetail4 += 1;
- break;
- }
- Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
- switch (evaluateFive) {
- case 1:
- tempDetail4 += 2;
-
- break;
- case 2:
- tempDetail4 += 1;
- break;
- }
- Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
- switch (evaluateSix) {
- case 1:
- tempDetail4 -= 3;
- break;
- }
- }
- if (!list4.isEmpty()) {
- tResultWorkEvaluateDetailEngineerVO4.setStartTime(list4.get(0).getEvaluateTime());
- tResultWorkEvaluateDetailEngineerVO4.setEndTime(list4.get(list4.size() - 1).getEvaluateTime());
- }
- tResultWorkEvaluateDetailEngineerVO4.setCount(experimentDispatches3.size());
- tResultWorkEvaluateDetailEngineerVO4.setIntegral(tempDetail4);
- tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO4);
- // 工艺开发工具
- TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO5 = new TResultWorkEvaluateDetailEngineerVO();
- List<TFeasibilityStudyReport> collect12 = total.stream().filter(e -> e.getReportType().equals(3)).collect(Collectors.toList());
- int tempDetail15 = 0;
- for (TFeasibilityStudyReport tFeasibilityStudyReport : collect12) {
- if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) {
- for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
- tempDetail15 += Integer.parseInt(s);
- }
- }
- }
- tResultWorkEvaluateDetailEngineerVO5.setCount(collect12.size());
- tResultWorkEvaluateDetailEngineerVO5.setIntegral(tempDetail15);
- if (!collect12.isEmpty()) {
- tResultWorkEvaluateDetailEngineerVO5.setStartTime(collect12.get(0).getEvaluateTime());
- tResultWorkEvaluateDetailEngineerVO5.setEndTime(collect12.get(collect12.size() - 1).getEvaluateTime());
- }
- tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO5);
- // 验证与发布
- TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO6 = new TResultWorkEvaluateDetailEngineerVO();
- List<TFeasibilityStudyReport> collect13 = total.stream().filter(e -> e.getReportType().equals(4)).collect(Collectors.toList());
- int tempDetail16 = 0;
- for (TFeasibilityStudyReport tFeasibilityStudyReport : collect13) {
- if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) {
- for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
- tempDetail16 += Integer.parseInt(s);
- }
- }
- }
- tResultWorkEvaluateDetailEngineerVO6.setCount(collect13.size());
- tResultWorkEvaluateDetailEngineerVO6.setIntegral(tempDetail16);
- if (!collect13.isEmpty()) {
- tResultWorkEvaluateDetailEngineerVO6.setStartTime(collect13.get(0).getEvaluateTime());
- tResultWorkEvaluateDetailEngineerVO6.setEndTime(collect13.get(collect13.size() - 1).getEvaluateTime());
- }
- tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO6);
- // 立项报告
- List<TProjectApprovalReport> list5 = projectApprovalReportService.lambdaQuery().orderByDesc(BaseModel::getCreateTime).eq(TProjectApprovalReport::getTeamId, projectTeam.getId()).eq(TProjectApprovalReport::getStatus, 2).list();
- TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO7 = new TResultWorkEvaluateDetailEngineerVO();
- tResultWorkEvaluateDetailEngineerVO7.setCount(list5.size());
- if (!list5.isEmpty()) {
- tResultWorkEvaluateDetailEngineerVO7.setStartTime(list5.get(0).getAuditTime());
- tResultWorkEvaluateDetailEngineerVO7.setEndTime(list5.get(list5.size() - 1).getAuditTime());
- }
- tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO7);
- // 临床试验积分
- List<TClinicalTrialPoints> list6 = clinicalTrialPointsService.lambdaQuery()
- .eq(TClinicalTrialPoints::getProcessEngineerId, userId)
- .eq(TClinicalTrialPoints::getTeamId, projectTeam.getId()).list();
- TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO8 = new TResultWorkEvaluateDetailEngineerVO();
- tResultWorkEvaluateDetailEngineerVO8.setCount(list6.size());
- if (!list6.isEmpty()) {
- tResultWorkEvaluateDetailEngineerVO8.setStartTime(list6.get(0).getCreateTime());
- tResultWorkEvaluateDetailEngineerVO8.setEndTime(list6.get(list6.size() - 1).getCreateTime());
- tResultWorkEvaluateDetailEngineerVO8.setIntegral(list6.get(0).getEvaluateScore());
- }
- tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO8);
- tResultWorkEvaluateDetailVO.setEngineerList(tResultWorkEvaluateDetailEngineerVOS);
- return R.ok(tResultWorkEvaluateDetailVO);
+ return R.ok(engineerEvaluateDetail);
}
@ApiOperation(value = "查看详情-左侧数据-化验师工作内容评定")
@@ -944,7 +485,6 @@
}
}
-
// List<TFeasibilityStudyReport> total = feasibilityStudyReportService.lambdaQuery()
// .eq(TFeasibilityStudyReport::getStatus, 3)
// .eq(TFeasibilityStudyReport::getTeamId, resultWorkEvaluate.getTeamId()).list();
@@ -952,286 +492,19 @@
List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>();
TResultWorkEvaluateDetailUserVO tResultWorkEvaluateDetailUserVO = new TResultWorkEvaluateDetailUserVO();
tResultWorkEvaluateDetailUserVO.setUserName(sysUser.getNickName());
+
// 开发阶段
- List<TResultWorkEvaluate> list1 = tResultWorkEvaluateService.lambdaQuery()
- .eq(TResultWorkEvaluate::getEvaluateType, 2)
- .eq(TResultWorkEvaluate::getStatus, 1)
+ //查询当前team的实验结果评定 集合
+ List<TResultWorkEvaluate> tResultWorkEvaluateList = tResultWorkEvaluateService.lambdaQuery()
.eq(TResultWorkEvaluate::getUserId, sysUser.getUserId())
- .eq(TResultWorkEvaluate::getTeamId, resultWorkEvaluate.getTeamId()).list();
- // 调度ids
- List<String> collect = list1.stream().map(TResultWorkEvaluate::getDispatchId).distinct().collect(Collectors.toList());
- if (collect.isEmpty()) {
- collect.add("0");
- }
- TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO2 = new TResultWorkEvaluateDetailEngineerVO();
- List<Integer> status = new ArrayList<>();
- status.add(-1);
- status.add(1);
- status.add(3);
- status.add(4);
- status.add(5);
- // 课题方案ids
- List<TExperimentDispatch> experimentDispatches1 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getId, collect)
- .notIn(TExperimentDispatch::getStatus, -1,1,3).list();
- List<String> collect6 = experimentDispatches1.stream().map(TExperimentDispatch::getProposalId).distinct().collect(Collectors.toList());
- if (collect6.isEmpty()) {
- collect6.add("0");
- }
- List<TProjectProposal> list2 = projectProposalService.lambdaQuery().in(TProjectProposal::getId, collect6)
- .notIn(TProjectProposal::getAuditStatus, status)
+ .eq(TResultWorkEvaluate::getTeamId, projectTeam.getId())
+ .eq(TResultWorkEvaluate::getEvaluateType, 1)//工艺工程师
+ .eq(TResultWorkEvaluate::getDisabled, 0)//未删除
+ .orderByAsc(TResultWorkEvaluate::getEvaluateTime)
.list();
- List<String> collect5 = list2.stream().filter(e -> e.getProjectStage().equals(1)).map(TProjectProposal::getId).distinct().collect(Collectors.toList());
- if (collect5.isEmpty()) {
- collect5.add("0");
- }
- // 开发阶段调度ids
- List<String> collect1 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect5)
- .list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
- if (collect1.isEmpty()) {
- collect1.add("0");
- }
- List<TResultWorkEvaluate> collect2 = list1.stream().filter(e -> collect1.contains(e.getDispatchId())).collect(Collectors.toList());
- int tempDetail2 = 0;
- for (TResultWorkEvaluate tResultWorkEvaluate : collect2) {
- Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
- switch (evaluateOne) {
- case 1:
- tempDetail2 += 2;
- break;
- case 2:
- tempDetail2 += 1;
+ workEvaluateCalculateService.getThreeScope(tResultWorkEvaluateList, tResultWorkEvaluateDetailEngineerVOS);
- break;
-
- }
- Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
- switch (evaluateTwo) {
- case 1:
- tempDetail2 += 2;
- break;
- case 2:
- tempDetail2 += 1;
-
- break;
- }
- Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
- switch (evaluateThree) {
- case 1:
- tempDetail2 += 2;
-
- break;
- case 2:
- tempDetail2 += 1;
- break;
- }
- Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
- switch (evaluateFour) {
- case 1:
- tempDetail2 += 2;
-
- break;
- case 2:
- tempDetail2 += 1;
- break;
- }
- Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
- switch (evaluateFive) {
- case 1:
- tempDetail2 += 2;
-
- break;
- case 2:
- tempDetail2 += 1;
- break;
- }
- Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
- switch (evaluateSix) {
- case 1:
- tempDetail2 -= 3;
- break;
- }
- }
- if (!collect2.isEmpty()) {
- tResultWorkEvaluateDetailEngineerVO2.setEndTime(collect2.get(collect2.size() - 1).getEvaluateTime());
- tResultWorkEvaluateDetailEngineerVO2.setStartTime(collect2.get(0).getEvaluateTime());
-
- }
- tResultWorkEvaluateDetailEngineerVO2.setCount(experimentDispatches1.size());
- tResultWorkEvaluateDetailEngineerVO2.setIntegral(tempDetail2);
- tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO2);
-
- // 中试试验阶段
- TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO3 = new TResultWorkEvaluateDetailEngineerVO();
- List<String> collect7 = list2.stream().filter(e -> e.getProjectStage().equals(2)).map(TProjectProposal::getId).collect(Collectors.toList());
- if (collect7.isEmpty()) {
- collect7.add("0");
- }
- List<TExperimentDispatch> experimentDispatches2 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect7)
- .notIn(TExperimentDispatch::getStatus, -1,1,3).list();
- List<String> collect8 = experimentDispatches2.stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
- if (collect8.isEmpty()) {
- collect8.add("0");
- }
- List<TResultWorkEvaluate> list3 = tResultWorkEvaluateService.lambdaQuery()
- .eq(TResultWorkEvaluate::getStatus, 1)
- .eq(TResultWorkEvaluate::getEvaluateType, 2)
- .eq(TResultWorkEvaluate::getUserId, sysUser.getUserId())
- .in(TResultWorkEvaluate::getDispatchId, collect8).list();
- int tempDetail3 = 0;
- for (TResultWorkEvaluate tResultWorkEvaluate : list3) {
- Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
- switch (evaluateOne) {
- case 1:
-
- tempDetail3 += 2;
- break;
- case 2:
- tempDetail3 += 1;
-
- break;
-
- }
- Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
- switch (evaluateTwo) {
- case 1:
- tempDetail3 += 2;
- break;
- case 2:
- tempDetail3 += 1;
-
- break;
- }
- Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
- switch (evaluateThree) {
- case 1:
- tempDetail3 += 2;
-
- break;
- case 2:
- tempDetail3 += 1;
- break;
- }
- Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
- switch (evaluateFour) {
- case 1:
- tempDetail3 += 2;
-
- break;
- case 2:
- tempDetail3 += 1;
- break;
- }
- Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
- switch (evaluateFive) {
- case 1:
- tempDetail3 += 2;
-
- break;
- case 2:
- tempDetail3 += 1;
- break;
- }
- Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
- switch (evaluateSix) {
- case 1:
- tempDetail3 -= 3;
- break;
- }
- }
- if (!list3.isEmpty()) {
- tResultWorkEvaluateDetailEngineerVO3.setStartTime(list3.get(0).getEvaluateTime());
- tResultWorkEvaluateDetailEngineerVO3.setEndTime(list3.get(list3.size() - 1).getEvaluateTime());
- }
- tResultWorkEvaluateDetailEngineerVO3.setCount(experimentDispatches2.size());
- tResultWorkEvaluateDetailEngineerVO3.setIntegral(tempDetail3);
- tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO3);
- // 验证试验阶段
- TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO4 = new TResultWorkEvaluateDetailEngineerVO();
-
- List<String> collect10 = list2.stream().filter(e -> e.getProjectStage().equals(3)).map(TProjectProposal::getId).collect(Collectors.toList());
- if (collect10.isEmpty()) {
- collect10.add("0");
- }
- List<TExperimentDispatch> experimentDispatches3 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect10)
- .notIn(TExperimentDispatch::getStatus, -1,1,3).list();
- List<String> collect11 = experimentDispatches3.stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
- if (collect11.isEmpty()) {
- collect11.add("0");
- }
- List<TResultWorkEvaluate> list4 = tResultWorkEvaluateService.lambdaQuery()
- .eq(TResultWorkEvaluate::getStatus, 1)
- .eq(TResultWorkEvaluate::getEvaluateType, 2)
- .eq(TResultWorkEvaluate::getUserId, sysUser.getUserId())
- .in(TResultWorkEvaluate::getDispatchId, collect11).list();
- int tempDetail4 = 0;
- for (TResultWorkEvaluate tResultWorkEvaluate : list4) {
- Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
- switch (evaluateOne) {
- case 1:
-
- tempDetail4 += 2;
- break;
- case 2:
- tempDetail4 += 1;
-
- break;
-
- }
- Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
- switch (evaluateTwo) {
- case 1:
- tempDetail4 += 2;
- break;
- case 2:
- tempDetail4 += 1;
-
- break;
- }
- Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
- switch (evaluateThree) {
- case 1:
- tempDetail4 += 2;
-
- break;
- case 2:
- tempDetail4 += 1;
- break;
- }
- Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
- switch (evaluateFour) {
- case 1:
- tempDetail4 += 2;
-
- break;
- case 2:
- tempDetail4 += 1;
- break;
- }
- Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
- switch (evaluateFive) {
- case 1:
- tempDetail4 += 2;
-
- break;
- case 2:
- tempDetail4 += 1;
- break;
- }
- Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
- switch (evaluateSix) {
- case 1:
- tempDetail4 -= 3;
- break;
- }
- }
- if (!list4.isEmpty()) {
- tResultWorkEvaluateDetailEngineerVO4.setStartTime(list4.get(0).getEvaluateTime());
- tResultWorkEvaluateDetailEngineerVO4.setEndTime(list4.get(list4.size() - 1).getEvaluateTime());
- }
- tResultWorkEvaluateDetailEngineerVO4.setCount(experimentDispatches3.size());
- tResultWorkEvaluateDetailEngineerVO4.setIntegral(tempDetail4);
- tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO4);
// 项目检测项评定
TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO9 = new TResultWorkEvaluateDetailEngineerVO();
List<TQaTestItem> list5 = qaTestItemService.lambdaQuery()
@@ -1345,283 +618,18 @@
TResultWorkEvaluateDetailUserVO tResultWorkEvaluateDetailUserVO = new TResultWorkEvaluateDetailUserVO();
tResultWorkEvaluateDetailUserVO.setUserName(sysUser.getNickName());
// 开发阶段
- List<TResultWorkEvaluate> list1 = tResultWorkEvaluateService.lambdaQuery()
- .eq(TResultWorkEvaluate::getEvaluateType, 3)
- .eq(TResultWorkEvaluate::getStatus, 1)
+
+ //查询当前team的实验结果评定 集合
+ List<TResultWorkEvaluate> tResultWorkEvaluateList = tResultWorkEvaluateService.lambdaQuery()
.eq(TResultWorkEvaluate::getUserId, sysUser.getUserId())
- .eq(TResultWorkEvaluate::getTeamId, resultWorkEvaluate.getTeamId()).list();
- // 调度ids
- List<String> collect = list1.stream().map(TResultWorkEvaluate::getDispatchId).collect(Collectors.toList());
- if (collect.isEmpty()) {
- collect.add("0");
- }
- TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO2 = new TResultWorkEvaluateDetailEngineerVO();
- List<Integer> status = new ArrayList<>();
- status.add(-1);
- status.add(1);
- status.add(3);
- status.add(4);
- status.add(5);
- // 课题方案ids
- List<TExperimentDispatch> experimentDispatches1 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getId, collect)
- .notIn(TExperimentDispatch::getStatus, -1,1,3).list();
- List<String> collect6 = experimentDispatches1.stream().map(TExperimentDispatch::getProposalId).collect(Collectors.toList());
- if (collect6.isEmpty()) {
- collect6.add("0");
- }
- List<TProjectProposal> list2 = projectProposalService.lambdaQuery().in(TProjectProposal::getId, collect6)
- .notIn(TProjectProposal::getAuditStatus, status).list();
- List<String> collect5 = list2.stream().filter(e -> e.getProjectStage().equals(1)).map(TProjectProposal::getId).collect(Collectors.toList());
- if (collect5.isEmpty()) {
- collect5.add("0");
- }
- // 开发阶段调度ids
- List<String> collect1 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect5).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
- if (collect1.isEmpty()) {
- collect1.add("0");
- }
- List<TResultWorkEvaluate> collect2 = list1.stream().filter(e -> collect1.contains(e.getDispatchId())).collect(Collectors.toList());
- int tempDetail2 = 0;
- for (TResultWorkEvaluate tResultWorkEvaluate : collect2) {
- Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
- switch (evaluateOne) {
- case 1:
+ .eq(TResultWorkEvaluate::getTeamId, projectTeam.getId())
+ .eq(TResultWorkEvaluate::getEvaluateType, 1)//工艺工程师
+ .eq(TResultWorkEvaluate::getDisabled, 0)//未删除
+ .orderByAsc(TResultWorkEvaluate::getEvaluateTime)
+ .list();
- tempDetail2 += 2;
- break;
- case 2:
- tempDetail2 += 1;
+ workEvaluateCalculateService.getThreeScope(tResultWorkEvaluateList, tResultWorkEvaluateDetailEngineerVOS);
- break;
-
- }
- Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
- switch (evaluateTwo) {
- case 1:
- tempDetail2 += 2;
- break;
- case 2:
- tempDetail2 += 1;
-
- break;
- }
- Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
- switch (evaluateThree) {
- case 1:
- tempDetail2 += 2;
-
- break;
- case 2:
- tempDetail2 += 1;
- break;
- }
- Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
- switch (evaluateFour) {
- case 1:
- tempDetail2 += 2;
-
- break;
- case 2:
- tempDetail2 += 1;
- break;
- }
- Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
- switch (evaluateFive) {
- case 1:
- tempDetail2 += 2;
-
- break;
- case 2:
- tempDetail2 += 1;
- break;
- }
- Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
- switch (evaluateSix) {
- case 1:
-
- tempDetail2 -= 3;
- break;
- }
- }
- if (!list1.isEmpty()) {
- tResultWorkEvaluateDetailEngineerVO2.setEndTime(list1.get(list1.size() - 1).getEvaluateTime());
- }
- tResultWorkEvaluateDetailEngineerVO2.setStartTime(projectTeam.getCreateTime());
- tResultWorkEvaluateDetailEngineerVO2.setCount(experimentDispatches1.size());
- tResultWorkEvaluateDetailEngineerVO2.setIntegral(tempDetail2);
- tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO2);
-
- // 中试试验阶段
- TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO3 = new TResultWorkEvaluateDetailEngineerVO();
- List<String> collect7 = list2.stream().filter(e -> e.getProjectStage().equals(2)).map(TProjectProposal::getId).collect(Collectors.toList());
- if (collect7.isEmpty()) {
- collect7.add("0");
- }
- List<TExperimentDispatch> experimentDispatches2 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect7)
- .notIn(TExperimentDispatch::getStatus, -1,2,3).list();
- List<String> collect8 = experimentDispatches2.stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
- if (collect8.isEmpty()) {
- collect8.add("0");
- }
- List<TResultWorkEvaluate> list3 = tResultWorkEvaluateService.lambdaQuery()
- .eq(TResultWorkEvaluate::getStatus, 1)
- .eq(TResultWorkEvaluate::getEvaluateType, 3)
- .eq(TResultWorkEvaluate::getUserId, sysUser.getUserId())
- .in(TResultWorkEvaluate::getDispatchId, collect8).list();
- int tempDetail3 = 0;
- for (TResultWorkEvaluate tResultWorkEvaluate : list3) {
- Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
- switch (evaluateOne) {
- case 1:
-
- tempDetail3 += 2;
- break;
- case 2:
- tempDetail3 += 1;
-
- break;
-
- }
- Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
- switch (evaluateTwo) {
- case 1:
- tempDetail3 += 2;
- break;
- case 2:
- tempDetail3 += 1;
-
- break;
- }
- Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
- switch (evaluateThree) {
- case 1:
- tempDetail3 += 2;
-
- break;
- case 2:
- tempDetail3 += 1;
- break;
- }
- Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
- switch (evaluateFour) {
- case 1:
- tempDetail3 += 2;
-
- break;
- case 2:
- tempDetail3 += 1;
- break;
- }
- Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
- switch (evaluateFive) {
- case 1:
- tempDetail3 += 2;
-
- break;
- case 2:
- tempDetail3 += 1;
- break;
- }
- Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
- switch (evaluateSix) {
- case 1:
- tempDetail3 -= 3;
- break;
- }
- }
- if (!list3.isEmpty()) {
- tResultWorkEvaluateDetailEngineerVO3.setStartTime(list3.get(0).getEvaluateTime());
- tResultWorkEvaluateDetailEngineerVO3.setEndTime(list3.get(list3.size() - 1).getEvaluateTime());
- }
- tResultWorkEvaluateDetailEngineerVO3.setCount(experimentDispatches2.size());
- tResultWorkEvaluateDetailEngineerVO3.setIntegral(tempDetail3);
- tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO3);
- // 验证试验阶段
- TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO4 = new TResultWorkEvaluateDetailEngineerVO();
-
- List<String> collect10 = list2.stream().filter(e -> e.getProjectStage().equals(2)).map(TProjectProposal::getId).collect(Collectors.toList());
- if (collect10.isEmpty()) {
- collect10.add("0");
- }
- List<TExperimentDispatch> experimentDispatches3 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect10)
- .notIn(TExperimentDispatch::getStatus, -1,1,3).list();
- List<String> collect11 = experimentDispatches3.stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
- if (collect11.isEmpty()) {
- collect11.add("0");
- }
- List<TResultWorkEvaluate> list4 = tResultWorkEvaluateService.lambdaQuery()
- .eq(TResultWorkEvaluate::getStatus, 1)
- .eq(TResultWorkEvaluate::getEvaluateType, 3)
- .eq(TResultWorkEvaluate::getUserId, sysUser.getUserId())
- .in(TResultWorkEvaluate::getDispatchId, collect11).list();
- int tempDetail4 = 0;
- for (TResultWorkEvaluate tResultWorkEvaluate : list4) {
- Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
- switch (evaluateOne) {
- case 1:
-
- tempDetail4 += 2;
- break;
- case 2:
- tempDetail4 += 1;
-
- break;
-
- }
- Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
- switch (evaluateTwo) {
- case 1:
- tempDetail4 += 2;
- break;
- case 2:
- tempDetail4 += 1;
-
- break;
- }
- Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
- switch (evaluateThree) {
- case 1:
- tempDetail4 += 2;
-
- break;
- case 2:
- tempDetail4 += 1;
- break;
- }
- Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
- switch (evaluateFour) {
- case 1:
- tempDetail4 += 2;
-
- break;
- case 2:
- tempDetail4 += 1;
- break;
- }
- Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
- switch (evaluateFive) {
- case 1:
- tempDetail4 += 2;
-
- break;
- case 2:
- tempDetail4 += 1;
- break;
- }
- Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
- switch (evaluateSix) {
- case 1:
- tempDetail4 -= 3;
- break;
- }
- }
- if (!list4.isEmpty()) {
- tResultWorkEvaluateDetailEngineerVO4.setStartTime(list4.get(0).getEvaluateTime());
- tResultWorkEvaluateDetailEngineerVO4.setEndTime(list4.get(list4.size() - 1).getEvaluateTime());
- }
- tResultWorkEvaluateDetailEngineerVO4.setCount(experimentDispatches3.size());
- tResultWorkEvaluateDetailEngineerVO4.setIntegral(tempDetail4);
- tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO4);
// 其他任务
List<TTesterOtherTask> list = tTesterOtherTaskService.lambdaQuery().eq(TTesterOtherTask::getTesterId, sysUser.getUserId()).list();
TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO5 = new TResultWorkEvaluateDetailEngineerVO();
@@ -1643,5 +651,6 @@
tResultWorkEvaluateDetailVO.setTesterList(tResultWorkEvaluateDetailUserVOS);
return R.ok(tResultWorkEvaluateDetailVO);
}
+
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSamplingRecordController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSamplingRecordController.java
index ad1ee7e..3afd72c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSamplingRecordController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSamplingRecordController.java
@@ -335,6 +335,7 @@
TProjectProposal projectProposal = projectProposalService.getById(experimentDispatch.getProposalId());
if(Objects.nonNull(projectProposal)){
experimentDispatch.setProjectName(projectProposal.getProjectName());
+ experimentDispatch.setProjectCode(projectProposal.getProjectCode());
}
}
samplingRecordVO.setExperimentDispatch(experimentDispatch);
@@ -350,8 +351,8 @@
@DeleteMapping(value = "/open/t-sampling-record/deleteById")
public R<Boolean> deleteById(@RequestParam String id) {
// 删除取样操作记录
- samplingRecordOperationService.remove(Wrappers.lambdaQuery(TSamplingRecordOperation.class).eq(TSamplingRecordOperation::getSamplingId, id));
- return R.ok(samplingRecordService.removeById(id));
+ samplingRecordOperationService.removeById(id);
+ return R.ok();
}
/**
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java
index 6e2519c..a8a1e74 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java
@@ -9,6 +9,7 @@
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.enums.QATestItemReportStatusEnum;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.TTestMethodConfirmSheetDTO;
import com.ruoyi.system.dto.TestMethodConfirmSheetSignDTO;
@@ -207,7 +208,12 @@
@ApiOperation(value = "修改检验方法确认单")
@PostMapping(value = "/api/t-test-method-confirm-sheet/update")
public R<Boolean> update(@RequestBody String param) {
- TTestMethodConfirmSheetDTO dto = JSON.parseObject(param,TTestMethodConfirmSheetDTO.class);
+ TTestMethodConfirmSheetDTO dto = JSON.parseObject(param, TTestMethodConfirmSheetDTO.class);
+
+ if (SecurityUtils.isAdmin(SecurityUtils.getUserId())){
+ dto.setAuditStatus(null);
+ }
+
testMethodConfirmSheetService.updateById(dto);
List<TTestMethodConfirmSheetTerm> list = testMethodConfirmSheetTermService.list(Wrappers.lambdaQuery(TTestMethodConfirmSheetTerm.class)
.eq(TTestMethodConfirmSheetTerm::getTestId, dto.getId()));
@@ -221,7 +227,9 @@
List<TTestMethodConfirmSheetTerm> testMethodConfirmSheetTerms = dto.getTestMethodConfirmSheetTerms();
testMethodConfirmSheetTerms.forEach(testMethodConfirmSheetTerm -> {
testMethodConfirmSheetTerm.setTestId(dto.getId());
- testMethodConfirmSheetTerm.setStatus(1);
+ if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())) {
+ testMethodConfirmSheetTerm.setStatus(1);
+ }
});
testMethodConfirmSheetTermService.saveBatch(testMethodConfirmSheetTerms);
// 查询调度的参与人员
@@ -255,7 +263,7 @@
// testMethodConfirmSheetOriginalService.save(testMethodConfirmSheetOriginal);
// }
- if (dto.getAuditStatus() != -1){
+ if (dto.getAuditStatus() != null && dto.getAuditStatus() != -1){
// MESSAGE 添加消息
TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
.eq(TProjectTeamStaff::getTeamId, projectTeam.getId())
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetOriginalController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetOriginalController.java
index 1adeb47..b0b30c4 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetOriginalController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetOriginalController.java
@@ -172,6 +172,15 @@
return R.ok();
}
+ @Log(title = "检验方法确认单信息-删除检验方法确认单", businessType = BusinessType.UPDATE)
+ @ApiOperation(value = "删除检验方法确认单")
+ @PostMapping(value = "/api/t-test-method-confirm-sheet-original/delete")
+ public R<Boolean> delete(@RequestParam String id) {
+ testMethodConfirmSheetOriginalService.removeById(id);
+ testMethodConfirmSheetOriginalDataService.remove(Wrappers.lambdaQuery(TTestMethodConfirmSheetOriginalData.class).eq(TTestMethodConfirmSheetOriginalData::getOriginalId, id));
+ return R.ok();
+ }
+
/**
* 查看检验方法确认单详情
*/
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 73288d2..44538c1 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
@@ -8,6 +8,7 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.TTesterOtherTaskDTO;
import com.ruoyi.system.mapper.SysUserMapper;
@@ -135,6 +136,11 @@
BeanUtils.copyProperties(testerOtherTask, testerOtherTaskVO);
// 查询项目组信息
TProjectTeam projectTeam = projectTeamService.getById(testerOtherTask.getTeamId());
+
+ if (projectTeam == null) {
+ throw new ServiceException("当前实验任务的项目组不存在");
+ }
+
TProjectTeamVO projectTeamVO = new TProjectTeamVO();
BeanUtils.copyProperties(projectTeam, projectTeamVO);
// 查询项目组成员
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/FileController.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/FileController.java
index c0c65ce..08ea3ab 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/FileController.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/FileController.java
@@ -38,6 +38,7 @@
}
String TimeDir =new SimpleDateFormat("yyyy-MM-dd").format(new Date());
// String realPath = fileUploadConfig.getLocation() + TimeDir;
+// String realPath = "C:\\file\\laboratory\\" + TimeDir;
String realPath = "F:\\file\\laboratory\\" + TimeDir;
File file = new File(realPath);
// 没有目录就创建
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/CustomRequestWrapper.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/CustomRequestWrapper.java
index 3989a61..8256179 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/CustomRequestWrapper.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/CustomRequestWrapper.java
@@ -1,75 +1,78 @@
package com.ruoyi.common.filter;
-
import javax.servlet.ReadListener;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
+import java.io.*;
+import java.nio.charset.StandardCharsets;
+/**
+ * 解决服务器字符集问题
+ *
+ * @author 文敏杰
+ * @date 2026/06/25
+ */
public class CustomRequestWrapper extends HttpServletRequestWrapper {
- private final String body;
- /**
- * 构造函数,用于创建自定义请求包装器。
- *
- * @param request 原始 HTTP 请求对象
- * @param body 新的请求体内容
- * @throws IOException 如果读取或处理请求体时发生错误
- */
- public CustomRequestWrapper(HttpServletRequest request, String body) throws IOException {
+ private final byte[] body;
+
+ public CustomRequestWrapper(HttpServletRequest request, String body) {
super(request);
- this.body = body;
+ this.body = body.getBytes(StandardCharsets.UTF_8);
}
- /**
- * 重写 getInputStream 方法,返回一个新的 ServletInputStream,
- * 其中包含修改后的请求体内容。
- *
- * @return 包含修改后请求体内容的 ServletInputStream
- * @throws IOException 如果读取输入流时发生错误
- */
@Override
- public ServletInputStream getInputStream() throws IOException {
- final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(body.getBytes());
+ public ServletInputStream getInputStream() {
+
+ ByteArrayInputStream bis =
+ new ByteArrayInputStream(body);
+
return new ServletInputStream() {
+
+ @Override
+ public int read() {
+ return bis.read();
+ }
+
@Override
public boolean isFinished() {
- // 返回是否已经完成读取
- return false;
+ return bis.available() == 0;
}
@Override
public boolean isReady() {
- // 返回是否准备好读取数据
- return false;
+ return true;
}
@Override
public void setReadListener(ReadListener readListener) {
- // 设置读监听器,这里不需要实现
- }
-
- @Override
- public int read() throws IOException {
- // 从字节数组输入流中读取下一个字节
- return byteArrayInputStream.read();
}
};
}
- /**
- * 重写 getReader 方法,返回一个新的 BufferedReader,
- * 其中包含修改后的请求体内容。
- *
- * @return 包含修改后请求体内容的 BufferedReader
- * @throws IOException 如果读取输入流时发生错误
- */
@Override
- public BufferedReader getReader() throws IOException {
- return new BufferedReader(new InputStreamReader(this.getInputStream()));
+ public BufferedReader getReader() {
+ return new BufferedReader(
+ new InputStreamReader(
+ getInputStream(),
+ StandardCharsets.UTF_8
+ )
+ );
}
-}
+
+ @Override
+ public String getCharacterEncoding() {
+ return StandardCharsets.UTF_8.name();
+ }
+
+ @Override
+ public int getContentLength() {
+ return body.length;
+ }
+
+ @Override
+ public long getContentLengthLong() {
+ return body.length;
+ }
+}
\ No newline at end of file
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/SmCryptoFilter.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/SmCryptoFilter.java
index fc9814b..4cc25e7 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/SmCryptoFilter.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/SmCryptoFilter.java
@@ -12,6 +12,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.rmi.ServerException;
public class SmCryptoFilter implements Filter {
@@ -24,8 +25,14 @@
HttpServletResponse httpResponse = (HttpServletResponse) response;
try {
+ // 设置请求和响应的编码为 UTF-8
+ request.setCharacterEncoding("UTF-8");
+ response.setCharacterEncoding("UTF-8");
+ response.setContentType("application/json;charset=UTF-8");
+
// 对请求进行解密
String decryptedRequestBody = decryptRequest(httpRequest);
+ logger.info("解密后数据={}", decryptedRequestBody);
// 处理解密后的请求体 CustomRequestWrapper为自定义请求包装器,请看下面实现
CustomRequestWrapper customRequestWrapper = new CustomRequestWrapper(httpRequest, decryptedRequestBody);
@@ -35,7 +42,7 @@
// 获取并加密响应内容
byte[] content = responseWrapper.getContentAsByteArray();
- String originalResponseBody = new String(content);
+ String originalResponseBody = new String(content, StandardCharsets.UTF_8); // 关键修改
String encryptedResponseBody = encryptResponse(originalResponseBody);
responseWrapper.setContentType("application/json");
@@ -67,16 +74,25 @@
* @throws IOException 如果读取或解密过程中发生错误
*/
private String decryptRequest(HttpServletRequest request) throws IOException {
+ // 先设置编码
+ request.setCharacterEncoding("UTF-8");
+
+ // 使用Reader读取,但确保使用了正确的编码
StringBuilder jb = new StringBuilder();
String line;
- BufferedReader reader = request.getReader();
- while ((line = reader.readLine()) != null) {
- jb.append(line);
+ // 直接使用getReader(),此时应该使用UTF-8
+ try (BufferedReader reader = request.getReader()) {
+ while ((line = reader.readLine()) != null) {
+ jb.append(line);
+ }
}
+
+ String requestBody = jb.toString();
try {
- return Sm4Utils.sm4DecryptUtil(jb.toString());
+ return Sm4Utils.sm4DecryptUtil(requestBody);
} catch (Exception e) {
- throw new ServerException("参数解密失败:{}", e);
+ logger.error("参数解密失败,原始数据:{}", requestBody);
+ throw new ServerException("参数解密失败", e);
}
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelHandlerAdapter.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelHandlerAdapter.java
index 4c189fd..04f21bd 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelHandlerAdapter.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelHandlerAdapter.java
@@ -1,8 +1,6 @@
package com.ruoyi.common.utils.poi;
-import javafx.scene.control.Cell;
-
/**
* Excel数据格式处理适配器
*
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/EvaluateResult.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/EvaluateResult.java
new file mode 100644
index 0000000..aa63dfe
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/EvaluateResult.java
@@ -0,0 +1,13 @@
+package com.ruoyi.system.model;
+
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@Data
+public class EvaluateResult {
+ @JsonProperty("num")
+ private Integer num;
+
+ @JsonProperty("score")
+ private Integer score;
+}
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/ResultEvaluateChemistTesterQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/ResultEvaluateChemistTesterQuery.java
index 6eddedb..8c77407 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/ResultEvaluateChemistTesterQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/ResultEvaluateChemistTesterQuery.java
@@ -9,6 +9,8 @@
@ApiModel(value = "实验员和化验师评定结果查询参数query")
public class ResultEvaluateChemistTesterQuery extends TimeRangeQueryBody {
+ @ApiModelProperty(value = "项目课题方案编号")
+ private String projectCode;
@ApiModelProperty(value = "项目课题方案名称")
private String projectName;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentDispatchQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentDispatchQuery.java
index 70cb99e..5e6311c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentDispatchQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentDispatchQuery.java
@@ -11,6 +11,8 @@
@ApiModel(value = "实验调度query")
public class TExperimentDispatchQuery extends TimeRangeQueryBody {
+ @ApiModelProperty(value = "项目课题方案编号")
+ private String projectCode;
@ApiModelProperty(value = "项目课题方案名称")
private String projectName;
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 0610718..678c907 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
@@ -11,6 +11,8 @@
@ApiModel(value = "实验结果汇报查询条件query")
public class TExperimentResultReportQuery extends TimeRangeQueryBody {
+ @ApiModelProperty(value = "项目课题方案编号")
+ private String projectCode;
@ApiModelProperty(value = "项目课题方案")
private String projectName;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentSchemeQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentSchemeQuery.java
index 1fd173d..9d58ec0 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentSchemeQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentSchemeQuery.java
@@ -10,7 +10,8 @@
@Data
@ApiModel(value = "实验方案管理query")
public class TExperimentSchemeQuery extends TimeRangeQueryBody {
-
+ @ApiModelProperty(value = "项目课题方案编号")
+ private String projectCode;
@ApiModelProperty(value = "项目课题方案")
private String projectName;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TInspectionReportQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TInspectionReportQuery.java
index 18d5340..2d9217c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TInspectionReportQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TInspectionReportQuery.java
@@ -10,7 +10,8 @@
@Data
@ApiModel(value = "检验报告查询参数query")
public class TInspectionReportQuery extends TimeRangeQueryBody {
-
+ @ApiModelProperty(value = "项目课题方案编号")
+ private String projectCode;
@ApiModelProperty(value = "项目课题方案")
private String projectName;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TResultWorkEvaluateQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TResultWorkEvaluateQuery.java
index 7bd4646..f264961 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TResultWorkEvaluateQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TResultWorkEvaluateQuery.java
@@ -13,6 +13,8 @@
@ApiModelProperty(value = "项目组名称")
private String teamName;
+ @ApiModelProperty(value = "项目课题方案编号")
+ private String projectCode;
@ApiModelProperty(value = "所属项目课题")
private String projectName;
@ApiModelProperty(value = "实验编号")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TSamplingRecordQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TSamplingRecordQuery.java
index 208f1bc..c76c85a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TSamplingRecordQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TSamplingRecordQuery.java
@@ -11,7 +11,8 @@
@Data
@ApiModel(value = "取样记录查询query")
public class TSamplingRecordQuery extends TimeRangeQueryBody {
-
+ @ApiModelProperty(value = "项目课题方案编号")
+ private String projectCode;
@ApiModelProperty(value = "项目课题方案名称")
private String projectName;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TTestMethodConfirmSheetOriginalQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TTestMethodConfirmSheetOriginalQuery.java
index 36bdf0c..bd9d468 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TTestMethodConfirmSheetOriginalQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TTestMethodConfirmSheetOriginalQuery.java
@@ -11,7 +11,8 @@
@Data
@ApiModel(value = "原始检测项查询对象query")
public class TTestMethodConfirmSheetOriginalQuery extends TimeRangeQueryBody {
-
+ @ApiModelProperty(value = "项目课题方案编号")
+ private String projectCode;
@ApiModelProperty(value = "项目课题方案")
private String projectName;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TTestMethodConfirmSheetQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TTestMethodConfirmSheetQuery.java
index cb75f25..42595cd 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TTestMethodConfirmSheetQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TTestMethodConfirmSheetQuery.java
@@ -10,7 +10,8 @@
@Data
@ApiModel(value = "检验方法确认单查询query")
public class TTestMethodConfirmSheetQuery extends TimeRangeQueryBody {
-
+ @ApiModelProperty(value = "项目课题方案编号")
+ private String projectCode;
@ApiModelProperty(value = "项目课题方案")
private String projectName;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TQaTestItemReportService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TQaTestItemReportService.java
index 662773b..a5f70bc 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TQaTestItemReportService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TQaTestItemReportService.java
@@ -38,4 +38,6 @@
* @return
*/
List<TQaTestItemReportVO> getListByItemId(String itemId);
+
+ List<TQaTestItemReportVO> getListByItemIdDraft(String itemId);
}
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 fc00ed6..5cb19ef 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
@@ -3,6 +3,8 @@
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.TClinicalTrialPointsMapper;
import com.ruoyi.system.model.TClinicalTrialPoints;
import com.ruoyi.system.query.TClinicalTrialPointsQuery;
@@ -11,7 +13,9 @@
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import javax.annotation.Resource;
import java.util.List;
+import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -25,16 +29,21 @@
@Service
public class TClinicalTrialPointsServiceImpl extends ServiceImpl<TClinicalTrialPointsMapper, TClinicalTrialPoints> implements TClinicalTrialPointsService {
+ @Resource
+ private SysUserMapper sysUserMapper;
+
@Override
public PageInfo<TClinicalTrialPointsVO> pageList(TClinicalTrialPointsQuery query) {
PageInfo<TClinicalTrialPointsVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
if(CollectionUtils.isEmpty(query.getTeamIds()) && query.getRoleType() != 1){
return pageInfo;
}
+
List<TClinicalTrialPointsVO> list = this.baseMapper.pageList(query,pageInfo);
if(CollectionUtils.isEmpty(list)){
return pageInfo;
}
+
// 统计当前项目组累计分数
List<String> teamIds = list.stream().map(TClinicalTrialPointsVO::getTeamId).distinct().collect(Collectors.toList());
List<TClinicalTrialPoints> teamList = this.list(Wrappers.lambdaQuery(TClinicalTrialPoints.class)
@@ -46,6 +55,14 @@
}else {
clinicalTrialPointsVO.setTotalScore(clinicalTrialPoints.stream().mapToDouble(TClinicalTrialPoints::getEvaluateScore).sum());
}
+
+ // 工艺工程师名字
+ if (clinicalTrialPointsVO.getProcessEngineerId() != null) {
+ SysUser sysUser = sysUserMapper.selectUserById(clinicalTrialPointsVO.getProcessEngineerId());
+ if(Objects.nonNull(sysUser)){
+ clinicalTrialPointsVO.setProcessEngineerName(sysUser.getNickName());
+ }
+ }
}
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 e0f2054..621c825 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
@@ -53,7 +53,7 @@
sysUsers.forEach(sysUser -> {
experimentSchemePersonList.stream().filter(experimentSchemePerson -> experimentSchemePerson.getUserId().equals(sysUser.getUserId())).forEach(experimentSchemePerson -> experimentSchemePerson.setNickName(sysUser.getNickName()));
});
- for (TExperimentSchemeVO experimentSchemeVO : list) {
+ for (com.ruoyi.system.vo.TExperimentSchemeVO experimentSchemeVO : list) {
List<TExperimentSchemePerson> personList = experimentSchemePersonList.stream().filter(experimentSchemePerson -> experimentSchemePerson.getSchemeId().equals(experimentSchemeVO.getId())).collect(Collectors.toList());
experimentSchemeVO.setExperimentSchemePersons(personList);
// 写入名称
@@ -76,10 +76,12 @@
}
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()));
- });
+ if (!userIds.isEmpty()) {
+ 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);
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TQaTestItemReportServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TQaTestItemReportServiceImpl.java
index c9bcc4e..9755ed2 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TQaTestItemReportServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TQaTestItemReportServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.system.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.basic.PageInfo;
@@ -11,10 +12,12 @@
import com.ruoyi.system.query.TQaTestItemReportQuery;
import com.ruoyi.system.service.TQaTestItemReportService;
import com.ruoyi.system.vo.TQaTestItemReportVO;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -64,4 +67,20 @@
public List<TQaTestItemReportVO> getListByItemId(String itemId) {
return this.baseMapper.getListByItemId(itemId);
}
+
+ @Override
+ public List<TQaTestItemReportVO> getListByItemIdDraft(String itemId) {
+ LambdaQueryWrapper<TQaTestItemReport> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(TQaTestItemReport::getItemId, itemId);
+ lambdaQueryWrapper.eq(TQaTestItemReport::getStatus, -1);
+ List<TQaTestItemReport> tQaTestItemReports = this.baseMapper.selectList(lambdaQueryWrapper);
+
+ List<TQaTestItemReportVO> tQaTestItemReportVOSList = new ArrayList<>();
+ for (TQaTestItemReport tQaTestItemReport : tQaTestItemReports) {
+ TQaTestItemReportVO tQaTestItemReportVO = new TQaTestItemReportVO();
+ BeanUtils.copyProperties(tQaTestItemReport, tQaTestItemReportVO);
+ tQaTestItemReportVOSList.add(tQaTestItemReportVO);
+ }
+ return tQaTestItemReportVOSList;
+ }
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TQaTestItemServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TQaTestItemServiceImpl.java
index c6c2041..61a45ce 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TQaTestItemServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TQaTestItemServiceImpl.java
@@ -1,16 +1,24 @@
package com.ruoyi.system.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.system.mapper.TProjectTeamMapper;
import com.ruoyi.system.mapper.TQaTestItemMapper;
+import com.ruoyi.system.mapper.TQaTestItemReportMapper;
+import com.ruoyi.system.model.TProjectTeam;
import com.ruoyi.system.model.TQaTestItem;
+import com.ruoyi.system.model.TQaTestItemReport;
import com.ruoyi.system.query.TQaTestItemQuery;
import com.ruoyi.system.service.TQaTestItemService;
import com.ruoyi.system.vo.TQaTestItemVO;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
-import java.util.List;
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* <p>
@@ -23,11 +31,102 @@
@Service
public class TQaTestItemServiceImpl extends ServiceImpl<TQaTestItemMapper, TQaTestItem> implements TQaTestItemService {
+ @Resource
+ private TQaTestItemReportMapper tQaTestItemReportMapper;
+ @Resource
+ private TProjectTeamMapper tProjectTeamMapper;
+
@Override
public PageInfo<TQaTestItemVO> pageList(TQaTestItemQuery query) {
PageInfo<TQaTestItemVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
- List<TQaTestItemVO> list = this.baseMapper.pageList(query,pageInfo);
- pageInfo.setRecords(list);
+
+ // 1. 先查所有数据(不分页)
+ List<TQaTestItemVO> allList = new ArrayList<>();
+
+ List<TQaTestItemVO> list = this.baseMapper.pageList(query,null);//先不分页
+ if (list != null) {
+ allList.addAll(list);
+ }
+
+ if (query.getStatus() != null && query.getStatus() == -1) {
+ //增加 在草稿箱的子元素
+ LambdaQueryWrapper<TQaTestItemReport> tQaTestItemReportLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ tQaTestItemReportLambdaQueryWrapper.eq(TQaTestItemReport :: getStatus, -1);
+ tQaTestItemReportLambdaQueryWrapper.in(TQaTestItemReport :: getDisabled, false);
+
+ List<String> teamIds = query.getTeamIds();
+ if (teamIds != null && !teamIds.isEmpty()) {
+ // 使用 inSql 嵌套查询
+ String teamIdsStr = teamIds.stream()
+ .map(String::valueOf)
+ .collect(Collectors.joining(","));
+
+ tQaTestItemReportLambdaQueryWrapper.inSql(TQaTestItemReport::getItemId,
+ "SELECT id FROM t_qa_test_item WHERE team_id IN (" + teamIdsStr + ")");
+ }
+
+ List<TQaTestItemReport> tQaTestItemReports = tQaTestItemReportMapper.selectList(tQaTestItemReportLambdaQueryWrapper);
+ if (tQaTestItemReports != null && !tQaTestItemReports.isEmpty()) {
+ // 提取 itemId 并去重
+ List<String> distinctItemIds = tQaTestItemReports.stream()
+ .map(TQaTestItemReport::getItemId) // 假设子表中有 itemId 字段
+ .filter(Objects::nonNull) // 过滤掉 null
+ .distinct() // 去重
+ .collect(Collectors.toList());
+
+ // 用去重后的 itemId 查询主表数据
+ if (!distinctItemIds.isEmpty()) {
+ LambdaQueryWrapper<TQaTestItem> mainWrapper = new LambdaQueryWrapper<>();
+ mainWrapper.in(TQaTestItem::getId, distinctItemIds);
+ // 如果还需要 teamId 过滤,可以再加
+ if (teamIds != null && !teamIds.isEmpty()) {
+ mainWrapper.in(TQaTestItem::getTeamId, teamIds);
+ }
+ mainWrapper.ne(TQaTestItem::getStatus, -1)
+ .isNotNull(TQaTestItem::getStatus); // 排除 null 值
+ List<TQaTestItem> mainDataList = this.baseMapper.selectList(mainWrapper);
+
+ // TODO: 将 mainDataList 转换为 TQaTestItemVO 并添加到 list 中
+ List<TQaTestItemVO> tQaTestItemVOList = new ArrayList<>();
+ for (TQaTestItem tQaTestItem : mainDataList) {
+ TQaTestItemVO tQaTestItemVO = new TQaTestItemVO();
+
+ BeanUtils.copyProperties(tQaTestItem, tQaTestItemVO);
+
+ TProjectTeam tProjectTeam = tProjectTeamMapper.selectById(tQaTestItem.getTeamId());
+ if (tProjectTeam != null) {
+ tQaTestItemVO.setTeamName(tProjectTeam.getTeamName());
+ }
+ tQaTestItemVOList.add(tQaTestItemVO);
+ }
+
+ allList.addAll(tQaTestItemVOList);
+
+ //去重
+ allList = allList.stream()
+ .collect(Collectors.collectingAndThen(
+ Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(TQaTestItemVO::getId))),
+ ArrayList::new
+ ));
+ }
+ }
+ }
+
+ //统一排序
+ allList.sort(Comparator.comparing(TQaTestItemVO::getCreateTime, Comparator.nullsLast(Comparator.reverseOrder())));
+
+ // 手动分页
+ int total = allList.size();
+ int start = (query.getPageNum() - 1) * query.getPageSize();
+ int end = Math.min(start + query.getPageSize(), total);
+
+ List<TQaTestItemVO> pageRecords = new ArrayList<>();
+ if (start < total) {
+ pageRecords = allList.subList(start, end);
+ }
+
+ pageInfo.setTotal(total);
+ pageInfo.setRecords(pageRecords);
return pageInfo;
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterOtherTaskServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterOtherTaskServiceImpl.java
index 36a3c17..359775d 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterOtherTaskServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterOtherTaskServiceImpl.java
@@ -2,6 +2,8 @@
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.TTesterOtherTaskMapper;
import com.ruoyi.system.model.TTesterOtherTask;
import com.ruoyi.system.query.TTesterOtherTaskQuery;
@@ -10,7 +12,9 @@
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import javax.annotation.Resource;
import java.util.List;
+import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -23,6 +27,9 @@
*/
@Service
public class TTesterOtherTaskServiceImpl extends ServiceImpl<TTesterOtherTaskMapper, TTesterOtherTask> implements TTesterOtherTaskService {
+
+ @Resource
+ private SysUserMapper sysUserMapper;
@Override
public PageInfo<TTesterOtherTaskVO> pageList(TTesterOtherTaskQuery query) {
@@ -41,6 +48,13 @@
if(CollectionUtils.isEmpty(taskList)){
tTesterOtherTaskVO.setTotalScore(0);
}
+
+ // 查询是演员信息
+ SysUser sysUser = sysUserMapper.selectUserById(tTesterOtherTaskVO.getTesterId());
+ if(Objects.nonNull(sysUser)){
+ tTesterOtherTaskVO.setTesterName(sysUser.getNickName());
+ }
+
tTesterOtherTaskVO.setTotalScore(taskList.stream().mapToInt(TTesterOtherTask::getEvaluateScore).sum());
}
pageInfo.setRecords(list);
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterWorkEvaluateServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterWorkEvaluateServiceImpl.java
index 59466e8..bce0bc2 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterWorkEvaluateServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterWorkEvaluateServiceImpl.java
@@ -8,18 +8,27 @@
import com.ruoyi.system.mapper.TExperimentDispatchParticipantsMapper;
import com.ruoyi.system.mapper.TResultWorkEvaluateMapper;
import com.ruoyi.system.model.TExperimentDispatchParticipants;
+import com.ruoyi.system.model.TProjectTeam;
+import com.ruoyi.system.model.TProjectTeamStaff;
import com.ruoyi.system.model.TResultWorkEvaluate;
import com.ruoyi.system.query.ResultEvaluateChemistTesterQuery;
import com.ruoyi.system.query.TResultWorkEvaluateQuery;
+import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.system.service.TProjectTeamService;
+import com.ruoyi.system.service.TProjectTeamStaffService;
import com.ruoyi.system.service.TResultWorkEvaluateService;
import com.ruoyi.system.vo.ResultEvaluateChemistTesterVO;
+import com.ruoyi.system.vo.TResultWorkEvaluateDetailVO;
import com.ruoyi.system.vo.TResultWorkEvaluateVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import javax.annotation.Resource;
+import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
+import java.util.Optional;
import java.util.stream.Collectors;
/**
@@ -37,6 +46,16 @@
private SysUserMapper sysUserMapper;
@Autowired
private TExperimentDispatchParticipantsMapper experimentDispatchParticipantsMapper;
+ @Resource
+ private TResultWorkEvaluateService tResultWorkEvaluateService;
+ @Autowired
+ private TProjectTeamService projectTeamService;
+ @Autowired
+ private TProjectTeamStaffService projectTeamStaffService;
+ @Autowired
+ private ISysUserService sysUserService;
+ @Autowired
+ private WorkEvaluateService workEvaluateCalculateService;
@Override
public PageInfo<TResultWorkEvaluateVO> pageList(TResultWorkEvaluateQuery query) {
@@ -49,180 +68,82 @@
.orderByDesc(TResultWorkEvaluate::getEvaluateTime)
.isNotNull(TResultWorkEvaluate::getTeamId));
for (TResultWorkEvaluateVO tResultWorkEvaluateVO : list) {
- List<TResultWorkEvaluate> collect = tResultWorkEvaluates.stream().filter(e ->
-// e.getEvaluateOne()!=null&&
-// e.getEvaluateTwo()!=null&&
-// e.getEvaluateThree()!=null&&
-// e.getEvaluateFour()!=null&&
-// e.getEvaluateFive()!=null&&
-// e.getEvaluateSix()!=null&&
- e.getStatus()==1&&
- e.getTeamId().equals(tResultWorkEvaluateVO.getTeamId())).collect(Collectors.toList());
- if (!collect.isEmpty()){
- tResultWorkEvaluateVO.setEndTime(collect.get(0).getEvaluateTime());
- }
- int temp1=0;
- int temp2=0;
- int temp3=0;
- int temp4=0;
+ String id = tResultWorkEvaluateVO.getId();
- for (TResultWorkEvaluate tResultWorkEvaluate : collect) {
- Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
- switch (evaluateOne){
- case 1:
- if (tResultWorkEvaluate.getEvaluateType()==1){
- temp2+=2;
- }
- if (tResultWorkEvaluate.getEvaluateType()==2){
- temp3+=2;
- }
- if (tResultWorkEvaluate.getEvaluateType()==3){
- temp4+=2;
- }
- temp1+=2;
- break;
- case 2:
- temp1+=1;
- if (tResultWorkEvaluate.getEvaluateType()==1){
- temp2+=1;
- }
- if (tResultWorkEvaluate.getEvaluateType()==2){
- temp3+=1;
- }
- if (tResultWorkEvaluate.getEvaluateType()==3){
- temp4+=1;
- }
- break;
+ TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
+ TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId());
+ tResultWorkEvaluateVO.setStartTime(projectTeam.getCreateTime());
+ List<Long> role4 = projectTeamStaffService.lambdaQuery()
+ .eq(TProjectTeamStaff::getRoleType, 4).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list()
+ .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList());
+ List<Long> role5 = projectTeamStaffService.lambdaQuery()
+ .eq(TProjectTeamStaff::getRoleType, 5).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list()
+ .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList());
- }
- Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
- switch (evaluateTwo){
- case 1:
- temp1+=2;
- if (tResultWorkEvaluate.getEvaluateType()==1){
- temp2+=2;
- }
- if (tResultWorkEvaluate.getEvaluateType()==2){
- temp3+=2;
- }
- if (tResultWorkEvaluate.getEvaluateType()==3){
- temp4+=2;
- }
- break;
- case 2:
- temp1+=1;
- if (tResultWorkEvaluate.getEvaluateType()==1){
- temp2+=1;
- }
- if (tResultWorkEvaluate.getEvaluateType()==2){
- temp3+=1;
- }
- if (tResultWorkEvaluate.getEvaluateType()==3){
- temp4+=1;
- }
- break;
- }
- Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
- switch (evaluateThree){
- case 1:
- temp1+=2;
- if (tResultWorkEvaluate.getEvaluateType()==1){
- temp2+=2;
- }
- if (tResultWorkEvaluate.getEvaluateType()==2){
- temp3+=2;
- }
- if (tResultWorkEvaluate.getEvaluateType()==3){
- temp4+=2;
- }
- break;
- case 2:
- temp1+=1;
- if (tResultWorkEvaluate.getEvaluateType()==1){
- temp2+=1;
- }
- if (tResultWorkEvaluate.getEvaluateType()==2){
- temp3+=1;
- }
- if (tResultWorkEvaluate.getEvaluateType()==3){
- temp4+=1;
- }
- break;
- }
- Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
- switch (evaluateFour){
- case 1:
- temp1+=2;
- if (tResultWorkEvaluate.getEvaluateType()==1){
- temp2+=2;
- }
- if (tResultWorkEvaluate.getEvaluateType()==2){
- temp3+=2;
- }
- if (tResultWorkEvaluate.getEvaluateType()==3){
- temp4+=2;
- }
- break;
- case 2:
- temp1+=1;
- if (tResultWorkEvaluate.getEvaluateType()==1){
- temp2+=1;
- }
- if (tResultWorkEvaluate.getEvaluateType()==2){
- temp3+=1;
- }
- if (tResultWorkEvaluate.getEvaluateType()==3){
- temp4+=1;
- }
- break;
- }
- Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
- switch (evaluateFive){
- case 1:
- temp1+=2;
- if (tResultWorkEvaluate.getEvaluateType()==1){
- temp2+=2;
- }
- if (tResultWorkEvaluate.getEvaluateType()==2){
- temp3+=2;
- }
- if (tResultWorkEvaluate.getEvaluateType()==3){
- temp4+=2;
- }
- break;
- case 2:
- temp1+=1;
- if (tResultWorkEvaluate.getEvaluateType()==1){
- temp2+=1;
- }
- if (tResultWorkEvaluate.getEvaluateType()==2){
- temp3+=1;
- }
- if (tResultWorkEvaluate.getEvaluateType()==3){
- temp4+=1;
- }
- break;
- }
- Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
- switch (evaluateSix){
- case 1:
- temp1+=2;
- if (tResultWorkEvaluate.getEvaluateType()==1){
- temp2-=3;
- }
- if (tResultWorkEvaluate.getEvaluateType()==2){
- temp3-=3;
- }
- if (tResultWorkEvaluate.getEvaluateType()==3){
- temp4-=3;
- }
- break;
+ List<SysUser> user4 = new ArrayList<>();
+ List<SysUser> user5 = new ArrayList<>();
+
+ for (Long l : role4) {
+ SysUser sysUser = sysUserService.selectUserById(l);
+ if (sysUser != null) {
+ user4.add(sysUser);
}
}
- tResultWorkEvaluateVO.setTeamIntegral(temp1);
- tResultWorkEvaluateVO.setEngineerIntegral(temp2);
- tResultWorkEvaluateVO.setChemistIntegral(temp3);
- tResultWorkEvaluateVO.setTesterIntegral(temp4);
+ for (Long l : role5) {
+ SysUser sysUser = sysUserService.selectUserById(l);
+ if (sysUser != null) {
+ user5.add(sysUser);
+ }
+ }
+
+ int engineerIntegral = 0; // 工艺工程师总积分
+ int chemistIntegral = 0; // 化验师总积分
+ int testerIntegral = 0; // 实验员总积分
+
+ // 单独获取各角色积分
+ TResultWorkEvaluateDetailVO engineerEvaluateDetail = workEvaluateCalculateService.getProcessEngineerEvaluateDetail(id);//工艺工程师
+ if (engineerEvaluateDetail != null && engineerEvaluateDetail.getEngineerList() != null) {
+ engineerIntegral = engineerEvaluateDetail.getEngineerList().stream()
+ .mapToInt(vo -> Optional.ofNullable(vo.getIntegral()).orElse(0))
+ .sum();
+ }
+
+ TResultWorkEvaluateDetailVO chemistEvaluateDetail = workEvaluateCalculateService.getChemistEvaluateDetail(id);//4 化验师
+ if (chemistEvaluateDetail != null && chemistEvaluateDetail.getChemistList() != null) {
+ chemistIntegral = chemistEvaluateDetail.getChemistList().stream()
+ .filter(user -> user.getList() != null)
+ .flatMap(user -> user.getList().stream())
+ .mapToInt(vo -> Optional.ofNullable(vo.getIntegral()).orElse(0))
+ .sum();
+ }
+
+ TResultWorkEvaluateDetailVO testerEvaluateDetail = workEvaluateCalculateService.getTesterEvaluateDetail(id);// 5 实验员
+ if (testerEvaluateDetail != null && testerEvaluateDetail.getTesterList() != null) {
+ testerIntegral = testerEvaluateDetail.getTesterList().stream()
+ .filter(user -> user.getList() != null)
+ .flatMap(user -> user.getList().stream())
+ .mapToInt(vo -> Optional.ofNullable(vo.getIntegral()).orElse(0))
+ .sum();
+ }
+
+ // 计算项目组总积分
+ int teamIntegral = engineerIntegral + chemistIntegral + testerIntegral;
+
+ //查询最后一条数据的时间
+ TResultWorkEvaluate tResultWorkEvaluate = tResultWorkEvaluateService.lambdaQuery()
+ .eq(TResultWorkEvaluate::getTeamId, projectTeam.getId())
+ .eq(TResultWorkEvaluate::getDisabled, 0)//未删除
+ .orderByDesc(TResultWorkEvaluate::getEvaluateTime)// 按评定时间倒序排序
+ .last("limit 1")// 取第一条
+ .one();
+ if (tResultWorkEvaluate != null) {
+ tResultWorkEvaluateVO.setEndTime(tResultWorkEvaluate.getEvaluateTime());
+ }
+
+ tResultWorkEvaluateVO.setTeamIntegral(teamIntegral);
+ tResultWorkEvaluateVO.setEngineerIntegral(engineerIntegral);
+ tResultWorkEvaluateVO.setChemistIntegral(chemistIntegral);
+ tResultWorkEvaluateVO.setTesterIntegral(testerIntegral);
}
pageInfo.setRecords(list);
return pageInfo;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WorkEvaluateService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WorkEvaluateService.java
new file mode 100644
index 0000000..3206554
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WorkEvaluateService.java
@@ -0,0 +1,583 @@
+package com.ruoyi.system.service.impl;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.ruoyi.common.core.domain.BaseModel;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.model.*;
+import com.ruoyi.system.service.*;
+import com.ruoyi.system.vo.TResultWorkEvaluateDetailEngineerVO;
+import com.ruoyi.system.vo.TResultWorkEvaluateDetailUserVO;
+import com.ruoyi.system.vo.TResultWorkEvaluateDetailVO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 工作评定计算服务
+ * 用于封装工艺工程师、化验师、实验员的工作内容评定计算逻辑
+ *
+ * @author xiaochen
+ * @since 2026-06-18
+ */
+@Service
+@Slf4j
+public class WorkEvaluateService {
+
+ @Autowired
+ private TResultWorkEvaluateService tResultWorkEvaluateService;
+
+ @Autowired
+ private TProjectTeamService projectTeamService;
+
+ @Autowired
+ private TProjectTeamStaffService projectTeamStaffService;
+
+ @Autowired
+ private TFeasibilityStudyReportService feasibilityStudyReportService;
+
+ @Autowired
+ private TProjectApprovalReportService projectApprovalReportService;
+
+ @Autowired
+ private TClinicalTrialPointsService clinicalTrialPointsService;
+
+ @Autowired
+ private TQaTestItemService qaTestItemService;
+
+ @Autowired
+ private TQaProduceReportService qaProduceReportService;
+ @Autowired
+ private TTesterOtherTaskService tTesterOtherTaskService;
+
+ @Autowired
+ private TExperimentDispatchService tExperimentDispatchService;
+
+ @Autowired
+ private TProjectProposalService tProjectProposalService;
+
+ @Autowired
+ private ISysUserService sysUserService;
+
+ /**
+ * 获取工艺工程师工作内容评定详情
+ */
+ public TResultWorkEvaluateDetailVO getProcessEngineerEvaluateDetail(String id) {
+ TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO();
+
+ TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
+ TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId());
+ TProjectTeamStaff projectTeamStaff = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).eq(TProjectTeamStaff::getRoleType, 3).last("limit 1")
+ .one();
+ TProjectTeamStaff projectTeamStaff1 = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).eq(TProjectTeamStaff::getRoleType, 2).last("limit 1")
+ .one();
+ tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime());
+ Long userId = projectTeamStaff.getUserId();
+ Long auditUserId = projectTeamStaff1.getUserId();
+ List<TFeasibilityStudyReport> total = feasibilityStudyReportService.lambdaQuery()
+ .eq(TFeasibilityStudyReport::getStatus, 3)
+ .eq(TFeasibilityStudyReport::getEvaluatePersonId, auditUserId).list();
+ List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>();
+ // 工艺可研
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO = new TResultWorkEvaluateDetailEngineerVO();
+ List<TFeasibilityStudyReport> collect = total.stream().filter(e -> e.getReportType().equals(1)).collect(Collectors.toList());
+ int tempDetail = 0;
+ for (TFeasibilityStudyReport tFeasibilityStudyReport : collect) {
+ if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) {
+ for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
+ tempDetail += Integer.parseInt(s);
+ }
+ }
+ }
+ tResultWorkEvaluateDetailEngineerVO.setCount(collect.size());
+ tResultWorkEvaluateDetailEngineerVO.setIntegral(tempDetail);
+ if (!collect.isEmpty()) {
+ tResultWorkEvaluateDetailEngineerVO.setEndTime(collect.get(collect.size() - 1).getEvaluateTime());
+ tResultWorkEvaluateDetailEngineerVO.setStartTime(projectTeam.getCreateTime());
+ }
+
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO);
+ // 工艺可行
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO1 = new TResultWorkEvaluateDetailEngineerVO();
+ List<TFeasibilityStudyReport> collect1 = total.stream().filter(e -> e.getReportType().equals(2)).collect(Collectors.toList());
+ int tempDetail1 = 0;
+ for (TFeasibilityStudyReport tFeasibilityStudyReport : collect1) {
+ if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) {
+ for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
+ tempDetail1 += Integer.parseInt(s);
+ }
+ }
+ }
+ tResultWorkEvaluateDetailEngineerVO1.setCount(collect1.size());
+ tResultWorkEvaluateDetailEngineerVO1.setIntegral(tempDetail1);
+ if (!collect1.isEmpty()) {
+ tResultWorkEvaluateDetailEngineerVO1.setStartTime(collect1.get(0).getEvaluateTime());
+
+ tResultWorkEvaluateDetailEngineerVO1.setEndTime(collect1.get(collect1.size() - 1).getEvaluateTime());
+ }
+
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO1);
+
+ //查询当前team的实验结果评定 集合
+ List<TResultWorkEvaluate> tResultWorkEvaluateList = tResultWorkEvaluateService.lambdaQuery()
+ .eq(TResultWorkEvaluate::getTeamId, projectTeam.getId())
+ .eq(TResultWorkEvaluate::getEvaluateType, 1)//工艺工程师
+ .eq(TResultWorkEvaluate::getDisabled, 0)//未删除
+ .eq(TResultWorkEvaluate::getStatus, 1)//已提交
+ .orderByAsc(TResultWorkEvaluate::getEvaluateTime)
+ .list();
+
+ getThreeScope(tResultWorkEvaluateList, tResultWorkEvaluateDetailEngineerVOS);
+
+ // 工艺开发工具
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO5 = new TResultWorkEvaluateDetailEngineerVO();
+ List<TFeasibilityStudyReport> collect12 = total.stream().filter(e -> e.getReportType().equals(3)).collect(Collectors.toList());
+ int tempDetail15 = 0;
+ for (TFeasibilityStudyReport tFeasibilityStudyReport : collect12) {
+ if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) {
+ for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
+ tempDetail15 += Integer.parseInt(s);
+ }
+ }
+ }
+ tResultWorkEvaluateDetailEngineerVO5.setCount(collect12.size());
+ tResultWorkEvaluateDetailEngineerVO5.setIntegral(tempDetail15);
+ if (!collect12.isEmpty()) {
+ tResultWorkEvaluateDetailEngineerVO5.setStartTime(collect12.get(0).getEvaluateTime());
+ tResultWorkEvaluateDetailEngineerVO5.setEndTime(collect12.get(collect12.size() - 1).getEvaluateTime());
+ }
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO5);
+ // 验证与发布
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO6 = new TResultWorkEvaluateDetailEngineerVO();
+ List<TFeasibilityStudyReport> collect13 = total.stream().filter(e -> e.getReportType().equals(4)).collect(Collectors.toList());
+ int tempDetail16 = 0;
+ for (TFeasibilityStudyReport tFeasibilityStudyReport : collect13) {
+ if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) {
+ for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
+ tempDetail16 += Integer.parseInt(s);
+ }
+ }
+ }
+ tResultWorkEvaluateDetailEngineerVO6.setCount(collect13.size());
+ tResultWorkEvaluateDetailEngineerVO6.setIntegral(tempDetail16);
+ if (!collect13.isEmpty()) {
+ tResultWorkEvaluateDetailEngineerVO6.setStartTime(collect13.get(0).getEvaluateTime());
+ tResultWorkEvaluateDetailEngineerVO6.setEndTime(collect13.get(collect13.size() - 1).getEvaluateTime());
+ }
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO6);
+ // 立项报告
+ List<TProjectApprovalReport> list5 = projectApprovalReportService.lambdaQuery().orderByDesc(BaseModel::getCreateTime).eq(TProjectApprovalReport::getTeamId, projectTeam.getId()).eq(TProjectApprovalReport::getStatus, 2).list();
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO7 = new TResultWorkEvaluateDetailEngineerVO();
+ tResultWorkEvaluateDetailEngineerVO7.setCount(list5.size());
+ if (!list5.isEmpty()) {
+ tResultWorkEvaluateDetailEngineerVO7.setStartTime(list5.get(0).getAuditTime());
+ tResultWorkEvaluateDetailEngineerVO7.setEndTime(list5.get(list5.size() - 1).getAuditTime());
+ }
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO7);
+ // 临床试验积分
+ List<TClinicalTrialPoints> list6 = clinicalTrialPointsService.lambdaQuery()
+ .eq(TClinicalTrialPoints::getProcessEngineerId, userId)
+ .eq(TClinicalTrialPoints::getTeamId, projectTeam.getId()).list();
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO8 = new TResultWorkEvaluateDetailEngineerVO();
+ tResultWorkEvaluateDetailEngineerVO8.setCount(list6.size());
+ if (!list6.isEmpty()) {
+ tResultWorkEvaluateDetailEngineerVO8.setStartTime(list6.get(0).getCreateTime());
+ tResultWorkEvaluateDetailEngineerVO8.setEndTime(list6.get(list6.size() - 1).getCreateTime());
+ tResultWorkEvaluateDetailEngineerVO8.setIntegral(list6.get(0).getEvaluateScore());
+ }
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO8);
+ tResultWorkEvaluateDetailVO.setEngineerList(tResultWorkEvaluateDetailEngineerVOS);
+
+ return tResultWorkEvaluateDetailVO;
+ }
+
+ /**
+ * 获取化验师工作内容评定详情
+ */
+ public TResultWorkEvaluateDetailVO getChemistEvaluateDetail(String id) {
+ TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO();
+ List<TResultWorkEvaluateDetailUserVO> tResultWorkEvaluateDetailUserVOS = new ArrayList<>();
+ TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
+ TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId());
+ tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime());
+ List<Long> role5 = projectTeamStaffService.lambdaQuery()
+ .eq(TProjectTeamStaff::getRoleType, 4).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list()
+ .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList());
+ List<SysUser> user5 = new ArrayList<>();
+ SysUser sysUser1 = sysUserService.selectUserById(SecurityUtils.getUserId());
+ if (sysUser1.getRoleType() == 4 || sysUser1.getRoleType() == 5) {
+ //只能查看自己的
+ user5.add(sysUser1);
+ } else {
+ for (Long l : role5) {
+ SysUser sysUser = sysUserService.selectUserById(l);
+ if (sysUser != null) {
+ user5.add(sysUser);
+ }
+ }
+ }
+
+// List<TFeasibilityStudyReport> total = feasibilityStudyReportService.lambdaQuery()
+// .eq(TFeasibilityStudyReport::getStatus, 3)
+// .eq(TFeasibilityStudyReport::getTeamId, resultWorkEvaluate.getTeamId()).list();
+ for (SysUser sysUser : user5) {
+ List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>();
+ TResultWorkEvaluateDetailUserVO tResultWorkEvaluateDetailUserVO = new TResultWorkEvaluateDetailUserVO();
+ tResultWorkEvaluateDetailUserVO.setUserName(sysUser.getNickName());
+
+ // 开发阶段
+ //查询当前team的实验结果评定 集合
+ List<TResultWorkEvaluate> tResultWorkEvaluateList = tResultWorkEvaluateService.lambdaQuery()
+ .eq(TResultWorkEvaluate::getUserId, sysUser.getUserId())
+ .eq(TResultWorkEvaluate::getTeamId, projectTeam.getId())
+ .eq(TResultWorkEvaluate::getEvaluateType, 1)//工艺工程师
+ .eq(TResultWorkEvaluate::getDisabled, 0)//未删除
+ .orderByAsc(TResultWorkEvaluate::getEvaluateTime)
+ .list();
+
+ getThreeScope(tResultWorkEvaluateList, tResultWorkEvaluateDetailEngineerVOS);
+
+ // 项目检测项评定
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO9 = new TResultWorkEvaluateDetailEngineerVO();
+ List<TQaTestItem> list5 = qaTestItemService.lambdaQuery()
+ .eq(TQaTestItem::getStatus,3).eq(TQaTestItem::getCommitPersonId, sysUser.getUserId()).list();
+ if (!list5.isEmpty()){
+ tResultWorkEvaluateDetailEngineerVO9.setStartTime(list5.get(0).getEvaluateTime());
+ tResultWorkEvaluateDetailEngineerVO9.setEndTime(list5.get(list5.size() - 1).getCreateTime());
+ }
+ int tempDetail9 = 0;
+ for (TQaTestItem tQaTestItem : list5) {
+ if (StringUtils.hasLength(tQaTestItem.getEvaluateScore())){
+ for (String s : tQaTestItem.getEvaluateScore().split(",")){
+ tempDetail9 += Integer.parseInt(s);
+ }
+ }
+ }
+ tResultWorkEvaluateDetailEngineerVO9.setCount(list5.size());
+ tResultWorkEvaluateDetailEngineerVO9.setIntegral(tempDetail9);
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO9);
+ // 中试、生产验证试验检验分析报告评定
+ List<TQaProduceReport> list = qaProduceReportService.lambdaQuery()
+ .eq(TQaProduceReport::getStatus,3).eq(TQaProduceReport::getCommitPersonId, sysUser.getUserId()).list();
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO5 = new TResultWorkEvaluateDetailEngineerVO();
+ List<TQaProduceReport> collect3 = list.stream().filter(e -> e.getReportType() == 1).collect(Collectors.toList());
+ if (!collect3.isEmpty()) {
+ tResultWorkEvaluateDetailEngineerVO5.setStartTime(collect3.get(0).getEvaluateTime());
+ tResultWorkEvaluateDetailEngineerVO5.setEndTime(collect3.get(collect3.size() - 1).getEvaluateTime());
+ }
+ int tempDetail5 = 0;
+ for (TQaProduceReport tQaProduceReport : collect3) {
+ if (StringUtils.hasLength(tQaProduceReport.getEvaluateScore())){
+ for (String s : tQaProduceReport.getEvaluateScore().split(",")) {
+ tempDetail5+=Integer.parseInt(s);
+ }
+ }
+ }
+ tResultWorkEvaluateDetailEngineerVO5.setCount(collect3.size());
+ tResultWorkEvaluateDetailEngineerVO5.setIntegral(tempDetail5);
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO5);
+ // 辅料
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO6 = new TResultWorkEvaluateDetailEngineerVO();
+ List<TQaProduceReport> collect4 = list.stream().filter(e -> e.getReportType() == 2).collect(Collectors.toList());
+ if (!collect4.isEmpty()) {
+ tResultWorkEvaluateDetailEngineerVO6.setStartTime(collect4.get(0).getEvaluateTime());
+ tResultWorkEvaluateDetailEngineerVO6.setEndTime(collect4.get(collect4.size() - 1).getEvaluateTime());
+ }
+ int tempDetail6 = 0;
+ for (TQaProduceReport tQaProduceReport : collect4) {
+ if (StringUtils.hasLength(tQaProduceReport.getEvaluateScore())){
+ for (String s : tQaProduceReport.getEvaluateScore().split(",")) {
+ tempDetail6+=Integer.parseInt(s);
+ }
+ }
+ }
+ tResultWorkEvaluateDetailEngineerVO6.setCount(collect4.size());
+ tResultWorkEvaluateDetailEngineerVO6.setIntegral(tempDetail6);
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO6);
+ // 产品
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO7 = new TResultWorkEvaluateDetailEngineerVO();
+ List<TQaProduceReport> collect9 = list.stream().filter(e -> e.getReportType() == 3).collect(Collectors.toList());
+ if (!collect9.isEmpty()) {
+ tResultWorkEvaluateDetailEngineerVO7.setStartTime(collect9.get(0).getEvaluateTime());
+ tResultWorkEvaluateDetailEngineerVO7.setEndTime(collect9.get(collect9.size() - 1).getEvaluateTime());
+ }
+ int tempDetail7 = 0;
+ for (TQaProduceReport tQaProduceReport : collect9) {
+ if (StringUtils.hasLength(tQaProduceReport.getEvaluateScore())){
+ for (String s : tQaProduceReport.getEvaluateScore().split(",")) {
+ tempDetail7+=Integer.parseInt(s);
+ }
+ }
+ }
+ tResultWorkEvaluateDetailEngineerVO7.setCount(collect9.size());
+ tResultWorkEvaluateDetailEngineerVO7.setIntegral(tempDetail7);
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO7);
+
+ tResultWorkEvaluateDetailUserVO.setList(tResultWorkEvaluateDetailEngineerVOS);
+ tResultWorkEvaluateDetailUserVOS.add(tResultWorkEvaluateDetailUserVO);
+ }
+ tResultWorkEvaluateDetailVO.setChemistList(tResultWorkEvaluateDetailUserVOS);
+
+ return tResultWorkEvaluateDetailVO;
+ }
+
+ /**
+ * 获取实验员工作内容评定详情
+ */
+ public TResultWorkEvaluateDetailVO getTesterEvaluateDetail(String id) {
+ TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO();
+ List<TResultWorkEvaluateDetailUserVO> tResultWorkEvaluateDetailUserVOS = new ArrayList<>();
+ TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
+ TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId());
+ tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime());
+ List<Long> role5 = projectTeamStaffService.lambdaQuery()
+ .eq(TProjectTeamStaff::getRoleType, 5).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list()
+ .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList());
+ List<SysUser> user5 = new ArrayList<>();
+ SysUser sysUser1 = sysUserService.selectUserById(SecurityUtils.getLoginUser().getUserId());
+ if (sysUser1.getRoleType() == 4 || sysUser1.getRoleType() == 5) {
+ //只能查看自己的
+ user5.add(sysUser1);
+ } else {
+ for (Long l : role5) {
+ SysUser sysUser = sysUserService.selectUserById(l);
+ if (sysUser != null) {
+ user5.add(sysUser);
+ }
+ }
+ }
+
+ for (SysUser sysUser : user5) {
+ List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>();
+ TResultWorkEvaluateDetailUserVO tResultWorkEvaluateDetailUserVO = new TResultWorkEvaluateDetailUserVO();
+ tResultWorkEvaluateDetailUserVO.setUserName(sysUser.getNickName());
+ // 开发阶段
+
+ //查询当前team的实验结果评定 集合
+ List<TResultWorkEvaluate> tResultWorkEvaluateList = tResultWorkEvaluateService.lambdaQuery()
+ .eq(TResultWorkEvaluate::getUserId, sysUser.getUserId())
+ .eq(TResultWorkEvaluate::getTeamId, projectTeam.getId())
+ .eq(TResultWorkEvaluate::getEvaluateType, 1)//工艺工程师
+ .eq(TResultWorkEvaluate::getDisabled, 0)//未删除
+ .orderByAsc(TResultWorkEvaluate::getEvaluateTime)
+ .list();
+
+ getThreeScope(tResultWorkEvaluateList, tResultWorkEvaluateDetailEngineerVOS);
+
+ // 其他任务
+ List<TTesterOtherTask> list = tTesterOtherTaskService.lambdaQuery().eq(TTesterOtherTask::getTesterId, sysUser.getUserId()).list();
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO5 = new TResultWorkEvaluateDetailEngineerVO();
+ tResultWorkEvaluateDetailEngineerVO5.setCount(list.size());
+ if (!list.isEmpty()) {
+ tResultWorkEvaluateDetailEngineerVO5.setStartTime(list.get(0).getCreateTime());
+ tResultWorkEvaluateDetailEngineerVO5.setEndTime(list.get(list.size() - 1).getCreateTime());
+
+ }
+ int temp = 0;
+ for (TTesterOtherTask tTesterOtherTask : list) {
+ temp += tTesterOtherTask.getEvaluateScore();
+ }
+ tResultWorkEvaluateDetailEngineerVO5.setIntegral(temp);
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO5);
+ tResultWorkEvaluateDetailUserVO.setList(tResultWorkEvaluateDetailEngineerVOS);
+ tResultWorkEvaluateDetailUserVOS.add(tResultWorkEvaluateDetailUserVO);
+ }
+ tResultWorkEvaluateDetailVO.setTesterList(tResultWorkEvaluateDetailUserVOS);
+
+ return tResultWorkEvaluateDetailVO;
+ }
+
+ /**
+ * 项目实验室开发阶段、项目中试试验阶段、项目生产验证试验阶段
+ *
+ * @param tResultWorkEvaluateList
+ * @param tResultWorkEvaluateDetailEngineerVOS
+ */
+// public void getThreeScope(List<TResultWorkEvaluate> tResultWorkEvaluateList, List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS) {
+// for (TResultWorkEvaluate tResultWorkEvaluate : tResultWorkEvaluateList) {
+// String dispatchId = tResultWorkEvaluate.getDispatchId();//调度id
+//
+// String resultEvaluateJson = tResultWorkEvaluate.getResultEvaluateJson();//评定分数JSON
+// ObjectMapper objectMapper = new ObjectMapper();
+//
+// int tempDetail2 = 0;//分数统计
+// try {
+// List<EvaluateResult> evaluateList = objectMapper.readValue(
+// resultEvaluateJson,
+// new TypeReference<List<EvaluateResult>>() {}
+// );
+//
+// tempDetail2 = Optional.ofNullable(evaluateList)
+// .orElse(Collections.emptyList())
+// .stream()
+// .mapToInt(EvaluateResult::getScore)
+// .sum();
+//
+// } catch (Exception e) {
+// throw new ServiceException("分数解析失败");
+// }
+//
+// TExperimentDispatch tExperimentDispatch = tExperimentDispatchService.getById(dispatchId);//实验调度
+// if (tExperimentDispatch == null) {
+// continue;
+// }
+//
+// TProjectProposal tProjectProposal = tProjectProposalService.getById(tExperimentDispatch.getProposalId());//项目课题方案
+// switch (tProjectProposal.getProjectStage()){
+// case 1://实验室开发阶段
+// // 开发阶段
+// TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO2 = new TResultWorkEvaluateDetailEngineerVO();
+//
+// if (!tResultWorkEvaluateList.isEmpty()) {
+// tResultWorkEvaluateDetailEngineerVO2.setStartTime(tResultWorkEvaluateList.get(0).getEvaluateTime());
+// tResultWorkEvaluateDetailEngineerVO2.setEndTime(tResultWorkEvaluateList.get(tResultWorkEvaluateList.size()-1).getEvaluateTime());
+// }
+//
+// tResultWorkEvaluateDetailEngineerVO2.setCount(tResultWorkEvaluateList.size());
+// tResultWorkEvaluateDetailEngineerVO2.setIntegral(tempDetail2);//分数
+// tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO2);
+// break;
+// case 2://中式试验阶段
+// TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO3 = new TResultWorkEvaluateDetailEngineerVO();
+//
+// if (!tResultWorkEvaluateList.isEmpty()) {
+// tResultWorkEvaluateDetailEngineerVO3.setStartTime(tResultWorkEvaluateList.get(0).getEvaluateTime());
+// tResultWorkEvaluateDetailEngineerVO3.setEndTime(tResultWorkEvaluateList.get(tResultWorkEvaluateList.size()-1).getEvaluateTime());
+// }
+// tResultWorkEvaluateDetailEngineerVO3.setCount(tResultWorkEvaluateList.size());
+// tResultWorkEvaluateDetailEngineerVO3.setIntegral(tempDetail2);
+// tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO3);
+// break;
+// case 3://生产验证试验阶段
+// TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO4 = new TResultWorkEvaluateDetailEngineerVO();
+//
+// if (!tResultWorkEvaluateList.isEmpty()) {
+// tResultWorkEvaluateDetailEngineerVO4.setStartTime(tResultWorkEvaluateList.get(0).getEvaluateTime());
+// tResultWorkEvaluateDetailEngineerVO4.setEndTime(tResultWorkEvaluateList.get(tResultWorkEvaluateList.size() - 1).getEvaluateTime());
+// }
+// tResultWorkEvaluateDetailEngineerVO4.setCount(tResultWorkEvaluateList.size());
+// tResultWorkEvaluateDetailEngineerVO4.setIntegral(tempDetail2);
+// tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO4);
+// break;
+// default:
+// break;
+// }
+// }
+// }
+ public void getThreeScope(List<TResultWorkEvaluate> tResultWorkEvaluateList,
+ List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS) {
+ if (tResultWorkEvaluateList == null || tResultWorkEvaluateList.isEmpty()) {
+ return;
+ }
+
+ ObjectMapper objectMapper = new ObjectMapper();
+
+ // 使用Map按阶段分组
+ Map<Integer, StageAggregation> stageMap = new HashMap<>();
+
+ for (TResultWorkEvaluate tResultWorkEvaluate : tResultWorkEvaluateList) {
+ String dispatchId = tResultWorkEvaluate.getDispatchId();
+ String resultEvaluateJson = tResultWorkEvaluate.getResultEvaluateJson();
+
+ // 解析分数
+ int tempDetail2 = 0;
+ try {
+ List<EvaluateResult> evaluateList = objectMapper.readValue(
+ resultEvaluateJson,
+ new TypeReference<List<EvaluateResult>>() {}
+ );
+ tempDetail2 = Optional.ofNullable(evaluateList)
+ .orElse(Collections.emptyList())
+ .stream()
+ .mapToInt(EvaluateResult::getScore)
+ .sum();
+ } catch (Exception e) {
+ throw new ServiceException("分数解析失败");
+ }
+
+ // 获取阶段
+ TExperimentDispatch tExperimentDispatch = tExperimentDispatchService.getById(dispatchId);
+ if (tExperimentDispatch == null || tExperimentDispatch.getStatus() != 2 || tExperimentDispatch.getDisabled()) {
+ //未确认 删除
+ continue;
+ }
+ TProjectProposal tProjectProposal = tProjectProposalService.getById(tExperimentDispatch.getProposalId());
+ if (tProjectProposal == null || tProjectProposal.getDisabled() || tProjectProposal.getAuditStatus() != 2) {
+ continue;
+ }
+
+ Integer stage = tProjectProposal.getProjectStage();
+ if (stage == null || (stage < 1 || stage > 3)) {
+ continue;
+ }
+
+ // 累加积分
+ StageAggregation aggregation = stageMap.get(stage);
+ if (aggregation == null) {
+ aggregation = new StageAggregation();
+ aggregation.stage = stage;
+ aggregation.totalScore = tempDetail2;
+ aggregation.count = 1;
+ aggregation.firstEvaluateTime = tResultWorkEvaluate.getEvaluateTime();
+ aggregation.lastEvaluateTime = tResultWorkEvaluate.getEvaluateTime();
+ stageMap.put(stage, aggregation);
+ } else {
+ aggregation.totalScore += tempDetail2;
+ aggregation.count++;
+ // 更新时间范围
+ if (tResultWorkEvaluate.getEvaluateTime() != null) {
+ if (aggregation.firstEvaluateTime == null ||
+ tResultWorkEvaluate.getEvaluateTime().isBefore(aggregation.firstEvaluateTime)) {
+ aggregation.firstEvaluateTime = tResultWorkEvaluate.getEvaluateTime();
+ }
+ if (aggregation.lastEvaluateTime == null ||
+ tResultWorkEvaluate.getEvaluateTime().isAfter(aggregation.lastEvaluateTime)) {
+ aggregation.lastEvaluateTime = tResultWorkEvaluate.getEvaluateTime();
+ }
+ }
+ }
+ }
+
+ // 清空原有的 EngineerList 中关于三阶段的数据(保留前6项,因为前6项是固定报告类型)
+ // 注意:这里假设前6项是:工艺可研、工艺可行、工艺开发工具、验证与发布、立项报告、临床试验积分
+ // 如果原来的列表中有三阶段的数据,需要先移除
+ if (tResultWorkEvaluateDetailEngineerVOS.size() > 6) {
+ // 移除索引6及之后的所有元素(即三阶段的数据)
+ tResultWorkEvaluateDetailEngineerVOS.subList(6, tResultWorkEvaluateDetailEngineerVOS.size()).clear();
+ }
+
+ // 按阶段顺序添加:1-实验室开发阶段,2-中式试验阶段,3-生产验证试验阶段
+ for (int stage = 1; stage <= 3; stage++) {
+ StageAggregation aggregation = stageMap.get(stage);
+ TResultWorkEvaluateDetailEngineerVO vo = new TResultWorkEvaluateDetailEngineerVO();
+
+ if (aggregation != null) {
+ vo.setCount(aggregation.count);
+ vo.setIntegral(aggregation.totalScore);
+ vo.setStartTime(aggregation.firstEvaluateTime);
+ vo.setEndTime(aggregation.lastEvaluateTime);
+ } else {
+ // 没有数据时设置默认值
+ vo.setCount(0);
+ vo.setIntegral(0);
+ }
+ tResultWorkEvaluateDetailEngineerVOS.add(vo);
+ }
+ }
+
+ // 内部类用于聚合
+ private static class StageAggregation {
+ Integer stage;
+ int totalScore;
+ int count;
+ LocalDateTime firstEvaluateTime;
+ LocalDateTime lastEvaluateTime;
+ }
+}
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ResultEvaluateChemistTesterVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ResultEvaluateChemistTesterVO.java
index bacf06c..ab8ee70 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ResultEvaluateChemistTesterVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ResultEvaluateChemistTesterVO.java
@@ -21,7 +21,8 @@
@ApiModelProperty(value = "实验id")
private String dispatchId;
-
+ @ApiModelProperty(value = "项目课题方案编号")
+ private String projectCode;
@ApiModelProperty(value = "项目课题方案名称")
private String projectName;
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
index 64d7410..1e0e2f4 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TClinicalTrialPointsVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TClinicalTrialPointsVO.java
@@ -20,4 +20,7 @@
private Double totalScore;
@ApiModelProperty(value = "项目组名称")
private String teamName;
+
+ @ApiModelProperty(value = "被评工艺工程师")
+ private String processEngineerName;
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentResultReportVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentResultReportVO.java
index 237ec3f..41006e0 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentResultReportVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentResultReportVO.java
@@ -21,6 +21,8 @@
private List<TExperimentDispatchParticipants> experimentDispatchParticipants;
@ApiModelProperty(value = "实验调度")
private TExperimentDispatchVO experimentDispatchVO;
+ @ApiModelProperty(value = "项目课题方案编号")
+ private String projectCode;
@ApiModelProperty(value = "项目课题方案")
private String projectName;
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 cb9e465..63e2a5f 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,8 @@
@Data
@ApiModel(value = "实验方案管理VO", description = "实验方案管理VO")
public class TExperimentSchemeVO extends TExperimentScheme {
+ @ApiModelProperty(value = "项目课题方案编号")
+ private String projectCode;
@ApiModelProperty(value = "项目课题方案")
private String projectName;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TInspectionReportVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TInspectionReportVO.java
index ca24d33..d8b6bf6 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TInspectionReportVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TInspectionReportVO.java
@@ -9,6 +9,8 @@
@Data
@ApiModel(value = "检验报告VO")
public class TInspectionReportVO extends TInspectionReport {
+ @ApiModelProperty(value = "项目课题方案编号")
+ private String projectCode;
@ApiModelProperty(value = "项目课题方案")
private String projectName;
@ApiModelProperty(value = "实验编号")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateDetailUserVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateDetailUserVO.java
index 547b4cf..31a6861 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateDetailUserVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateDetailUserVO.java
@@ -18,4 +18,6 @@
@ApiModelProperty(value = "内容评定列表")
private List<TResultWorkEvaluateDetailEngineerVO> list;
+ private Integer teamIntegral;
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateVO.java
index 99bf70f..c8ef77e 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateVO.java
@@ -40,6 +40,8 @@
private String testerName;
@ApiModelProperty(value = "项目课题方案")
private String projectName;
+ @ApiModelProperty(value = "项目课题方案编号")
+ private String projectCode;
@ApiModelProperty(value = "实验调度对象")
private TExperimentDispatch experimentDispatch;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TSamplingRecordVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TSamplingRecordVO.java
index cc0ea56..86a7ad4 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TSamplingRecordVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TSamplingRecordVO.java
@@ -12,6 +12,8 @@
@Data
@ApiModel(value = "取样记录VO")
public class TSamplingRecordVO extends TSamplingRecord {
+ @ApiModelProperty(value = "项目课题方案编号")
+ private String projectCode;
@ApiModelProperty(value = "项目课题方案")
private String projectName;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TTestMethodConfirmSheetOriginalVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TTestMethodConfirmSheetOriginalVO.java
index 9eb69f2..74fdd59 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TTestMethodConfirmSheetOriginalVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TTestMethodConfirmSheetOriginalVO.java
@@ -13,6 +13,8 @@
@ApiModel(value = "原始检验记录返回VO", description = "原始检验记录")
public class TTestMethodConfirmSheetOriginalVO extends TTestMethodConfirmSheetOriginal {
+ @ApiModelProperty(value = "项目课题方案编号")
+ private String projectCode;
@ApiModelProperty(value = "项目课题方案")
private String projectName;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TTestMethodConfirmSheetVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TTestMethodConfirmSheetVO.java
index 41ddc6d..660a2dc 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TTestMethodConfirmSheetVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TTestMethodConfirmSheetVO.java
@@ -20,6 +20,9 @@
@ApiModelProperty(value = "项目课题方案")
private String projectName;
+ @ApiModelProperty(value = "项目课题方案编号")
+ private String projectCode;
+
@ApiModelProperty(value = "实验名称")
private String experimentName;
diff --git a/ruoyi-system/src/main/resources/mapper/system/TExperimentDispatchMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TExperimentDispatchMapper.xml
index 7aa9ba6..7bcb007 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TExperimentDispatchMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TExperimentDispatchMapper.xml
@@ -28,12 +28,15 @@
SELECT
ted.id, ted.proposal_id, ted.experiment_date, ted.experiment_name, ted.experiment_code, ted.experiment_start_time,
ted.experiment_end_time, ted.key_nodes, ted.status, ted.create_time, ted.update_time, ted.create_by, ted.update_by,
- ted.disabled,tpp.project_name as projectName
+ ted.disabled,tpp.project_name as projectName,tpp.project_code as projectCode
from t_experiment_dispatch ted
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.projectCode != null and query.projectCode != ''">
+ and tpp.project_code like concat('%',#{query.projectCode},'%')
</if>
<if test="query.experimentCode != null and query.experimentCode != ''">
and ted.experiment_code like concat('%',#{query.experimentCode},'%')
@@ -67,13 +70,16 @@
SELECT
ted.id, ted.proposal_id, ted.experiment_date, ted.experiment_name, ted.experiment_code, ted.experiment_start_time,
ted.experiment_end_time, ted.key_nodes, ted.status, ted.create_time, ted.update_time, ted.create_by, ted.update_by,
- ted.disabled,tpp.project_name as projectName
+ ted.disabled,tpp.project_name as projectName,tpp.project_code AS projectCode
from t_experiment_dispatch ted
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.projectCode != null and query.projectCode != ''">
+ and tpp.project_code like concat('%',#{query.projectCode},'%')
+ </if>
<if test="query.experimentCode != null and query.experimentCode != ''">
and ted.experiment_code like concat('%',#{query.experimentCode},'%')
</if>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TExperimentResultReportMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TExperimentResultReportMapper.xml
index 2734046..2cad2ee 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TExperimentResultReportMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TExperimentResultReportMapper.xml
@@ -33,7 +33,7 @@
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.old_status,
terr.reject_remark,terr.create_time,
- terr.update_time, terr.create_by, terr.update_by, terr.disabled, tpp.project_name AS projectName,
+ terr.update_time, terr.create_by, terr.update_by, terr.disabled, tpp.project_name AS projectName,tpp.project_code AS projectCode,
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
@@ -41,6 +41,9 @@
<where>
<if test="query.projectName != null and query.projectName != ''">
and tpp.project_name like concat('%', #{query.projectName}, '%')
+ </if>
+ <if test="query.projectCode != null and query.projectCode != ''">
+ and tpp.project_code like concat('%',#{query.projectCode},'%')
</if>
<if test="query.experimentCode != null and query.experimentCode != ''">
and ted.experiment_code like concat('%', #{query.experimentCode}, '%')
@@ -74,7 +77,7 @@
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.old_status,
terr.reject_remark,terr.create_time,
- terr.update_time, terr.create_by, terr.update_by, terr.disabled, tpp.project_name AS projectName,
+ terr.update_time, terr.create_by, terr.update_by, terr.disabled, tpp.project_name AS projectName,tpp.project_code AS projectCode,
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
diff --git a/ruoyi-system/src/main/resources/mapper/system/TExperimentSchemeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TExperimentSchemeMapper.xml
index 46085cc..6d1da00 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TExperimentSchemeMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TExperimentSchemeMapper.xml
@@ -41,7 +41,7 @@
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,tes.new_experiment_material,tes.new_experiment_device,tes.new_experiment_step_record,
- tpp.project_name as projectName,ted.experiment_code as experimentCode,
+ tpp.project_name as projectName,tpp.project_code as projectCode,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
@@ -52,6 +52,9 @@
</if>
<if test="query.projectName != null and query.projectName != ''">
and tpp.project_name like concat('%', #{query.projectName}, '%')
+ </if>
+ <if test="query.projectCode != null and query.projectCode != ''">
+ and tpp.project_code like concat('%',#{query.projectCode},'%')
</if>
<if test="query.experimentCode != null and query.experimentCode != ''">
and ted.experiment_code like concat('%', #{query.experimentCode}, '%')
@@ -86,7 +89,7 @@
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,tes.new_experiment_material,tes.new_experiment_device,tes.new_experiment_step_record,
- tpp.project_name as projectName,ted.experiment_code as experimentCode,
+ tpp.project_name as projectName,tpp.project_code as projectCode,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
@@ -97,6 +100,9 @@
</if>
<if test="query.projectName != null and query.projectName != ''">
and tpp.project_name like concat('%', #{query.projectName}, '%')
+ </if>
+ <if test="query.projectCode != null and query.projectCode != ''">
+ and tpp.project_code like concat('%',#{query.projectCode},'%')
</if>
<if test="query.experimentCode != null and query.experimentCode != ''">
and ted.experiment_code like concat('%', #{query.experimentCode}, '%')
@@ -120,7 +126,7 @@
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,tes.new_experiment_material,tes.new_experiment_device,tes.new_experiment_step_record,
- tpp.project_name as projectName,ted.experiment_code as experimentCode,
+ tpp.project_name as projectName,tpp.project_code AS projectCode,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
diff --git a/ruoyi-system/src/main/resources/mapper/system/TInspectionReportMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TInspectionReportMapper.xml
index cc080ee..42dde71 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TInspectionReportMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TInspectionReportMapper.xml
@@ -25,7 +25,7 @@
select tir.id, tir.dispatch_id, tir.test_result, tir.test_reason, tir.status, tir.create_time,
tir.update_time, tir.create_by, tir.update_by, tir.disabled, tir.commit_user_id,
ted.experiment_name, ted.experiment_code,
- tpp.project_name
+ tpp.project_name,tpp.project_code
from t_inspection_report tir
left join t_experiment_dispatch ted on ted.id = tir.dispatch_id
left join t_project_proposal tpp on ted.proposal_id = tpp.id
@@ -33,6 +33,9 @@
<if test="query.projectName != null and query.projectName != ''">
and tpp.project_name like concat('%', #{query.projectName}, '%')
</if>
+ <if test="query.projectCode != null and query.projectCode != ''">
+ and tpp.project_code like concat('%',#{query.projectCode},'%')
+ </if>
<if test="query.experimentName != null and query.experimentName != ''">
and ted.experiment_name like concat('%', #{query.experimentName}, '%')
</if>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TResultWorkEvaluateMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TResultWorkEvaluateMapper.xml
index 9d3ebd0..7b19c97 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TResultWorkEvaluateMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TResultWorkEvaluateMapper.xml
@@ -60,7 +60,7 @@
select trwe.id, trwe.dispatch_id, trwe.user_id, trwe.result_report_id,trwe.evaluate_type, trwe.evaluate_one,
trwe.evaluate_two, trwe.evaluate_three, trwe.evaluate_four, trwe.evaluate_five, trwe.evaluate_six,
trwe.status, trwe.evaluate_person_id, trwe.evaluate_time,trwe.result_evaluate_json,trwe.team_id, trwe.create_time,
- trwe.update_time, trwe.create_by, trwe.update_by, trwe.disabled, tpp.project_name as projectName,
+ trwe.update_time, trwe.create_by, trwe.update_by, trwe.disabled, tpp.project_name as projectName,tpp.project_code AS projectCode,
ted.experiment_code as experimentCode,ted.experiment_name as experimentName
from t_result_work_evaluate trwe
left join t_experiment_dispatch ted on trwe.dispatch_id = ted.id
@@ -71,6 +71,9 @@
</if>
<if test="query.projectName != null and query.projectName != ''">
and tpp.project_name like concat('%',#{query.projectName},'%')
+ </if>
+ <if test="query.projectCode != null and query.projectCode != ''">
+ and tpp.project_code like concat('%',#{query.projectCode},'%')
</if>
<if test="query.experimentCode != null and query.experimentCode != ''">
and ted.experiment_code like concat('%',#{query.experimentCode},'%')
@@ -102,7 +105,7 @@
select trwe.id, trwe.dispatch_id, trwe.user_id, trwe.result_report_id,trwe.evaluate_type, trwe.evaluate_one,
trwe.evaluate_two, trwe.evaluate_three, trwe.evaluate_four, trwe.evaluate_five, trwe.evaluate_six,
trwe.status, trwe.evaluate_person_id, trwe.evaluate_time,trwe.result_evaluate_json,trwe.team_id, trwe.create_time,
- trwe.update_time, trwe.create_by, trwe.update_by, trwe.disabled, tpp.project_name as projectName,
+ trwe.update_time, trwe.create_by, trwe.update_by, trwe.disabled, tpp.project_name as projectName,tpp.project_code AS projectCode,
ted.experiment_code as experimentCode,ted.experiment_name as experimentName
from t_result_work_evaluate trwe
left join t_experiment_dispatch ted on trwe.dispatch_id = ted.id
@@ -139,7 +142,7 @@
</select>
<select id="getEvaluateChemistPageList" resultType="com.ruoyi.system.vo.ResultEvaluateChemistTesterVO">
select trwe.evaluate_time,CASE WHEN trwe.id IS NOT NULL THEN 1 ELSE 0 END AS isEvaluate,trwe.id,
- tedp.id AS participantsId,tpp.project_name AS projectName,tpp.project_stage AS projectStage,
+ tedp.id AS participantsId,tpp.project_name AS projectName,tpp.project_code AS projectCode,tpp.project_stage AS projectStage,
ted.experiment_code AS experimentCode,ted.experiment_name AS experimentName,su.nick_name AS laboratoryChemistName,
tedp.dispatch_id AS dispatchId,trwe.result_evaluate_json AS resultEvaluateJson
from t_experiment_dispatch_participants tedp
@@ -156,6 +159,9 @@
</if>
<if test="query.projectName != null and query.projectName != ''">
and tpp.project_name like concat('%',#{query.projectName},'%')
+ </if>
+ <if test="query.projectCode != null and query.projectCode != ''">
+ and tpp.project_code like concat('%',#{query.projectCode},'%')
</if>
<if test="query.userId != null">
and tedp.user_id = #{query.userId}
@@ -175,7 +181,7 @@
</select>
<select id="getEvaluateTesterPageList" resultType="com.ruoyi.system.vo.ResultEvaluateChemistTesterVO">
select trwe.evaluate_time,CASE WHEN trwe.id IS NOT NULL THEN 1 ELSE 0 END AS isEvaluate,trwe.id,
- tedp.id AS participantsId,tpp.project_name AS projectName,tpp.project_stage AS projectStage,
+ tedp.id AS participantsId,tpp.project_name AS projectName,tpp.project_code AS projectCode,tpp.project_stage AS projectStage,
ted.experiment_code AS experimentCode,ted.experiment_name AS experimentName,su.nick_name AS laboratoryTesterName,
tedp.dispatch_id AS dispatchId,trwe.result_evaluate_json AS resultEvaluateJson
from t_experiment_dispatch_participants tedp
@@ -193,6 +199,9 @@
<if test="query.projectName != null and query.projectName != ''">
and tpp.project_name like concat('%',#{query.projectName},'%')
</if>
+ <if test="query.projectCode != null and query.projectCode != ''">
+ and tpp.project_code like concat('%',#{query.projectCode},'%')
+ </if>
<if test="query.userId != null">
and tedp.user_id = #{query.userId}
</if>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TSamplingRecordMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TSamplingRecordMapper.xml
index 8dc635f..19dc42e 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TSamplingRecordMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TSamplingRecordMapper.xml
@@ -24,7 +24,7 @@
select
tsr.id, tsr.dispatch_id, tsr.sampling_code, tsr.remark, tsr.status, tsr.create_time, tsr.update_time,
tsr.create_by, tsr.update_by, tsr.disabled, ted.experiment_code AS experimentCode,ted.experiment_name AS experimentName,
- tpp.project_name AS projectName
+ tpp.project_name AS projectName,tpp.project_code as projectCode
from t_sampling_record tsr
left join t_experiment_dispatch ted on ted.id = tsr.dispatch_id
left join t_project_proposal tpp on ted.proposal_id = tpp.id
@@ -32,6 +32,9 @@
<if test="query.projectName != null and query.projectName != ''">
and tpp.project_name like concat('%', #{query.projectName}, '%')
</if>
+ <if test="query.projectCode != null and query.projectCode != ''">
+ and tpp.project_code like concat('%',#{query.projectCode},'%')
+ </if>
<if test="query.experimentName != null and query.experimentName != ''">
and ted.experiment_name like concat('%', #{query.experimentName}, '%')
</if>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetMapper.xml
index 66b7445..0be8185 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetMapper.xml
@@ -27,7 +27,7 @@
<select id="pageList" resultType="com.ruoyi.system.vo.TTestMethodConfirmSheetVO">
select tmcs.id, tmcs.dispatch_id,tmcs.commit_user_id, tmcs.confirm_sign, tmcs.sign_time, tmcs.audit_status, tmcs.audit_person_id,
tmcs.audit_sign, tmcs.audit_time, tmcs.create_time, tmcs.update_time, tmcs.create_by, tmcs.update_by, tmcs.disabled,
- tpp.project_name AS projectName, ted.experiment_name AS experimentName, ted.experiment_code AS experimentCode
+ tpp.project_name AS projectName,tpp.project_code AS projectCode, ted.experiment_name AS experimentName, ted.experiment_code AS experimentCode
from t_test_method_confirm_sheet tmcs
left join t_experiment_dispatch ted on tmcs.dispatch_id = ted.id
left join t_project_proposal tpp on ted.proposal_id = tpp.id
@@ -35,6 +35,9 @@
<if test="query.projectName != null and query.projectName != ''">
and tpp.project_name like concat('%', #{query.projectName}, '%')
</if>
+ <if test="query.projectCode != null and query.projectCode != ''">
+ and tpp.project_code like concat('%',#{query.projectCode},'%')
+ </if>
<if test="query.experimentName != null and query.experimentName != ''">
and ted.experiment_name like concat('%', #{query.experimentName}, '%')
</if>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetOriginalMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetOriginalMapper.xml
index f0da533..2623e24 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetOriginalMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetOriginalMapper.xml
@@ -30,7 +30,7 @@
select ttmcso.id, ttmcso.term_id, ttmcso.original_code, ttmcso.term_standard, ttmcso.term_instrument, ttmcso.term_reagent,
ttmcso.term_step, ttmcso.term_result, ttmcso.status, ttmcso.create_time, ttmcso.update_time, ttmcso.create_by,
ttmcso.update_by, ttmcso.disabled,ttmcso.commit_user_id,
- tpp.project_name AS projectName,ted.experiment_code AS experimentCode,
+ tpp.project_name AS projectName,tpp.project_code AS projectCode,ted.experiment_code AS experimentCode,
ted.experiment_name AS experimentName,ttmcst.term_name AS termName,ttmcst.term_code AS termCode
from t_test_method_confirm_sheet_original ttmcso
left join t_test_method_confirm_sheet_term ttmcst on ttmcso.term_id = ttmcst.id
@@ -40,6 +40,9 @@
<where>
<if test="query.projectName != null and query.projectName != ''">
and tpp.project_name like concat('%', #{query.projectName}, '%')
+ </if>
+ <if test="query.projectCode != null and query.projectCode != ''">
+ and tpp.project_code like concat('%',#{query.projectCode},'%')
</if>
<if test="query.experimentCode != null and query.experimentCode != ''">
and ted.experiment_code like concat('%', #{query.experimentCode}, '%')
@@ -74,7 +77,7 @@
select ttmcso.id, ttmcso.term_id, ttmcso.original_code, ttmcso.term_standard, ttmcso.term_instrument, ttmcso.term_reagent,
ttmcso.term_step, ttmcso.term_result, ttmcso.status, ttmcso.create_time, ttmcso.update_time, ttmcso.create_by,
ttmcso.update_by, ttmcso.disabled,ttmcso.commit_user_id,
- tpp.project_name AS projectName,ted.experiment_code AS experimentCode,
+ tpp.project_name AS projectName,tpp.project_code AS projectCode,ted.experiment_code AS experimentCode,
ted.experiment_name AS experimentName,ttmcst.term_name AS termName,ttmcst.term_code AS termCode
from t_test_method_confirm_sheet_original ttmcso
left join t_test_method_confirm_sheet_term ttmcst on ttmcso.term_id = ttmcst.id
--
Gitblit v1.7.1