heheng
2025-03-27 5d2cfd4562f74496a5263db3451c1e78ff53aead
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectServiceImpl.java
@@ -2,22 +2,29 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.gkhy.assess.common.api.CommonPage;
import com.gkhy.assess.common.constant.SuperAccountConstant;
import com.gkhy.assess.common.enums.DeleteFlagEnum;
import com.gkhy.assess.common.enums.UserIdentityEnum;
import com.gkhy.assess.common.exception.ApiException;
import com.gkhy.assess.common.utils.PageUtil;
import com.gkhy.assess.common.utils.StringUtils;
import com.gkhy.assess.system.domain.AssPlanPerson;
import com.gkhy.assess.system.domain.AssProject;
import com.gkhy.assess.system.domain.SysAgency;
import com.gkhy.assess.system.domain.vo.AssProjectVo;
import com.gkhy.assess.system.domain.vo.PersonRecognitionVO;
import com.gkhy.assess.system.domain.vo.ProjectStaticVO;
import com.gkhy.assess.system.enums.ProgressPhaseEnum;
import com.gkhy.assess.system.enums.ReportProgressEnum;
import com.gkhy.assess.system.enums.SafetyCheckEnum;
import com.gkhy.assess.system.mapper.AssPlanPersonMapper;
import com.gkhy.assess.system.mapper.AssProjectMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.assess.system.domain.SysUser;
import com.gkhy.assess.system.mapper.SysAgencyMapper;
import com.gkhy.assess.system.service.AssProjectService;
import com.gkhy.assess.system.utils.ShiroUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -39,6 +46,8 @@
public class AssProjectServiceImpl extends ServiceImpl<AssProjectMapper, AssProject> implements AssProjectService {
    @Autowired
    private AssPlanPersonMapper planPersonMapper;
    @Autowired
    private SysAgencyMapper agencyMapper;
    @Override
    public CommonPage projectList(AssProject project) {
@@ -49,6 +58,11 @@
                throw new ApiException("用户机构id为空");
            }
            project.setAgencyId(user.getAgencyId());
        }else {
            //监管机构只能查看本辖区的项目
            if (!SuperAccountConstant.ADMINISTRATOR.equals(user.getUsername()) && !SuperAccountConstant.SUPER_ADMIN.equals(user.getUsername())){
                project.setCity(user.getManageRegion());
            }
        }
        PageUtil.startPage();
        List<AssProject> projects=baseMapper.projectList(project);
@@ -72,8 +86,21 @@
    }
    @Override
    public AssProject getProjectById(Long projectId) {
        return baseMapper.getProjectById(projectId);
    public AssProjectVo getProjectById(Long projectId) {
        AssProject projectById = baseMapper.getProjectById(projectId);
        if(projectById!=null){
            AssProjectVo projectVo = new AssProjectVo();
            BeanUtils.copyProperties(projectById, projectVo);
            Long agencyId = projectVo.getAgencyId();
            if (agencyId != null) {
                SysAgency agency = agencyMapper.getAgencyById(agencyId);
                projectVo.setAgency(agency);
            }
            return projectVo;
        }
        return null;
    }
    @Override
@@ -87,6 +114,7 @@
            throw new ApiException("用户机构id为空");
        }
        project.setAgencyId(user.getAgencyId());
        project.setSafetyCheck(project.getEstimateType() == 33 ? SafetyCheckEnum.CHECKED.getCode() :SafetyCheckEnum.UN_CHECK.getCode());
        if(!checkNameUnique(project)){
            throw new ApiException("项目名已存在");
        }
@@ -148,7 +176,7 @@
    @Override
    public boolean checkNameUnique(AssProject project) {
        Long projectId = project.getId()==null? -1L : project.getId();
        AssProject pro = baseMapper.getProjectByName(project.getName(),project.getAgencyId());
        AssProject pro = baseMapper.getProjectByName(project.getName(),project.getAgencyId(),project.getSafetyCheck());
        if (pro!=null && pro.getId().longValue() != projectId.longValue())
        {
            return false;
@@ -236,13 +264,25 @@
        project.setPhase(ProgressPhaseEnum.ARCHIVE.getCode());
        Integer archiveTotal=baseMapper.getProjectCount(project);
        project.setPhase(null);
        project.setUnFinish(1);
        project.setSafetyCheck(SafetyCheckEnum.CHECKED.getCode());
        Integer safetyCheckTotal=baseMapper.getProjectCount(project);
        project.setSafetyCheck(SafetyCheckEnum.UN_CHECK.getCode());
        Integer safetyTotal=baseMapper.getProjectCount(project);
        ProjectStaticVO projectStaticVO=new ProjectStaticVO()
                .setProjectTotal(projectTotal)
                .setRiskTotal(riskTotal)
                .setInvestigationTotal(investigationTotal)
                .setReviewTotal(reviewTotal)
                .setReportTotal(reportTotal)
                .setArchiveTotal(archiveTotal);
                .setArchiveTotal(archiveTotal)
                .setSafetyCheckTotal(safetyCheckTotal)
                .setSafetyTotal(safetyTotal)
                .setUnFinishTotal(safetyTotal+safetyCheckTotal);
        return projectStaticVO;
    }