Commit 2c8afda2 authored by 赵啸非's avatar 赵啸非

地图详细显示

parent 2418c3c5
...@@ -18,33 +18,95 @@ ...@@ -18,33 +18,95 @@
<el-amap-marker <el-amap-marker
v-for="(marker, index) in markers" v-for="(marker, index) in markers"
:key="'marker' + index" :key="'marker' + index"
:events="events" :events="marker.events"
:position="marker.position" :position="marker.position"
:label="marker.label" :label="marker.label"
:icon="marker.icon" :icon="marker.icon"
:extData="marker.extData" :extData="marker"
> >
</el-amap-marker> </el-amap-marker>
<!-- 标记 --> <!--信息窗体-->
<!-- <el-amap-marker v-for="(marker, index) in markers" :position="marker" :key="index"></el-amap-marker> --> <el-amap-info-window
<!-- <el-amap-marker v-for="(marker, index) in markers" :key="index" :position="marker.position"> :position="window.position"
<div class='map-marker'> :visible="window.visible"
<img src="../assets/images/ego_box_img_normal.png" alt=""> :content="window.content"
<p> ><el-row :body-style="{ padding: '0px' }">
<el-tag type='danger'>1231</el-tag> <el-row type="flex" justify="space-between">
</p> <span style="font-size: 18px"
</div> ><b>{{ info.siteName }}</b></span
</el-amap-marker> --> >
<el-button
type="text"
size="mini"
@click="getDeviceDetial"
class="button"
>查看详情</el-button
>
</el-row>
<el-divider></el-divider>
<el-row type="flex" justify="space-around">
<el-col :span="4">
<span style="font-size: 13px"
><b>{{ info.deviceTotal }}</b></span
><br />
<span style="font-size: 12px">设备总数</span>
</el-col>
<el-col :span="4">
<span style="font-size: 13px"
><b style="color: green">{{ info.onlineCount }}</b></span
><br />
<span style="font-size: 12px">在线</span>
</el-col>
<el-col :span="4">
<span style="font-size: 13px"
><b style="color: red">{{ info.offlineCount }}</b></span
><br />
<span style="font-size: 12px">离线</span>
</el-col>
<el-col :span="4">
<span style="font-size: 13px"
><b style="color: orange">{{ info.stopCount }}</b></span
><br />
<span style="font-size: 12px">停用</span>
</el-col>
<el-col :span="4">
<span style="font-size: 13px"
><b style="color: grey">{{ info.unActiveCount }}</b></span
><br />
<span style="font-size: 12px">待激活</span>
</el-col>
</el-row>
<el-divider></el-divider>
<el-descriptions :column="1" size="small">
<el-descriptions-item label="站点编码">{{
info.siteCode
}}</el-descriptions-item>
<el-descriptions-item label="站点地址">{{
info.address
}}</el-descriptions-item>
<el-descriptions-item
label="联系人"
:labelStyle="{ 'text-align': 'right', width: '50px' }"
>{{ info.leadingOfficial }}</el-descriptions-item
>
<el-descriptions-item label="联系电话">
{{ info.leadingOfficialTelephone }}
</el-descriptions-item>
<el-descriptions-item label="创建时间">{{
formatterDate(info.createTime)
}}</el-descriptions-item>
</el-descriptions>
</el-row></el-amap-info-window
>
</el-amap> </el-amap>
<!-- <div slot="footer" class="dialog-footer">
<el-button size='mini' @click="$emit('input', false)">取 消</el-button>
<el-button size='mini' type="primary" @click="choose">确 定</el-button>
</div> -->
</div> </div>
</template> </template>
<script> <script>
import { formatterDate } from "@/assets/utils/index";
import { AMapManager, lazyAMapApiLoaderInstance } from "vue-amap"; import { AMapManager, lazyAMapApiLoaderInstance } from "vue-amap";
let amapManager = new AMapManager(); let amapManager = new AMapManager();
...@@ -73,31 +135,55 @@ export default { ...@@ -73,31 +135,55 @@ export default {
}, },
}, },
}, },
created() {
this.refresh( this.markersData)
},
methods: { methods: {
formatterDate,
getDeviceDetial(){
//获取设备列表
console.log("device siteId",this.info.siteId)
},
refresh(data) { refresh(data) {
console.log("刷新数据", data); console.log("刷新数据", data);
this.markersData = data; this.markersData = data;
this.markersData.map((item) => { this.markersData.map((item) => {
this.setMarker(item.lng, item.lat, item.address, item.siteId); // console.log("marker", item);
this.setMarker(item);
}); });
}, },
relocate(center){ relocate(center) {
this.center = [center.lng, center.lat]; this.center = [center.lng, center.lat];
this.zoom=12 this.zoom = 10;
//重新定位中心点 //重新定位中心点
}, },
setMarker(lng, lat, address, siteId) { setMarker(item) {
if (!lng && !lat) return; if (!item.lng && !item.lat) return;
const size = (address || "").length * 5;
//console.log("data",formatterDate(item.createTime))
let markerLabel = { let markerLabel = {
label: { content: address, offset: [30, 70] }, label: { content: item.siteName, offset: [30, 70] },
position: [lng, lat], position: [item.lng, item.lat],
icon: require("@/assets/images/ego_box_img_normal.png"), icon: require("@/assets/images/ego_box_img_normal.png"),
extData: { siteId: siteId }, extData: item,
events: {
click: (e) => {
console.log("getExtData", e.target.getExtData());
let exData = e.target.getExtData();
this.info = exData.extData;
this.window.position = exData.position;
this.$nextTick(() => {
this.window.visible = true; //点击点坐标,出现信息窗体
});
},
},
}; };
this.markers.push(markerLabel); this.markers.push(markerLabel);
...@@ -121,43 +207,87 @@ export default { ...@@ -121,43 +207,87 @@ export default {
}, },
choose() { choose() {
this.$emit("input", false); this.$emit("input", false);
this.$emit("choose", JSON.parse(JSON.stringify(this.mapData))); this.$emit("choose", JSON.parse(JSON.stringify(this.mapData)), (val) => {
//data = val;
console.log("callback:" + val);
});
}, },
}, },
data() { data() {
let self = this; let self = this;
return { return {
visiblepop: false,
searchEvents: { searchEvents: {
init: (e) => {}, init: (e) => {},
}, },
window: {
position: [104.405994, 30.915378],
visible: false,
content: '<div class="red">Hi! I am here!</div>',
},
mapData: {}, mapData: {},
info: {},
markers: [], markers: [],
geocoder: null, geocoder: null,
amapManager, amapManager,
zoom: 8, zoom: 8,
center: [104.007767, 30.568308], center: [104.007767, 30.568308],
marker: {}, marker: {},
events: { // events: {
init: (e) => { // init: (e) => {
this.geocoder = new AMap.Geocoder(); // this.geocoder = new AMap.Geocoder();
console.log("markersData", this.markersData); // console.log("markersData", this.markersData);
// this.markersData.map((item) => { // // this.markersData.map((item) => {
// this.setMarker(item.lng, item.lat, item.address); // // this.setMarker(item.lng, item.lat, item.address);
// }); // // });
}, // },
click: (e) => { // click: (e) => {
//alert(e.target.getExtData().siteId); // console.log(e);
this.$emit("choose", e.target.getExtData().siteId); // self.window.position = [e.lnglat.lng, e.lnglat.lat];
// const { lat, lng } = e.lnglat;
// this.geocoder.getAddress([lng, lat], (status, result) => { // self.window.content=` <el-card :body-style="{ padding: '0px' }">
// if (status === "complete" && result.info === "OK") { // <img src="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png" class="image">
// const address = result.regeocode.formattedAddress; // <div style="padding: 14px;">
// this.setMarker(lng, lat, address); // <span>好吃的汉堡</span>
// this.center = [lng, lat]; // <div class="bottom clearfix">
// } // <time class="time">{{ currentDate }}</time>
// }); // <el-button type="text" class="button">操作按钮</el-button>
}, // </div>
}, // </div>
// </el-card>`
// console.log(self.window)
// self.$nextTick(() => {
// self.window.visible = true; //点击点坐标,出现信息窗体
// });
// //更新窗体数据,
// // that.windows.forEach((window) => {
// // window.visible = false; //关闭窗体
// // });
// // that.window = that.windows[index];
// // that.$nextTick(() => {
// // that.window.visible = true; //点击点坐标,出现信息窗体
// // });
// alert(e.target.getExtData());
// // this.visiblepop = true;
// // let resp=this.$emit("choose", e.target.getExtData().siteId);
// //console.log("resp",resp)
// // const { lat, lng } = e.lnglat;
// // this.geocoder.getAddress([lng, lat], (status, result) => {
// // if (status === "complete" && result.info === "OK") {
// // const address = result.regeocode.formattedAddress;
// // this.setMarker(lng, lat, address);
// // this.center = [lng, lat];
// // }
// // });
// },
// },
// 一些工具插件 // 一些工具插件
plugin: [ plugin: [
{ {
...@@ -236,6 +366,12 @@ export default { ...@@ -236,6 +366,12 @@ export default {
</script> </script>
<style lang="less"> <style lang="less">
.amap-info-content {
position: relative;
background: #fff;
line-height: 1.4;
overflow: auto;
}
.my-map { .my-map {
.amap-demo { .amap-demo {
position: relative; position: relative;
......
...@@ -229,10 +229,7 @@ export default { ...@@ -229,10 +229,7 @@ export default {
//初始化查询表单 //初始化查询表单
let newFormData = {}; let newFormData = {};
// this.form = this.encode(data, this.form); // this.form = this.encode(data, this.form);
console.log("data", data);
console.log("form", this.form);
this.search.forEach((item) => { this.search.forEach((item) => {
console.log("search-item", item);
//复选框 //复选框
if (item.type === "checkbox") { if (item.type === "checkbox") {
if (this.form[item.name] == undefined) { if (this.form[item.name] == undefined) {
...@@ -257,8 +254,6 @@ export default { ...@@ -257,8 +254,6 @@ export default {
}); });
this.form = Object.assign({}, this.form, newFormData); this.form = Object.assign({}, this.form, newFormData);
this.form = Object.assign({}, this.form, data); this.form = Object.assign({}, this.form, data);
console.log("form2", this.form);
}, },
cleanForm() { cleanForm() {
this.clean(); this.clean();
......
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
title: "设备", title: "设备",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
direction:"rtl",
toString:[ toString:[
"deviceType", "deviceType",
"deviceOnlineStatus", "deviceOnlineStatus",
......
...@@ -19,36 +19,104 @@ ...@@ -19,36 +19,104 @@
<div class="footer"> <div class="footer">
登陆 &copy; <a href="">信宏翔网络科技有限公司</a> 出品 登陆 &copy; <a href="">信宏翔网络科技有限公司</a> 出品
</div> </div>
<!-- <Map ref="map1" :markersData="originData" @choose="getDetailData" /> -->
<!-- <el-card :body-style="{ padding: '5px' }" style="width: 300px">
<el-row type="flex" class="row-bg" justify="space-around">
<span style="font-size: 18px"><b>高新区政务服务中心</b></span>
<el-button type="text" size="mini" class="button">查看详情</el-button>
</el-row>
<el-divider></el-divider>
<el-row type="flex" justify="space-around">
<el-col :span="4">
<span style="font-size: 13px"><b>100</b></span
><br />
<span style="font-size: 12px">设备总数</span>
</el-col>
<el-col :span="4">
<span style="font-size: 13px"><b>100</b></span
><br />
<span style="font-size: 12px">在线</span>
</el-col>
<el-col :span="4">
<span style="font-size: 13px"><b>100</b></span
><br />
<span style="font-size: 12px">离线</span>
</el-col>
<el-col :span="4">
<span style="font-size: 13px"><b>100</b></span
><br />
<span style="font-size: 12px">停用</span>
</el-col>
<el-col :span="4">
<span style="font-size: 13px"><b>100</b></span
><br />
<span style="font-size: 12px">待激活</span>
</el-col>
</el-row>
<el-divider></el-divider>
<el-descriptions :column="1" size="small">
<el-descriptions-item label="站点编码"
>kooriookami</el-descriptions-item
>
<el-descriptions-item label="站点地址"
>18100000000</el-descriptions-item
>
<el-descriptions-item
label="联系人"
:labelStyle="{ 'text-align': 'right', width: '50px' }"
>苏州市</el-descriptions-item
>
<el-descriptions-item label="联系电话">
<el-tag size="small">学校</el-tag>
</el-descriptions-item>
<el-descriptions-item label="创建时间"
>江苏省苏州市吴中区吴中大道 1188 号</el-descriptions-item
>
</el-descriptions>
</el-card> -->
</div> </div>
</template> </template>
<script> <script>
import { createSocket } from "@/assets/utils/websocket";
import { createSocket } from '@/assets/utils/websocket'
export default { export default {
name: 'login', name: "login",
created() { created() {
// window.location.href=process.env.VUE_APP_PORTAL_URL=='undefined'?'http://192.168.0.98:11072':process.env.VUE_APP_PORTAL_URL // let obj = {};
// obj.lng = 104.21;
// obj.lat = 30.56;
// obj.address = "测试站点";
// obj.siteId = 2;
// this.originData.push(obj);
// this.$nextTick(() => {
// this.$refs.map1.refresh(this.originData);
// });
// window.location.href=process.env.VUE_APP_PORTAL_URL=='undefined'?'http://192.168.0.98:11072':process.env.VUE_APP_PORTAL_URL
}, },
methods: { methods: {
login() { login() {
this.loading = true; this.loading = true;
this.$post('/login/login', this.form).then(this.loginSuccess).catch(this.loginFail) this.$post("/login/login", this.form)
.then(this.loginSuccess)
.catch(this.loginFail);
}, },
loginSuccess({data}) { loginSuccess({ data }) {
console.log("userData",data) console.log("userData", data);
this.$store.commit('setUserData', data); this.$store.commit("setUserData", data);
this.$router.replace({ this.$router.replace({
path: this.redirect, path: this.redirect,
}); });
//成功 创建websocket连接 process.env.VUE_WEBSOCKET_BASE_API + //成功 创建websocket连接 process.env.VUE_WEBSOCKET_BASE_API +
console.log("process",process.env) console.log("process", process.env);
// createSocket("ws://"+process.env.VUE_APP_BASE_API +"/ws?accessToken="+data.id) // createSocket("ws://"+process.env.VUE_APP_BASE_API +"/ws?accessToken="+data.id)
}, },
loginFail(error) { loginFail(error) {
this.loading = false; this.loading = false;
...@@ -62,11 +130,11 @@ export default { ...@@ -62,11 +130,11 @@ export default {
onSubmit(e) { onSubmit(e) {
e.preventDefault(); e.preventDefault();
if(!this.form.loginName.length){ if (!this.form.loginName.length) {
return this.$message.warning('请输入用户名') return this.$message.warning("请输入用户名");
} }
if(!this.form.password.length){ if (!this.form.password.length) {
return this.$message.warning('请输入密码') return this.$message.warning("请输入密码");
} }
this.login(); this.login();
...@@ -74,50 +142,56 @@ export default { ...@@ -74,50 +142,56 @@ export default {
}, },
data() { data() {
return { return {
originData: [],
loading: false, loading: false,
redirect: this.$route.query.redirect || '/', redirect: this.$route.query.redirect || "/",
form: { form: {
loginName: '', loginName: "",
password: '' password: "",
} },
} };
} },
} };
</script> </script>
<style lang="less"> <style lang="less">
.el-divider--horizontal {
margin: 5px 0;
background: 0 0;
border-top: 2px solid #e8eaec;
}
.page-login { .page-login {
background-image: linear-gradient(45deg, #333, #111); background-image: linear-gradient(45deg, #333, #111);
background-size: 40px 40px; background-size: 40px 40px;
margin: 0; margin: 0;
height: 100%; height: 100%;
.el-form{ .el-form {
margin: auto; margin: auto;
width: 400px; width: 400px;
padding: 25px 25px 0 0; padding: 25px 25px 0 0;
background: #fff; background: #fff;
h1{ h1 {
text-align: center; text-align: center;
font-size: 20px; font-size: 20px;
font-weight: 500; font-weight: 500;
margin-bottom: 20px; margin-bottom: 20px;
} }
button{ button {
margin-top: 10px; margin-top: 10px;
width: 240px; width: 240px;
} }
.el-input-group__append{ .el-input-group__append {
padding: 0; padding: 0;
font-size: 0; font-size: 0;
} }
} }
.footer{ .footer {
height: 80px; height: 80px;
font-size: 12px; font-size: 12px;
color: #999; color: #999;
text-align: center; text-align: center;
line-height: 80px; line-height: 80px;
a{ a {
color: #999; color: #999;
} }
} }
......
...@@ -40,7 +40,6 @@ ...@@ -40,7 +40,6 @@
</el-row> </el-row>
<dialog-show ref="dialogform" @ok="getData" /> <dialog-show ref="dialogform" @ok="getData" />
</div> </div>
</template> </template>
...@@ -64,14 +63,15 @@ export default { ...@@ -64,14 +63,15 @@ export default {
created() { created() {
this.pageInfo.list = "/sitestat/list"; this.pageInfo.list = "/sitestat/list";
this.$get("/sitestat/maplist", {}).then(({ data }) => { this.$get("/sitestat/maplist", {}).then(({ data }) => {
this.originData = data.data.map((i) => { this.originData=data
let obj = {}; // this.originData = data.data.map((i) => {
obj.lng = i.longitude; // let obj = {};
obj.lat = i.latitude; // obj.lng = i.longitude;
obj.address = i.siteName; // obj.lat = i.latitude;
obj.siteId = i.id; // obj.address = i.siteName;
return obj; // obj.siteId = i.id;
}); // return obj;
// });
this.$refs.map.refresh(this.originData); this.$refs.map.refresh(this.originData);
}); });
...@@ -107,14 +107,24 @@ export default { ...@@ -107,14 +107,24 @@ export default {
this.isExport = false; this.isExport = false;
this.$message.error(error.message); this.$message.error(error.message);
}); });
}, },
getDetailData(siteId) { getDetailData(siteId, callback) {
// console.log("111"); console.log("siteId:", siteId);
this.$get("/sitestat/siteInfo", { siteId, siteId }).then((res) => {
console.log("res",res)
// if (res.code == 1 && res.data.data.length > 0) {
// callback(res.data.data[0]);
// }
});
//关闭弹窗 //关闭弹窗
// this.$refs.popoverRef.doClose() // this.$refs.popoverRef.doClose()
//this.$refs.popoverRef.doShow() //开启弹窗 //this.$refs.popoverRef.doShow() //开启弹窗
}, },
/** 重写新增方法 */ /** 重写新增方法 */
......
package com.mortals.xhx.module.device.model.vo; package com.mortals.xhx.module.device.model.vo;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.device.model.DeviceStatEntity; import com.mortals.xhx.module.device.model.DeviceStatEntity;
import lombok.Data;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
* 设备统计视图对象 * 设备统计视图对象
* *
* @author zxfei * @author zxfei
* @date 2022-07-05 * @date 2022-07-05
*/ */
@Data
public class DeviceStatVo extends BaseEntityLong { public class DeviceStatVo extends BaseEntityLong {
} }
\ No newline at end of file
package com.mortals.xhx.module.device.service; package com.mortals.xhx.module.device.service;
import com.mortals.framework.service.ICRUDService; import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.feign.site.ISiteFeign;
import com.mortals.xhx.module.device.model.DeviceStatEntity; import com.mortals.xhx.module.device.model.DeviceStatEntity;
import org.springframework.beans.factory.annotation.Autowired;
/** /**
* DeviceStatService * DeviceStatService
* *
...@@ -11,4 +14,6 @@ import com.mortals.xhx.module.device.model.DeviceStatEntity; ...@@ -11,4 +14,6 @@ import com.mortals.xhx.module.device.model.DeviceStatEntity;
*/ */
public interface DeviceStatService extends ICRUDService<DeviceStatEntity,Long>{ public interface DeviceStatService extends ICRUDService<DeviceStatEntity,Long>{
} }
\ No newline at end of file
package com.mortals.xhx.module.device.service.impl; package com.mortals.xhx.module.device.service.impl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo;
import com.mortals.xhx.common.pdu.site.SitePdu;
import com.mortals.xhx.feign.site.ISiteFeign;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.device.dao.DeviceStatDao; import com.mortals.xhx.module.device.dao.DeviceStatDao;
import com.mortals.xhx.module.device.model.DeviceStatEntity; import com.mortals.xhx.module.device.model.DeviceStatEntity;
import com.mortals.xhx.module.device.service.DeviceStatService; import com.mortals.xhx.module.device.service.DeviceStatService;
import org.springframework.util.ObjectUtils;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* DeviceStatService * DeviceStatService
* 设备统计 service实现 * 设备统计 service实现
...@@ -13,5 +25,23 @@ import com.mortals.xhx.module.device.service.DeviceStatService; ...@@ -13,5 +25,23 @@ import com.mortals.xhx.module.device.service.DeviceStatService;
*/ */
@Service("deviceStatService") @Service("deviceStatService")
public class DeviceStatServiceImpl extends AbstractCRUDServiceImpl<DeviceStatDao, DeviceStatEntity, Long> implements DeviceStatService { public class DeviceStatServiceImpl extends AbstractCRUDServiceImpl<DeviceStatDao, DeviceStatEntity, Long> implements DeviceStatService {
// @Autowired
// private ISiteFeign siteFeign;
//
//
// @Override
// protected void findAfter(DeviceStatEntity params, PageInfo pageInfo, Context context, List<DeviceStatEntity> list) throws AppException {
// SitePdu sitePdu = new SitePdu();
// sitePdu.setSize(-1);
// Map<Long, SitePdu> collect = siteFeign.list(sitePdu).getData().getData().stream().collect(Collectors.toMap(x -> x.getId(), y -> y));
//
// list.stream().forEach(item->{
// if(ObjectUtils.isEmpty())
// });
//
//
//
// super.findAfter(params, pageInfo, context, list);
// }
} }
\ No newline at end of file
package com.mortals.xhx.module.sitestat.model; package com.mortals.xhx.module.sitestat.model;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.sitestat.model.vo.SitestatVo; import com.mortals.xhx.module.sitestat.model.vo.SitestatVo;
/** /**
* 站点统计实体对象 * 站点统计实体对象
......
...@@ -19,4 +19,15 @@ public class SitestatVo extends BaseEntityLong { ...@@ -19,4 +19,15 @@ public class SitestatVo extends BaseEntityLong {
* 站点Id,来源基础服务平台列表 * 站点Id,来源基础服务平台列表
*/ */
private List<Long> siteIdList; private List<Long> siteIdList;
private String lng;
private String lat;
private String address;
private String leadingOfficial;
private String leadingOfficialTelephone;
} }
\ No newline at end of file
...@@ -20,6 +20,7 @@ import com.mortals.xhx.module.sitestat.model.SitestatQuery; ...@@ -20,6 +20,7 @@ import com.mortals.xhx.module.sitestat.model.SitestatQuery;
import com.mortals.xhx.module.sitestat.service.SitestatService; import com.mortals.xhx.module.sitestat.service.SitestatService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
...@@ -28,6 +29,7 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -28,6 +29,7 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* 站点统计 * 站点统计
...@@ -108,9 +110,8 @@ public class SitestatController extends BaseCRUDJsonBodyMappingController<Sitest ...@@ -108,9 +110,8 @@ public class SitestatController extends BaseCRUDJsonBodyMappingController<Sitest
* 站点列表 * 站点列表
*/ */
@GetMapping(value = "maplist") @GetMapping(value = "maplist")
public String maplist() { public Rest<List<SitestatEntity>> maplist() {
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
String busiDesc = this.getModuleDesc() + "构建站点列表";
try { try {
SitePdu sitePdu = new SitePdu(); SitePdu sitePdu = new SitePdu();
sitePdu.setPage(1); sitePdu.setPage(1);
...@@ -120,13 +121,29 @@ public class SitestatController extends BaseCRUDJsonBodyMappingController<Sitest ...@@ -120,13 +121,29 @@ public class SitestatController extends BaseCRUDJsonBodyMappingController<Sitest
sitePdu.setIdList(siteIdList); sitePdu.setIdList(siteIdList);
} }
Rest<RespData<List<SitePdu>>> resp = siteFeign.list(sitePdu); Rest<RespData<List<SitePdu>>> resp = siteFeign.list(sitePdu);
return JSON.toJSONString(resp);
//根据站点id 获取统计信息
List<SitestatEntity> collect = resp.getData().getData().stream().map(item -> {
SitestatEntity sitestatEntity = this.service.selectOne(new SitestatQuery().siteId(item.getId()));
if (!ObjectUtils.isEmpty(sitestatEntity)) {
sitestatEntity.setSiteId(item.getId());
sitestatEntity.setSiteCode(item.getSiteCode());
sitestatEntity.setSiteName(item.getSiteName());
sitestatEntity.setLng(item.getLongitude());
sitestatEntity.setLat(item.getLatitude());
sitestatEntity.setAddress(item.getDetailAddress());
sitestatEntity.setLeadingOfficial(item.getLeadingOfficial());
sitestatEntity.setLeadingOfficialTelephone(item.getLeadingOfficialTelephone());
return sitestatEntity;
}
return null;
}).filter(f -> f != null).collect(Collectors.toList());
return Rest.ok("获取成功", collect);
} catch (Exception e) { } catch (Exception e) {
log.error("站点异常", e); log.error("获取异常", e);
jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE); return Rest.fail("获取异常!");
jsonObject.put(KEY_RESULT_MSG, super.convertException(e));
} }
return jsonObject.toJSONString();
} }
...@@ -154,6 +171,4 @@ public class SitestatController extends BaseCRUDJsonBodyMappingController<Sitest ...@@ -154,6 +171,4 @@ public class SitestatController extends BaseCRUDJsonBodyMappingController<Sitest
} }
} }
\ No newline at end of file
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