package com.ruoyi.web.controller.api; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.R; 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.utils.bean.BeanUtils; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.*; import com.ruoyi.system.model.*; import com.ruoyi.system.query.TStrainReportProjectQuery; import com.ruoyi.system.query.TStrainReportQuery; import com.ruoyi.system.query.TTrainLibraryDetailQuery; import com.ruoyi.system.query.TTrainLibraryQuery; import com.ruoyi.system.service.*; import com.ruoyi.system.vo.*; import io.swagger.annotations.ApiOperation; import jdk.nashorn.internal.parser.Token; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.math.BigDecimal; import java.sql.Array; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** *

* 菌种报告库 前端控制器 *

* * @author 无关风月 * @since 2025-04-12 */ @RestController @RequestMapping("") public class TStrainReportController { @Resource private TStrainReportService strainReportService; @Resource private TStrainReportDetailService strainReportDetailService; @Resource private ISysUserService sysUserService; @Resource private TokenService tokenService; @Resource private TProjectTeamService projectTeamService; @Resource private TProjectTeamStaffService projectTeamStaffService; //@PreAuthorize("@ss.hasPermi('system:strainReport:pageListAll')") @ApiOperation(value = "菌种报告库分页列表查询",tags = "菌种报告库",response = TStrainReportQuery.class) @PostMapping(value = "/api/t-strain-report/pageListAll") public R> pageListAll(@RequestBody String param) { LoginUser loginUser = tokenService.getLoginUser(); SysUser sysUser = sysUserService.selectUserById(loginUser.getUserId()); List projectIds = new ArrayList<>(); if (!sysUser.getRoleType().equals("1")){ // 查询和自己相关的项目组id List collect = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, sysUser.getUserId()).list() .stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); if (collect.isEmpty()){ collect.add("0"); } projectIds = collect; } TStrainReportQuery query = JSON.parseObject(param, TStrainReportQuery.class); 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)); } //@PreAuthorize("@ss.hasPermi('system:strainReport:list')") @ApiOperation(value = "获取菌种报告库操作评定分页列表",tags = "菌种报告库操作评定-菌种实验员",response = TStrainReportQuery.class) @PostMapping(value = "/api/t-strain-report/pageList") public R> pageList(@RequestBody String param) { TStrainReportQuery query = JSON.parseObject(param, TStrainReportQuery.class); if (StringUtils.hasLength(query.getTime())){ query.setStartTime(query.getTime().split(" - ")[0]); query.setEndTime(query.getTime().split(" - ")[1]); } LoginUser loginUser = tokenService.getLoginUser(); SysUser sysUser = sysUserService.selectUserById(loginUser.getUserId()); query.setUserId(sysUser.getUserId()+""); if (StringUtils.hasLength(query.getEvaluateName())){ List strings = new ArrayList<>(); List sysUser1 = sysUserService.selectUserByUserNameLike(query.getEvaluateName()); if (sysUser1.isEmpty()){ strings.add("0"); }else{ strings = sysUser1.stream().map(SysUser::getUserId).map(String::valueOf).collect(Collectors.toList()); query.setEvaluateId(strings); } } return R.ok(strainReportService.pageList(query)); } //@PreAuthorize("@ss.hasPermi('system:strainReport:detail')") @ApiOperation(value = "查看菌种库操作评定详情",tags = "菌种库操作评定-菌种实验员") @GetMapping(value = "/open/t-strain-report/getDetailById") public R getDetailById(@RequestParam String id) { TStrainReportDetailVO tStrainReportDetailVO = new TStrainReportDetailVO(); TStrainReport strainReport = strainReportService.getById(id); TStrainReportDetail one = strainReportDetailService.getOne(new LambdaQueryWrapper() .eq(TStrainReportDetail::getReportId, strainReport.getId()) .eq(TStrainReportDetail::getEvaluateHumanType, 1) .eq(TStrainReportDetail::getExperimentId, tokenService.getLoginUser().getUserId())); if (one!=null){ tStrainReportDetailVO.setEvaluate(one.getEvaluate()); } BeanUtils.copyProperties(strainReport, tStrainReportDetailVO); if (strainReport.getEvaluateId() != null){ SysUser sysUser = sysUserService.selectUserById(Long.valueOf(strainReport.getEvaluateId())); if (sysUser != null){ tStrainReportDetailVO.setEvaluateName(sysUser.getNickName()); } } return R.ok(tStrainReportDetailVO); } //@PreAuthorize("@ss.hasPermi('system:strainReportProject:pageListProject')") @ApiOperation(value = "获取菌种项目组评定分页列表",tags = "菌种项目组评定表",response = TStrainReportProjectQuery.class) @PostMapping(value = "/api/t-strain-report/pageListProject") public R> pageListProject(@RequestBody String param) { TStrainReportProjectQuery query = JSON.parseObject(param, TStrainReportProjectQuery.class); if (StringUtils.hasLength(query.getTime())){ query.setStartTime(query.getTime().split(" - ")[0]); query.setEndTime(query.getTime().split(" - ")[1]); } LoginUser loginUser = tokenService.getLoginUser(); SysUser sysUser = sysUserService.selectUserById(loginUser.getUserId()); List projectIds = new ArrayList<>(); if (!sysUser.getRoleType().equals("1")){ // 查询和自己相关的项目组id List collect = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, sysUser.getUserId()).list() .stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); if (collect.isEmpty()){ collect.add("0"); } projectIds = collect; } query.setProjectIds(projectIds); return R.ok(strainReportService.pageListProject(query)); } @ApiOperation(value = "菌种项目组评定详情",tags = "菌种项目组评定表") @GetMapping(value = "/open/t-strain-report/getDetailByIdProject") public R getDetailByIdProject(@RequestParam String id) { TProjectTeam byId = projectTeamService.getById(id); TStrainReportDetailProjectVO tStrainReportDetailVO = new TStrainReportDetailProjectVO(); LoginUser loginUser = tokenService.getLoginUser(); SysUser sysUser = sysUserService.selectUserById(loginUser.getUserId()); List tStrainReports = strainReportService.list(new LambdaQueryWrapper() .eq(TStrainReport::getStatus,3).eq(TStrainReport::getProjectId,id)); List collect7 = tStrainReports.stream().map(TStrainReport::getId).collect(Collectors.toList()); if (collect7.isEmpty())collect7.add("0"); List tStrainReportDetails = strainReportDetailService .list(new LambdaQueryWrapper().in(TStrainReportDetail::getReportId,collect7) .orderByDesc(TStrainReportDetail::getCreateTime)); BigDecimal sum = new BigDecimal("0"); BigDecimal sum1 = new BigDecimal("0"); BigDecimal sum2 = new BigDecimal("0"); Integer temp = 0; for (TStrainReport tStrainReport : tStrainReports) { List collect1 = tStrainReportDetails.stream() .filter(e -> e.getReportId().equals(tStrainReport.getId())&& e.getEvaluateHumanType()==1).collect(Collectors.toList()); List collect2 = tStrainReportDetails.stream() .filter(e -> e.getReportId().equals(tStrainReport.getId())&& e.getEvaluateHumanType()==2).collect(Collectors.toList()); // 菌种工程积分 sum1 = collect2.stream() .filter(e -> e.getEvaluateHumanType().equals(1)) .map(TStrainReportDetail::getEvaluateTotal) .reduce(BigDecimal::add) .orElse(BigDecimal.ZERO); // 菌种实验员积分 sum2 = collect1.stream() .filter(e -> e.getEvaluateHumanType().equals(2)) .map(TStrainReportDetail::getEvaluateTotal) .reduce(BigDecimal::add) .orElse(BigDecimal.ZERO); List collect3 = tStrainReportDetails.stream().filter(e -> e.getReportType() == 1).collect(Collectors.toList()); for (TStrainReportDetail tStrainReportDetail : collect3) { // 根据评定等级统计失败次数 if (StringUtils.hasLength(tStrainReportDetail.getEvaluate())&& tStrainReportDetail.getEvaluate().split(",").length>=5){ if (tStrainReportDetail.getEvaluate().split(",")[4].equals("2")){ temp++; } } } } tStrainReportDetailVO.setTeamIntegral(sum); tStrainReportDetailVO.setEngineerIntegral(sum1); tStrainReportDetailVO.setExperimenterIntegral(sum2); tStrainReportDetailVO.setFailCount(temp); List collect1 = tStrainReports.stream().filter(e -> e.getProjectId().equals(byId.getId())).collect(Collectors.toList()); if (!collect1.isEmpty()){ tStrainReportDetailVO.setEndTime(collect1.get(0).getEvaluateTime()); } tStrainReportDetailVO.setStartTime(byId.getCreateTime()); TProjectTeamStaff one1 = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, byId.getId()) .eq(TProjectTeamStaff::getRoleType, 2).one(); List strings = new ArrayList<>(); List 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()); BigDecimal handleIntegral = tStrainReportDetails.stream() .filter(e -> e.getEvaluateHumanType().equals(1)&&e.getExperimentId().equals(sysUser.getUserId()+"")) .map(TStrainReportDetail::getEvaluateTotal) .reduce(BigDecimal::add) .orElse(BigDecimal.ZERO); tStrainReportDetailExperimentVO.setHandleIntegral(handleIntegral); List collect = tStrainReportDetails.stream().filter(e -> e.getExperimentId().equals(sysUser.getUserId() + "")).collect(Collectors.toList()); if (!collect.isEmpty()){ tStrainReportDetailExperimentVO.setHandleStartTime(collect.get(0).getCreateTime()); } tStrainReportDetailExperimentVOS.add(tStrainReportDetailExperimentVO); tStrainReportDetailVO.setDetailExperimentVOS(tStrainReportDetailExperimentVOS); }else{ List collect6 = tStrainReportDetails.stream() .filter(e -> e.getEvaluateHumanType() == 2&& e.getExperimentId().equals(one1.getUserId())).collect(Collectors.toList()); if (collect6.isEmpty()){ TStrainReportDetailEngineerVO tStrainReportDetailEngineerVO = new TStrainReportDetailEngineerVO(); tStrainReportDetailEngineerVO.setInnovateCount(0); tStrainReportDetailEngineerVO.setInnovateIntegral(BigDecimal.ZERO); tStrainReportDetailEngineerVO.setRegulationCount(0); tStrainReportDetailEngineerVO.setRegulationIntegral(BigDecimal.ZERO); tStrainReportDetailEngineerVO.setHandleCount(0); tStrainReportDetailEngineerVO.setHandleIntegral(BigDecimal.ZERO); tStrainReportDetailVO.setDetailEngineerVO(tStrainReportDetailEngineerVO); List userIds = new ArrayList<>(); List tStrainReportDetailExperimentVOS1 = new ArrayList<>(); List 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()); 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()+"")) .map(TStrainReportDetail::getEvaluateTotal) .reduce(BigDecimal::add) .orElse(BigDecimal.ZERO); tStrainReportDetailExperimentVO.setHandleIntegral(handleIntegral); List collect9 = collect.stream().filter(e -> e.getExperimentId().equals(sysUser.getUserId()+"")).collect(Collectors.toList()); if (!collect9.isEmpty()){ tStrainReportDetailExperimentVO.setHandleEndTime(collect9.get(collect9.size()-1).getCreateTime()); } tStrainReportDetailExperimentVO.setHandleStartTime(byId.getCreateTime()); tStrainReportDetailExperimentVOS1.add(tStrainReportDetailExperimentVO); } tStrainReportDetailVO.setDetailExperimentVOS(tStrainReportDetailExperimentVOS1); }else{ List collect2 = collect6.stream() .filter(e -> e.getEvaluateHumanType().equals(2) && e.getExperimentId().equals(one1.getUserId())).collect(Collectors.toList()); TStrainReportDetailEngineerVO tStrainReportDetailEngineerVO = new TStrainReportDetailEngineerVO(); tStrainReportDetailEngineerVO.setInnovateCount((int)collect2.stream().filter(e->e.getEvaluateType().equals(1)).count()); tStrainReportDetailEngineerVO.setInnovateIntegral(collect2.stream().filter(e->e.getEvaluateType().equals(1)).map(TStrainReportDetail::getEvaluateTotal).reduce(BigDecimal::add).orElse(BigDecimal.ZERO)); List collect3 = collect2.stream().filter(e -> e.getEvaluateType().equals(1)).collect(Collectors.toList()); if (!collect3.isEmpty()){ tStrainReportDetailEngineerVO.setInnovateStartTime(collect3.get(collect3.size()-1).getCreateTime()); } tStrainReportDetailEngineerVO.setInnovateEndTime(byId.getCreateTime()); tStrainReportDetailEngineerVO.setRegulationCount((int)collect2.stream().filter(e->e.getEvaluateType().equals(2)).count()); tStrainReportDetailEngineerVO.setRegulationIntegral(collect2.stream().filter(e->e.getEvaluateType().equals(2)).map(TStrainReportDetail::getEvaluateTotal).reduce(BigDecimal::add).orElse(BigDecimal.ZERO)); List collect4 = collect2.stream().filter(e -> e.getEvaluateType().equals(2)).collect(Collectors.toList()); if (!collect4.isEmpty()){ tStrainReportDetailEngineerVO.setRegulationStartTime(collect4.get(collect4.size()-1).getCreateTime()); } tStrainReportDetailEngineerVO.setRegulationEndTime(byId.getCreateTime()); tStrainReportDetailEngineerVO.setHandleCount((int)collect2.stream().filter(e->e.getReportType().equals(1)).count()); tStrainReportDetailEngineerVO.setHandleIntegral(collect2.stream().filter(e->e.getReportType().equals(1)).map(TStrainReportDetail::getEvaluateTotal).reduce(BigDecimal::add).orElse(BigDecimal.ZERO)); List collect5 = collect2.stream().filter(e->e.getReportType().equals(1)).collect(Collectors.toList()); if (!collect5.isEmpty()){ tStrainReportDetailEngineerVO.setHandleStartTime(collect5.get(collect5.size()-1).getCreateTime()); } tStrainReportDetailEngineerVO.setHandleEndTime(byId.getCreateTime()); tStrainReportDetailVO.setDetailEngineerVO(tStrainReportDetailEngineerVO); List userIds = new ArrayList<>(); List tStrainReportDetailExperimentVOS1 = new ArrayList<>(); List 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()); 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()+"")) .map(TStrainReportDetail::getEvaluateTotal) .reduce(BigDecimal::add) .orElse(BigDecimal.ZERO); tStrainReportDetailExperimentVO.setHandleIntegral(handleIntegral); List collect9 = collect.stream().filter(e -> e.getExperimentId().equals(sysUser.getUserId()+"")).collect(Collectors.toList()); if (!collect9.isEmpty()){ tStrainReportDetailExperimentVO.setHandleEndTime(collect9.get(collect9.size()-1).getCreateTime()); } tStrainReportDetailExperimentVO.setHandleStartTime(byId.getCreateTime()); tStrainReportDetailExperimentVOS1.add(tStrainReportDetailExperimentVO); } tStrainReportDetailVO.setDetailExperimentVOS(tStrainReportDetailExperimentVOS1); } } return R.ok(tStrainReportDetailVO); } @Resource private TNoticeService noticeService; /** * 新增报告 */ //@PreAuthorize("@ss.hasPermi('system:strainReport:add')") @Log(title = "菌种库报告管理-新增报告", businessType = BusinessType.INSERT) @ApiOperation(value = "新增报告",tags = "菌种报告库",response = TStrainReportDTO.class) @PostMapping(value = "/api/t-strain-report/add") public R add(@RequestBody String param) { int size = strainReportService.lambdaQuery().list().size(); TStrainReportDTO dto = JSON.parseObject(param,TStrainReportDTO.class); dto.setStatus(1); TProjectTeam projectTeam = projectTeamService.getById(dto.getProjectId()); dto.setReportCode(projectTeam.getTeamName()+" - S"+dto.getReportType()+" - "+String.format("%03d", size+1)); dto.setCommitId(tokenService.getLoginUser().getUserId()+""); dto.setCommitTime(LocalDateTime.now()); strainReportService.save(dto); TStrainReportDetail tStrainReportDetail = new TStrainReportDetail(); tStrainReportDetail.setReportId(dto.getId()); tStrainReportDetail.setEvaluateId(tokenService.getLoginUser().getUserId()+""); tStrainReportDetail.setExperimentId(dto.getExperimentId()); tStrainReportDetail.setEvaluate(dto.getEvaluate()); tStrainReportDetail.setEvaluateTotal(dto.getEvaluateTotal()); tStrainReportDetail.setEvaluateHumanType(1); tStrainReportDetail.setReportType(dto.getReportType()); tStrainReportDetail.setEvaluateType(dto.getEvaluateType()); strainReportDetailService.save(tStrainReportDetail); if (dto.getIsDraft()==0){ // 新增消息 TNotice tNotice = new TNotice(); TProjectTeamStaff one = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, dto.getProjectId()) .eq(TProjectTeamStaff::getRoleType, 1).last("limit 1").one(); tNotice.setCommitId(tokenService.getLoginUser().getUserId()+""); tNotice.setUserId(one.getUserId()); tNotice.setStatus(1); tNotice.setNoticeContent("您有【1】条【菌种报告】【报告库"+dto.getReportType()+"】等待审核"); tNotice.setDataId(dto.getId()); tNotice.setNoticeType(1); noticeService.save(tNotice); // 新增消息 TNotice tNotice1 = new TNotice(); TProjectTeamStaff one1 = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, dto.getProjectId()) .eq(TProjectTeamStaff::getRoleType, 3).last("limit 1").one(); tNotice1.setCommitId(tokenService.getLoginUser().getUserId()+""); tNotice1.setUserId(one1.getUserId()); tNotice1.setStatus(1); tNotice1.setNoticeContent("您有【1】条菌种库操作菌种工程师已评定;"); tNotice1.setDataId(dto.getId()); tNotice1.setNoticeType(9); noticeService.save(tNotice1); } return R.ok(); } /** * 新增报告 */ //@PreAuthorize("@ss.hasPermi('system:strainReport:update')") @Log(title = "菌种库报告管理-编辑报告", businessType = BusinessType.UPDATE) @ApiOperation(value = "编辑报告",tags = "菌种报告库",response = TStrainReportDTO.class) @PostMapping(value = "/api/t-strain-report/update") public R update(@RequestBody String param) { TStrainReportDTO dto = JSON.parseObject(param,TStrainReportDTO.class); dto.setStatus(1); strainReportService.updateById(dto); TStrainReportDetail tStrainReportDetail = strainReportDetailService.lambdaQuery().eq(TStrainReportDetail::getReportId, dto.getId()) .eq(TStrainReportDetail::getEvaluateHumanType, 1).one(); tStrainReportDetail.setReportId(dto.getId()); tStrainReportDetail.setExperimentId(dto.getExperimentId()); tStrainReportDetail.setEvaluate(dto.getEvaluate()); tStrainReportDetail.setEvaluateTotal(dto.getEvaluateTotal()); tStrainReportDetail.setEvaluateHumanType(1); strainReportDetailService.updateById(tStrainReportDetail); if (dto.getIsDraft()==0){ // 新增消息 TNotice tNotice = new TNotice(); TProjectTeamStaff one = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, dto.getProjectId()) .eq(TProjectTeamStaff::getRoleType, 1).last("limit 1").one(); tNotice.setCommitId(tokenService.getLoginUser().getUserId()+""); tNotice.setUserId(one.getUserId()); tNotice.setStatus(1); tNotice.setNoticeContent("您有【1】条【菌种报告】【报告库"+dto.getReportType()+"】等待审核"); tNotice.setDataId(dto.getId()); tNotice.setNoticeType(1); noticeService.save(tNotice); } return R.ok(); } /** * 菌种工程师撤销审批 */ //@PreAuthorize("@ss.hasPermi('system:strainReport:cancelReport')") @Log(title = "菌种库报告管理-菌种工程师撤销审批", businessType = BusinessType.UPDATE) @ApiOperation(value = "菌种工程师撤销审批",tags = "菌种报告库") @PostMapping(value = "/api/t-strain-report/cancelReport") public R cancelReport(@RequestBody String id) { TStrainReport strainReport = strainReportService.getById(id); strainReport.setIsDraft(1); strainReport.setStatus(1); strainReportService.updateById(strainReport); return R.ok(); } /** * 菌种工程师撤销审批 */ //@PreAuthorize("@ss.hasPermi('system:strainReport:auditReport')") @Log(title = "菌种库报告管理-菌种审批人审批", businessType = BusinessType.UPDATE) @ApiOperation(value = "菌种审批人审批",tags = "菌种报告库",response = TStrainReportAuditDTO.class) @PostMapping(value = "/api/t-strain-report/auditReport") public R auditReport(@RequestBody String param) { LoginUser loginUser = tokenService.getLoginUser(); if (loginUser==null){ return R.fail(401,"登陆失效"); } TStrainReportAuditDTO dto = JSON.parseObject(param,TStrainReportAuditDTO.class); TStrainReport strainReport = strainReportService.getById(dto.getId()); strainReport.setAuditRemark(dto.getAuditRemark()); strainReport.setAuditId(loginUser.getUserId()+""); strainReport.setAuditTime(LocalDateTime.now()); strainReport.setStatus(dto.getStatus()); strainReportService.updateById(strainReport); // 新增消息 TNotice tNotice = new TNotice(); TProjectTeamStaff one = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, strainReport.getProjectId()) .eq(TProjectTeamStaff::getRoleType, 1).last("limit 1").one(); tNotice.setCommitId(tokenService.getLoginUser().getUserId()+""); tNotice.setUserId(tokenService.getLoginUser().getUserId()+""); tNotice.setStatus(1); tNotice.setNoticeContent("您有【1】条【菌种报告】【报告库"+strainReport.getReportType()+"】等待评定"); tNotice.setDataId(dto.getId()); tNotice.setNoticeType(2); noticeService.save(tNotice); // 新增消息 TNotice tNotice1 = new TNotice(); TProjectTeamStaff one1 = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, strainReport.getProjectId()) .eq(TProjectTeamStaff::getRoleType, 1).last("limit 1").one(); tNotice1.setCommitId(tokenService.getLoginUser().getUserId()+""); tNotice1.setUserId(one1.getUserId()); tNotice1.setStatus(1); String temp=dto.getStatus()==2?"通过":"驳回"; tNotice1.setNoticeContent("您有【1】条【菌种报告】【报告库"+strainReport.getReportType()+"】菌种审批人已操作【" +temp+"】"); tNotice1.setDataId(dto.getId()); tNotice1.setNoticeType(7); noticeService.save(tNotice1); return R.ok(); } /** */ //@PreAuthorize("@ss.hasPermi('system:strainReport:auditReport')") @Log(title = "菌种库报告管理-菌种审批人/超级管理员评定", businessType = BusinessType.UPDATE) @ApiOperation(value = "菌种审批人/超级管理员评定",tags = "菌种报告库",response = TStrainReportEvaluateDTO.class) @PostMapping(value = "/api/t-strain-report/evaluateReport") public R evaluateReport(@RequestBody String param) { LoginUser loginUser = tokenService.getLoginUser(); if (loginUser==null){ return R.fail(401,"登陆失效"); } TStrainReportEvaluateDTO dto = JSON.parseObject(param,TStrainReportEvaluateDTO.class); TStrainReport strainReport = strainReportService.getById(dto.getId()); strainReport.setEvaluateTime(LocalDateTime.now()); strainReport.setEvaluateId(loginUser.getUserId()+""); strainReport.setStatus(3); strainReportService.updateById(strainReport); TStrainReportDetail tStrainReportDetail = new TStrainReportDetail(); tStrainReportDetail.setReportId(strainReport.getId()); tStrainReportDetail.setEvaluate(dto.getEvaluate()); tStrainReportDetail.setEvaluateId(loginUser.getUserId()+""); // tStrainReportDetail.setDetectionCode(dto.getDetectionCode()); // tStrainReportDetail.setDetectionName(dto.getDetectionName()); tStrainReportDetail.setEvaluateTotal(dto.getEvaluateTotal()); tStrainReportDetail.setExperimentId(strainReport.getCommitId()); tStrainReportDetail.setReportType(strainReport.getReportType()); tStrainReportDetail.setEvaluateHumanType(2); tStrainReportDetail.setEvaluateType(dto.getEvaluateType()); strainReportDetailService.save(tStrainReportDetail); // 新增消息 TNotice tNotice1 = new TNotice(); TProjectTeamStaff one1 = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, strainReport.getProjectId()) .eq(TProjectTeamStaff::getRoleType, 1).last("limit 1").one(); tNotice1.setCommitId(tokenService.getLoginUser().getUserId()+""); tNotice1.setUserId(one1.getUserId()); tNotice1.setStatus(1); tNotice1.setNoticeContent("您有【1】条【菌种报告】【报告库"+strainReport.getReportType()+"】菌种审批人已评定"); tNotice1.setDataId(dto.getId()); tNotice1.setNoticeType(8); noticeService.save(tNotice1); return R.ok(); } /** * 删除项目组 */ //@PreAuthorize("@ss.hasPermi('system:projectTeam:delete')") @Log(title = "菌种报告库-删除菌种报告库", businessType = BusinessType.DELETE) @ApiOperation(value = "删除菌种报告库",tags = "菌种报告库") @DeleteMapping(value = "/open/t-strain-report/deleteById") public R deleteById(@RequestParam String id) { return R.ok(strainReportService.remove(Wrappers.lambdaQuery(TStrainReport.class).eq(TStrainReport::getId, id))); } /** * 菌种工程师查看报告详情 */ //@PreAuthorize("@ss.hasPermi('system:strainReport:detail')") @ApiOperation(value = "查看报告详情",tags = "菌种报告库",response = TStrainReportDetailVO.class) @GetMapping(value = "/open/t-strain-report/detail") public R detail(@RequestParam String id) { TStrainReportDetailVO tStrainReportDetailVO = new TStrainReportDetailVO(); TStrainReport strainReport = strainReportService.getById(id); if (strainReport.getAuditId()!=null){ SysUser sysUser = sysUserService.selectUserById(Long.valueOf(strainReport.getAuditId())); if (sysUser!=null){ tStrainReportDetailVO.setAuditName(sysUser.getNickName()); } } BeanUtils.copyProperties(strainReport, tStrainReportDetailVO); TProjectTeam byId = projectTeamService.getById(strainReport.getProjectId()); List list = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, byId.getId()).list(); StringBuilder stringBuilder = new StringBuilder(); for (TProjectTeamStaff tProjectTeamStaff : list) { SysUser sysUser = sysUserService.selectUserById(Long.valueOf(tProjectTeamStaff.getUserId())); if (sysUser!=null){ stringBuilder.append(sysUser.getNickName()).append(","); } } if (StringUtils.hasLength(stringBuilder.toString())){ byId.setStaff(stringBuilder.substring(0, stringBuilder.toString().length() - 1)); } tStrainReportDetailVO.setProjectTeam(byId); TStrainReportDetail one = strainReportDetailService.lambdaQuery().eq(TStrainReportDetail::getReportId, id) .eq(TStrainReportDetail::getEvaluateHumanType, 1).one(); tStrainReportDetailVO.setEvaluate(one.getEvaluate()); tStrainReportDetailVO.setEvaluateTotal(one.getEvaluateTotal()); if (strainReport.getEvaluateId()!=null){ tStrainReportDetailVO.setEvaluateName(sysUserService.selectUserById(Long.valueOf(strainReport.getEvaluateId())).getNickName()); } if (one.getExperimentId()!=null){ tStrainReportDetailVO.setExperimentName(sysUserService.selectUserById(Long.valueOf(one.getExperimentId())).getNickName()); tStrainReportDetailVO.setExperimentId(one.getExperimentId()); } tStrainReportDetailVO.setReportType(strainReport.getReportType()); if (strainReport.getCommitId()!=null){ tStrainReportDetailVO.setCommitName(sysUserService.selectUserById(Long.valueOf(strainReport.getCommitId())).getNickName()); } return R.ok(tStrainReportDetailVO); } /** * 菌种工程师查看报告详情 */ @ApiOperation(value = "查看报告评定详情",tags = "菌种报告库") @GetMapping(value = "/open/t-strain-report/detailReport") public R detailReport(@RequestParam String id) { TStrainReportDetailVO tStrainReportDetailVO = new TStrainReportDetailVO(); TStrainReport strainReport = strainReportService.getById(id); BeanUtils.copyProperties(strainReport, tStrainReportDetailVO); TProjectTeam byId = projectTeamService.getById(strainReport.getProjectId()); tStrainReportDetailVO.setProjectTeam(byId); TStrainReportDetail one = strainReportDetailService.lambdaQuery().eq(TStrainReportDetail::getReportId, id) .eq(TStrainReportDetail::getEvaluateHumanType, 2).one(); tStrainReportDetailVO.setEvaluate(one.getEvaluate()); tStrainReportDetailVO.setEvaluateTotal(one.getEvaluateTotal()); tStrainReportDetailVO.setEvaluateName(sysUserService.selectUserById(Long.valueOf(strainReport.getEvaluateId())).getNickName()); tStrainReportDetailVO.setExperimentName(sysUserService.selectUserById(Long.valueOf(one.getExperimentId())).getNickName()); tStrainReportDetailVO.setExperimentId(one.getExperimentId()); tStrainReportDetailVO.setReportType(strainReport.getReportType()); tStrainReportDetailVO.setCommitName(sysUserService.selectUserById(Long.valueOf(strainReport.getCommitId())).getNickName()); return R.ok(tStrainReportDetailVO); } }