xuhy
1 天以前 b7ec3aff011f05e236e76be844540dbe776f7353
bug修改
15个文件已修改
263 ■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TClinicalTrialPointsController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectTeamController.java 92 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TClinicalTrialPoints.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentDispatch.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentResultReport.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentScheme.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TProjectProposal.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TSamplingRecord.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TTestMethodConfirmSheet.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TResultWorkEvaluateMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TClinicalTrialPointsController.java
@@ -115,7 +115,7 @@
        if(Objects.isNull(projectTeamStaff)){
            return R.fail("当前项目组未分配工艺工程师,无法创建临床试验积分");
        }
        dto.setProcessEngineerId(projectTeamStaff.getId());
        dto.setProcessEngineerId(projectTeamStaff.getUserId());
        clinicalTrialPointsService.save(dto);
        return R.ok();
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectTeamController.java
@@ -223,11 +223,13 @@
        projectTeam.setStatus(dto.getStatus());
        projectTeamService.updateById(projectTeam);
        if(dto.getStatus() == 2){
        // 封存项目课题方案
        List<TProjectProposal> projectProposals = projectProposalService.list(Wrappers.lambdaQuery(TProjectProposal.class)
                .eq(TProjectProposal::getTeamId, dto.getId()));
        if(!CollectionUtils.isEmpty(projectProposals)){
            for (TProjectProposal projectProposal : projectProposals) {
                    projectProposal.setOldStatus(projectProposal.getAuditStatus());
                projectProposal.setAuditStatus(5);
            }
            projectProposalService.updateBatchById(projectProposals);
@@ -237,6 +239,7 @@
                    .in(TExperimentDispatch::getProposalId, projectIds));
            if(!CollectionUtils.isEmpty(experimentDispatches)){
                experimentDispatches.forEach(experimentDispatch -> {
                        experimentDispatch.setOldStatus(experimentDispatch.getStatus());
                    experimentDispatch.setStatus(3);
                });
                experimentDispatchService.updateBatchById(experimentDispatches);
@@ -247,6 +250,7 @@
                        .in(TTestMethodConfirmSheet::getDispatchId, dispatchIds));
                if(!CollectionUtils.isEmpty(testMethodConfirmSheets)){
                    testMethodConfirmSheets.forEach(testMethodConfirmSheet -> {
                            testMethodConfirmSheet.setOldStatus(testMethodConfirmSheet.getAuditStatus());
                        testMethodConfirmSheet.setAuditStatus(5);
                    });
                    testMethodConfirmSheetService.updateBatchById(testMethodConfirmSheets);
@@ -257,6 +261,7 @@
                        .in(TExperimentScheme::getDispatchId, dispatchIds));
                if(!CollectionUtils.isEmpty(experimentSchemes)){
                    experimentSchemes.forEach(experimentScheme -> {
                            experimentScheme.setOldStatus(experimentScheme.getStatus());
                        experimentScheme.setStatus(5);
                    });
                    experimentSchemeService.updateBatchById(experimentSchemes);
@@ -267,6 +272,7 @@
                        .in(TSamplingRecord::getDispatchId, dispatchIds));
                if(!CollectionUtils.isEmpty(samplingRecords)){
                    samplingRecords.forEach(samplingRecord -> {
                            samplingRecord.setOldStatus(samplingRecord.getStatus());
                        samplingRecord.setStatus(3);
                    });
                    samplingRecordService.updateBatchById(samplingRecords);
@@ -277,6 +283,7 @@
                        .in(TExperimentResultReport::getDispatchId, dispatchIds));
                if(!CollectionUtils.isEmpty(experimentResultReports)){
                    experimentResultReports.forEach(experimentResultReport -> {
                            experimentResultReport.setOldStatus(experimentResultReport.getStatus());
                        experimentResultReport.setStatus(4);
                    });
                    experimentResultReportService.updateBatchById(experimentResultReports);
@@ -284,37 +291,68 @@
            }
        }
        }else {
            // 解封项目课题方案
            List<TProjectProposal> projectProposals = projectProposalService.list(Wrappers.lambdaQuery(TProjectProposal.class)
                    .eq(TProjectProposal::getTeamId, dto.getId()));
            if(!CollectionUtils.isEmpty(projectProposals)){
                for (TProjectProposal projectProposal : projectProposals) {
                    projectProposal.setAuditStatus(projectProposal.getOldStatus());
                }
                projectProposalService.updateBatchById(projectProposals);
                List<String> projectIds = projectProposals.stream().map(TProjectProposal::getId).collect(Collectors.toList());
                // 封存实验调度
                List<TExperimentDispatch> experimentDispatches = experimentDispatchService.list(Wrappers.lambdaQuery(TExperimentDispatch.class)
                        .in(TExperimentDispatch::getProposalId, projectIds));
                if(!CollectionUtils.isEmpty(experimentDispatches)){
                    experimentDispatches.forEach(experimentDispatch -> {
                        experimentDispatch.setStatus(experimentDispatch.getOldStatus());
                    });
                    experimentDispatchService.updateBatchById(experimentDispatches);
        // 封存检测项
//        List<TQaTestItem> qaTestItems = qaTestItemService.list(Wrappers.lambdaQuery(TQaTestItem.class)
//                .eq(TQaTestItem::getTeamId, dto.getId()));
//        if(!CollectionUtils.isEmpty(qaTestItems)){
//            qaTestItems.forEach(qaTestItem -> {
//                qaTestItem.setStatus(4);
//            });
//            qaTestItemService.updateBatchById(qaTestItems);
//        }
                    // 封存检验方法
                    List<String> dispatchIds = experimentDispatches.stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
                    List<TTestMethodConfirmSheet> testMethodConfirmSheets = testMethodConfirmSheetService.list(Wrappers.lambdaQuery(TTestMethodConfirmSheet.class)
                            .in(TTestMethodConfirmSheet::getDispatchId, dispatchIds));
                    if(!CollectionUtils.isEmpty(testMethodConfirmSheets)){
                        testMethodConfirmSheets.forEach(testMethodConfirmSheet -> {
                            testMethodConfirmSheet.setAuditStatus(testMethodConfirmSheet.getAuditStatus());
                        });
                        testMethodConfirmSheetService.updateBatchById(testMethodConfirmSheets);
                    }
        // 封存中试
//        List<TQaProduceReport> qaProduceReports = qaProduceReportService.list(Wrappers.lambdaQuery(TQaProduceReport.class)
//                .eq(TQaProduceReport::getTeamId, dto.getId()));
//        if(!CollectionUtils.isEmpty(qaProduceReports)){
//            qaProduceReports.forEach(qaProduceReport -> {
//                qaProduceReport.setStatus(4);
//            });
//            qaProduceReportService.updateBatchById(qaProduceReports);
//        }
                    // 封存试验方案
                    List<TExperimentScheme> experimentSchemes = experimentSchemeService.list(Wrappers.lambdaQuery(TExperimentScheme.class)
                            .in(TExperimentScheme::getDispatchId, dispatchIds));
                    if(!CollectionUtils.isEmpty(experimentSchemes)){
                        experimentSchemes.forEach(experimentScheme -> {
                            experimentScheme.setStatus(experimentScheme.getOldStatus());
                        });
                        experimentSchemeService.updateBatchById(experimentSchemes);
                    }
        // 封存可行等报告
//        List<TFeasibilityStudyReport> feasibilityStudyReports = feasibilityStudyReportService.list(Wrappers.lambdaQuery(TFeasibilityStudyReport.class)
//                .eq(TFeasibilityStudyReport::getTeamId, dto.getId()));
//        if(!CollectionUtils.isEmpty(feasibilityStudyReports)){
//            feasibilityStudyReports.forEach(feasibilityStudyReport -> {
//                feasibilityStudyReport.setStatus(4);
//            });
//            feasibilityStudyReportService.updateBatchById(feasibilityStudyReports);
//        }
                    // 封存取样记录
                    List<TSamplingRecord> samplingRecords = samplingRecordService.list(Wrappers.lambdaQuery(TSamplingRecord.class)
                            .in(TSamplingRecord::getDispatchId, dispatchIds));
                    if(!CollectionUtils.isEmpty(samplingRecords)){
                        samplingRecords.forEach(samplingRecord -> {
                            samplingRecord.setStatus(samplingRecord.getOldStatus());
                        });
                        samplingRecordService.updateBatchById(samplingRecords);
                    }
                    // 封存结果汇报
                    List<TExperimentResultReport> experimentResultReports = experimentResultReportService.list(Wrappers.lambdaQuery(TExperimentResultReport.class)
                            .in(TExperimentResultReport::getDispatchId, dispatchIds));
                    if(!CollectionUtils.isEmpty(experimentResultReports)){
                        experimentResultReports.forEach(experimentResultReport -> {
                            experimentResultReport.setStatus(experimentResultReport.getOldStatus());
                        });
                        experimentResultReportService.updateBatchById(experimentResultReports);
                    }
                }
            }
        }
        return R.ok();
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -17,7 +17,7 @@
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.SysUserUpdateStatusDTO;
import com.ruoyi.system.model.TProjectTeamStaff;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.SysUserQuery;
import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.SysUserVO;
@@ -56,7 +56,28 @@
    private TProjectTeamService projectTeamService;
    @Autowired
    private TProjectTeamStaffService projectTeamStaffService;
    @Autowired
    private TClinicalTrialPointsService clinicalTrialPointsService;
    @Autowired
    private TExperimentDispatchParticipantsService experimentDispatchParticipantsService;
    @Autowired
    private TExperimentSchemePersonService experimentSchemePersonService;
    @Autowired
    private TNoticeService noticeService;
    @Autowired
    private TProjectProposalService projectProposalService;
    @Autowired
    private TQaProduceReportService qaProduceReportService;
    @Autowired
    private TQaTestItemService qaTestItemService;
    @Autowired
    private TResultWorkEvaluateService resultWorkEvaluateService;
    @Autowired
    private TSamplingRecordOperationService samplingRecordOperationService;
    @Autowired
    private TTestMethodConfirmSheetService testMethodConfirmSheetService;
    @Autowired
    private TTesterOtherTaskService testerOtherTaskService;
    /**
     * 获取用户列表
     */
