useCert.jsp 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561
  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. %>
  6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  7. <html>
  8. <head>
  9. <title>useCert.html</title>
  10. <meta http-equiv="pragma" content="no-cache">
  11. <meta http-equiv="cache-control" content="no-cache">
  12. <meta http-equiv="expires" content="0">
  13. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  14. <meta http-equiv="description" content="This is my page">
  15. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  16. <meta http-equiv="X-UA-Compatible" content="IE=10"/>
  17. <link rel="stylesheet" type="text/css" href="css/easyui/themes/default/easyui.css">
  18. <link rel="stylesheet" type="text/css" href="css/easyui/themes/icon.css">
  19. <link rel="stylesheet" type="text/css" href="css/easyui/demo/demo.css">
  20. <script type="text/javascript" src="css/easyui/jquery.min.js"></script>
  21. <script type="text/javascript" src="css/easyui/jquery.easyui.min.js" charset="utf-8"></script>
  22. <script type="text/javascript" src="css/easyui/locale/easyui-lang-zh_CN.js" charset="utf-8"></script>
  23. <link rel="stylesheet" type="text/css" href="css/common/hzbstyle.css">
  24. <script type="text/javascript" src="js/tool.js"></script>
  25. <script type="text/javascript" src="js/beforeDatagrid.js"></script>
  26. <script type="text/javascript">
  27. function isNull(exp){
  28. if(!exp || typeof exp=="undefined" || exp.length==0){
  29. return true;
  30. }else{
  31. return false;
  32. }
  33. }
  34. function confirm(okStr,cancelStr,tip,content,unitNo){
  35. $.messager.defaults = { ok: okStr, cancel: cancelStr };
  36. $.messager.confirm(tip, content,function (data) {
  37. if (data) {
  38. }else {
  39. if(isNull(unitNo)){
  40. showMsg("提示", "未获取到此单位的编号,操作失败!", 5000);
  41. }else{
  42. $.ajax({
  43. type: 'POST',
  44. url: "updateUnitTip",
  45. data: {
  46. "unitNo":unitNo
  47. },
  48. dataType:'text',
  49. success: function (data) {
  50. var pData = $.parseJSON(data);
  51. switch (pData.result) {
  52. case 0:
  53. showMsg("提示","操作失败",5000);
  54. break;
  55. case 1:
  56. showMsg("提示","操作成功",2000);
  57. break;
  58. }
  59. }
  60. });
  61. }
  62. }
  63. });
  64. }
  65. function showMsg(title,msg,out){
  66. $.messager.show({
  67. title: title,
  68. msg: msg,
  69. timeout:out
  70. });
  71. }
  72. function showProgress(title,msg,text){
  73. $.messager.progress({
  74. title: title,
  75. msg: msg,
  76. text: text
  77. });
  78. }
  79. function checkedbox(name){
  80. var arr=new Array();
  81. var checkbox=document.getElementsByName(name);
  82. for(var i=0;i<checkbox.length;i++){
  83. if(checkbox[i].checked==true){
  84. arr.push(checkbox[i].value);
  85. }
  86. }
  87. return arr;
  88. }
  89. function getCheckTree(id){
  90. var nodes = $("#"+id).tree('getChecked', ['checked']);
  91. var arr=new Array();
  92. for(var i=0; i<nodes.length; i++){
  93. if(nodes[i].checked==true){
  94. if(nodes[i].id.length==1){
  95. arr.push("0"+nodes[i].id);
  96. }else if(nodes[i].id.length==2){
  97. arr.push(nodes[i].id+"0000");
  98. }else if(nodes[i].id.length==4){
  99. arr.push(nodes[i].id+"00");
  100. }else{
  101. arr.push(nodes[i].id);
  102. }
  103. }
  104. }
  105. return arr;
  106. }
  107. function getCheckTreeName(id){
  108. var nodes = $("#"+id).tree('getChecked', ['checked']);
  109. var arr=new Array();
  110. for(var i=0; i<nodes.length; i++){
  111. if(nodes[i].checked==true){
  112. arr.push(nodes[i].text);
  113. }
  114. }
  115. return arr;
  116. }
  117. function isCarNo(str) {//验证车牌号
  118. return /(^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领]{1}[A-Z0-9]{6}$)|(^[A-Z]{2}[A-Z0-9]{2}[A-Z0-9\u4E00-\u9FA5]{1}[A-Z0-9]{4}$)|(^[\u4E00-\u9FA5]{1}[A-Z0-9]{5}[挂学警军港澳]{1}$)|(^[A-Z]{2}[0-9]{5}$)|(^(08|38){1}[A-Z0-9]{4}[A-Z0-9挂学警军港澳]{1}$)/.test(str);
  119. //return /(^[\u4E00-\u9FA5]{1}[A-Z0-9]{6}$)|(^[A-Z]{2}[A-Z0-9]{2}[A-Z0-9\u4E00-\u9FA5]{1}[A-Z0-9]{4}$)|(^[\u4E00-\u9FA5]{1}[A-Z0-9]{5}[挂学警军港澳]{1}$)|(^[A-Z]{2}[0-9]{5}$)|(^(08|38){1}[A-Z0-9]{4}[A-Z0-9挂学警军港澳]{1}$)/.test(str);
  120. }
  121. function isCarNo1(str){
  122. return /(^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$)/.test(str);
  123. }
  124. /**
  125. * 获取上一个月
  126. *
  127. * @date 格式为yyyy-mm-dd的日期,如:2014-01-25
  128. */
  129. function getPreMonth(date) {
  130. var arr = date.split('-');
  131. var year = arr[0]; //获取当前日期的年份
  132. var month = arr[1]; //获取当前日期的月份
  133. var day = arr[2]; //获取当前日期的日
  134. var days = new Date(year, month, 0);
  135. days = days.getDate(); //获取当前日期中月的天数
  136. var year2 = year;
  137. var month2 = parseInt(month) - 1;
  138. if (month2 == 0) {//如果是1月份,则取上一年的12月份
  139. year2 = parseInt(year2) - 1;
  140. month2 = 12;
  141. }
  142. var day2 = day;
  143. var days2 = new Date(year2, month2, 0);
  144. days2 = days2.getDate();
  145. if (day2 > days2) {//如果原来日期大于上一月的日期,则取当月的最大日期。比如3月的30日,在2月中没有30
  146. day2 = days2;
  147. }
  148. if (month2 < 10) {
  149. month2 = '0' + month2;//月份填补成2位。
  150. }
  151. var date11 = new Date();
  152. var hor = date11.getHours()>9?date11.getHours():"0"+date11.getHours();
  153. var min = date11.getMinutes()>9?date11.getMinutes():"0"+date11.getMinutes();
  154. var sec = date11.getSeconds()>9?date11.getSeconds():"0"+date11.getSeconds();
  155. var t2 = year2 + '-' + month2 + '-' + day2+" "+hor+":"+min+":"+sec;
  156. return t2;
  157. }
  158. /**
  159. * 获取上一个月
  160. *
  161. * @date 格式为yyyy-mm-dd的日期,如:2014-01-25
  162. */
  163. function getPreMonth1(date) {
  164. var arr = date.split('-');
  165. var year = arr[0]; //获取当前日期的年份
  166. var month = arr[1]; //获取当前日期的月份
  167. var day = arr[2]; //获取当前日期的日
  168. var days = new Date(year, month, 0);
  169. days = days.getDate(); //获取当前日期中月的天数
  170. var year2 = year;
  171. var month2 = parseInt(month) - 1;
  172. if (month2 == 0) {//如果是1月份,则取上一年的12月份
  173. year2 = parseInt(year2) - 1;
  174. month2 = 12;
  175. }
  176. var day2 = day;
  177. var days2 = new Date(year2, month2, 0);
  178. days2 = days2.getDate();
  179. if (day2 > days2) {//如果原来日期大于上一月的日期,则取当月的最大日期。比如3月的30日,在2月中没有30
  180. day2 = days2;
  181. }
  182. if (month2 < 10) {
  183. month2 = '0' + month2;//月份填补成2位。
  184. }
  185. var hor = "00";
  186. var min = "00";
  187. var sec = "00";
  188. var t2 = year2 + '-' + month2 + '-' + day2+" "+hor+":"+min+":"+sec;
  189. return t2;
  190. }
  191. function getPreMonth2(date) {
  192. var arr = date.split('-');
  193. var year = arr[0]; //获取当前日期的年份
  194. var month = arr[1]; //获取当前日期的月份
  195. var day = arr[2]; //获取当前日期的日
  196. var days = new Date(year, month, 0);
  197. days = days.getDate(); //获取当前日期中月的天数
  198. var year2 = year;
  199. var month2 = parseInt(month) - 1;
  200. if (month2 == 0) {//如果是1月份,则取上一年的12月份
  201. year2 = parseInt(year2) - 1;
  202. month2 = 12;
  203. }
  204. var day2 = day;
  205. var days2 = new Date(year2, month2, 0);
  206. days2 = days2.getDate();
  207. if (day2 > days2) {//如果原来日期大于上一月的日期,则取当月的最大日期。比如3月的30日,在2月中没有30
  208. day2 = days2;
  209. }
  210. if (month2 < 10) {
  211. month2 = '0' + month2;//月份填补成2位。
  212. }
  213. var hor = "00";
  214. var min = "00";
  215. var sec = "00";
  216. day2 = "01";
  217. var t2 = year2 + '-' + month2 + '-' + day2+" "+hor+":"+min+":"+sec;
  218. return t2;
  219. }
  220. function getNowDay(date) {
  221. var arr = date.split('-');
  222. var year = arr[0]; //获取当前日期的年份
  223. var month = arr[1]; //获取当前日期的月份
  224. var day = arr[2]; //获取当前日期的日
  225. var days = new Date(year, month, 0);
  226. days = days.getDate(); //获取当前日期中月的天数
  227. var year2 = year;
  228. var month2 = parseInt(month) - 0;
  229. if (month2 == 0) {//如果是1月份,则取上一年的12月份
  230. year2 = parseInt(year2) - 1;
  231. month2 = 12;
  232. }
  233. var day2 = day;
  234. var days2 = new Date(year2, month2, 0);
  235. days2 = days2.getDate();
  236. if (day2 > days2) {//如果原来日期大于上一月的日期,则取当月的最大日期。比如3月的30日,在2月中没有30
  237. day2 = days2;
  238. }
  239. if (month2 < 10) {
  240. month2 = '0' + month2;//月份填补成2位。
  241. }
  242. var date11 = new Date();
  243. var hor = date11.getHours()>9?date11.getHours():"0"+date11.getHours();
  244. var min = date11.getMinutes()>9?date11.getMinutes():"0"+date11.getMinutes();
  245. var sec = date11.getSeconds()>9?date11.getSeconds():"0"+date11.getSeconds();
  246. var t2 = year2 + '-' + month2 + '-' + day2;
  247. return t2;
  248. }
  249. function getBeforeDate(number) {
  250. const num = number;
  251. const date = new Date();
  252. let year = date.getFullYear();
  253. let mon = date.getMonth() + 1;
  254. let day = date.getDate();
  255. if (day <= num) {
  256. if (mon > 1) {
  257. mon = mon - 1;
  258. } else {
  259. year = year - 1;
  260. mon = 12;
  261. }
  262. }
  263. date.setDate(date.getDate() - num);
  264. year = date.getFullYear();
  265. mon = date.getMonth() + 1;
  266. day = date.getDate();
  267. const s = year + '-' + (mon < 10 ? ('0' + mon) : mon) + '-' + (day < 10 ? ('0' + day) : day);
  268. return s;
  269. }
  270. function compareDate(date1,date2){
  271. var oDate1 = new Date(date1);
  272. var oDate2 = new Date(date2);
  273. if(oDate1.getTime() >= oDate2.getTime()){
  274. return true;
  275. } else {
  276. return false;
  277. }
  278. }
  279. function fnKeyUp(){
  280. this.value=this.value.toUpperCase();
  281. }
  282. function getDateAA(aa,dat){
  283. // var date1 = new Date(),
  284. // time1=date1.getFullYear()+"-"+(date1.getMonth()+1)+"-"+date1.getDate();//time1表示当前时间
  285. var date2 = new Date(dat);
  286. date2.setDate(date2.getDate()+aa);
  287. var time2 = date2.getFullYear()+"-"+(date2.getMonth()+1)+"-"+date2.getDate();
  288. return time2;
  289. }
  290. </script>
  291. <script type="text/javascript">
  292. $(document).ready(function(){
  293. var carGuid="<%=request.getParameter("carGuid") %>";
  294. var cylinderGuid="";
  295. var page = 1;
  296. var size = 100;
  297. getCarInfo(carGuid,page,size);
  298. getCylinder(carGuid,page,size);
  299. });
  300. function getCarInfo(carGuid,page,size){
  301. showProgress('提示','请等待','请求源数据中……');
  302. $.ajax({
  303. type: 'POST',
  304. url: "ajax/getCarInfo",
  305. data: {
  306. "carGuid":carGuid,
  307. "page":page,
  308. "size":size
  309. },
  310. dataType:'text',
  311. success: function (data) {
  312. $.messager.progress('close');
  313. var vData = $.parseJSON(data);
  314. if(vData.total==1){
  315. $.each(vData.rows, function(i,item){
  316. document.getElementById("no").innerHTML=item.regNo;
  317. document.getElementById("carNo").innerHTML=item.carNo;
  318. document.getElementById("useUnit").innerHTML=item.carOwnerName;
  319. document.getElementById("address").innerHTML=item.addr;
  320. document.getElementById("giveCertUnit").innerHTML=item.manaUnitName;
  321. document.getElementById("year").innerHTML=item.regTime1.substring(0,4);
  322. document.getElementById("month").innerHTML=item.regTime1.substring(5,7);
  323. document.getElementById("day").innerHTML=item.regTime1.substring(8,10);
  324. });
  325. }
  326. },
  327. error:function(e){
  328. $.messager.progress('close');
  329. console.log(e);
  330. }
  331. });
  332. }
  333. function getCylinder(carGuid,page,size){
  334. showProgress('提示','请等待','请求源数据中……');
  335. $.ajax({
  336. type: 'POST',
  337. url: "ajax/getCylinderInfo",
  338. data: {
  339. "carGuid":carGuid,
  340. "page":page,
  341. "size":size
  342. },
  343. dataType:'text',
  344. success: function (data) {
  345. $.messager.progress('close');
  346. var vData = $.parseJSON(data);
  347. var productNo="";
  348. $.each(vData.rows, function(i,item){
  349. document.getElementById("deviceCode").innerHTML=item.EQUIPMENTNO;
  350. if(item.cylinderTypeName){
  351. if(item.cylinderTypeName.indexOf("钢质")==0){
  352. document.getElementById("deviceVariety").innerHTML="无缝气瓶";
  353. }else{
  354. document.getElementById("deviceVariety").innerHTML="特种气瓶";
  355. }
  356. document.getElementById("deviceType").innerHTML="压力容器";
  357. document.getElementById("deviceType1").innerHTML="气瓶";
  358. if(vData.rows.length<=8){
  359. if(productNo){
  360. productNo +='<br/>'+ item.cylinderNo;
  361. }else{
  362. productNo = item.cylinderNo;
  363. }
  364. }else{
  365. if(productNo){
  366. productNo +=','+ item.cylinderNo;
  367. }else{
  368. productNo = item.cylinderNo;
  369. }
  370. }
  371. }
  372. });
  373. document.getElementById("productNo").innerHTML=productNo;
  374. },
  375. error:function(e){
  376. $.messager.progress('close');
  377. console.log(e);
  378. }
  379. });
  380. }
  381. </script>
  382. <style type="text/css">
  383. .title{
  384. font-size: 24px;
  385. font-weight: bold;
  386. }
  387. .content{
  388. font-size: 24px;
  389. }
  390. .colorBlack{
  391. color: black;
  392. }
  393. .colorSmallBlack{
  394. color: #808080;
  395. }
  396. .top50{
  397. padding-top: 50px;
  398. }
  399. tr{
  400. margin-left: 20px;
  401. }
  402. .sealDiv{
  403. z-index: 999;
  404. position: absolute;
  405. margin-left: 500px;
  406. margin-top: -200px;
  407. }
  408. </style>
  409. </head>
  410. <body style="font-size:12.0pt; font-family:微软雅黑">
  411. <center>
  412. <div style="border: 5px double; width: 700px;margin-top: 20px">
  413. <table width="680px" border="0" cellpadding="2" cellspacing="0" style="padding: 10px;table-layout:fixed;" >
  414. <tr><td>&nbsp;</td></tr>
  415. <tr class="title colorBlack top50">
  416. <td colspan="4" align="center">
  417. 特种设备使用登记证
  418. </td>
  419. </tr>
  420. <tr><td>&nbsp;</td></tr>
  421. <tr >
  422. <td style="width: 50%;" colspan="2"></td>
  423. <td class="colorBlack">编号:</td>
  424. <td class="colorSmallBlack">
  425. <span id="no"></span>
  426. </td>
  427. </tr>
  428. <tr><td>&nbsp;</td></tr>
  429. <tr>
  430. <td class="colorBlack content" colspan="4">&nbsp;&nbsp;&nbsp;&nbsp;按照《中华人民共和国特种设备安全法》的规定,依据特种设备安全技术规范要求,予以使用登记。</td>
  431. </tr>
  432. <tr><td>&nbsp;</td></tr>
  433. <tr>
  434. <td>
  435. 使用单位名称:
  436. </td>
  437. <td class="colorSmallBlack" colspan="3">
  438. <span id="useUnit"></span>
  439. </td>
  440. </tr>
  441. <tr>
  442. <td>
  443. 使用单位地址:
  444. </td>
  445. <td class="colorSmallBlack" colspan="3">
  446. <span id="address"></span>
  447. </td>
  448. </tr>
  449. <tr>
  450. <td>
  451. 设备种类:
  452. </td>
  453. <td class="colorSmallBlack">
  454. <span id="deviceType"></span>
  455. </td>
  456. <td>
  457. 设备类别:
  458. </td>
  459. <td class="colorSmallBlack">
  460. <span id="deviceType1"></span>
  461. </td>
  462. </tr>
  463. <tr>
  464. <td>
  465. 设备品种:
  466. </td>
  467. <td class="colorSmallBlack">
  468. <span id="deviceVariety"></span>
  469. </td>
  470. <td>
  471. 单位内编号:
  472. </td>
  473. <td class="colorSmallBlack">
  474. <span id="carNo"></span>
  475. </td>
  476. </tr>
  477. <tr>
  478. <td>
  479. 设备代码:
  480. </td>
  481. <td class="colorSmallBlack">
  482. <span id="deviceCode"></span>
  483. </td>
  484. <td style="width:100px;">
  485. 产品编号:
  486. </td>
  487. <td class="colorSmallBlack" rowspan="3" style="word-break: break-all;word-wrap: break-word;" valign="top">
  488. <span id="productNo"></span>
  489. </td>
  490. </tr>
  491. <tr><td>&nbsp;</td></tr>
  492. <tr>
  493. <td colspan="2" align="center">
  494. <img alt="" src="testQRcode.png" width="120px"/>
  495. </td>
  496. </tr>
  497. <tr>
  498. <td colspan="2"></td>
  499. <td>登记机关:</td>
  500. <td class="colorSmallBlack">
  501. <span id="giveCertUnit"></span>
  502. </td>
  503. </tr>
  504. <tr>
  505. <td colspan="2"></td>
  506. <td>发证日期:</td>
  507. <td class="colorSmallBlack"><span id="year"></span>&nbsp;<span class="colorBlack">年</span>&nbsp;<span id="month"></span>&nbsp;<span class="colorBlack">月</span>&nbsp;<span id="day"></span>&nbsp;<span class="colorBlack">日</span>&nbsp;</td>
  508. </tr>
  509. <tr><td>&nbsp;</td></tr>
  510. <tr>
  511. <td class="colorBlack" colspan="4">&nbsp;&nbsp;&nbsp;&nbsp;依据安全技术规范的要求,应当在定期检验确定的有效期和技术参数范围内使用。</td>
  512. </tr>
  513. <tr><td>&nbsp;</td></tr>
  514. </table>
  515. <div class="sealDiv" >
  516. <img alt="" src="images/seal.png" width="150px" height="auto"/>
  517. </div>
  518. </div>
  519. </center>
  520. </body>
  521. </html>