From b1d76ff75fef33e8b2307f3a8c2f4ec5e638f0cd Mon Sep 17 00:00:00 2001
From: shenyijian <1178253012@qq.com>
Date: Sat, 02 Nov 2024 14:45:08 +0800
Subject: [PATCH] 湖北水库:项目单位过滤

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java |   12 ++++--
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java    |   45 ++++++++++++++++++++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml                |    6 +-
 3 files changed, 56 insertions(+), 7 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml
index 3f2f2ef..6932dd1 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml
@@ -16,7 +16,7 @@
         LEFT JOIN SJZT_DW."dim_res_info_a" dria ON dria."res_cd" = info.sk_id
         WHERE
         1 =1
-        <if test="dto.selfUnit != null and dto.selfUnit.size>0">
+        <if test="dto.selfUnit != null and dto.selfUnit.size>0 ">
             and
             <foreach collection="dto.selfUnit" item="item" index="index" open="(" separator="or" close=")">
                 info.CONSTRUCTION_UNIT Like  CONCAT(CONCAT('%', #{item}), '%')
@@ -85,9 +85,9 @@
                 #{id}
             </foreach>)
         </if>
-        <if test="dto.deptId != null and dto.deptId !=''">
+        <!--<if test="dto.deptId != null and dto.deptId !=''">
             and (info.control_unit = #{dto.deptId} or info.construction_unit = #{dto.deptId})
-        </if>
+        </if>-->
         <if test="dto.adCode != null and dto.adCode !=''">
             and dria."county_cd" = #{dto.adCode}
         </if>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java
index 38f2157..a0e7502 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java
@@ -726,13 +726,17 @@
 		//判断是不是省厅建办  否的话就不设置部门
 		if (!roleId.equals(1800820667082948610L)){
 			//判断是不是县级建办  否的话就是监理单位下人员进行
-			if(!roleId.equals(1811657352658042882L)){
+			if(roleId.equals(1710904523971129345L)){
 				searchDTO.setUserUnit(longList);
-			}else if (roleId.equals(1800818489547112450L)){
-				searchDTO.setSelfUnit(longList);
-			}else {
+			}
+
+			if(roleId.equals(1811657352658042882L)) {
 				searchDTO.setCountryUnit(longList);
 			}
+
+			if(roleId==1800818489547112450L){
+				searchDTO.setSelfUnit(longList);
+			}
 		}
 	}
 
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java
index 394d404..396bb7c 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java
@@ -18,6 +18,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.jetbrains.annotations.NotNull;
 import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -58,6 +59,9 @@
 		List<String> sgCodeS = getSgCodeByUser();
 		searchDTO.setSgCodeS(sgCodeS);
 		setAdCode(searchDTO);
+		BladeUser user = AuthUtil.getUser();
+		Long roleId = getRoleId();
+		setUnit2(searchDTO,user,roleId);
 		Boolean isPage = searchDTO.getIsPage();
 		if (isPage==null) isPage = true;
 		if (isPage ){
@@ -111,7 +115,42 @@
 		}
 
 	}
+	private  void setUnit2(ProjectSearchDTO searchDTO, BladeUser user, Long roleId) {
+		List<String> longList = Arrays.stream(user.getDeptId().split(","))
+			.collect(Collectors.toList());
+		//判断是不是省厅建办  否的话就不设置部门
+		if (!roleId.equals(1800820667082948610L)){
+			//判断是不是县级建办  否的话就是监理单位下人员进行
+			if(roleId.equals(1710904523971129345L)){
+				searchDTO.setUserUnit(longList);
+			}
 
+			if(roleId.equals(1811657352658042882L)) {
+				searchDTO.setCountryUnit(longList);
+			}
+
+			if(roleId==1800818489547112450L){
+				searchDTO.setSelfUnit(longList);
+			}
+		}
+	}
+
+	public Long getRoleId(){
+		BladeUser user = AuthUtil.getUser();
+		List<String> userRole = Arrays.asList(user.getRoleId().split(","));
+		List<Long> roleList = sgProgressReportMapper.getSgEngineerRole();
+		Long roleId = null;
+		for (String s : userRole) {
+			long l = Long.parseLong(s);
+			if (roleList.contains(l)){
+				roleId = l;
+			}
+		}
+		if (Objects.isNull(roleId)){
+			roleId = Long.parseLong(userRole.get(0));
+		}
+		return roleId;
+	}
 	/**
 	 * 设置百分号
 	 * @param s
@@ -341,6 +380,9 @@
 		List<String> sgCodeS = getSgCodeByUser();
 		searchDTO.setSgCodeS(sgCodeS);
 		setDeptId(searchDTO);
+		BladeUser user = AuthUtil.getUser();
+		Long roleId = getRoleId();
+		setUnit2(searchDTO,user,roleId);
 		List<SgProjectInfoDO> list = sgProjectInfoMapper.queryPageList(null, searchDTO);
 		return list;
 	}
@@ -636,6 +678,9 @@
 	public Map<String, Object> projectCount(ProjectSearchDTO searchDTO) {
 		List<String> sgCodeS = getSgCodeByUser();
 		searchDTO.setSgCodeS(sgCodeS);
+		BladeUser user = AuthUtil.getUser();
+		Long roleId = getRoleId();
+		setUnit2(searchDTO,user,roleId);
 		Map<String, Object> map  = new HashMap<>();
 		List<SgProjectInfoVO> progressList = progressList(searchDTO);
 		BigDecimal reduce = progressList.stream().filter(s->s.getProjectProgressNum()!=null).map(SgProjectInfoDO::getProjectProgressNum).reduce(BigDecimal.ZERO, BigDecimal::add);

--
Gitblit v1.9.3