提交 043409dc authored 作者: kxjia's avatar kxjia

修改风险监控

上级 a8d17877
......@@ -377,7 +377,7 @@ public class MetricStatReportController extends JeecgController<MetricStatReport
private String getActionByRiskLevel(int riskLevel, Map<String, Object> data) {
switch (riskLevel) {
case 0: return "按时填写数据";
case 1: return "继续监测";
case 1: return "持续监测,确保风险指标处于绿色区间";
case 2: return data.get("geWarnAct") != null ? data.get("geWarnAct").toString() : "";
case 3: return data.get("geTolAct") != null ? data.get("geTolAct").toString() : "";
default: return "";
......
......@@ -114,32 +114,81 @@ public class MetricReportServiceImpl extends ServiceImpl<MetricReportMapper, Met
private Date getGroupedDateByFrequency(int frequency, Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
switch (frequency) {
case 2:
case 2: // 周
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek());
// 设置为当周的周日(一周的最后一天)
calendar.add(Calendar.DAY_OF_WEEK, 6);
break;
case 3:
case 3: // 月
calendar.set(Calendar.DAY_OF_MONTH, 1);
// 先设置为当月第一天,再加一个月,然后减一天得到当月最后一天
calendar.add(Calendar.MONTH, 1);
calendar.add(Calendar.DAY_OF_MONTH, -1);
break;
case 4:
case 4: // 季度
int month = calendar.get(Calendar.MONTH);
int quarter = (month / 3) + 1;
calendar.set(Calendar.MONTH, (quarter - 1) * 3);
calendar.set(Calendar.DAY_OF_MONTH, 1);
// 先设置为季度第一天,加3个月,然后减一天得到季度最后一天
calendar.add(Calendar.MONTH, 3);
calendar.add(Calendar.DAY_OF_MONTH, -1);
break;
case 5:
case 5: // 半年
calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) < 6 ? 0 : 6);
calendar.set(Calendar.DAY_OF_MONTH, 1);
// 先设置为半年第一天,加6个月,然后减一天得到半年最后一天
calendar.add(Calendar.MONTH, 6);
calendar.add(Calendar.DAY_OF_MONTH, -1);
break;
case 6:
case 6: // 年
calendar.set(Calendar.MONTH, 0);
calendar.set(Calendar.DAY_OF_MONTH, 1);
// 先设置为当年第一天,加12个月(1年),然后减一天得到当年最后一天
calendar.add(Calendar.MONTH, 12);
calendar.add(Calendar.DAY_OF_MONTH, -1);
break;
}
return calendar.getTime();
}
// private Date getGroupedDateByFrequency(int frequency, Date date) {
// Calendar calendar = Calendar.getInstance();
// calendar.setTime(date);
// switch (frequency) {
// case 2:
// calendar.setFirstDayOfWeek(Calendar.MONDAY);
// calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek());
// break;
// case 3:
// calendar.set(Calendar.DAY_OF_MONTH, 1);
// break;
// case 4:
// int month = calendar.get(Calendar.MONTH);
// int quarter = (month / 3) + 1;
// calendar.set(Calendar.MONTH, (quarter - 1) * 3);
// calendar.set(Calendar.DAY_OF_MONTH, 1);
// break;
// case 5:
// calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) < 6 ? 0 : 6);
// calendar.set(Calendar.DAY_OF_MONTH, 1);
// break;
// case 6:
// calendar.set(Calendar.MONTH, 0);
// calendar.set(Calendar.DAY_OF_MONTH, 1);
// break;
// }
// return calendar.getTime();
// }
private MetricReport createMetricReport(Date fillTime, List<MetricReport> reports, String formulas, MetricMonitorSet monitorSet, LoginUser user) {
String newFormulas = formulas;
for (MetricReport report : reports) {
......
......@@ -6,6 +6,7 @@ import org.jeecg.modules.stm.metric.mapper.MetricStatReportMapper;
import org.jeecg.modules.stm.metric.service.IMetricStatReportService;
import org.springframework.stereotype.Service;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.*;
......@@ -97,7 +98,7 @@ public class MetricStatReportServiceImpl extends ServiceImpl<MetricStatReportMap
}
}
riskMap.put("其他", level0);
//riskMap.put("其他", level0);
riskMap.put("正常", level1);
riskMap.put("预警", level2);
riskMap.put("干预", level3);
......@@ -159,14 +160,14 @@ public class MetricStatReportServiceImpl extends ServiceImpl<MetricStatReportMap
numMap.put("low",low);
numMap.put("middle",middle);
numMap.put("hight",hight);
numMap.put("other",other);
//numMap.put("other",other);
numMap.put("total",total);
retMap.put("num",numMap);
percentMap.put("low",calculate(total,low));
percentMap.put("middle",calculate(total,middle));
percentMap.put("hight",calculate(total,hight));
percentMap.put("other",calculate(total,other));;
//percentMap.put("other",calculate(total,other));;
retMap.put("percent",percentMap);
return retMap;
......@@ -338,12 +339,17 @@ public class MetricStatReportServiceImpl extends ServiceImpl<MetricStatReportMap
return retList;
}
private Float calculate(Integer total,Integer val) {
if(total.intValue() ==0) return null;
private Float calculate(Integer total, Integer val) {
if (total == null || total == 0) return null;
if (val == null) return null;
DecimalFormat df = new DecimalFormat("#.##");
double d = 100.00*val/total;
df.setRoundingMode(RoundingMode.HALF_UP); // 设置四舍五入
double d = 100.00 * val / total;
String result = df.format(d);
return Float.parseFloat(result);
}
}
......@@ -13,14 +13,7 @@
AND D.level = 2
WHERE B.mtrc_tp = 1
AND C.risk_level IS NOT NULL
AND (
B.coll_freq = #{query.tp}
OR
(
DATE_FORMAT(C.fill_time, '%Y-%m') = DATE_FORMAT(#{query.endDate}, '%Y-%m')
AND B.coll_freq &lt;&gt; #{query.tp}
)
)
AND DATE_FORMAT(C.fill_time, '%Y-%m') = DATE_FORMAT(#{query.endDate}, '%Y-%m')
GROUP BY D.domain_code, D.domain_name, C.risk_level
</select>
<select id="queryMetricStatByMtricClass" resultType="java.util.Map">
......@@ -36,17 +29,7 @@
WHERE B.mtrc_tp = 1
AND (B.mtrc_class IS NULL OR E.dict_code = 'mtrc_class')
AND C.risk_level IS NOT NULL
AND (
(
C.fill_time BETWEEN #{query.stDate} AND #{query.endDate}
AND B.coll_freq = #{query.tp}
)
OR
(
DATE_FORMAT(C.fill_time, '%Y-%m') = DATE_FORMAT(#{query.endDate}, '%Y-%m')
AND B.coll_freq &lt;&gt; #{query.tp}
)
)
AND C.fill_time BETWEEN #{query.stDate} AND #{query.endDate}
GROUP BY B.mtrc_class, C.risk_level, D.item_text
</select>
<select id="queryMetricStatDetail" resultType="java.util.Map">
......@@ -67,12 +50,7 @@
AND D.level = 2
WHERE B.mtrc_tp = 1
AND C.risk_level IS NOT NULL
AND
(B.coll_freq = #{query.tp} OR (
DATE_FORMAT(C.fill_time, '%Y-%m') = DATE_FORMAT(#{query.endDate}, '%Y-%m')
AND B.coll_freq &lt;&gt; #{query.tp}
)
)
AND DATE_FORMAT(C.fill_time, '%Y-%m') = DATE_FORMAT(#{query.endDate}, '%Y-%m')
ORDER BY B.mtrc_no ASC
</select>
<select id="queryReportSubTitle" resultType="java.util.Map">
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论