From b2f21d080425b0ab6e5e6170914ca2c615e5d185 Mon Sep 17 00:00:00 2001
From: 81041 <81041@DESKTOP-025NVD9>
Date: 星期三, 02 一月 2019 10:22:00 +0800
Subject: [PATCH] Merge branch 'dev_lxw' of https://gitlab.com/whyclxw1/gx_tieta.git into dev_lxw
---
gx_tieta/WebRoot/batt-station-update1.jsp | 268 ++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 211 insertions(+), 57 deletions(-)
diff --git a/gx_tieta/WebRoot/batt-station-update1.jsp b/gx_tieta/WebRoot/batt-station-update1.jsp
index 704008d..a2d5656 100644
--- a/gx_tieta/WebRoot/batt-station-update1.jsp
+++ b/gx_tieta/WebRoot/batt-station-update1.jsp
@@ -15,7 +15,7 @@
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
- <title>鏈烘埧绔欑偣鍗囩骇鍔熻兘</title>
+ <title>BTS璁惧鍗囩骇</title>
<link rel="stylesheet" type="text/css" href="pages/css/base.css">
<link rel="stylesheet" type="text/css" href="jqueryui/jquery-ui.css">
<link rel="stylesheet" type="text/css" href="src/css/layui.css">
@@ -130,7 +130,14 @@
<!-- 鏁翠綋鐏拌壊閬僵灞� -->
<div id="allShade"></div>
<script type="text/html" id="barDemo">
- <a class="layui-btn layui-btn-xs" lay-event="update">鍗囩骇</a>
+ {{# if(d.updatestatusnum != 1){ }}
+ <a class="layui-btn layui-btn-xs" lay-event="update">鍗囩骇</a>
+ {{# } }}
+ </script>
+ <script type="text/html" id="upProgress">
+ <div class="layui-progress layui-progress-big" lay-showpercent="true" lay-filter="upload{{d.fbsid}}" style="margin-top:6px">
+ <div class="layui-progress-bar" lay-percent="0%"></div>
+ </div>
</script>
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript" src="js/echarts.js"></script>
@@ -143,6 +150,28 @@
var table = layui.table; // 鑾峰彇琛ㄦ牸妯″潡
var form = layui.form; // 鑾峰彇琛ㄥ崟妯″潡
var layer = layui.layer; // 鑾峰彇寮瑰嚭妗嗘ā鍧�
+ var element = layui.element; // 鑾峰彇鍏冪礌鎿嶄綔妯″潡
+
+ // 璁剧疆妫�娴嬫枃浠跺悕寮瑰嚭妗嗙殑content
+ var cFilenameContent = '<div style="width:300px; height: 110px;"><div style="margin-top: 20px;margin-left: 8px; margin-right: 8px; text-algin: center;">'+
+ '<span>閫夋嫨鏂囦欢鍚嶏細</span>'+
+ '<select id="equipeTypeSel" style="width: 200px;height: 26px; border: 1px solid #ccc">'+
+ '<option value="avr_dfu.uc3">avr_dfu.uc3</option>'+
+ '<option value="E51_DFU.SM5">E51_DFU.SM5</option>'+
+ '</select><br><br>'+
+ '<span>绯� 缁� 绫� 鍨嬶細</span>'+
+ '<select id="sysType" style="width: 200px;height: 26px; border: 1px solid #ccc">'+
+ '<option value="12">1U</option>'+
+ '<option value="2">2U</option>'+
+ '</select><br><br>'+
+ '<span>杈撳叆鐗堟湰鍙凤細</span>'+
+ '<input type="text" id="newestVer" style="width: 200px;height: 24px; border: 1px solid #ccc">'+
+ '</div></div>';
+
+ var cVerContent = '<div style="width:300px; height: 50px;"><div style="margin-top: 20px;margin-left: 8px; margin-right: 8px; text-algin: center;">'+
+ '<span>杈撳叆鐗堟湰鍙凤細</span>'+
+ '<input type="text" id="newestVer" style="width: 200px;height: 24px; border: 1px solid #ccc">'+
+ '</div></div>';
var isNewLoad = true;
var pre_province = getQueryString('province');
@@ -372,9 +401,11 @@
,{field:'stationid', title:'鏈烘埧ID', align:'center'}
,{field:'stationname', title:'鏈烘埧鍚嶇О', align:'center', width: 400}
,{field:'fbsid', title:'璁惧ID', align:'center'}
- ,{field:'fbsname', title:'璁惧鍚嶇О', align:'center'}
,{field:'updatestatus', title:'鍗囩骇鐘舵��', align:'center'}
+ ,{field: 'version', title: '鐗堟湰鍙�', align: 'center'}
+ ,{field:'filename', title:'鍗囩骇鏂囦欢鍚�', align:'center'}
,{field:'status', title:'璇诲啓鐘舵��', align:'center'}
+ ,{field:'progress', title:'璇�/鍐欒繘搴�', align: 'center', templet:'#upProgress'}
,{field:'datapackage', title:'褰撳墠鏁版嵁鍖�', align:'center'}
,{fixed: 'right', title:'鎿嶄綔', align:'center', toolbar: '#barDemo', width:100}
]]
@@ -404,8 +435,26 @@
updateList.push(data[i].fbsid);
}
+ // 鎵撳紑闈㈡澘璁剧疆鍗囩骇璁惧埆鐨勭被鍨�
+ layer.open({
+ type: 1
+ ,title: '鍗囩骇鏂囦欢鍚�/鐗堟湰鍙�'
+ ,content: cFilenameContent
+ ,fixed: true
+ ,resize: false
+ ,btn:['璁剧疆', '鍙栨秷']
+ ,yes: function(index) {
+ var filename = $('#equipeTypeSel').val();
+ var newestVer = $('#newestVer').val();
+ var sysType = $('#sysType').val();
+
+ // 鏍¢獙瑕佹洿鏂扮殑璁惧
+ checkStationState(updateList, data, filename, newestVer, sysType);
+ layer.close(index);
+ }
+ });
// 鏍¢獙瑕佹洿鏂扮殑璁惧
- checkStationState(updateList, data);
+ // checkStationState(updateList, data);
});
// 鐐瑰嚮琛ㄦ牸鐨則oolbar
@@ -428,8 +477,24 @@
var updateList = [data.fbsid];
var allData = [data];
- // 鏍¢獙瑕佹洿鏂扮殑璁惧
- checkStationState(updateList, allData);
+ // 鎵撳紑闈㈡澘璁剧疆鍗囩骇璁惧埆鐨勭被鍨�
+ layer.open({
+ type: 1
+ ,title: '鍗囩骇鏂囦欢鍚�/鐗堟湰鍙�'
+ ,content: cFilenameContent
+ ,fixed: true
+ ,resize: false
+ ,btn:['璁剧疆', '鍙栨秷']
+ ,yes: function(index) {
+ var newestVer = $('#newestVer').val();
+ var sysType = $('#sysType').val();
+ // 鏍¢獙瑕佹洿鏂扮殑璁惧
+ checkStationState(updateList, allData, data.filename, newestVer, sysType);
+ layer.close(index);
+ }
+ });
+
+
}
// 鐐瑰嚮娣诲姞鐢熸垚琛ㄦ牸
@@ -486,17 +551,19 @@
var formaterData = formaterAddData(rs.data, allData); //瑙f瀽鏁版嵁
if(formaterData.length) {
// 閬嶅巻formaterData
+ //console.log(formaterData);
for(var i=0; i<formaterData.length; i++) {
var _formaterData = formaterData[i];
var tmp = {};
tmp.stationid = _formaterData.StationId; // 鏈烘埧id
tmp.stationname = _formaterData.StationName; // 鏈烘埧鍚嶇О
tmp.fbsid = _formaterData.FBSDeviceId; // 璁惧id
- tmp.fbsname = _formaterData.FBSDeviceName; // 璁惧鍚嶇О
+ tmp.filename = getFnameByVer(_formaterData.StationIp); // 鍗囩骇鏂囦欢鍚嶇О
tmp.updatestatusnum = 0; // 0 绛夊緟鍗囩骇
tmp.updatestatus = '绛夊緟鍗囩骇'; // 鍗囩骇鐘舵��
tmp.status = '鍐�'; // 璇诲啓鐘舵��
tmp.datapackage = 1; // 褰撳墠鏁版嵁鍖�
+ tmp.version = _formaterData.StationIp; // 鐗堟湰鍙�
tmp.isNewAdd = true;
//console.log(tmp);
allData.push(tmp);
@@ -504,6 +571,7 @@
// 鐢熸垚琛ㄦ牸鏁版嵁
table.render(tOptions);
+ renderTblPorgess(allData);
}else {
layer.msg('娌℃湁瑕佹坊鍔犵殑鍐呭锛�');
}
@@ -618,14 +686,17 @@
for(var i=0; i<rs.data.length; i++) {
var _data = rs.data[i];
var num = -1;
- // 閬嶅巻鐜版湁鐨則blData
+ // 璁$畻杩涘害
+ var currentPer = getStrPercent(_data.dfu_data_blocknum, _data.dfu_data_blocklen, _data.dfu_file_len, _data.dfu_wr_stat);
+ updateTblPorgress(_data.dev_id, currentPer);
+ //console.log(currentPer);
+ // 閬嶅巻鐜版湁鐨則blData/鏍规嵁琛ㄦ牸鐨勮鍒玦d瀵硅幏鍙栧埌鍊艰繘琛屾帓搴忎互渚垮搴旇〃鏍煎唴瀹�
for(var k=0; k<tblData.length;k++) {
var _tblData = tblData[k];
if(_tblData.fbsid == _data.dev_id) {
num = k;
break;
}
-
}
if(num == -1) {
@@ -650,7 +721,7 @@
tmp.datapackage[num] = dfuData;
}
var pageTbl = $('#pageTbl');
-
+ //console.log(tmp);
// 鏇存柊琛ㄦ牸鍐呭
Object.keys(tmp).forEach(function(key) {
updateLayuiTblCol(pageTbl, key, tmp[key]);
@@ -687,8 +758,8 @@
}
- //楠岃瘉璁惧鏄惁鍏佽璁惧杩涜杩滅▼鍗囩骇
- function checkStationState(temp, all){
+ // 楠岃瘉璁惧鏄惁鍏佽璁惧杩涜杩滅▼鍗囩骇
+ function checkStationState(temp, all, filename, newestVer, sysType){
$.ajax({
type: "post",
url: "Fbs9100s_dfu_stateAction_action_judgeStation",
@@ -700,13 +771,13 @@
//console.log(rs);
if(rs.code == 1) {
var data = rs.data;
- var updateData = checkUpdating(data, all);
- var errorUpdate = checkErrorUpdate(data, all);
- $('#updateIframeData').data('update', updateData); // 鍙洿鏂扮殑璁惧淇℃伅
- $('#updateIframeData').data('errorUpdate', errorUpdate); // 鏃犳硶鏇存柊鐨勮澶囦俊鎭�
+ var updateData = checkUpdating(data, all, filename, newestVer, sysType);
+ $('#updateIframeData').data('update', updateData.good); // 鍙洿鏂扮殑璁惧淇℃伅
+ $('#updateIframeData').data('errorUpdate', updateData.bad); // 鏃犳硶鏇存柊鐨勮澶囦俊鎭�
+ //console.log(updateData);
// 鍒ゆ柇鏄惁鏈夊崌绾х殑璁惧
- if(updateData.length == 0) {
+ if(updateData.good.length == 0) {
if(temp.length == 1) {
layer.msg('褰撳墠璁惧鏃犳硶鍗囩骇锛�');
}else {
@@ -720,27 +791,34 @@
layer.open({
type: 2,
title: '鏇存柊璁惧',
- area: ['700px', '524px'],
+ area: ['960px', '524px'],
fixed: false, //涓嶅浐瀹�
maxmin: true,
content: 'iframe/batt-station-update.html',
btn: ['纭鍗囩骇', '鍙栨秷'],
yes: function(index, layero) {
- var updateData = $('#updateIframeData').data('update'); // 鑾峰彇鍙崌绾ц澶囩殑淇℃伅
+ var goodUpdateData = $('#updateIframeData').data('update'); // 鑾峰彇鍙崌绾ц澶囩殑淇℃伅
// 鏍规嵁鍙崌绾ц澶囩殑淇℃伅鏋勯�犳煡璇㈡潯浠�
var updateList = [];
- for(var i=0; i<updateData.length; i++) {
+ for(var i=0; i<goodUpdateData.length; i++) {
+ var _data = goodUpdateData[i];
+ //var filename = getFnameByVer(_data.version);
var _tmp = {
- dev_id: updateData[i].fbsid
+ dev_id: _data.fbsid
+ ,dfu_file: _data.filename
};
-
+ console.log(_data);
// 娣诲姞鍒拌澶囧崌绾у垪琛ㄤ腑
- updateList.push(_tmp);
+ if(_data.filename && _data.filename.length != 0) {
+ updateList.push(_tmp);
+ }
+
}
-
+ //console.log(updateList);
+ //return;
// 鍏抽棴寮瑰嚭闈㈡澘
layer.close(index);
-
+ // console.log(updateList);
// 鍗囩骇璁惧
updateBTSDevice(updateList);
//console.log(updateList);
@@ -762,34 +840,12 @@
}
- // 浠庤繑鍥炵殑鍙崌绾х殑璁惧涓墧闄ゆ鍦ㄥ崌绾х殑璁惧
- function checkUpdating(rsData, all) {
- var rs = [];
- // 閬嶅巻all
- for(var i=0; i<all.length; i++) {
- var _all = all[i];
- var isError = true;
- for(var k=0; k<rsData.length; k++) {
- var _rsData = rsData[k];
-
- // 鍒ゆ柇褰撳墠璁惧鏄惁姝e湪鍗囩骇
- if(_all.updatestatusnum == 1) {
- isError = false;
- }
- }
-
- // 鏍规嵁isError鍒よ鏄惁鏄笉鍙坊鍔犵殑鏈烘埧
- if(isError) {
- rs.push(_all);
- }
- }
-
- return rs;
- }
-
- // 鑾峰彇鏃犳硶鍗囩骇鐨勮澶�
- function checkErrorUpdate(rsData, all) {
- var rs = [];
+ // 鏍煎紡璇濆崌绾х殑璁惧
+ function checkUpdating(rsData, all, filename, newestVer, sysType) {
+ var rs = {
+ good: []
+ ,bad: []
+ };
// 閬嶅巻all
for(var i=0; i<all.length; i++) {
var _all = all[i];
@@ -799,15 +855,22 @@
// 鍒ゆ柇褰撳墠璁惧鏄惁姝e湪鍗囩骇
if(_all.updatestatusnum != 1) {
- if(_all.fbsid == _rsData.FBSDeviceId) {
- isError = false;
+ if(_all.fbsid == _rsData.FBSDeviceId && _all.filename == filename) {
+ // 妫�娴嬪綋鍓嶇増鏈彿鏄惁涓烘渶鏂�
+ var isNewstVer = checkNewestVer(newestVer, _all.version);
+ var isSysType = checkSysType(sysType, _all.version);
+ if(!isNewstVer && isSysType) {
+ isError = false;
+ }
}
}
}
// 鏍规嵁isError鍒よ鏄惁鏄笉鍙坊鍔犵殑鏈烘埧
if(isError) {
- rs.push(_all);
+ rs.bad.push(_all);
+ }else {
+ rs.good.push(_all);
}
}
@@ -859,7 +922,9 @@
tmp.fbsid = _data.dev_id; // 璁惧id
tmp.fbsname = _data.fBSDeviceName; // 璁惧鍚嶇О
tmp.updatestatusnum = 1; // 0 绛夊緟鍗囩骇 1姝e湪鍗囩骇
- tmp.updatestatus = '姝e湪鍗囩骇'; // 鍗囩骇鐘舵��
+ tmp.version = _data.note; // 鐗堟湰鍙�
+ tmp.filename = _data.dfu_file; // 鍗囩骇鏂囦欢鍚嶇О
+ tmp.updatestatus = '鍗囩骇涓�'; // 鍗囩骇鐘舵��
tmp.status = _data.dfu_wr_stat == 1?'鍐�':_data.dfu_wr_stat == 2?'璇�':_data.dfu_wr_stat == 3?'瀹屾垚':''; // 璇诲啓鐘舵��
tmp.datapackage = _data.dfu_data_blocknum; // 褰撳墠鏁版嵁鍖�
tmp.isNewAdd = false;
@@ -869,11 +934,100 @@
// 鏇存柊琛ㄦ牸
table.render(tOptions);
+ renderTblPorgess(allData);
}
}
});
}
+ // 娓叉煋杩涘害鏉�
+ function renderTblPorgess(tblData) {
+ // 閬嶅巻tblData鏍规嵁fbsid娓叉煋杩涘害鏉�
+ for(var i=0; i<tblData.length; i++) {
+ var fbsid = tblData[i].fbsid;
+
+ // 娓叉煋杩涘害鏉�
+ element.render('progress', 'upload'+fbsid);
+ }
+
+ }
+
+ // 鏇存柊杩涘害鏉�
+ function updateTblPorgress(fbsid, percent) {
+
+ // 鏇存柊杩涘害鏉�
+ element.progress('upload'+fbsid, percent);
+ }
+
+ // 璁$畻杩涘害
+ function getStrPercent(current, blocklen, all, status) {
+ var rs = '0%';
+ if(all != 0) {
+ var num = Math.ceil(current*blocklen*100/all);
+ if(num>=100) {
+ num = status == 1?'鍐欏畬鎴�':'鍗囩骇瀹屾垚';
+
+ }
+
+ rs = num+'%';
+ }
+
+ return rs;
+ }
+ //console.log(getFnameByVer('D:8,V2.53.40'));
+ // 鏍规嵁鐗堟湰鍙疯幏鍙栨枃浠剁殑鍚嶇О
+ function getFnameByVer(version) {
+ var fileList = [
+ {
+ filename: 'avr_dfu.uc3'
+ ,pattern: /^.*\.24\.[0-9]*$/
+ }
+ ,{
+ filename: 'E51_DFU.SM5'
+ ,pattern: /^.*\.53\.[0-9]*$/
+ }
+ ];
+
+ // 閬嶅巻骞惰幏鍙杅ilename
+ var filename = undefined;
+ for(var i=0; i<fileList.length; i++) {
+ var _fileList = fileList[i];
+ if(_fileList.pattern.test(version)) {
+ filename = _fileList.filename;
+ }
+ }
+
+ return filename;
+ }
+
+ //console.log(checkNewestVer('42', 'D:8,V2.53.44'));
+ // 楠岃瘉鐗堟湰
+ function checkNewestVer(ver ,version) {
+ var pattern = '^.*\\.[0-9]*\\.([0-9]*)$';
+ var reg = new RegExp(pattern);
+ reg.test(version);
+ // 鍒ゆ柇褰撳墠鐗堟湰鏄惁涓烘渶鏂扮増鏈�
+ var isNewest = false;
+ if(ver == RegExp.$1) {
+ isNewest = true;
+ }
+ return isNewest;
+ }
+
+ //checkSysType('12', 'D:8,V12.53.44');
+ // 楠岃瘉褰撳墠鐗堟湰2v/12v
+ function checkSysType(sys ,version) {
+ var pattern = '^.*V([0-9]*)\\.[0-9]*\\.[0-9]*$';
+ var reg = new RegExp(pattern);
+ reg.test(version);
+ //console.log(RegExp.$1);
+ var rs = false;
+ if(sys == RegExp.$1) {
+ rs = true;
+ }
+ // console.log(rs);
+ return rs;
+ }
});
</script>
</body>
--
Gitblit v1.9.1