ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java
@@ -253,8 +253,9 @@ * 查询化验师的通过签字的实验调度 */ @ApiOperation(value = "查询化验师的通过签字的实验调度") @GetMapping(value = "/open/t-experiment-dispatch/chemistSignList") public R<List<TExperimentDispatch>> chemistSignList() { @PostMapping(value = "/api/t-experiment-dispatch/chemistSignList") public R<PageInfo<TExperimentDispatch>> chemistSignList(@RequestBody String param) { TExperimentDispatchQuery query = JSON.parseObject(param, TExperimentDispatchQuery.class); Long userId = tokenService.getLoginUser().getUserId(); Integer roleType = tokenService.getLoginUser().getUser().getRoleType(); if(roleType != 4){ @@ -268,35 +269,8 @@ return R.fail("您没有通过签字的实验调度"); } List<String> dispatchIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getDispatchId).distinct().collect(Collectors.toList()); List<TExperimentDispatch> experimentDispatches = experimentDispatchService.list(Wrappers.lambdaQuery(TExperimentDispatch.class) .in(TExperimentDispatch::getId, dispatchIds) .in(TExperimentDispatch::getStatus, 1, 2)); List<String> proposalIds = experimentDispatches.stream().map(TExperimentDispatch::getProposalId).collect(Collectors.toList()); List<TProjectProposal> list = projectProposalService.list(Wrappers.lambdaQuery(TProjectProposal.class).in(TProjectProposal::getId, proposalIds)); // 查询参与人员 List<String> ids = experimentDispatches.stream().map(TExperimentDispatch::getId).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(ids)){ List<TExperimentDispatchParticipants> tExperimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class) .in(TExperimentDispatchParticipants::getDispatchId, ids)); List<Long> userIds = tExperimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).collect(Collectors.toList()); List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds); tExperimentDispatchParticipants.forEach(tExperimentDispatchParticipant -> { SysUser sysUser = sysUsers.stream().filter(user -> user.getUserId().equals(tExperimentDispatchParticipant.getUserId())).findFirst().orElse(null); if(sysUser != null){ tExperimentDispatchParticipant.setNickName(sysUser.getNickName()); } }); experimentDispatches.forEach(experimentDispatch -> { list.stream().filter(projectProposal -> projectProposal.getId().equals(experimentDispatch.getProposalId())).findFirst().ifPresent(projectProposal -> { experimentDispatch.setProjectName(projectProposal.getProjectName()); }); List<TExperimentDispatchParticipants> experimentDispatchParticipantsList = tExperimentDispatchParticipants.stream().filter(tExperimentDispatchParticipant -> tExperimentDispatchParticipant.getDispatchId().equals(experimentDispatch.getId())).collect(Collectors.toList()); String participantsName = experimentDispatchParticipantsList.stream().map(TExperimentDispatchParticipants::getNickName).collect(Collectors.joining(";")); experimentDispatch.setParticipantsName(participantsName); }); } query.setDispatchIds(dispatchIds); PageInfo<TExperimentDispatch> experimentDispatches = experimentDispatchService.chemistSignList(query); return R.ok(experimentDispatches); } ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java
@@ -152,6 +152,7 @@ if(sysUser != null){ tExperimentDispatchParticipant.setNickName(sysUser.getNickName()); tExperimentDispatchParticipant.setAvatar(sysUser.getAvatar()); tExperimentDispatchParticipant.setCreateTime(sysUser.getCreateTime()); } }); } ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFeasibilityStudyReportController.java
@@ -288,6 +288,10 @@ if(Objects.nonNull(sysUser)){ feasibilityStudyReportVO.setAuditPersonName(sysUser.getNickName()); } SysUser sysUser1 = sysUserService.selectUserById(feasibilityStudyReport.getEvaluatePersonId()); if(Objects.nonNull(sysUser1)){ feasibilityStudyReportVO.setEvaluatePersonName(sysUser.getNickName()); } return R.ok(feasibilityStudyReportVO); } ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaTestItemReportController.java
@@ -227,7 +227,7 @@ @PutMapping(value = "/open/t-qa-test-item-report/revokedReport") public R<Boolean> revokedReport(@RequestParam String id) { TQaTestItemReport testItemReport = qaTestItemReportService.getById(id); testItemReport.setStatus(QATestItemReportStatusEnum.REVOKED.getCode()); testItemReport.setStatus(QATestItemReportStatusEnum.DRAFTS.getCode()); qaTestItemReportService.updateById(testItemReport); return R.ok(); } ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSamplingRecordController.java
@@ -351,9 +351,9 @@ .in(TSamplingRecordOperation::getId, ids)); for (TSamplingRecordOperation samplingRecordOperation : samplingRecordOperations) { samplingRecordOperation.setStatus(3); samplingRecordOperation.setSendPersonId(userId); samplingRecordOperation.setSendSign(samplingRecordOperation.getReceiptsSign()); samplingRecordOperation.setSendTime(LocalDateTime.now()); samplingRecordOperation.setReceiptsPersonId(userId); samplingRecordOperation.setReceiptsSign(samplingRecordOperation.getReceiptsSign()); samplingRecordOperation.setReceiptsTime(LocalDateTime.now()); } samplingRecordOperationService.updateBatchById(samplingRecordOperations); return R.ok(); ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentDispatchMapper.java
@@ -26,4 +26,12 @@ * @return */ List<TExperimentDispatchVO> pageList(@Param("query") TExperimentDispatchQuery query, @Param("pageInfo")PageInfo<TExperimentDispatchVO> pageInfo); /** * 查询化验师的通过签字的实验调度 * @param query * @param pageInfo * @return */ List<TExperimentDispatch> chemistSignList(@Param("query")TExperimentDispatchQuery query, @Param("pageInfo")PageInfo<TExperimentDispatch> pageInfo); } ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentDispatchParticipants.java
@@ -12,6 +12,7 @@ import java.io.Serializable; import java.time.LocalDateTime; import java.util.Date; /** * <p> @@ -64,4 +65,9 @@ @ApiModelProperty(value = "用户头像") @TableField(exist = false) private String avatar; @ApiModelProperty(value = "创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField(exist = false) private Date createTime; } ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentDispatchQuery.java
@@ -20,10 +20,16 @@ @ApiModelProperty(value = "状态 -1=草稿箱 1=待确认 2=已确认 3=已封存") private Integer status; @ApiModelProperty(value = "状态 1=待确认 2=已确认") private Integer otherStatus; @ApiModelProperty(value = "用户id 前端忽略") private Long userId; @ApiModelProperty(value = "实验id 前端忽略") private List<String> dispatchIds; @ApiModelProperty(value = "实验id 实验员和化验师使用 前端忽略") private List<String> dispatchIdList; } ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentDispatchService.java
@@ -22,4 +22,11 @@ * @return */ PageInfo<TExperimentDispatchVO> pageList(TExperimentDispatchQuery query); /** * 查询化验师的通过签字的实验调度 * @param query * @return */ PageInfo<TExperimentDispatch> chemistSignList(TExperimentDispatchQuery query); } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentDispatchServiceImpl.java
@@ -7,18 +7,19 @@ import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.mapper.TExperimentDispatchMapper; import com.ruoyi.system.mapper.TExperimentDispatchParticipantsMapper; import com.ruoyi.system.mapper.TProjectProposalMapper; import com.ruoyi.system.model.TExperimentDispatch; import com.ruoyi.system.model.TExperimentDispatchParticipants; import com.ruoyi.system.model.TProjectTeamStaff; import com.ruoyi.system.model.TProjectProposal; import com.ruoyi.system.query.TExperimentDispatchQuery; import com.ruoyi.system.service.TExperimentDispatchService; import com.ruoyi.system.vo.TExperimentDispatchVO; import com.ruoyi.system.vo.TProjectTeamVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** @@ -35,11 +36,25 @@ @Autowired private TExperimentDispatchParticipantsMapper experimentDispatchParticipantsMapper; @Autowired private TProjectProposalMapper projectProposalMapper; @Autowired private SysUserMapper sysUserMapper; @Override public PageInfo<TExperimentDispatchVO> pageList(TExperimentDispatchQuery query) { PageInfo<TExperimentDispatchVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); // 查询自己已通过的实验调度 if(Objects.nonNull(query.getOtherStatus())){ List<TExperimentDispatchParticipants> experimentDispatchParticipants1 = experimentDispatchParticipantsMapper.selectList(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class) .eq(TExperimentDispatchParticipants::getUserId, query.getUserId()) .eq(TExperimentDispatchParticipants::getStatus, query.getOtherStatus())); if(!CollectionUtils.isEmpty(experimentDispatchParticipants1)){ List<String> dispatchIdList = experimentDispatchParticipants1.stream().map(TExperimentDispatchParticipants::getDispatchId).distinct().collect(Collectors.toList()); query.setDispatchIdList(dispatchIdList); }else{ return pageInfo; } } List<TExperimentDispatchVO> list = this.baseMapper.pageList(query,pageInfo); // 查询参与人员 List<String> ids = list.stream().map(TExperimentDispatchVO::getId).collect(Collectors.toList()); @@ -58,9 +73,48 @@ List<TExperimentDispatchParticipants> experimentDispatchParticipants = tExperimentDispatchParticipants.stream().filter(tExperimentDispatchParticipant -> tExperimentDispatchParticipant.getDispatchId().equals(tExperimentDispatchVO.getId())).collect(Collectors.toList()); String participantsName = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getNickName).collect(Collectors.joining(";")); tExperimentDispatchVO.setParticipantsName(participantsName); experimentDispatchParticipants.stream().filter(e->e.getUserId().equals(query.getUserId()) && e.getDispatchId().equals(tExperimentDispatchVO.getId())).findFirst().ifPresent(tExperimentDispatchParticipant -> { tExperimentDispatchVO.setOtherStatus(tExperimentDispatchParticipant.getStatus()); }); } } pageInfo.setRecords(list); return pageInfo; } @Override public PageInfo<TExperimentDispatch> chemistSignList(TExperimentDispatchQuery query) { PageInfo<TExperimentDispatch> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<TExperimentDispatch> list = this.baseMapper.chemistSignList(query,pageInfo); if(CollectionUtils.isEmpty(list)){ return pageInfo; } // 查询参与人员 List<String> ids = list.stream().map(TExperimentDispatch::getId).collect(Collectors.toList()); List<String> proposalIds = list.stream().map(TExperimentDispatch::getProposalId).collect(Collectors.toList()); List<TProjectProposal> projectProposals = projectProposalMapper.selectList(Wrappers.lambdaQuery(TProjectProposal.class).in(TProjectProposal::getId, proposalIds)); if(!CollectionUtils.isEmpty(ids)){ List<TExperimentDispatchParticipants> tExperimentDispatchParticipants = experimentDispatchParticipantsMapper.selectList(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class) .in(TExperimentDispatchParticipants::getDispatchId, ids)); List<Long> userIds = tExperimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).collect(Collectors.toList()); List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds); tExperimentDispatchParticipants.forEach(tExperimentDispatchParticipant -> { SysUser sysUser = sysUsers.stream().filter(user -> user.getUserId().equals(tExperimentDispatchParticipant.getUserId())).findFirst().orElse(null); if(sysUser != null){ tExperimentDispatchParticipant.setNickName(sysUser.getNickName()); } }); list.forEach(experimentDispatch -> { projectProposals.stream().filter(projectProposal -> projectProposal.getId().equals(experimentDispatch.getProposalId())).findFirst().ifPresent(projectProposal -> { experimentDispatch.setProjectName(projectProposal.getProjectName()); }); List<TExperimentDispatchParticipants> experimentDispatchParticipantsList = tExperimentDispatchParticipants.stream().filter(tExperimentDispatchParticipant -> tExperimentDispatchParticipant.getDispatchId().equals(experimentDispatch.getId())).collect(Collectors.toList()); String participantsName = experimentDispatchParticipantsList.stream().map(TExperimentDispatchParticipants::getNickName).collect(Collectors.joining(";")); experimentDispatch.setParticipantsName(participantsName); }); } pageInfo.setRecords(list); return pageInfo; } } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSamplingRecordServiceImpl.java
@@ -3,8 +3,12 @@ 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.TExperimentDispatchParticipantsMapper; import com.ruoyi.system.mapper.TSamplingRecordMapper; import com.ruoyi.system.mapper.TSamplingRecordOperationMapper; import com.ruoyi.system.model.TExperimentDispatchParticipants; import com.ruoyi.system.model.TSamplingRecord; import com.ruoyi.system.model.TSamplingRecordOperation; import com.ruoyi.system.query.TSamplingRecordQuery; @@ -30,6 +34,10 @@ @Autowired private TSamplingRecordOperationMapper samplingRecordOperationMapper; @Autowired private TExperimentDispatchParticipantsMapper experimentDispatchParticipantsMapper; @Autowired private SysUserMapper sysUserMapper; @Override public PageInfo<TSamplingRecordVO> pageList(TSamplingRecordQuery query) { @@ -49,6 +57,26 @@ item.setReceivedCount(recordOperationList.stream().filter(recordOperation -> recordOperation.getSamplingId().equals(item.getId()) && recordOperation.getStatus() == 3).count()); }); // 查询实验调度参与实验员 List<String> dispatchIds = list.stream().map(TSamplingRecordVO::getDispatchId).collect(Collectors.toList()); List<TExperimentDispatchParticipants> teamStaffs = experimentDispatchParticipantsMapper.selectList(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class) .in(TExperimentDispatchParticipants::getDispatchId, dispatchIds) .eq(TExperimentDispatchParticipants::getRoleType, 5)); List<Long> userIds = teamStaffs.stream().map(TExperimentDispatchParticipants::getUserId).collect(Collectors.toList()); List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds); teamStaffs.stream().forEach(teamStaff -> { sysUsers.stream().filter(sysUser -> sysUser.getUserId().equals(teamStaff.getUserId())).findFirst().ifPresent(sysUser -> { teamStaff.setNickName(sysUser.getNickName()); }); }); for (TSamplingRecordVO tSamplingRecordVO : list) { List<TExperimentDispatchParticipants> experimentDispatchParticipants = teamStaffs.stream().filter(teamStaff -> teamStaff.getDispatchId().equals(tSamplingRecordVO.getDispatchId())).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(experimentDispatchParticipants)){ tSamplingRecordVO.setTesterNames(experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getNickName).collect(Collectors.joining(","))); } } pageInfo.setRecords(list); return pageInfo; } ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentDispatchVO.java
@@ -1,6 +1,5 @@ package com.ruoyi.system.vo; import com.baomidou.mybatisplus.annotation.TableField; import com.ruoyi.system.model.TExperimentDispatch; import com.ruoyi.system.model.TExperimentDispatchGroup; import com.ruoyi.system.model.TExperimentDispatchParticipants; @@ -28,5 +27,7 @@ private List<TExperimentDispatchParticipants> experimentDispatchParticipants; @ApiModelProperty(value = "组别列表") private List<TExperimentDispatchTask> experimentDispatchTasks; @ApiModelProperty(value = "当前实验员,和化验师是否已确认状态") private Integer otherStatus; } ruoyi-system/src/main/java/com/ruoyi/system/vo/TSamplingRecordVO.java
@@ -36,4 +36,6 @@ @ApiModelProperty(value = "已接收数量") private Long receivedCount; @ApiModelProperty(value = "实验员名称") private String testerNames; } ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -157,7 +157,8 @@ select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1 </select> <select id="selectUserByIds" resultType="com.ruoyi.common.core.domain.entity.SysUser"> select user_id AS userId, dept_id AS deptId, user_name AS userName, nick_name AS nickName, email AS email, avatar AS avatar, phonenumber AS phonenumber select user_id AS userId, dept_id AS deptId, user_name AS userName, nick_name AS nickName, email AS email, avatar AS avatar, phonenumber AS phonenumber,create_time AS createTime from sys_user where user_id in <foreach collection="userIds" separator="," item="userId" open="(" close=")"> #{userId} ruoyi-system/src/main/resources/mapper/system/TExperimentDispatchMapper.xml
@@ -41,6 +41,42 @@ <if test="query.status !=null"> and ted.status = #{query.status} </if> <if test="query.otherStatus !=null"> and ted.status = #{query.otherStatus} </if> <if test="query.dispatchIds != null and query.dispatchIds.size() > 0"> and ted.id in <foreach item="item" collection="query.dispatchIds" separator="," close=")" index="index" open="("> #{item} </foreach> </if> <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> AND ted.create_time BETWEEN #{query.startTime} AND #{query.endTime} </if> <if test="query.status == null"> and ted.status != -1 </if> AND ted.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> ORDER BY ted.create_time DESC </select> <select id="chemistSignList" resultType="com.ruoyi.system.model.TExperimentDispatch"> 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 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.experimentCode != null and query.experimentCode != ''"> and ted.experiment_code like concat('%',#{query.experimentCode},'%') </if> <if test="query.status !=null"> and ted.status = #{query.status} </if> <if test="query.dispatchIds != null and query.dispatchIds.size() > 0"> and ted.id in <foreach item="item" collection="query.dispatchIds" separator="," close=")" index="index" open="(">