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.BaseModel; 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.framework.web.service.TokenService; import com.ruoyi.system.dto.*; import com.ruoyi.system.model.*; import com.ruoyi.system.query.TBreedingAndPreservationQuery; import com.ruoyi.system.query.TStrainValidationDataQuery; import com.ruoyi.system.service.*; import com.ruoyi.system.vo.AddStrainValidationDataDetailVO; import com.ruoyi.system.vo.TBreedingAndPreservationVO; import com.ruoyi.system.vo.TProjectTeamVO; import com.ruoyi.system.vo.TStrainValidationDataVO; import io.swagger.annotations.Api; 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; import java.time.LocalDateTime; import java.util.List; import java.util.stream.Collectors; /** *

* 菌种验证数据资料 前端控制器 *

* * @author 无关风月 * @since 2025-04-12 */ @RestController @RequestMapping("") @Api(tags = "菌种验证数据资料") public class TStrainValidationDataController { @Resource private TStrainValidationDataService strainValidationDataService; @Resource private TStrainValidationDataDetailService strainValidationDataDetailService; /** * 菌种验证数据资料分页列表 */ //@PreAuthorize("@ss.hasPermi('system:strainValidationData:list')") @ApiOperation(value = "菌种验证数据资料-获取菌种验证数据资料分页列表",response = TStrainValidationDataQuery.class) @PostMapping(value = "/api/t-strain-validation-data/pageList") public R> pageList(@RequestBody String param) { TStrainValidationDataQuery query = JSON.parseObject(param, TStrainValidationDataQuery.class); return R.ok(strainValidationDataService.pageList(query)); } /** * 新增菌种验证数据资料 */ //@PreAuthorize("@ss.hasPermi('system:strainValidationData:add')") @Log(title = "菌种验证数据资料-新增菌种验证数据资料", businessType = BusinessType.INSERT) @ApiOperation(value = "新增菌种验证数据资料",response = AddStrainValidationDataDTO.class) @PostMapping(value = "/api/t-strain-validation-data/add") public R addOriginal(@RequestBody String param) { AddStrainValidationDataDTO dto = JSON.parseObject(param,AddStrainValidationDataDTO.class); if (StringUtils.hasLength(dto.getHandleSignature())){ dto.setHandleTime(LocalDateTime.now()); } strainValidationDataService.save(dto); if (dto.getIsDraft()==0){ dto.setStatus(1); } if (dto.getStatus()==1){ // 新增消息 TNotice tNotice = new TNotice(); List collect = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId()) .eq(TProjectTeamStaff::getRoleType, 3) .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); TProjectTeam one = projectTeamService.lambdaQuery().in(TProjectTeam::getId, collect) .eq(TProjectTeam::getStatus, 1) .orderByDesc(BaseModel::getCreateTime).last("limit 1").one(); TProjectTeamStaff one1 = projectTeamStaffService.lambdaQuery() .eq(TProjectTeamStaff::getTeamId, one.getId()).eq(TProjectTeamStaff::getRoleType, 2).one(); tNotice.setUserId(one1.getUserId()); tNotice.setCommitId(tokenService.getLoginUser().getUserId()+""); tNotice.setStatus(1); StringBuilder stringBuilder = new StringBuilder(); switch (dto.getStrainType()){ case 1: stringBuilder.append( "【原始细胞库验证资料】"); break; case 2: stringBuilder.append("【主细胞库验证资料】"); break; } tNotice.setNoticeContent("您有【1】条"+stringBuilder+"等待确认;"); tNotice.setDataId(dto.getId()); tNotice.setNoticeType(6); noticeService.save(tNotice); } return R.ok(); } @Resource private TProjectTeamService projectTeamService; @Resource private TProjectTeamStaffService projectTeamStaffService; @Resource private TNoticeService noticeService; @Resource private TokenService tokenService; /** * 编辑菌种验证数据资料 */ //@PreAuthorize("@ss.hasPermi('system:strainValidationData:update')") @Log(title = "菌种验证数据资料-编辑菌种验证数据资料", businessType = BusinessType.UPDATE) @ApiOperation(value = "编辑菌种验证数据资料",response = AddStrainValidationDataDTO.class) @PostMapping(value = "/api/t-strain-validation-data/updateOriginal") public R updateOriginal(@RequestBody String param) { AddStrainValidationDataDTO dto = JSON.parseObject(param,AddStrainValidationDataDTO.class); strainValidationDataDetailService.remove(new LambdaQueryWrapper() .eq(TStrainValidationDataDetail::getDataId, dto.getId())); for (TStrainValidationDataDetail tStrainValidationDataDetail : dto.getList()) { tStrainValidationDataDetail.setDataId(dto.getId()); } strainValidationDataDetailService.saveBatch(dto.getList()); dto.setStatus(1); strainValidationDataService.updateById(dto); return R.ok(); } @Log(title = "菌种验证数据资料-确认验证资料", businessType = BusinessType.INSERT) @ApiOperation(value = "确认验证资料",response = AddStrainValidationDataDetailDTO.class) @PostMapping(value = "/api/t-strain-validation-data/confirm") public R confirm(@RequestBody String param) { AddStrainValidationDataDetailDTO dto = JSON.parseObject(param,AddStrainValidationDataDetailDTO.class); List list = dto.getList(); for (TStrainValidationDataDetail tStrainValidationDataDetail : list) { tStrainValidationDataDetail.setDataId(dto.getId()); } dto.setStatus(2); strainValidationDataService.updateById(dto); strainValidationDataDetailService.saveBatch(list); return R.ok(); } /** * 查看菌种验证数据资料详情 */ @ApiOperation(value = "查看菌种验证数据资料详情") @GetMapping(value = "/open/t-strain-validation-data/getDetailById") public R getDetailMainById(@RequestParam String id) { TStrainValidationData strainValidationData = strainValidationDataService.getById(id); AddStrainValidationDataDetailVO res = new AddStrainValidationDataDetailVO(); BeanUtils.copyProperties(strainValidationData,res); List list = strainValidationDataDetailService.lambdaQuery().eq(TStrainValidationDataDetail::getDataId, id).list(); res.setList(list); return R.ok(res); } @Log(title = "主细胞-删除菌种验证数据资料", businessType = BusinessType.DELETE) @ApiOperation(value = "主细胞-删除菌种验证数据资料",response = TPedigreeChartParentDTO.class) @DeleteMapping(value = "/open/t-strain-validation-data/deleteMain") public R deleteMain(@RequestParam String id) { strainValidationDataService.removeById(id); return R.ok(); } @Log(title = "原始细胞-删除菌种验证数据资料", businessType = BusinessType.DELETE) @ApiOperation(value = "原始细胞-删除菌种验证数据资料",response = TPedigreeChartParentDTO.class) @DeleteMapping(value = "/open/t-strain-validation-data/deleteOriginal") public R deleteOriginal(@RequestParam String id) { strainValidationDataService.removeById(id); return R.ok(); } }