From e2392116cd6f875cdc2f46bc04b04d5305f21b56 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期四, 23 十一月 2023 13:25:04 +0800 Subject: [PATCH] 1. 修改日统计值的排序查询逻辑 --- src/main/java/com/flightfeather/monitor/domain/ds1/repository/RiskValueRep.kt | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 43 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/flightfeather/monitor/domain/ds1/repository/RiskValueRep.kt b/src/main/java/com/flightfeather/monitor/domain/ds1/repository/RiskValueRep.kt index dc3e5d6..c63fd50 100644 --- a/src/main/java/com/flightfeather/monitor/domain/ds1/repository/RiskValueRep.kt +++ b/src/main/java/com/flightfeather/monitor/domain/ds1/repository/RiskValueRep.kt @@ -26,16 +26,58 @@ } } + /** + * 鎻掑叆鍒楄〃 + * @param list + */ fun insert(list: List<RiskValue>): Int { return riskValueMapper.insertList(list) } - fun select(mnCode: String, date: LocalDate): List<RiskValue?> { + /** + * 鎵归噺鎻掑叆鎴栨洿鏂�,浠呴檺鍚屼竴鏃ョ殑鎴栧悓涓�鏈堢殑鎵归噺鏁版嵁 + * @param list + */ + fun insertOrUpdate(list: List<RiskValue>): Int { + if (list.isEmpty()) return 0 + val newDataList = mutableListOf<RiskValue>() + val oldDataList = mutableListOf<RiskValue>() + val dataList = riskValueMapper.selectByExample(Example(RiskValue::class.java).apply { + createCriteria().andEqualTo("lst", list[0].lst) + .andEqualTo("type", list[0].type) + }) + list.forEach { l -> + val r = dataList.find { d -> + d?.mnCode == l.mnCode + } + if (r != null) { + l.id = r.id + oldDataList.add(l) + } else { + newDataList.add(l) + } + } + val r1 = riskValueMapper.insertList(newDataList) + var r2 = 0 + oldDataList.forEach { + r2 += riskValueMapper.updateByPrimaryKey(it) + } + return r1 + r2 + } + + /** + * 鏌ヨ + * @param mnCode + * @param date + * @param type + */ + fun select(mnCode: String, date: LocalDate, type: String): List<RiskValue?> { val s = date.withDayOfMonth(1).atStartOfDay() val e = s.plusMonths(1).minusSeconds(1) return riskValueMapper.selectByExample(Example(RiskValue::class.java).apply { createCriteria().andEqualTo("mnCode", mnCode) .andBetween("lst", s, e) + .andEqualTo("type", type) }) } } \ No newline at end of file -- Gitblit v1.9.3