作者 朱兆平

add:

1. 增加转关运抵统计接口

Signed-off-by: mrz <17966059@qq.com>
... ... @@ -3,6 +3,7 @@ package com.tianbo.analysis.controller;
import com.github.pagehelper.PageInfo;
import com.tianbo.analysis.model.ResultJson;
import com.tianbo.analysis.model.TRANSTOARRIVEEXPORT;
import com.tianbo.analysis.model.TransArriveAnalysis;
import com.tianbo.analysis.service.TransArriveExportService;
import com.tianbo.util.Date.DateUtil;
... ... @@ -95,4 +96,11 @@ public class TransArriveExportController {
public ResultJson batchSend(@RequestBody List<String> autoIDlist){
return transArriveExportService.batchSend(autoIDlist);
}
@ApiOperation(value = "转关运抵统计")
@PostMapping("totalAnalysis")
public ResultJson totalAnalysis(){
List<TransArriveAnalysis> analysis = transArriveExportService.analysis();
return new ResultJson("200","success",analysis);
}
}
... ...
package com.tianbo.analysis.dao;
import com.tianbo.analysis.model.TransArriveAnalysis;
import java.util.List;
public interface TransArriveAnalysisMapper {
List<TransArriveAnalysis> YearAnalysis();
List<TransArriveAnalysis> WeekAnalysis();
}
... ...
package com.tianbo.analysis.model;
import lombok.Data;
import java.math.BigDecimal;
/**
* 转关运抵统计
*/
@Data
public class TransArriveAnalysis {
private String date;
private String dateName;
private BigDecimal totalWeight;
private BigDecimal totalCount;
private String type;
}
... ...
... ... @@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo;
import com.tianbo.analysis.model.MANIFEST_AIR_CHANGE;
import com.tianbo.analysis.model.ResultJson;
import com.tianbo.analysis.model.TRANSTOARRIVEEXPORT;
import com.tianbo.analysis.model.TransArriveAnalysis;
import java.util.List;
... ... @@ -16,4 +17,6 @@ public interface TransArriveExportService {
ResultJson batchSend(List<String> autoIDlist);
List<TRANSTOARRIVEEXPORT> selectListByAutoIDS(List<String> autoIDlist);
List<TransArriveAnalysis> analysis();
}
... ...
... ... @@ -4,13 +4,11 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.tianbo.analysis.config.CustomsProperties;
import com.tianbo.analysis.dao.TRANSTOARRIVEEXPORTMapper;
import com.tianbo.analysis.dao.TransArriveAnalysisMapper;
import com.tianbo.analysis.dao.TransToArriveExportResonseDao;
import com.tianbo.analysis.exception.FFMResolveException;
import com.tianbo.analysis.exception.TransArriveException;
import com.tianbo.analysis.model.MANIFEST_AIR_CHANGE;
import com.tianbo.analysis.model.ResultJson;
import com.tianbo.analysis.model.TRANSTOARRIVEEXPORT;
import com.tianbo.analysis.model.TransToArriveExportResonse;
import com.tianbo.analysis.model.*;
import com.tianbo.analysis.service.MQ;
import com.tianbo.analysis.service.TransArriveExportService;
import com.tianbo.analysis.tools.TransArriveTools;
... ... @@ -57,6 +55,9 @@ public class TransArriveExportImpl implements TransArriveExportService {
@Resource
TransToArriveExportResonseDao toArriveExportResonseDao;
@Resource
TransArriveAnalysisMapper transArriveAnalysisMapper;
... ... @@ -225,4 +226,12 @@ public class TransArriveExportImpl implements TransArriveExportService {
toArriveExportResonseDao.insertSelective(toArriveExportResonse);
}
@Override
public List<TransArriveAnalysis> analysis() {
List<TransArriveAnalysis> weekAnalysis = transArriveAnalysisMapper.WeekAnalysis();
List<TransArriveAnalysis> yearAnalysis = transArriveAnalysisMapper.YearAnalysis();
yearAnalysis.addAll(weekAnalysis);
return yearAnalysis;
}
}
... ...
<?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.analysis.dao.TransArriveAnalysisMapper" >
<resultMap id="BaseResultMap" type="com.tianbo.analysis.model.TransArriveAnalysis" >
<result column="CREATTIME" property="date" jdbcType="VARCHAR" />
<result column="DATE_NAME" property="dateName" jdbcType="VARCHAR" />
<result column="TOTAL_WEIGHT" property="totalWeight" jdbcType="DECIMAL" />
<result column="TOTAL_COUNT" property="totalCount" jdbcType="DECIMAL" />
<result column="_TYPE" property="type" jdbcType="DECIMAL" />
</resultMap>
<sql id="Month_Column_List" >
CREATTIME,DATE_NAME,TOTAL_WEIGHT,TOTAL_COUNT,_TYPE
</sql>
<sql id="thisWeekAnalysisSql">
-- 本周每日统计
WITH date_range AS (
SELECT TRUNC(SYSDATE, 'IW') + LEVEL - 1 AS date_val
FROM DUAL
CONNECT BY LEVEL &lt;= 7
)
SELECT
TO_CHAR(date_range.date_val, 'YYYY-MM-DD') AS CREATTIME,
COALESCE(SUM(GROSSWT), 0) AS TOTAL_WEIGHT,
COUNT(BILLNO) AS TOTAL_COUNT,
CASE
WHEN TO_CHAR(date_range.date_val, 'DY') = 'MON' THEN '周一'
WHEN TO_CHAR(date_range.date_val, 'DY') = 'TUE' THEN '周二'
WHEN TO_CHAR(date_range.date_val, 'DY') = 'WED' THEN '周三'
WHEN TO_CHAR(date_range.date_val, 'DY') = 'THU' THEN '周四'
WHEN TO_CHAR(date_range.date_val, 'DY') = 'FRI' THEN '周五'
WHEN TO_CHAR(date_range.date_val, 'DY') = 'SAT' THEN '周六'
WHEN TO_CHAR(date_range.date_val, 'DY') = 'SUN' THEN '周日'
END AS DATE_NAME,
'thisWeek' AS _TYPE
FROM
date_range
LEFT JOIN
CGONMS.TRANS_TO_ARRIVE_EXPORT
ON
date_range.date_val = TRUNC(ARRIVETIME)
GROUP BY
TO_CHAR(date_range.date_val, 'YYYY-MM-DD'),
TO_CHAR(date_range.date_val, 'DY'),
_TYPE
ORDER BY
TO_CHAR(date_range.date_val, 'YYYY-MM-DD')
</sql>
<sql id="lastWeekAnalysisSql">
-- 上周每日统计
WITH date_range AS (
SELECT TRUNC(SYSDATE, 'IW') - 7 + LEVEL - 1 AS date_val
FROM DUAL
CONNECT BY LEVEL &lt;= 7
)
SELECT
TO_CHAR(date_range.date_val, 'YYYY-MM-DD') AS CREATTIME,
COALESCE(SUM(GROSSWT), 0) AS TOTAL_WEIGHT,
COUNT(BILLNO) AS TOTAL_COUNT,
CASE
WHEN TO_CHAR(date_range.date_val, 'DY') = 'MON' THEN '周一'
WHEN TO_CHAR(date_range.date_val, 'DY') = 'TUE' THEN '周二'
WHEN TO_CHAR(date_range.date_val, 'DY') = 'WED' THEN '周三'
WHEN TO_CHAR(date_range.date_val, 'DY') = 'THU' THEN '周四'
WHEN TO_CHAR(date_range.date_val, 'DY') = 'FRI' THEN '周五'
WHEN TO_CHAR(date_range.date_val, 'DY') = 'SAT' THEN '周六'
WHEN TO_CHAR(date_range.date_val, 'DY') = 'SUN' THEN '周日'
END AS DATE_NAME,
'lastWeek' AS _TYPE
FROM
date_range
LEFT JOIN
CGONMS.TRANS_TO_ARRIVE_EXPORT
ON
date_range.date_val = TRUNC(ARRIVETIME)
GROUP BY
TO_CHAR(date_range.date_val, 'YYYY-MM-DD'),
TO_CHAR(date_range.date_val, 'DY'),
_TYPE
ORDER BY
TO_CHAR(date_range.date_val, 'YYYY-MM-DD')
</sql>
<sql id="lastYearAnalysisSql">
-- 去年每月统计
SELECT
TO_CHAR(CREATTIME, 'YYYY-MM') AS CREATTIME,
CASE
WHEN TO_CHAR(CREATTIME, 'MM') = '01' THEN '一月'
WHEN TO_CHAR(CREATTIME, 'MM') = '02' THEN '二月'
WHEN TO_CHAR(CREATTIME, 'MM') = '03' THEN '三月'
WHEN TO_CHAR(CREATTIME, 'MM') = '04' THEN '四月'
WHEN TO_CHAR(CREATTIME, 'MM') = '05' THEN '五月'
WHEN TO_CHAR(CREATTIME, 'MM') = '06' THEN '六月'
WHEN TO_CHAR(CREATTIME, 'MM') = '07' THEN '七月'
WHEN TO_CHAR(CREATTIME, 'MM') = '08' THEN '八月'
WHEN TO_CHAR(CREATTIME, 'MM') = '09' THEN '九月'
WHEN TO_CHAR(CREATTIME, 'MM') = '10' THEN '十月'
WHEN TO_CHAR(CREATTIME, 'MM') = '11' THEN '十一月'
WHEN TO_CHAR(CREATTIME, 'MM') = '12' THEN '十二月'
END AS DATE_NAME,
SUM(GROSSWT) AS TOTAL_WEIGHT,
count(BILLNO) AS TOTAL_COUNT,
'lastYear' AS _TYPE
FROM
CGONMS.TRANS_TO_ARRIVE_EXPORT
WHERE
-- 去年数据
EXTRACT(YEAR FROM CREATTIME) = EXTRACT(YEAR FROM SYSDATE) - 1
GROUP BY
TO_CHAR(CREATTIME, 'YYYY-MM'),
TO_CHAR(CREATTIME, 'MM'),
_TYPE
ORDER BY
TO_CHAR(CREATTIME, 'YYYY-MM')
</sql>
<sql id="thisYearAnalysisSql">
-- 本年统计
SELECT
TO_CHAR(CREATTIME, 'YYYY-MM') AS CREATTIME,
CASE
WHEN TO_CHAR(CREATTIME, 'MM') = '01' THEN '一月'
WHEN TO_CHAR(CREATTIME, 'MM') = '02' THEN '二月'
WHEN TO_CHAR(CREATTIME, 'MM') = '03' THEN '三月'
WHEN TO_CHAR(CREATTIME, 'MM') = '04' THEN '四月'
WHEN TO_CHAR(CREATTIME, 'MM') = '05' THEN '五月'
WHEN TO_CHAR(CREATTIME, 'MM') = '06' THEN '六月'
WHEN TO_CHAR(CREATTIME, 'MM') = '07' THEN '七月'
WHEN TO_CHAR(CREATTIME, 'MM') = '08' THEN '八月'
WHEN TO_CHAR(CREATTIME, 'MM') = '09' THEN '九月'
WHEN TO_CHAR(CREATTIME, 'MM') = '10' THEN '十月'
WHEN TO_CHAR(CREATTIME, 'MM') = '11' THEN '十一月'
WHEN TO_CHAR(CREATTIME, 'MM') = '12' THEN '十二月'
END AS DATE_NAME,
SUM(GROSSWT) AS TOTAL_WEIGHT,
count(BILLNO) AS TOTAL_COUNT,
'thisYear' AS _TYPE
FROM
CGONMS.TRANS_TO_ARRIVE_EXPORT
WHERE
-- 当年数据
EXTRACT(YEAR FROM CREATTIME) = EXTRACT(YEAR FROM SYSDATE)
GROUP BY
TO_CHAR(CREATTIME, 'YYYY-MM'),
TO_CHAR(CREATTIME, 'MM'),
_TYPE
ORDER BY
TO_CHAR(CREATTIME, 'YYYY-MM')
</sql>
<select id="YearAnalysis" resultMap="BaseResultMap" >
SELECT * FROM (
SELECT * FROM (
(<include refid="thisYearAnalysisSql"/>)
union
(<include refid="lastYearAnalysisSql"/>)
)
) as T
order by T.CREATTIME
</select>
<select id="WeekAnalysis" resultMap="BaseResultMap">
SELECT * FROM (
SELECT * FROM (
(<include refid="thisWeekAnalysisSql"/>)
union
(<include refid="lastWeekAnalysisSql"/>)
)
) as T
order by T.CREATTIME
</select>
</mapper>
... ...