@@ -222,18 +243,85 @@
        if (Objects.isNull(oldUser)){
            return R.fail("原始账号不存在");
        }
        if ("0".equals(oldUser.getStatus())){
            return R.fail("原始账号未停用,无法继承");
        }
        SysUser user = userService.selectUserById(userId);
        if (Objects.isNull(user)){
            return R.fail("继承账号不存在");
        }
        Long oldUserUserId = oldUser.getUserId();
        List<SysUser> oldUserList = userService.selectOldList();
//        oldUser.setUserId();
//        userService.updateUserOldUser(oldUser);
        user.setParentId(oldUser.getUserId());
        user.setParentAccount(oldUser.getUserName());
        if(!oldUser.getRoleType().equals(user.getRoleType())){
            return R.fail("原始账号和继承账号角色不一致");
        }
//        userService.updateUserInherit(user);
        Integer roleType = oldUser.getRoleType();
        Long oldUserUserId = oldUser.getUserId();
        switch (roleType){
            case 3:
                // 工艺工程师
                // 临床试验积分
                clinicalTrialPointsService.update(Wrappers.lambdaUpdate(TClinicalTrialPoints.class)
                        .eq(TClinicalTrialPoints::getProcessEngineerId,oldUserUserId)
                        .set(TClinicalTrialPoints::getProcessEngineerId,userId));
                // QA检测项
                qaTestItemService.update(Wrappers.lambdaUpdate(TQaTestItem.class)
                        .eq(TQaTestItem::getCommitPersonId,oldUserUserId)
                        .set(TQaTestItem::getCommitPersonId,userId));
                break;
            case 4:
                // 化验师
                // 中试、生产验证分析报告;辅料;产品报告
                qaProduceReportService.update(Wrappers.lambdaUpdate(TQaProduceReport.class)
                        .eq(TQaProduceReport::getCommitPersonId,oldUserUserId)
                        .set(TQaProduceReport::getCommitPersonId,userId));
                break;
            case 5:
                // 实验员
                // 实验方案实验人员管理
                experimentSchemePersonService.update(Wrappers.lambdaUpdate(TExperimentSchemePerson.class)
                        .eq(TExperimentSchemePerson::getUserId,oldUserUserId)
                        .set(TExperimentSchemePerson::getUserId,userId));
                // 实验员其他任务
                testerOtherTaskService.update(Wrappers.lambdaUpdate(TTesterOtherTask.class)
                        .eq(TTesterOtherTask::getTesterId,oldUserUserId)
                        .set(TTesterOtherTask::getTesterId,userId));
                break;
        }
        // 实验调度参与人员
        experimentDispatchParticipantsService.update(Wrappers.lambdaUpdate(TExperimentDispatchParticipants.class)
                .eq(TExperimentDispatchParticipants::getUserId,oldUserUserId)
                .set(TExperimentDispatchParticipants::getUserId,userId));
        // 公告
        noticeService.update(Wrappers.lambdaUpdate(TNotice.class)
                .eq(TNotice::getUserId,oldUserUserId)
                .set(TNotice::getUserId,userId));
        // 项目课题
        projectProposalService.update(Wrappers.lambdaUpdate(TProjectProposal.class)
                .eq(TProjectProposal::getCommitUserId,oldUserUserId)
                .set(TProjectProposal::getCommitUserId,userId));
        // 项目组
        projectTeamStaffService.update(Wrappers.lambdaUpdate(TProjectTeamStaff.class)
                .eq(TProjectTeamStaff::getUserId,oldUserUserId)
                .set(TProjectTeamStaff::getUserId,userId));
        // 实验结果汇报
        resultWorkEvaluateService.update(Wrappers.lambdaUpdate(TResultWorkEvaluate.class)
                .eq(TResultWorkEvaluate::getUserId,oldUserUserId)
                .set(TResultWorkEvaluate::getUserId,userId));
        // 取样操作管理
        samplingRecordOperationService.update(Wrappers.lambdaUpdate(TSamplingRecordOperation.class)
                .eq(TSamplingRecordOperation::getHandlePersonId,oldUserUserId)
                .set(TSamplingRecordOperation::getHandlePersonId,userId));
        samplingRecordOperationService.update(Wrappers.lambdaUpdate(TSamplingRecordOperation.class)
                .eq(TSamplingRecordOperation::getSendPersonId,oldUserUserId)
                .set(TSamplingRecordOperation::getSendPersonId,userId));
        samplingRecordOperationService.update(Wrappers.lambdaUpdate(TSamplingRecordOperation.class)
                .eq(TSamplingRecordOperation::getReceiptsPersonId,oldUserUserId)
                .set(TSamplingRecordOperation::getReceiptsPersonId,userId));
        // 检验方法确认单
        testMethodConfirmSheetService.update(Wrappers.lambdaUpdate(TTestMethodConfirmSheet.class)
                .eq(TTestMethodConfirmSheet::getCommitUserId,oldUserUserId)
                .set(TTestMethodConfirmSheet::getCommitUserId,userId));
        return R.ok();
    }
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -186,4 +186,7 @@
    List<SysUser> selectOldList();
    int deleteUserByOldUserId(@Param("oldUserId")Long oldUserId);
    void updateUserInherit(SysUser user);
}
ruoyi-system/src/main/java/com/ruoyi/system/model/TClinicalTrialPoints.java
@@ -38,7 +38,7 @@
    @ApiModelProperty(value = "工艺工程师id")
    @TableField("process_engineer_id")
    private String processEngineerId;
    private Long processEngineerId;
    @ApiModelProperty(value = "临床实验内容")
    @TableField("trial_content")
ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentDispatch.java
@@ -67,6 +67,10 @@
    @TableField("status")
    private Integer status;
    @ApiModelProperty(value = "历史状态")
    @TableField("old_status")
    private Integer oldStatus;
    @ApiModelProperty(value = "课题方案名称")
    @TableField(exist = false)
    private String projectName;
ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentResultReport.java
@@ -77,4 +77,7 @@
    @TableField("evaluate_time")
    private LocalDateTime evaluateTime;
    @ApiModelProperty(value = "历史状态")
    @TableField("old_status")
    private Integer oldStatus;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentScheme.java
