puzhibing
6 天以前 082bddee7df8a05ca95f473ec2643701d41a5213
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -13,6 +13,7 @@
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.*;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.SysUserQuery;
import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.SysUserVO;
@@ -24,6 +25,7 @@
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@@ -48,6 +50,35 @@
    private ISysDeptService deptService;
    @Autowired
    private TokenService tokenService;
    @Resource
    private TBreedingAndPreservationService breedingAndPreservationService;
    @Resource
    private TCulturePreservationService culturePreservationService;
    @Resource
    private TNoticeService noticeService;
    @Resource
    private TObservationOfPetriDishesService observationOfPetriDishesService;
    @Resource
    private TPedigreeChartDetailService pedigreeChartDetailService;
    @Resource
    private TPedigreeChartService pedigreeChartService;
    @Resource
    private TSeparationOfCultureDishesService separationOfCultureDishesService;
    @Resource
    private TStrainReportService strainReportService;
    @Resource
    private TStrainReportDetailService strainReportDetailService;
    @Resource
    private TStrainValidationDataService strainValidationDataService;
    @Resource
    private TTrainLibraryService tTrainLibraryService;
    @Resource
    private TTrainLibraryWarehousingService tTrainLibraryWarehousingService;
    @Resource
    private TVaccinationSlopeService vaccinationSlopeService;
    @Resource
    private TProjectTeamStaffService projectTeamStaffService;
    /**
     * 获取用户列表
@@ -233,18 +264,81 @@
        }
        return AjaxResult.success(userService.updateUser(sysUser));
    }
    @ApiOperation(value = "账号继承")
    @ApiOperation(value = "账号继承",response = SysUserInheritDTO.class)
    @Log(title = "用户信息-账号继承", businessType = BusinessType.UPDATE)
    @PostMapping("/api/system/user/inherit")
    public AjaxResult inherit(@RequestBody String param)
    {
        SysUserInheritDTO dto = JSON.parseObject(param,SysUserInheritDTO.class);
        Long currentUserId = dto.getCurrentUserId();
        Long userId = dto.getUserId();
        SysUser currentUser = userService.selectUserById(dto.getCurrentUserId());
        SysUser user = userService.selectUserById(dto.getUserId());
        user.setUserId(currentUser.getUserId());
        userService.deleteUserById(dto.getCurrentUserId());
        // 将user的userId换成currentUser的userId
        userService.inherit(user);
        // 将user所有数据 替换为当前账号id
        List<TCulturePreservation> culturePreservationsHandle = culturePreservationService.lambdaQuery().eq(TCulturePreservation::getHandleId, userId).list();
        for (TCulturePreservation tCulturePreservation : culturePreservationsHandle) {
            tCulturePreservation.setHandleId(currentUserId+"");
        }
        culturePreservationService.updateBatchById( culturePreservationsHandle);
        List<TCulturePreservation> culturePreservationsPreserve = culturePreservationService.lambdaQuery().eq(TCulturePreservation::getPreserveId, userId).list();
        for (TCulturePreservation tCulturePreservation : culturePreservationsPreserve) {
            tCulturePreservation.setPreserveId(currentUserId+"");
        }
        culturePreservationService.updateBatchById( culturePreservationsPreserve);
        List<TNotice> notices = noticeService.lambdaQuery().eq(TNotice::getUserId, userId).list();
        for (TNotice tNotice : notices) {
            tNotice.setUserId(currentUserId+"");
        }
        noticeService.updateBatchById( notices);
        List<TPedigreeChartDetail> pedigreeChartDetailsVaccinate = pedigreeChartDetailService.lambdaQuery().eq(TPedigreeChartDetail::getVaccinateId, userId).list();
        for (TPedigreeChartDetail tPedigreeChartDetail : pedigreeChartDetailsVaccinate) {
            tPedigreeChartDetail.setVaccinateId(currentUserId+"");
        }
        pedigreeChartDetailService.updateBatchById( pedigreeChartDetailsVaccinate);
        List<TPedigreeChartDetail> pedigreeChartDetailsPreserve = pedigreeChartDetailService.lambdaQuery().eq(TPedigreeChartDetail::getPreserveId, userId).list();
        for (TPedigreeChartDetail tPedigreeChartDetail : pedigreeChartDetailsPreserve) {
            tPedigreeChartDetail.setPreserveId(currentUserId+"");
        }
        pedigreeChartDetailService.updateBatchById(pedigreeChartDetailsPreserve);
        List<TProjectTeamStaff> projectTeamStaffs = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, userId).list();
        for (TProjectTeamStaff tProjectTeamStaff : projectTeamStaffs) {
            tProjectTeamStaff.setUserId(currentUserId+"");
        }
        projectTeamStaffService.updateBatchById(projectTeamStaffs);
        List<TStrainReport> strainReports = strainReportService.lambdaQuery().eq(TStrainReport::getCommitId, userId).list();
        for (TStrainReport tStrainReport : strainReports) {
            tStrainReport.setCommitId(currentUserId+"");
        }
        strainReportService.updateBatchById(strainReports);
        List<TStrainReportDetail> strainReportDetailsExperiment = strainReportDetailService.lambdaQuery().eq(TStrainReportDetail::getExperimentId, userId).list();
        for (TStrainReportDetail tStrainReportDetail : strainReportDetailsExperiment) {
            tStrainReportDetail.setExperimentId(currentUserId+"");
        }
        strainReportDetailService.updateBatchById(strainReportDetailsExperiment);
        List<TStrainReportDetail> strainReportDetailsEvaluate = strainReportDetailService.lambdaQuery().eq(TStrainReportDetail::getEvaluateId, userId).list();
        for (TStrainReportDetail tStrainReportDetail : strainReportDetailsEvaluate) {
            tStrainReportDetail.setEvaluateId(currentUserId+"");
        }
        strainReportDetailService.updateBatchById(strainReportDetailsEvaluate);
        List<TTrainLibraryWarehousing> tTrainLibraryWarehousingsHandle = tTrainLibraryWarehousingService.lambdaQuery().eq(TTrainLibraryWarehousing::getHandleId, userId).list();
        for (TTrainLibraryWarehousing tTrainLibraryWarehousing : tTrainLibraryWarehousingsHandle) {
            tTrainLibraryWarehousing.setHandleId(currentUserId);
        }
        tTrainLibraryWarehousingService.updateBatchById(tTrainLibraryWarehousingsHandle);
        List<TTrainLibraryWarehousing> tTrainLibraryWarehousingsPreserve = tTrainLibraryWarehousingService.lambdaQuery().eq(TTrainLibraryWarehousing::getPreserveId, userId).list();
        for (TTrainLibraryWarehousing tTrainLibraryWarehousing : tTrainLibraryWarehousingsPreserve) {
            tTrainLibraryWarehousing.setPreserveId(currentUserId);
        }
        tTrainLibraryWarehousingService.updateBatchById(tTrainLibraryWarehousingsPreserve);
        List<TVaccinationSlope> vaccinationSlopesHandle = vaccinationSlopeService.lambdaQuery().eq(TVaccinationSlope::getHandleId, userId).list();
        for (TVaccinationSlope tVaccinationSlope : vaccinationSlopesHandle) {
            tVaccinationSlope.setHandleId(currentUserId+"");
        }
        vaccinationSlopeService.updateBatchById(vaccinationSlopesHandle);
        List<TVaccinationSlope> vaccinationSlopesPreserve = vaccinationSlopeService.lambdaQuery().eq(TVaccinationSlope::getPreserveId, userId).list();
        for (TVaccinationSlope tVaccinationSlope : vaccinationSlopesPreserve) {
            tVaccinationSlope.setPreserveId(currentUserId+"");
        }
        return AjaxResult.success();
    }
    @ApiOperation(value = "启用/禁用")