mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-05-09 12:30:07 +08:00
Merge branch 'dev' of http://192.168.2.2:8099/jsowell/jsowell-charger-web into dev
This commit is contained in:
@@ -4,6 +4,7 @@ import com.google.common.collect.Lists;
|
|||||||
import com.jsowell.common.util.StringUtils;
|
import com.jsowell.common.util.StringUtils;
|
||||||
import com.jsowell.pile.domain.ykcCommond.*;
|
import com.jsowell.pile.domain.ykcCommond.*;
|
||||||
import com.jsowell.pile.dto.RemoteAccountBalanceUpdateDTO;
|
import com.jsowell.pile.dto.RemoteAccountBalanceUpdateDTO;
|
||||||
|
import com.jsowell.pile.dto.UpdateFirmwareDTO;
|
||||||
import com.jsowell.pile.service.YKCPushCommandService;
|
import com.jsowell.pile.service.YKCPushCommandService;
|
||||||
import com.jsowell.pile.domain.PileBillingRelation;
|
import com.jsowell.pile.domain.PileBillingRelation;
|
||||||
import com.jsowell.pile.domain.PileBillingTemplate;
|
import com.jsowell.pile.domain.PileBillingTemplate;
|
||||||
@@ -185,12 +186,13 @@ public class PileRemoteService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 远程更新
|
* 远程更新
|
||||||
*
|
|
||||||
* @param pileSns 前台传的桩号集合
|
|
||||||
*/
|
*/
|
||||||
public void updateFirmware(List<String> pileSns) {
|
public void updateFirmware(UpdateFirmwareDTO dto) {
|
||||||
//
|
//
|
||||||
UpdateFirmwareCommand command = UpdateFirmwareCommand.builder().pileSnList(pileSns).build();
|
UpdateFirmwareCommand command = UpdateFirmwareCommand.builder()
|
||||||
|
.pileSnList(dto.getPileSns())
|
||||||
|
.filePath(dto.getFilePath())
|
||||||
|
.build();
|
||||||
ykcPushCommandService.pushUpdateFileCommand(command);
|
ykcPushCommandService.pushUpdateFileCommand(command);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.jsowell.common.constant.Constants;
|
|||||||
import com.jsowell.common.core.domain.AjaxResult;
|
import com.jsowell.common.core.domain.AjaxResult;
|
||||||
import com.jsowell.pile.dto.GenerateOrderDTO;
|
import com.jsowell.pile.dto.GenerateOrderDTO;
|
||||||
import com.jsowell.pile.dto.QueryPileDTO;
|
import com.jsowell.pile.dto.QueryPileDTO;
|
||||||
|
import com.jsowell.pile.dto.UpdateFirmwareDTO;
|
||||||
import com.jsowell.service.OrderService;
|
import com.jsowell.service.OrderService;
|
||||||
import com.jsowell.service.PileRemoteService;
|
import com.jsowell.service.PileRemoteService;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
@@ -105,11 +106,11 @@ public class PileRemoteController {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("/updateFirmware")
|
@PostMapping("/updateFirmware")
|
||||||
public AjaxResult updateFirmware(@RequestBody QueryPileDTO queryPileDTO) {
|
public AjaxResult updateFirmware(@RequestBody UpdateFirmwareDTO dto) {
|
||||||
if (CollectionUtils.isEmpty(queryPileDTO.getPileSns())) {
|
if (CollectionUtils.isEmpty(dto.getPileSns())) {
|
||||||
return AjaxResult.error("参数不能为空");
|
return AjaxResult.error("参数不能为空");
|
||||||
}
|
}
|
||||||
pileRemoteService.updateFirmware(queryPileDTO.getPileSns());
|
pileRemoteService.updateFirmware(dto);
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -973,7 +973,7 @@ public class SpringBootTestController {
|
|||||||
public void testRemoteUpdate() {
|
public void testRemoteUpdate() {
|
||||||
ArrayList<String> list = new ArrayList<>();
|
ArrayList<String> list = new ArrayList<>();
|
||||||
list.add("88000000000001");
|
list.add("88000000000001");
|
||||||
pileRemoteService.updateFirmware(list);
|
// pileRemoteService.updateFirmware(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
@@ -12,5 +12,9 @@ import java.util.List;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Builder
|
@Builder
|
||||||
public class UpdateFirmwareCommand {
|
public class UpdateFirmwareCommand {
|
||||||
List<String> pileSnList;
|
private List<String> pileSnList;
|
||||||
|
|
||||||
|
// /update.bin
|
||||||
|
private String filePath;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package com.jsowell.pile.dto;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Builder
|
||||||
|
public class UpdateFirmwareDTO {
|
||||||
|
/**
|
||||||
|
* 桩编码List
|
||||||
|
*/
|
||||||
|
private List<String> pileSns;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 固件路径
|
||||||
|
*/
|
||||||
|
private String filePath;
|
||||||
|
}
|
||||||
@@ -340,7 +340,7 @@ public class YKCPushCommandServiceImpl implements YKCPushCommandService {
|
|||||||
byte[] passwordByteArr = BytesUtil.checkLengthAndBehindAppendZero(BytesUtil.str2Asc(Constants.updateServerPassword), 32);
|
byte[] passwordByteArr = BytesUtil.checkLengthAndBehindAppendZero(BytesUtil.str2Asc(Constants.updateServerPassword), 32);
|
||||||
|
|
||||||
// 文件路径
|
// 文件路径
|
||||||
byte[] filePathByteArr = BytesUtil.checkLengthAndBehindAppendZero(BytesUtil.str2Asc(Constants.filePath), 64);
|
byte[] filePathByteArr = BytesUtil.checkLengthAndBehindAppendZero(BytesUtil.str2Asc(command.getFilePath()), 64);
|
||||||
|
|
||||||
// 执行控制 01:立即执行 02:空闲执行
|
// 执行控制 01:立即执行 02:空闲执行
|
||||||
byte[] performTypeByteArr = Constants.oneByteArray;
|
byte[] performTypeByteArr = Constants.oneByteArray;
|
||||||
|
|||||||
@@ -479,8 +479,8 @@ public class AMapServiceImpl implements AMapService {
|
|||||||
|
|
||||||
Map<String, List<PileInfoVO>> pileMap = pileInfoList.stream().collect(Collectors.groupingBy(PileInfoVO::getPileSn));
|
Map<String, List<PileInfoVO>> pileMap = pileInfoList.stream().collect(Collectors.groupingBy(PileInfoVO::getPileSn));
|
||||||
|
|
||||||
info = new AMapEquipmentInfo();
|
|
||||||
for (Map.Entry<String, List<PileInfoVO>> pile : pileMap.entrySet()) {
|
for (Map.Entry<String, List<PileInfoVO>> pile : pileMap.entrySet()) {
|
||||||
|
info = new AMapEquipmentInfo();
|
||||||
String pileSn = pile.getKey();
|
String pileSn = pile.getKey();
|
||||||
List<PileInfoVO> value = pile.getValue();
|
List<PileInfoVO> value = pile.getValue();
|
||||||
PileInfoVO pileInfoVO = value.get(0);
|
PileInfoVO pileInfoVO = value.get(0);
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.5 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 2.5 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 5.8 KiB |
@@ -8,9 +8,8 @@
|
|||||||
:src="require('@/assets/images/lightning.png')"
|
:src="require('@/assets/images/lightning.png')"
|
||||||
/>
|
/>
|
||||||
<div class="flex1">
|
<div class="flex1">
|
||||||
<b class="box-h1">{{ generalSituation.totalChargingDegree }}</b>
|
<b class="box-h1">{{ generalSituation.totalChargingDegree}}</b>
|
||||||
<div>总充电电量(度)</div>
|
<div>总充电电量(度)</div>
|
||||||
<div class="progress" />
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
@@ -19,7 +18,6 @@
|
|||||||
<div class="flex1">
|
<div class="flex1">
|
||||||
<b class="box-h1">{{ generalSituation.totalChargingAmount}}</b>
|
<b class="box-h1">{{ generalSituation.totalChargingAmount}}</b>
|
||||||
<div>总充电费用(元)</div>
|
<div>总充电费用(元)</div>
|
||||||
<div class="progress" />
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
@@ -29,7 +27,6 @@
|
|||||||
<div class="flex1">
|
<div class="flex1">
|
||||||
<b class="box-h1">{{ generalSituation.totalChargingQuantity}}</b>
|
<b class="box-h1">{{ generalSituation.totalChargingQuantity}}</b>
|
||||||
<div>总充电订单数(笔)</div>
|
<div>总充电订单数(笔)</div>
|
||||||
<div class="progress" />
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
@@ -39,7 +36,6 @@
|
|||||||
<div class="flex1">
|
<div class="flex1">
|
||||||
<b class="box-h1">{{ generalSituation.totalPileQuantity }}</b>
|
<b class="box-h1">{{ generalSituation.totalPileQuantity }}</b>
|
||||||
<div>总充电设备数量(座)</div>
|
<div>总充电设备数量(座)</div>
|
||||||
<div class="progress" />
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box" v-hasRole="['admin', 'common']">
|
<div class="box" v-hasRole="['admin', 'common']">
|
||||||
@@ -50,7 +46,6 @@
|
|||||||
<div class="flex1">
|
<div class="flex1">
|
||||||
<b class="box-h1">{{ generalSituation.totalMemberAmount }}</b>
|
<b class="box-h1">{{ generalSituation.totalMemberAmount }}</b>
|
||||||
<div>总客户余额(元)</div>
|
<div>总客户余额(元)</div>
|
||||||
<div class="progress" />
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="box">-->
|
<!-- <div class="box">-->
|
||||||
@@ -366,9 +361,15 @@ export default {
|
|||||||
box-shadow: 0 15px 10px -11px #1ab394;
|
box-shadow: 0 15px 10px -11px #1ab394;
|
||||||
margin-right: 24px;
|
margin-right: 24px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
position: relative;
|
||||||
.box-image{
|
.box-image{
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 60px;
|
height: 60px;
|
||||||
|
// background-size: 100% 100%;
|
||||||
|
// position: absolute;
|
||||||
|
// right: 0;
|
||||||
|
// bottom: 0;
|
||||||
|
// filter: drop-shadow(40px 0px gray);
|
||||||
}
|
}
|
||||||
.flex1{
|
.flex1{
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
|||||||
@@ -215,8 +215,11 @@
|
|||||||
|
|
||||||
<!-- 右侧配置管理页面目前不管 -->
|
<!-- 右侧配置管理页面目前不管 -->
|
||||||
<el-tab-pane label="配置管理" name="second">
|
<el-tab-pane label="配置管理" name="second">
|
||||||
<el-button type="primary" icon="el-icon-s-tools" round @click="updateFirmware">远程升级</el-button>
|
<el-button type="primary" icon="el-icon-s-tools" round @click="updateFirmware('/update.bin')">远程升级</el-button>
|
||||||
|
|
||||||
|
<el-button type="primary" icon="el-icon-s-tools" round @click="updateFirmware('/update2.bin')">远程升级2</el-button>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -290,9 +293,10 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 远程升级固件
|
// 远程升级固件
|
||||||
updateFirmware() {
|
updateFirmware(filePath) {
|
||||||
const data = {
|
const data = {
|
||||||
pileSns: [this.pileSn],
|
pileSns: [this.pileSn],
|
||||||
|
filePath: filePath
|
||||||
};
|
};
|
||||||
console.log("远程升级固件:", data);
|
console.log("远程升级固件:", data);
|
||||||
updateFirmware(data).then((response) => {
|
updateFirmware(data).then((response) => {
|
||||||
|
|||||||
@@ -18,18 +18,18 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<el-card class="box-card" shadow="hover" style="margin-bottom: 10px">
|
<el-card class="box-card" shadow="hover" style="margin-bottom: 10px">
|
||||||
<h2>汇付会员</h2>
|
<h2>会员信息</h2>
|
||||||
<hr>
|
<hr>
|
||||||
<el-descriptions :column="2" >
|
<el-descriptions>
|
||||||
<el-descriptions-item label="会员昵称">{{
|
<!-- <el-descriptions-item label="会员昵称">{{
|
||||||
dialogForm.nickname
|
dialogForm.nickname
|
||||||
}}</el-descriptions-item>
|
}}</el-descriptions-item> -->
|
||||||
<el-descriptions-item label="会员邮箱">{{
|
<el-descriptions-item label="会员邮箱">{{
|
||||||
dialogForm.email
|
dialogForm.email
|
||||||
}}</el-descriptions-item>
|
}}</el-descriptions-item>
|
||||||
<el-descriptions-item label="会员性别">{{
|
<!-- <el-descriptions-item label="会员性别">{{
|
||||||
dialogForm.gender === "FEMALE" ? "女" : "男"
|
dialogForm.gender === "FEMALE" ? "女" : "男"
|
||||||
}}</el-descriptions-item>
|
}}</el-descriptions-item> -->
|
||||||
<el-descriptions-item label="公司地址">{{
|
<el-descriptions-item label="公司地址">{{
|
||||||
dialogForm.location
|
dialogForm.location
|
||||||
}}</el-descriptions-item>
|
}}</el-descriptions-item>
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
<el-card class="box-card" shadow="hover" style="margin:20px 0">
|
<el-card class="box-card" shadow="hover" style="margin:20px 0">
|
||||||
<!-- <div style="margin: 12px 0">汇付结算账户</div> -->
|
<!-- <div style="margin: 12px 0">汇付结算账户</div> -->
|
||||||
<h2>汇付结算账户</h2>
|
<h2>结算账户</h2>
|
||||||
<hr>
|
<hr>
|
||||||
<el-descriptions :column="2" v-for="(item,index) in settleAccountList" :key="index">
|
<el-descriptions :column="2" v-for="(item,index) in settleAccountList" :key="index">
|
||||||
<el-descriptions-item label="银行账户类型">{{ item.bankAcctType === '1'? '对公':'对私'}}</el-descriptions-item>
|
<el-descriptions-item label="银行账户类型">{{ item.bankAcctType === '1'? '对公':'对私'}}</el-descriptions-item>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<h2>营收总报</h2>
|
<h2>营收总报</h2>
|
||||||
<el-card shadow="hover" style="margin-bottom:10px;padding:10px">
|
<el-card shadow="hover" style="margin-bottom:10px;padding:10px" >
|
||||||
<el-descriptions >
|
<el-descriptions v-if="merchantOrderReport !== null">
|
||||||
<el-descriptions-item label="用电度数">{{merchantOrderReport.useElectricity}}度</el-descriptions-item>
|
<el-descriptions-item label="用电度数">{{merchantOrderReport.useElectricity}}度</el-descriptions-item>
|
||||||
<el-descriptions-item label="充电次数">{{merchantOrderReport.chargeNum}}次</el-descriptions-item>
|
<el-descriptions-item label="充电次数">{{merchantOrderReport.chargeNum}}次</el-descriptions-item>
|
||||||
<el-descriptions-item label="充电时长">{{merchantOrderReport.chargeTime}}分钟</el-descriptions-item>
|
<el-descriptions-item label="充电时长">{{merchantOrderReport.chargeTime}}分钟</el-descriptions-item>
|
||||||
@@ -13,6 +13,7 @@
|
|||||||
<el-descriptions-item label="交易手续费">{{merchantOrderReport.tradeFee}}元</el-descriptions-item>
|
<el-descriptions-item label="交易手续费">{{merchantOrderReport.tradeFee}}元</el-descriptions-item>
|
||||||
<el-descriptions-item label="虚拟金额">{{merchantOrderReport.virtualAmount}}元</el-descriptions-item>
|
<el-descriptions-item label="虚拟金额">{{merchantOrderReport.virtualAmount}}元</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
|
<h3 v-else>暂无数据</h3>
|
||||||
</el-card>
|
</el-card>
|
||||||
<h2>营收日报</h2>
|
<h2>营收日报</h2>
|
||||||
<el-form
|
<el-form
|
||||||
@@ -141,6 +142,7 @@ export default {
|
|||||||
this.total = response.data.pageResponse.total
|
this.total = response.data.pageResponse.total
|
||||||
} else{
|
} else{
|
||||||
this.reportList =[]
|
this.reportList =[]
|
||||||
|
this.merchantOrderReport= null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<el-tabs
|
<!-- <el-tabs
|
||||||
v-model="activeName"
|
v-model="activeName"
|
||||||
type="card"
|
type="card"
|
||||||
@tab-click="handleClick"
|
@tab-click="handleClick"
|
||||||
@@ -111,7 +111,7 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="订单流水" name="second">订单流水</el-tab-pane>
|
<el-tab-pane label="订单流水" name="second">订单流水</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs> -->
|
||||||
<el-dialog title="提现申请" :visible.sync="dialogVisible" width="33%" :before-close="handleClose">
|
<el-dialog title="提现申请" :visible.sync="dialogVisible" width="33%" :before-close="handleClose">
|
||||||
温馨提示
|
温馨提示
|
||||||
<div style="font-size:12px;color:gray">
|
<div style="font-size:12px;color:gray">
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-tabs v-model="activeName" type="border-card" @tab-click="handleClick">
|
<el-tabs v-model="activeName" type="border-card" @tab-click="handleClick">
|
||||||
<el-tab-pane label="汇付支付配置" name="first">
|
<el-tab-pane label="支付设置" name="first">
|
||||||
<adapay-member :merchantId="merchantId"></adapay-member>
|
<adapay-member :merchantId="merchantId"></adapay-member>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
|
<!-- <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane> -->
|
||||||
<!-- <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>-->
|
<!-- <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>-->
|
||||||
<el-tab-pane label="钱包汇总" name="wallet">
|
<el-tab-pane label="钱包汇总" name="wallet">
|
||||||
<wallet-summary :merchantId="merchantId"></wallet-summary>
|
<wallet-summary :merchantId="merchantId"></wallet-summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user