作者 朱兆平

add:

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

Signed-off-by: mrz <17966059@qq.com>
@@ -3,6 +3,7 @@ package com.tianbo.analysis.controller; @@ -3,6 +3,7 @@ package com.tianbo.analysis.controller;
3 import com.github.pagehelper.PageInfo; 3 import com.github.pagehelper.PageInfo;
4 import com.tianbo.analysis.model.ResultJson; 4 import com.tianbo.analysis.model.ResultJson;
5 import com.tianbo.analysis.model.TRANSTOARRIVEEXPORT; 5 import com.tianbo.analysis.model.TRANSTOARRIVEEXPORT;
  6 +import com.tianbo.analysis.model.TransArriveAnalysis;
6 import com.tianbo.analysis.service.TransArriveExportService; 7 import com.tianbo.analysis.service.TransArriveExportService;
7 8
8 import com.tianbo.util.Date.DateUtil; 9 import com.tianbo.util.Date.DateUtil;
@@ -95,4 +96,11 @@ public class TransArriveExportController { @@ -95,4 +96,11 @@ public class TransArriveExportController {
95 public ResultJson batchSend(@RequestBody List<String> autoIDlist){ 96 public ResultJson batchSend(@RequestBody List<String> autoIDlist){
96 return transArriveExportService.batchSend(autoIDlist); 97 return transArriveExportService.batchSend(autoIDlist);
97 } 98 }
  99 +
  100 + @ApiOperation(value = "转关运抵统计")
  101 + @PostMapping("totalAnalysis")
  102 + public ResultJson totalAnalysis(){
  103 + List<TransArriveAnalysis> analysis = transArriveExportService.analysis();
  104 + return new ResultJson("200","success",analysis);
  105 + }
98 } 106 }
  1 +package com.tianbo.analysis.dao;
  2 +
  3 +import com.tianbo.analysis.model.TransArriveAnalysis;
  4 +
  5 +import java.util.List;
  6 +
  7 +public interface TransArriveAnalysisMapper {
  8 +
  9 + List<TransArriveAnalysis> YearAnalysis();
  10 + List<TransArriveAnalysis> WeekAnalysis();
  11 +}
  1 +package com.tianbo.analysis.model;
  2 +
  3 +import lombok.Data;
  4 +
  5 +import java.math.BigDecimal;
  6 +
  7 +/**
  8 + * 转关运抵统计
  9 + */
  10 +@Data
  11 +public class TransArriveAnalysis {
  12 + private String date;
  13 +
  14 + private String dateName;
  15 +
  16 + private BigDecimal totalWeight;
  17 +
  18 + private BigDecimal totalCount;
  19 +
  20 + private String type;
  21 +
  22 +}
@@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo; @@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo;
4 import com.tianbo.analysis.model.MANIFEST_AIR_CHANGE; 4 import com.tianbo.analysis.model.MANIFEST_AIR_CHANGE;
5 import com.tianbo.analysis.model.ResultJson; 5 import com.tianbo.analysis.model.ResultJson;
6 import com.tianbo.analysis.model.TRANSTOARRIVEEXPORT; 6 import com.tianbo.analysis.model.TRANSTOARRIVEEXPORT;
  7 +import com.tianbo.analysis.model.TransArriveAnalysis;
7 8
8 import java.util.List; 9 import java.util.List;
9 10
@@ -16,4 +17,6 @@ public interface TransArriveExportService { @@ -16,4 +17,6 @@ public interface TransArriveExportService {
16 ResultJson batchSend(List<String> autoIDlist); 17 ResultJson batchSend(List<String> autoIDlist);
17 18
18 List<TRANSTOARRIVEEXPORT> selectListByAutoIDS(List<String> autoIDlist); 19 List<TRANSTOARRIVEEXPORT> selectListByAutoIDS(List<String> autoIDlist);
  20 +
  21 + List<TransArriveAnalysis> analysis();
19 } 22 }
@@ -4,13 +4,11 @@ import com.github.pagehelper.PageHelper; @@ -4,13 +4,11 @@ import com.github.pagehelper.PageHelper;
4 import com.github.pagehelper.PageInfo; 4 import com.github.pagehelper.PageInfo;
5 import com.tianbo.analysis.config.CustomsProperties; 5 import com.tianbo.analysis.config.CustomsProperties;
6 import com.tianbo.analysis.dao.TRANSTOARRIVEEXPORTMapper; 6 import com.tianbo.analysis.dao.TRANSTOARRIVEEXPORTMapper;
  7 +import com.tianbo.analysis.dao.TransArriveAnalysisMapper;
