From bd9cf1a87d50cc7cb29118cc85f397a7ab7228e9 Mon Sep 17 00:00:00 2001
From: heheng <heheng@123456>
Date: 星期一, 16 十二月 2024 16:51:01 +0800
Subject: [PATCH] 增加监管机构数据限制

---
 assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectServiceImpl.java |   27 +++++++++++++++++++++------
 1 files changed, 21 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 deb847c..b524d6d 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
@@ -2,10 +2,12 @@
 
 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.vo.PersonRecognitionVO;
@@ -49,6 +51,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);
@@ -86,10 +93,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);
@@ -101,7 +109,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());
@@ -115,9 +130,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());
@@ -140,7 +155,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