@@ -94,5 +94,7 @@
    @TableField("audit_remark")
    private String auditRemark;
    @ApiModelProperty(value = "历史状态")
    @TableField("old_status")
    private Integer oldStatus;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/TProjectProposal.java
@@ -101,4 +101,8 @@
    @TableField("audit_remark")
    private String auditRemark;
    @ApiModelProperty(value = "历史状态")
    @TableField("old_status")
    private Integer oldStatus;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/TSamplingRecord.java
@@ -1,6 +1,9 @@
package com.ruoyi.system.model;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseModel;
import io.swagger.annotations.ApiModel;
@@ -8,7 +11,6 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
@@ -59,4 +61,7 @@
    @TableField("commit_time")
    private LocalDateTime commitTime;
    @ApiModelProperty(value = "历史状态")
    @TableField("old_status")
    private Integer oldStatus;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/TTestMethodConfirmSheet.java
@@ -66,5 +66,7 @@
    @TableField("audit_time")
    private LocalDateTime auditTime;
    @ApiModelProperty(value = "历史状态")
    @TableField("old_status")
    private Integer oldStatus;
}
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -286,4 +286,7 @@
    List<SysUser> selectOldList();
    int deleteUserByOldUserId(Long oldUserId);
    void updateUserInherit(SysUser user);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -703,6 +703,18 @@
        return userMapper.selectOldList();
    }
    @Override
    public int deleteUserByOldUserId(Long oldUserId) {
        // 删除用户与角色关联
        userRoleMapper.deleteUserRoleByUserId(oldUserId);
        return userMapper.deleteUserByOldUserId(oldUserId);
    }
    @Override
    public void updateUserInherit(SysUser user) {
        userMapper.updateUserInherit(user);
    }
