xuhy
3 天以前 d6dac9080939d4ceebf134e68203af5ebe0a3be9
bug修改
15个文件已修改
206 ■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFeasibilityStudyReportController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaTestItemReportController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSamplingRecordController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentDispatchMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentDispatchParticipants.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentDispatchQuery.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentDispatchService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentDispatchServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSamplingRecordServiceImpl.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentDispatchVO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/TSamplingRecordVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TExperimentDispatchMapper.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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="(">