正在显示
8 个修改的文件
包含
332 行增加
和
3 行删除
@@ -34,7 +34,7 @@ | @@ -34,7 +34,7 @@ | ||
34 | <cxf.version>2.7.5</cxf.version> | 34 | <cxf.version>2.7.5</cxf.version> |
35 | <patchca.version>0.5.0</patchca.version> | 35 | <patchca.version>0.5.0</patchca.version> |
36 | <jxl.version>2.6.12</jxl.version> | 36 | <jxl.version>2.6.12</jxl.version> |
37 | - <poi.version>3.14</poi.version> | 37 | + <poi.version>3.6</poi.version> |
38 | <velocity.version>1.7</velocity.version> | 38 | <velocity.version>1.7</velocity.version> |
39 | 39 | ||
40 | <!-- Plugin的属性定义 --> | 40 | <!-- Plugin的属性定义 --> |
@@ -368,7 +368,7 @@ | @@ -368,7 +368,7 @@ | ||
368 | <dependency> | 368 | <dependency> |
369 | <groupId>org.apache.poi</groupId> | 369 | <groupId>org.apache.poi</groupId> |
370 | <artifactId>poi-ooxml</artifactId> | 370 | <artifactId>poi-ooxml</artifactId> |
371 | - <version>3.14</version> | 371 | + <version>3.17</version> |
372 | </dependency> | 372 | </dependency> |
373 | 373 | ||
374 | <dependency> | 374 | <dependency> |
1 | +package com.agent.controller.system; | ||
2 | + | ||
3 | +import com.agent.service.system.FilghtDateService; | ||
4 | +import com.agent.util.ExcelExportUtil; | ||
5 | +import org.apache.poi.hssf.usermodel.HSSFWorkbook; | ||
6 | +import org.springframework.beans.factory.annotation.Autowired; | ||
7 | +import org.springframework.web.bind.annotation.RequestMapping; | ||
8 | +import org.springframework.web.bind.annotation.ResponseBody; | ||
9 | +import org.springframework.web.bind.annotation.RestController; | ||
10 | + | ||
11 | +import javax.servlet.http.HttpServletRequest; | ||
12 | +import javax.servlet.http.HttpServletResponse; | ||
13 | +import java.io.OutputStream; | ||
14 | +import java.io.UnsupportedEncodingException; | ||
15 | +import java.util.List; | ||
16 | +import java.util.Map; | ||
17 | + | ||
18 | +@RequestMapping(value = "/filghtdate") | ||
19 | +@RestController | ||
20 | +public class FilghtDateController{ | ||
21 | + | ||
22 | + @Autowired | ||
23 | + private FilghtDateService filghtDateService; | ||
24 | + | ||
25 | + @RequestMapping(value = "/list") | ||
26 | + public String filghtList(){ | ||
27 | + return "system/user/filghtdateconut"; | ||
28 | + } | ||
29 | + | ||
30 | + /** | ||
31 | + * 航班日期统计 导出excel | ||
32 | + * @param filghtdate1 | ||
33 | + * @param filghtdate2 | ||
34 | + * @return | ||
35 | + */ | ||
36 | + @RequestMapping(value = "/filghtCount") | ||
37 | + @ResponseBody | ||
38 | + public void filghtcount(HttpServletRequest request, HttpServletResponse response, String filghtdate1, String filghtdate2) { | ||
39 | + | ||
40 | + // 获取数据 | ||
41 | + List<Map<String, Object>> filghtcount = filghtDateService.filghtcount(filghtdate1, filghtdate2); | ||
42 | + | ||
43 | + //excel标题 | ||
44 | + String[] title = {"运单号", "航空托运人名称", "航空销售代理人名称", "航协编号", "航空公司运输证明", "运输条件鉴定书","承运人", | ||
45 | + "航班号", "航班日期","航班起始站","航班目的站","运单件数","运单重量","操作时间","关区","预配品名","收货人公司", | ||
46 | + "收货人地址","收货人城市","收货人国家","收货人电话","收货人名称","发货人名称","发货人地址","发货人城市","发货人国家", | ||
47 | + "发货人电话","发货人名称","海关回执状态","海关回执信息","发货人编码","收货人编码","货物品名","二级类名称","一级类名称", | ||
48 | + "代理人三字码","代理人全称","代理人类别","代理联系人","代理联系人电话"}; | ||
49 | + | ||
50 | + //excel文件名 | ||
51 | + String fileName = "测试" + System.currentTimeMillis() + ".xls"; | ||
52 | + //sheet名 | ||
53 | + String sheetName = "测试统计"; | ||
54 | + | ||
55 | + String[][] content = new String[0][]; | ||
56 | + /** | ||
57 | + * 可能空指针异常 | ||
58 | + */ | ||
59 | + for (int i = 0; i < filghtcount.size(); i++) { | ||
60 | + content = new String[title.length][]; | ||
61 | + Map<String, Object> map = filghtcount.get(i); | ||
62 | + | ||
63 | + content[i][0] = map.get("SD_WAYBILL").toString(); | ||
64 | + content[i][1] = map.get("SD_CARGO_SHIPPER_NAME").toString(); | ||
65 | + content[i][2] = map.get("SD_CARGO_AGENT_NAME").toString(); | ||
66 | + content[i][3] = map.get("SD_IATA_NUMBER").toString(); | ||
67 | + content[i][4] = map.get("SD_TRANSPORT_CERTIFICATE").toString(); | ||
68 | + content[i][5] = map.get("SD_TRANSPORTATION_PROVE").toString(); | ||
69 | + content[i][6] = map.get("CARRIER").toString(); | ||
70 | + content[i][7] = map.get("FLIGHTNO").toString(); | ||
71 | + content[i][8] = map.get("FLIGHTDATE").toString(); | ||
72 | + content[i][9] = map.get("ORIGINATINGSTATION").toString(); | ||
73 | + content[i][10] = map.get("DESTINATIONSTATION").toString(); | ||
74 | + content[i][11] = map.get("TOTALPIECE").toString(); | ||
75 | + content[i][12] = map.get("TOTALWEIGHT").toString(); | ||
76 | + content[i][13] = map.get("STOWAGEDATE").toString(); | ||
77 | + content[i][14] = map.get("CUSTOMSCODE").toString(); | ||
78 | + content[i][15] = map.get("SH_COMPANY").toString(); | ||
79 | + content[i][16] = map.get("SH_ADDRESS").toString(); | ||
80 | + content[i][17] = map.get("SH_CITY").toString(); | ||
81 | + content[i][18] = map.get("SH_COUNTRY").toString(); | ||
82 | + content[i][19] = map.get("SH_TELEPHONE").toString(); | ||
83 | + content[i][20] = map.get("SH_NAME").toString(); | ||
84 | + content[i][21] = map.get("CO_COMPANY").toString(); | ||
85 | + content[i][22] = map.get("CO_ADDRESS").toString(); | ||
86 | + content[i][23] = map.get("CO_CITY").toString(); | ||
87 | + content[i][24] = map.get("CO_COUNTRY").toString(); | ||
88 | + content[i][25] = map.get("CO_TELEPHONE").toString(); | ||
89 | + content[i][26] = map.get("CO_NAME").toString(); | ||
90 | + content[i][27] = map.get("RESPONSE_CODE").toString(); | ||
91 | + content[i][28] = map.get("RESPONSE_TEXT").toString(); | ||
92 | + content[i][29] = map.get("SHPCUSID").toString(); | ||
93 | + content[i][30] = map.get("CNECUSID").toString(); | ||
94 | + content[i][31] = map.get("SD_CARGO_NAME").toString(); | ||
95 | + content[i][32] = map.get("TWO_TYPE_NAME").toString(); | ||
96 | + content[i][33] = map.get("TYPE_NAME").toString(); | ||
97 | + content[i][34] = map.get("FOR_SHORT").toString(); | ||
98 | + content[i][35] = map.get("FULL_NAME").toString(); | ||
99 | + content[i][36] = map.get("THE_SHIPPER_TYPE").toString(); | ||
100 | + content[i][37] = map.get("CONTACTS").toString(); | ||
101 | + content[i][38] = map.get("PHONE").toString(); | ||
102 | + | ||
103 | + } | ||
104 | + //创建HSSFWorkbook | ||
105 | + | ||
106 | + HSSFWorkbook wb = ExcelExportUtil.getHSSFWorkbook(sheetName, title, content, null); | ||
107 | + //响应到客户端 | ||
108 | + try { | ||
109 | + this.setResponseHeader(response, fileName); | ||
110 | + OutputStream os = response.getOutputStream(); | ||
111 | + wb.write(os); | ||
112 | + os.flush(); | ||
113 | + os.close(); | ||
114 | + }catch (Exception e){ | ||
115 | + e.printStackTrace(); | ||
116 | + } | ||
117 | + } | ||
118 | + | ||
119 | + | ||
120 | + //发送响应流方法 | ||
121 | + public void setResponseHeader(HttpServletResponse response, String fileName) { | ||
122 | + try { | ||
123 | + try { | ||
124 | + fileName = new String(fileName.getBytes(),"ISO8859-1"); | ||
125 | + } catch (UnsupportedEncodingException e) { | ||
126 | + // TODO Auto-generated catch block | ||
127 | + e.printStackTrace(); | ||
128 | + } | ||
129 | + response.setContentType("application/octet-stream;charset=ISO8859-1"); | ||
130 | + response.setHeader("Content-Disposition", "attachment;filename="+ fileName); | ||
131 | + response.addHeader("Pargam", "no-cache"); | ||
132 | + response.addHeader("Cache-Control", "no-cache"); | ||
133 | + } catch (Exception ex) { | ||
134 | + ex.printStackTrace(); | ||
135 | + } | ||
136 | + } | ||
137 | + | ||
138 | +} |
1 | +package com.agent.repository.system; | ||
2 | + | ||
3 | +import org.springframework.data.jpa.repository.Query; | ||
4 | + | ||
5 | +import java.util.List; | ||
6 | +import java.util.Map; | ||
7 | + | ||
8 | +public interface FilghtDateRepository { | ||
9 | + | ||
10 | + | ||
11 | + @Query(value = "SELECT SD.SD_WAYBILL , SD.SD_CARGO_SHIPPER_NAME , SD.SD_CARGO_AGENT_NAME , SD.SD_IATA_NUMBER , SD.SD_TRANSPORT_CERTIFICATE , SD.SD_TRANSPORTATION_PROVE , MF.CARRIER , MF.FLIGHTNO , MF.FLIGHTDATE , MF.ORIGINATINGSTATION , MF.DESTINATIONSTATION , MF.TOTALPIECE , MF.TOTALWEIGHT , MF.STOWAGEDATE , MF.CUSTOMSCODE , MF.PRODUCTNAME , MF.SH_COMPANY , MF.SH_ADDRESS , MF.SH_CITY , MF.SH_COUNTRY , MF.SH_TELEPHONE , MF.SH_NAME , MF.CO_COMPANY , MF.CO_ADDRESS , MF.CO_CITY , MF.CO_COUNTRY , MF.CO_TELEPHONE , MF.CO_NAME , MF.RESPONSE_CODE , MF.RESPONSE_TEXT , MF.SHPCUSID , MF.CNECUSID , SCN.SD_CARGO_NAME , twoType.TWO_TYPE_NAME , bigType.TYPE_NAME , HSI.FOR_SHORT , HSI.FULL_NAME , HSI.THE_SHIPPER_TYPE , HSI.CONTACTS, HSI.PHONE FROM SECURITY_DECLARATION SD LEFT JOIN MANIFEST MF ON MF.WAYBILLNOMASTER = SD.SD_WAYBILL LEFT JOIN SD_CARGO_NAME SCN ON SCN.SD_WAYBILL = SD.SD_WAYBILL LEFT JOIN SD_TWO_TYPE twoType ON twoType.CARGO_NAME = SCN.SD_CARGO_NAME LEFT JOIN SD_BIG_TYPE bigType on bigType.ID = twoType.BIG_TYPE_ID LEFT JOIN HZ_WAYBILL_INFO HWI ON hwi.WAYBILL_ID = MF.WAYBILLNOMASTER LEFT JOIN HZ_SHIPPER_INFORMATION HSI ON HWI.HZINFOR_ID = HSI.ID WHERE trunc( MF.FLIGHTDATE ) BETWEEN to_date( MF.FLIGHTDATE=?1, 'yyyy-mm-dd' ) AND to_date(MF.FLIGHTDATE=?2,'yyyy-mm-dd') ORDER BY MF.FLIGHTDATE", nativeQuery = true) | ||
12 | + List<Map<String, Object>>filghtdateCount(String filghtdate1, String filghtdate2); | ||
13 | +} |
1 | +package com.agent.service.system; | ||
2 | + | ||
3 | +import com.agent.repository.system.FilghtDateRepository; | ||
4 | +import com.agent.vo.ResponseModel; | ||
5 | +import org.springframework.stereotype.Service; | ||
6 | + | ||
7 | +import javax.annotation.Resource; | ||
8 | +import java.util.List; | ||
9 | +import java.util.Map; | ||
10 | + | ||
11 | +@Service | ||
12 | +public class FilghtDateService { | ||
13 | + | ||
14 | + @Resource | ||
15 | + private FilghtDateRepository filghtDateRepository; | ||
16 | + | ||
17 | + public List<Map<String, Object>> filghtcount(String filghtdate1, String filghtdate2){ | ||
18 | + | ||
19 | + return filghtDateRepository.filghtdateCount(filghtdate1, filghtdate2); | ||
20 | + | ||
21 | + } | ||
22 | + | ||
23 | +} |
1 | +package com.agent.util; | ||
2 | + | ||
3 | +import org.apache.poi.hssf.usermodel.*; | ||
4 | + | ||
5 | +public class ExcelExportUtil { | ||
6 | + | ||
7 | + /** | ||
8 | + * 导出Excel | ||
9 | + * @param sheetName sheet名称 | ||
10 | + * @param title 标题 | ||
11 | + * @param values 内容 | ||
12 | + * @param wb HSSFWorkbook对象 | ||
13 | + * @return | ||
14 | + */ | ||
15 | + public static HSSFWorkbook getHSSFWorkbook(String sheetName,String []title,String [][]values, HSSFWorkbook wb){ | ||
16 | + | ||
17 | + // 第一步,创建一个HSSFWorkbook,对应一个Excel文件 | ||
18 | + if(wb == null){ | ||
19 | + wb = new HSSFWorkbook(); | ||
20 | + } | ||
21 | + | ||
22 | + // 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet | ||
23 | + HSSFSheet sheet = wb.createSheet(sheetName); | ||
24 | + | ||
25 | + // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制 | ||
26 | + HSSFRow row = sheet.createRow(0); | ||
27 | + | ||
28 | + // 第四步,创建单元格,并设置值表头 设置表头居中 | ||
29 | + HSSFCellStyle style = wb.createCellStyle(); | ||
30 | + style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式 | ||
31 | + | ||
32 | + //声明列对象 | ||
33 | + HSSFCell cell = null; | ||
34 | + | ||
35 | + //创建标题 | ||
36 | + for(int i=0;i<title.length;i++){ | ||
37 | + cell = row.createCell(i); | ||
38 | + cell.setCellValue(title[i]); | ||
39 | + cell.setCellStyle(style); | ||
40 | + } | ||
41 | + | ||
42 | + //创建内容 | ||
43 | + for(int i=0;i<values.length;i++){ | ||
44 | + row = sheet.createRow(i + 1); | ||
45 | + for(int j=0;j<values[i].length;j++){ | ||
46 | + //将内容按顺序赋给对应的列对象 | ||
47 | + row.createCell(j).setCellValue(values[i][j]); | ||
48 | + } | ||
49 | + } | ||
50 | + return wb; | ||
51 | + } | ||
52 | +} |
@@ -89,6 +89,7 @@ | @@ -89,6 +89,7 @@ | ||
89 | <li><a href="javascript:void(0);" onclick="addTab('货量统计||cargo/list',this)">货量统计</a></li> | 89 | <li><a href="javascript:void(0);" onclick="addTab('货量统计||cargo/list',this)">货量统计</a></li> |
90 | <li><a href="javascript:void(0);" onclick="addTab('一级类管理||type/list',this)">一级类管理</a></li> | 90 | <li><a href="javascript:void(0);" onclick="addTab('一级类管理||type/list',this)">一级类管理</a></li> |
91 | <li><a href="javascript:void(0);" onclick="addTab('二级类管理||type/tlist',this)">二级类管理</a></li> | 91 | <li><a href="javascript:void(0);" onclick="addTab('二级类管理||type/tlist',this)">二级类管理</a></li> |
92 | + <li><a href="javascript:void(0);" onclick="addTab('航班日期统计||filghtdate/select',this)">航班日期统计</a></li> | ||
92 | <%-- <li><a href="javascript:void(0)" onclick="addTab('<spring:message code="menu.consignee_info_set" />||consignee/list')"><spring:message code="menu.consignee_info_set" /></a></li> --%> | 93 | <%-- <li><a href="javascript:void(0)" onclick="addTab('<spring:message code="menu.consignee_info_set" />||consignee/list')"><spring:message code="menu.consignee_info_set" /></a></li> --%> |
93 | </ul> | 94 | </ul> |
94 | </li> | 95 | </li> |
@@ -285,7 +285,7 @@ | @@ -285,7 +285,7 @@ | ||
285 | <option value="${tempShpType}">${tempShpType}</option> | 285 | <option value="${tempShpType}">${tempShpType}</option> |
286 | </c:if> | 286 | </c:if> |
287 | 287 | ||
288 | - <c:if test="${empty pre.shpcusid}"> | 288 | + <c:if test="${empty pre.shpcusid}"> |
289 | <option value=""><spring:message code="manifest.enterprise.code.type" /></option> | 289 | <option value=""><spring:message code="manifest.enterprise.code.type" /></option> |
290 | </c:if> | 290 | </c:if> |
291 | </select> <span style="color: black; font-size: 16px;">+</span> <input id="shpcusid" type="text" | 291 | </select> <span style="color: black; font-size: 16px;">+</span> <input id="shpcusid" type="text" |
1 | +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> | ||
2 | +<%-- | ||
3 | + Created by IntelliJ IDEA. | ||
4 | + User: lenovo | ||
5 | + Date: 2019/3/15 | ||
6 | + Time: 16:24 | ||
7 | + To change this template use File | Settings | File Templates. | ||
8 | +--%> | ||
9 | +<%@ page contentType="text/html;charset=UTF-8" language="java" %> | ||
10 | +<% | ||
11 | + String path = request.getContextPath(); | ||
12 | + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; | ||
13 | +%> | ||
14 | +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> | ||
15 | +<html> | ||
16 | +<head> | ||
17 | + <title>Title</title> | ||
18 | + <meta charset="utf-8"> | ||
19 | + <meta name="viewport" content="width=device-width, initial-scale=1"> | ||
20 | + <link href="<%=basePath %>resource/css/base.css" rel="stylesheet"> | ||
21 | + <link href="<%=basePath %>resource/css/basic_info.css" rel="stylesheet"> | ||
22 | + <link rel="stylesheet" href="<%=basePath %>resource/easyui/uimaker/easyui.css"> | ||
23 | + <link href="<%=basePath %>resource/css/form.css" rel="stylesheet"> | ||
24 | + <link rel="stylesheet" href="<%=basePath %>resource/css/form.css"> | ||
25 | + <script type="text/javascript" src="<%=basePath %>resource/easyui/jquery.min.js"></script> | ||
26 | + <script type="text/javascript" src="<%=basePath %>resource/validate/jquery.validate.js"></script> | ||
27 | + <script type="text/javascript" src="<%=basePath %>resource/validate/validate-extends.js"></script> | ||
28 | + | ||
29 | + <script type="text/javascript" src="<%=basePath %>resource/js/tools.js"></script> | ||
30 | + <!-- validate 验证中英文 --> | ||
31 | + <script type="text/javascript" src="<%=basePath %>resource/validate/jquery.validate-${pageContext.response.locale}.js"></script> | ||
32 | +</head> | ||
33 | +<body> | ||
34 | +<div class="container"> | ||
35 | + <div class="content"> | ||
36 | + <form class="from-control" id="form"> | ||
37 | + <input type="hidden" id="id" name="id" value="${manifest.id }"> | ||
38 | + <div></div> | ||
39 | + <div> | ||
40 | + <table class="kv-table"> | ||
41 | + <tbody> | ||
42 | + <div> | ||
43 | + <tr class="kv-content" > | ||
44 | + <td style="background-color: #EBEDF4; color: black;" class="kv-label" colspan="6"><spring:message code="wbm.loginName"/></td> | ||
45 | + <td style="background-color: #EBEDF4; color: black;" class="kv-label" colspan="1"> | ||
46 | + <input type="date" id = "filghtdate1" name = "filghtdate1" required="required"> | ||
47 | + <input type="date" id = "filghtdate2" name = "filghtdate2" required="required"> | ||
48 | + </td> | ||
49 | + <td style="background-color: #EBEDF4; color: black;" class="kv-label" colspan="4"> | ||
50 | + <button type="button" class="layui-btn layui-btn-sm layui-icon layui-icon-user" id="subbtn"> | ||
51 | + <i class="fa fa-trash hidden" aria-hidden="true"></i>查询 | ||
52 | + </button> | ||
53 | + </td> | ||
54 | + </tr> | ||
55 | + <%--<tr class="kv-content" style="float:left">--%> | ||
56 | + <%--<td style="background-color: #EBEDF4; color: black;" class="kv-label" colspan="2">--%> | ||
57 | + <%----%> | ||
58 | + <%--</td>--%> | ||
59 | + <%--</tr>--%> | ||
60 | + </div> | ||
61 | + </tbody> | ||
62 | + </table> | ||
63 | + </div> | ||
64 | + </form> | ||
65 | + </div> | ||
66 | +</div> | ||
67 | + | ||
68 | +<script type="text/javascript"> | ||
69 | + | ||
70 | + | ||
71 | + $("#subbtn").on("click",function () { | ||
72 | + | ||
73 | + var filghtdate1 = $("#filghtdate1").val(); | ||
74 | + var filghtdate2 = $("#filghtdate2").val(); | ||
75 | + | ||
76 | + $.ajax({ | ||
77 | + type : 'POST', | ||
78 | + // contentType: 'application/json; charset=UTF-8', | ||
79 | + data : { | ||
80 | + "filghtdate1" : filghtdate1, | ||
81 | + "filghtdate2" : filghtdate2 | ||
82 | + }, | ||
83 | + url :"<%=basePath%>filghtdate/filghtCount", | ||
84 | + success : function(data) { | ||
85 | +// console.log(data) | ||
86 | +// if (data.status != 200) { | ||
87 | +// alert("该账号不存在"); | ||
88 | +// }else { | ||
89 | +// // parent.reLoad(); | ||
90 | +// alert("修改成功"); | ||
91 | +// window.parent.location.reload(); | ||
92 | +// var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引 | ||
93 | +// parent.layer.close(index); | ||
94 | +// } | ||
95 | + } | ||
96 | + }); | ||
97 | + }) | ||
98 | + | ||
99 | + | ||
100 | +</script> | ||
101 | +</body> | ||
102 | +</html> |
-
请 注册 或 登录 后发表评论