From 082bddee7df8a05ca95f473ec2643701d41a5213 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 08 十月 2026 11:09:01 +0800
Subject: [PATCH] 更新代码
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java | 508 +++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 423 insertions(+), 85 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java
index b1e5f66..8c32cfe 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java
@@ -16,8 +16,10 @@
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.*;
+import com.ruoyi.system.mapper.TProjectTeamMapper;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.TPedigreeChartConfirmQuery;
+import com.ruoyi.system.query.TPedigreeChartDetailConfirmCountDTO;
import com.ruoyi.system.query.TPedigreeChartDetailQuery;
import com.ruoyi.system.query.TPedigreeChartQuery;
import com.ruoyi.system.service.*;
@@ -28,6 +30,7 @@
import io.swagger.annotations.ApiOperation;
import org.checkerframework.checker.units.qual.C;
import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -60,7 +63,6 @@
private ISysUserService sysUserService;
-
/**
* 获取谱系图分页列表
*/
@@ -68,37 +70,42 @@
@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")){
+ query.setRoleType(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)
+ 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());
+ query.setRoleType(3);
- if (projectIds.isEmpty()){
+ if (query.getProjectIds() == null || query.getProjectIds().isEmpty()){
+ 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<>());
}
- query.setProjectIds(projectIds);
- }else{
- return R.ok(new PageInfo<>());
-
}
+
+ }else{
+ query.setRoleType(1);
}
return R.ok(pedigreeChartService.pageList(query));
}
@@ -122,7 +129,8 @@
String child = JSON.toJSONString(dto.getOne().get(0));
parent.setJson(child);
}
- List<String> projectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
+ List<String> projectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId,
+ tokenService.getLoginUser().getUserId())
.list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
if (!projectIds.isEmpty()){
TProjectTeam projectTeam = projectTeamService.lambdaQuery().in(TProjectTeam::getId, projectIds)
@@ -131,6 +139,7 @@
.last("limit 1").one();
parent.setProjectId(projectTeam.getId());
}
+
pedigreeChartService.save(parent);
if (!dto.getOne().isEmpty()){
TPedigreeChartParentOneDTO oneLevel = dto.getOne().get(0);
@@ -143,6 +152,12 @@
oneLevel.setVaccinateSignature(oneLevel.getVaccinateSignature());
oneLevel.setVaccinateTime(LocalDateTime.now());
oneLevel.setId(null);
+ if (parent.getStatus()==1){
+ oneLevel.setAuditStatus(0);
+ }else{
+ oneLevel.setAuditStatus(1);
+ }
+ oneLevel.setCodeStatus(parent.getStatus());
pedigreeChartDetailService.save(oneLevel);
List<TPedigreeChartParentOneCountDTO> countList = oneLevel.getChildren();
@@ -150,9 +165,18 @@
TPedigreeChartParentOneCountDTO count = countList.get(0);
count.setParentId(oneLevel.getId());
count.setType(2);
+ count.setVaccinateId(loginUser.getUserId()+"");
+ count.setVaccinateTime(LocalDateTime.now());
count.setStatus(1);
count.setPedigreeChartId(parent.getId());
count.setId(null);
+ if (parent.getStatus()==1){
+ count.setAuditStatus(1);
+ }else{
+ count.setAuditStatus(1);
+ }
+
+ count.setCodeStatus(parent.getStatus());
pedigreeChartDetailService.save(count);
if (count.getChildren()!=null){
@@ -169,17 +193,31 @@
tPedigreeChartParentTwoDTO.setStorageTime(LocalDateTime.now());
tPedigreeChartParentTwoDTO.setParentId(count.getId());
tPedigreeChartParentTwoDTO.setId(null);
-
+ if (parent.getStatus()==1){
+ tPedigreeChartParentTwoDTO.setAuditStatus(0);
+ }else{
+ tPedigreeChartParentTwoDTO.setAuditStatus(1);
+ }
+ tPedigreeChartParentTwoDTO.setCodeStatus(parent.getStatus());
pedigreeChartDetailService.save(tPedigreeChartParentTwoDTO);
List<TPedigreeChartParentTwoCountDTO> count1List = tPedigreeChartParentTwoDTO.getChildren();
if (!count1List.isEmpty()){
// 传代数
TPedigreeChartParentTwoCountDTO childCount = count1List.get(0);
childCount.setType(2);
+ if (parent.getStatus()==1){
+ childCount.setAuditStatus(1);
+ }else{
+ childCount.setAuditStatus(1);
+ }
+ childCount.setVaccinateId(loginUser.getUserId()+"");
+ childCount.setVaccinateTime(LocalDateTime.now());
childCount.setParentId(tPedigreeChartParentTwoDTO.getId());
childCount.setPedigreeChartId(parent.getId());
childCount.setStatus(1);
childCount.setId(null);
+ childCount.setCodeStatus(parent.getStatus());
+
pedigreeChartDetailService.save(childCount);
if (childCount.getChildren()!=null){
for (TPedigreeChartParentThreeDTO tPedigreeChartParentThreeDTO : childCount.getChildren()) {
@@ -190,12 +228,18 @@
if (tPedigreeChartParentThreeDTO.getStatus()==null){
tPedigreeChartParentThreeDTO.setStatus(1);
}
- tPedigreeChartParentTwoDTO.setVaccinateId(loginUser.getUserId()+"");
- tPedigreeChartParentTwoDTO.setVaccinateSignature(tPedigreeChartParentTwoDTO.getVaccinateSignature());
- tPedigreeChartParentTwoDTO.setVaccinateTime(LocalDateTime.now());
+ tPedigreeChartParentThreeDTO.setVaccinateId(loginUser.getUserId()+"");
+ tPedigreeChartParentThreeDTO.setVaccinateSignature(tPedigreeChartParentTwoDTO.getVaccinateSignature());
+ tPedigreeChartParentThreeDTO.setVaccinateTime(LocalDateTime.now());
tPedigreeChartParentThreeDTO.setStorageTime(LocalDateTime.now());
tPedigreeChartParentThreeDTO.setPedigreeChartId(parent.getId());
tPedigreeChartParentThreeDTO.setId(null);
+ if (parent.getStatus()==1){
+ tPedigreeChartParentThreeDTO.setAuditStatus(0);
+ }else{
+ tPedigreeChartParentThreeDTO.setAuditStatus(1);
+ }
+ tPedigreeChartParentThreeDTO.setCodeStatus(parent.getStatus());
pedigreeChartDetailService.save(tPedigreeChartParentThreeDTO);
}
}
@@ -220,11 +264,11 @@
.eq(TProjectTeam::getStatus, 1)
.orderByDesc(BaseModel::getCreateTime).last("limit 1").one();
TProjectTeamStaff projectTeamStaff = projectTeamStaffService.lambdaQuery()
- .eq(TProjectTeamStaff::getTeamId, team.getId()).eq(TProjectTeamStaff::getRoleType, 2).one();
+ .eq(TProjectTeamStaff::getTeamId, team.getId()).eq(TProjectTeamStaff::getRoleType, 1).one();
tNotice.setCommitId(tokenService.getLoginUser().getUserId()+"");
tNotice.setUserId(projectTeamStaff.getUserId());
tNotice.setStatus(1);
- tNotice.setNoticeContent("菌种实验员新增【1】条【菌种传代生产谱系图】操作,等待您签字确认;");
+ tNotice.setNoticeContent("菌种工程师新增【1】条【菌种传代生产谱系图】操作,等待您签字确认;");
tNotice.setDataId(parent.getId());
tNotice.setNoticeType(4);
noticeService.save(tNotice);
@@ -253,73 +297,266 @@
String child = JSON.toJSONString(dto.getOne().get(0));
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);
- }
+
+ //不能修改别人的数据
+ TPedigreeChart byId = pedigreeChartService.getById(parent.getId());
+ if (!loginUser.getUser().getNickName().equals(byId.getCreateBy())) {
+ return R.fail("不能修改其他工程师数据");
}
-// pedigreeChartDetailService.remove(new LambdaQueryWrapper<TPedigreeChartDetail>()
-// .eq(TPedigreeChartDetail::getPedigreeChartId, dto.getParent().getId()));
-// if (!dto.getOne().isEmpty()){
-// TPedigreeChartParentOneDTO one = dto.getOne().get(0);
-// one.setParentId("0");
-// one.setType(1);
-// one.setStatus(1);
-// one.setPedigreeChartId(parent.getId());
-// pedigreeChartDetailService.save(one);
-// List<TPedigreeChartParentOneCountDTO> countList = one.getChildren();
-// if (!countList.isEmpty()){
-// TPedigreeChartParentOneCountDTO count = countList.get(0);
-// count.setParentId(one.getId());
-// count.setType(2);
-// count.setStatus(1);
-// count.setPedigreeChartId(parent.getId());
-// pedigreeChartDetailService.save(count);
-// if (count.getChildren()!=null){
-// for (TPedigreeChartParentTwoDTO tPedigreeChartParentTwoDTO : count.getChildren()) {
-// tPedigreeChartParentTwoDTO.setParentId(one.getId());
-// tPedigreeChartParentTwoDTO.setPedigreeChartId(parent.getId());
-// tPedigreeChartParentTwoDTO.setType(1);
-// tPedigreeChartParentTwoDTO.setStatus(1);
-// tPedigreeChartParentTwoDTO.setParentId(count.getId());
-// tPedigreeChartParentTwoDTO.setPedigreeChartId(parent.getId());
-// pedigreeChartDetailService.save(tPedigreeChartParentTwoDTO);
-// List<TPedigreeChartParentTwoCountDTO> count1List = tPedigreeChartParentTwoDTO.getChildren();
-// if (!count1List.isEmpty()){
-// TPedigreeChartParentTwoCountDTO count1 = count1List.get(0);
-// count1.setType(2);
-// count1.setParentId(tPedigreeChartParentTwoDTO.getId());
-// count1.setPedigreeChartId(parent.getId());
-// count1.setStatus(1);
-// pedigreeChartDetailService.save(count1);
-// if (count1.getChildren()!=null){
-// for (TPedigreeChartParentThreeDTO tPedigreeChartParentThreeDTO : count1.getChildren()) {
-// tPedigreeChartParentThreeDTO.setParentId(count1.getId());
-// tPedigreeChartParentThreeDTO.setPedigreeChartId(parent.getId());
-// tPedigreeChartParentThreeDTO.setType(1);
-// tPedigreeChartParentThreeDTO.setStatus(1);
-// tPedigreeChartParentThreeDTO.setParentId(tPedigreeChartParentTwoDTO.getId());
-// tPedigreeChartParentThreeDTO.setPedigreeChartId(parent.getId());
-// pedigreeChartDetailService.save(tPedigreeChartParentThreeDTO);
-// }
-// }
-// }
-// }
-// }
-//
-// }
+ List<String> projectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId,
+ tokenService.getLoginUser().getUserId())
+ .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
+ if (!projectIds.isEmpty()){
+ TProjectTeam projectTeam = projectTeamService.lambdaQuery().in(TProjectTeam::getId, projectIds)
+ .eq(TProjectTeam::getStatus, 1)
+ .orderByDesc(BaseModel::getCreateTime)
+ .last("limit 1").one();
+ parent.setProjectId(projectTeam.getId());
+ }
+ Integer status = parent.getStatus();
+ TPedigreeChart pedigreeChart = pedigreeChartService.getById(parent.getId());
+ if (pedigreeChart.getStatus() == 2){
+ return R.fail("谱系图已提交,不可编辑");
+ }
+ pedigreeChartService.updateById(parent);
+ parent.setStatus( status);
-// }
+ if (!dto.getOne().isEmpty()){
+ TPedigreeChartParentOneDTO oneLevel = dto.getOne().get(0);
+ oneLevel.setParentId("0");
+ oneLevel.setType(1);
+ oneLevel.setStatus(oneLevel.getStatus());
+ oneLevel.setStorageTime(LocalDateTime.now());
+ oneLevel.setPedigreeChartId(parent.getId());
+ oneLevel.setVaccinateId(loginUser.getUserId()+"");
+ oneLevel.setVaccinateSignature(oneLevel.getVaccinateSignature());
+ oneLevel.setVaccinateTime(LocalDateTime.now());
+ oneLevel.setId(dto.getOne().get(0).getId());
+ if (oneLevel.getId()==null){
+ if (parent.getStatus()==1){
+ oneLevel.setAuditStatus(0);
+ oneLevel.setCodeStatus(parent.getStatus());
+ }else{
+ oneLevel.setAuditStatus(1);
+ oneLevel.setCodeStatus(parent.getStatus());
+
+ }
+ }else{
+ if (parent.getStatus()==2){
+ switch (oneLevel.getAuditStatus()){
+ case 0:
+ oneLevel.setAuditStatus(1);
+ oneLevel.setCodeStatus(parent.getStatus());
+ break;
+ case 1:
+ oneLevel.setAuditStatus(1);
+ oneLevel.setCodeStatus(parent.getStatus());
+ break;
+ case 2:
+ oneLevel.setAuditStatus(2);
+ oneLevel.setCodeStatus(parent.getStatus());
+ }
+ }
+ }
+ pedigreeChartDetailService.saveOrUpdate(oneLevel);
+ List<TPedigreeChartParentOneCountDTO> countList = oneLevel.getChildren();
+
+ if (!countList.isEmpty()){
+ TPedigreeChartParentOneCountDTO count = countList.get(0);
+ count.setParentId(oneLevel.getId());
+ count.setType(2);
+ count.setVaccinateId(loginUser.getUserId()+"");
+ count.setVaccinateTime(LocalDateTime.now());
+ count.setStatus(1);
+ if (count.getId()==null){
+ if (parent.getStatus()==1){
+ count.setAuditStatus(1);
+ count.setCodeStatus(parent.getStatus());
+ }else{
+ count.setAuditStatus(1);
+ count.setCodeStatus(parent.getStatus());
+
+ }
+ }else{
+ if (parent.getStatus()==2){
+ switch (count.getAuditStatus()){
+ case 0:
+ count.setAuditStatus(1);
+ count.setCodeStatus(parent.getStatus());
+ break;
+ case 1:
+ count.setAuditStatus(1);
+ count.setCodeStatus(parent.getStatus());
+ break;
+ case 2:
+ count.setAuditStatus(2);
+ count.setCodeStatus(parent.getStatus());
+ }
+ }
+ }
+
+ count.setPedigreeChartId(parent.getId());
+ count.setId(countList.get(0).getId());
+ pedigreeChartDetailService.saveOrUpdate(count);
+ if (count.getChildren()!=null){
+ for (TPedigreeChartParentTwoDTO tPedigreeChartParentTwoDTO : count.getChildren()) {
+ tPedigreeChartParentTwoDTO.setParentId(oneLevel.getId());
+ tPedigreeChartParentTwoDTO.setPedigreeChartId(parent.getId());
+ tPedigreeChartParentTwoDTO.setType(1);
+ if (tPedigreeChartParentTwoDTO.getStatus()==null){
+ tPedigreeChartParentTwoDTO.setStatus(1);
+ }
+ tPedigreeChartParentTwoDTO.setVaccinateId(loginUser.getUserId()+"");
+ tPedigreeChartParentTwoDTO.setVaccinateSignature(tPedigreeChartParentTwoDTO.getVaccinateSignature());
+ tPedigreeChartParentTwoDTO.setVaccinateTime(LocalDateTime.now());
+ tPedigreeChartParentTwoDTO.setStorageTime(LocalDateTime.now());
+ tPedigreeChartParentTwoDTO.setParentId(count.getId());
+ tPedigreeChartParentTwoDTO.setId(tPedigreeChartParentTwoDTO.getId());
+ if (tPedigreeChartParentTwoDTO.getId()==null){
+ if (parent.getStatus()==1){
+ tPedigreeChartParentTwoDTO.setAuditStatus(0);
+ tPedigreeChartParentTwoDTO.setCodeStatus(parent.getStatus());
+ }else{
+ tPedigreeChartParentTwoDTO.setAuditStatus(1);
+ tPedigreeChartParentTwoDTO.setCodeStatus(parent.getStatus());
+
+ }
+ }else{
+ if (parent.getStatus()==2){
+ switch (tPedigreeChartParentTwoDTO.getAuditStatus()){
+ case 0:
+ tPedigreeChartParentTwoDTO.setAuditStatus(1);
+ tPedigreeChartParentTwoDTO.setCodeStatus(parent.getStatus());
+ break;
+ case 1:
+ tPedigreeChartParentTwoDTO.setAuditStatus(1);
+ tPedigreeChartParentTwoDTO.setCodeStatus(parent.getStatus());
+ break;
+ case 2:
+ tPedigreeChartParentTwoDTO.setAuditStatus(2);
+ tPedigreeChartParentTwoDTO.setCodeStatus(parent.getStatus());
+ }
+ }
+ }
+ pedigreeChartDetailService.saveOrUpdate(tPedigreeChartParentTwoDTO);
+ List<TPedigreeChartParentTwoCountDTO> count1List = tPedigreeChartParentTwoDTO.getChildren();
+ if (!count1List.isEmpty()){
+ // 传代数
+ TPedigreeChartParentTwoCountDTO childCount = count1List.get(0);
+ childCount.setType(2);
+ if (childCount.getId()==null){
+ if (parent.getStatus()==1){
+ childCount.setAuditStatus(1);
+ childCount.setCodeStatus(parent.getStatus());
+ }else{
+ childCount.setAuditStatus(1);
+ childCount.setCodeStatus(parent.getStatus());
+
+ }
+ }else{
+ if (parent.getStatus()==2){
+ switch (childCount.getAuditStatus()){
+ case 0:
+ childCount.setAuditStatus(1);
+ childCount.setCodeStatus(parent.getStatus());
+ break;
+ case 1:
+ childCount.setAuditStatus(1);
+ childCount.setCodeStatus(parent.getStatus());
+ break;
+ case 2:
+ childCount.setAuditStatus(2);
+ childCount.setCodeStatus(parent.getStatus());
+ }
+ }
+ }
+ count.setVaccinateId(loginUser.getUserId()+"");
+ count.setVaccinateTime(LocalDateTime.now());
+ childCount.setParentId(tPedigreeChartParentTwoDTO.getId());
+ childCount.setPedigreeChartId(parent.getId());
+ childCount.setStatus(1);
+ childCount.setId(childCount.getId());
+
+ pedigreeChartDetailService.saveOrUpdate(childCount);
+ if (childCount.getChildren()!=null){
+ for (TPedigreeChartParentThreeDTO tPedigreeChartParentThreeDTO : childCount.getChildren()) {
+ tPedigreeChartParentThreeDTO.setParentId(childCount.getId());
+ tPedigreeChartParentThreeDTO.setPedigreeChartId(parent.getId());
+ tPedigreeChartParentThreeDTO.setType(1);
+ tPedigreeChartParentThreeDTO.setVaccinateId(loginUser.getUserId()+"");
+ if (tPedigreeChartParentThreeDTO.getStatus()==null){
+ tPedigreeChartParentThreeDTO.setStatus(1);
+ }
+ tPedigreeChartParentThreeDTO.setVaccinateId(loginUser.getUserId()+"");
+ tPedigreeChartParentThreeDTO.setVaccinateSignature(tPedigreeChartParentTwoDTO.getVaccinateSignature());
+ tPedigreeChartParentThreeDTO.setVaccinateTime(LocalDateTime.now());
+ tPedigreeChartParentThreeDTO.setStorageTime(LocalDateTime.now());
+ tPedigreeChartParentThreeDTO.setPedigreeChartId(parent.getId());
+ tPedigreeChartParentThreeDTO.setId(tPedigreeChartParentThreeDTO.getId());
+ if (tPedigreeChartParentThreeDTO.getId()==null){
+ if (parent.getStatus()==1){
+ tPedigreeChartParentThreeDTO.setAuditStatus(0);
+ tPedigreeChartParentThreeDTO.setCodeStatus(parent.getStatus());
+ }else{
+ tPedigreeChartParentThreeDTO.setAuditStatus(1);
+ tPedigreeChartParentThreeDTO.setCodeStatus(parent.getStatus());
+
+ }
+ }else{
+ if (parent.getStatus()==2){
+ switch (tPedigreeChartParentThreeDTO.getAuditStatus()){
+ case 0:
+ tPedigreeChartParentThreeDTO.setAuditStatus(1);
+ tPedigreeChartParentThreeDTO.setCodeStatus(parent.getStatus());
+ break;
+ case 1:
+ tPedigreeChartParentThreeDTO.setAuditStatus(1);
+ tPedigreeChartParentThreeDTO.setCodeStatus(parent.getStatus());
+ break;
+ case 2:
+ tPedigreeChartParentThreeDTO.setAuditStatus(2);
+ tPedigreeChartParentThreeDTO.setCodeStatus(parent.getStatus());
+ }
+ }
+ }
+ pedigreeChartDetailService.saveOrUpdate(tPedigreeChartParentThreeDTO);
+ }
+ }
+ }
+ }
+ }
+ }
+ String child = JSON.toJSONString(oneLevel);
+ parent.setJson(child);
+ parent.setStatus(null);
+ pedigreeChartService.updateById(parent);
+ }
+
+ // 新增消息
+ TNotice tNotice = new TNotice();
+ 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()){
+ TProjectTeam team = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds)
+ .eq(TProjectTeam::getStatus, 1)
+ .orderByDesc(BaseModel::getCreateTime).last("limit 1").one();
+ TProjectTeamStaff projectTeamStaff = projectTeamStaffService.lambdaQuery()
+ .eq(TProjectTeamStaff::getTeamId, team.getId()).eq(TProjectTeamStaff::getRoleType, 2).one();
+ tNotice.setCommitId(tokenService.getLoginUser().getUserId()+"");
+ tNotice.setUserId(projectTeamStaff.getUserId());
+ tNotice.setStatus(1);
+ tNotice.setNoticeContent("菌种工程师新增【1】条【菌种传代生产谱系图】操作,等待您签字确认;");
+ tNotice.setDataId(parent.getId());
+ tNotice.setNoticeType(4);
+ noticeService.save(tNotice);
+ }
return R.ok();
}
@Log(title = "谱系图-谱系图-删除谱系图", businessType = BusinessType.DELETE)
@ApiOperation(value = "谱系图-删除谱系图")
+ @Transactional
@DeleteMapping(value = "/open/t-pedigree-chart/deleteProgenitor")
public R<Boolean> deleteProgenitor(@RequestParam String id) {
pedigreeChartService.removeById(id);
@@ -329,7 +566,12 @@
@ApiOperation(value = "谱系图-删除菌种传代项",response = TPedigreeChartParentDTO.class)
@DeleteMapping(value = "/open/t-pedigree-chart/deleteProgenitorChild")
public R<Boolean> deleteProgenitorChild(@RequestParam String id) {
- pedigreeChartDetailService.removeById(id);
+ List<TPedigreeChartDetail> children = pedigreeChartDetailService.lambdaQuery().eq(TPedigreeChartDetail::getParentId, id)
+ .list();
+ if (!children.isEmpty()){
+ return R.fail("请先删除子项");
+ }
+ pedigreeChartDetailService.removeById(id);
return R.ok();
}
@Log(title = "谱系图-谱系图-编辑菌种传代/传代数项", businessType = BusinessType.UPDATE)
@@ -350,6 +592,7 @@
@Log(title = "谱系图-祖代/母代新增菌种传代项", businessType = BusinessType.INSERT)
@ApiOperation(value = "祖代/母代新增菌种传代项",response = TPedigreeChartDetailDTO.class)
@PostMapping(value = "/api/t-pedigree-chart/addProgenitorChild")
+ @Transactional
public R<Boolean> addProgenitorChild(@RequestBody String param) {
LoginUser loginUser = tokenService.getLoginUser();
if (loginUser==null){
@@ -363,10 +606,20 @@
}else{
String parentId = dto.getParentId();
TPedigreeChartDetail parent = pedigreeChartDetailService.getById(parentId);
+ if (parent.getType()==2){
+ if (parent.getAuditStatus()==1){
+ return R.fail("传代计划数未审核");
+ }
+ if (parent.getAuditStatus()==3){
+ return R.fail("传代计划数审核被驳回");
+ }
+ }
+
Long count = pedigreeChartDetailService.lambdaQuery().eq(TPedigreeChartDetail::getParentId, parentId).count();
if (count>=parent.getGenerationCount()){
return R.fail("该谱系图已满");
}
+
String pedigreeChartId = pedigreeChartDetailService.getById(parentId).getPedigreeChartId();
TPedigreeChart pedigreeChart = pedigreeChartService.getById(pedigreeChartId);
TPedigreeChartDetail tPedigreeChartDetail = new TPedigreeChartDetail();
@@ -381,16 +634,42 @@
tPedigreeChartDetail.setPedigreeChartId(pedigreeChart.getId());
tPedigreeChartDetail.setVaccinateId(loginUser.getUserId()+"");
tPedigreeChartDetail.setVaccinateTime(LocalDateTime.now());
+ tPedigreeChartDetail.setCodeStatus(dto.getCodeStatus());
if (dto.getStatus() ==2){
tPedigreeChartDetail.setDiscardTime(LocalDateTime.now());
+ }
+ if (dto.getCodeStatus()==2){
+ tPedigreeChartDetail.setAuditStatus(1);
+
+ }else{
+ tPedigreeChartDetail.setAuditStatus(0);
}
tPedigreeChartDetail.setVaccinateSignature(dto.getVaccinateSignature());
pedigreeChartDetailService.save(tPedigreeChartDetail);
}
-
return R.ok();
}
+ /**
+ * 0获取谱系图详情待确认传代计划数分页列表
+ */
+ @ApiOperation(value = "谱系图-2.0获取谱系图详情待确认传代计划数分页列表",response = TPedigreeChartDetailQuery.class)
+ @PostMapping(value = "/api/t-pedigree-chart/pageListCountDetail")
+ public R<PageInfo<TPedigreeChartDetailVO>> pageListCountDetail(@RequestBody String param) {
+ TPedigreeChartDetailQuery query = JSON.parseObject(param, TPedigreeChartDetailQuery.class);
+ return R.ok(pedigreeChartService.pageListCountDetail(query));
+ }
+ @ApiOperation(value = "谱系图-2.0审批人确认传代计划数",response = TPedigreeChartDetailConfirmCountDTO.class)
+ @PostMapping(value = "/api/t-pedigree-chart/confirmCount")
+ public R confirmCount(@RequestBody String param) {
+ TPedigreeChartDetailConfirmCountDTO query = JSON.parseObject(param, TPedigreeChartDetailConfirmCountDTO.class);
+
+ TPedigreeChartDetail pedigreeChartDetailServiceById = pedigreeChartDetailService.getById(query.getId());
+ pedigreeChartDetailServiceById.setAuditStatus(2);
+ pedigreeChartDetailServiceById.setPreserveSignature(query.getPreserveSignature());
+ pedigreeChartDetailService.updateById(pedigreeChartDetailServiceById);
+ return R.ok();
+ }
/**
* 获取谱系图详情待入库菌种分页列表
*/
@@ -400,6 +679,10 @@
TPedigreeChartDetailQuery query = JSON.parseObject(param, TPedigreeChartDetailQuery.class);
return R.ok(pedigreeChartService.pageListDetail(query));
}
+
+ @Resource
+ private TProjectTeamMapper tProjectTeamMapper;
+
/**
* 谱系图-菌种传代生产谱系图详情
*/
@@ -409,7 +692,21 @@
public R<TPedigreeChart> getDetailInfoById(@RequestParam String id) {
List<TPedigreeChartParentOneDTO> tPedigreeChartParentOneDTOS = new ArrayList<>();
TPedigreeChart pedigreeChart = pedigreeChartService.getById(id);
- List<TPedigreeChartDetail> details = pedigreeChartDetailService.lambdaQuery().eq(TPedigreeChartDetail::getPedigreeChartId, id).list();
+ if (pedigreeChart == null) {
+ return R.fail("谱系图不存在或已删除");
+ }
+ List<TPedigreeChartDetail> details = new ArrayList<>(pedigreeChartDetailService.lambdaQuery()
+ .eq(TPedigreeChartDetail::getPedigreeChartId, id)
+ .orderByDesc(TPedigreeChartDetail::getUpdateTime)
+ .orderByDesc(TPedigreeChartDetail::getCreateTime)
+ .list().stream()
+ .filter(detail -> StringUtils.isNotEmpty(detail.getId()))
+ .collect(Collectors.toMap(
+ TPedigreeChartDetail::getId,
+ detail -> detail,
+ (first, duplicate) -> first,
+ LinkedHashMap::new
+ )).values());
TPedigreeChartParentAllDetailDTO tPedigreeChartParentAllDetailDTO = new TPedigreeChartParentAllDetailDTO();
// 祖代
TPedigreeChartDetail pedigreeChartDetail = details.stream().filter(e -> e.getParentId().equals("0")
@@ -431,7 +728,6 @@
List<TPedigreeChartDetail> childs = details.stream().filter(e -> e.getParentId().equals(tPedigreeChartParentOneCountDTO.getId())
&& e.getType() == 1).collect(Collectors.toList());
List<TPedigreeChartParentTwoDTO> tPedigreeChartParentTwoDTOS = new ArrayList<>();
- List<TPedigreeChartParentThreeDTO> tPedigreeChartParentThreeDTOS = new ArrayList<>();
for (TPedigreeChartDetail tPedigreeChartDetail : childs) {
TPedigreeChartParentTwoDTO tPedigreeChartParentTwoDTO = new TPedigreeChartParentTwoDTO();
BeanUtils.copyProperties(tPedigreeChartDetail,tPedigreeChartParentTwoDTO);
@@ -442,6 +738,7 @@
ArrayList<TPedigreeChartParentTwoCountDTO> tPedigreeChartParentTwoCountDTOS = new ArrayList<>();
TPedigreeChartParentTwoCountDTO tPedigreeChartParentTwoCountDTO = new TPedigreeChartParentTwoCountDTO();
BeanUtils.copyProperties(childCountChild,tPedigreeChartParentTwoCountDTO);
+ List<TPedigreeChartParentThreeDTO> tPedigreeChartParentThreeDTOS = new ArrayList<>();
List<TPedigreeChartDetail> childChilds = details.stream().filter(e -> e.getParentId().equals(tPedigreeChartParentTwoCountDTO.getId())
&& e.getType() == 1).collect(Collectors.toList());
for (TPedigreeChartDetail chartDetail : childChilds) {
@@ -464,6 +761,28 @@
tPedigreeChartParentAllDetailDTO.setOne(tPedigreeChartParentOneDTOS);
}
pedigreeChart.setPedigreeChartParentAllDetailDTO(tPedigreeChartParentAllDetailDTO);
+
+ if (com.ruoyi.common.utils.StringUtils.isNotEmpty(pedigreeChart.getProjectId())) {
+ TProjectTeam tProjectTeam = tProjectTeamMapper.selectById(pedigreeChart.getProjectId());
+ if (tProjectTeam != null) {
+ List<TProjectTeamStaff> list = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, tProjectTeam.getId()).list();
+ StringBuilder staffNames = new StringBuilder();
+ for (TProjectTeamStaff tProjectTeamStaff : list) {
+ SysUser sysUser = sysUserService.selectUserById(Long.valueOf(tProjectTeamStaff.getUserId()));
+ if (sysUser!=null){
+ staffNames.append(sysUser.getNickName()).append(",");
+ }
+ }
+ if (org.springframework.util.StringUtils.hasLength(staffNames.toString())){
+ tProjectTeam.setStaff(staffNames.substring(0, staffNames.toString().length() - 1));
+ }
+
+ List<TProjectTeam> tProjectTeamList = new ArrayList<>();
+ tProjectTeamList.add(tProjectTeam);
+ pedigreeChart.setTProjectTeamList(tProjectTeamList);
+ }
+ }
+
return R.ok(pedigreeChart);
}
/**
@@ -487,6 +806,21 @@
@PostMapping(value = "/api/t-pedigree-chart/updateCount")
public R<Boolean> updateCount(@RequestBody String param) {
TPedigreeChartDetailCountDTO dto = JSON.parseObject(param, TPedigreeChartDetailCountDTO.class);
+
+ TPedigreeChartDetail count = pedigreeChartDetailService.getById(dto.getId());
+ count.setGenerationCount(dto.getGenerationCount());
+ // 待审核状态
+ count.setAuditStatus(1);
+ count.setVaccinateId(tokenService.getLoginUser().getUserId()+"");
+ count.setVaccinateTime(LocalDateTime.now());
+ count.setVaccinateSignature(dto.getVaccinateSignature());
+ pedigreeChartDetailService.updateById(count);
+ return R.ok();
+ }
+ @ApiOperation(value = "谱系图-设置传代数",response = TPedigreeChartDetailCountDTO.class)
+ @PostMapping(value = "/api/t-pedigree-chart/addCount")
+ public R<Boolean> addCount(@RequestBody String param) {
+ TPedigreeChartDetailCountDTO dto = JSON.parseObject(param, TPedigreeChartDetailCountDTO.class);
TPedigreeChartDetail pedigreeChartDetail1 = new TPedigreeChartDetail();
pedigreeChartDetail1.setParentId(dto.getParentId());
pedigreeChartDetail1.setVaccinateId(tokenService.getLoginUser().getUserId()+"");
@@ -496,6 +830,9 @@
pedigreeChartDetail1.setGenerationCount(dto.getGenerationCount());
pedigreeChartDetail1.setPedigreeChartId(tPedigreeChartDetail.getPedigreeChartId());
pedigreeChartDetail1.setType(2);
+
+ pedigreeChartDetail1.setCodeStatus(dto.getCodeStatus());
+ pedigreeChartDetail1.setAuditStatus(1);
pedigreeChartDetailService.save(pedigreeChartDetail1);
return R.ok();
}
@@ -516,6 +853,7 @@
pedigreeChartDetail.setPreserveId(String.valueOf(tokenService.getLoginUser().getUserId()));
pedigreeChartDetail.setPreserveSignature(dto.getPreserveSignature());
pedigreeChartDetail.setConfirmTime(LocalDateTime.now());
+ pedigreeChartDetail.setAuditStatus(2);
pedigreeChartDetailService.updateById(pedigreeChartDetail);
return R.ok();
}
--
Gitblit v1.7.1