From 199a1f9e1fdbfdf88176f8b66cd2748d8026bffc Mon Sep 17 00:00:00 2001
From: gonglilong <328255720@qq.com>
Date: Mon, 04 Nov 2024 15:45:34 +0800
Subject: [PATCH] 修改上报 项目列表权限

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java |   58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 54 insertions(+), 4 deletions(-)

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 4edd9b9..4e27a9d 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(1800820855352672257L)){
+				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
@@ -203,7 +242,7 @@
 				if (CollectionUtils.isEmpty(ptyValue)){
 					continue;
 				}
-				PtypeVO ptypeVO = PtypeVO.builder().pTypeName(ptyValue.get(0).getPtypeName()).build();
+				PtypeVO ptypeVO = PtypeVO.builder().pTypeName(ptyValue.get(0).getPtypeName()).sort(ptyValue.get(0).getSort()).build();
 				List<SgTypeVO> sgGxDOS = new ArrayList<>();
 				//类型分组
 				Map<String, List<SgProjectInfoVO>> GxMap = ptyValue.stream().filter(s->s.getDeviceType()!=null).collect(Collectors.groupingBy(SgProjectInfoVO::getDeviceType));
@@ -213,8 +252,8 @@
 					if (CollectionUtils.isEmpty(gxList)){
 						continue;
 					}
-					gxList = list.stream().sorted(Comparator.comparing(SgProjectInfoVO::getPrice)).collect(Collectors.toList());
-					SgTypeVO typeVO = SgTypeVO.builder().typeName(gxList.get(0).getTypeName()).build();
+					gxList = gxList.stream().sorted(Comparator.comparing(SgProjectInfoVO::getPrice)).collect(Collectors.toList());
+					SgTypeVO typeVO = SgTypeVO.builder().typeName(gxList.get(0).getTypeName()).sort(gxList.get(0).getDSort()).build();
 					List<SgDeviceDO> deviceDOS = new ArrayList<>();
 					//设备分组
 					Map<Long, List<SgProjectInfoVO>> dMap = gxList.stream().filter(s->s.getDId()!=null).collect(Collectors.groupingBy(SgProjectInfoVO::getDId));
@@ -255,6 +294,7 @@
 				BigDecimal sgGxOver = BigDecimal.valueOf(sum);
 				BigDecimal divideSgGx = sgGxOver.divide(sgGxSize, 2, RoundingMode.HALF_UP);
 				ptypeVO.setPTypeProgress(getBigDecimalPercent(divideSgGx));
+				sgGxDOS = sgGxDOS.stream().sorted(Comparator.comparing(SgTypeVO::getSort)).collect(Collectors.toList());
 				ptypeVO.setSgTypeVOS(sgGxDOS);
 				pTypes.add(ptypeVO);
 			}
@@ -263,7 +303,8 @@
 				double sum = allDevice.stream().mapToDouble(s -> Double.parseDouble(s.getProgress())).sum();
 				BigDecimal allDeviceOver = BigDecimal.valueOf(sum);
 				BigDecimal allDivideDevice = allDeviceOver.divide(allDeviceSize, 2, RoundingMode.HALF_UP);
-				sgProjectInfoDO.setPtypeVOS(pTypes);
+				List<PtypeVO> sortPtpes = pTypes.stream().sorted(Comparator.comparing(PtypeVO::getSort)).collect(Collectors.toList());
+				sgProjectInfoDO.setPtypeVOS(sortPtpes);
 				sgProjectInfoDO.setProjectProgress( getBigDecimalPercent(allDivideDevice));
 				sgProjectInfoDO.setProjectProgressNum(allDivideDevice);
 			}
@@ -339,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;
 	}
@@ -634,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);
@@ -694,6 +741,9 @@
 		List<String> sgCodeS = getSgCodeByUser();
 		dto.setSgCodeS(sgCodeS);
 		setAdCode(dto);
+		BladeUser user = AuthUtil.getUser();
+		Long roleId = getRoleId();
+		//setUnit2(dto,user,roleId);
 		List<SgProjectTreeVO> list = 	sgProjectInfoMapper.projectTree(dto);
 		if (CollectionUtils.isNotEmpty(list)){
 			list.forEach(x->{

--
Gitblit v1.9.3