diff --git a/pom.xml b/pom.xml index 9c33adc..63a4209 100644 --- a/pom.xml +++ b/pom.xml @@ -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> diff --git a/src/main/java/com/tianbo/analysis/controller/FFMInfoController.java b/src/main/java/com/tianbo/analysis/controller/FFMInfoController.java index 52415dc..043750a 100644 --- a/src/main/java/com/tianbo/analysis/controller/FFMInfoController.java +++ b/src/main/java/com/tianbo/analysis/controller/FFMInfoController.java @@ -1,9 +1,7 @@ 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","删除失败"); } - } diff --git a/src/main/java/com/tianbo/analysis/controller/InNmmsStaticController.java b/src/main/java/com/tianbo/analysis/controller/InNmmsStaticController.java new file mode 100644 index 0000000..d5b3c7f --- /dev/null +++ b/src/main/java/com/tianbo/analysis/controller/InNmmsStaticController.java @@ -0,0 +1,83 @@ +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; +// +//} diff --git a/src/main/java/com/tianbo/analysis/dao/FFMInfoDao.java b/src/main/java/com/tianbo/analysis/dao/FFMInfoDao.java index a713993..68a2fe6 100644 --- a/src/main/java/com/tianbo/analysis/dao/FFMInfoDao.java +++ b/src/main/java/com/tianbo/analysis/dao/FFMInfoDao.java @@ -1,8 +1,13 @@ 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); } diff --git a/src/main/java/com/tianbo/analysis/model/StatictisModel.java b/src/main/java/com/tianbo/analysis/model/StatictisModel.java new file mode 100644 index 0000000..e3afda6 --- /dev/null +++ b/src/main/java/com/tianbo/analysis/model/StatictisModel.java @@ -0,0 +1,48 @@ +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; + +} diff --git a/src/main/java/com/tianbo/analysis/service/FFMResolve.java b/src/main/java/com/tianbo/analysis/service/FFMResolve.java index e7db281..09b58a1 100644 --- a/src/main/java/com/tianbo/analysis/service/FFMResolve.java +++ b/src/main/java/com/tianbo/analysis/service/FFMResolve.java @@ -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); } diff --git a/src/main/java/com/tianbo/analysis/service/imp/FFMResolveImpl.java b/src/main/java/com/tianbo/analysis/service/imp/FFMResolveImpl.java index dfeaf68..c305f15 100644 --- a/src/main/java/com/tianbo/analysis/service/imp/FFMResolveImpl.java +++ b/src/main/java/com/tianbo/analysis/service/imp/FFMResolveImpl.java @@ -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); + } } diff --git a/src/main/resources/generator/generatorConfig.xml b/src/main/resources/generator/generatorConfig.xml index 3914445..984034a 100644 --- a/src/main/resources/generator/generatorConfig.xml +++ b/src/main/resources/generator/generatorConfig.xml @@ -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> diff --git a/src/main/resources/mapping/FFMInfoDao.xml b/src/main/resources/mapping/FFMInfoDao.xml index b7fb600..c032221 100644 --- a/src/main/resources/mapping/FFMInfoDao.xml +++ b/src/main/resources/mapping/FFMInfoDao.xml @@ -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> diff --git a/src/test/java/FWBTest.java b/src/test/java/FWBTest.java new file mode 100644 index 0000000..ff67bb1 --- /dev/null +++ b/src/test/java/FWBTest.java @@ -0,0 +1,68 @@ +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(); + } + + + } +}