发送遥控地锁指令

This commit is contained in:
2023-08-02 13:30:54 +08:00
parent 9b2b2396bb
commit ad2901a19d
3 changed files with 409 additions and 354 deletions

View File

@@ -1,5 +1,6 @@
package com.jsowell.web.controller.pile; package com.jsowell.web.controller.pile;
import com.alibaba.fastjson2.JSON;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.jsowell.common.core.controller.BaseController; import com.jsowell.common.core.controller.BaseController;
import com.jsowell.common.core.domain.AjaxResult; import com.jsowell.common.core.domain.AjaxResult;
@@ -143,15 +144,16 @@ public class PileRemoteController extends BaseController {
*/ */
@PostMapping("remoteControlGroundLock") @PostMapping("remoteControlGroundLock")
public AjaxResult remoteControlGroundLock(@RequestBody RemoteControlGroundLockCommand command) { public AjaxResult remoteControlGroundLock(@RequestBody RemoteControlGroundLockCommand command) {
logger.info("遥控地锁接口param:{}", JSON.toJSONString(command));
AjaxResult result; AjaxResult result;
try { try {
pileRemoteService.remoteControlGroundLock(command); pileRemoteService.remoteControlGroundLock(command);
result = AjaxResult.success(); result = AjaxResult.success();
} catch (BusinessException e) { } catch (BusinessException e) {
logger.error("遥控地锁error", e); logger.error("遥控地锁接口error", e);
result = AjaxResult.error(e.getMessage()); result = AjaxResult.error(e.getMessage());
} catch (Exception e) { } catch (Exception e) {
logger.error("遥控地锁error", e); logger.error("遥控地锁接口error", e);
result = AjaxResult.error(e.getMessage()); result = AjaxResult.error(e.getMessage());
} }
return result; return result;

View File

@@ -8,3 +8,12 @@ export function updateFirmware(data) {
data: data data: data
}) })
} }
// 遥控地锁
export function remoteControlGroundLock(data) {
return request({
url: '/pile/remote/remoteControlGroundLock',
method: 'post',
data: data
})
}

View File

