作者 xudada

舱单统计excel导出

... ... @@ -172,6 +172,17 @@
<version>1.9.6</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.14</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
... ...
package com.tianbo.analysis.controller;
import com.github.pagehelper.PageInfo;
import com.tianbo.analysis.model.FFMInfo;
import com.tianbo.analysis.model.ResultJson;
import com.tianbo.analysis.model.TRANSTOARRIVEEXPORT;
import com.tianbo.analysis.service.FFMResolve;
import com.tianbo.util.Date.DateUtil;
import io.swagger.annotations.Api;
... ... @@ -14,6 +12,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Api(description = "舱单解析表接口")
@RestController
... ... @@ -61,5 +60,4 @@ public class FFMInfoController {
int result=ffmResolve.delByAutoidList(autoIDlist);
return result>0?new ResultJson("200","删除成功!"):new ResultJson("201","删除失败");
}
}
... ...
package com.tianbo.analysis.controller;
import cn.afterturn.easypoi.entity.vo.NormalExcelConstants;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.view.PoiBaseView;
import com.tianbo.analysis.model.StatictisModel;
import com.tianbo.analysis.service.FFMResolve;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.List;
@Api(description = "进港舱单统计")
@RestController
@RequestMapping("/statistics/")
public class InNmmsStaticController {
@Autowired
FFMResolve ffmResolve;
@ApiOperation(value = "查询进港舱单统计")
@RequestMapping("/selectDevList")
public void selectDevList(@RequestParam(value = "flightno", required = false) String flightno,
@RequestParam(value = "subTime", required = false) String subTime,
@RequestParam(value = "nowTime", required = false) String nowTime,
ModelMap map, HttpServletRequest request, HttpServletResponse response){
List<StatictisModel> list=ffmResolve.selectDevList(flightno,subTime,nowTime);
ExportParams params = new ExportParams("进港舱单统计", "进港舱单统计");
map.put(NormalExcelConstants.DATA_LIST, list);
map.put(NormalExcelConstants.CLASS, StatictisModel.class);
map.put(NormalExcelConstants.PARAMS, params);
map.put(NormalExcelConstants.FILE_NAME, "进港舱单统计");
PoiBaseView.render(map, request, response, NormalExcelConstants.EASYPOI_EXCEL_VIEW);
// return new ResultJson("200","success");
}
@RequestMapping(value = "/exportExcel")
public void exportExcel(String id,HttpServletResponse response) throws Exception {
List<StatictisModel> list=ffmResolve.selectDevList(null,"2018-06-06","2018-06-08");
ExportParams params = new ExportParams("进港舱单统计", "进港舱单统计");
Workbook workbook = ExcelExportUtil.exportExcel(params, StatictisModel.class, list);
String fileName = "saleData.xlsx";
response.setCharacterEncoding("UTF-8");
response.setContentType("application/vnd.ms-excel; charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf-8"));
OutputStream outputStream = response.getOutputStream();
workbook.write(outputStream);
outputStream.flush();
outputStream.close();
}
}
//@Data
//class ExcelDemo {
//
// @Excel(name = "员工名称")
// private String employeesName;
//
// @Excel(name = "员工图片",type = 2 ,width = 30 , height = 50)
// private String image;
//
// @Excel(name = "员工年龄")
// private Integer age;
//
// @Excel(name = "创建日期", format = "yyyy-MM-dd HH:mm", width = 20)
// private Date createDate;
//
// @Excel(name = "更新日期", format = "yyyy/MM/dd HH:mm", width = 20)
// private Date updateDate;
//
//}
... ...
package com.tianbo.analysis.dao;
import com.sun.javafx.tools.packager.MakeAllParams;
import com.tianbo.analysis.model.FFMInfo;
import com.tianbo.analysis.model.StatictisModel;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
import java.util.Map;
public interface FFMInfoDao {
int deleteByPrimaryKey(String autoid);
... ... @@ -24,4 +29,6 @@ public interface FFMInfoDao {
int delFlightno(FFMInfo record);
int delByAutoidList(List<String> idList);
List<StatictisModel> selectDevList(@Param("flightno") String flightno, @Param("subTime") String subTime, @Param("nowTime") String nowTime);
}
... ...
package com.tianbo.analysis.model;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
@Data
@EqualsAndHashCode
public class StatictisModel {
@Excel(name = "运单号")
public String waybillnomaster;
@Excel(name = "板箱号")
public String pallet;
@Excel(name = "舱单件数")
public String manifesttotalpiece;
@Excel(name = "舱单重量")
public String manifesttotalweight;
@Excel(name = "运单件数")
public String totalpiece;
@Excel(name = "运单重量")
public String totalweight;
@Excel(name = "航班号")
public String fflightno;
@Excel(name = "航班日期",format = "yyyy-MM-dd")
public Date flightdate;
@Excel(name = "原始航班号")
public String oflightno;
@Excel(name = "原始航班日期",format = "yyyy-MM-dd")
public Date flight_date;
@Excel(name = "分批标识")
public String isbatch;
@Excel(name = "特殊代码")
public String specialgoodscode;
}
... ...
... ... @@ -2,8 +2,11 @@ package com.tianbo.analysis.service;
import com.tianbo.analysis.model.FFMInfo;
import com.tianbo.analysis.model.ResultJson;
import com.tianbo.analysis.model.StatictisModel;
import java.util.Date;
import java.util.List;
import java.util.Map;
public interface FFMResolve {
ResultJson resolve(FFMInfo ffmInfo);
... ... @@ -15,4 +18,6 @@ public interface FFMResolve {
int delFlightno(FFMInfo record);
int delByAutoidList(List<String> idList);
List<StatictisModel> selectDevList(String flightno, String subTime, String nowTime);
}
... ...
... ... @@ -6,6 +6,7 @@ import com.tianbo.analysis.dao.TBBaseAirportInfoDao;
import com.tianbo.analysis.exception.FFMResolveException;
import com.tianbo.analysis.model.FFMInfo;
import com.tianbo.analysis.model.ResultJson;
import com.tianbo.analysis.model.StatictisModel;
import com.tianbo.analysis.model.TBBaseAirportInfo;
import com.tianbo.analysis.service.FFMResolve;
import com.tianbo.util.Date.DateUtil;
... ... @@ -89,4 +90,9 @@ public class FFMResolveImpl implements FFMResolve {
public int delByAutoidList(List<String> idList) {
return ffmInfoDao.delByAutoidList(idList);
}
@Override
public List<StatictisModel> selectDevList(String flightno, String subTime, String nowTime) {
return ffmInfoDao.selectDevList(flightno,subTime,nowTime);
}
}
... ...
... ... @@ -5,7 +5,7 @@
<generatorConfiguration>
<!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包-->
<!--<classPathEntry location="/Users/mrz/Downloads/mybatis-generator-core-1.3.2/lib/mysql-connector-java-5.1.25-bin.jar"/>-->
<classPathEntry location="/Users/mrz/Documents/maven/ojdbc6.jar"/>
<classPathEntry location="/Users/xuyonghui/XYH/MAVEN/ojdbc6.jar"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
... ... @@ -34,7 +34,7 @@
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成模型的包名和位置-->
<javaModelGenerator targetPackage="com.tianbo.analysis.model" targetProject="src/main/java">
<javaModelGenerator targetPackage="com.tianbo.analysis.model.new" targetProject="src/main/java">
<property name="enableSubPackages" value="false"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
... ... @@ -47,6 +47,6 @@
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
<!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
<table schema="CGONMS" tableName="SENDPLAN" domainObjectName="SENDPLAN" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
<table schema="CGONMS" tableName="ORIGINMANIFESTSECONDARY" domainObjectName="ORIGSECONDARY" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>
... ...
... ... @@ -24,6 +24,20 @@
<result column="TOTALPIECE" jdbcType="VARCHAR" property="totalpiece" />
<result column="DEALSTATUS" jdbcType="VARCHAR" property="dealstatus" />
</resultMap>
<resultMap id="StatictisMap" type="com.tianbo.analysis.model.StatictisModel">
<result column="WAYBILLNOMASTER" jdbcType="VARCHAR" property="waybillnomaster" />
<result column="PALLET" jdbcType="VARCHAR" property="pallet" />
<result column="MANIFESTTOTALPIECE" jdbcType="VARCHAR" property="manifesttotalpiece" />
<result column="MANIFESTTOTALWEIGHT" jdbcType="VARCHAR" property="manifesttotalweight" />
<result column="TOTALPIECE" jdbcType="VARCHAR" property="totalpiece" />
<result column="TOTALWEIGHT" jdbcType="VARCHAR" property="totalweight" />
<result column="FFLIGHTNO" jdbcType="VARCHAR" property="fflightno" />
<result column="FLIGHTDATE" jdbcType="TIMESTAMP" property="flightdate" />
<result column="OFLIGHTNO" jdbcType="VARCHAR" property="oflightno" />
<result column="FLIGHT_DATE" jdbcType="TIMESTAMP" property="flight_date" />
<result column="ISBATCH" jdbcType="VARCHAR" property="isbatch" />
<result column="SPECIALGOODSCODE" jdbcType="VARCHAR" property="specialgoodscode" />
</resultMap>
<sql id="Base_Column_List">
AUTOID, CREATEDATE, FLIGHTNO, FLIGHTDATE, WAYBILLNOMASTER, ORIGINATINGSTATION, DESTINATIONSTATION,
MANIFESTTOTALPIECE, MANIFESTTOTALWEIGHT, PRODUCTNAME, SPECIALGOODSCODE, CUSTOMSCODE,
... ... @@ -309,4 +323,42 @@
DEALSTATUS = #{dealstatus,jdbcType=VARCHAR}
where AUTOID = #{autoid,jdbcType=VARCHAR}
</update>
<select id="selectDevList" parameterType="java.lang.String" resultMap="StatictisMap">
SELECT
F.PALLET AS PALLET,
F.FLIGHTNO AS FFLIGHTNO,
F.FLIGHTDATE AS FLIGHTDATE,
F.WAYBILLNOMASTER AS WAYBILLNOMASTER,
F.MANIFESTTOTALPIECE AS MANIFESTTOTALPIECE,
F.MANIFESTTOTALWEIGHT AS MANIFESTTOTALWEIGHT,
O.TOTALPIECE AS TOTALPIECE,
O.TOTALWEIGHT AS TOTALWEIGHT,
O.FLIGHTNO AS OFLIGHTNO,
O.FLIGHT_DATE AS FLIGHT_DATE,
O.SPECIALGOODSCODE AS SPECIALGOODSCODE,
F.ISBATCH AS ISBATCH
FROM
(
SELECT
a.*,
row_number () over ( partition BY flightno, flightdate, waybillnomaster, PALLET, reportorder ORDER BY createdate DESC ) rw
FROM
ffm_info a
WHERE
1 = 1 -- and islast = 'LAST'
-- and reportorder = '1'
AND dealstatus = '1'
<if test="flightno != null and flightno!=''">
and FLIGHTNO = #{flightno,jdbcType=VARCHAR}
</if> -- AND waybillnomaster = '356-50028882'
AND flightdate BETWEEN to_date(#{subTime},'yyyy-MM-dd') and to_date(#{nowTime},'yyyy-MM-dd')
) F
LEFT JOIN ORIGINMANIFESTMASTER O ON O.WAYBILLNOMASTER = F.WAYBILLNOMASTER -- WHERE O.SPECIALGOODSCODE IS NOT NULL
WHERE rw=1
ORDER BY
O.WAYBILLNOMASTER,
F.PALLET
</select>
</mapper>
... ...
import com.tianbo.analysis.NmmsAdminApplication;
import com.tianbo.analysis.model.FWBinfo;
import com.tianbo.analysis.model.Originmanifestsecondary;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.boot.test.context.SpringBootTest;
//@RunWith(SpringRunner.class)
@SpringBootTest(classes = NmmsAdminApplication.class)
public class FWBTest {
private static Logger logger = LogManager.getLogger(FHLTest.class);
private static String FWB = "ZCZC\n" +
"QK CGOFD1E\n" +
".AUHFMEY 150638\n" +
"FWB/16\n" +
"607-23181900PVGRUH/T18K3958MC14.94\n" +
"FLT/EY9932/16\n" +
"RTG/AUHEY/RUHEY\n" +
"SHP\n" +
"/APPLE DISTRIBUTION INTERNATIONAL\n" +
"/INDUSTRIAL ESTATE PINISHED GOODS\n" +
"/SHANGHAI\n" +
"/CN//TE/353214229094/FX/35214284000\n" +
"CNE\n" +
"/APPLE SAUDI ARABIA LLC\n" +
"/LEVEL 30 FAISALIAH TOWER RIYADH\n" +
"/RIYADH\n" +
"/SA/11524/TE/97239005310/FX/97239005311\n" +
"AGT//0830875/0214/CAG\n" +
"/AOE FREIGHT SHANGHAI LIMTED\n" +
"/SHANGHAI\n" +
"SSR/ALL\n" +
"ACC/GEN/FREIGHT PREPAID\n" +
"/GEN/PRDGENERALCARGO\n" +
"CVD/CNY//PP/NVD/NCV/XXX\n" +
"RTD/1/P18/K3958/CQ/W3958/R30.72/T121589.76\n" +
"/NG/MOBILE PHONELITHIUM\n" +
"/2/NG/IONBATTERIES INCOMPL\n" +
"/3/NG/IANCE WITHSECTION II\n" +
"/4/NG/ OFPI967 ELI\n" +
"/5/ND//CMT100-100-83/18\n" +
"/6/NV/MC14.94\n" +
"OTH/P/MSC55807.8\n" +
"PPD/WT244469.76/VC0/TX0\n" +
"/OA0/OC56400/CT300869.76\n" +
"CER/APPLE DISTRIBUUTTON\n" +
"ISU/15DEC21/SHANGHAI/GHR\n" +
"REF/AUHFMEY\n" +
"SPH/EAP/HEA/ECC/ELI\n" +
"=\n" +
"NNNN";
@org.junit.jupiter.api.Test
public void send() {
try{
FWBinfo fwb= new FWBinfo() ;
fwb.text = FWB;
fwb.textToStringList();
fwb.startParse();
}catch (Exception e){
e.printStackTrace();
}
}
}
... ...