From a2a1f2a22db7c2e53275359fb5f8d6c0dd15d8d6 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: 星期五, 09 八月 2024 16:25:58 +0800
Subject: [PATCH] update

---
 assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectServiceImpl.java |   36 ++++++++++++++++++++++++++++++------
 1 files changed, 30 insertions(+), 6 deletions(-)

diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectServiceImpl.java
index baec209..2346449 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectServiceImpl.java
@@ -8,6 +8,7 @@
 import com.gkhy.assess.common.utils.PageUtil;
 import com.gkhy.assess.system.domain.AssPlanPerson;
 import com.gkhy.assess.system.domain.AssProject;
+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;
@@ -52,7 +53,22 @@
         PageUtil.startPage();
         List<AssProject> projects=baseMapper.projectList(project);
         //获取签字确认人数
+        handleProjectRecognitionCount(projects);
         return CommonPage.restPage(projects);
+    }
+
+    public void handleProjectRecognitionCount(List<AssProject> projects){
+        List<Long>projectIds=projects.stream().map(item -> item.getId()).collect(Collectors.toList());
+        if(!projectIds.isEmpty()) {
+            List<PersonRecognitionVO> personAndRecognitions = planPersonMapper.getPersonAndRecognitionCount(projectIds);
+            Map<Long, PersonRecognitionVO> map = personAndRecognitions.stream().collect(Collectors.toMap(PersonRecognitionVO::getProjectId, a -> a));
+            for (AssProject project : projects) {
+                PersonRecognitionVO personRecognitionVO = map.get(project.getId());
+                if (personRecognitionVO != null) {
+                    project.setPersonRecognition(personRecognitionVO);
+                }
+            }
+        }
     }
 
     @Override
@@ -70,10 +86,11 @@
         if(user.getAgencyId()==null){
             throw new ApiException("用户机构id为空");
         }
+        project.setAgencyId(user.getAgencyId());
         if(!checkNameUnique(project)){
             throw new ApiException("项目名已存在");
         }
-        project.setAgencyId(user.getAgencyId());
+
         project.setReportProgress(ReportProgressEnum.ADD.getCode());
         project.setCreateBy(ShiroUtils.getSysUser().getUsername());
         int row=baseMapper.insert(project);
@@ -85,7 +102,14 @@
         //todo  权限校验
         SysUser user= ShiroUtils.getSysUser();
         checkUserAllowed(projectId);
-        AssProject project=new AssProject()
+        //判断项目流转状态
+        AssProject project=getById(projectId);
+        if(project.getReportProgress().equals(ReportProgressEnum.CONFIRM_FINAL.getCode())){
+            if(!user.getIdentity().equals(UserIdentityEnum.MONITOR.getCode())){
+                throw new ApiException("没有权限删除确认完结的项目,请联系监管用户删除");
+            }
+        }
+        project=new AssProject()
                 .setId(projectId)
                 .setDelFlag(DeleteFlagEnum.DELETED.getCode());
         project.setUpdateBy(user.getUsername());
@@ -99,9 +123,9 @@
             throw new ApiException("项目id不能为空");
         }
         checkUserAllowed(projectId);
-        if(!checkNameUnique(project)){
-            throw new ApiException("项目名已存在");
-        }
+//        if(!checkNameUnique(project)){
+//            throw new ApiException("项目名已存在");
+//        }
         project.setAgencyId(null);//机构id不能修改
         project.setReportProgress(null);//项目状态不能修改
         project.setUpdateBy(ShiroUtils.getSysUser().getUsername());
@@ -124,7 +148,7 @@
     @Override
     public boolean checkNameUnique(AssProject project) {
         Long projectId = project.getId()==null? -1L : project.getId();
-        AssProject pro = baseMapper.getProjectByName(project.getName());
+        AssProject pro = baseMapper.getProjectByName(project.getName(),project.getAgencyId());
         if (pro!=null && pro.getId().longValue() != projectId.longValue())
         {
             return false;

--
Gitblit v1.9.2