@@ -15,7 +15,9 @@
<el-card class="box-card" shadow="hover" v-loading="pileDetailLoading"> <el-card class="box-card" shadow="hover" v-loading="pileDetailLoading">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span>充电设备(<span style="color: #bf1c1c">{{ status }}</span>)</span> <span>充电设备(<span style="color: #bf1c1c">{{ status }}</span>)</span>
<el-button icon="el-icon-refresh-right" style="float: right; padding: 3px 0" type="text" @click="getPileDetail">刷新</el-button> <el-button icon="el-icon-refresh-right" style="float: right; padding: 3px 0"
type="text" @click="getPileDetail">刷新
</el-button>
</div> </div>
<!--二维码--> <!--二维码-->
<div class="hello"> <div class="hello">
@@ -35,32 +37,39 @@
label="SN" label="SN"
labelStyle="width: 80px" labelStyle="width: 80px"
contentStyle="width: 150px" contentStyle="width: 150px"
>{{ pileDetail.pileSn }}</el-descriptions-item >{{ pileDetail.pileSn }}
</el-descriptions-item
> >
<el-descriptions-item label="运营商">{{ <el-descriptions-item label="运营商">{{
pileDetail.merchantName pileDetail.merchantName
}}</el-descriptions-item> }}
</el-descriptions-item>
<el-descriptions-item label="站点">{{ <el-descriptions-item label="站点">{{
pileDetail.stationName pileDetail.stationName
}}</el-descriptions-item> }}
</el-descriptions-item>
<!--<el-descriptions-item label="厂商"> <!--<el-descriptions-item label="厂商">
<el-tag size="small">举视</el-tag> <el-tag size="small">举视</el-tag>
</el-descriptions-item>--> </el-descriptions-item>-->
<!-- <el-descriptions-item label="使用车辆类型">{{ <!-- <el-descriptions-item label="使用车辆类型">{{
pileDetail.matchCars pileDetail.matchCars
}}</el-descriptions-item>--> }}</el-descriptions-item>-->
<el-descriptions-item label="设备型号">{{pileDetail.modelName}}</el-descriptions-item> <el-descriptions-item label="设备型号">{{ pileDetail.modelName }}
</el-descriptions-item>
<el-descriptions-item label="额定功率(kW)">{{ <el-descriptions-item label="额定功率(kW)">{{
pileDetail.ratedPower pileDetail.ratedPower
}}</el-descriptions-item> }}
</el-descriptions-item>
<!--<el-descriptions-item label="额定电压(V)">{{pileDetail.sn}}</el-descriptions-item>--> <!--<el-descriptions-item label="额定电压(V)">{{pileDetail.sn}}</el-descriptions-item>-->
<el-descriptions-item label="额定电流(A)">{{ <el-descriptions-item label="额定电流(A)">{{
pileDetail.ratedCurrent pileDetail.ratedCurrent
}}</el-descriptions-item> }}
</el-descriptions-item>
<el-descriptions-item label="iccid">{{ <el-descriptions-item label="iccid">{{
pileDetail.iccid pileDetail.iccid
}}</el-descriptions-item> }}
</el-descriptions-item>
<el-descriptions-item label="sim卡商"> <el-descriptions-item label="sim卡商">
<dict-tag <dict-tag
@@ -94,7 +103,9 @@
<el-card class="box-card" shadow="hover"> <el-card class="box-card" shadow="hover">
<div style="margin: 12px 0"> <div style="margin: 12px 0">
<span>接口列表</span> <span>接口列表</span>
<el-button icon="el-icon-refresh-right" style="float: right; padding: 3px 0" type="text" @click="refreshPileConnectorList">刷新</el-button> <el-button icon="el-icon-refresh-right" style="float: right; padding: 3px 0" type="text"
@click="refreshPileConnectorList">刷新
</el-button>
</div> </div>
<!--<div style="margin-top: 20px"> <!--<div style="margin-top: 20px">
&lt;!&ndash; 刷新按钮 &ndash;&gt; &lt;!&ndash; 刷新按钮 &ndash;&gt;
@@ -168,7 +179,7 @@
prop="instantPower" prop="instantPower"
label="即时功率kW" label="即时功率kW"
/> />
<el-table-column prop="soc" label="SOC(°C)" align="center" /> <el-table-column prop="soc" label="SOC(°C)" align="center"/>
<el-table-column <el-table-column
prop="equipmentOrderNum" prop="equipmentOrderNum"
label="设备订单号" label="设备订单号"
@@ -186,13 +197,26 @@
<!-- <span>{{scope.row.businessType === '1' ? '运营桩':'个人桩'}}</span>--> <!-- <span>{{scope.row.businessType === '1' ? '运营桩':'个人桩'}}</span>-->
<!-- </template>--> <!-- </template>-->
<!-- </el-table-column>--> <!-- </el-table-column>-->
<el-table-column label="地锁操作" align="center"
class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-caret-bottom"
@click="remoteControlGroundLock(scope.row, '0')">降锁
</el-button>
<el-button size="mini" type="text" icon="el-icon-caret-top"
@click="remoteControlGroundLock(scope.row, '1')">升锁
</el-button>
</template>
</el-table-column>
</el-table> </el-table>
</div> </div>
</el-card> </el-card>
<el-card style="margin-top: 20px" shadow="hover"> <el-card style="margin-top: 20px" shadow="hover">
<div style="margin: 12px 0"> <div style="margin: 12px 0">
<span>充电桩通信日志</span> <span>充电桩通信日志</span>
<el-button icon="el-icon-refresh-right" style="float: right; padding: 3px 0" type="text" @click="getFeedList">刷新</el-button> <el-button icon="el-icon-refresh-right" style="float: right; padding: 3px 0" type="text"
@click="getFeedList">刷新
</el-button>
</div> </div>
<el-table :data="feedList" stripe style="width: 100%" v-loading="feedListLoading"> <el-table :data="feedList" stripe style="width: 100%" v-loading="feedListLoading">
<el-table-column prop="createTime" label="触发时间" align="center" width="200"/> <el-table-column prop="createTime" label="触发时间" align="center" width="200"/>
@@ -226,12 +250,13 @@ import {
getPileFeedList, getPileFeedList,
listBasic, listBasic,
} from "@/api/pile/basic"; } from "@/api/pile/basic";
import { queryConnectorListByParams } from "@/api/pile/connector"; import {queryConnectorListByParams} from "@/api/pile/connector";
// 二维码组件 // 二维码组件
import VueQr from "vue-qr"; import VueQr from "vue-qr";
import {remoteControlGroundLock} from "@/api/pile/pileRemote";
export default { export default {
components: { VueQr ,remoteUpgrade}, components: {VueQr, remoteUpgrade},
name: "pile-detail", name: "pile-detail",
dicts: ["connector_status", "connector_type", "sim_supplier", "sim_operator"], dicts: ["connector_status", "connector_type", "sim_supplier", "sim_operator"],
data() { data() {
@@ -243,7 +268,7 @@ export default {
connectorList: [], connectorList: [],
stationId: 1, stationId: 1,
// 充电桩详情 竖向 表格渲染的数据 // 充电桩详情 竖向 表格渲染的数据
pileDetail: { url: "" }, pileDetail: {url: ""},
feedListLoading: false, feedListLoading: false,
qrWidth: 60, qrWidth: 60,
flag: true, flag: true,
@@ -284,9 +309,26 @@ export default {
this.queryPileConnectorList(); this.queryPileConnectorList();
}, },
mounted() { mounted() {
setTimeout(() => {}, 300); setTimeout(() => {
}, 300);
}, },
methods: { methods: {
// 遥控地锁
remoteControlGroundLock(row, operate) {
console.log("row:", row);
const pileSn = row.pileSn;
const pileConnectorCode = row.pileConnectorCode;
const connectorCode = pileConnectorCode.replace(pileSn, "");
var data = {
"pileSn": pileSn,
"connectorCode": connectorCode,
"operate": operate
};
remoteControlGroundLock(data).then((response) => {
console.log("后管遥控地锁结果:", response);
});
},
//点击二维码事件 //点击二维码事件
qrcodeClick(row) { qrcodeClick(row) {
if (this.flag) { if (this.flag) {
@@ -335,7 +377,7 @@ export default {
}, },
handleClick(tab) { handleClick(tab) {
// console.log(tab.name, event); // console.log(tab.name, event);
if(tab.name === 'second') { if (tab.name === 'second') {
this.$refs.second.getList(); this.$refs.second.getList();
} }
// this.initializeData(tab.name); // this.initializeData(tab.name);
@@ -375,9 +417,11 @@ export default {
background: #fff; background: #fff;
border-radius: 5px 5px 0px 0px; border-radius: 5px 5px 0px 0px;
} }
.sideNav { .sideNav {
padding: 30px 0 12px; padding: 30px 0 12px;
} }
#qrcodeArea img { #qrcodeArea img {
height: 80px; height: 80px;
width: 80px; width: 80px;