.idea/encodings.xml
@@ -1,6 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="Encoding"> <file url="file://$PROJECT_DIR$/generator/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/generator/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/ruoyi-admin/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/ruoyi-admin/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/ruoyi-applet/src/main/java" charset="UTF-8" /> ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBreedingAndPreservationController.java
@@ -30,6 +30,7 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -84,17 +85,22 @@ return R.ok(new PageInfo<>()); } query.setProjectIds(projectIds); }else { return R.ok(new PageInfo<>()); } }else if (!sysUser.getRoleType().equals("1")){ List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId()) .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); if (!allProjectIds.isEmpty()){ List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds) if (!allProjectIds.isEmpty()){ List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds) .eq(TProjectTeam::getStatus, 1).list().stream().map(TProjectTeam::getId).collect(Collectors.toList()); if (projectIds.isEmpty()){ return R.ok(new PageInfo<>()); } query.setProjectIds(projectIds); }else { return R.ok(new PageInfo<>()); } } @@ -115,6 +121,7 @@ if (dto.getStatus()==1){ return R.fail("有菌种待确认,无法提交"); } if (dto.getStatus()==3){ dto.setIsDraft(1); } @@ -155,7 +162,8 @@ if (dto.getStatus()!=null&&dto.getStatus()==2){ // 新增消息 TNotice tNotice = new TNotice(); List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId()) List<String> allProjectIds = projectTeamStaffService.lambdaQuery() .eq(TProjectTeamStaff::getTeamId,dto.getProjectId()) .eq(TProjectTeamStaff::getRoleType, 2) .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); if (!allProjectIds.isEmpty()){ @@ -196,6 +204,10 @@ }else{ dto.setIsDraft(0); } TBreedingAndPreservation breedingAndPreservationServiceById = breedingAndPreservationService.getById(dto.getId()); if (breedingAndPreservationServiceById.getStatus()==1){ return R.fail("该记录已提交,不可编辑!"); } breedingAndPreservationService.updateById(dto); List<TSeparationOfCultureDishes> separationOfCultureDishesList = dto.getSeparationOfCultureDishesList(); for (TSeparationOfCultureDishes tSeparationOfCultureDishes : separationOfCultureDishesList) { @@ -211,22 +223,33 @@ observationOfPetriDishesService.saveBatch(observationOfPetriDishes); List<TVaccinationSlope> vaccinationSlopes = dto.getVaccinationSlopes(); for (TVaccinationSlope vaccinationSlope : vaccinationSlopes) { if (dto.getStatus()==1&&!StringUtils.hasLength(vaccinationSlope.getPreserveId())){ return R.fail("接种斜面记录未确认,不能提交"); } vaccinationSlope.setBreedingPreserveId(dto.getId()); } vaccinationSlopeService.remove(new LambdaQueryWrapper<TVaccinationSlope>().eq(TVaccinationSlope::getBreedingPreserveId, dto.getId())); vaccinationSlopeService.saveBatch(vaccinationSlopes); List<TCulturePreservation> culturePreservations = dto.getCulturePreservations(); for (TCulturePreservation tSeparationOfCultureDishes : culturePreservations) { tSeparationOfCultureDishes.setBreedingPreserveId(dto.getId()); } culturePreservationService.remove(new LambdaQueryWrapper<TCulturePreservation>().eq(TCulturePreservation::getBreedingPreserveId, dto.getId())); for (TCulturePreservation culturePreservation : culturePreservations) { if (dto.getStatus()==1&&!StringUtils.hasLength(culturePreservation.getPreserveId())){ return R.fail("菌种保藏记录未确认,不能提交"); } culturePreservation.setBreedingPreserveId(dto.getId()); } culturePreservationService.saveBatch(culturePreservations); if (dto.getStatus()==2){ // 新增消息 TNotice tNotice = new TNotice(); List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId()) .eq(TProjectTeamStaff::getRoleType, 2) .eq(TProjectTeamStaff::getRoleType, 3) .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); if (!allProjectIds.isEmpty()){ TProjectTeam projectTeam = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds) .eq(TProjectTeam::getStatus, 1) .orderByDesc(BaseModel::getCreateTime).last("limit 1").one(); @@ -240,6 +263,7 @@ tNotice.setDataId(dto.getId()); tNotice.setNoticeType(6); noticeService.save(tNotice); } } return R.ok(); } @@ -289,6 +313,13 @@ culturePreservation.setHandleName(sysUser.getNickName()); } } for (TVaccinationSlope vaccinationSlope : vaccinationSlopes) { SysUser sysUser = sysUsers.stream().filter(e -> e.getUserId().equals(Long.valueOf(vaccinationSlope.getHandleId()))).findFirst() .orElse(null); if (sysUser!=null){ vaccinationSlope.setHandleName(sysUser.getNickName()); } } res.setSeparationOfCultureDishesList(separationOfCultureDishesList); res.setObservationOfPetriDishes(observationOfPetriDishes); res.setVaccinationSlopes(vaccinationSlopes); ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TNoticeController.java
@@ -53,10 +53,11 @@ * 获取项目组管理列表 */ @ApiOperation(value = "中台消息列表") @PostMapping(value = "/notice/list") @GetMapping(value = "/notice/list") public R<List<TNotice>> list() { Long userId = tokenService.getLoginUser().getUserId(); List<TNotice> list = noticeService.lambdaQuery().eq(TNotice::getUserId, userId + "").list(); List<TNotice> list = noticeService.lambdaQuery() .eq(TNotice::getStatus, 1).orderByDesc(TNotice::getCreateTime).eq(TNotice::getUserId, userId + "").list(); for (TNotice tNotice : list) { SysUser sysUser = sysUserService.selectUserById(Long.valueOf(tNotice.getCommitId())); if (sysUser!=null){ @@ -65,6 +66,18 @@ } return R.ok(list); } /** * 获取项目组管理列表 */ @ApiOperation(value = "点击跳转后") @GetMapping(value = "/open/notice/editStatus") public R editStatus(@RequestParam String id) { TNotice notice = noticeService.getById(id); notice.setStatus(2); noticeService.updateById(notice); return R.ok(); } } ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java
@@ -11,6 +11,7 @@ import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.exception.GlobalException; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.framework.web.service.TokenService; @@ -32,6 +33,7 @@ import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.locks.ReentrantLock; import java.util.stream.Collectors; /** @@ -48,6 +50,7 @@ public class TPedigreeChartController { @Resource private TPedigreeChartDetailService pedigreeChartDetailService; @Resource private TPedigreeChartService pedigreeChartService; @Resource @@ -65,6 +68,7 @@ @ApiOperation(value = "谱系图-获取谱系图分页列表",response = TPedigreeChartQuery.class) @PostMapping(value = "/api/t-pedigree-chart/pageList") public R<PageInfo<TPedigreeChartVO>> pageList(@RequestBody String param) { TPedigreeChartQuery query = JSON.parseObject(param, TPedigreeChartQuery.class); SysUser sysUser = sysUserService.selectUserById(tokenService.getLoginUser().getUserId()); if (sysUser.getRoleType().equals("2")){ @@ -77,6 +81,9 @@ return R.ok(new PageInfo<>()); } query.setProjectIds(projectIds); }else{ return R.ok(new PageInfo<>()); } }else if (!sysUser.getRoleType().equals("1")){ List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId()) @@ -88,6 +95,9 @@ return R.ok(new PageInfo<>()); } query.setProjectIds(projectIds); }else{ return R.ok(new PageInfo<>()); } } return R.ok(pedigreeChartService.pageList(query)); @@ -158,7 +168,6 @@ tPedigreeChartParentTwoDTO.setVaccinateTime(LocalDateTime.now()); tPedigreeChartParentTwoDTO.setStorageTime(LocalDateTime.now()); tPedigreeChartParentTwoDTO.setParentId(count.getId()); tPedigreeChartParentTwoDTO.setPedigreeChartId(parent.getId()); tPedigreeChartParentTwoDTO.setId(null); pedigreeChartDetailService.save(tPedigreeChartParentTwoDTO); @@ -177,6 +186,7 @@ tPedigreeChartParentThreeDTO.setParentId(childCount.getId()); tPedigreeChartParentThreeDTO.setPedigreeChartId(parent.getId()); tPedigreeChartParentThreeDTO.setType(1); tPedigreeChartParentThreeDTO.setVaccinateId(loginUser.getUserId()+""); if (tPedigreeChartParentThreeDTO.getStatus()==null){ tPedigreeChartParentThreeDTO.setStatus(1); } @@ -196,9 +206,13 @@ String child = JSON.toJSONString(oneLevel); parent.setJson(child); pedigreeChartService.updateById(parent); } // 新增消息 TNotice tNotice = new TNotice(); List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId()) List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId,parent.getProjectId() ) .eq(TProjectTeamStaff::getRoleType, 2) .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); if (!allProjectIds.isEmpty()){ @@ -214,8 +228,6 @@ tNotice.setDataId(parent.getId()); tNotice.setNoticeType(4); noticeService.save(tNotice); } } return R.ok(); } @@ -242,6 +254,16 @@ parent.setJson(child); } pedigreeChartService.updateById(parent); if (parent.getGenerationType()==1){ TPedigreeChartDetail one = pedigreeChartDetailService.getOne(new LambdaQueryWrapper<TPedigreeChartDetail>() .eq(TPedigreeChartDetail::getPedigreeChartId, "0")); if (one!=null){ one.setStrainName(parent.getStrainName()); one.setStrainCode(parent.getStrainCode()); pedigreeChartDetailService.updateById( one); } } // pedigreeChartDetailService.remove(new LambdaQueryWrapper<TPedigreeChartDetail>() // .eq(TPedigreeChartDetail::getPedigreeChartId, dto.getParent().getId())); // if (!dto.getOne().isEmpty()){ @@ -335,7 +357,7 @@ } TPedigreeChartDetailDTO dto = JSON.parseObject(param, TPedigreeChartDetailDTO.class); if (dto.getParentId().equals("0")){ // 新增祖代 // 新增祖/母代 dto.setParentId("0"); pedigreeChartDetailService.save(dto); }else{ ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectGroupController.java
@@ -10,6 +10,7 @@ import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.framework.web.domain.server.Sys; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.ChoiceDTO; import com.ruoyi.system.dto.SysUserDTO; import com.ruoyi.system.dto.TProjectTeamDTO; @@ -31,6 +32,7 @@ import javax.annotation.Resource; import java.util.List; import java.util.stream.Collectors; /** * <p> @@ -50,6 +52,8 @@ private TProjectTeamStaffService projectTeamStaffService; @Resource private ISysUserService sysUserService; @Resource private TokenService tokenService; /** * 获取项目组管理列表 */ @@ -64,7 +68,17 @@ @PostMapping(value = "/api/t_project_team/pageList1") public R<PageInfo<TProjectTeamVO>> pageList1(@RequestBody String param) { TProjectTeamQuery query = JSON.parseObject(param, TProjectTeamQuery.class); return R.ok(projectTeamService.pageList(query)); Long userId = tokenService.getLoginUser().getUserId(); SysUser sysUser = sysUserService.selectUserById(userId); if (!sysUser.getRoleType().equals("1")){ List<String> projetIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, userId).list() .stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); if (projetIds.isEmpty()){ return R.ok(new PageInfo<>()); } query.setProjectIds(projetIds); } return R.ok(projectTeamService.pageList1(query)); } /** ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainReportController.java
@@ -61,24 +61,43 @@ @ApiOperation(value = "菌种报告库分页列表查询",tags = "菌种报告库",response = TStrainReportQuery.class) @PostMapping(value = "/api/t-strain-report/pageListAll") public R<PageInfo<TStrainReportVO>> pageListAll(@RequestBody String param) { TStrainReportQuery query = JSON.parseObject(param, TStrainReportQuery.class); LoginUser loginUser = tokenService.getLoginUser(); SysUser sysUser = sysUserService.selectUserById(loginUser.getUserId()); List<String> projectIds = new ArrayList<>(); if (!sysUser.getRoleType().equals("1")){ // 查询和自己相关的项目组id List<String> collect = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, sysUser.getUserId()).list() .stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); if (collect.isEmpty()){ collect.add("0"); if (sysUser.getRoleType().equals("2")){ List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId()) .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); if (!allProjectIds.isEmpty()){ List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds) .list().stream().map(TProjectTeam::getId).collect(Collectors.toList()); if (projectIds.isEmpty()){ return R.ok(new PageInfo<>()); } projectIds = collect; query.setProjectIds(projectIds); }else{ return R.ok(new PageInfo<>()); } TStrainReportQuery query = JSON.parseObject(param, TStrainReportQuery.class); }else if (!sysUser.getRoleType().equals("1")){ List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId()) .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); if (!allProjectIds.isEmpty()){ List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds) .eq(TProjectTeam::getStatus, 1).list().stream().map(TProjectTeam::getId).collect(Collectors.toList()); if (projectIds.isEmpty()){ return R.ok(new PageInfo<>()); } query.setProjectIds(projectIds); }else{ return R.ok(new PageInfo<>()); } } if (StringUtils.hasLength(query.getTime())){ query.setStartTime(query.getTime().split(" - ")[0]); query.setEndTime(query.getTime().split(" - ")[1]); } query.setProjectIds(projectIds); return R.ok(strainReportService.pageListAll(query)); } @ApiOperation(value = "获取菌种报告库操作评定分页列表",tags = "菌种报告库操作评定-菌种实验员",response = TStrainReportQuery.class) @@ -152,17 +171,22 @@ return R.ok(new PageInfo<>()); } query.setProjectIds(projectIds); }else { return R.ok(new PageInfo<>()); } }else if (!sysUser.getRoleType().equals("1")){ List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId()) .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); if (!allProjectIds.isEmpty()){ List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds) if (!allProjectIds.isEmpty()){ List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds) .eq(TProjectTeam::getStatus, 1).list().stream().map(TProjectTeam::getId).collect(Collectors.toList()); if (projectIds.isEmpty()){ return R.ok(new PageInfo<>()); } query.setProjectIds(projectIds); }else { return R.ok(new PageInfo<>()); } } return R.ok(strainReportService.pageListProject(query)); @@ -172,7 +196,7 @@ @ApiOperation(value = "菌种项目组评定详情",tags = "菌种项目组评定表") @GetMapping(value = "/open/t-strain-report/getDetailByIdProject") public R<TStrainReportDetailProjectVO> getDetailByIdProject(@RequestParam String id) { TProjectTeam byId = projectTeamService.getById(id); TProjectTeam project = projectTeamService.getById(id); TStrainReportDetailProjectVO tStrainReportDetailVO = new TStrainReportDetailProjectVO(); LoginUser loginUser = tokenService.getLoginUser(); @@ -183,6 +207,7 @@ if (strainReportIds.isEmpty())strainReportIds.add("0"); List<TStrainReportDetail> tStrainReportDetails = strainReportDetailService .list(new LambdaQueryWrapper<TStrainReportDetail>().in(TStrainReportDetail::getReportId,strainReportIds) .isNotNull(TStrainReportDetail::getExperimentId) .orderByDesc(TStrainReportDetail::getCreateTime)); BigDecimal sum = new BigDecimal("0"); BigDecimal sum1 = new BigDecimal("0"); @@ -197,47 +222,51 @@ .filter(e -> e.getReportId().equals(tStrainReport.getId())&& e.getEvaluateHumanType()==2).collect(Collectors.toList()); // 菌种工程积分 sum1 = tStrainReportDetails2.stream() .filter(e -> e.getEvaluateHumanType().equals(1)) .map(TStrainReportDetail::getEvaluateTotal) .reduce(BigDecimal::add) .orElse(BigDecimal.ZERO); // 菌种实验员积分 sum2 = tStrainReportDetails1.stream() sum1 = sum1.add(tStrainReportDetails2.stream() .filter(e -> e.getEvaluateHumanType().equals(2)) .map(TStrainReportDetail::getEvaluateTotal) .reduce(BigDecimal::add) .orElse(BigDecimal.ZERO); List<TStrainReportDetail> tStrainReportDetails3 = tStrainReportDetails.stream().filter(e -> e.getReportType() == 1).collect(Collectors.toList()); .orElse(BigDecimal.ZERO)); // 菌种实验员积分 sum2 = sum2.add(tStrainReportDetails1.stream() .filter(e -> e.getEvaluateHumanType().equals(1)&&e.getReportType()==1) .map(TStrainReportDetail::getEvaluateTotal) .reduce(BigDecimal::add) .orElse(BigDecimal.ZERO)); List<TStrainReportDetail> tStrainReportDetails3 = tStrainReportDetails.stream().filter(e -> e.getReportId().equals(tStrainReport.getId()) && e.getReportType() == 1).collect(Collectors.toList()); for (TStrainReportDetail tStrainReportDetail : tStrainReportDetails3) { // 根据评定等级统计失败次数 if (StringUtils.hasLength(tStrainReportDetail.getEvaluate())&& tStrainReportDetail.getEvaluate().split(",").length>=5){ if (tStrainReportDetail.getEvaluate().split(",")[4].equals("2")){ if (tStrainReportDetail.getEvaluate().split(",")[4].equals("-3")){ temp++; break; } } } } tStrainReportDetailVO.setTeamIntegral(sum); tStrainReportDetailVO.setTeamIntegral(sum1.add(sum2)); tStrainReportDetailVO.setEngineerIntegral(sum1); tStrainReportDetailVO.setExperimenterIntegral(sum2); tStrainReportDetailVO.setFailCount(temp); List<TStrainReport> strainReportIdsByProjectId = tStrainReports.stream().filter(e -> e.getProjectId().equals(byId.getId())).collect(Collectors.toList()); List<TStrainReport> strainReportIdsByProjectId = tStrainReports.stream().filter(e -> e.getProjectId().equals(project.getId())).collect(Collectors.toList()); if (!strainReportIdsByProjectId.isEmpty()){ tStrainReportDetailVO.setEndTime(strainReportIdsByProjectId.get(0).getEvaluateTime()); } tStrainReportDetailVO.setStartTime(byId.getCreateTime()); TProjectTeamStaff projectTeamStaff = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, byId.getId()) tStrainReportDetailVO.setStartTime(project.getCreateTime()); TProjectTeamStaff projectTeamStaff = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, project.getId()) .eq(TProjectTeamStaff::getRoleType, 2).one(); List<TStrainReportDetailExperimentVO> tStrainReportDetailExperimentVOS = new ArrayList<>(); if (sysUser.getRoleType().equals("4")){ TStrainReportDetailExperimentVO tStrainReportDetailExperimentVO = new TStrainReportDetailExperimentVO(); tStrainReportDetailExperimentVO.setUserName(sysUser.getNickName()); tStrainReportDetailExperimentVO.setHandleCount((int) tStrainReportDetails.stream().filter(e -> e.getExperimentId().equals(sysUser.getUserId() + "")).count()); tStrainReportDetailExperimentVO.setHandleCount((int) tStrainReportDetails.stream().filter(e -> e.getExperimentId()!=null&&e.getExperimentId().equals(sysUser.getUserId() + "")).count()); BigDecimal handleIntegral = tStrainReportDetails.stream() .filter(e -> e.getEvaluateHumanType().equals(1)&&e.getExperimentId().equals(sysUser.getUserId()+"")) .filter(e -> e.getEvaluateHumanType().equals(1)&&e.getExperimentId().equals(sysUser.getUserId()+"") &&e.getReportType()==1) .map(TStrainReportDetail::getEvaluateTotal) .reduce(BigDecimal::add) .orElse(BigDecimal.ZERO); @@ -245,8 +274,9 @@ List<TStrainReportDetail> strainReportDetails = tStrainReportDetails.stream().filter(e -> e.getExperimentId().equals(sysUser.getUserId() + "")).collect(Collectors.toList()); if (!strainReportDetails.isEmpty()){ tStrainReportDetailExperimentVO.setHandleStartTime(strainReportDetails.get(0).getCreateTime()); tStrainReportDetailExperimentVO.setHandleEndTime(strainReportDetails.get(strainReportDetails.size()-1).getCreateTime()); } tStrainReportDetailExperimentVO.setHandleStartTime(project.getCreateTime()); tStrainReportDetailExperimentVOS.add(tStrainReportDetailExperimentVO); tStrainReportDetailVO.setDetailExperimentVOS(tStrainReportDetailExperimentVOS); }else{ @@ -264,7 +294,8 @@ tStrainReportDetailVO.setDetailEngineerVO(tStrainReportDetailEngineerVO); List<String> userIds = new ArrayList<>(); List<TStrainReportDetailExperimentVO> tStrainReportDetailExperimentVOS1 = new ArrayList<>(); List<TStrainReportDetail> collect = tStrainReportDetails.stream().filter(e -> e.getEvaluateHumanType().equals(1)).collect(Collectors.toList()); List<TStrainReportDetail> collect = tStrainReportDetails.stream().filter(e -> e.getEvaluateHumanType().equals(1) &&e.getReportType()==1).collect(Collectors.toList()); for (TStrainReportDetail tStrainReportDetail : collect) { if (userIds.contains(tStrainReportDetail.getExperimentId())){ continue; @@ -274,20 +305,20 @@ tStrainReportDetailExperimentVO.setUserName(sysUserService.selectUserById(Long.valueOf(tStrainReportDetail.getExperimentId())).getNickName()); tStrainReportDetailExperimentVO.setHandleCount((int) collect.stream().filter(e -> e.getExperimentId().equals(tStrainReportDetail.getExperimentId())).count()); BigDecimal handleIntegral = collect.stream() .filter(e -> e.getEvaluateHumanType().equals(1)&&e.getExperimentId().equals(sysUser.getUserId()+"")) .filter(e -> e.getEvaluateHumanType().equals(1)&&e.getExperimentId().equals(sysUser.getUserId()+"") &&e.getReportType()==1) .map(TStrainReportDetail::getEvaluateTotal) .reduce(BigDecimal::add) .orElse(BigDecimal.ZERO); tStrainReportDetailExperimentVO.setHandleIntegral(handleIntegral); List<TStrainReportDetail> collect9 = collect.stream().filter(e -> e.getExperimentId().equals(sysUser.getUserId()+"")).collect(Collectors.toList()); if (!collect9.isEmpty()){ tStrainReportDetailExperimentVO.setHandleEndTime(collect9.get(collect9.size()-1).getCreateTime()); List<TStrainReportDetail> reportDetails = collect.stream().filter(e -> e.getExperimentId().equals(sysUser.getUserId()+"")).collect(Collectors.toList()); if (!reportDetails.isEmpty()){ tStrainReportDetailExperimentVO.setHandleEndTime(reportDetails.get(reportDetails.size()-1).getCreateTime()); } tStrainReportDetailExperimentVO.setHandleStartTime(byId.getCreateTime()); tStrainReportDetailExperimentVO.setHandleStartTime(project.getCreateTime()); tStrainReportDetailExperimentVOS1.add(tStrainReportDetailExperimentVO); } tStrainReportDetailVO.setDetailExperimentVOS(tStrainReportDetailExperimentVOS1); }else{ List<TStrainReportDetail> reportDetails = strainReportDetails.stream() .filter(e -> e.getEvaluateHumanType().equals(2) && e.getExperimentId().equals(projectTeamStaff.getUserId())).collect(Collectors.toList()); @@ -295,51 +326,56 @@ TStrainReportDetailEngineerVO tStrainReportDetailEngineerVO = new TStrainReportDetailEngineerVO(); tStrainReportDetailEngineerVO.setInnovateCount((int)reportDetails.stream().filter(e->e.getEvaluateType()!=null&&e.getEvaluateType().equals(1)).count()); tStrainReportDetailEngineerVO.setInnovateIntegral(reportDetails.stream().filter(e->e.getEvaluateType()!=null&&e.getEvaluateType().equals(1)).map(TStrainReportDetail::getEvaluateTotal).reduce(BigDecimal::add).orElse(BigDecimal.ZERO)); List<TStrainReportDetail> collect3 = reportDetails.stream().filter(e ->e.getEvaluateType()!=null&& e.getEvaluateType().equals(1)).collect(Collectors.toList()); if (!collect3.isEmpty()){ tStrainReportDetailEngineerVO.setInnovateStartTime(collect3.get(collect3.size()-1).getCreateTime()); List<TStrainReportDetail> tStrainReportDetails1 = reportDetails.stream().filter(e ->e.getEvaluateType()!=null&& e.getEvaluateType().equals(1)).collect(Collectors.toList()); if (!tStrainReportDetails1.isEmpty()){ tStrainReportDetailEngineerVO.setInnovateEndTime(tStrainReportDetails1.get(tStrainReportDetails1.size()-1).getCreateTime()); } tStrainReportDetailEngineerVO.setInnovateEndTime(byId.getCreateTime()); tStrainReportDetailEngineerVO.setInnovateStartTime(project.getCreateTime()); tStrainReportDetailEngineerVO.setRegulationCount((int)reportDetails.stream().filter(e->e.getEvaluateType()!=null&&e.getEvaluateType().equals(2)).count()); tStrainReportDetailEngineerVO.setRegulationIntegral(reportDetails.stream().filter(e->e.getEvaluateType()!=null&&e.getEvaluateType().equals(2)).map(TStrainReportDetail::getEvaluateTotal).reduce(BigDecimal::add).orElse(BigDecimal.ZERO)); List<TStrainReportDetail> collect4 = reportDetails.stream().filter(e -> e.getEvaluateType()!=null&&e.getEvaluateType().equals(2)).collect(Collectors.toList()); if (!collect4.isEmpty()){ tStrainReportDetailEngineerVO.setRegulationStartTime(collect4.get(collect4.size()-1).getCreateTime()); tStrainReportDetailEngineerVO.setRegulationEndTime(collect4.get(collect4.size()-1).getCreateTime()); } tStrainReportDetailEngineerVO.setRegulationEndTime(byId.getCreateTime()); tStrainReportDetailEngineerVO.setRegulationStartTime(project.getCreateTime()); tStrainReportDetailEngineerVO.setHandleCount((int)reportDetails.stream().filter(e->e.getReportType().equals(1)).count()); tStrainReportDetailEngineerVO.setHandleIntegral(reportDetails.stream().filter(e->e.getReportType().equals(1)).map(TStrainReportDetail::getEvaluateTotal).reduce(BigDecimal::add).orElse(BigDecimal.ZERO)); List<TStrainReportDetail> reportDetailList = reportDetails.stream().filter(e->e.getReportType().equals(1)).collect(Collectors.toList()); if (!reportDetailList.isEmpty()){ tStrainReportDetailEngineerVO.setHandleStartTime(reportDetailList.get(reportDetailList.size()-1).getCreateTime()); tStrainReportDetailEngineerVO.setHandleEndTime(reportDetailList.get(reportDetailList.size()-1).getCreateTime()); } tStrainReportDetailEngineerVO.setHandleEndTime(byId.getCreateTime()); tStrainReportDetailEngineerVO.setHandleStartTime(project.getCreateTime()); tStrainReportDetailVO.setDetailEngineerVO(tStrainReportDetailEngineerVO); List<String> userIds = new ArrayList<>(); List<TStrainReportDetailExperimentVO> tStrainReportDetailExperimentVOS1 = new ArrayList<>(); List<TStrainReportDetail> collect = tStrainReportDetails.stream().filter(e -> e.getEvaluateHumanType().equals(1)).collect(Collectors.toList()); for (TStrainReportDetail tStrainReportDetail : collect) { if (userIds.contains(tStrainReportDetail.getExperimentId())){ continue; } userIds.add(tStrainReportDetail.getExperimentId()); List<String> experimentIds = tStrainReportDetails.stream().filter(e -> e.getEvaluateHumanType().equals(1) &&e.getReportType()==1) .map(TStrainReportDetail::getExperimentId) .distinct() .collect(Collectors.toList()); List<TStrainReportDetail> tStrainReportDetails2 = tStrainReportDetails.stream().filter(e -> e.getEvaluateHumanType().equals(1)).collect(Collectors.toList()); for (String experimentId : experimentIds) { List<TStrainReportDetail> details = tStrainReportDetails2.stream().filter(e -> e.getExperimentId().equals(experimentId)).collect(Collectors.toList()); TStrainReportDetailExperimentVO tStrainReportDetailExperimentVO = new TStrainReportDetailExperimentVO(); tStrainReportDetailExperimentVO.setUserName(sysUserService.selectUserById(Long.valueOf(tStrainReportDetail.getExperimentId())).getNickName()); tStrainReportDetailExperimentVO.setHandleCount((int) collect.stream().filter(e -> e.getExperimentId().equals(tStrainReportDetail.getExperimentId())).count()); BigDecimal handleIntegral = collect.stream() .filter(e -> e.getEvaluateHumanType().equals(1)&&e.getExperimentId().equals(sysUser.getUserId()+"")) SysUser sysUser1 = sysUserService.selectUserById(Long.valueOf(experimentId)); tStrainReportDetailExperimentVO.setUserName(sysUser1.getNickName()); tStrainReportDetailExperimentVO.setHandleCount(details.size()); BigDecimal handleIntegral = details.stream() .filter(e -> e.getEvaluateHumanType().equals(1) &&e.getReportType()==1) .map(TStrainReportDetail::getEvaluateTotal) .reduce(BigDecimal::add) .orElse(BigDecimal.ZERO); tStrainReportDetailExperimentVO.setHandleIntegral(handleIntegral); List<TStrainReportDetail> collect9 = collect.stream().filter(e -> e.getExperimentId().equals(sysUser.getUserId()+"")).collect(Collectors.toList()); if (!collect9.isEmpty()){ tStrainReportDetailExperimentVO.setHandleEndTime(collect9.get(collect9.size()-1).getCreateTime()); if (!tStrainReportDetails2.isEmpty()){ tStrainReportDetailExperimentVO.setHandleEndTime(details.get(details.size()-1).getCreateTime()); } tStrainReportDetailExperimentVO.setHandleStartTime(byId.getCreateTime()); tStrainReportDetailExperimentVO.setHandleStartTime(project.getCreateTime()); tStrainReportDetailExperimentVOS1.add(tStrainReportDetailExperimentVO); } tStrainReportDetailVO.setDetailExperimentVOS(tStrainReportDetailExperimentVOS1); @@ -376,7 +412,7 @@ tStrainReportDetail.setEvaluateType(dto.getEvaluateType()); strainReportDetailService.save(tStrainReportDetail); if (dto.getIsDraft()==0){ // 新增消息 // 新增审批消息 TNotice tNotice = new TNotice(); TProjectTeamStaff projectTeamStaff = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, dto.getProjectId()) .eq(TProjectTeamStaff::getRoleType, 1).last("limit 1").one(); @@ -389,11 +425,8 @@ noticeService.save(tNotice); // 新增消息 TNotice tNotice1 = new TNotice(); TProjectTeamStaff tProjectTeamStaff = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, dto.getProjectId()) .eq(TProjectTeamStaff::getRoleType, 3).last("limit 1").one(); tNotice1.setCommitId(tokenService.getLoginUser().getUserId()+""); tNotice1.setUserId(tProjectTeamStaff.getUserId()); tNotice1.setUserId(dto.getExperimentId()); tNotice1.setStatus(1); tNotice1.setNoticeContent("您有【1】条菌种库操作菌种工程师已评定;"); tNotice1.setDataId(dto.getId()); @@ -484,7 +517,7 @@ // 新增消息 TNotice notice = new TNotice(); TProjectTeamStaff tProjectTeamStaff = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, strainReport.getProjectId()) .eq(TProjectTeamStaff::getRoleType, 1).last("limit 1").one(); .eq(TProjectTeamStaff::getRoleType, 2).last("limit 1").one(); notice.setCommitId(tokenService.getLoginUser().getUserId()+""); notice.setUserId(tProjectTeamStaff.getUserId()); @@ -527,8 +560,9 @@ strainReportDetailService.save(tStrainReportDetail); // 新增消息 TNotice notice = new TNotice(); TProjectTeamStaff projectTeamStaff = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, strainReport.getProjectId()) .eq(TProjectTeamStaff::getRoleType, 1).last("limit 1").one(); TProjectTeamStaff projectTeamStaff = projectTeamStaffService.lambdaQuery() .eq(TProjectTeamStaff::getTeamId, strainReport.getProjectId()) .eq(TProjectTeamStaff::getRoleType, 2).last("limit 1").one(); notice.setCommitId(tokenService.getLoginUser().getUserId()+""); notice.setUserId(projectTeamStaff.getUserId()); notice.setStatus(1); ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainValidationDataController.java
@@ -49,15 +49,46 @@ private TStrainValidationDataService strainValidationDataService; @Resource private TStrainValidationDataDetailService strainValidationDataDetailService; @Resource private ISysUserService sysUserService; /** * 菌种验证数据资料分页列表 */ //@PreAuthorize("@ss.hasPermi('system:strainValidationData:list')") @ApiOperation(value = "菌种验证数据资料-获取菌种验证数据资料分页列表",response = TStrainValidationDataQuery.class) @PostMapping(value = "/api/t-strain-validation-data/pageList") public R<PageInfo<TStrainValidationDataVO>> pageList(@RequestBody String param) { TStrainValidationDataQuery query = JSON.parseObject(param, TStrainValidationDataQuery.class); SysUser sysUser = sysUserService.selectUserById(tokenService.getLoginUser().getUserId()); if (sysUser.getRoleType().equals("2")){ List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId()) .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); if (!allProjectIds.isEmpty()){ List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds) .list().stream().map(TProjectTeam::getId).collect(Collectors.toList()); if (projectIds.isEmpty()){ return R.ok(new PageInfo<>()); } query.setProjectIds(projectIds); }else { return R.ok(new PageInfo<>()); } }else if (!sysUser.getRoleType().equals("1")){ List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId()) .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); if (!allProjectIds.isEmpty()){ List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds) .eq(TProjectTeam::getStatus, 1).list().stream().map(TProjectTeam::getId).collect(Collectors.toList()); if (projectIds.isEmpty()){ return R.ok(new PageInfo<>()); } query.setProjectIds(projectIds); }else { return R.ok(new PageInfo<>()); } } return R.ok(strainValidationDataService.pageList(query)); } /** ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTrainLibraryController.java
@@ -29,6 +29,7 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** @@ -54,6 +55,16 @@ private TProjectTeamService projectTeamService; @Resource private TProjectTeamStaffService projectTeamStaffService; @ApiOperation(value = "修改用户签名") @Log(title = "用户信息-修改用户签名", businessType = BusinessType.UPDATE) @PostMapping("/api/system/user/editSignPicture") public R editSignPicture(@RequestBody String param) { Long userId = tokenService.getLoginUser().getUserId(); SysUser user = JSON.parseObject(param,SysUser.class); user.setUserId(userId); return R.ok(sysUserService.editSignPicture(user)); } /** * 选择人员 */ @@ -99,7 +110,37 @@ @ApiOperation(value = "获取菌种库分页列表",tags = "菌种库管理",response = TTrainLibraryQuery.class) @PostMapping(value = "/api/t-train-library/pageList") public R<PageInfo<TTrainLibraryVO>> pageList(@RequestBody String param) { Long userId = tokenService.getLoginUser().getUserId(); SysUser sysUser = sysUserService.selectUserById(userId); TTrainLibraryQuery query = JSON.parseObject(param, TTrainLibraryQuery.class); if (sysUser.getRoleType().equals("2")){ List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId()) .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); if (!allProjectIds.isEmpty()){ List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds) .list().stream().map(TProjectTeam::getId).collect(Collectors.toList()); if (projectIds.isEmpty()){ return R.ok(new PageInfo<>()); } query.setProjectIds(projectIds); }else { return R.ok(new PageInfo<>()); } }else if (!sysUser.getRoleType().equals("1")){ List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId()) .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); if (!allProjectIds.isEmpty()){ List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds) .eq(TProjectTeam::getStatus, 1).list().stream().map(TProjectTeam::getId).collect(Collectors.toList()); if (projectIds.isEmpty()){ return R.ok(new PageInfo<>()); } query.setProjectIds(projectIds); }else { return R.ok(new PageInfo<>()); } } return R.ok(tTrainLibraryService.pageList(query)); } /** @@ -207,10 +248,17 @@ TTrainLibrary tTrainLibrary = new TTrainLibrary(); BeanUtils.copyProperties(dto,tTrainLibrary); if (i==0){ List<String> projectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId()) .eq(TProjectTeamStaff::getRoleType, 3) .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); if (projectIds.isEmpty()){ if (!projectIds.isEmpty()){ TProjectTeam projectTeam = projectTeamService.lambdaQuery().in(TProjectTeam::getId, projectIds) .eq(TProjectTeam::getStatus, 1) .orderByDesc(BaseModel::getCreateTime) .last("limit 1").one(); tTrainLibrary.setProjectId(projectTeam.getId()); dto.setProjectId(projectTeam.getId()); }else{ return R.fail("请先加入项目组"); } tTrainLibrary.setStatus(4); @@ -408,37 +456,62 @@ } AddTrainLibraryWarehousingDTO query = JSON.parseObject(param, AddTrainLibraryWarehousingDTO.class); TTrainLibrary tTrainLibrary = tTrainLibraryService.getById(query.getTrainLibraryId()); List<TTrainLibraryWarehousing> tTrainLibraryWarehousings = tTrainLibraryWarehousingService.lambdaQuery() .isNull(TTrainLibraryWarehousing::getConfirmTime) .eq(TTrainLibraryWarehousing::getTrainLibraryId, query.getTrainLibraryId()).list(); if (!tTrainLibraryWarehousings.isEmpty()){ for (TTrainLibraryWarehousing tTrainLibraryWarehousing : tTrainLibraryWarehousings) { if (Objects.equals(tTrainLibraryWarehousing.getType(), query.getType())){ if (query.getType()==1){ if (tTrainLibrary.getStatus()==1||tTrainLibrary.getStatus()==2||tTrainLibrary.getStatus()==4){ if(tTrainLibrary.getStatus()==2){ return R.fail("当前菌种为出库待确认状态,不可重复出库"); }else if (tTrainLibrary.getStatus()==1){ return R.fail("当前菌种为已出库状态,不可重复出库"); return R.fail("当前已存在该类型待确认出库记录"); }else{ return R.fail("当前菌种为入库待确认状态,不可出库"); return R.fail("当前已存在该类型待确认入库记录"); } } } } if (query.getType()==1){ tTrainLibrary.setStatus(2); } if (query.getType()==2){ if (tTrainLibrary.getStatus()==2||tTrainLibrary.getStatus()==3||tTrainLibrary.getStatus()==4){ if(tTrainLibrary.getStatus()==4){ return R.fail("当前菌种为入库待确认状态,不可重复入库"); }else if (tTrainLibrary.getStatus()==3){ return R.fail("当前菌种为已入库状态,不可重复入库"); }else{ return R.fail("当前菌种为出库待确认状态,不可入库"); } } tTrainLibrary.setStatus(4); } query.setHandleId(tokenService.getLoginUser().getUserId()); query.setBoundTime(LocalDateTime.now()); tTrainLibraryWarehousingService.save(query); tTrainLibraryService.updateById(tTrainLibrary); // 新增消息 TNotice tNotice = new TNotice(); TProjectTeamStaff tProjectTeamStaff = projectTeamStaffService.lambdaQuery() .eq(TProjectTeamStaff::getTeamId, tTrainLibrary.getProjectId()).eq(TProjectTeamStaff::getRoleType, 2).one(); tNotice.setUserId(tProjectTeamStaff.getUserId()); tNotice.setCommitId(tokenService.getLoginUser().getUserId()+""); tNotice.setStatus(1); StringBuilder content = new StringBuilder(); switch (tTrainLibrary.getType()){ case 1: content.append("【原始细胞库】"); break; case 2: content.append("【主细胞库】"); break; case 3: content.append("【生产细胞库】"); break; } switch (query.getType()){ case 1: tNotice.setNoticeContent("您有【1】条"+content+"出库记录等待签字确认;"); break; case 2: tNotice.setNoticeContent("您有【1】条"+content+"入库记录等待签字确认;"); break; } tNotice.setDataId(query.getId()); tNotice.setNoticeType(3); noticeService.save(tNotice); return R.ok(); } /** ruoyi-admin/src/main/resources/application-prod.yml
@@ -197,7 +197,7 @@ location: /file/ qrLocation: /file/qrCode/ accessPath: /file/ allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF|.xls|.xlsx|.rar|.zip|.rar url: prefix: https://xzgt.test.591taxi.cn:${server.port}${server.servlet.context-path} wx: ruoyi-admin/src/main/resources/application-test.yml
@@ -190,7 +190,7 @@ location: /file/ qrLocation: /file/qrCode/ accessPath: /file/ allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF|.xls|.xlsx|.rar|.zip|.rar url: # prefix: http://localhost:${server.port}${server.servlet.context-path} prefix: https://xzgt.test.591taxi.cn:${server.port}${server.servlet.context-path} ruoyi-admin/target/classes/application-prod.yml
@@ -197,7 +197,7 @@ location: /file/ qrLocation: /file/qrCode/ accessPath: /file/ allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF|.xls|.xlsx|.rar|.zip|.rar url: prefix: https://xzgt.test.591taxi.cn:${server.port}${server.servlet.context-path} wx: ruoyi-admin/target/classes/application-test.yml
@@ -190,7 +190,7 @@ location: /file/ qrLocation: /file/qrCode/ accessPath: /file/ allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF|.xls|.xlsx|.rar|.zip|.rar url: # prefix: http://localhost:${server.port}${server.servlet.context-path} prefix: https://xzgt.test.591taxi.cn:${server.port}${server.servlet.context-path} ruoyi-common/src/main/java/com/ruoyi/common/core/controller/FileController.java
@@ -47,19 +47,26 @@ } // 获取文件名称 String filename = mf.getOriginalFilename(); // 生成随机5位英文字母 String rename = ""; for (int i = 0; i < 5; i++) { rename += (char) (Math.random() * 26 + 'a'); } long l = System.currentTimeMillis(); // 获取文件后缀 String ext = filename.substring(filename.lastIndexOf("."), filename.length()); String temp = rename+l+filename; String ext = temp.substring(temp.lastIndexOf("."), temp.length()); // 检查文件类型 if (!fileUploadConfig.getAllowExt().contains(ext)) { return AjaxResult.error("上传文件格式不正确,仅支持" + fileUploadConfig.getAllowExt()); } File targetFile = new File(realPath, filename);//目标文件 File targetFile = new File(realPath, temp);//目标文件 //开始从源文件拷贝到目标文件 //传图片一步到位 mf.transferTo(targetFile); //拼接数据 // String imgstr = fileUploadConfig.getAccessPath() + TimeDir +"\\"+ filename; String imgstr = TimeDir +"/"+ filename; String imgstr = TimeDir +"/"+ temp; return AjaxResult.success(imgstr); } ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -56,6 +56,8 @@ @ApiModelProperty(value = "用户邮箱") private String email; /** 手机号码 */ //@Excel(name = "手机号码") @ApiModelProperty(value = "手机号码") @@ -130,7 +132,9 @@ @ApiModelProperty(value = "部门id集合") @TableField(exist = false) private List<String> deptIds; @ApiModelProperty(value = "用户签名") @TableField("sign_picture") private String signPicture; public String getRoleName() { ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java
@@ -7,6 +7,7 @@ import com.ruoyi.common.core.domain.model.LoginUserApplet; import com.ruoyi.common.exception.GlobalException; import com.ruoyi.common.exception.ServiceException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -68,7 +69,7 @@ { LoginUser loginUser = getLoginUser(ServletUtils.getRequest()); if (loginUser==null){ throw new GlobalException().setDetailMessage("登录失效",401); throw new ServiceException("401"); } return loginUser; } ruoyi-system/src/main/java/com/ruoyi/system/dto/ChoiceStrainDTO.java
@@ -16,6 +16,8 @@ private Integer roleType; @ApiModelProperty(value = "菌种报告库选择实验员项目组id") private String projectId; @ApiModelProperty(value = "名称") private String nickNameOrPhone; @ApiModelProperty(value = "前端忽略 人员ids") private List<String> userIds; } ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -187,4 +187,6 @@ List<ChoiceUserVO> choiceUserList(@Param("query")ChoiceStrainDTO query, @Param("pageInfo")PageInfo<ChoiceUserVO> pageInfo); List<SysUser> selectUserByUserNameLike(@Param("userName") String userName); int editSignPicture(SysUser user); } ruoyi-system/src/main/java/com/ruoyi/system/model/TObservationOfPetriDishes.java
@@ -53,7 +53,7 @@ @ApiModelProperty(value = "形态强壮度排名") @TableField("strength") private Integer strength; private String strength; } ruoyi-system/src/main/java/com/ruoyi/system/model/TPedigreeChart.java
@@ -55,11 +55,11 @@ @ApiModelProperty(value = "菌种源开始1母 2子 3孙 起传类型为母代存值") @TableField("strain_source_start") private Integer strainSourceStart; private String strainSourceStart; @ApiModelProperty(value = "菌种源结束1母 2子 3孙 起传类型为母代存值") @TableField("strain_source_end") private Integer strainSourceEnd; private String strainSourceEnd; @ApiModelProperty(value = "菌种传代生产谱系图 回显使用") @TableField(exist = false) private TPedigreeChartParentAllDetailDTO pedigreeChartParentAllDetailDTO; ruoyi-system/src/main/java/com/ruoyi/system/model/TVaccinationSlope.java
@@ -49,6 +49,9 @@ @ApiModelProperty(value = "操作人id") @TableField("handle_id") private String handleId; @ApiModelProperty(value = "操作人名称") @TableField(exist = false) private String handleName; @ApiModelProperty(value = "操作人签名") @TableField("handle_signature") ruoyi-system/src/main/java/com/ruoyi/system/query/TProjectTeamQuery.java
@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data @ApiModel(value = "项目组分页query") public class TProjectTeamQuery extends TimeRangeQueryBody { @@ -18,5 +20,7 @@ private String startTime1; @ApiModelProperty(value = "结束时间 前端忽略") private String endTime1; @ApiModelProperty(value = "项目组ids") private List<String> projectIds; } ruoyi-system/src/main/java/com/ruoyi/system/query/TStrainValidationDataQuery.java
@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data @ApiModel(value = "菌种验证数据资料分页列表query") public class TStrainValidationDataQuery extends TimeRangeQueryBody { @@ -21,6 +23,8 @@ private Integer isDraft; @ApiModelProperty(value = "类型 1原始细胞库 2主细胞库") private Integer strainType; @ApiModelProperty(value = "项目组ids") private List<String> projectIds; ruoyi-system/src/main/java/com/ruoyi/system/query/TTrainLibraryQuery.java
@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data @ApiModel(value = "菌种库管理分页query") public class TTrainLibraryQuery extends TimeRangeQueryBody { @@ -20,6 +22,8 @@ private Integer type; @ApiModelProperty(value = "是否草稿 0否1是") private Integer isDraft; @ApiModelProperty(value = "项目组ids") private List<String> projectIds; } ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -271,4 +271,6 @@ PageInfo<ChoiceUserVO> choiceUser(ChoiceDTO user); PageInfo<ChoiceUserVO> choiceUserList(ChoiceStrainDTO query); Integer editSignPicture(SysUser user); } ruoyi-system/src/main/java/com/ruoyi/system/service/TProjectTeamService.java
@@ -18,6 +18,7 @@ public interface TProjectTeamService extends IService<TProjectTeam> { PageInfo<TProjectTeamVO> pageList(TProjectTeamQuery query); PageInfo<TProjectTeamVO> pageList1(TProjectTeamQuery query); PageInfo<TProjectTeamVO> choiceProjectList(ChoiceProjectDTO query); } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -715,6 +715,11 @@ return pageInfo; } @Override public Integer editSignPicture(SysUser user) { return userMapper.editSignPicture(user); } // @Override // public UserInfoVo userInfo(Long userId) { // return userMapper.userInfo(userId); ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TProjectTeamServiceImpl.java
@@ -41,8 +41,30 @@ List<String> teamIds = list.stream().map(TProjectTeamVO::getId).collect(Collectors.toList()); List<SysUser> sysUsers = sysUserMapper.selectList(); if(!CollectionUtils.isEmpty(teamIds)){ List<TProjectTeamStaff> projectTeamStaffs = projectTeamStaffMapper.selectList(Wrappers.lambdaQuery(TProjectTeamStaff.class).in(TProjectTeamStaff::getTeamId, teamIds)); list.forEach(item->{ List<TProjectTeamStaff> projectTeamStaffList = projectTeamStaffs.stream().filter(staff -> staff.getTeamId().equals(item.getId())).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(projectTeamStaffList)){ List<String> staffIds = projectTeamStaffList.stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList()); List<SysUser> staffs = sysUsers.stream().filter(sysUser -> staffIds.contains(sysUser.getUserId()+"")).collect(Collectors.toList()); item.setStaffName(staffs.stream().map(SysUser::getNickName).collect(Collectors.joining(","))); } item.setStaffs(projectTeamStaffList); }); } pageInfo.setRecords(list); return pageInfo; } @Override public PageInfo<TProjectTeamVO> pageList1(TProjectTeamQuery query) { PageInfo<TProjectTeamVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<TProjectTeamVO> list = this.baseMapper.pageList(query,pageInfo); List<String> teamIds = list.stream().map(TProjectTeamVO::getId).collect(Collectors.toList()); List<SysUser> sysUsers = sysUserMapper.selectList(); if(!CollectionUtils.isEmpty(teamIds)){ List<TProjectTeamStaff> projectTeamStaffs = projectTeamStaffMapper.selectList(Wrappers.lambdaQuery(TProjectTeamStaff.class) .eq(TProjectTeamStaff::getRoleType,3).in(TProjectTeamStaff::getTeamId, teamIds)); .eq(TProjectTeamStaff::getRoleType,3) .in(TProjectTeamStaff::getTeamId, teamIds)); list.forEach(item->{ List<TProjectTeamStaff> projectTeamStaffList = projectTeamStaffs.stream().filter(staff -> staff.getTeamId().equals(item.getId())).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(projectTeamStaffList)){ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TStrainReportServiceImpl.java
@@ -77,23 +77,28 @@ .filter(e -> e.getReportId().equals(tStrainReport.getId())&& e.getEvaluateHumanType()==2).collect(Collectors.toList()); // 菌种工程积分 sum1 = tStrainReportDetails2.stream() sum1 = sum1.add(tStrainReportDetails2.stream() .filter(e -> e.getEvaluateHumanType().equals(2)) .map(TStrainReportDetail::getEvaluateTotal) .reduce(BigDecimal::add) .orElse(BigDecimal.ZERO); .orElse(BigDecimal.ZERO)); // 菌种实验员积分 sum2 = tStrainReportDetails1.stream() .filter(e -> e.getEvaluateHumanType().equals(1)) sum2 = sum2.add(tStrainReportDetails1.stream() .filter(e -> e.getEvaluateHumanType().equals(1) &&e.getReportType()==1) .map(TStrainReportDetail::getEvaluateTotal) .reduce(BigDecimal::add) .orElse(BigDecimal.ZERO); List<TStrainReportDetail> collect3 = tStrainReportDetails.stream().filter(e -> e.getReportType() == 1).collect(Collectors.toList()); for (TStrainReportDetail tStrainReportDetail : collect3) { .orElse(BigDecimal.ZERO)); List<TStrainReportDetail> tStrainReportDetails3 = tStrainReportDetails.stream().filter(e -> e.getReportId().equals(tStrainReport.getId()) && e.getReportType() == 1).collect(Collectors.toList()); for (TStrainReportDetail tStrainReportDetail : tStrainReportDetails3) { // 根据评定等级统计失败次数 if (StringUtils.hasLength(tStrainReportDetail.getEvaluate())&& tStrainReportDetail.getEvaluate().split(",").length>=5){ if (tStrainReportDetail.getEvaluate().split(",")[4].equals("2")){ if (tStrainReportDetail.getEvaluate().split(",")[4].equals("-3")){ temp++; break; } } } @@ -126,11 +131,13 @@ if (tStrainReportDetail.getExperimentId()!=null){ SysUser sysUser = sysUserMapper.selectUserById(Long.valueOf(tStrainReportDetail.getExperimentId())); tStrainReportVO.setExperimentName(sysUser.getNickName()); break; } }else if (tStrainReportDetail.getEvaluateHumanType()==2){ if (tStrainReportDetail.getExperimentId()!=null){ SysUser sysUser = sysUserMapper.selectUserById(Long.valueOf(tStrainReportDetail.getExperimentId())); tStrainReportVO.setExperimentName(sysUser.getNickName()); break; } } } ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -134,7 +134,7 @@ select u.user_id AS userId, u.dept_id AS deptId, u.user_name AS userName, u.nick_name AS nickName, u.email AS email, u.avatar AS avatar, u.phonenumber AS phonenumber, u.sex AS sex, u.status AS status, u.del_flag AS delFlag, u.login_ip AS loginIp, u.login_date AS loginDate, u.create_by AS createBy, u.create_time AS createTime, u.remark AS remark,u.ifBlack AS ifBlack, u.roleType, u.roleType,u.sign_picture as signPicture, ur.role_id AS roleId,sr.role_name AS roleName,u.deptName as deptName from sys_user u left join sys_user_role ur on u.user_id = ur.user_id @@ -272,6 +272,10 @@ #{id} </foreach> </if> <if test="query.nickNameOrPhone != null and query.nickNameOrPhone != ''"> and( nick_name LIKE concat('%', #{query.nickNameOrPhone}, '%') or phonenumber LIKE concat('%', #{query.nickNameOrPhone}, '%') ) </if> </select> <select id="selectUserByUserNameLike" resultType="com.ruoyi.common.core.domain.entity.SysUser"> select * from sys_user @@ -281,6 +285,9 @@ </if> </select> <update id="editSignPicture" parameterType="SysUser"> update sys_user set sign_picture = #{signPicture} where user_id = #{userId} </update> <insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId"> ruoyi-system/src/main/resources/mapper/system/TPedigreeChartMapper.xml
@@ -57,6 +57,7 @@ where pedigree_chart_id = #{query.id} and status = 1 and type = 1 and vaccinate_id is not null and preserve_id is null and disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </select> ruoyi-system/src/main/resources/mapper/system/TProjectTeamMapper.xml
@@ -33,6 +33,13 @@ <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> AND create_time BETWEEN #{query.startTime} AND #{query.endTime} </if> <if test="query.projectIds != null and query.projectIds.size()>0"> AND id IN <foreach collection="query.projectIds" close=")" open="(" item="id" separator=","> #{id} </foreach> </if> AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> ORDER BY create_time DESC ruoyi-system/src/main/resources/mapper/system/TStrainValidationDataMapper.xml
@@ -44,6 +44,12 @@ <if test="query.strainType != null"> and strain_type = #{query.strainType} </if> <if test="query.projectIds != null and query.projectIds.size() > 0"> and project_id in <foreach item="item" collection="query.projectIds" separator="," open="(" close=")" index=""> #{item} </foreach> </if> AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> order by create_time desc ruoyi-system/src/main/resources/mapper/system/TTrainLibraryMapper.xml
@@ -49,6 +49,12 @@ <if test="query.isDraft != null"> and is_draft = #{query.isDraft} </if> <if test="query.projectIds != null and query.projectIds.size() > 0"> and project_id in <foreach item="item" collection="query.projectIds" separator="," open="(" close=")" index=""> #{item} </foreach> </if> AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> order by create_time desc ruoyi-system/target/classes/mapper/system/SysUserMapper.xml
@@ -134,7 +134,7 @@ select u.user_id AS userId, u.dept_id AS deptId, u.user_name AS userName, u.nick_name AS nickName, u.email AS email, u.avatar AS avatar, u.phonenumber AS phonenumber, u.sex AS sex, u.status AS status, u.del_flag AS delFlag, u.login_ip AS loginIp, u.login_date AS loginDate, u.create_by AS createBy, u.create_time AS createTime, u.remark AS remark,u.ifBlack AS ifBlack, u.roleType, u.roleType,u.sign_picture as signPicture, ur.role_id AS roleId,sr.role_name AS roleName,u.deptName as deptName from sys_user u left join sys_user_role ur on u.user_id = ur.user_id @@ -265,23 +265,29 @@ <select id="choiceUserList" resultType="com.ruoyi.system.vo.ChoiceUserVO"> select * from sys_user where status = 0 and del_flag = 0 and roleType = #{query.roleType} <if test="query.userIds != null and query.userIds()>0"> where status = '0' and del_flag = '0' <if test="query.userIds != null and query.userIds.size()>0"> AND user_id IN <foreach collection="query.userIds" close=")" open="(" item="id" separator=","> #{id} </foreach> </if> <if test="query.nickNameOrPhone != null and query.nickNameOrPhone != ''"> and( nick_name LIKE concat('%', #{query.nickNameOrPhone}, '%') or phonenumber LIKE concat('%', #{query.nickNameOrPhone}, '%') ) </if> </select> <select id="selectUserByUserNameLike" resultType="com.ruoyi.common.core.domain.entity.SysUser"> select * from sys_user where 1=1 <if test="userName != null and userName != ''"> OR nick_name LIKE concat('%', #{userName}, '%') and nick_name LIKE concat('%', #{userName}, '%') </if> </select> <update id="editSignPicture" parameterType="SysUser"> update sys_user set sign_picture = #{signPicture} where user_id = #{userId} </update> <insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId"> @@ -375,7 +381,7 @@ </update> <delete id="deleteUserById" parameterType="Long"> update sys_user set del_flag = '2' where user_id = #{userId} delete sys_user where user_id = #{userId} </delete> <delete id="deleteUserByIds" parameterType="Long"> ruoyi-system/target/classes/mapper/system/TBreedingAndPreservationMapper.xml
@@ -46,6 +46,12 @@ <if test="query.isDraft != null and query.isDraft == 0"> and (status = 1 or status =2) </if> <if test="query.projectIds != null and query.projectIds.size() > 0"> and project_id in <foreach item="item" collection="query.projectIds" separator="," open="(" close=")" index=""> #{item} </foreach> </if> AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> ORDER BY create_time DESC ruoyi-system/target/classes/mapper/system/TPedigreeChartMapper.xml
@@ -35,6 +35,12 @@ <if test="query.generationType != null"> and generation_type = #{query.generationType} </if> <if test="query.projectIds != null and query.projectIds.size() > 0"> and project_id in <foreach item="item" collection="query.projectIds" separator="," open="(" close=")" index=""> #{item} </foreach> </if> AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> ORDER BY create_time DESC @@ -51,6 +57,7 @@ where pedigree_chart_id = #{query.id} and status = 1 and type = 1 and vaccinate_id is not null and preserve_id is null and disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </select> ruoyi-system/target/classes/mapper/system/TProjectTeamMapper.xml
@@ -20,7 +20,6 @@ id, team_name, person_charge, status, create_time, update_time, create_by, update_by, disabled </sql> <select id="pageList" resultType="com.ruoyi.system.vo.TProjectTeamVO"> SELECT <include refid="Base_Column_List" /> FROM t_project_team @@ -32,8 +31,14 @@ AND person_charge LIKE CONCAT('%', #{query.personCharge}, '%') </if> <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> AND create_time >= #{query.startTime} AND create_time <= #{query.endTime} AND create_time BETWEEN #{query.startTime} AND #{query.endTime} </if> <if test="query.projectIds != null and query.projectIds.size()>0"> AND id IN <foreach collection="query.projectIds" close=")" open="(" item="id" separator=","> #{id} </foreach> </if> AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> ruoyi-system/target/classes/mapper/system/TStrainReportMapper.xml
@@ -37,7 +37,10 @@ id, project_id, report_code, report_name, report_content, create_time, update_time, create_by, update_by, disabled, enclosure_name, enclosure_size, enclosure_url, status, experiment_id, evaluate, evaluate_total, audit_remark, audit_time, audit_id, evaluate_time, evaluate_id, is_draft, report_type, evaluate_human_type, evaluate_type </sql> <select id="pageList" resultType="com.ruoyi.system.vo.TStrainReportVO"> select t1.*,t2.team_name as teamName,t3.nick_name as experimentName,t4.nick_name as evaluateName from t_strain_report t1 select t1.*,t2.team_name as teamName,t3.nick_name as experimentName,t4.nick_name as evaluateName, t5.create_time as evaluateTime from t_strain_report t1 left join t_strain_report_detail t5 on t5.report_id = t1.id left join t_project_team t2 on t1.project_id = t2.id left join sys_user t3 on t3.user_id = t5.experiment_id @@ -66,7 +69,7 @@ </if> <if test="query.evaluateId != null and query.evaluateId.size()>0"> AND t1.evaluate_id IN AND t5.evaluate_id IN <foreach collection="query.evaluateId" close=")" open="(" item="id" separator=","> #{id} </foreach> @@ -84,8 +87,15 @@ and t1.team_name like concat('%',#{query.teamName},'%') </if> <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> and t1.evaluate_time between #{query.startTime} and #{query.endTime} and t1.create_time between #{query.startTime} and #{query.endTime} </if> <if test="query.projectIds != null and query.projectIds.size() > 0"> and t1.id in <foreach item="item" collection="query.projectIds" separator="," open="(" close=")" index=""> #{item} </foreach> </if> AND t1.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> ruoyi-system/target/classes/mapper/system/TStrainValidationDataMapper.xml
@@ -44,6 +44,12 @@ <if test="query.strainType != null"> and strain_type = #{query.strainType} </if> <if test="query.projectIds != null and query.projectIds.size() > 0"> and project_id in <foreach item="item" collection="query.projectIds" separator="," open="(" close=")" index=""> #{item} </foreach> </if> AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> order by create_time desc ruoyi-system/target/classes/mapper/system/TTrainLibraryMapper.xml
@@ -49,6 +49,12 @@ <if test="query.isDraft != null"> and is_draft = #{query.isDraft} </if> <if test="query.projectIds != null and query.projectIds.size() > 0"> and project_id in <foreach item="item" collection="query.projectIds" separator="," open="(" close=")" index=""> #{item} </foreach> </if> AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> order by create_time desc