无关风月
2025-08-06 053f6187b5f6cda1725ed63df8a8766b5976fb53
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,26 +206,28 @@
            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())
                    .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);
            }
        }
        // 新增消息
        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();
    }
@@ -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{