reportForm.jsp 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056
  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. credits: {
  260. enabled:false
  261. },//去掉地址
  262. xAxis: {
  263. type: 'datetime',
  264. dateTimeLabelFormats: {
  265. millisecond: '%H:%M:%S.%L',
  266. second: '%H:%M:%S',
  267. minute: '%H:%M',
  268. hour: '%H:%M',
  269. day: '%m-%d',
  270. week: '%m-%d',
  271. month: '%Y-%m',
  272. year: '%Y'
  273. }
  274. },
  275. tooltip: {
  276. dateTimeLabelFormats: {
  277. millisecond: '%H:%M:%S.%L',
  278. second: '%H:%M:%S',
  279. minute: '%H:%M',
  280. hour: '%H:%M',
  281. day: '%Y-%m-%d',
  282. week: '%m-%d',
  283. month: '%Y-%m',
  284. year: '%Y'
  285. }
  286. },
  287. yAxis: {
  288. title: {
  289. text: '汇率'
  290. }
  291. },
  292. legend: {
  293. enabled: false
  294. },
  295. plotOptions: {
  296. area: {
  297. fillColor: {
  298. linearGradient: {
  299. x1: 0,
  300. y1: 0,
  301. x2: 0,
  302. y2: 1
  303. },
  304. stops: [
  305. [0, new Highcharts.getOptions().colors[0]],
  306. [1, new Highcharts.Color(Highcharts.getOptions().colors[0]).setOpacity(0).get('rgba')]
  307. ]
  308. },
  309. marker: {
  310. radius: 2
  311. },
  312. lineWidth: 1,
  313. states: {
  314. hover: {
  315. lineWidth: 1
  316. }
  317. },
  318. threshold: null
  319. }
  320. },
  321. series: [{
  322. type: 'area',
  323. name: '美元兑欧元',
  324. data: data3
  325. }]
  326. });
  327. });
  328. }
  329. function chart1(xList,yList_1,yList_2,yList_3,yList_4){
  330. var chart = Highcharts.chart('container1', {
  331. title: {
  332. text: 'CNG/LNG注册趋势图'
  333. },
  334. subtitle: {
  335. text: ''
  336. },
  337. xAxis: {
  338. //categories:[43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
  339. categories:xList
  340. },
  341. credits: {
  342. enabled:false
  343. },//去掉地址
  344. yAxis: {
  345. title: {
  346. text: '注册数量'
  347. }
  348. },
  349. legend: {
  350. layout: 'vertical',
  351. align: 'right',
  352. verticalAlign: 'middle'
  353. },
  354. plotOptions: {
  355. series: {
  356. connectNulls: true // by default
  357. },
  358. line: {
  359. dataLabels: {
  360. enabled: true
  361. },
  362. enableMouseTracking: true
  363. }
  364. },
  365. series: [
  366. {
  367. name: 'CNG车辆',
  368. //data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
  369. data: yList_1
  370. }
  371. ,
  372. {
  373. name: 'CNG气瓶',
  374. data: yList_2
  375. }
  376. ,
  377. {
  378. name: 'LNG车辆',
  379. data: yList_3
  380. }
  381. ,
  382. {
  383. name: 'LNG气瓶',
  384. data: yList_4
  385. }
  386. ],
  387. responsive: {
  388. rules: [{
  389. condition: {
  390. maxWidth: 500
  391. },
  392. chartOptions: {
  393. legend: {
  394. layout: 'horizontal',
  395. align: 'center',
  396. verticalAlign: 'bottom'
  397. }
  398. }
  399. }]
  400. }
  401. });
  402. chart.exportChart({
  403. type: 'image/png',
  404. filename: '1'
  405. });
  406. }
  407. function chart2(xList,yList_5,yList_6,yList_7,yList_8){
  408. var chart = Highcharts.chart('container2', {
  409. title: {
  410. text: 'CNG/LNG在用车辆气瓶趋势图'
  411. },
  412. subtitle: {
  413. text: '数据来源:thesolarfoundation.com'
  414. },
  415. credits: {
  416. enabled:false
  417. },//去掉地址
  418. xAxis: {
  419. categories:xList
  420. },
  421. yAxis: {
  422. title: {
  423. text: '在用数量'
  424. }
  425. },
  426. legend: {
  427. layout: 'vertical',
  428. align: 'right',
  429. verticalAlign: 'middle'
  430. },
  431. plotOptions: {
  432. series: {
  433. connectNulls: true // by default
  434. },
  435. line: {
  436. dataLabels: {
  437. enabled: true
  438. },
  439. enableMouseTracking: true
  440. }
  441. },
  442. series: [
  443. {
  444. name: '在用CNG车辆',
  445. //data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
  446. data: yList_5
  447. }
  448. ,
  449. {
  450. name: '在用CNG气瓶',
  451. //data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
  452. data: yList_7
  453. }
  454. ,
  455. {
  456. name: '在用LNG车辆',
  457. //data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
  458. data: yList_6
  459. }
  460. ,
  461. {
  462. name: '在用LNG气瓶',
  463. //data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
  464. data: yList_8
  465. }
  466. ],
  467. responsive: {
  468. rules: [{
  469. condition: {
  470. maxWidth: 500
  471. },
  472. chartOptions: {
  473. legend: {
  474. layout: 'horizontal',
  475. align: 'center',
  476. verticalAlign: 'bottom'
  477. }
  478. }
  479. }]
  480. }
  481. });
  482. chart.exportChart({
  483. type: 'image/png',
  484. filename: '2'
  485. });
  486. }
  487. var startDate;
  488. var endDate;
  489. var registerCngCar;
  490. var registerCngCylinder;
  491. var registerLngCar;
  492. var registerLngCylinder;
  493. var inUseCngCar;
  494. var inUseCngCylinder;
  495. var inUseLngCar;
  496. var inUseLngCylinder;
  497. var checkedCylinderPercent;
  498. var inUseCylinderPercent;
  499. var registerRefitPlant;
  500. var registerInspectionStation;
  501. var registerGasStation;
  502. function getReportFormData(){
  503. showProgress('提示','请等待','加载中……');
  504. $.ajax({
  505. type : "POST",
  506. contentType : "application/x-www-form-urlencoded; charset=UTF-8",
  507. data : {
  508. "startDate":startDate,
  509. "endDate":endDate
  510. },
  511. url : "wx/getReportFormData",
  512. success : function(data) {
  513. $.messager.progress('close');
  514. currentPage=1;
  515. var vData = $.parseJSON(data);
  516. var formatStartDate = startDate.substring(0, 4)+"年"+startDate.substring(5, 7)+"月"+startDate.substring(8, 10)+"日";
  517. var formatEndDate = endDate.substring(0, 4)+"年"+endDate.substring(5, 7)+"月"+endDate.substring(8, 10)+"日";
  518. document.getElementById("registerEndTime").innerText = formatEndDate;
  519. document.getElementById("registerEndTime1").innerText = formatEndDate;
  520. registerCngCar = vData.cngCarCount;
  521. registerCngCylinder = vData.cngCylinderCount;
  522. registerLngCar = vData.lngCarCount;
  523. registerLngCylinder = vData.lngCylinderCount;
  524. document.getElementById("registerCngCar").innerText = vData.cngCarCount;
  525. document.getElementById("registerCngCylinder").innerText = vData.cngCylinderCount;
  526. document.getElementById("registerLngCar").innerText = vData.lngCarCount;
  527. document.getElementById("registerLngCylinder").innerText = vData.lngCylinderCount;
  528. document.getElementById("registerCngCar1").innerText = vData.cngCarCount;
  529. document.getElementById("registerCngCylinder1").innerText = vData.cngCylinderCount;
  530. document.getElementById("registerLngCar1").innerText = vData.lngCarCount;
  531. document.getElementById("registerLngCylinder1").innerText = vData.lngCylinderCount;
  532. document.getElementById("inUseEndTime").innerText = formatEndDate;
  533. document.getElementById("inUseEndTime1").innerText = formatEndDate;
  534. inUseCngCar = vData.cngCarInuseCount;
  535. inUseCngCylinder = vData.cngCylinderInuseCount;
  536. inUseLngCar = vData.lngCarInuseCount;
  537. inUseLngCylinder = vData.lngCylinderInuseCount;
  538. document.getElementById("inUseCngCar").innerText = vData.cngCarInuseCount;
  539. document.getElementById("inUseCngCylinder").innerText = vData.cngCylinderInuseCount;
  540. document.getElementById("inUseLngCar").innerText = vData.lngCarInuseCount;
  541. document.getElementById("inUseLngCylinder").innerText = vData.lngCylinderInuseCount;
  542. document.getElementById("inUseCngCar1").innerText = vData.cngCarInuseCount;
  543. document.getElementById("inUseCngCylinder1").innerText = vData.cngCylinderInuseCount;
  544. document.getElementById("inUseLngCar1").innerText = vData.lngCarInuseCount;
  545. document.getElementById("inUseLngCylinder1").innerText = vData.lngCylinderInuseCount;
  546. //document.getElementById("inUseStartTime").innerText = formatStartDate;
  547. //document.getElementById("inUseEndTime2").innerText = formatEndDate;
  548. registerRefitPlant = vData.registerRefitPlantCount;
  549. registerInspectionStation = vData.registerInspectionStationCount;
  550. registerGasStation= vData.registerGasStationCount;
  551. document.getElementById("registerRefitPlant").innerText = vData.registerRefitPlantCount;
  552. document.getElementById("registerInspectionStation").innerText = vData.registerInspectionStationCount;
  553. document.getElementById("registerGasStation").innerText = vData.registerGasStationCount;
  554. var totalRegisterCylinderNum = vData.cngCylinderCount+vData.lngCylinderCount;
  555. var totalInUseCylinderNum = vData.cngCylinderInuseCount+vData.lngCylinderInuseCount;
  556. var checkedCylinderPercent1 = vData.checkedCylinderCount/totalRegisterCylinderNum;
  557. var inUseCylinderPercent1 = 1-vData.notCheckCylinderCount/totalInUseCylinderNum;
  558. checkedCylinderPercent = toDecimal(checkedCylinderPercent1*100)+'%';
  559. inUseCylinderPercent = toDecimal(inUseCylinderPercent1*100)+'%';
  560. document.getElementById("checkedCylinderPercent").innerText = toDecimal(checkedCylinderPercent1*100)+'%';
  561. document.getElementById("inUseCylinderPercent").innerText = toDecimal(inUseCylinderPercent1*100)+'%';
  562. totalPage = Math.ceil(vData.gasStationNetworkInfoList.length/currentSize);
  563. document.getElementById("totalDay2").innerText =180;
  564. document.getElementById("totalDay1").innerText = DateDiff(startDate,endDate);
  565. //gasStationNetwork
  566. //if(vData.gasStationNetworkInfoList.length>0){
  567. // gasStationNetworkList = vData.gasStationNetworkInfoList;
  568. // var gasStationNetwork='';
  569. // gasStationNetwork += '<table width="100%" border="1" cellpadding="20" cellspacing="0" style="text-align: center;padding:2px;">';
  570. // gasStationNetwork += '<tr><td colspan="3">各站网络连接情况表</td></tr>';
  571. // 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>';
  572. // $.each(vData.gasStationNetworkInfoList, function(i,item){
  573. //
  574. // if(i==0){
  575. // document.getElementById("totalDay").innerText = item.connectDay+item.offlineDay;
  576. // document.getElementById("totalDay1").innerText = item.connectDay+item.offlineDay;
  577. // document.getElementById("totalDay2").innerText = item.connectDay+item.offlineDay;
  578. // }
  579. // if(i<currentSize){
  580. // 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>';
  581. // }else{
  582. // return true;
  583. // }
  584. // });
  585. // 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>';
  586. // gasStationNetwork += '</table>';
  587. // document.getElementById("gasStationNetwork").innerHTML = gasStationNetwork;
  588. //}
  589. chart1(vData.xList,vData.yList_1,vData.yList_2,vData.yList_3,vData.yList_4);
  590. //chart2(vData.dayAddBeanList);
  591. setTimeout('openExamineDialog1()', 200);
  592. window.setTimeout(function () {
  593. //chart2(vData.xList,vData.yList_5,vData.yList_6,vData.yList_7,vData.yList_8);
  594. document.getElementById("downloadpdfdiv1").style.display="";
  595. }, 1000);
  596. },
  597. error:function(e){
  598. $.messager.progress('close');
  599. console.log(e);
  600. },
  601. });
  602. }
  603. function DateDiff(sDate1, sDate2) {
  604. var aDate, oDate1, oDate2, iDays ;
  605. aDate = sDate1.split("-");
  606. // 转换为 12-18-2002 格式
  607. oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);
  608. aDate = sDate2.split("-"); oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);
  609. // 把相差的毫秒数转换为天数
  610. iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 /24);
  611. return iDays;
  612. }
  613. var currentPage=1;
  614. var currentSize=5;
  615. var totalPage=1;
  616. var gasStationNetworkList;
  617. function jumpPage(add){
  618. currentPage+=add;
  619. if(gasStationNetworkList.length>0){
  620. if(currentPage>totalPage){
  621. $.messager.alert('提示','已经到最后一页了 !');
  622. return;
  623. }else if(currentPage<1){
  624. $.messager.alert('提示','已经到首页了 !');
  625. return;
  626. }
  627. document.getElementById("gasStationNetwork").innerHTML = "";
  628. var gasStationNetwork='';
  629. gasStationNetwork += '<table width="100%" border="1" cellpadding="20" cellspacing="0" style="text-align: center;padding:2px;">';
  630. gasStationNetwork += '<tr><td colspan="3">各站网络连接情况表</td></tr>';
  631. 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>';
  632. $.each(gasStationNetworkList, function(i,item){
  633. if(i==0){
  634. document.getElementById("totalDay").innerText = item.connectDay+item.offlineDay;
  635. document.getElementById("totalDay1").innerText = item.connectDay+item.offlineDay;
  636. }
  637. if(i<(currentPage*currentSize)&&i>=((currentPage-1)*currentSize)){
  638. 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>';
  639. }else if(i>=(currentPage*currentSize)){
  640. return true;
  641. }
  642. });
  643. if(totalPage>1){
  644. if(currentPage>=totalPage){
  645. 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>';
  646. }else if(currentPage<=1){
  647. 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>';
  648. }else{
  649. 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>';
  650. }
  651. }
  652. gasStationNetwork += '</table>';
  653. document.getElementById("gasStationNetwork").innerHTML = gasStationNetwork;
  654. }
  655. }
  656. function toDecimal(x) {
  657. var f = parseFloat(x);
  658. if (isNaN(f)) {
  659. return;
  660. }
  661. f = Math.floor(x*100)/100;
  662. return f;
  663. }
  664. function generatetPDF(){
  665. //var startDate = "2018-01-01";
  666. //var endDate = "2020-08-23";
  667. $.ajax({
  668. type : "POST",
  669. contentType : "application/x-www-form-urlencoded; charset=UTF-8",
  670. data : {
  671. "startDate":startDate,
  672. "endDate":endDate,
  673. "registerCngCar":registerCngCar,
  674. "registerCngCylinder":registerCngCylinder,
  675. "registerLngCar":registerLngCar,
  676. "registerLngCylinder":registerLngCylinder,
  677. "inUseCngCar":inUseCngCar,
  678. "inUseCngCylinder":inUseCngCylinder,
  679. "inUseLngCar":inUseLngCar,
  680. "inUseLngCylinder":inUseLngCylinder,
  681. "checkedCylinderPercent":checkedCylinderPercent,
  682. "inUseCylinderPercent":inUseCylinderPercent,
  683. "registerRefitPlant":registerRefitPlant,
  684. "registerInspectionStation":registerInspectionStation,
  685. "registerGasStation":registerGasStation
  686. },
  687. url : "wx/generatetPDF",
  688. success : function(data) {
  689. var vData = $.parseJSON(data);
  690. if(vData.status==1){
  691. showMsg('提示', 'pdf生成成功', 5000);
  692. document.getElementById("downloadpdfdiv").style.display="";
  693. }else if(vData.status==0){
  694. showMsg('提示', 'pdf生成失败', 5000);
  695. }else{
  696. showMsg('提示', '异常', 5000);
  697. }
  698. }
  699. });
  700. }
  701. </script>
  702. </head>
  703. <body>
  704. <div style="z-index: 9999;position: fixed !important; right: 10px;top:10px">
  705. <div id="downloadpdfdiv1" style="display: none; padding-top: 20px;">
  706. <a class="easyui-linkbutton" icon="icon-export" onclick="generatetPDF();">生成PDF</a>
  707. </div>
  708. <div id="downloadpdfdiv" style="display: none; padding-top: 20px;">
  709. <a class="easyui-linkbutton" target="_blank" icon="icon-export" href="./statistics/pdf/CNG_LNG_REPORT.pdf">下载PDF</a>
  710. </div>
  711. </div>
  712. <center>
  713. <table class="report_form_table" >
  714. <tr>
  715. <td class="title">
  716. 报表
  717. </td>
  718. </tr>
  719. <!-- 注册情况 -->
  720. <tr class="levelTr">
  721. <td class="title_1">
  722. 1、注册情况:
  723. </td>
  724. </tr>
  725. <tr>
  726. <td class="content">
  727. <span>
  728. <%=authRegionName %>
  729. </span>
  730. 截止(
  731. <span id="registerEndTime">
  732. </span>
  733. ),
  734. 注册登记CNG车辆
  735. <span id="registerCngCar">
  736. 2
  737. </span>
  738. 台,
  739. CNG气瓶
  740. <span id="registerCngCylinder">
  741. 1
  742. </span>
  743. 支;
  744. 注册登记LNG车辆
  745. <span id="registerLngCar">
  746. 4
  747. </span>
  748. 台,LNG气瓶
  749. <span id="registerLngCylinder">
  750. 3
  751. </span>
  752. 支.
  753. </td>
  754. </tr>
  755. <tr>
  756. <td>
  757. <table id="registerTable" width="100%" border="1" cellpadding="20" cellspacing="0">
  758. <tr>
  759. <td colspan="5">
  760. <%=authRegionName %>(<span id="registerEndTime1"></span>)
  761. </td>
  762. </tr>
  763. <tr>
  764. <td colspan="2">
  765. CNG
  766. </td>
  767. <td colspan="1">
  768. &nbsp;
  769. </td>
  770. <td colspan="2">
  771. LNG
  772. </td>
  773. </tr>
  774. <tr>
  775. <td colspan="1">
  776. 车辆(台)
  777. </td>
  778. <td colspan="1">
  779. 气瓶(支)
  780. </td>
  781. <td colspan="1">
  782. &nbsp;
  783. </td>
  784. <td colspan="1">
  785. 车辆(台)
  786. </td>
  787. <td colspan="1">
  788. 气瓶(支)
  789. </td>
  790. </tr>
  791. <tr>
  792. <td colspan="1">
  793. <span id="registerCngCar1"></span>
  794. </td>
  795. <td colspan="1">
  796. <span id="registerCngCylinder1"></span>
  797. </td>
  798. <td colspan="1">
  799. &nbsp;
  800. </td>
  801. <td colspan="1">
  802. <span id="registerLngCar1"></span>
  803. </td>
  804. <td colspan="1">
  805. <span id="registerLngCylinder1"></span>
  806. </td>
  807. </tr>
  808. </table>
  809. </td>
  810. </tr>
  811. <!-- 在用情况 -->
  812. <tr class="levelTr">
  813. <td class="title_1">
  814. 2、在用情况:
  815. </td>
  816. </tr>
  817. <tr>
  818. <td class="content">
  819. <span>
  820. <%=authRegionName %>
  821. </span>
  822. 截止(
  823. <span id="inUseEndTime">
  824. </span>
  825. ),
  826. 在<span id="totalDay1"></span>天内在用CNG车辆
  827. <span id="inUseCngCar">
  828. 6
  829. </span>
  830. 台,CNG气瓶
  831. <span id="inUseCngCylinder">
  832. 5
  833. </span>
  834. 支;
  835. 在用LNG车辆
  836. <span id="inUseLngCar">
  837. 8
  838. </span>
  839. 台,LNG气瓶
  840. <span id="inUseLngCylinder">
  841. 7
  842. </span>
  843. 支.
  844. </td>
  845. </tr>
  846. <tr>
  847. <td>
  848. <table id="inUseTable" width="100%" border="1" cellpadding="20" cellspacing="0">
  849. <tr>
  850. <td colspan="5">
  851. <%=authRegionName %>(<span id="inUseEndTime1"></span>)
  852. </td>
  853. </tr>
  854. <tr>
  855. <td colspan="2">
  856. CNG
  857. </td>
  858. <td colspan="1">
  859. &nbsp;
  860. </td>
  861. <td colspan="2">
  862. LNG
  863. </td>
  864. </tr>
  865. <tr>
  866. <td colspan="1">
  867. 车辆(台)
  868. </td>
  869. <td colspan="1">
  870. 气瓶(支)
  871. </td>
  872. <td colspan="1">
  873. &nbsp;
  874. </td>
  875. <td colspan="1">
  876. 车辆(台)
  877. </td>
  878. <td colspan="1">
  879. 气瓶(支)
  880. </td>
  881. </tr>
  882. <tr>
  883. <td colspan="1">
  884. <span id="inUseCngCar1"></span>
  885. </td>
  886. <td colspan="1">
  887. <span id="inUseCngCylinder1"></span>
  888. </td>
  889. <td colspan="1">
  890. &nbsp;
  891. </td>
  892. <td colspan="1">
  893. <span id="inUseLngCar1"></span>
  894. </td>
  895. <td colspan="1">
  896. <span id="inUseLngCylinder1"></span>
  897. </td>
  898. </tr>
  899. </table>
  900. </td>
  901. </tr>
  902. <!-- 系统使用情况 -->
  903. <tr class="levelTr">
  904. <td class="title_1">
  905. 3、系统使用情况:
  906. </td>
  907. </tr>
  908. <tr>
  909. <td>改装厂:系统注册<span id="registerRefitPlant">100</span>家。</td>
  910. </tr>
  911. <tr>
  912. <td>检验站:系统注册<span id="registerInspectionStation">101</span>家。</td>
  913. </tr>
  914. <tr>
  915. <td>充装站:系统注册<span id="registerGasStation">102</span>家.<!-- ,<span id="inUseStartTime"></span>到<span id="inUseEndTime2"></span>(共<span id="totalDay"></span>天)各站连接情况表。 --></td>
  916. </tr>
  917. <!-- <tr>
  918. <td id="gasStationNetwork">
  919. </td>
  920. </tr> -->
  921. <!-- 辖区内车用气瓶使用情况评估: -->
  922. <tr class="levelTr">
  923. <td class="title_1">
  924. 4、辖区内车用气瓶使用情况评估:
  925. </td>
  926. </tr>
  927. <tr class="levelTr_1">
  928. <td class="title_2">
  929. (1)、CNG/LNG注册趋势图
  930. </td>
  931. </tr>
  932. <tr>
  933. <td>
  934. <div id="container1" style="width: 100%; height: auto"></div>
  935. </td>
  936. <tr>
  937. <!-- <tr class="levelTr_1">
  938. <td class="title_2">
  939. (2)、在用趋势图
  940. </td>
  941. </tr>
  942. <tr>
  943. <td>
  944. <div id="container2" style="width: 100%; height: auto"></div>
  945. </td>
  946. <tr> -->
  947. <tr class="levelTr_1">
  948. <td class="title_2">
  949. (2)、检验情况:注册cng/lng瓶子 <span id="checkedCylinderPercent" style="font-size: 18px;font-weight: bold;"></span> 完成定期检验
  950. </td>
  951. </tr>
  952. <tr>
  953. <td class="title_2">
  954. <span style="visibility: hidden;">(3)、检验情况:</span>在用(<span id="totalDay2"></span>天)cng/lng瓶子 <span id="inUseCylinderPercent" style="font-size: 18px;font-weight: bold;"></span> 完成定期检验
  955. </td>
  956. </tr>
  957. </table>
  958. </center>
  959. <div id="timeDiv" class="easyui-dialog"
  960. style="width: 400px; height: 205px; padding: 10px 20px;"
  961. shadow="false" closed="true" modal="true" closable="false" buttons="#timeDiv_buttons">
  962. <form id="timeselectform" method="post">
  963. <div class="fitem">
  964. <label>开始时间:</label>
  965. <input name="timestart" id="timestart" class="easyui-datebox" style="width:200px;height:34px;padding:10px;" data-options="required:true,editable:false"/>
  966. </div>
  967. <div class="fitem">
  968. <label>截至时间:</label>
  969. <input name="timeend" id="timeend" class="easyui-datebox" style="width:200px;height:34px;padding:10px;" data-options="required:true,editable:false"/>
  970. </div>
  971. </form>
  972. <div id="timeDiv_buttons">
  973. <a href="javascript:void(0)" class="easyui-linkbutton" onclick="timeSelect();" iconcls="icon-save">确认</a>
  974. </div>
  975. </div>
  976. </body>
  977. </html>