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