作者 朱兆平

进出港数据统计服务

... ... @@ -16,7 +16,7 @@ spring:
static-locations: classpath:/META-INF/resources/,classpath:/static,classpath:/resources/,file:${web.upload-path}
application:
name: changeManifestInfomation
name: analysis-nmms
jackson:
serialization:
... ... @@ -86,7 +86,8 @@ eureka:
client:
#eureka注册中心服务器地址
service-url:
defaultZone: http://10.50.3.82:19527/eureka/
# defaultZone: http://10.50.3.82:19527/eureka/
defaultZone: http://192.168.1.53:12345/eureka/
registry-fetch-interval-seconds: 30
lease-renewal-interval-in-seconds: 15
lease-expiration-duration-in-seconds: 45
... ...
... ... @@ -25,7 +25,7 @@
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>trace</level>
<level>debug</level>
</filter>
<encoder>
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
... ... @@ -172,8 +172,7 @@
<!--开发环境:打印控制台-->
<springProfile name="dev">
<logger name="org.springframework.boot" level="trace"/>
<logger name="org.apache.tomcat" level="info" />
<logger name="org.springframework.boot" level="info"/>
<logger name="com.tianbo.imfClient.dao" level="DEBUG" />
<root level="INFO">
<appender-ref ref="CONSOLE" />
... ... @@ -186,7 +185,7 @@
<!--生产环境:输出到文件-->
<springProfile name="pro">
<logger name="org.springframework.boot" level="trace"/>
<logger name="org.springframework.boot" level="info"/>
<logger name="com.tianbo.imfClient.dao" level="DEBUG" />
<root level="info">
<appender-ref ref="CONSOLE" />
... ...
... ... @@ -81,6 +81,7 @@
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4.0-atlassian-hosted</version>
</dependency>
<!--util依赖-->
<dependency>
<groupId>com.tianbo</groupId>
... ...
... ... @@ -9,3 +9,5 @@
* 更新航班日期
* 更新分单运抵状态重发分单
* 查询运单回执信息,包括运单发送的报文ID
* 新舱单接口服务
\ No newline at end of file
... ...
... ... @@ -21,7 +21,6 @@ import org.springframework.web.client.RestTemplate;
@EnableDiscoveryClient
@EnableTransactionManagement
@MapperScan("com.tianbo.imfClient.dao")
@ComponentScan({"com.tianbo.imfClient"})
public class ImfClientApplication {
public static void main(String[] args) {
... ...
package com.tianbo.imfClient.controller;
import com.tianbo.imfClient.dao.AGENTSTATISTICSMapper;
import com.tianbo.imfClient.dao.ARRIVEDSECONDARYMapper;
import com.tianbo.imfClient.model.ORIGINMANIFESTMASTER;
import com.tianbo.imfClient.model.ResultJson;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 出港运抵服务接口
*/
@RestController
@RequestMapping("/agent")
public class AgentController {
@Autowired
private AGENTSTATISTICSMapper agentstatisticsMapper;
/**
* 查询统计出港业务数据接口
*/
@GetMapping("/analysis")
public ResultJson analysis(@RequestParam(value = "startdate",required = true) String startdate,
@RequestParam(value = "enddate",required = true) String enddate){
Map map = new HashMap();
map.put("startdate",startdate);
map.put("enddate",enddate);
List<ORIGINMANIFESTMASTER> list = agentstatisticsMapper.statistics(map);
return new ResultJson("200","success",list);
}
}
... ...
package com.tianbo.imfClient.controller;
import com.tianbo.imfClient.dao.ORIGINMANIFESTMASTERMapper;
import com.tianbo.imfClient.model.ORIGINMANIFESTMASTER;
import com.tianbo.imfClient.model.ResultJson;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 出港运抵服务接口
*/
@RestController
@RequestMapping("/nmmsAnalysis")
public class NmmsAnalysisController {
@Autowired
private ORIGINMANIFESTMASTERMapper mapper;
/**
* 查询统计出港业务数据接口
*/
@GetMapping("/analysis")
public ResultJson analysis(@RequestParam(value = "startdate",required = true) String startdate,
@RequestParam(value = "enddate",required = true) String enddate){
Map map = new HashMap();
map.put("startdate",startdate);
map.put("enddate",enddate);
List<ORIGINMANIFESTMASTER> list = mapper.analysis(map);
return new ResultJson("200","success",list);
}
}
... ...
package com.tianbo.imfClient.dao;
import com.tianbo.imfClient.model.ORIGINMANIFESTMASTER;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Resource
public interface AGENTSTATISTICSMapper {
List<ORIGINMANIFESTMASTER> statistics(Map map);
}
\ No newline at end of file
... ...
... ... @@ -3,8 +3,13 @@ package com.tianbo.imfClient.dao;
import com.tianbo.imfClient.model.ORIGINMANIFESTMASTER;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public interface ORIGINMANIFESTMASTERMapper {
List<ORIGINMANIFESTMASTER> analysis(Map map);
int insert(ORIGINMANIFESTMASTER record);
int insertSelective(ORIGINMANIFESTMASTER record);
... ...
package com.tianbo.imfClient.model;
import lombok.Data;
@Data
public class AnalysisBaseModel {
private String chinesedescription;
private String destinationstationcn;
private String countrydescchn;
private String areadescchn;
private String waybillnosecondary;
}
... ...
... ... @@ -2,7 +2,7 @@ package com.tianbo.imfClient.model;
import java.util.Date;
public class ORIGINMANIFESTMASTER {
public class ORIGINMANIFESTMASTER extends AnalysisBaseModel{
private String autoid;
private String waybillnomaster;
... ... @@ -443,3 +443,4 @@ public class ORIGINMANIFESTMASTER {
this.consigneePhone = consigneePhone == null ? null : consigneePhone.trim();
}
}
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.tianbo.imfClient.dao.AGENTSTATISTICSMapper" >
<resultMap id="BaseResultMap" type="com.tianbo.imfClient.model.ORIGINMANIFESTMASTER" >
<result column="运单号" property="autoid" jdbcType="VARCHAR" />
<result column="航空托运人名称" property="waybillnomaster" jdbcType="VARCHAR" />
<result column="航空销售代理人名称" property="segment" jdbcType="VARCHAR" />
<result column="航协编号" property="originatingstation" jdbcType="VARCHAR" />
<result column="航空公司运输证明" property="destinationstation" jdbcType="VARCHAR" />
<result column="运输条件鉴定书" property="totalweight" jdbcType="VARCHAR" />
<result column="承运人" property="totalpiece" jdbcType="VARCHAR" />
<result column="航班号" property="manifesttotalpiece" jdbcType="VARCHAR" />
<result column="航班日期" property="manifesttotalweight" jdbcType="VARCHAR" />
<result column="航班起始站" property="flightno" jdbcType="VARCHAR" />
<result column="航班目的站" property="productname" jdbcType="VARCHAR" />
<result column="运单件数" property="customsstatus" jdbcType="VARCHAR" />
<result column="运单重量" property="carrier1" jdbcType="VARCHAR" />
<result column="操作时间" property="arrivalstation1" jdbcType="VARCHAR" />
<result column="关区" property="carrier2" jdbcType="VARCHAR" />
<result column="预配品名" property="arrivalstation2" jdbcType="VARCHAR" />
<result column="收货人公司" property="carrier3" jdbcType="VARCHAR" />
<result column="收货人地址" property="arrivalstation3" jdbcType="VARCHAR" />
<result column="收货人城市" property="paymode" jdbcType="VARCHAR" />
<result column="收货人国家" property="specialgoodscode" jdbcType="VARCHAR" />
<result column="收货人电话" property="customscode" jdbcType="VARCHAR" />
<result column="收货人名称" property="shippername" jdbcType="VARCHAR" />
<result column="发货人名称" property="shipperaddress" jdbcType="VARCHAR" />
<result column="发货人地址" property="consigneename" jdbcType="VARCHAR" />
<result column="发货人城市" property="consigneeaddress" jdbcType="VARCHAR" />
<result column="发货人国家" property="receiptinformation" jdbcType="VARCHAR" />
<result column="发货人电话" property="specificConsigneePhone" jdbcType="VARCHAR" />
<result column="发货人名称" property="consigneePhone" jdbcType="VARCHAR" />
<result column="海关回执状态" property="status" jdbcType="VARCHAR" />
<result column="海关回执信息" property="isbatch" jdbcType="VARCHAR" />
<result column="发货人编码" property="originatingstationBill" jdbcType="VARCHAR" />
<result column="收货人编码" property="destinationstationBill" jdbcType="VARCHAR" />
<result column="货物品名" property="reportorder" jdbcType="VARCHAR" />
<result column="二级类名称" property="islast" jdbcType="VARCHAR" />
<result column="一级类名称" property="shipperCode" jdbcType="VARCHAR" />
<result column="代理人三字码" property="shipperCountrycode" jdbcType="VARCHAR" />
<result column="代理人全称" property="shipperPhone" jdbcType="VARCHAR" />
<result column="代理人类别" property="shipperFax" jdbcType="VARCHAR" />
<result column="代理联系人" property="consigneeCode" jdbcType="VARCHAR" />
<result column="代理联系人电话" property="consigneeCountrycode" jdbcType="VARCHAR" />
</resultMap>
<select id="statistics" resultMap="BaseResultMap" parameterType="java.util.Map">
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( #{startdate,jdbcType=VARCHAR}, 'yyyy-mm-dd' )
AND to_date(#{enddate,jdbcType=VARCHAR},'yyyy-mm-dd')
ORDER BY MF.FLIGHTDATE
</select>
</mapper>
\ No newline at end of file
... ...
... ... @@ -4,9 +4,12 @@
<resultMap id="BaseResultMap" type="com.tianbo.imfClient.model.ORIGINMANIFESTMASTER" >
<result column="AUTOID" property="autoid" jdbcType="VARCHAR" />
<result column="WAYBILLNOMASTER" property="waybillnomaster" jdbcType="VARCHAR" />
<result column="WAYBILLNOSECONDARY" property="waybillnosecondary" jdbcType="VARCHAR" />
<result column="SEGMENT" property="segment" jdbcType="VARCHAR" />
<result column="ORIGINATINGSTATION" property="originatingstation" jdbcType="VARCHAR" />
<result column="ORIGINATINGSTATIONCN" property="chinesedescription" jdbcType="VARCHAR" />
<result column="DESTINATIONSTATION" property="destinationstation" jdbcType="VARCHAR" />
<result column="DESTINATIONSTATIONCN" property="destinationstationcn" jdbcType="VARCHAR" />
<result column="TOTALWEIGHT" property="totalweight" jdbcType="VARCHAR" />
<result column="TOTALPIECE" property="totalpiece" jdbcType="VARCHAR" />
<result column="MANIFESTTOTALPIECE" property="manifesttotalpiece" jdbcType="VARCHAR" />
... ... @@ -46,7 +49,86 @@
<result column="SPECIFIC_CONSIGNEENAME" property="specificConsigneename" jdbcType="VARCHAR" />
<result column="SPECIFIC_CONSIGNEE_PHONE" property="specificConsigneePhone" jdbcType="VARCHAR" />
<result column="CONSIGNEE_PHONE" property="consigneePhone" jdbcType="VARCHAR" />
<result column="COUNTRYDESCCHN" property="countrydescchn" jdbcType="VARCHAR" />
<result column="AREADESCCHN" property="areadescchn" jdbcType="VARCHAR" />
</resultMap>
<select id="analysis" resultMap="BaseResultMap" parameterType="java.util.Map">
SELECT
T.FLIGHTNO,
T.FLIGHT_DATE,
T.SEGMENT,
T.WAYBILLNOMASTER,
T.WAYBILLNOSECONDARY,
T.TOTALPIECE,
T.TOTALWEIGHT,
T.MANIFESTTOTALPIECE,
T.MANIFESTTOTALWEIGHT,
T.PRODUCTNAME,
T.ORIGINATINGSTATION,
C.CHINESEDESCRIPTION as ORIGINATINGSTATIONCN,
T.DESTINATIONSTATION,
C1.CHINESEDESCRIPTION AS DESTINATIONSTATIONCN,
T.SHIPPER_COUNTRYCODE,
COUNTRY.COUNTRYDESCCHN,
AREA.AREADESCCHN
FROM
(
SELECT
M.FLIGHTNO AS FLIGHTNO,
M.FLIGHT_DATE AS FLIGHT_DATE,
M.SEGMENT AS SEGMENT,
M.WAYBILLNOMASTER AS WAYBILLNOMASTER,
'' AS WAYBILLNOSECONDARY,
M.TOTALPIECE AS TOTALPIECE,
M.TOTALWEIGHT AS TOTALWEIGHT,
M.MANIFESTTOTALPIECE AS MANIFESTTOTALPIECE,
M.MANIFESTTOTALWEIGHT AS MANIFESTTOTALWEIGHT,
M.PRODUCTNAME AS PRODUCTNAME,
M.ORIGINATINGSTATION AS ORIGINATINGSTATION,
M.DESTINATIONSTATION AS DESTINATIONSTATION,
M.SHIPPER_COUNTRYCODE AS SHIPPER_COUNTRYCODE
FROM
ORIGINMANIFESTMASTER M UNION
SELECT
awbh.FLIGHTNO AS FLIGHTNO,
awbh.FLIGHT_DATE AS FLIGHT_DATE,
awbh.SEGMENT AS SEGMENT,
awbh.WAYBILLNOMASTER AS WAYBILLNOMASTER,
awbh.WAYBILLNOSECONDARY AS WAYBILLNOSECONDARY,
awbh.PIECE AS TOTALPIECE,
awbh.WEIGHT AS TOTALWEIGHT,
awbh.MANIFESTPIECE AS MANIFESTTOTALPIECE,
awbh.MANIFESTWEIGHT AS MANIFESTTOTALWEIGHT,
awbh.AWBHPRODUCTNAME AS PRODUCTNAME,
awbh.ORIGINATINGSTATION AS ORIGINATINGSTATION,
awbh.DESTINATIONSTATION AS DESTINATIONSTATION,
awbh.AWBHSHIPPER_COUNTRYCODE AS SHIPPER_COUNTRYCODE
FROM
V_AWBA_AWBH awbh
) T
LEFT JOIN
TB_AIRPORTCODE C
ON
C.CITYCODE = T.ORIGINATINGSTATION
LEFT JOIN
TB_AIRPORTCODE C1
ON
C1.CITYCODE = T.DESTINATIONSTATION
LEFT JOIN
T_BAS_COUNTRY COUNTRY
ON
COUNTRY.COUNTRYID = T.SHIPPER_COUNTRYCODE
LEFT JOIN
T_BAS_AREA AREA
ON
C.AREA = AREA.AREAID
WHERE
trunc( T.FLIGHT_DATE ) BETWEEN to_date( #{startdate,jdbcType=VARCHAR}, 'yyyy-mm-dd' )
AND to_date(#{enddate,jdbcType=VARCHAR},'yyyy-mm-dd')
ORDER BY T.FLIGHT_DATE,T.FLIGHTNO,WAYBILLNOMASTER,WAYBILLNOSECONDARY DESC
</select>
<insert id="insert" parameterType="com.tianbo.imfClient.model.ORIGINMANIFESTMASTER" >
insert into ORIGINMANIFESTMASTER (AUTOID, WAYBILLNOMASTER, SEGMENT,
ORIGINATINGSTATION, DESTINATIONSTATION,
... ...