Commit 97582055 authored by 赵啸非's avatar 赵啸非

添加区域站点获取接口

parent f3e1298b
......@@ -1261,6 +1261,70 @@ dict|object|字典对象|-
}
```
### 根据站点查询区域站点子列表
**请求URL:** site/getAreaSitesBySite
**请求方式:** POST
**内容类型:** application/json;charset=utf-8
**简要描述:** 根据站点查询区域站点子列表
**请求参数:**
参数名称|类型|备注|必填|其它
---|---|---|---|---
id|Long|站点ID|是|-
siteName|String|站点名称|否|前后添加%%可进行模糊查找
**请求样例:**
```
{
"areaCode":"510105521000"
}
```
**响应参数:**
参数名称 |参数类型|备注|其它
---|---|---|---
code|Integer|结果码(-1.失败,1.成功)|-
msg|String|消息|-
 data|array|结果集列表|数组
  areaName|String|区域名称|-
  areaCode|String|区域编码|-
  siteList|array|站点列表|数组
   id|Long|序号,主键,自增长|-
   siteName|String|站点名称|-
   siteCode|String|站点编号|-
   areaID|String|区域Id|-
   areaCode|String|区域编号|-
   areaName|String|区域名称|-
   proCode|String|省编码|-
   cityCode|String|市编码|-
   districtCode|String|区编码|-
   siteIp|String|站点服务器ip|-
   sitePort|String|站点服务器端口|-
   longitude|String|经度|-
   latitude|String|纬度|-
   siteTel|String|中心联系电话|-
   detailAddress|String|中心详细地址|-
   siteRemark|String|中心介绍|-
**响应消息样例:**
```
{
"code":1,
"data":[{areaName:"翠屏区",siteList:[{siteName:'aaa'},{siteName:'bbbb'}]}]
}
```
## 站点事项
### 查询站点事项列表
......
package com.mortals.xhx.module.site.model.vo;
import com.mortals.xhx.module.site.model.SiteEntity;
import lombok.Data;
import java.util.List;
/**
* 站点区域视图对象
*
* @author zxfei
* @date 2022-01-12
*/
@Data
public class SiteAreaVo {
private String areaName;
private String areaCode;
private List<SiteEntity> siteList;
}
\ No newline at end of file
......@@ -11,6 +11,7 @@ import com.mortals.xhx.module.matter.model.MatterEntity;
import com.mortals.xhx.module.site.model.SiteEntity;
import com.mortals.xhx.module.site.model.SiteQuery;
import com.mortals.xhx.module.site.model.SiteTreeSelect;
import com.mortals.xhx.module.site.model.vo.SiteAreaVo;
import java.util.HashMap;
import java.util.List;
......@@ -47,6 +48,8 @@ public interface SiteService extends ICRUDCacheService<SiteEntity, Long> {
List<SiteEntity> getFlatSitesBySiteId(Long siteId,Context context);
Rest< List<SiteAreaVo>> getAreaSitesBySite(SiteQuery query, Context context);
void setSiteTree(List<SiteTreeSelect> list, Context context);
void removeSiteTree(List<SiteTreeSelect> list, Context context);
......
......@@ -35,6 +35,7 @@ import com.mortals.xhx.module.site.dao.SiteDao;
import com.mortals.xhx.module.site.model.SiteEntity;
import com.mortals.xhx.module.site.model.SiteQuery;
import com.mortals.xhx.module.site.model.SiteTreeSelect;
import com.mortals.xhx.module.site.model.vo.SiteAreaVo;
import com.mortals.xhx.module.site.service.SiteService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
......@@ -319,6 +320,43 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE
return siteList;
}
@Override
public Rest< List<SiteAreaVo>> getAreaSitesBySite(SiteQuery query, Context context) {
Map<String, Object> map = new HashMap<>();
List<SiteAreaVo> list = new ArrayList<>();
//获取当前节点的第一层子节点
SiteEntity siteCache = this.getCache(query.getId().toString());
AreaEntity areaEntity = areaService.getCache(siteCache.getAreaCode());
if ("False".equalsIgnoreCase(areaEntity.getHaveSonArea())) {
throw new AppException("当前站点无子区域!");
}
//两层结构{xxx:[{sitename:xxx},{}...],bbb:[{sitename:xxx},{}...]}
AreaQuery areaQuery = new AreaQuery();
areaQuery.setPid(areaEntity.getIid());
List<AreaEntity> childList = areaService.find(areaQuery, context);
for (AreaEntity child : childList) {
SiteAreaVo siteAreaVo = new SiteAreaVo();
String matchCode = child.getAreaCode().replaceAll("(0)+$", "");
SiteQuery siteQuery = new SiteQuery();
siteQuery.setAreaCode(matchCode + "%");
if(!ObjectUtils.isEmpty(query.getSiteName())){
siteQuery.setSiteName(query.getSiteName());
}
List<SiteEntity> siteEntities = this.find(siteQuery);
if (!ObjectUtils.isEmpty(siteEntities)) {
siteAreaVo.setAreaCode(child.getAreaCode());
siteAreaVo.setAreaName(child.getName());
siteAreaVo.setSiteList(siteEntities);
list.add(siteAreaVo);
//map.put(child.getName(), siteEntities);
}
}
return Rest.ok(list);
}
private boolean getSite(String rootAreaCode, String areaCode, List<SiteEntity> siteList, SiteEntity siteEntity) {
// AreaEntity areaTemp = areaService.getExtCache(siteEntity.getAreaCode());
if (rootAreaCode.equals(areaCode)) {
......
......@@ -23,6 +23,7 @@ import com.mortals.xhx.module.model.service.ModelService;
import com.mortals.xhx.module.site.model.SiteEntity;
import com.mortals.xhx.module.site.model.SiteQuery;
import com.mortals.xhx.module.site.model.SiteTreeSelect;
import com.mortals.xhx.module.site.model.vo.SiteAreaVo;
import com.mortals.xhx.module.site.service.SiteMatterService;
import com.mortals.xhx.module.site.service.SiteService;
import lombok.extern.slf4j.Slf4j;
......@@ -114,7 +115,6 @@ public class SiteController extends BaseCRUDJsonBodyMappingController<SiteServic
}
/**
* 获取全站点树
*/
......@@ -216,6 +216,29 @@ public class SiteController extends BaseCRUDJsonBodyMappingController<SiteServic
return jsonObject.toJSONString();
}
/**
* 根据站点id查询站点列表子集,包含当前站点,二层结构
* {rootname:}
*/
@PostMapping(value = "getAreaSitesBySite")
@UnAuth
public String getAreaSitesBySite(@RequestBody SiteQuery site) {
JSONObject jsonObject = new JSONObject();
String busiDesc = "根据站点查询区域站点列表子集" + this.getModuleDesc();
try {
Rest<List<SiteAreaVo>> rest = this.service.getAreaSitesBySite(site, getContext());
recordSysLog(request, busiDesc + " 【成功】");
jsonObject.put(KEY_RESULT_DATA, rest.getData());
jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
jsonObject.put(KEY_RESULT_MSG, busiDesc + "成功!");
} catch (Exception e) {
log.error("获取异常", e);
jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
jsonObject.put(KEY_RESULT_MSG, super.convertException(e));
}
return jsonObject.toJSONString();
}
@Override
protected int infoAfter(Long id, Map<String, Object> model, SiteEntity entity, Context context) throws AppException {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment