diff --git a/device-manager-ui/admin/src/components/Map.vue b/device-manager-ui/admin/src/components/Map.vue index b64db5e33e835ab51f2ba57f660b31440bc7959f..87c553935aa0db61a71dee10faf5dcb6befed4e1 100644 --- a/device-manager-ui/admin/src/components/Map.vue +++ b/device-manager-ui/admin/src/components/Map.vue @@ -18,33 +18,95 @@ <el-amap-marker v-for="(marker, index) in markers" :key="'marker' + index" - :events="events" + :events="marker.events" :position="marker.position" :label="marker.label" :icon="marker.icon" - :extData="marker.extData" + :extData="marker" > </el-amap-marker> - <!-- 鏍囪 --> - <!-- <el-amap-marker v-for="(marker, index) in markers" :position="marker" :key="index"></el-amap-marker> --> - <!-- <el-amap-marker v-for="(marker, index) in markers" :key="index" :position="marker.position"> - <div class='map-marker'> - <img src="../assets/images/ego_box_img_normal.png" alt=""> - <p> - <el-tag type='danger'>1231</el-tag> - </p> - </div> - </el-amap-marker> --> + <!--淇℃伅绐椾綋--> + <el-amap-info-window + :position="window.position" + :visible="window.visible" + :content="window.content" + ><el-row :body-style="{ padding: '0px' }"> + <el-row type="flex" justify="space-between"> + <span style="font-size: 18px" + ><b>{{ info.siteName }}</b></span + > + + <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> - <!-- <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> </template> <script> +import { formatterDate } from "@/assets/utils/index"; + import { AMapManager, lazyAMapApiLoaderInstance } from "vue-amap"; let amapManager = new AMapManager(); @@ -73,31 +135,55 @@ export default { }, }, }, + created() { + this.refresh( this.markersData) + }, methods: { + formatterDate, + getDeviceDetial(){ + + //鑾峰彇璁惧鍒楄〃 + console.log("device siteId",this.info.siteId) + + }, refresh(data) { console.log("鍒锋柊鏁版嵁", data); this.markersData = data; this.markersData.map((item) => { - this.setMarker(item.lng, item.lat, item.address, item.siteId); + // console.log("marker", item); + this.setMarker(item); }); }, - relocate(center){ - this.center = [center.lng, center.lat]; - this.zoom=12 - //閲嶆柊瀹氫綅涓績鐐� + relocate(center) { + this.center = [center.lng, center.lat]; + this.zoom = 10; + //閲嶆柊瀹氫綅涓績鐐� }, - setMarker(lng, lat, address, siteId) { - if (!lng && !lat) return; - const size = (address || "").length * 5; + setMarker(item) { + if (!item.lng && !item.lat) return; + + //console.log("data",formatterDate(item.createTime)) let markerLabel = { - label: { content: address, offset: [30, 70] }, - position: [lng, lat], + label: { content: item.siteName, offset: [30, 70] }, + position: [item.lng, item.lat], 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); @@ -121,43 +207,87 @@ export default { }, choose() { 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() { let self = this; return { + visiblepop: false, searchEvents: { init: (e) => {}, }, + window: { + position: [104.405994, 30.915378], + visible: false, + content: '<div class="red">Hi! I am here!</div>', + }, mapData: {}, + info: {}, markers: [], geocoder: null, amapManager, zoom: 8, center: [104.007767, 30.568308], marker: {}, - events: { - init: (e) => { - this.geocoder = new AMap.Geocoder(); - console.log("markersData", this.markersData); - // this.markersData.map((item) => { - // this.setMarker(item.lng, item.lat, item.address); - // }); - }, - click: (e) => { - //alert(e.target.getExtData().siteId); - this.$emit("choose", e.target.getExtData().siteId); - // 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]; - // } - // }); - }, - }, + // events: { + // init: (e) => { + // this.geocoder = new AMap.Geocoder(); + // console.log("markersData", this.markersData); + // // this.markersData.map((item) => { + // // this.setMarker(item.lng, item.lat, item.address); + // // }); + // }, + // click: (e) => { + // console.log(e); + // self.window.position = [e.lnglat.lng, e.lnglat.lat]; + + // self.window.content=` <el-card :body-style="{ padding: '0px' }"> + // <img src="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png" class="image"> + // <div style="padding: 14px;"> + // <span>濂藉悆鐨勬眽鍫�</span> + // <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: [ { @@ -236,6 +366,12 @@ export default { </script> <style lang="less"> +.amap-info-content { + position: relative; + background: #fff; + line-height: 1.4; + overflow: auto; +} .my-map { .amap-demo { position: relative; diff --git a/device-manager-ui/admin/src/components/SearchForm.vue b/device-manager-ui/admin/src/components/SearchForm.vue index 033b5cb0a9cea1d722c96e3abcf2010a5e819ad1..ac19577383fb339c3188c7478a5dfba06b4a2e60 100644 --- a/device-manager-ui/admin/src/components/SearchForm.vue +++ b/device-manager-ui/admin/src/components/SearchForm.vue @@ -229,10 +229,7 @@ export default { //鍒濆鍖栨煡璇㈣〃鍗� let newFormData = {}; // this.form = this.encode(data, this.form); - console.log("data", data); - console.log("form", this.form); this.search.forEach((item) => { - console.log("search-item", item); //澶嶉€夋 if (item.type === "checkbox") { if (this.form[item.name] == undefined) { @@ -257,8 +254,6 @@ export default { }); this.form = Object.assign({}, this.form, newFormData); this.form = Object.assign({}, this.form, data); - - console.log("form2", this.form); }, cleanForm() { this.clean(); diff --git a/device-manager-ui/admin/src/views/device/dialogshow.vue b/device-manager-ui/admin/src/views/device/dialogshow.vue index 8c90981604f1fc099c26450adfcb5389b7c71473..66b8c8f83116086ade4587406127d7ffe164338b 100644 --- a/device-manager-ui/admin/src/views/device/dialogshow.vue +++ b/device-manager-ui/admin/src/views/device/dialogshow.vue @@ -51,6 +51,7 @@ title: "璁惧", // 鏄惁鏄剧ず寮瑰嚭灞� open: false, + direction:"rtl", toString:[ "deviceType", "deviceOnlineStatus", diff --git a/device-manager-ui/admin/src/views/login/login.vue b/device-manager-ui/admin/src/views/login/login.vue index eb297c963264b4f8303002aa0c2e1217e0747562..1c425a5c36e011b568405d561110084e64bc498d 100644 --- a/device-manager-ui/admin/src/views/login/login.vue +++ b/device-manager-ui/admin/src/views/login/login.vue @@ -19,36 +19,104 @@ <div class="footer"> 鐧婚檰 © <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> </template> <script> - -import { createSocket } from '@/assets/utils/websocket' - +import { createSocket } from "@/assets/utils/websocket"; export default { - name: 'login', + name: "login", 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: { login() { 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}) { - console.log("userData",data) - this.$store.commit('setUserData', data); + loginSuccess({ data }) { + console.log("userData", data); + this.$store.commit("setUserData", data); this.$router.replace({ path: this.redirect, }); //鎴愬姛 鍒涘缓websocket杩炴帴 process.env.VUE_WEBSOCKET_BASE_API + - console.log("process",process.env) - // createSocket("ws://"+process.env.VUE_APP_BASE_API +"/ws?accessToken="+data.id) - + console.log("process", process.env); + // createSocket("ws://"+process.env.VUE_APP_BASE_API +"/ws?accessToken="+data.id) }, loginFail(error) { this.loading = false; @@ -62,11 +130,11 @@ export default { onSubmit(e) { e.preventDefault(); - if(!this.form.loginName.length){ - return this.$message.warning('璇疯緭鍏ョ敤鎴峰悕') + if (!this.form.loginName.length) { + return this.$message.warning("璇疯緭鍏ョ敤鎴峰悕"); } - if(!this.form.password.length){ - return this.$message.warning('璇疯緭鍏ュ瘑鐮�') + if (!this.form.password.length) { + return this.$message.warning("璇疯緭鍏ュ瘑鐮�"); } this.login(); @@ -74,50 +142,56 @@ export default { }, data() { return { + originData: [], loading: false, - redirect: this.$route.query.redirect || '/', + redirect: this.$route.query.redirect || "/", form: { - loginName: '', - password: '' - } - } - } -} + loginName: "", + password: "", + }, + }; + }, +}; </script> <style lang="less"> +.el-divider--horizontal { + margin: 5px 0; + background: 0 0; + border-top: 2px solid #e8eaec; +} .page-login { background-image: linear-gradient(45deg, #333, #111); background-size: 40px 40px; margin: 0; height: 100%; - .el-form{ + .el-form { margin: auto; width: 400px; padding: 25px 25px 0 0; background: #fff; - h1{ + h1 { text-align: center; font-size: 20px; font-weight: 500; margin-bottom: 20px; } - button{ + button { margin-top: 10px; width: 240px; } - .el-input-group__append{ + .el-input-group__append { padding: 0; font-size: 0; } } - .footer{ + .footer { height: 80px; font-size: 12px; color: #999; text-align: center; line-height: 80px; - a{ + a { color: #999; } } diff --git a/device-manager-ui/admin/src/views/sitestat/maplist.vue b/device-manager-ui/admin/src/views/sitestat/maplist.vue index fc692eb74a988eed71eeb7b78fe94929dd25dcdd..7ecf8127346b66c36e0524703518b0f5b63ded6a 100644 --- a/device-manager-ui/admin/src/views/sitestat/maplist.vue +++ b/device-manager-ui/admin/src/views/sitestat/maplist.vue @@ -40,7 +40,6 @@ </el-row> <dialog-show ref="dialogform" @ok="getData" /> - </div> </template> @@ -64,14 +63,15 @@ export default { created() { this.pageInfo.list = "/sitestat/list"; this.$get("/sitestat/maplist", {}).then(({ data }) => { - this.originData = data.data.map((i) => { - let obj = {}; - obj.lng = i.longitude; - obj.lat = i.latitude; - obj.address = i.siteName; - obj.siteId = i.id; - return obj; - }); + this.originData=data + // this.originData = data.data.map((i) => { + // let obj = {}; + // obj.lng = i.longitude; + // obj.lat = i.latitude; + // obj.address = i.siteName; + // obj.siteId = i.id; + // return obj; + // }); this.$refs.map.refresh(this.originData); }); @@ -107,14 +107,24 @@ export default { this.isExport = false; this.$message.error(error.message); }); - }, + }, + - getDetailData(siteId) { - // console.log("111"); + getDetailData(siteId, callback) { + 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.doShow() //寮€鍚脊绐� + // this.$refs.popoverRef.doClose() + //this.$refs.popoverRef.doShow() //寮€鍚脊绐� }, /** 閲嶅啓鏂板鏂规硶 */ diff --git a/device-manager/src/main/java/com/mortals/xhx/module/device/model/vo/DeviceStatVo.java b/device-manager/src/main/java/com/mortals/xhx/module/device/model/vo/DeviceStatVo.java index 2c7ad8becca0818727f19687a369e7f2f8c87354..7c45d3a6e0ab699a13513d6523c2d074928bd0ad 100644 --- a/device-manager/src/main/java/com/mortals/xhx/module/device/model/vo/DeviceStatVo.java +++ b/device-manager/src/main/java/com/mortals/xhx/module/device/model/vo/DeviceStatVo.java @@ -1,14 +1,21 @@ package com.mortals.xhx.module.device.model.vo; + import com.mortals.framework.model.BaseEntityLong; import com.mortals.xhx.module.device.model.DeviceStatEntity; +import lombok.Data; + import java.util.ArrayList; import java.util.List; + /** -* 璁惧缁熻瑙嗗浘瀵硅薄 -* -* @author zxfei -* @date 2022-07-05 -*/ + * 璁惧缁熻瑙嗗浘瀵硅薄 + * + * @author zxfei + * @date 2022-07-05 + */ +@Data public class DeviceStatVo extends BaseEntityLong { + + } \ No newline at end of file diff --git a/device-manager/src/main/java/com/mortals/xhx/module/device/service/DeviceStatService.java b/device-manager/src/main/java/com/mortals/xhx/module/device/service/DeviceStatService.java index 1650cb895bf87556eef15beae78e99855d8c11a2..d1de78ead72192ebf758dd69e4e1f38559935d67 100644 --- a/device-manager/src/main/java/com/mortals/xhx/module/device/service/DeviceStatService.java +++ b/device-manager/src/main/java/com/mortals/xhx/module/device/service/DeviceStatService.java @@ -1,6 +1,9 @@ package com.mortals.xhx.module.device.service; import com.mortals.framework.service.ICRUDService; +import com.mortals.xhx.feign.site.ISiteFeign; import com.mortals.xhx.module.device.model.DeviceStatEntity; +import org.springframework.beans.factory.annotation.Autowired; + /** * DeviceStatService * @@ -11,4 +14,6 @@ import com.mortals.xhx.module.device.model.DeviceStatEntity; */ public interface DeviceStatService extends ICRUDService<DeviceStatEntity,Long>{ + + } \ No newline at end of file diff --git a/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceStatServiceImpl.java b/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceStatServiceImpl.java index 4a98083331e3d0b61ff1b0ec3eb812182613cf34..5e60849fbbc42164e5593711003b12f889b73442 100644 --- a/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceStatServiceImpl.java +++ b/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceStatServiceImpl.java @@ -1,9 +1,21 @@ 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 com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.xhx.module.device.dao.DeviceStatDao; import com.mortals.xhx.module.device.model.DeviceStatEntity; 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 * 璁惧缁熻 service瀹炵幇 @@ -13,5 +25,23 @@ import com.mortals.xhx.module.device.service.DeviceStatService; */ @Service("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 diff --git a/device-manager/src/main/java/com/mortals/xhx/module/sitestat/model/SitestatEntity.java b/device-manager/src/main/java/com/mortals/xhx/module/sitestat/model/SitestatEntity.java index 6d384a5434e1165cade873e76f179b0be0579aab..aeaea2deae55512d85187f3629f872a7b7c347c0 100644 --- a/device-manager/src/main/java/com/mortals/xhx/module/sitestat/model/SitestatEntity.java +++ b/device-manager/src/main/java/com/mortals/xhx/module/sitestat/model/SitestatEntity.java @@ -1,10 +1,5 @@ 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; /** * 绔欑偣缁熻瀹炰綋瀵硅薄 diff --git a/device-manager/src/main/java/com/mortals/xhx/module/sitestat/model/vo/SitestatVo.java b/device-manager/src/main/java/com/mortals/xhx/module/sitestat/model/vo/SitestatVo.java index 58da3308c1f1426661a164e73b9336ca3344a206..784a5c5ef38d9afbae8ca1c28cf92ad58499a8e9 100644 --- a/device-manager/src/main/java/com/mortals/xhx/module/sitestat/model/vo/SitestatVo.java +++ b/device-manager/src/main/java/com/mortals/xhx/module/sitestat/model/vo/SitestatVo.java @@ -19,4 +19,15 @@ public class SitestatVo extends BaseEntityLong { * 绔欑偣Id锛屾潵婧愬熀纭€鏈嶅姟骞冲彴鍒楄〃 */ 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 diff --git a/device-manager/src/main/java/com/mortals/xhx/module/sitestat/web/SitestatController.java b/device-manager/src/main/java/com/mortals/xhx/module/sitestat/web/SitestatController.java index 1cc0ff03cdcd2b7b8bbcab75a4ed2806ca2dc410..3ac226a97596352f4597061c7a7621fda65a243e 100644 --- a/device-manager/src/main/java/com/mortals/xhx/module/sitestat/web/SitestatController.java +++ b/device-manager/src/main/java/com/mortals/xhx/module/sitestat/web/SitestatController.java @@ -20,6 +20,7 @@ import com.mortals.xhx.module.sitestat.model.SitestatQuery; import com.mortals.xhx.module.sitestat.service.SitestatService; import lombok.extern.slf4j.Slf4j; 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.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -28,6 +29,7 @@ import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 绔欑偣缁熻 @@ -108,9 +110,8 @@ public class SitestatController extends BaseCRUDJsonBodyMappingController<Sitest * 绔欑偣鍒楄〃 */ @GetMapping(value = "maplist") - public String maplist() { + public Rest<List<SitestatEntity>> maplist() { JSONObject jsonObject = new JSONObject(); - String busiDesc = this.getModuleDesc() + "鏋勫缓绔欑偣鍒楄〃"; try { SitePdu sitePdu = new SitePdu(); sitePdu.setPage(1); @@ -120,13 +121,29 @@ public class SitestatController extends BaseCRUDJsonBodyMappingController<Sitest sitePdu.setIdList(siteIdList); } 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) { - log.error("绔欑偣寮傚父", e); - jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE); - jsonObject.put(KEY_RESULT_MSG, super.convertException(e)); + log.error("鑾峰彇寮傚父", e); + return Rest.fail("鑾峰彇寮傚父锛�"); } - return jsonObject.toJSONString(); + } @@ -154,6 +171,4 @@ public class SitestatController extends BaseCRUDJsonBodyMappingController<Sitest } - - } \ No newline at end of file