//    @Override
//    public UserInfoVo userInfo(Long userId) {
//        return userMapper.userInfo(userId);
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -395,6 +395,16 @@
    <update id="editSignPicture" parameterType="SysUser">
        update sys_user set sign_picture = #{signPicture} where user_id = #{userId}
    </update>
    <update id="updateUserInherit">
        update sys_user
        <set>
            <if test="parentId != null">parentId = #{parentId},</if>
            <if test="parentAccount != null and parentAccount != ''">parentAccount = #{parentAccount},</if>
            <if test="userId != null">user_id = #{userId},</if>
            update_time = sysdate()
        </set>
        where userIdentification = #{userIdentification}
    </update>
    <delete id="deleteUserById" parameterType="Long">
         update sys_user set del_flag = '2' where user_id = #{userId}
@@ -406,5 +416,8 @@
             #{userId}
        </foreach> 
     </delete>
    <delete id="deleteUserByOldUserId">
        delete from sys_user where user_id = #{oldUserId}
    </delete>
    
</mapper> 
ruoyi-system/src/main/resources/mapper/system/TResultWorkEvaluateMapper.xml
@@ -46,7 +46,7 @@
            <if test="query.status == null">
                AND t1.status != -1
            </if>
            <if test="query.teamIds != null and query.teamIds > 0">
            <if test="query.teamIds != null and query.teamIds.size() > 0">
                AND t1.team_id in
                <foreach collection="query.teamIds" item="id" open="(" separator="," close=")">
                    #{id}