| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -30,6 +30,7 @@ import com.epmet.commons.tools.page.PageData; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.tools.utils.ConvertUtils; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.tools.utils.Result; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.dao.SpecialSubjectDao; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.dto.CustomerAgencyDTO; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.dto.SpecialSubjectDTO; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.dto.TagCustomerDTO; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.dto.form.*; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -142,9 +143,8 @@ public class SpecialSubjectServiceImpl extends BaseServiceImpl<SpecialSubjectDao | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            throw new RenException(EpmetErrorCode.TAG_NOT_EXIST.getCode(), EpmetErrorCode.TAG_NOT_EXIST.getMsg()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //2、校验当前组织是否添加过此专题
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        QuerySpecialSubFormDTO querySpecialSubFormDTO=new QuerySpecialSubFormDTO(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        querySpecialSubFormDTO.setOrgId(formDTO.getOrgId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        querySpecialSubFormDTO.setPids(formDTO.getPids()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        QuerySpecialSubFormDTO querySpecialSubFormDTO=ConvertUtils.sourceToTarget(formDTO,QuerySpecialSubFormDTO.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        querySpecialSubFormDTO.setUserId(formDTO.getAddUserId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<WorkSpecialSubjectResultDTO> havedList=this.queryExistedList(querySpecialSubFormDTO); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<String> haveTagIds=havedList.stream().map(WorkSpecialSubjectResultDTO::getTagId).distinct().collect(Collectors.toList()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        haveTagIds.forEach(tagId->{ | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -154,11 +154,9 @@ public class SpecialSubjectServiceImpl extends BaseServiceImpl<SpecialSubjectDao | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        // 3、保存
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        SpecialSubjectEntity insertEntity = ConvertUtils.sourceToTarget(formDTO, SpecialSubjectEntity.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        StaffInfoFromDTO staffInfoFromDTO = new StaffInfoFromDTO(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        staffInfoFromDTO.setStaffId(formDTO.getAddUserId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Result<MineResultDTO> result = govOrgOpenFeignClient.queryStaffProfile(staffInfoFromDTO); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Result<CustomerAgencyDTO> result = govOrgOpenFeignClient.getAgencyByStaff(formDTO.getAddUserId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if(result.success()&&null!=result.getData()){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            insertEntity.setAddUserAgencyId(result.getData().getAgencyId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            insertEntity.setAddUserAgencyId(result.getData().getId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        insertEntity.setAddOrgId(formDTO.getOrgId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        insertEntity.setAddOrgPid(formDTO.getPid()); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -180,11 +178,11 @@ public class SpecialSubjectServiceImpl extends BaseServiceImpl<SpecialSubjectDao | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        SpecialSubjectEntity original = baseDao.selectById(formDTO.getSpecialSubjectId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (null != original) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (!original.getAddOrgId().equals(formDTO.getOrgId())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                log.warn("当前专题id=" + original.getId() + ";是属于orgId=" + original.getAddOrgId() + ";当前用户正处在orgId=" + formDTO.getOrgId()+";所以无权删除"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                throw new RenException(EpmetErrorCode.CAN_NOT_DEL_SPECIAL_PROJECT.getCode(), EpmetErrorCode.CAN_NOT_DEL_SPECIAL_PROJECT.getMsg()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            baseDao.delSpecialSubject(formDTO.getSpecialSubjectId(), formDTO.getUserId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        log.warn(String.format("special_subject is null id=%s", formDTO.getSpecialSubjectId())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -197,21 +195,26 @@ public class SpecialSubjectServiceImpl extends BaseServiceImpl<SpecialSubjectDao | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @Override | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    public List<WorkSpecialSubjectResultDTO> queryExistedList(QuerySpecialSubFormDTO formDTO) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Result<CustomerAgencyDTO> staffResult = govOrgOpenFeignClient.getAgencyByStaff(formDTO.getUserId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (!staffResult.success() && null == staffResult.getData()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            throw new RenException("查询当前工作人员信息异常"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<WorkSpecialSubjectResultDTO> resultDTOList = new ArrayList<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<String> notList = new ArrayList<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //当前组织或者网格自己建立的
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<WorkSpecialSubjectResultDTO> currentOrgList = new ArrayList<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<SpecialSubjectDTO> currentOrgCreatedList = baseDao.queryExistedList(formDTO.getOrgId(), notList); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        currentOrgCreatedList.forEach(dto -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            WorkSpecialSubjectResultDTO result = new WorkSpecialSubjectResultDTO(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            WorkSpecialSubjectResultDTO result = ConvertUtils.sourceToTarget(dto,WorkSpecialSubjectResultDTO.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            result.setSpecialSubjectId(dto.getId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            result.setTagId(dto.getTagId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            result.setTagName(dto.getTagName()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            result.setCanDel(true); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            result.setAddOrgId(dto.getAddOrgId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            result.setOrgLevel(dto.getOrgLevel()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            result.setTagColor(dto.getTagColor()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            result.setCreatedTime(dto.getCreatedTime()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //1、如果当前专题是给当前所在组织(or网格)添加的;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //2、当前工作人员所属的组织,与专题添加人所属的组织一致,同时满足这两个条件即可删除
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if(dto.getAddUserAgencyId().equals(staffResult.getData().getId()) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                && dto.getAddOrgId().equals(formDTO.getOrgId())){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                result.setCanDel(true); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }else{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                result.setCanDel(false); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            currentOrgList.add(result); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (CollectionUtils.isNotEmpty(currentOrgList)) { | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -227,15 +230,16 @@ public class SpecialSubjectServiceImpl extends BaseServiceImpl<SpecialSubjectDao | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //优先展示自己的,所以要排除掉自己的,自上向下查,优先展示上层领导们给我建立的专题
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                List<SpecialSubjectDTO> list = baseDao.queryExistedList(pid, notList); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                list.forEach(dto -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    WorkSpecialSubjectResultDTO result = new WorkSpecialSubjectResultDTO(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    WorkSpecialSubjectResultDTO result = ConvertUtils.sourceToTarget(dto,WorkSpecialSubjectResultDTO.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    result.setSpecialSubjectId(dto.getId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    result.setTagId(dto.getTagId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    result.setTagName(dto.getTagName()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    result.setCanDel(false); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    result.setAddOrgId(dto.getAddOrgId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    result.setOrgLevel(dto.getOrgLevel()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    result.setTagColor(dto.getTagColor()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    result.setCreatedTime(dto.getCreatedTime()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //1、如果当前专题是给当前所在组织(or网格)添加的;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //2、当前工作人员所属的组织,与专题添加人所属的组织一致,同时满足这两个条件即可删除
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (dto.getAddUserAgencyId().equals(staffResult.getData().getId()) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            && dto.getAddOrgId().equals(formDTO.getOrgId())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        result.setCanDel(true); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        result.setCanDel(false); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    resultDTOList.add(result); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -290,7 +294,8 @@ public class SpecialSubjectServiceImpl extends BaseServiceImpl<SpecialSubjectDao | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//                SpecialSubjectDTO subject = baseDao.getInfo(tagId);
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//                previewResultDTO.setSpecialSubjectId(subject.getId());
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//                previewResultDTO.setTagName(subject.getTagName());
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                previewResultDTO.setArticleList(articleService.getArticleListByTag(tagId, formDTO.getPageNo(), formDTO.getPageSize())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                previewResultDTO.setArticleList(articleService.getArticleListByTag(tagId, formDTO.getPageNo() - NumConstant.ONE, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        formDTO.getPageSize())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                result.add(previewResultDTO); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |