forked from rongchao/epmet-cloud-rizhao
				
			
				 4 changed files with 171 additions and 0 deletions
			
			
		@ -0,0 +1,20 @@ | 
				
			|||||
 | 
					package com.epmet.dto.result; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import lombok.AllArgsConstructor; | 
				
			||||
 | 
					import lombok.Data; | 
				
			||||
 | 
					import lombok.NoArgsConstructor; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import java.util.List; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					@Data | 
				
			||||
 | 
					@NoArgsConstructor | 
				
			||||
 | 
					@AllArgsConstructor | 
				
			||||
 | 
					public class ServiceProjectScopeResultDTO { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    private String objectId; | 
				
			||||
 | 
					    private String objectName; | 
				
			||||
 | 
					    private String objectType; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    private List<ServiceProjectScopeResultDTO> children; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,35 @@ | 
				
			|||||
 | 
					package com.epmet.controller; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import com.epmet.commons.tools.annotation.LoginUser; | 
				
			||||
 | 
					import com.epmet.commons.tools.security.dto.TokenDto; | 
				
			||||
 | 
					import com.epmet.commons.tools.utils.Result; | 
				
			||||
 | 
					import com.epmet.commons.tools.validator.ValidatorUtils; | 
				
			||||
 | 
					import com.epmet.dto.result.ServiceProjectScopeResultDTO; | 
				
			||||
 | 
					import com.epmet.service.ServiceProjectService; | 
				
			||||
 | 
					import com.epmet.service.impl.ServiceProjectServiceImpl; | 
				
			||||
 | 
					import org.springframework.beans.factory.annotation.Autowired; | 
				
			||||
 | 
					import org.springframework.web.bind.annotation.RequestBody; | 
				
			||||
 | 
					import org.springframework.web.bind.annotation.RequestMapping; | 
				
			||||
 | 
					import org.springframework.web.bind.annotation.RestController; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					/** | 
				
			||||
 | 
					 * 服务项目 | 
				
			||||
 | 
					 */ | 
				
			||||
 | 
					@RestController | 
				
			||||
 | 
					@RequestMapping("icServiceProject") | 
				
			||||
 | 
					public class ServiceProjectController { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @Autowired | 
				
			||||
 | 
					    public ServiceProjectService serviceProjectService; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    /** | 
				
			||||
 | 
					     * 服务范围树查询 | 
				
			||||
 | 
					     * @return | 
				
			||||
 | 
					     */ | 
				
			||||
 | 
					    @RequestMapping("service/serviceScopeTree") | 
				
			||||
 | 
					    public Result<ServiceProjectScopeResultDTO> getServiceScopeTree(@LoginUser TokenDto loginInfo) { | 
				
			||||
 | 
					        ServiceProjectScopeResultDTO r = serviceProjectService.getServiceScopeTree(loginInfo.getUserId()); | 
				
			||||
 | 
					        return new Result<ServiceProjectScopeResultDTO>().ok(r); | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,9 @@ | 
				
			|||||
 | 
					package com.epmet.service; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import com.epmet.commons.mybatis.service.BaseService; | 
				
			||||
 | 
					import com.epmet.dto.result.ServiceProjectScopeResultDTO; | 
				
			||||
 | 
					import com.epmet.entity.IcPlaceOrgEntity; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					public interface ServiceProjectService { | 
				
			||||
 | 
					     ServiceProjectScopeResultDTO getServiceScopeTree(String staffId); | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,107 @@ | 
				
			|||||
 | 
					package com.epmet.service.impl; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import com.epmet.commons.mybatis.service.BaseService; | 
				
			||||
 | 
					import com.epmet.dao.CustomerAgencyDao; | 
				
			||||
 | 
					import com.epmet.dao.CustomerGridDao; | 
				
			||||
 | 
					import com.epmet.dao.IcNeighborHoodDao; | 
				
			||||
 | 
					import com.epmet.dto.IcNeighborHoodDTO; | 
				
			||||
 | 
					import com.epmet.dto.result.AgencyTreeResultDTO; | 
				
			||||
 | 
					import com.epmet.dto.result.ServiceProjectScopeResultDTO; | 
				
			||||
 | 
					import com.epmet.entity.CustomerAgencyEntity; | 
				
			||||
 | 
					import com.epmet.entity.IcPlaceOrgEntity; | 
				
			||||
 | 
					import com.epmet.service.CustomerAgencyService; | 
				
			||||
 | 
					import com.epmet.service.NeighborHoodService; | 
				
			||||
 | 
					import com.epmet.service.ServiceProjectService; | 
				
			||||
 | 
					import lombok.extern.slf4j.Slf4j; | 
				
			||||
 | 
					import org.springframework.beans.factory.annotation.Autowired; | 
				
			||||
 | 
					import org.springframework.stereotype.Service; | 
				
			||||
 | 
					import org.springframework.util.CollectionUtils; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import java.util.ArrayList; | 
				
			||||
 | 
					import java.util.List; | 
				
			||||
 | 
					import java.util.stream.Collectors; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					@Slf4j | 
				
			||||
 | 
					@Service | 
				
			||||
 | 
					public class ServiceProjectServiceImpl implements ServiceProjectService { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @Autowired | 
				
			||||
 | 
					    private CustomerAgencyDao agencyDao; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @Autowired | 
				
			||||
 | 
					    private CustomerGridDao gridDao; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @Autowired | 
				
			||||
 | 
					    private IcNeighborHoodDao neighborHoodDao; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @Autowired | 
				
			||||
 | 
					    private CustomerAgencyService customerAgencyService; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    public ServiceProjectServiceImpl() { | 
				
			||||
 | 
					        System.out.println(6); | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @Override | 
				
			||||
 | 
					    public ServiceProjectScopeResultDTO getServiceScopeTree(String staffId) { | 
				
			||||
 | 
					        AgencyTreeResultDTO orgTreeData = customerAgencyService.getOrgTreeData(staffId); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        ServiceProjectScopeResultDTO rootScope = new ServiceProjectScopeResultDTO(); | 
				
			||||
 | 
					        rootScope.setObjectId(orgTreeData.getAgencyId()); | 
				
			||||
 | 
					        rootScope.setObjectType(orgTreeData.getLevel()); | 
				
			||||
 | 
					        rootScope.setObjectName(orgTreeData.getAgencyName()); | 
				
			||||
 | 
					        rootScope.setChildren(convert2ServiceProjectScope(orgTreeData.getSubAgencyList())); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        return rootScope; | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    private List<ServiceProjectScopeResultDTO> convert2ServiceProjectScope(List<AgencyTreeResultDTO> oldChildren) { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        ArrayList<ServiceProjectScopeResultDTO> scopes = new ArrayList<>(); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        for (AgencyTreeResultDTO oldChild : oldChildren) { | 
				
			||||
 | 
					            ServiceProjectScopeResultDTO scope = new ServiceProjectScopeResultDTO(); | 
				
			||||
 | 
					            scope.setObjectId(oldChild.getAgencyId()); | 
				
			||||
 | 
					            scope.setObjectType(oldChild.getLevel()); | 
				
			||||
 | 
					            scope.setObjectName(oldChild.getAgencyName()); | 
				
			||||
 | 
					            if ("grid".equals(oldChild.getLevel())) { | 
				
			||||
 | 
					                // 如果是网格,那么还要查询网格下的小区
 | 
				
			||||
 | 
					                List<IcNeighborHoodDTO> neighborhoods = neighborHoodDao.selectNeighborList(oldChild.getAgencyId()); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                List<ServiceProjectScopeResultDTO> neighborhoodScopes = neighborhoods.stream().map(n -> new ServiceProjectScopeResultDTO(n.getId(), | 
				
			||||
 | 
					                        n.getNeighborHoodName(), | 
				
			||||
 | 
					                        "neighborhood", | 
				
			||||
 | 
					                        null)).collect(Collectors.toList()); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                scope.setChildren(neighborhoodScopes); | 
				
			||||
 | 
					            } else { | 
				
			||||
 | 
					                // 递归处理子级
 | 
				
			||||
 | 
					                List<AgencyTreeResultDTO> subAgencyList = oldChild.getSubAgencyList(); | 
				
			||||
 | 
					                if (subAgencyList != null && !CollectionUtils.isEmpty(subAgencyList)) { | 
				
			||||
 | 
					                    List<ServiceProjectScopeResultDTO> subOrgScope = convert2ServiceProjectScope(subAgencyList); | 
				
			||||
 | 
					                    scope.setChildren(subOrgScope); | 
				
			||||
 | 
					                } | 
				
			||||
 | 
					            } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            scopes.add(scope); | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        return scopes; | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    //public void recursiveFillChildren(ServiceProjectScopeResultDTO parentObject) {
 | 
				
			||||
 | 
					    //    String parentObjectType = parentObject.getObjectType();
 | 
				
			||||
 | 
					    //    if ("grid".equals(parentObjectType)) {
 | 
				
			||||
 | 
					    //        // 如果父级是网格,那么查询子级小区
 | 
				
			||||
 | 
					    //        neighborHoodService.listNeighborhood()
 | 
				
			||||
 | 
					    //    } else if ("agency".equals(parentObjectType)) {
 | 
				
			||||
 | 
					    //        // 如果父级是单位,那么查询子级单位或者网格
 | 
				
			||||
 | 
					    //        String parentObjectId = parentObject.getObjectId();
 | 
				
			||||
 | 
					    //        if ("community".equals(parentObject)) {
 | 
				
			||||
 | 
					    //            gridDao.get
 | 
				
			||||
 | 
					    //        } else {
 | 
				
			||||
 | 
					    //            agencyDao.getSubAgencyList()
 | 
				
			||||
 | 
					    //        }
 | 
				
			||||
 | 
					    //    }
 | 
				
			||||
 | 
					    //
 | 
				
			||||
 | 
					    //}
 | 
				
			||||
 | 
					} | 
				
			||||
					Loading…
					
					
				
		Reference in new issue