干预与预警、测评的当年和当月统计

This commit is contained in:
cjw 2024-05-21 10:26:00 +08:00
parent 8be7e5d21a
commit 5b6bc557e7
5 changed files with 120 additions and 28 deletions

View File

@ -151,18 +151,34 @@ public class StatisticController extends BaseController {
} }
/** /**
* 获取六个月的干预与预警统计 * 获取当年的干预与预警统计
*/ */
@GetMapping("/month/intervene-warn") @GetMapping("/year/intervene-warn")
public R<List<StatisticNumVo>> getHalfMonth() { public R<List<StatisticNumVo>> getYearInterveneAndWarn() {
return R.ok(statisticService.getInterveneAndWarnByHalfYear()); return R.ok(statisticService.getInterveneAndWarnByYear());
} }
/** /**
* 获取12月的测评统计 * 获取当月的干预与预警统计
*/
@GetMapping("/month/intervene-warn")
public R<List<StatisticNumVo>> getMonthInterveneAndWarn() {
return R.ok(statisticService.getInterveneAndWarnByMoth());
}
/**
* 获取当年的测评统计
*/
@GetMapping("/year/evaluation")
public R<List<StatisticNumVo>> getYearEvaluation() {
return R.ok(statisticService.getEvaluationByYear());
}
/**
* 获取当月的测评统计
*/ */
@GetMapping("/month/evaluation") @GetMapping("/month/evaluation")
public R<List<StatisticNumVo>> getMonthEvaluation() { public R<List<StatisticNumVo>> getMonthEvaluation() {
return R.ok(statisticService.getEvaluationByYear()); return R.ok(statisticService.getEvaluationByMonth());
} }
} }

View File

@ -39,7 +39,10 @@ public interface StatisticMapper {
List<StatisticPublishVo> selectPublish(); List<StatisticPublishVo> selectPublish();
List<StatisticNumVo> selectWarnNumByHalfYear(); List<StatisticNumVo> selectWarnNumByYear(String startTime);
List<StatisticNumVo> selectInterveneNumByHalfYear(); List<StatisticNumVo> selectWarnNumByMonth(String startTime);
List<StatisticNumVo> selectEvaluationByYear(); List<StatisticNumVo> selectInterveneNumByYear(String startTime);
List<StatisticNumVo> selectInterveneNumByMonth(String startTime);
List<StatisticNumVo> selectEvaluationByYear(String startTime);
List<StatisticNumVo> selectEvaluationByMouth(String startTime);
} }

View File

@ -36,6 +36,8 @@ public interface IStatisticService {
List<StatisticWarnVo> getConclusion(); List<StatisticWarnVo> getConclusion();
List<StatisticPublishVo> getPublish(); List<StatisticPublishVo> getPublish();
List<StatisticNumVo> getInterveneAndWarnByHalfYear(); List<StatisticNumVo> getInterveneAndWarnByYear();
List<StatisticNumVo> getInterveneAndWarnByMoth();
List<StatisticNumVo> getEvaluationByYear(); List<StatisticNumVo> getEvaluationByYear();
List<StatisticNumVo> getEvaluationByMonth();
} }

View File

