获取最近一年的统计数据

product
chuang 2 years ago
parent 4fde231057
commit 691c261585

@ -312,6 +312,17 @@ public class DateUtil {
calendar.set(getNowYear(), getNowMonth() - 2, 1);
return getDayStartTime(calendar.getTime());
}
/**
*
*
* @return
*/
public static Date getBeginDayOfLastMonth(int i) {
Calendar calendar = Calendar.getInstance(); //得到日历
calendar.setTime(new Date());//把当前时间赋给日历
calendar.add(calendar.MONTH, -i); //设置为前2月可根据需求进行修改
return calendar.getTime();//获取2个月前的时间
}
/**
*

@ -50,6 +50,14 @@ public class MessageCenterController {
@Autowired
private MessageCenterService messageCenterService;
/**
*
*/
@GetMapping(value = "/getOneYearData")
public ActionResult getOneYearData() throws Exception {
Map oneYearData= messageCenterService.getOneYearData();
return ActionResult.success(oneYearData);
}
/**
*
*/

@ -60,4 +60,16 @@ public interface MessageCenterMapper extends BaseMapper<MessageCenterEntity> {
* @return
*/
List<Map> getTadayPoundist();
/**
*
* @return
*/
List<Map<String,Object>> getSettAmountOneYearData();
/**
*
* @return
*/
List<Map<String,Object>> getQuantityNumOneYearData();
}

@ -60,4 +60,10 @@ public interface MessageCenterService extends IService<MessageCenterEntity> {
*/
Map getTadayPoundist();
/**
*
* @return
*/
Map getOneYearData();
}