7 import com.tianbo.analysis.dao.TransToArriveExportResonseDao; 8 import com.tianbo.analysis.dao.TransToArriveExportResonseDao;
8 import com.tianbo.analysis.exception.FFMResolveException; 9 import com.tianbo.analysis.exception.FFMResolveException;
9 import com.tianbo.analysis.exception.TransArriveException; 10 import com.tianbo.analysis.exception.TransArriveException;
10 -import com.tianbo.analysis.model.MANIFEST_AIR_CHANGE;  
11 -import com.tianbo.analysis.model.ResultJson;  
12 -import com.tianbo.analysis.model.TRANSTOARRIVEEXPORT;  
13 -import com.tianbo.analysis.model.TransToArriveExportResonse; 11 +import com.tianbo.analysis.model.*;
14 import com.tianbo.analysis.service.MQ; 12 import com.tianbo.analysis.service.MQ;
15 import com.tianbo.analysis.service.TransArriveExportService; 13 import com.tianbo.analysis.service.TransArriveExportService;
16 import com.tianbo.analysis.tools.TransArriveTools; 14 import com.tianbo.analysis.tools.TransArriveTools;
@@ -57,6 +55,9 @@ public class TransArriveExportImpl implements TransArriveExportService { @@ -57,6 +55,9 @@ public class TransArriveExportImpl implements TransArriveExportService {
57 @Resource 55 @Resource
58 TransToArriveExportResonseDao toArriveExportResonseDao; 56 TransToArriveExportResonseDao toArriveExportResonseDao;
59 57
  58 + @Resource
  59 + TransArriveAnalysisMapper transArriveAnalysisMapper;
  60 +
60 61
61 62
62 63
@@ -225,4 +226,12 @@ public class TransArriveExportImpl implements TransArriveExportService { @@ -225,4 +226,12 @@ public class TransArriveExportImpl implements TransArriveExportService {
225 226
226 toArriveExportResonseDao.insertSelective(toArriveExportResonse); 227 toArriveExportResonseDao.insertSelective(toArriveExportResonse);
227 } 228 }
  229 +
  230 + @Override
  231 + public List<TransArriveAnalysis> analysis() {
  232 + List<TransArriveAnalysis> weekAnalysis = transArriveAnalysisMapper.WeekAnalysis();
  233 + List<TransArriveAnalysis> yearAnalysis = transArriveAnalysisMapper.YearAnalysis();
  234 + yearAnalysis.addAll(weekAnalysis);
  235 + return yearAnalysis;
  236 + }
228 } 237 }
  1 +<?xml version="1.0" encoding="UTF-8" ?>
  2 +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3 +<mapper namespace="com.tianbo.analysis.dao.TransArriveAnalysisMapper" >
  4 + <resultMap id="BaseResultMap" type="com.tianbo.analysis.model.TransArriveAnalysis" >
  5 + <result column="CREATTIME" property="date" jdbcType="VARCHAR" />
  6 + <result column="DATE_NAME" property="dateName" jdbcType="VARCHAR" />
  7 + <result column="TOTAL_WEIGHT" property="totalWeight" jdbcType="DECIMAL" />
  8 + <result column="TOTAL_COUNT" property="totalCount" jdbcType="DECIMAL" />
  9 + <result column="_TYPE" property="type" jdbcType="DECIMAL" />
  10 + </resultMap>
  11 +
  12 + <sql id="Month_Column_List" >
  13 + CREATTIME,DATE_NAME,TOTAL_WEIGHT,TOTAL_COUNT,_TYPE
  14 + </sql>
  15 +
  16 + <sql id="thisWeekAnalysisSql">
  17 + -- 本周每日统计
  18 + WITH date_range AS (
  19 + SELECT TRUNC(SYSDATE, 'IW') + LEVEL - 1 AS date_val
  20 + FROM DUAL
  21 + CONNECT BY LEVEL &lt;= 7
  22 + )
  23 + SELECT
  24 + TO_CHAR(date_range.date_val, 'YYYY-MM-DD') AS CREATTIME,
  25 + COALESCE(SUM(GROSSWT), 0) AS TOTAL_WEIGHT,
  26 + COUNT(BILLNO) AS TOTAL_COUNT,
  27 + CASE
  28 + WHEN TO_CHAR(date_range.date_val, 'DY') = 'MON' THEN '周一'
  29 + WHEN TO_CHAR(date_range.date_val, 'DY') = 'TUE' THEN '周二'
  30 + WHEN TO_CHAR(date_range.date_val, 'DY') = 'WED' THEN '周三'
  31 + WHEN TO_CHAR(date_range.date_val, 'DY') = 'THU' THEN '周四'
  32 + WHEN TO_CHAR(date_range.date_val, 'DY') = 'FRI' THEN '周五'
  33 + WHEN TO_CHAR(date_range.date_val, 'DY') = 'SAT' THEN '周六'
  34 + WHEN TO_CHAR(date_range.date_val, 'DY') = 'SUN' THEN '周日'
  35 + END AS DATE_NAME,
  36 + 'thisWeek' AS _TYPE
  37 + FROM
  38 + date_range
  39 + LEFT JOIN
  40 + CGONMS.TRANS_TO_ARRIVE_EXPORT
  41 + ON
  42 + date_range.date_val = TRUNC(ARRIVETIME)
  43 + GROUP BY
  44 + TO_CHAR(date_range.date_val, 'YYYY-MM-DD'),
  45 + TO_CHAR(date_range.date_val, 'DY'),
  46 + _TYPE
  47 + ORDER BY
  48 + TO_CHAR(date_range.date_val, 'YYYY-MM-DD')
  49 + </sql>
  50 + <sql id="lastWeekAnalysisSql">
  51 + -- 上周每日统计
  52 + WITH date_range AS (
  53 + SELECT TRUNC(SYSDATE, 'IW') - 7 + LEVEL - 1 AS date_val
  54 + FROM DUAL
  55 + CONNECT BY LEVEL &lt;= 7
  56 + )
  57 + SELECT
  58 + TO_CHAR(date_range.date_val, 'YYYY-MM-DD') AS CREATTIME,
  59 + COALESCE(SUM(GROSSWT), 0) AS TOTAL_WEIGHT,
  60 + COUNT(BILLNO) AS TOTAL_COUNT,
  61 + CASE
  62 + WHEN TO_CHAR(date_range.date_val, 'DY') = 'MON' THEN '周一'
  63 + WHEN TO_CHAR(date_range.date_val, 'DY') = 'TUE' THEN '周二'
  64 + WHEN TO_CHAR(date_range.date_val, 'DY') = 'WED' THEN '周三'
  65 + WHEN TO_CHAR(date_range.date_val, 'DY') = 'THU' THEN '周四'
  66 + WHEN TO_CHAR(date_range.date_val, 'DY') = 'FRI' THEN '周五'
  67 + WHEN TO_CHAR(date_range.date_val, 'DY') = 'SAT' THEN '周六'
  68 + WHEN TO_CHAR(date_range.date_val, 'DY') = 'SUN' THEN '周日'
  69 + END AS DATE_NAME,
  70 + 'lastWeek' AS _TYPE
  71 + FROM
  72 + date_range
  73 + LEFT JOIN
  74 + CGONMS.TRANS_TO_ARRIVE_EXPORT
  75 + ON
  76 + date_range.date_val = TRUNC(ARRIVETIME)
  77 + GROUP BY
  78 + TO_CHAR(date_range.date_val, 'YYYY-MM-DD'),
  79 + TO_CHAR(date_range.date_val, 'DY'),
  80 + _TYPE
  81 + ORDER BY
  82 + TO_CHAR(date_range.date_val, 'YYYY-MM-DD')
  83 + </sql>
  84 + <sql id="lastYearAnalysisSql">
  85 + -- 去年每月统计
  86 + SELECT
  87 + TO_CHAR(CREATTIME, 'YYYY-MM') AS CREATTIME,
  88 + CASE
  89 + WHEN TO_CHAR(CREATTIME, 'MM') = '01' THEN '一月'
  90 + WHEN TO_CHAR(CREATTIME, 'MM') = '02' THEN '二月'
  91 + WHEN TO_CHAR(CREATTIME, 'MM') = '03' THEN '三月'
  92 + WHEN TO_CHAR(CREATTIME, 'MM') = '04' THEN '四月'
  93 + WHEN TO_CHAR(CREATTIME, 'MM') = '05' THEN '五月'
  94 + WHEN TO_CHAR(CREATTIME, 'MM') = '06' THEN '六月'
  95 + WHEN TO_CHAR(CREATTIME, 'MM') = '07' THEN '七月'
  96 + WHEN TO_CHAR(CREATTIME, 'MM') = '08' THEN '八月'
  97 + WHEN TO_CHAR(CREATTIME, 'MM') = '09' THEN '九月'
  98 + WHEN TO_CHAR(CREATTIME, 'MM') = '10' THEN '十月'
  99 + WHEN TO_CHAR(CREATTIME, 'MM') = '11' THEN '十一月'
  100 + WHEN TO_CHAR(CREATTIME, 'MM') = '12' THEN '十二月'
  101 + END AS DATE_NAME,
  102 + SUM(GROSSWT) AS TOTAL_WEIGHT,
  103 + count(BILLNO) AS TOTAL_COUNT,
  104 + 'lastYear' AS _TYPE
  105 + FROM
  106 + CGONMS.TRANS_TO_ARRIVE_EXPORT
  107 + WHERE
  108 + -- 去年数据
  109 + EXTRACT(YEAR FROM CREATTIME) = EXTRACT(YEAR FROM SYSDATE) - 1
  110 + GROUP BY
  111 + TO_CHAR(CREATTIME, 'YYYY-MM'),
  112 + TO_CHAR(CREATTIME, 'MM'),
  113 + _TYPE
  114 + ORDER BY
  115 + TO_CHAR(CREATTIME, 'YYYY-MM')
  116 + </sql>
  117 + <sql id="thisYearAnalysisSql">
  118 + -- 本年统计
  119 + SELECT
  120 + TO_CHAR(CREATTIME, 'YYYY-MM') AS CREATTIME,
  121 + CASE
  122 + WHEN TO_CHAR(CREATTIME, 'MM') = '01' THEN '一月'
  123 + WHEN TO_CHAR(CREATTIME, 'MM') = '02' THEN '二月'
  124 + WHEN TO_CHAR(CREATTIME, 'MM') = '03' THEN '三月'
  125 + WHEN TO_CHAR(CREATTIME, 'MM') = '04' THEN '四月'
  126 + WHEN TO_CHAR(CREATTIME, 'MM') = '05' THEN '五月'
  127 + WHEN TO_CHAR(CREATTIME, 'MM') = '06' THEN '六月'
  128 + WHEN TO_CHAR(CREATTIME, 'MM') = '07' THEN '七月'
  129 + WHEN TO_CHAR(CREATTIME, 'MM') = '08' THEN '八月'
  130 + WHEN TO_CHAR(CREATTIME, 'MM') = '09' THEN '九月'
  131 + WHEN TO_CHAR(CREATTIME, 'MM') = '10' THEN '十月'
  132 + WHEN TO_CHAR(CREATTIME, 'MM') = '11' THEN '十一月'
  133 + WHEN TO_CHAR(CREATTIME, 'MM') = '12' THEN '十二月'
  134 + END AS DATE_NAME,
  135 + SUM(GROSSWT) AS TOTAL_WEIGHT,
  136 + count(BILLNO) AS TOTAL_COUNT,
  137 + 'thisYear' AS _TYPE
  138 + FROM
  139 + CGONMS.TRANS_TO_ARRIVE_EXPORT
  140 + WHERE
  141 + -- 当年数据
  142 + EXTRACT(YEAR FROM CREATTIME) = EXTRACT(YEAR FROM SYSDATE)
  143 + GROUP BY
  144 + TO_CHAR(CREATTIME, 'YYYY-MM'),
  145 + TO_CHAR(CREATTIME, 'MM'),
  146 + _TYPE
  147 + ORDER BY
  148 + TO_CHAR(CREATTIME, 'YYYY-MM')
  149 + </sql>
  150 + <select id="YearAnalysis" resultMap="BaseResultMap" >
  151 + SELECT * FROM (
  152 + SELECT * FROM (
  153 + (<include refid="thisYearAnalysisSql"/>)
  154 + union
  155 + (<include refid="lastYearAnalysisSql"/>)
  156 + )
  157 + ) as T
  158 + order by T.CREATTIME
  159 + </select>
  160 +
  161 + <select id="WeekAnalysis" resultMap="BaseResultMap">
  162 + SELECT * FROM (
  163 + SELECT * FROM (
  164 + (<include refid="thisWeekAnalysisSql"/>)
  165 + union
  166 + (<include refid="lastWeekAnalysisSql"/>)
  167 + )
  168 + ) as T
  169 + order by T.CREATTIME
  170 + </select>
  171 +
  172 +</mapper>