From 1c6c2939c18a0dc3968ea04e398f6fb0ef3396f4 Mon Sep 17 00:00:00 2001
From: hdw <496960745@qq.com>
Date: 星期四, 29 十一月 2018 11:41:04 +0800
Subject: [PATCH] 设备更新

---
 gx_tieta/WebRoot/batt-station-update1.jsp |  131 +++++++++++++++++++++++++++++--------------
 1 files changed, 87 insertions(+), 44 deletions(-)

diff --git a/gx_tieta/WebRoot/batt-station-update1.jsp b/gx_tieta/WebRoot/batt-station-update1.jsp
index db93004..22d818d 100644
--- a/gx_tieta/WebRoot/batt-station-update1.jsp
+++ b/gx_tieta/WebRoot/batt-station-update1.jsp
@@ -380,10 +380,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:'progress', title:'璇�/鍐欒繘搴�', align: 'center', templet:'#upProgress'}
 						,{field:'datapackage', title:'褰撳墠鏁版嵁鍖�', align:'center'}
 						,{fixed: 'right', title:'鎿嶄綔', align:'center', toolbar: '#barDemo', width:100}
 				    ]]
@@ -495,17 +496,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);
@@ -622,12 +625,16 @@
 				        		status: [],
 				        		datapackage: []
 				        	};
-				        	//console.log(rs);
+				        	console.log(rs);
 				        	if(rs.code == 1 && rs.data.length>0){
 				        		var tblData = tOptions.data;
 				        		for(var i=0; i<rs.data.length; i++) {
 				        			var _data = rs.data[i];
 				        			var num = -1;
+				        			// 璁$畻杩涘害
+				        			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];
@@ -696,7 +703,7 @@
 				}
 				
 				
-				//楠岃瘉璁惧鏄惁鍏佽璁惧杩涜杩滅▼鍗囩骇
+				// 楠岃瘉璁惧鏄惁鍏佽璁惧杩涜杩滅▼鍗囩骇
 				function checkStationState(temp, all){
 					$.ajax({ 	
 				        type: "post", 				
@@ -710,12 +717,12 @@
 				        	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);	// 鏃犳硶鏇存柊鐨勮澶囦俊鎭� 
+				        		$('#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 {
@@ -735,18 +742,24 @@
 									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);
 										// 鍏抽棴寮瑰嚭闈㈡澘
 										layer.close(index);
 										
@@ -771,34 +784,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 = [];
+					var rs = {
+						good: []
+						,bad: []
+					};
 					// 閬嶅巻all
 					for(var i=0; i<all.length; i++) {
 						var _all = all[i];
@@ -816,7 +807,9 @@
 						
 						// 鏍规嵁isError鍒よ鏄惁鏄笉鍙坊鍔犵殑鏈烘埧
 						if(isError) {
-							rs.push(_all);
+							rs.bad.push(_all);
+						}else {
+							rs.good.push(_all);
 						}
 					}
 					
@@ -868,6 +861,8 @@
 			        				tmp.fbsid = _data.dev_id;					// 璁惧id
 			        				tmp.fbsname = _data.fBSDeviceName;			// 璁惧鍚嶇О
 			        				tmp.updatestatusnum = 1;					// 0 绛夊緟鍗囩骇 1姝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;						// 褰撳墠鏁版嵁鍖�
@@ -878,11 +873,11 @@
 				        		
 				        		// 鏇存柊琛ㄦ牸
 				        		table.render(tOptions);
+				        		renderTblPorgess(allData);
 				        	}
 				        }
 				    });
 				}
-				
 				
 				// 娓叉煋杩涘害鏉�
 				function renderTblPorgess(tblData) {
@@ -895,6 +890,54 @@
 					}
 					
 				}
+				
+				// 鏇存柊杩涘害鏉�
+				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;
+				}
         	});
         </script>
     </body>

--
Gitblit v1.9.1