| 
					
				 | 
			
			
				@@ -124,6 +124,7 @@ import java.util.Arrays; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.Calendar; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.HashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Iterator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.LinkedHashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.LinkedList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.List; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -597,7 +598,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else if (3 == reqType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (!ObjectUtils.isEmpty(list)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //查出审核此项目的单位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    List<Long> longList = list.stream().map(PmAuditDeptRef::getRefId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    List<Long> longList = list.stream().map(PmAuditDeptRef::getDeptId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // 如果有上级单位存在,将本单位剔除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     SysDept sysDept = deptMapper.selectDeptById(sysUser.getDeptId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (longList.contains(sysDept.getParentId())) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -4018,25 +4019,44 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public List<PmDemand> getListByStatusCGB(String projectStatus) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //登录用户的部门 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Long deptId = SecurityUtils.getDeptId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SysDept sysDept = deptMapper.selectDeptById(deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<PmDemand> lw = new LambdaQueryWrapper<PmDemand>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //需求待提交时不用查审核 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<PmAuditDeptRef> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<PmAuditDeptRef> l = new LambdaQueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         l.eq(PmAuditDeptRef::getDeptId, deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         l.eq(PmAuditDeptRef::getRefType, "2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         list = pmAuditDeptRefService.list(l); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!ObjectUtils.isEmpty(list) && !SysUser.isAdmin(SecurityUtils.getUserId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //查出审核此项目的单位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<Long> longList = list.stream().map(PmAuditDeptRef::getRefId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 如果有上级单位存在,将本单位剔除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            SysDept sysDept = deptMapper.selectDeptById(deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (longList.contains(sysDept.getParentId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                longList.remove(deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //本单位所有参与审核的项目id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Long> refList = list.stream().map(PmAuditDeptRef::getRefId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //替身,取交集用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Long> refListL = refList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //上级参与审核的项目 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Long> refListf = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        LambdaQueryWrapper<PmDemand> lwf = new LambdaQueryWrapper<PmDemand>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<PmAuditDeptRef> listf = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (sysDept.getParentId() != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LambdaQueryWrapper<PmAuditDeptRef> lf = new LambdaQueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lf.eq(PmAuditDeptRef::getDeptId, sysDept.getParentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lf.eq(PmAuditDeptRef::getRefType, "2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            listf = pmAuditDeptRefService.list(lf); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //上级参与审核的项目id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            refListf = listf.stream().map(PmAuditDeptRef::getRefId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //取集合交集,交集中的是上级处理,本单位不处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!ObjectUtils.isEmpty(refListf)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            refListL.retainAll(refListf); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Iterator<Long> it = refList.iterator(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            while (it.hasNext()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //只留下本单位要处理的项目 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (refListL.contains(it.next())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    it.remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            lw.in(PmDemand::getDemandId, list.stream().map(PmAuditDeptRef::getRefId).collect(Collectors.toList())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         lw.in(PmDemand::getProjectStatus, projectStatus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        lw.eq(PmDemand::getPurchaseDeptId, deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         lw.last(" order by project_status, plan_demand_sub_time"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return this.baseMapper.selectList(lw); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -4076,24 +4096,49 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public List<PmDemand> getListByStatusTotalCGB(List<String> projectStatus) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //登录用户的部门 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Long deptId = SecurityUtils.getDeptId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SysDept sysDept = deptMapper.selectDeptById(deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<PmDemand> lw = new LambdaQueryWrapper<PmDemand>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<PmAuditDeptRef> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<PmAuditDeptRef> l = new LambdaQueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         l.eq(PmAuditDeptRef::getDeptId, deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         l.eq(PmAuditDeptRef::getRefType, "2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         list = pmAuditDeptRefService.list(l); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!ObjectUtils.isEmpty(list) && !SysUser.isAdmin(SecurityUtils.getUserId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //查出审核此项目的单位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<Long> longList = list.stream().map(PmAuditDeptRef::getRefId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 如果有上级单位存在,将本单位剔除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            SysDept sysDept = deptMapper.selectDeptById(deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (longList.contains(sysDept.getParentId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                longList.remove(deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //本单位所有参与审核的项目id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Long> refList = list.stream().map(PmAuditDeptRef::getRefId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //替身,取交集用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Long> refListL = refList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //上级参与审核的项目 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Long> refListf = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        LambdaQueryWrapper<PmDemand> lwf = new LambdaQueryWrapper<PmDemand>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<PmAuditDeptRef> listf = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (sysDept.getParentId() != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LambdaQueryWrapper<PmAuditDeptRef> lf = new LambdaQueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lf.eq(PmAuditDeptRef::getDeptId, sysDept.getParentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lf.eq(PmAuditDeptRef::getRefType, "2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            listf = pmAuditDeptRefService.list(lf); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //上级参与审核的项目id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            refListf = listf.stream().map(PmAuditDeptRef::getRefId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //取集合交集,交集中的是上级处理,本单位不处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!ObjectUtils.isEmpty(refListf)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            refListL.retainAll(refListf); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Iterator<Long> it = refList.iterator(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            while (it.hasNext()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //只留下本单位要处理的项目 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (refListL.contains(it.next())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    it.remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            lw.in(PmDemand::getDemandId, list.stream().map(PmAuditDeptRef::getRefId).collect(Collectors.toList())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //为空就返回空 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (ObjectUtils.isEmpty(refList) && !SysUser.isAdmin(SecurityUtils.getUserId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lw.in(PmDemand::getDemandId, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else if (!ObjectUtils.isEmpty(refList) && !SysUser.isAdmin(SecurityUtils.getUserId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lw.in(PmDemand::getDemandId, refList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         lw.in(PmDemand::getProjectStatus, projectStatus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        lw.eq(PmDemand::getPurchaseDeptId, deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         lw.last(" order by project_status, plan_demand_sub_time"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return this.baseMapper.selectList(lw); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -4138,25 +4183,49 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public Integer getNumByStatusCGB(String projectStatus) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //登录用户的部门 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Long deptId = SecurityUtils.getDeptId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SysDept sysDept = deptMapper.selectDeptById(deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<PmDemand> lw = new LambdaQueryWrapper<PmDemand>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ///需求待提交时不用查审核 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<PmAuditDeptRef> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<PmAuditDeptRef> l = new LambdaQueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         l.eq(PmAuditDeptRef::getDeptId, deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         l.eq(PmAuditDeptRef::getRefType, "2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         list = pmAuditDeptRefService.list(l); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!ObjectUtils.isEmpty(list) && !SysUser.isAdmin(SecurityUtils.getUserId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //查出审核此项目的单位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<Long> longList = list.stream().map(PmAuditDeptRef::getRefId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 如果有上级单位存在,将本单位剔除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            SysDept sysDept = deptMapper.selectDeptById(deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (longList.contains(sysDept.getParentId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                longList.remove(deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //本单位所有参与审核的项目id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Long> refList = list.stream().map(PmAuditDeptRef::getRefId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //替身,取交集用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Long> refListL = refList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //上级参与审核的项目 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Long> refListf = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        LambdaQueryWrapper<PmDemand> lwf = new LambdaQueryWrapper<PmDemand>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<PmAuditDeptRef> listf = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (sysDept.getParentId() != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LambdaQueryWrapper<PmAuditDeptRef> lf = new LambdaQueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lf.eq(PmAuditDeptRef::getDeptId, sysDept.getParentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lf.eq(PmAuditDeptRef::getRefType, "2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            listf = pmAuditDeptRefService.list(lf); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //上级参与审核的项目id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            refListf = listf.stream().map(PmAuditDeptRef::getRefId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //取集合交集,交集中的是上级处理,本单位不处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!ObjectUtils.isEmpty(refListf)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            refListL.retainAll(refListf); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Iterator<Long> it = refList.iterator(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            while (it.hasNext()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //只留下本单位要处理的项目 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (refListL.contains(it.next())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    it.remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            lw.in(PmDemand::getDemandId, list.stream().map(PmAuditDeptRef::getRefId).collect(Collectors.toList())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //为空就返回空 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (ObjectUtils.isEmpty(refList) && !SysUser.isAdmin(SecurityUtils.getUserId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lw.in(PmDemand::getDemandId, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else if (!ObjectUtils.isEmpty(refList) && !SysUser.isAdmin(SecurityUtils.getUserId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lw.in(PmDemand::getDemandId, refList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         lw.eq(PmDemand::getProjectStatus, projectStatus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        lw.eq(PmDemand::getPurchaseDeptId, deptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         lw.last(" order by project_status, plan_demand_sub_time"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Long count = this.baseMapper.selectCount(lw); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return Math.toIntExact(count); 
			 |