heheng
2025-05-20 dc4f8829472baf47345e3a01384d7b5eaf7ee727
expert-system/src/main/java/com/gkhy/system/service/impl/ProjectManagementServiceImpl.java
@@ -8,6 +8,7 @@
import com.gkhy.common.utils.DateUtils;
import com.gkhy.common.utils.SecurityUtils;
import com.gkhy.common.utils.StringUtils;
import com.gkhy.common.utils.uuid.RandomStringGenerator;
import com.gkhy.system.domain.*;
import com.gkhy.system.domain.vo.request.*;
import com.gkhy.system.domain.vo.response.*;
@@ -65,7 +66,7 @@
     */
    @Override
    public List<ProjectManagement> selectProjectManagementList(ProjectManagement projectManagement) {
        if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
        if (!SecurityUtils.isAdmin(SecurityUtils.getUserId()) && SecurityUtils.getUserId() != 130L){
           projectManagement.setDeptId(SecurityUtils.getDeptId());
        }
        return projectManagementMapper.selectProjectManagementList(projectManagement);
@@ -93,6 +94,7 @@
           // projectManagementMapper.updateProjectManagement(projectManagementSave);
            updateById(projectManagementSave);
        }else {
            projectManagementSave.setProjectCode(RandomStringGenerator.generateRandomString(10));
            projectManagementSave.setStep(1L);
            projectManagementSave.setCreateBy(SecurityUtils.getUsername());
            projectManagementSave.setCreateTime(DateUtils.getNowDate());
@@ -138,13 +140,9 @@
//            throw new ServiceException("固定专家不能为空!");
//        }
        if ((projectManagement1.getStep() == 1 || projectManagement1.getStep() == 2) && (projectManagement.getStep() == 2 ) ){
        if ((projectManagement1.getStep() == 1 || projectManagement1.getStep() == 2) && (projectManagement.getStep() == 2  ) ){
            projectManagementSave.setStep(2L);
            projectManagementSave.setState(1L);
        }else if (projectManagement1.getStep() == 2 && projectManagement.getStep() == 3){
            projectManagementSave.setStep(2L);
            projectManagementSave.setState(2L);
            projectManagementSave.setProjectCheckTime(new Date());
            List<ProjectExpertSaveReqDto> collect = saveData.stream()
                    .filter(dto -> "1".equals(dto.getTeamLeader().toString()))
                    .collect(Collectors.toList());
@@ -157,6 +155,11 @@
            }
            projectManagementSave.setExpertName(collect.get(0).getExpertName());
            projectManagementSave.setExpertId(collect.get(0).getExpertId());
        }else if (projectManagement1.getStep() == 2 && projectManagement.getStep() == 3){
            projectManagementSave.setStep(2L);
            projectManagementSave.setState(2L);
            projectManagementSave.setProjectCheckTime(new Date());
        }
        List<ProjectExpertSaveReqDto> saveList = saveData.stream()
@@ -238,12 +241,12 @@
    @Override
    public int deleteProjectManagementByIds(Long[] ids) {
        // 校验
//        for (Long id : ids) {
//            checkDataPer(id);
//        }
        if (!SecurityUtils.isAdmin(SecurityUtils.getUserId()) ){
            throw new ServiceException("无权操作!");
        for (Long id : ids) {
            checkDelData(id);
        }
//        if (!SecurityUtils.isAdmin(SecurityUtils.getUserId()) ){
//            throw new ServiceException("无权操作!");
//        }
        return projectManagementMapper.deleteProjectManagementByIds(ids);
    }
@@ -284,12 +287,16 @@
        if (req.getState() == 3){
            projectManagementUp.setStep(3L);
        }else if (req.getState() == 1){
            projectManagementUp.setStep(2L);
            projectManagementUp.setExpertName("");
            projectManagementUp.setExpertId(0l);
            projectManagementUp.setExpertNum(0L);
            projectManagementUp.setStep(1L);
        }
        int i = projectManagementMapper.updateProjectManagement(projectManagementUp);
        //驳回删
        if (req.getState() == 1){
            projectFileMapper.deleteProjectFileByIdAndType(req.getId(), "1");
            projectExpertMapper.deleteProjectExpertByProjectId(req.getId());
        }
        if (i > 0 && StringUtils.isNotEmpty(projectFile) && req.getState() == 3){
            //删除之前的该类型
@@ -490,12 +497,15 @@
            projectDetailResp.setProjectName(projectManagement.getProjectName());
            projectDetailResp.setProjectDateStart(projectManagement.getProjectDateStart());
            projectDetailResp.setProjectDateEnd(projectManagement.getProjectDateEnd());
            if (StringUtils.isNotEmpty(projectManagement.getJobCategory())){
                projectDetailResp.setJobCategory(projectManagement.getJobCategory());
            }
            SysExpertInfo sysExpertInfo = sysExpertInfoMapper.selectById(projectDetailResp.getExpertId());
            if (sysExpertInfo != null){
                projectDetailResp.setTitle(sysExpertInfo.getTitle());
                projectDetailResp.setJob(sysExpertInfo.getJob());
            }
        }
        return projectDetailResp;
    }
@@ -515,6 +525,11 @@
        return projectExpertMapper.projectExpertExportList(projectId);
    }
    @Override
    public List<ProjectDataResp> selectProjectData(ProjectManagement projectManagement) {
        return projectManagementMapper.selectProjectData(projectManagement);
    }
    private List<ProjectExpertDetail> dealData(List<ProjectExpertScoreSaveReq.Score> data,Long projectExpertId){
@@ -551,7 +566,7 @@
        Long deptId = projectManagement.getDeptId();
        // 本部门审批?
        if (!SecurityUtils.isAdmin(SecurityUtils.getUserId()) && deptId.intValue() != SecurityUtils.getDeptId().intValue()){
            throw new ServiceException("非本部门数据,无权操作!");
            throw new ServiceException("非本处室数据,无权操作!");
        }
        if (projectManagement.getState() == 4){
            throw new ServiceException("已结项,无权操作!");
@@ -559,4 +574,16 @@
        return projectManagement;
    }
    private void checkDelData(Long id){
        ProjectManagement projectManagement = checkData(id);
        Long deptId = projectManagement.getDeptId();
        // 本部门审批?
        if (!SecurityUtils.isAdmin(SecurityUtils.getUserId()) && deptId.intValue() != SecurityUtils.getDeptId().intValue()){
            throw new ServiceException("非本处室数据,无权操作!");
        }
    }
}