Copy of reportFormOld.jsp 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. String authRegionName = (String)request.getSession().getAttribute("authRegionName");
  6. %>
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  8. <html>
  9. <head>
  10. <base href="<%=basePath%>">
  11. <title>报表</title>
  12. <meta http-equiv="pragma" content="no-cache">
  13. <meta http-equiv="cache-control" content="no-cache">
  14. <meta http-equiv="expires" content="0">
  15. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  16. <meta http-equiv="description" content="This is my page">
  17. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  18. <meta http-equiv="X-UA-Compatible" content="IE=10"/>
  19. <link rel="stylesheet" type="text/css" href="css/easyui/themes/default/easyui.css">
  20. <link rel="stylesheet" type="text/css" href="css/easyui/themes/icon.css">
  21. <link rel="stylesheet" type="text/css" href="css/easyui/demo/demo.css">
  22. <script type="text/javascript" src="css/easyui/jquery.min.js"></script>
  23. <script type="text/javascript" src="css/easyui/jquery.easyui.min.js" charset="utf-8"></script>
  24. <script type="text/javascript" src="css/easyui/locale/easyui-lang-zh_CN.js" charset="utf-8"></script>
  25. <link rel="stylesheet" type="text/css" href="css/common/hzbstyle.css">
  26. <script type="text/javascript" src="js/common/area.js"></script>
  27. <script type="text/javascript" src="js/beforeDatagrid.js"></script>
  28. <script src="js/highcharts.js"></script>
  29. <script src="js/exporting.js"></script>
  30. <!--
  31. <script src="http://cdn.hcharts.cn/highcharts/highcharts.js"></script>
  32. -->
  33. <!-- 需要保存导出功能模块文件是在 highcharts.js 之后引入 -->
  34. <!--
  35. <script src="http://cdn.hcharts.cn/highcharts/modules/exporting.js"></script>
  36. -->
  37. <!-- 客户端导出功能模块为可选选项 -->
  38. <script src="http://cdn.hcharts.cn/highcharts/modules/offline-exporting.js"></script>
  39. <style type="text/css">
  40. body{
  41. ffont-family:"Microsoft Yahei";
  42. }
  43. .report_form_table{
  44. padding: 10px;
  45. width: 80%;
  46. }
  47. .report_form_table .levelTr{
  48. display: block;
  49. margin: 50px 0px 10px 0px;
  50. }
  51. .report_form_table .levelTr_1{
  52. display: block;
  53. margin: 30px 0px 10px 0px;
  54. }
  55. .report_form_table tr .title{
  56. text-align:center;
  57. font-size: 36px;
  58. font-weight: bold;
  59. }
  60. .report_form_table tr .title_1{
  61. font-size: 24px;
  62. font-weight: bold;
  63. }
  64. .report_form_table tr .title_2{
  65. font-size: 16px;
  66. font-weight: normal;
  67. }
  68. .report_form_table tr .content{
  69. font-size: 16px;
  70. font-weight: normal;
  71. }
  72. #registerTable{
  73. text-align: center;
  74. padding: 2px;
  75. }
  76. #inUseTable{
  77. text-align: center;
  78. padding: 2px;
  79. }
  80. #systemUseTable{
  81. text-align: left;
  82. padding: 2px;
  83. }
  84. .fitem{
  85. padding-top: 10px;
  86. }
  87. </style>
  88. <script type="text/javascript">
  89. $(document).ready(function(){
  90. openTimeSelect();
  91. getReportFormData();
  92. OnlyShowYearMonth();
  93. });
  94. function openTimeSelect(){
  95. $('#timestart').datebox('setValue', getPreYearDay(new Date().toISOString().substring(0, 10)));
  96. $('#timeend').datebox('setValue', getNowDay(new Date().toISOString().substring(0, 10)));
  97. $("#timeDiv").dialog("open").dialog('setTitle', '报表统计_统计时间范围选择');
  98. $("#timeDiv").panel("move",{top:$(document).scrollTop() + ($(window).height()-810) * 0.5});
  99. }
  100. function timeSelect(){
  101. if($("#timeselectform").form('validate')){
  102. $('#timeDiv').dialog('close');
  103. startDate = $("#timestart").datebox("getValue");
  104. endDate = $("#timeend").datebox("getValue");
  105. getReportFormData();
  106. OnlyShowYearMonth();
  107. }else{
  108. showMsg('提示', '有必填项未填写!', 5000);
  109. }
  110. }
  111. function getPreYearDay(date) {
  112. var arr = date.split('-');
  113. var year = arr[0]-1; //获取当前日期的年份
  114. var month = arr[1]; //获取当前日期的月份
  115. var day = arr[2]; //获取当前日期的日
  116. var days = new Date(year, month, 0);
  117. days = days.getDate(); //获取当前日期中月的天数
  118. var year2 = year;
  119. var month2 = parseInt(month) - 0;
  120. if (month2 == 0) {//如果是1月份,则取上一年的12月份
  121. year2 = parseInt(year2) - 1;
  122. month2 = 12;
  123. }
  124. var day2 = day;
  125. var days2 = new Date(year2, month2, 0);
  126. days2 = days2.getDate();
  127. if (day2 > days2) {//如果原来日期大于上一月的日期,则取当月的最大日期。比如3月的30日,在2月中没有30
  128. day2 = days2;
  129. }
  130. if (month2 < 10) {
  131. month2 = '0' + month2;//月份填补成2位。
  132. }
  133. var date11 = new Date();
  134. var hor = date11.getHours()>9?date11.getHours():"0"+date11.getHours();
  135. var min = date11.getMinutes()>9?date11.getMinutes():"0"+date11.getMinutes();
  136. var sec = date11.getSeconds()>9?date11.getSeconds():"0"+date11.getSeconds();
  137. var t2 = year2 + '-' + month2 + '-' + day2;
  138. return t2;
  139. }
  140. function getNowDay(date) {
  141. var arr = date.split('-');
  142. var year = arr[0]; //获取当前日期的年份
  143. var month = arr[1]; //获取当前日期的月份
  144. var day = arr[2]; //获取当前日期的日
  145. var days = new Date(year, month, 0);
  146. days = days.getDate(); //获取当前日期中月的天数
  147. var year2 = year;
  148. var month2 = parseInt(month) - 0;
  149. if (month2 == 0) {//如果是1月份,则取上一年的12月份
  150. year2 = parseInt(year2) - 1;
  151. month2 = 12;
  152. }
  153. var day2 = day;
  154. var days2 = new Date(year2, month2, 0);
  155. days2 = days2.getDate();
  156. if (day2 > days2) {//如果原来日期大于上一月的日期,则取当月的最大日期。比如3月的30日,在2月中没有30
  157. day2 = days2;
  158. }
  159. if (month2 < 10) {
  160. month2 = '0' + month2;//月份填补成2位。
  161. }
  162. var date11 = new Date();
  163. var hor = date11.getHours()>9?date11.getHours():"0"+date11.getHours();
  164. var min = date11.getMinutes()>9?date11.getMinutes():"0"+date11.getMinutes();
  165. var sec = date11.getSeconds()>9?date11.getSeconds():"0"+date11.getSeconds();
  166. var t2 = year2 + '-' + month2 + '-' + day2;
  167. return t2;
  168. }
  169. function showMsg(title,msg,out){
  170. $.messager.show({
  171. title: title,
  172. msg: msg,
  173. timeout:out
  174. });
  175. }
  176. function showProgress(title,msg,text){
  177. $.messager.progress({
  178. title: title,
  179. msg: msg,
  180. text: text,
  181. style:{
  182. }
  183. });
  184. }
  185. function OnlyShowYearMonth(){
  186. var currTime=new Date();
  187. var strDate=currTime.getFullYear()+"-"+1+"-01";
  188. $('#trendStartDate').datebox({
  189. formatter:function(date){
  190. var y = date.getFullYear();
  191. var m = date.getMonth() + 1;
  192. m = m < 10 ? '0' + m : m;
  193. return y.toString() + '-' + m.toString();
  194. },
  195. parser:function(date){
  196. console.log(date);
  197. if (date) {
  198. return new Date(String(date).substring(0, 4) + '-'
  199. + String(date).substring(5,7));
  200. } else {
  201. return new Date();
  202. }
  203. }
  204. }
  205. );
  206. $('#trendStartDate').datebox('setValue',strDate);//默认加载当前月份
  207. var endDate=currTime.getFullYear()+"-"+(currTime.getMonth()+1)+"-01";
  208. $('#trendEndDate').datebox({
  209. formatter:function(date){
  210. var y = date.getFullYear();
  211. var m = date.getMonth() + 1;
  212. m = m < 10 ? '0' + m : m;
  213. return y.toString() + '-' + m.toString();
  214. },
  215. parser:function(date){
  216. console.log(date);
  217. if (date) {
  218. return new Date(String(date).substring(0, 4) + '-'
  219. + String(date).substring(5,7));
  220. } else {
  221. return new Date();
  222. }
  223. }
  224. }
  225. );
  226. $('#trendEndDate').datebox('setValue',endDate);//默认加载当前月份
  227. }
  228. function objData(time,add){
  229. this.time=time;
  230. this.add=add;
  231. }
  232. function chart21(dayAddBeanList){
  233. var data1=[[1370131200000, 0.7695],[1370217600000, 0.7648],
  234. [1370304000000, 0.7645],
  235. [1370390400000, 0.7638],];
  236. var data2=[1370131200000, 0.7695];
  237. var data3=new Array();
  238. if(dayAddBeanList.length>0){
  239. for(var i=0;i<dayAddBeanList.length;i++){
  240. data3[i] = new Array();
  241. data3[i][0] = dayAddBeanList[i].time;
  242. data3[i][1] = dayAddBeanList[i].add;
  243. }
  244. }
  245. alert(data3);
  246. var chart = null;
  247. $.getJSON('https://data.jianshukeji.com/jsonp?filename=json/usdeur.json&callback=?', function (data) {
  248. chart = Highcharts.chart('container', {
  249. chart: {
  250. zoomType: 'x'
  251. },
  252. title: {
  253. text: '美元兑欧元汇率走势图'
  254. },
  255. subtitle: {
  256. text: document.ontouchstart === undefined ?
  257. '鼠标拖动可以进行缩放' : '手势操作进行缩放'
  258. },
  259. xAxis: {
  260. type: 'datetime',
  261. dateTimeLabelFormats: {
  262. millisecond: '%H:%M:%S.%L',
  263. second: '%H:%M:%S',
  264. minute: '%H:%M',
  265. hour: '%H:%M',
  266. day: '%m-%d',
  267. week: '%m-%d',
  268. month: '%Y-%m',
  269. year: '%Y'
  270. }
  271. },
  272. tooltip: {
  273. dateTimeLabelFormats: {
  274. millisecond: '%H:%M:%S.%L',
  275. second: '%H:%M:%S',
  276. minute: '%H:%M',
  277. hour: '%H:%M',
  278. day: '%Y-%m-%d',
  279. week: '%m-%d',
  280. month: '%Y-%m',
  281. year: '%Y'
  282. }
  283. },
  284. yAxis: {
  285. title: {
  286. text: '汇率'
  287. }
  288. },
  289. legend: {
  290. enabled: false
  291. },
  292. plotOptions: {
  293. area: {
  294. fillColor: {
  295. linearGradient: {
  296. x1: 0,
  297. y1: 0,
  298. x2: 0,
  299. y2: 1
  300. },
  301. stops: [
  302. [0, new Highcharts.getOptions().colors[0]],
  303. [1, new Highcharts.Color(Highcharts.getOptions().colors[0]).setOpacity(0).get('rgba')]
  304. ]
  305. },
  306. marker: {
  307. radius: 2
  308. },
  309. lineWidth: 1,
  310. states: {
  311. hover: {
  312. lineWidth: 1
  313. }
  314. },
  315. threshold: null
  316. }
  317. },
  318. series: [{
  319. type: 'area',
  320. name: '美元兑欧元',
  321. data: data3
  322. }]
  323. });
  324. });
  325. }
  326. function chart1(xList,yList_1,yList_2,yList_3,yList_4){
  327. var chart = Highcharts.chart('container1', {
  328. title: {
  329. text: 'CNG/LNG注册趋势图'
  330. },
  331. subtitle: {
  332. text: '数据来源:thesolarfoundation.com'
  333. },
  334. xAxis: {
  335. //categories:[43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
  336. categories:xList
  337. },
  338. yAxis: {
  339. title: {
  340. text: '注册数量'
  341. }
  342. },
  343. legend: {
  344. layout: 'vertical',
  345. align: 'right',
  346. verticalAlign: 'middle'
  347. },
  348. plotOptions: {
  349. series: {
  350. connectNulls: true // by default
  351. },
  352. line: {
  353. dataLabels: {
  354. enabled: true
  355. },
  356. enableMouseTracking: true
  357. }
  358. },
  359. series: [
  360. {
  361. name: 'CNG车辆',
  362. //data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
  363. data: yList_1
  364. }
  365. ,
  366. {
  367. name: 'CNG气瓶',
  368. data: yList_2
  369. }
  370. ,
  371. {
  372. name: 'LNG车辆',
  373. data: yList_3
  374. }
  375. ,
  376. {
  377. name: 'LNG气瓶',
  378. data: yList_4
  379. }
  380. ],
  381. responsive: {
  382. rules: [{
  383. condition: {
  384. maxWidth: 500
  385. },
  386. chartOptions: {
  387. legend: {
  388. layout: 'horizontal',
  389. align: 'center',
  390. verticalAlign: 'bottom'
  391. }
  392. }
  393. }]
  394. }
  395. });
  396. chart.exportChart({
  397. type: 'image/png',
  398. filename: '1'
  399. });
  400. }
  401. function chart2(xList,yList_5,yList_6,yList_7,yList_8){
  402. var chart = Highcharts.chart('container2', {
  403. title: {
  404. text: 'CNG/LNG在用车辆气瓶趋势图'
  405. },
  406. subtitle: {
  407. text: '数据来源:thesolarfoundation.com'
  408. },
  409. xAxis: {
  410. categories:xList
  411. },
  412. yAxis: {
  413. title: {
  414. text: '在用数量'
  415. }
  416. },
  417. legend: {
  418. layout: 'vertical',
  419. align: 'right',
  420. verticalAlign: 'middle'
  421. },
  422. plotOptions: {
  423. series: {
  424. connectNulls: true // by default
  425. },
  426. line: {
  427. dataLabels: {
  428. enabled: true
  429. },
  430. enableMouseTracking: true
  431. }
  432. },
  433. series: [
  434. {
  435. name: '在用CNG车辆',
  436. //data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
  437. data: yList_5
  438. }
  439. ,
  440. {
  441. name: '在用CNG气瓶',
  442. //data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
  443. data: yList_7
  444. }
  445. ,
  446. {
  447. name: '在用LNG车辆',
  448. //data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
  449. data: yList_6
  450. }
  451. ,
  452. {
  453. name: '在用LNG气瓶',
  454. //data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
  455. data: yList_8
  456. }
  457. ],
  458. responsive: {
  459. rules: [{
  460. condition: {
  461. maxWidth: 500
  462. },
  463. chartOptions: {
  464. legend: {
  465. layout: 'horizontal',
  466. align: 'center',
  467. verticalAlign: 'bottom'
  468. }
  469. }
  470. }]
  471. }
  472. });
  473. chart.exportChart({
  474. type: 'image/png',
  475. filename: '2'
  476. });
  477. }
  478. var startDate;
  479. var endDate;
  480. var registerCngCar;
  481. var registerCngCylinder;
  482. var registerLngCar;
  483. var registerLngCylinder;
  484. var inUseCngCar;
  485. var inUseCngCylinder;
  486. var inUseLngCar;
  487. var inUseLngCylinder;
  488. var checkedCylinderPercent;
  489. var inUseCylinderPercent;
  490. var registerRefitPlant;
  491. var registerInspectionStation;
  492. var registerGasStation;
  493. function getReportFormData(){
  494. showProgress('提示','请等待','加载中……');
  495. $.ajax({
  496. type : "POST",
  497. contentType : "application/x-www-form-urlencoded; charset=UTF-8",
  498. data : {
  499. "startDate":startDate,
  500. "endDate":endDate
  501. },
  502. url : "wx/getReportFormData",
  503. success : function(data) {
  504. $.messager.progress('close');
  505. currentPage=1;
  506. var vData = $.parseJSON(data);
  507. var formatStartDate = startDate.substring(0, 4)+"年"+startDate.substring(5, 7)+"月"+startDate.substring(8, 10)+"日";
  508. var formatEndDate = endDate.substring(0, 4)+"年"+endDate.substring(5, 7)+"月"+endDate.substring(8, 10)+"日";
  509. document.getElementById("registerEndTime").innerText = formatEndDate;
  510. document.getElementById("registerEndTime1").innerText = formatEndDate;
  511. registerCngCar = vData.cngCarCount;
  512. registerCngCylinder = vData.cngCylinderCount;
  513. registerLngCar = vData.lngCarCount;
  514. registerLngCylinder = vData.lngCylinderCount;
  515. document.getElementById("registerCngCar").innerText = vData.cngCarCount;
  516. document.getElementById("registerCngCylinder").innerText = vData.cngCylinderCount;
  517. document.getElementById("registerLngCar").innerText = vData.lngCarCount;
  518. document.getElementById("registerLngCylinder").innerText = vData.lngCylinderCount;
  519. document.getElementById("registerCngCar1").innerText = vData.cngCarCount;
  520. document.getElementById("registerCngCylinder1").innerText = vData.cngCylinderCount;
  521. document.getElementById("registerLngCar1").innerText = vData.lngCarCount;
  522. document.getElementById("registerLngCylinder1").innerText = vData.lngCylinderCount;
  523. document.getElementById("inUseEndTime").innerText = formatEndDate;
  524. document.getElementById("inUseEndTime1").innerText = formatEndDate;
  525. inUseCngCar = vData.cngCarInuseCount;
  526. inUseCngCylinder = vData.cngCylinderInuseCount;
  527. inUseLngCar = vData.lngCarInuseCount;
  528. inUseLngCylinder = vData.lngCylinderInuseCount;
  529. document.getElementById("inUseCngCar").innerText = vData.cngCarInuseCount;
  530. document.getElementById("inUseCngCylinder").innerText = vData.cngCylinderInuseCount;
  531. document.getElementById("inUseLngCar").innerText = vData.lngCarInuseCount;
  532. document.getElementById("inUseLngCylinder").innerText = vData.lngCylinderInuseCount;
  533. document.getElementById("inUseCngCar1").innerText = vData.cngCarInuseCount;
  534. document.getElementById("inUseCngCylinder1").innerText = vData.cngCylinderInuseCount;
  535. document.getElementById("inUseLngCar1").innerText = vData.lngCarInuseCount;
  536. document.getElementById("inUseLngCylinder1").innerText = vData.lngCylinderInuseCount;
  537. document.getElementById("inUseStartTime").innerText = formatStartDate;
  538. document.getElementById("inUseEndTime2").innerText = formatEndDate;
  539. registerRefitPlant = vData.registerRefitPlantCount;
  540. registerInspectionStation = vData.registerInspectionStationCount;
  541. registerGasStation= vData.registerGasStationCount;
  542. document.getElementById("registerRefitPlant").innerText = vData.registerRefitPlantCount;
  543. document.getElementById("registerInspectionStation").innerText = vData.registerInspectionStationCount;
  544. document.getElementById("registerGasStation").innerText = vData.registerGasStationCount;
  545. var totalRegisterCylinderNum = vData.cngCylinderCount+vData.lngCylinderCount;
  546. var totalInUseCylinderNum = vData.cngCylinderInuseCount+vData.lngCylinderInuseCount;
  547. var checkedCylinderPercent1 = vData.checkedCylinderCount/totalRegisterCylinderNum;
  548. var inUseCylinderPercent1 = 1-vData.notCheckCylinderCount/totalInUseCylinderNum;
  549. checkedCylinderPercent = toDecimal(checkedCylinderPercent1*100)+'%';
  550. inUseCylinderPercent = toDecimal(inUseCylinderPercent1*100)+'%';
  551. document.getElementById("checkedCylinderPercent").innerText = toDecimal(checkedCylinderPercent1*100)+'%';
  552. document.getElementById("inUseCylinderPercent").innerText = toDecimal(inUseCylinderPercent1*100)+'%';
  553. totalPage = Math.ceil(vData.gasStationNetworkInfoList.length/currentSize);
  554. //gasStationNetwork
  555. if(vData.gasStationNetworkInfoList.length>0){
  556. gasStationNetworkList = vData.gasStationNetworkInfoList;
  557. var gasStationNetwork='';
  558. gasStationNetwork += '<table width="100%" border="1" cellpadding="20" cellspacing="0" style="text-align: center;padding:2px;">';
  559. gasStationNetwork += '<tr><td colspan="3">各站网络连接情况表</td></tr>';
  560. gasStationNetwork += '<tr><td colspan="1" style="text-align: left;width:40%;">充装站</td><td colspan="1" style="width:30%;">正常连接(天)</td><td colspan="1" style="width:30%;">离线(天)</td></tr>';
  561. $.each(vData.gasStationNetworkInfoList, function(i,item){
  562. if(i==0){
  563. document.getElementById("totalDay").innerText = item.connectDay+item.offlineDay;
  564. document.getElementById("totalDay1").innerText = item.connectDay+item.offlineDay;
  565. document.getElementById("totalDay2").innerText = item.connectDay+item.offlineDay;
  566. }
  567. if(i<currentSize){
  568. gasStationNetwork += '<tr><td colspan="1" style="text-align: left;">'+item.stationName+'</td><td colspan="1">'+item.connectDay+'</td><td colspan="1">'+item.offlineDay+'</td></tr>';
  569. }else{
  570. return true;
  571. }
  572. });
  573. gasStationNetwork += '<tr><td colspan="1" style="text-align: left;"></td><td colspan="1">当前显示1/'+totalPage+'页</td><td colspan="1"><a href="javascript:void(0);" onclick="jumpPage(1)">下一页</a></td></tr>';
  574. gasStationNetwork += '</table>';
  575. document.getElementById("gasStationNetwork").innerHTML = gasStationNetwork;
  576. }
  577. chart1(vData.xList,vData.yList_1,vData.yList_2,vData.yList_3,vData.yList_4);
  578. //chart2(vData.dayAddBeanList);
  579. setTimeout('openExamineDialog1()', 200);
  580. window.setTimeout(function () {
  581. chart2(vData.xList,vData.yList_5,vData.yList_6,vData.yList_7,vData.yList_8);
  582. document.getElementById("downloadpdfdiv1").style.display="";
  583. }, 1000);
  584. },
  585. error:function(e){
  586. $.messager.progress('close');
  587. console.log(e);
  588. },
  589. });
  590. }
  591. var currentPage=1;
  592. var currentSize=5;
  593. var totalPage=1;
  594. var gasStationNetworkList;
  595. function jumpPage(add){
  596. currentPage+=add;
  597. if(gasStationNetworkList.length>0){
  598. if(currentPage>totalPage){
  599. $.messager.alert('提示','已经到最后一页了 !');
  600. return;
  601. }else if(currentPage<1){
  602. $.messager.alert('提示','已经到首页了 !');
  603. return;
  604. }
  605. document.getElementById("gasStationNetwork").innerHTML = "";
  606. var gasStationNetwork='';
  607. gasStationNetwork += '<table width="100%" border="1" cellpadding="20" cellspacing="0" style="text-align: center;padding:2px;">';
  608. gasStationNetwork += '<tr><td colspan="3">各站网络连接情况表</td></tr>';
  609. gasStationNetwork += '<tr><td colspan="1" style="text-align: left;width:40%;">充装站</td><td colspan="1" style="width:30%;">正常连接(天)</td><td colspan="1" style="width:30%;">离线(天)</td></tr>';
  610. $.each(gasStationNetworkList, function(i,item){
  611. if(i==0){
  612. document.getElementById("totalDay").innerText = item.connectDay+item.offlineDay;
  613. document.getElementById("totalDay1").innerText = item.connectDay+item.offlineDay;
  614. }
  615. if(i<(currentPage*currentSize)&&i>=((currentPage-1)*currentSize)){
  616. gasStationNetwork += '<tr><td colspan="1" style="text-align: left;">'+item.stationName+'</td><td colspan="1">'+item.connectDay+'</td><td colspan="1">'+item.offlineDay+'</td></tr>';
  617. }else if(i>=(currentPage*currentSize)){
  618. return true;
  619. }
  620. });
  621. if(totalPage>1){
  622. if(currentPage>=totalPage){
  623. gasStationNetwork += '<tr><td colspan="1" style="text-align: left;"><a href="javascript:void(0);" onclick="jumpPage(-1)">上一页</a></td><td colspan="1">当前显示'+currentPage+'/'+totalPage+'页</td><td colspan="1">已经到末页了!</td></tr>';
  624. }else if(currentPage<=1){
  625. gasStationNetwork += '<tr><td colspan="1" style="text-align: left;">已经到首页了!</td><td colspan="1">当前显示'+currentPage+'/'+totalPage+'页</td><td colspan="1"><a href="javascript:void(0);" onclick="jumpPage(1)">下一页</a></td></tr>';
  626. }else{
  627. gasStationNetwork += '<tr><td colspan="1" style="text-align: left;"><a href="javascript:void(0);" onclick="jumpPage(-1)">上一页</a></td><td colspan="1">当前显示'+currentPage+'/'+totalPage+'页</td><td colspan="1"><a href="javascript:void(0);" onclick="jumpPage(1)">下一页</a></td></tr>';
  628. }
  629. }
  630. gasStationNetwork += '</table>';
  631. document.getElementById("gasStationNetwork").innerHTML = gasStationNetwork;
  632. }
  633. }
  634. function toDecimal(x) {
  635. var f = parseFloat(x);
  636. if (isNaN(f)) {
  637. return;
  638. }
  639. f = Math.floor(x*100)/100;
  640. return f;
  641. }
  642. function generatetPDF(){
  643. //var startDate = "2018-01-01";
  644. //var endDate = "2020-08-23";
  645. $.ajax({
  646. type : "POST",
  647. contentType : "application/x-www-form-urlencoded; charset=UTF-8",
  648. data : {
  649. "startDate":startDate,
  650. "endDate":endDate,
  651. "registerCngCar":registerCngCar,
  652. "registerCngCylinder":registerCngCylinder,
  653. "registerLngCar":registerLngCar,
  654. "registerLngCylinder":registerLngCylinder,
  655. "inUseCngCar":inUseCngCar,
  656. "inUseCngCylinder":inUseCngCylinder,
  657. "inUseLngCar":inUseLngCar,
  658. "inUseLngCylinder":inUseLngCylinder,
  659. "checkedCylinderPercent":checkedCylinderPercent,
  660. "inUseCylinderPercent":inUseCylinderPercent,
  661. "registerRefitPlant":registerRefitPlant,
  662. "registerInspectionStation":registerInspectionStation,
  663. "registerGasStation":registerGasStation
  664. },
  665. url : "wx/generatetPDF",
  666. success : function(data) {
  667. var vData = $.parseJSON(data);
  668. if(vData.status==1){
  669. showMsg('提示', 'pdf生成成功', 5000);
  670. document.getElementById("downloadpdfdiv").style.display="";
  671. }else if(vData.status==0){
  672. showMsg('提示', 'pdf生成失败', 5000);
  673. }else{
  674. showMsg('提示', '异常', 5000);
  675. }
  676. }
  677. });
  678. }
  679. </script>
  680. </head>
  681. <body>
  682. <div style="z-index: 9999;position: fixed !important; right: 10px;top:10px">
  683. <div id="downloadpdfdiv1" style="display: none; padding-top: 20px;">
  684. <a class="easyui-linkbutton" icon="icon-export" onclick="generatetPDF();">生成PDF</a>
  685. </div>
  686. <div id="downloadpdfdiv" style="display: none; padding-top: 20px;">
  687. <a class="easyui-linkbutton" target="_blank" icon="icon-export" href="./statistics/pdf/CNG_LNG_REPORT.pdf">下载PDF</a>
  688. </div>
  689. </div>
  690. <center>
  691. <table class="report_form_table" >
  692. <tr>
  693. <td class="title">
  694. 报表
  695. </td>
  696. </tr>
  697. <!-- 注册情况 -->
  698. <tr class="levelTr">
  699. <td class="title_1">
  700. 1、注册情况:
  701. </td>
  702. </tr>
  703. <tr>
  704. <td class="content">
  705. <span>
  706. <%=authRegionName %>
  707. </span>
  708. 截止(
  709. <span id="registerEndTime">
  710. </span>
  711. ),
  712. 注册登记CNG车辆
  713. <span id="registerCngCar">
  714. 2
  715. </span>
  716. 台,
  717. CNG气瓶
  718. <span id="registerCngCylinder">
  719. 1
  720. </span>
  721. 支;
  722. 注册登记LNG车辆
  723. <span id="registerLngCar">
  724. 4
  725. </span>
  726. 台,LNG气瓶
  727. <span id="registerLngCylinder">
  728. 3
  729. </span>
  730. 支.
  731. </td>
  732. </tr>
  733. <tr>
  734. <td>
  735. <table id="registerTable" width="100%" border="1" cellpadding="20" cellspacing="0">
  736. <tr>
  737. <td colspan="5">
  738. <%=authRegionName %>(<span id="registerEndTime1"></span>)
  739. </td>
  740. </tr>
  741. <tr>
  742. <td colspan="2">
  743. CNG
  744. </td>
  745. <td colspan="1">
  746. &nbsp;
  747. </td>
  748. <td colspan="2">
  749. LNG
  750. </td>
  751. </tr>
  752. <tr>
  753. <td colspan="1">
  754. 车辆(台)
  755. </td>
  756. <td colspan="1">
  757. 气瓶(支)
  758. </td>
  759. <td colspan="1">
  760. &nbsp;
  761. </td>
  762. <td colspan="1">
  763. 车辆(台)
  764. </td>
  765. <td colspan="1">
  766. 气瓶(支)
  767. </td>
  768. </tr>
  769. <tr>
  770. <td colspan="1">
  771. <span id="registerCngCar1"></span>
  772. </td>
  773. <td colspan="1">
  774. <span id="registerCngCylinder1"></span>
  775. </td>
  776. <td colspan="1">
  777. &nbsp;
  778. </td>
  779. <td colspan="1">
  780. <span id="registerLngCar1"></span>
  781. </td>
  782. <td colspan="1">
  783. <span id="registerLngCylinder1"></span>
  784. </td>
  785. </tr>
  786. </table>
  787. </td>
  788. </tr>
  789. <!-- 在用情况 -->
  790. <tr class="levelTr">
  791. <td class="title_1">
  792. 2、在用情况:
  793. </td>
  794. </tr>
  795. <tr>
  796. <td class="content">
  797. <span>
  798. <%=authRegionName %>
  799. </span>
  800. 截止(
  801. <span id="inUseEndTime">
  802. </span>
  803. ),
  804. 在<span id="totalDay1"></span>天内在用CNG车辆
  805. <span id="inUseCngCar">
  806. 6
  807. </span>
  808. 台,CNG气瓶
  809. <span id="inUseCngCylinder">
  810. 5
  811. </span>
  812. 支;
  813. 在用LNG车辆
  814. <span id="inUseLngCar">
  815. 8
  816. </span>
  817. 台,LNG气瓶
  818. <span id="inUseLngCylinder">
  819. 7
  820. </span>
  821. 支.
  822. </td>
  823. </tr>
  824. <tr>
  825. <td>
  826. <table id="inUseTable" width="100%" border="1" cellpadding="20" cellspacing="0">
  827. <tr>
  828. <td colspan="5">
  829. <%=authRegionName %>(<span id="inUseEndTime1"></span>)
  830. </td>
  831. </tr>
  832. <tr>
  833. <td colspan="2">
  834. CNG
  835. </td>
  836. <td colspan="1">
  837. &nbsp;
  838. </td>
  839. <td colspan="2">
  840. LNG
  841. </td>
  842. </tr>
  843. <tr>
  844. <td colspan="1">
  845. 车辆(台)
  846. </td>
  847. <td colspan="1">
  848. 气瓶(支)
  849. </td>
  850. <td colspan="1">
  851. &nbsp;
  852. </td>
  853. <td colspan="1">
  854. 车辆(台)
  855. </td>
  856. <td colspan="1">
  857. 气瓶(支)
  858. </td>
  859. </tr>
  860. <tr>
  861. <td colspan="1">
  862. <span id="inUseCngCar1"></span>
  863. </td>
  864. <td colspan="1">
  865. <span id="inUseCngCylinder1"></span>
  866. </td>
  867. <td colspan="1">
  868. &nbsp;
  869. </td>
  870. <td colspan="1">
  871. <span id="inUseLngCar1"></span>
  872. </td>
  873. <td colspan="1">
  874. <span id="inUseLngCylinder1"></span>
  875. </td>
  876. </tr>
  877. </table>
  878. </td>
  879. </tr>
  880. <!-- 系统使用情况 -->
  881. <tr class="levelTr">
  882. <td class="title_1">
  883. 3、系统使用情况:
  884. </td>
  885. </tr>
  886. <tr>
  887. <td>改装厂:系统注册<span id="registerRefitPlant">100</span>家。</td>
  888. </tr>
  889. <tr>
  890. <td>检验站:系统注册<span id="registerInspectionStation">101</span>家。</td>
  891. </tr>
  892. <tr>
  893. <td>充装站:系统注册<span id="registerGasStation">102</span>家,<span id="inUseStartTime"></span>到<span id="inUseEndTime2"></span>(共<span id="totalDay"></span>天)各站连接情况表。</td>
  894. </tr>
  895. <tr>
  896. <td id="gasStationNetwork">
  897. <!--
  898. <table id="systemUseTable" width="100%" border="1" cellpadding="20" cellspacing="0">
  899. <tr>
  900. <td colspan="5">
  901. 各站连接情况表
  902. </td>
  903. </tr>
  904. <tr>
  905. <td>
  906. 充装站
  907. </td>
  908. <td>
  909. CNG(台)
  910. </td>
  911. <td>
  912. LNG(台)
  913. </td>
  914. <td>
  915. 正常连线(天)
  916. </td>
  917. <td>
  918. 离线(天)
  919. </td>
  920. </tr>
  921. <tr>
  922. <td>
  923. 充装站1
  924. </td>
  925. <td>
  926. 200
  927. </td>
  928. <td>
  929. 201
  930. </td>
  931. <td>
  932. 203
  933. </td>
  934. <td>
  935. 204
  936. </td>
  937. </tr>
  938. <tr>
  939. <td>
  940. 充装站2
  941. </td>
  942. <td>
  943. 205
  944. </td>
  945. <td>
  946. 206
  947. </td>
  948. <td>
  949. 207
  950. </td>
  951. <td>
  952. 208
  953. </td>
  954. </tr>
  955. </table>
  956. -->
  957. </td>
  958. </tr>
  959. <!-- 辖区内车用气瓶使用情况评估: -->
  960. <tr class="levelTr">
  961. <td class="title_1">
  962. 4、辖区内车用气瓶使用情况评估:
  963. </td>
  964. </tr>
  965. <tr class="levelTr_1">
  966. <td class="title_2">
  967. (1)、CNG/LNG注册趋势图
  968. </td>
  969. </tr>
  970. <tr>
  971. <td>
  972. <div id="container1" style="width: 100%; height: auto"></div>
  973. </td>
  974. <tr>
  975. <tr class="levelTr_1">
  976. <td class="title_2">
  977. (2)、在用趋势图
  978. </td>
  979. </tr>
  980. <tr>
  981. <td>
  982. <div id="container2" style="width: 100%; height: auto"></div>
  983. </td>
  984. <tr>
  985. <tr class="levelTr_1">
  986. <td class="title_2">
  987. (3)、检验情况:注册cng/lng瓶子 <span id="checkedCylinderPercent" style="font-size: 18px;font-weight: bold;"></span> 完成定期检验
  988. </td>
  989. </tr>
  990. <tr>
  991. <td class="title_2">
  992. <span style="visibility: hidden;">(3)、检验情况:</span>在用(<span id="totalDay2"></span>天)cng/lng瓶子 <span id="inUseCylinderPercent" style="font-size: 18px;font-weight: bold;"></span> 完成定期检验
  993. </td>
  994. </tr>
  995. </table>
  996. </center>
  997. <div id="timeDiv" class="easyui-dialog"
  998. style="width: 400px; height: 205px; padding: 10px 20px;"
  999. shadow="false" closed="true" modal="true" closable="false" buttons="#timeDiv_buttons">
  1000. <form id="timeselectform" method="post">
  1001. <div class="fitem">
  1002. <label>开始时间:</label>
  1003. <input name="timestart" id="timestart" class="easyui-datebox" style="width:200px;height:34px;padding:10px;" data-options="required:true,editable:false"/>
  1004. </div>
  1005. <div class="fitem">
  1006. <label>截至时间:</label>
  1007. <input name="timeend" id="timeend" class="easyui-datebox" style="width:200px;height:34px;padding:10px;" data-options="required:true,editable:false"/>
  1008. </div>
  1009. </form>
  1010. <div id="timeDiv_buttons">
  1011. <a href="javascript:void(0)" class="easyui-linkbutton" onclick="timeSelect();" iconcls="icon-save">确认</a>
  1012. </div>
  1013. </div>
  1014. </body>
  1015. </html>