From 535709f818914fcadade908675968425698ba6de Mon Sep 17 00:00:00 2001
From: hdw <hdw@192.168.7.127>
Date: 星期二, 08 一月 2019 14:25:27 +0800
Subject: [PATCH] 电池参数批量设置 修改

---
 gx_tieta/WebRoot/bat-set-test.jsp |  337 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 319 insertions(+), 18 deletions(-)

diff --git a/gx_tieta/WebRoot/bat-set-test.jsp b/gx_tieta/WebRoot/bat-set-test.jsp
index 9768896..526ae3c 100644
--- a/gx_tieta/WebRoot/bat-set-test.jsp
+++ b/gx_tieta/WebRoot/bat-set-test.jsp
@@ -68,7 +68,6 @@
                              <td>鍖�/鍘�</td>						<!-- 甯� -->
                             <td><s:text name="Computer_name"/></td>							<!-- 鏈烘埧鍚嶇О -->
                             <td>绯荤粺绫诲瀷</td>
-                           
                         </tr>
                         <tr>
                             <td>
@@ -163,7 +162,7 @@
 						</div>
 						<button class="layui-btn layui-btn-sm mrl8" id="batchAdd"><i class="fa fa-plus mrr8"></i>娣诲姞璁惧</button>
             			<button class="layui-btn layui-btn-sm" id="sysSet">鎵归噺璁剧疆鐢垫睜鍙傛暟</button>
-            			
+            			<button class="layui-btn layui-btn-sm" id="batchRead">鎵归噺璇诲彇鐢垫睜鍙傛暟</button>
             		</div>
             	</div>
             	<!-- 琛ㄦ牸鍐呭 -->