@ -436,6 +436,32 @@ public class MessageCenterServiceImpl extends ServiceImpl<MessageCenterMapper, M
return messageCenterMapper.getTadayPoundist().get(0);
}
@Override
public Map getOneYearData() {
SimpleDateFormat dateFormat = new SimpleDateFormat("MM月");
ArrayList<String> yearDate = new ArrayList<>();
ArrayList<BigDecimal> settAmountOneYearData = new ArrayList<>();
ArrayList<BigDecimal> quantityNumOneYearData = new ArrayList<>();
ArrayList<BigDecimal> xData = new ArrayList<>();
HashMap<String, Object> oneYearDataMap = new HashMap<>();
for (int i = 11; i >= 0; i--) {
Date beginDayOfLastMonth = DateUtil.getBeginDayOfLastMonth(i);
yearDate.add(dateFormat.format(beginDayOfLastMonth));
}
List<Map<String,Object>> setList = messageCenterMapper.getSettAmountOneYearData();
List<Map<String,Object>> quanList = messageCenterMapper.getQuantityNumOneYearData();
for (int i = 11; i >=0 ; i--) {
settAmountOneYearData.add(BigDecimalUtil.getBigDecimal(setList.get(0).get("settlementAmount"+i)));
quantityNumOneYearData.add(BigDecimalUtil.getBigDecimal(quanList.get(0).get("quantityNum"+i)));
xData.add(BigDecimalUtil.getBigDecimal("0"));
}
oneYearDataMap.put("yearDate",yearDate);
oneYearDataMap.put("settAmountOneYearData",settAmountOneYearData);
oneYearDataMap.put("quantityNumOneYearData",quantityNumOneYearData);
oneYearDataMap.put("xData",xData);
return oneYearDataMap;
}
@Override
public void delete(MessageCenterEntity entity) {
if (entity != null) {

@ -468,4 +468,300 @@
NOW()) - TO_DAYS( a.creator_time ) = 0
) aaa
</select>
<resultMap id="getSettAmountOneYearDataMap" type="map">
<result property="settlementAmount0" column="settlementAmount0"/>
<result property="settlementAmount1" column="settlementAmount1"/>
<result property="settlementAmount2" column="settlementAmount2"/>
<result property="settlementAmount3" column="settlementAmount3"/>
<result property="settlementAmount4" column="settlementAmount4"/>
<result property="settlementAmount5" column="settlementAmount5"/>
<result property="settlementAmount6" column="settlementAmount6"/>
<result property="settlementAmount7" column="settlementAmount7"/>
<result property="settlementAmount8" column="settlementAmount8"/>
<result property="settlementAmount9" column="settlementAmount9"/>
<result property="settlementAmount10" column="settlementAmount10"/>
<result property="settlementAmount11" column="settlementAmount11"/>
</resultMap>
<select id="getSettAmountOneYearData" resultMap="getSettAmountOneYearDataMap">
SELECT
*
FROM
(
SELECT
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.input_date, '%Y%m' ) ) = 0 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) settlementAmount0,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.input_date, '%Y%m' ) ) = 1 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) settlementAmount1,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.input_date, '%Y%m' ) ) = 2 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) settlementAmount2,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.input_date, '%Y%m' ) ) = 3 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) settlementAmount3,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.input_date, '%Y%m' ) ) = 4 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) settlementAmount4,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.input_date, '%Y%m' ) ) = 5 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) settlementAmount5,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.input_date, '%Y%m' ) ) = 6 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) settlementAmount6,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.input_date, '%Y%m' ) ) = 7 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) settlementAmount7,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.input_date, '%Y%m' ) ) = 8 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) settlementAmount8,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.input_date, '%Y%m' ) ) = 9 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) settlementAmount9,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.input_date, '%Y%m' ) ) = 10 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) settlementAmount10,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.input_date, '%Y%m' ) ) = 11 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) settlementAmount11
FROM
jg_poundlist a
WHERE
a.delete_mark = '0'
) aaa
</select>
<resultMap id="getQuantityNumOneYearDataMap" type="map">
<result property="quantityNum0" column="quantityNum0"/>
<result property="quantityNum1" column="quantityNum1"/>
<result property="quantityNum2" column="quantityNum2"/>
<result property="quantityNum3" column="quantityNum3"/>
<result property="quantityNum4" column="quantityNum4"/>
<result property="quantityNum5" column="quantityNum5"/>
<result property="quantityNum6" column="quantityNum6"/>
<result property="quantityNum7" column="quantityNum7"/>
<result property="quantityNum8" column="quantityNum8"/>
<result property="quantityNum9" column="quantityNum9"/>
<result property="quantityNum10" column="quantityNum10"/>
<result property="quantityNum11" column="quantityNum11"/>
</resultMap>
<select id="getQuantityNumOneYearData" resultMap="getQuantityNumOneYearDataMap">
SELECT
*
FROM
(
SELECT
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.pound_date, '%Y%m' ) ) = 0 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) quantityNum0,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.pound_date, '%Y%m' ) ) = 1 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) quantityNum1,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.pound_date, '%Y%m' ) ) = 2 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) quantityNum2,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.pound_date, '%Y%m' ) ) = 3 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) quantityNum3,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.pound_date, '%Y%m' ) ) = 4 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) quantityNum4,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.pound_date, '%Y%m' ) ) = 5 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) quantityNum5,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.pound_date, '%Y%m' ) ) = 6 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) quantityNum6,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.pound_date, '%Y%m' ) ) = 7 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) quantityNum7,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.pound_date, '%Y%m' ) ) = 8 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) quantityNum8,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.pound_date, '%Y%m' ) ) = 9 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) quantityNum9,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.pound_date, '%Y%m' ) ) = 10 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) quantityNum10,
ROUND(
SUM(
CASE
WHEN PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( a.pound_date, '%Y%m' ) ) = 11 THEN
( CASE a.unit WHEN 0 THEN a.settlement ELSE a.settlement / 1000 END ) ELSE 0
END
),
6
) quantityNum11
FROM
jg_poundlist a
WHERE
a.delete_mark = '0'
) aaa
</select>
</mapper>

Loading…
Cancel
Save