@ -1,6 +1,7 @@
package org.dromara.scale.service.impl; package org.dromara.scale.service.impl;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.DateUtils;
import org.dromara.scale.domain.bo.BaseQueryBo; import org.dromara.scale.domain.bo.BaseQueryBo;
import org.dromara.scale.domain.vo.StatisticFactorVo; import org.dromara.scale.domain.vo.StatisticFactorVo;
import org.dromara.scale.domain.vo.StatisticNumVo; import org.dromara.scale.domain.vo.StatisticNumVo;
@ -216,9 +217,27 @@ public class StatisticServiceImpl implements IStatisticService {
} }
@Override @Override
public List<StatisticNumVo> getInterveneAndWarnByHalfYear() { public List<StatisticNumVo> getInterveneAndWarnByYear() {
List<StatisticNumVo> warnNum = statisticMapper.selectWarnNumByHalfYear(); String s = DateUtils.dateTimeNow("yyyy");
List<StatisticNumVo> interveneNum = statisticMapper.selectInterveneNumByHalfYear(); String startTime = s + "年01月";
List<StatisticNumVo> warnNum = statisticMapper.selectWarnNumByYear(startTime);
List<StatisticNumVo> interveneNum = statisticMapper.selectInterveneNumByYear(startTime);
for (StatisticNumVo intervene : interveneNum) {
for (StatisticNumVo warn : warnNum) {
if (intervene.getName().equals(warn.getName())) {
intervene.setSpareValue(warn.getValue());
}
}
}
return interveneNum;
}
@Override
public List<StatisticNumVo> getInterveneAndWarnByMoth() {
String s = DateUtils.dateTimeNow("yyyy");
String startTime = s + "年01月01日";
List<StatisticNumVo> warnNum = statisticMapper.selectWarnNumByMonth(startTime);
List<StatisticNumVo> interveneNum = statisticMapper.selectInterveneNumByMonth(startTime);
for (StatisticNumVo intervene : interveneNum) { for (StatisticNumVo intervene : interveneNum) {
for (StatisticNumVo warn : warnNum) { for (StatisticNumVo warn : warnNum) {
if (intervene.getName().equals(warn.getName())) { if (intervene.getName().equals(warn.getName())) {
@ -231,6 +250,15 @@ public class StatisticServiceImpl implements IStatisticService {
@Override @Override
public List<StatisticNumVo> getEvaluationByYear() { public List<StatisticNumVo> getEvaluationByYear() {
return statisticMapper.selectEvaluationByYear(); String s = DateUtils.dateTimeNow("yyyy");
String startTime = s + "年01月";
return statisticMapper.selectEvaluationByYear(startTime);
}
@Override
public List<StatisticNumVo> getEvaluationByMonth() {
String s = DateUtils.dateTimeNow("yyyy");
String startTime = s + "年01月01日";
return statisticMapper.selectEvaluationByMouth(startTime);
} }
} }

View File

@ -86,7 +86,8 @@
select scale_name as `name`, select scale_name as `name`,
publish_nums as `value` publish_nums as `value`
from sys_scale from sys_scale
where status = 1 and publish_nums >0 where status = 1
and publish_nums > 0
order by publish_nums order by publish_nums
</select> </select>
@ -134,34 +135,61 @@
sp.expire_time as `expireTime` sp.expire_time as `expireTime`
FROM sys_scale_publish sp FROM sys_scale_publish sp
LEFT JOIN sys_evaluation_record er ON er.batch_no = sp.batch_no LEFT JOIN sys_evaluation_record er ON er.batch_no = sp.batch_no
GROUP BY sp.batch_no group by sp.batch_no
ORDER BY `expireTime` desc order by `expireTime` desc
</select> </select>
<select id="selectWarnNumByHalfYear" resultType="org.dromara.scale.domain.vo.StatisticNumVo"> <select id="selectWarnNumByYear" resultType="org.dromara.scale.domain.vo.StatisticNumVo">
select ri.date as `name`, COUNT(wr.warn_id) as `value` select SUBSTRING(ri.date, 6) as `name`, COUNT(wr.warn_id) as `value`
from (SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL xc MONTH), '%Y年%m月') AS date from (SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL xc MONTH), '%Y年%m月') AS date
FROM (SELECT @xi := @xi + 1 AS xc FROM (SELECT @xi := @xi + 1 AS xc
FROM (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6) xc1, FROM (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6) xc1,
(SELECT @xi := - 1) xc0) `month`) ri (SELECT @xi := - 1) xc0) `month`) ri
left join sys_warn_record wr on DATE_FORMAT(wr.warn_time, '%Y年%m月') = ri.date left join sys_warn_record wr on DATE_FORMAT(wr.warn_time, '%Y年%m月') = ri.date
GROUP BY ri.date where ri.date &gt;= #{startTime}
ORDER BY `name` group by ri.date
order by `name`
</select>
<select id="selectWarnNumByMonth" resultType="org.dromara.scale.domain.vo.StatisticNumVo">
select SUBSTRING(ri.date, 9) as `name`, COUNT(wr.warn_id) as `value`
from (SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL xc DAY), '%Y年%m月%d日') AS date
FROM (SELECT @xi := @xi + 1 AS xc
FROM (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6) xc1,
(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6) xc2,
(SELECT @xi := - 1) xc0) `day`) ri
left join sys_warn_record wr on DATE_FORMAT(wr.warn_time, '%Y年%m月%d日') = ri.date
where ri.date &gt;= #{startTime}
group by ri.date
order by `name`
</select> </select>
<select id="selectInterveneNumByHalfYear" resultType="org.dromara.scale.domain.vo.StatisticNumVo"> <select id="selectInterveneNumByYear" resultType="org.dromara.scale.domain.vo.StatisticNumVo">
select ri.date as `name`, COUNT(ir.intervene_id) as `value` select SUBSTRING(ri.date, 6) as `name`, COUNT(ir.intervene_id) as `value`
from (SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL xc MONTH), '%Y年%m月') AS date from (SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL xc MONTH), '%Y年%m月') AS date
FROM (SELECT @xi := @xi + 1 AS xc FROM (SELECT @xi := @xi + 1 AS xc
FROM (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6) xc1, FROM (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6) xc1,
(SELECT @xi := - 1) xc0) `month`) ri (SELECT @xi := - 1) xc0) `month`) ri
left join sys_intervene_record ir on DATE_FORMAT(ir.create_time, '%Y年%m月') = ri.date left join sys_intervene_record ir on DATE_FORMAT(ir.create_time, '%Y年%m月') = ri.date
GROUP BY ri.date where ri.date &gt;= #{startTime}
ORDER BY `name` group by ri.date
order by `name`
</select>
<select id="selectInterveneNumByMonth" resultType="org.dromara.scale.domain.vo.StatisticNumVo">
select SUBSTRING(ri.date, 9) as `name`, COUNT(ir.intervene_id) as `value`
from (SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL xc DAY), '%Y年%m月%d日') AS date
FROM (SELECT @xi := @xi + 1 AS xc
FROM (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6) xc1,
(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6) xc2,
(SELECT @xi := - 1) xc0) `day`) ri
left join sys_intervene_record ir on DATE_FORMAT(ir.create_time, '%Y年%m月%d日') = ri.date
where ri.date &gt;= #{startTime}
group by ri.date
order by `name`
</select> </select>
<select id="selectEvaluationByYear" resultType="org.dromara.scale.domain.vo.StatisticNumVo"> <select id="selectEvaluationByYear" resultType="org.dromara.scale.domain.vo.StatisticNumVo">
select ri.date as `name`, COUNT(er.record_id) as `value` select SUBSTRING(ri.date, 6) as `name`, COUNT(er.record_id) as `value`
from (SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL xc MONTH), '%Y年%m月') AS date from (SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL xc MONTH), '%Y年%m月') AS date
FROM (SELECT @xi := @xi + 1 AS xc FROM (SELECT @xi := @xi + 1 AS xc
FROM (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6) xc1, FROM (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6) xc1,
@ -169,7 +197,22 @@
(SELECT @xi := - 1) xc0) `month`) ri (SELECT @xi := - 1) xc0) `month`) ri
left join sys_evaluation_record er left join sys_evaluation_record er
on DATE_FORMAT(er.create_time, '%Y年%m月') = ri.date and er.status = 1 on DATE_FORMAT(er.create_time, '%Y年%m月') = ri.date and er.status = 1
GROUP BY ri.date where ri.date &gt;= #{startTime}
ORDER BY `name` group by ri.date
order by `name`
</select>
<select id="selectEvaluationByMouth" resultType="org.dromara.scale.domain.vo.StatisticNumVo">
select SUBSTRING(ri.date, 9) as `name`, COUNT(er.record_id) as `value`
from (SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL xc DAY), '%Y年%m月%d日') AS date
FROM (SELECT @xi := @xi + 1 AS xc
FROM (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6) xc1,
(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6) xc2,
(SELECT @xi := - 1) xc0) `day`) ri
left join sys_evaluation_record er
on DATE_FORMAT(er.create_time, '%Y年%m月%d日') = ri.date and er.status = 1
where ri.date &gt;= #{startTime}
group by ri.date
order by `name`
</select> </select>
</mapper> </mapper>