@@ -195,15 +194,6 @@
 				{{d.signalNum}}
 			{{# }else{ }}
 				锛燂紵锛�
-			{{# } }}
-		</script>
-        <script type="text/html" id="setStatus">
-			{{# if(d.setCurr == 1){ }}
-				<button class="layui-btn layui-btn-sm">璁剧疆鎴愬姛</button>
-			{{# }else if(d.setCurr == 2){ }}
-				<button class="layui-btn layui-btn-sm layui-btn-danger">璁剧疆澶辫触</button>
-			{{# }else { }}
-				<button class="layui-btn layui-btn-sm layui-btn-normal">鏈缃�</button>
 			{{# } }}
 		</script>
 		<!-- STD_CAP -->
@@ -286,7 +276,28 @@
 				<span style="color: #FF0000;">{{ d.OnlineVolLow }}</span>
 			{{# } }}
 		</script>
-		
+		<!-- 鎿嶄綔鏍� -->
+		<script type="text/html" id="doThings">
+			<button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="read">璇诲彇</button>
+		</script>
+		<!-- 璇诲彇鐘舵�� -->
+		<script type="text/html" id="readStatus">
+			{{# if(d.readStatus == 1){ }}
+				<button class="layui-btn layui-btn-sm layui-btn-normal">璇诲彇鎴愬姛</button>
+			{{# }else { }}
+				<button class="layui-btn layui-btn-sm layui-btn-danger">璇诲彇澶辫触</button>
+			{{# } }}
+		</script>
+		<!-- 璁剧疆鐘舵�� -->
+		<script type="text/html" id="setStatus">
+			{{# if(d.setStatus == 1){ }}
+				<button class="layui-btn layui-btn-sm layui-btn-normal">璁剧疆鎴愬姛</button>
+			{{# }else if(d.setStatus == 2) { }}
+				<button class="layui-btn layui-btn-sm layui-btn-danger">璁剧疆澶辫触</button>
+			{{# }else { }}
+				<button class="layui-btn layui-btn-sm layui-btn-disabled">鏈缃�</button>
+			{{# } }}
+		</script>
 	    <script type="text/javascript" src="js/jquery-1.8.3.js"></script>
 	    <script type="text/javascript" src="js/echarts.js"></script>
 	    <script type="text/javascript" src="jqueryui/jquery-ui.min.js"></script>
@@ -549,20 +560,21 @@
 						{type:'checkbox',fixed: 'left'}
 						,{field:'dev_id', title:'璁惧ID', align:'center', width: 160}
 						,{field:'StationName', title:'鏈烘埧鍚嶇О', align:'center', width: 470}
+						,{field:'readStatus', title:'璇诲彇鐘舵��', templet: '#readStatus', align:'center', width: 120}
+						,{field:'setStatus', title:'璁剧疆鐘舵��', templet: '#setStatus', align:'center', width: 120}	
 						,{field:'STD_CAP', title:'鐢垫睜鏍囩О瀹归噺锛圓H锛�<i class="fa fa-refresh" title="鍚屾鐢垫睜鏍囩О瀹归噺鍙傛暟"></i>', templet: '#STD_CAP', align:'center', width: 220}
 						,{field:'STD_RES', title:'鐢垫睜鏍囩О鍐呴樆锛坲惟锛�<i class="fa fa-refresh" title="鍚屾鐢垫睜鏍囩О鍐呴樆鍙傛暟"></i>', templet: '#STD_RES', align:'center', width: 220}
 						,{field:'BattGroupCount', title:'鐢垫睜缁勭粍鏁� <i class="fa fa-refresh" title="鍚屾鐢垫睜缁勭粍鏁板弬鏁�"></i>', templet: '#BattGroupCount', align:'center', width: 180}
 						,{field:'EachGroupBattCount', title:'姣忕粍鐢垫睜鍗曚綋鏁伴噺 <i class="fa fa-refresh" title="鍚屾姣忕粍鐢垫睜鍗曚綋鏁伴噺鍙傛暟"></i>', templet: '#EachGroupBattCount', align:'center', width: 220}
 						,{field:'MonomerVol', title:'鍗曚綋鏍囩О鐢靛帇锛圴锛� <i class="fa fa-refresh" title="鍚屾鍗曚綋鏍囩О鐢靛帇鍙傛暟"></i>', templet: '#MonomerVol', align:'center', width: 220}
 						,{field:'StationName9', title:'璁惧鐗堟湰鍙�', align:'center', width: 180}
-						,{field:'GroupVol', title:'鐢垫睜缁勭鏍囩О鐢靛帇锛圴锛� <i class="fa fa-refresh" title="鍚屾鐢垫睜缁勭鏍囩О鐢靛帇鍙傛暟"></i>', templet: '#GroupVol', align:'center', width: 220}
+						,{field:'GroupVol', title:'鐢垫睜缁勭鏍囩О鐢靛帇锛圴锛�', align:'center', width: 220}
 						,{field:'BattTemp', title:'鐢垫睜鏍囩О娓╁害锛堚剝锛� <i class="fa fa-refresh" title="鍚屾鐢垫睜鏍囩О娓╁害鍙傛暟"></i>', templet: '#BattTemp', align:'center', width: 220}
 						,{field:'FloatChargeVol', title:'鐢垫睜娴厖鐢靛帇闃�鍊硷紙V锛� <i class="fa fa-refresh" title="鍚屾鐢垫睜娴厖鐢靛帇闃�鍊煎弬鏁�"></i>', templet: '#FloatChargeVol', align:'center', width: 220}
 						,{field:'FloatChargeCurr', title:'鐢垫睜娴厖鐢垫祦闃�鍊硷紙A锛� <i class="fa fa-refresh" title="鍚屾鐢垫睜娴厖鐢垫祦闃�鍊煎弬鏁�"></i>', templet: '#FloatChargeCurr', align:'center', width: 220}
 						,{field:'OnlineVolLow', title:'鍦ㄧ嚎鐢靛帇浣庨榾鍊硷紙V锛� <i class="fa fa-refresh" title="鍚屾鍦ㄧ嚎鐢靛帇浣庨榾鍊煎弬鏁�"></i>', templet: '#OnlineVolLow', align:'center', width: 220}
 						,{field:'GroupConnType', title:'鐢垫睜缁勮繛鎺ョ被鍨�', templet: '#GroupConnType', align:'center', width: 220}
-						,{field:'doThings', fixed: 'right', title: '璁剧疆鐘舵��', toolbar: '#setStatus', align: 'center', width: 160} 
-
+						,{field:'doThings', fixed: 'right', title: '鎿嶄綔', toolbar: '#doThings', align: 'center', width: 120} 
 				    ]]
 					,data:[]
 					,limit: 10000
@@ -619,6 +631,250 @@
         			
         		}
         		
+        		// 琛ㄦ牸宸ュ叿鏍忔搷浣�
+        		table.on('tool(pageTbl)', function(obj){
+        			var event = obj.event;
+        			switch(event) {
+        				case 'read':		// 璇诲彇鍙傛暟
+        					readBattParams(obj);	
+        				break;
+        				case 'del': 		// 鍒犻櫎
+        					delItem(obj);
+        				break;
+        			}
+        		});
+        		
+        		// 鐢垫睜鍙傛暟鐨勫懡鍚�
+        		var battParam = GLOBAL.CMD.batt;
+        		// 璇诲彇鍗曡鏀剧數鍙傛暟
+        		function readBattParams(obj) {
+        			var data = getCheckedData([obj.data]);
+        			var keyIds= getKeyId([obj.data]);
+        			// 鏋勯�犳煡璇㈡潯浠�
+        			var tmp = {
+        				num: 0					// 榛樿涓�0
+        				,dev_id: data[0].dev_id	// 璁惧id
+        				,op_cmd: battParam.get	// 鐢垫睜鍙傛暟鑾峰彇鍛戒护
+        			};
+        			
+        			// 璇锋眰璇诲彇鍙傛暟
+        			ajaxReadBattParams([tmp], keyIds);
+        		}
+        		
+        		// 鐐瑰嚮鎵归噺璇诲彇鎸夐挳
+        		$('#batchRead').click(function() {
+        			var checkStatus = table.checkStatus('pageTbl'); //idTest 鍗充负鍩虹鍙傛暟 id 瀵瑰簲鐨勫��
+        			var cData = checkStatus.data;
+        			if(cData.length == 0) {
+        				layer.msg('璇烽�夋嫨瑕佽鍙栫殑鏈烘埧锛�');
+        				return;
+        			}
+        			
+        			// 璇锋眰鍚庡彴
+        			batchReadBattParams(cData);
+        		});
+        		
+        		//  鎵归噺璇诲彇鍙傛暟
+        		function batchReadBattParams(cData) {
+        			var data = getCheckedData(cData);
+        			var keyIds= getKeyId(cData);
+        			var tmps = [];
+        			// 閬嶅巻data鐨勫�硷紝鏋勯�犳煡璇㈡潯浠�
+        			for(var i=0; i<data.length; i++) {
+        				var _data = data[i];
+        				var tmp = {
+        					num: 0					// 榛樿涓�0
+        					,dev_id: _data.dev_id	// 璁惧id
+        					,op_cmd: battParam.get	// 鐢垫睜鍙傛暟鑾峰彇鍛戒护
+        				};
+        				tmps.push(tmp);
+        			}
+        			
+        			// 璇锋眰璇诲彇鍙傛暟
+        			ajaxReadBattParams(tmps, keyIds);
+        		}
+        		
+        		// 鍚戝悗鍙板彂閫佽姹傝鍙栧弬鏁�
+        		function ajaxReadBattParams(params, keys) {
+        			var loading = layer.load(1);
+        			// 璇锋眰鍚庡彴
+        			$.ajax({
+        				type: 'post'
+        				,async: true
+        				,url: 'Fbs9100_battparamAction_action_readPL'
+        				,data: 'json='+JSON.stringify(params)
+        				,dataType: 'json'
+        				,success: function(res) {
+        					var rs = JSON.parse(res.result);
+        					// 鍒ゆ柇鏄惁鏈夋暟鎹�
+        					if(rs.code == 1) {
+        						var data = rs.data;
+        						formaterReadDatas(data, keys);
+        					}else {
+        						layer.msg('璇诲彇澶辫触锛佽閲嶆柊璇锋眰');
+        					}
+        				}
+        				,error: function() {
+        					layer.msg('璇诲彇澶辫触锛岃妫�鏌ョ綉缁滄槸鍚︽甯革紒')
+        				}
+        				,complete: function() {
+        					layer.close(loading);
+        				}
+        			});
+        		}
+        		
+        		// 澶勭悊璇诲彇缁撴灉闆嗗苟杩斿洖鎸囧畾缁撴灉闆�
+        		function formaterReadDatas(data, keys) {
+        			var rs = [];
+        			// 閬嶅巻data鐨勫��
+        			for(var i=0; i<data.length; i++) {
+        				var _data = data[i];
+        				var _key_id = keys[i].key_id;		// 鑾峰彇鏍囪瘑浣�
+        				var _tmp = {};
+        				_tmp.key_id = _key_id;				// 娣诲姞鏍囪瘑浣�
+        				
+        				// 鑾峰彇瀵瑰簲鐨則r鐨勫��
+        				var layuiData = layuiTbl.getTr('key_id', _key_id);
+        				
+        				// 鍒ゆ柇鏄惁瀛樺湪瀵瑰簲鐨勮〃鏍兼暟鎹�
+        				if(layuiData.code == 1) {
+        					// 鍒ゆ柇鏄惁璇诲彇鎴愬姛
+	        				if(_data.num==1) {
+	        					var obj = _data.obj[0];
+	        					_tmp = contrastData(layuiData.data, _data.obj[0]);
+	        					_tmp.setStatus = 0;		// 璁剧疆鍙傛暟鐘舵�佸垵濮嬪寲
+	        				}else {
+	        					_tmp.num = 0;
+	        					_tmp.readStatus = 0;
+	        					_tmp.setStatus = 0;		// 璁剧疆鍙傛暟鐘舵�佸垵濮嬪寲
+	        				}
+	        				
+        				}else {
+        					console.log(layuiData.msg);		// 杈撳嚭璇诲彇澶辫触鍘熷洜
+        					_tmp.num = 0;					
+        					_tmp.readStatus = 0;			// 璇诲彇澶辫触
+        					_tmp.setStatus = 0;		// 璁剧疆鍙傛暟鐘舵�佸垵濮嬪寲
+        				}
+        				// 灏嗘暟鎹坊鍔犲埌缁撴灉闆嗕腑
+	        			rs.push(_tmp);
+        			}
+        			// 鏇存柊琛ㄦ牸
+        			layuiTbl.update('key_id', rs);
+        		}
+        		
+        		// 瀵规瘮琛ㄦ牸鏁版嵁鍜岃鍙栧埌鐨勬暟鎹�
+        		function contrastData(tData, rData) {
+        			var rs = {};
+        			// 閬嶅巻rData鐨勫��
+        			Object.keys(rData).forEach(function(key) {
+        				// 鍒ゆ柇鏄惁涓簄um
+        				var _data = rData[key];
+        				rs.key_id = tData.key_id;
+        				if(key != 'num') {
+        					rs[key] = _data;
+        					// 鑾峰彇鍏朵粬杈呭姪鍊�
+        					var bKey = key+'_b';
+        					var boolKey = key+'_bool';
+        					var bVal = tData[bKey];
+        					if(bVal != undefined && bVal != _data) {
+        						rs[boolKey] = false;
+        					}
+        				}
+        			});
+        			
+        			return rs;
+        		}
+        		
+        		// 鍒犻櫎琛ㄦ牸鐨勮
+        		function delItem(obj) {
+        			// 寮瑰嚭鏄惁鍒犻櫎闈㈡澘
+        			layer.confirm('鏄惁鍒犻櫎褰撳墠琛�', {icon: 2, title: '鍒犻櫎鎻愮ず'}, function(index) {
+        				layer.close(index);
+        				layuiTbl.delTr(table.cache.pageTbl, obj);		// 鍒犻櫎鎸囧畾鐨勮
+        			});
+        		}
+        		
+        		// 鎵归噺璁剧疆鐢垫睜鍙傛暟鐨勬寜閽�
+        		$('#sysSet').click(function() {
+        			var checkStatus = table.checkStatus('pageTbl'); //idTest 鍗充负鍩虹鍙傛暟 id 瀵瑰簲鐨勫��
+        			var cData = checkStatus.data;
+        			if(cData.length == 0) {
+        				layer.msg('璇烽�夋嫨瑕佹壒閲忚缃殑鏈烘埧锛�');
+        				return;
+        			}
+        			
+        			var data = getCheckedData(cData);		// 鏍煎紡鍖栬閫変腑琛屾暟鎹�
+        			var keyIds= getKeyId(cData);			// 鑾峰彇鏍囪瘑绗�
+        			var rsData = [];
+        			for(var i=0; i<data.length; i++) {
+        				var _data = data[i];
+        				_data.op_cmd = battParam.set;
+        				_data.num = 0;
+        				rsData.push(_data);
+        			}
+        			
+        			// 鎵归噺璁剧疆
+        			batchSetBattParams(rsData, keyIds);
+        		});
+        		
+        		// 鎵归噺璁剧疆鏀剧數鍙傛暟
+        		function batchSetBattParams(params, keys) {
+        			// 鍒ゆ柇data鐨勫�兼槸鍚︿负绌�
+        			if(params.length == 0) {
+        				layer.msg('璇烽�夋嫨瑕佹壒閲忚缃殑鏈烘埧锛�');
+        			}
+        			// 鍒ゆ柇鏄惁鎵归噺璁剧疆
+        			layer.confirm('鏄惁纭鎵归噺璁剧疆鐢垫睜鍙傛暟', {icon: 3, title: '鎵归噺璁剧疆鎻愰啋'}, function(index) {
+        				layer.close(index);
+        				var loading = layer.load(1);
+        				// 璇锋眰鍚庡彴
+        				$.ajax({
+        					type: 'post'
+        					,async: true
+        					,url: 'Fbs9100_battparamAction_action_updatePro'
+        					,data: 'json='+JSON.stringify(params)
+        					,dataType: 'json'
+        					,success: function(res) {
+        						var rs = JSON.parse(res.result);
+        						var rsData= [];
+        						if(rs.code == 1) {
+        							var data = rs.data;
+        							for(var i=0; i<data.length; i++) {
+        								var _data = data[i];
+        								var _key = keys[i];
+        								var _tmp = {
+        									key_id: _key.key_id
+        								};
+        								
+        								// 鍒ゆ柇鏄惁璁剧疆鎴愬姛
+        								if(_data.num == 1) {
+        									_tmp.setStatus = 1;		// 璁剧疆鎴愬姛
+        								}else {
+        									_tmp.setStatus = 2;		// 璁剧疆澶辫触
+        								}
+        								
+        								rsData.push(_tmp);
+        							}
+        						}else {
+        							for(var i=0; i<keys.length; i++) {
+        								var _key = keys[i];
+        								var _tmp = {
+        									key_id: _key.key_id
+        									,setStatus: 2
+        								};
+	        							rsData.push(_tmp);
+        							}
+        						}
+        						
+        						// 鏇存柊琛ㄦ牸
+        						layuiTbl.update('key_id', rsData);
+        					}
+        					,complete: function() {
+        						layer.close(loading);
+        					}
+        				});
+        			});
+        		}
         		
         		
         		// 鐐瑰嚮娣诲姞鐢垫睜缁�
@@ -647,7 +903,7 @@
         				,dataType: 'json'
         				,success: function(res) {
         					var rs = JSON.parse(res.result);
-        					console.log(rs);
+        					//console.log(rs);
         					var data = [];
         					if(rs.code == 1) {
         						data = rs.data;
@@ -656,9 +912,10 @@
         						layer.msg('娌℃湁鍙缃殑鐢垫睜缁�!');
         					}
         					tOptions.data = data;
-        					console.log(data);
+        					//console.log(data);
        						// 鐢熸垚琛ㄦ牸鏁版嵁
 							table.render(tOptions);
+							layuiTbl.setCache(table.cache.pageTbl);
         				}
         				,complete:function() {
         					layer.close(load);
@@ -707,7 +964,6 @@
 				
 				// 澶勭悊娣诲姞鏈烘埧淇℃伅鐨勭粨鏋�
 				function formatSearchData(data) {
-					console.log(data);
 					var rs = [];
 					// 閬嶅巻data鐨�
 					for(var i=0; i<data.length; i++) {
@@ -716,12 +972,14 @@
 						var obj = _data.obj[0];
 						var tmp = {};
 						tmp.num = _data.num;						// 鍒ゆ柇鏄惁璇诲彇鎴愬姛
+						tmp.readStatus = _data.num;
 						tmp.key_id = i;
 						tmp.dev_id = obj.dev_id;					// 璁惧ID
 						tmp.dev_ip = obj.dev_ip;					// 璁惧IP
 						tmp.StationName = obj.StationName;			// 鏈烘埧鍚嶇О
 						tmp.GroupConnType = 0;						// 鐢垫睜缁勮繛鎺ョ被鍨�
 						tmp.StationName9 = _data.StationName9;		// 璁惧鐗堟湰鍙�
+						
 						tmp.GroupVol = obj.GroupVol;				// 鐢垫睜缁勭鏍囩О鐢靛帇锛圴锛�
 						
 						tmp.STD_CAP = obj.STD_CAP;					// 鐢垫睜鏍囩О瀹归噺(AH)
@@ -770,6 +1028,49 @@
 				function isNumEqual(num1, num2) {
 					return num1==num2;
 				}
+				
+				// 鑾峰彇琚�変腑琛岀殑鏍囪瘑浣�
+				function getKeyId(data) {
+					var rs = [];
+					// 閬嶅巻data鐨勫��
+					for(var i=0; i<data.length; i++) {
+						var _data = data[i];
+						var tmp = {};
+						tmp.key_id = _data.key_id;
+						rs.push(tmp);
+					}
+					return rs;
+				}
+				
+				
+				// 鑾峰彇琚�変腑鐨勮鐨勬暟鎹苟澶勭悊杩斿洖鎸囧畾鐨勫璞℃暟缁�
+				function getCheckedData(data) {
+					var rs = [];
+					// 澶勭悊鏁版嵁
+					for(var i=0; i<data.length; i++) {
+						var _data = data[i];
+						var tmp = {};
+						tmp.num = _data.num;								// 鍒ゆ柇鏄惁璇诲彇鎴愬姛
+						tmp.dev_id = _data.dev_id;							// 璁惧ID
+						tmp.dev_ip = _data.dev_ip;							// 璁惧IP
+						tmp.StationName = _data.StationName;				// 鏈烘埧鍚嶇О
+						tmp.GroupConnType = 0;								// 鐢垫睜缁勮繛鎺ョ被鍨�
+						tmp.StationName9 = _data.StationName9;				// 璁惧鐗堟湰鍙�
+						tmp.GroupVol = _data.GroupVol;						// 鐢垫睜缁勭鏍囩О鐢靛帇锛圴锛�
+						tmp.STD_CAP = _data.STD_CAP;						// 鐢垫睜鏍囩О瀹归噺(AH)
+						tmp.STD_RES = _data.STD_RES;						// 鐢垫睜鏍囩О鍐呴樆(u惟)
+						tmp.BattGroupCount = _data.BattGroupCount;			// 鐢垫睜缁勭粍鏁�
+						tmp.EachGroupBattCount = _data.EachGroupBattCount;	// 姣忕粍鐢垫睜鍗曚綋鏁伴噺
+						tmp.MonomerVol = _data.MonomerVol;					// 鍗曚綋鏍囩О鐢靛帇锛圴锛�
+						tmp.BattTemp = _data.BattTemp;						// 鐢垫睜鏍囩О娓╁害锛堚剝锛�
+						tmp.FloatChargeVol = _data.FloatChargeVol;			// 鐢垫睜娴厖鐢靛帇闃�鍊硷紙V锛�
+						tmp.FloatChargeCurr = _data.FloatChargeCurr;		// 鐢垫睜娴厖鐢垫祦闃�鍊硷紙A锛�
+						tmp.OnlineVolLow = _data.OnlineVolLow;				// 鍦ㄧ嚎鐢靛帇浣庨榾鍊硷紙V锛�
+						// 灏嗘暟鎹斁鍒拌繑鍥炵殑缁撴灉闆嗕腑
+						rs.push(tmp);
+					}
+					return rs;
+				}
         	});
         </script>
     </body>

--
Gitblit v1.9.1