Commit 3485f2b5 authored by 赵啸非's avatar 赵啸非

站点树添加统计id

parent 79762a1f
......@@ -17,6 +17,8 @@ import com.mortals.xhx.module.area.model.AreaEntity;
import com.mortals.xhx.module.device.model.DeviceEntity;
import com.mortals.xhx.module.device.model.DeviceQuery;
import com.mortals.xhx.module.device.service.DeviceService;
import com.mortals.xhx.module.sitestat.model.SitestatEntity;
import com.mortals.xhx.module.sitestat.service.SitestatService;
import com.mortals.xhx.utils.SpringUtils;
import lombok.Data;
import org.springframework.util.ObjectUtils;
......@@ -119,6 +121,12 @@ public class SiteTreeSelect implements Serializable {
*/
private List<SiteTreeSelect> children;
/**
* 站点统计id
*/
private Long siteStatId;
public SiteTreeSelect() {
}
......@@ -190,6 +198,7 @@ public class SiteTreeSelect implements Serializable {
if ("site".equals(node.getType())) {
//统计当前站点下的所有在线 离线 设备总数。
DeviceService deviceService = SpringUtils.getBean(DeviceService.class);
SitestatService sitestatService = SpringUtils.getBean(SitestatService.class);
List<DeviceEntity> deviceList = deviceService.find(new DeviceQuery().siteId(DataUtil.converStr2Long(node.getId(), -1)));
node.setDeviceTotal(deviceList.size());
//未激活数量
......@@ -211,8 +220,13 @@ public class SiteTreeSelect implements Serializable {
.filter(f -> f.getDeviceStatus() == DeviceStatusEnum.离线.getValue())
.count();
node.setOfflineTotal(deviceOfflineCount.intValue());
}
//设置统计id
SitestatEntity sitestatCache = sitestatService.getExtCache(node.getSiteCode());
if (!ObjectUtils.isEmpty(sitestatCache)) {
node.setSiteStatId(sitestatCache.getId());
}
}
sitePdu.setAreaCode(node.getAreaCode());
Rest<Integer> rest = siteFeign.countSitesByArea(sitePdu);
if (rest.getCode() == YesNoEnum.YES.getValue()) {
......@@ -220,7 +234,7 @@ public class SiteTreeSelect implements Serializable {
}
JSONArray jsonArray = jsonObject.getJSONArray("children");
List<SiteTreeSelect> children = new ArrayList<>();
if(!ObjectUtils.isEmpty(jsonArray)){
if (!ObjectUtils.isEmpty(jsonArray)) {
for (int i = 0; i < jsonArray.size(); i++) {
SiteTreeSelect child = JSON.parseObject(jsonArray.getJSONObject(i).toJSONString(), SiteTreeSelect.class);
children.add(child);
......
package com.mortals.xhx.module.sitestat.service;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.device.model.DeviceEntity;
import com.mortals.framework.service.ICRUDCacheService;
import com.mortals.xhx.module.sitestat.model.SitestatEntity;
import java.util.List;
/**
* SitestatService
*
......@@ -14,7 +12,7 @@ import java.util.List;
* @author zxfei
* @date 2022-06-27
*/
public interface SitestatService extends ICRUDService<SitestatEntity,Long>{
public interface SitestatService extends ICRUDCacheService<SitestatEntity,Long> {
String getSiteTree(Context context);
......
......@@ -9,7 +9,7 @@ import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.service.impl.AbstractCRUDCacheServiceImpl;
import com.mortals.xhx.common.code.DeviceStatusEnum;
import com.mortals.xhx.common.code.PlatformTypeEnum;
import com.mortals.xhx.common.code.YesNoEnum;
......@@ -48,7 +48,7 @@ import static com.mortals.xhx.common.key.ErrorCode.ERROR_TOKEN_EXPIRED_CONTENT;
*/
@Service("sitestatService")
@Slf4j
public class SitestatServiceImpl extends AbstractCRUDServiceImpl<SitestatDao, SitestatEntity, Long> implements SitestatService {
public class SitestatServiceImpl extends AbstractCRUDCacheServiceImpl<SitestatDao, SitestatEntity, Long> implements SitestatService {
@Autowired
private ISiteFeign siteFeign;
......@@ -59,6 +59,12 @@ public class SitestatServiceImpl extends AbstractCRUDServiceImpl<SitestatDao, Si
@Value("${platform.type:cloud}")
private String platFormType;//版本,默认云服务版本
@Override
protected String getExtKey(SitestatEntity data) {
return data.getSiteCode();
}
/**
* 重写带分页的方法
*
......@@ -72,7 +78,7 @@ public class SitestatServiceImpl extends AbstractCRUDServiceImpl<SitestatDao, Si
public Result<SitestatEntity> find(SitestatEntity entity, PageInfo pageInfo, Context context) throws AppException {
Result<SitestatEntity> res = new Result<>();
//根据站点查询所以站点子集列表
Result<SitestatEntity> sitestatsAreaResult = getSitestatEntityResultByArea(entity, pageInfo,context, res);
Result<SitestatEntity> sitestatsAreaResult = getSitestatEntityResultByArea(entity, pageInfo, context, res);
if (sitestatsAreaResult != null) return sitestatsAreaResult;
Result<SitestatEntity> sitestatsResult = getSitestatsResult(entity, pageInfo, res);
......@@ -87,7 +93,7 @@ public class SitestatServiceImpl extends AbstractCRUDServiceImpl<SitestatDao, Si
if (ObjectUtils.isEmpty(entity.getSiteId())) return null;
if (platFormType.equalsIgnoreCase(PlatformTypeEnum.STANDALONE.getValue())) {
//根据返回的id 筛选列表
Map<Long, SitestatEntity> collectMap = this.find(new SitestatEntity(), context).stream().collect(Collectors.toMap(x->x.getSiteId(),y->y,(o,n)->n));
Map<Long, SitestatEntity> collectMap = this.find(new SitestatEntity(), context).stream().collect(Collectors.toMap(x -> x.getSiteId(), y -> y, (o, n) -> n));
List<SitestatEntity> list = this.siteService.find(new SiteQuery().id(entity.getSiteId())).stream().filter(f -> collectMap.containsKey(f.getId())).map(m -> collectMap.get(m.getId())).collect(Collectors.toList());
if (!ObjectUtils.isEmpty(entity.getSiteName())) {
list = MemoryPagination.search(entity.getSiteName(), list);
......@@ -103,7 +109,7 @@ public class SitestatServiceImpl extends AbstractCRUDServiceImpl<SitestatDao, Si
// log.info("siteList:{}",JSON.toJSONString(result));
if (result.getCode() == YesNoEnum.YES.getValue()) {
//根据返回的id 筛选列表
Map<Long, SitestatEntity> collectMap = this.find(new SitestatEntity(), context).stream().collect(Collectors.toMap(x->x.getSiteId(),y->y,(o,n)->n));
Map<Long, SitestatEntity> collectMap = this.find(new SitestatEntity(), context).stream().collect(Collectors.toMap(x -> x.getSiteId(), y -> y, (o, n) -> n));
List<SitestatEntity> list = result.getData().stream().filter(f -> collectMap.containsKey(f.getId())).map(m -> collectMap.get(m.getId())).collect(Collectors.toList());
if (!ObjectUtils.isEmpty(entity.getSiteName())) {
list = MemoryPagination.search(entity.getSiteName(), list);
......@@ -187,7 +193,7 @@ public class SitestatServiceImpl extends AbstractCRUDServiceImpl<SitestatDao, Si
if (ObjectUtils.isEmpty(entity.getAreaCode())) return null;
if (platFormType.equalsIgnoreCase(PlatformTypeEnum.STANDALONE.getValue())) {
//根据返回的id 筛选列表 todo
Map<Long, SitestatEntity> collectMap = this.find(new SitestatEntity(), context).stream().collect(Collectors.toMap(x->x.getSiteId(),y->y,(o,n)->n));
Map<Long, SitestatEntity> collectMap = this.find(new SitestatEntity(), context).stream().collect(Collectors.toMap(x -> x.getSiteId(), y -> y, (o, n) -> n));
List<SitestatEntity> list = this.siteService.find(new SiteQuery().id(entity.getSiteId())).stream().filter(f -> collectMap.containsKey(f.getId())).map(m -> collectMap.get(m.getId())).collect(Collectors.toList());
if (!ObjectUtils.isEmpty(entity.getSiteName())) {
list = MemoryPagination.search(entity.getSiteName(), list);
......@@ -201,10 +207,10 @@ public class SitestatServiceImpl extends AbstractCRUDServiceImpl<SitestatDao, Si
List<String> areaCodeList = new ArrayList<>();
sitePdu.setAreaCode(entity.getAreaCode());
Rest<List<SitePdu>> result = siteFeign.getFlatSitesByAreaCode(sitePdu);
log.info("areaSiteList:{}",JSON.toJSONString(result));
log.info("areaSiteList:{}", JSON.toJSONString(result));
if (result.getCode() == YesNoEnum.YES.getValue()) {
//根据返回的id 筛选列表
Map<Long, SitestatEntity> collectMap = this.find(new SitestatEntity(), context).stream().collect(Collectors.toMap(x->x.getSiteId(),y->y,(o,n)->n));
Map<Long, SitestatEntity> collectMap = this.find(new SitestatEntity(), context).stream().collect(Collectors.toMap(x -> x.getSiteId(), y -> y, (o, n) -> n));
List<SitestatEntity> list = result.getData().stream().filter(f -> collectMap.containsKey(f.getId())).map(m -> collectMap.get(m.getId())).collect(Collectors.toList());
if (!ObjectUtils.isEmpty(entity.getSiteName())) {
list = MemoryPagination.search(entity.getSiteName(), list);
......@@ -226,17 +232,13 @@ public class SitestatServiceImpl extends AbstractCRUDServiceImpl<SitestatDao, Si
public String getSiteTree(Context context) {
if (platFormType.equalsIgnoreCase(PlatformTypeEnum.CLOUD.getValue())) {
String token = context.getUser().getToken();
/* if (!ObjectUtils.isEmpty(token)) {
String resp = siteFeign.siteTree(token);
return resp;
}*/
JSONObject jsonObject = new JSONObject();
Map<String, Object> model = new HashMap<>();
if (!ObjectUtils.isEmpty(token)) {
String resp = siteFeign.siteTree(token);
Rest<String> rest = JSON.parseObject(resp, new TypeReference<Rest<String>>() {
});
if(rest.getCode()==YesNoEnum.YES.getValue()){
if (rest.getCode() == YesNoEnum.YES.getValue()) {
String siteTreeSelectStr = rest.getData();
JSONObject json = JSON.parseObject(siteTreeSelectStr);
JSONArray jsonArray = json.getJSONArray("siteTree");
......@@ -313,7 +315,7 @@ public class SitestatServiceImpl extends AbstractCRUDServiceImpl<SitestatDao, Si
public static void main(String[] args) {
String siteTreeSelectStr="[{\"areaCode\":\"511500000000\",\"children\":[{\"areaCode\":\"511502000000\",\"children\":[{\"areaCode\":\"511502012000\",\"children\":[{\"areaCode\":\"511502012001\",\"icon\":\"el-icon-wind-power\",\"id\":\"4\",\"isLeaf\":true,\"label\":\"东街站点\",\"latitude\":\"2\",\"longitude\":\"1\",\"siteCode\":\"511502012001-0001\",\"type\":\"site\"}],\"icon\":\"el-icon-place\",\"id\":\"1b01f5486d63467aaa24eafbee797b47\",\"isLeaf\":false,\"label\":\"合江门街道\",\"type\":\"area\"}],\"icon\":\"el-icon-wind-power\",\"id\":\"2\",\"isLeaf\":false,\"label\":\"翠屏区市民中心\",\"latitude\":\"31.467450\",\"longitude\":\"104.679114\",\"siteCode\":\"511502000000-0001\",\"type\":\"site\"},{\"areaCode\":\"511521000000\",\"children\":[],\"icon\":\"el-icon-wind-power\",\"id\":\"3\",\"isLeaf\":false,\"label\":\"徐州区办事处\",\"latitude\":\"28.758065\",\"longitude\":\"104.647877\",\"siteCode\":\"511521000000-0001\",\"type\":\"site\"}],\"icon\":\"el-icon-wind-power\",\"id\":\"1\",\"isLeaf\":false,\"label\":\"四川恒升信达科技有限公司\",\"latitude\":\"30.595081\",\"longitude\":\"104.062983\",\"siteCode\":\"511500000000-0001\",\"type\":\"site\"}]";
String siteTreeSelectStr = "[{\"areaCode\":\"511500000000\",\"children\":[{\"areaCode\":\"511502000000\",\"children\":[{\"areaCode\":\"511502012000\",\"children\":[{\"areaCode\":\"511502012001\",\"icon\":\"el-icon-wind-power\",\"id\":\"4\",\"isLeaf\":true,\"label\":\"东街站点\",\"latitude\":\"2\",\"longitude\":\"1\",\"siteCode\":\"511502012001-0001\",\"type\":\"site\"}],\"icon\":\"el-icon-place\",\"id\":\"1b01f5486d63467aaa24eafbee797b47\",\"isLeaf\":false,\"label\":\"合江门街道\",\"type\":\"area\"}],\"icon\":\"el-icon-wind-power\",\"id\":\"2\",\"isLeaf\":false,\"label\":\"翠屏区市民中心\",\"latitude\":\"31.467450\",\"longitude\":\"104.679114\",\"siteCode\":\"511502000000-0001\",\"type\":\"site\"},{\"areaCode\":\"511521000000\",\"children\":[],\"icon\":\"el-icon-wind-power\",\"id\":\"3\",\"isLeaf\":false,\"label\":\"徐州区办事处\",\"latitude\":\"28.758065\",\"longitude\":\"104.647877\",\"siteCode\":\"511521000000-0001\",\"type\":\"site\"}],\"icon\":\"el-icon-wind-power\",\"id\":\"1\",\"isLeaf\":false,\"label\":\"四川恒升信达科技有限公司\",\"latitude\":\"30.595081\",\"longitude\":\"104.062983\",\"siteCode\":\"511500000000-0001\",\"type\":\"site\"}]";
JSONArray jsonArray = JSON.parseArray(siteTreeSelectStr);
......
......@@ -54,6 +54,9 @@ public class SitestatController extends BaseCRUDJsonBodyMappingController<Sitest
}
@Override
protected void init(Map<String, Object> model, Context context) {
super.init(model, context);
......
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