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}