From aed297a5fbc8df9dab01b28da21f872ee546b43c Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期一, 13 十月 2025 16:15:11 +0800
Subject: [PATCH] 2025.10.13 1. 统一调整controller层的返回类型,通过添加全局响应增强器GlobalResponseAdvice来管理返回结果; 2. 新增mybatis-generator自定义插件,实现给数据库实体entity自动添加swagger注解@ApiModel和@ApiModelProperty
---
src/main/kotlin/cn/flightfeather/supervision/business/report/DataSource.kt | 179 +++++++++++++++++++++++++++++++----------------------------
1 files changed, 94 insertions(+), 85 deletions(-)
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/report/DataSource.kt b/src/main/kotlin/cn/flightfeather/supervision/business/report/DataSource.kt
index 3d715f9..96f71fa 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/report/DataSource.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/report/DataSource.kt
@@ -11,13 +11,10 @@
import cn.flightfeather.supervision.domain.ds2.mapper.LedgerSubTypeMapper
import cn.flightfeather.supervision.domain.ds2.mapper.UserMapMapper
import cn.flightfeather.supervision.lightshare.vo.ExcelConfigVo
-import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
import tk.mybatis.mapper.entity.Example
-import java.time.Duration
import java.time.LocalDateTime
import java.time.ZoneId
-import javax.annotation.PostConstruct
/**
* 鎶ュ憡鎵�闇�婧愭暟鎹�
@@ -25,8 +22,6 @@
* @param config 鐢熸垚鎶ュ憡鐨勫弬鏁�
*/
class DataSource(val config: ExcelConfigVo, val dbMapper: DbMapper){
-
- private val dateUtil = DateUtil()
private val sourceList = mutableListOf<Subtask>()
@@ -49,11 +44,12 @@
}
fun loop(callback: (index:Int, rowData: RowData) -> Unit) {
- reset()
+// reset()
for (i in sourceList.indices) {
+// rowData.recordLastScene()
rowData.index = i
- rowData.clear()
rowData.subTask = sourceList[i]
+ rowData.clear()
callback(i, rowData)
}
}
@@ -63,7 +59,7 @@
*/
fun reset() {
rowData.index = 0
- rowData.subTask = sourceList.first()
+ rowData.subTask = if (sourceList.isEmpty()) null else sourceList.first()
rowData.clear()
}
@@ -72,7 +68,7 @@
*/
fun areaName(): String {
val t = dbMapper.taskMapper.selectByPrimaryKey(config.topTaskGuid)
- return "${dateUtil.DateToString(t.starttime, DateUtil.DateStyle.YYYY_MM_CN)}${t.districtname}${if (area != t.districtname) area else ""}${Constant.ScenseType.getDes(config.sceneType)}"
+ return "${DateUtil.DateToString(config.startTime, DateUtil.DateStyle.YYYY_MM_CN)}${t.districtname}${if (area != t.districtname) area else ""}${Constant.SceneType.getDes(config.sceneType)}"
}
/**
@@ -89,50 +85,52 @@
})?.takeIf { it.isNotEmpty() }?.get(0)?.let { area = it.townname ?: "" }
}
- dbMapper.taskMapper.selectByPrimaryKey(config.topTaskGuid).let {
+ dbMapper.taskMapper.selectByPrimaryKey(config.topTaskGuid)?.let {
val time = LocalDateTime.ofInstant(it.starttime?.toInstant(), ZoneId.systemDefault())
this.year = time.year
this.month = time.monthValue
if (area.isBlank()) area = it.districtname ?: ""
}
- //1. 鏌ユ壘鐗瑰畾鐨勫贰鏌ヤ换鍔℃垨鑰呮墍鏈夌殑璁″垝宸℃煡浠诲姟
- var taskSceneIdList = listOf<String>()
- val subTaskList = if (config.subTaskIdList?.isNotEmpty() == true ||
- (config.startTime != null || config.endTime != null)
- ) {
- dbMapper.subtaskMapper.selectByExample(Example(Subtask::class.java).apply {
- createCriteria().apply {
- if (config.subTaskIdList?.isNotEmpty() == true) {
- andIn("stguid", config.subTaskIdList)
- }
- config.startTime?.let { andGreaterThanOrEqualTo("planstarttime", it) }
- config.endTime?.let { andLessThanOrEqualTo("planendtime", it) }
- config.districtCode?.let { andEqualTo("districtcode", it) }
-// andEqualTo("tguid", config.topTaskGuid)
- }
- })
- } else {
- taskSceneIdList = dbMapper.monitorobjectversionMapper.getSceneByType(config.topTaskGuid, config.sceneType, config.townCode)
- dbMapper.subtaskMapper.selectByExample(Example(Subtask::class.java).apply {
- createCriteria().andIn("scenseid", taskSceneIdList)
- .andEqualTo("tguid", config.topTaskGuid)
- })
- }
+ // 缁熻鎬讳换鍔′笅鎵�鏈夊満鏅�
+ if (config.allScene) {
+ //1. 鏌ユ壘鐗瑰畾鐨勫贰鏌ヤ换鍔℃垨鑰呮墍鏈夌殑璁″垝宸℃煡浠诲姟
+ val taskSceneIdList = dbMapper.scenseMapper.getSceneByType(config.topTaskGuid, config.sceneType,
+ config.townCode).map { it.guid ?: "" }
- if (taskSceneIdList.isNotEmpty()) {
- taskSceneIdList.forEach {
- var subtask: Subtask? = null
- for (s in subTaskList) {
- if (s.scenseid == it) {
- subtask = s
- break
+ val subTaskList = dbMapper.subtaskMapper.selectByExample(Example(Subtask::class.java).apply {
+ createCriteria().apply {
+ if (taskSceneIdList.isNotEmpty()) andIn("scenseid", taskSceneIdList)
+ }.andEqualTo("tguid", config.topTaskGuid)
+ })
+ // 缁欒繕鏈贰鏌ョ殑鍦烘櫙鐢熸垚绌虹殑瀛愪换鍔″璞�
+ if (taskSceneIdList.isNotEmpty()) {
+ taskSceneIdList.forEach {
+ var subtask: Subtask? = null
+ for (s in subTaskList) {
+ if (s.scenseid == it) {
+ subtask = s
+ result.add(s)
+ }
+ }
+ if (subtask == null) {
+ result.add(Subtask().apply { scenseid = it })
}
}
- if (subtask == null) subtask = Subtask().apply { scenseid = it }
- result.add(subtask)
+ } else {
+ result.addAll(subTaskList)
}
- } else {
+ }
+ else {
+ val subTaskList = dbMapper.subtaskMapper.selectByExample(Example(Subtask::class.java).apply {
+ createCriteria().apply {
+ if (config.subTaskIdList?.isNotEmpty() == true) andIn("stguid", config.subTaskIdList)
+ config.startTime?.let { andGreaterThanOrEqualTo("planstarttime", it) }
+ config.endTime?.let { andLessThanOrEqualTo("planendtime", it) }
+ config.districtCode?.let { andEqualTo("districtcode", it) }
+ andEqualTo("tguid", config.topTaskGuid)
+ }
+ })
result.addAll(subTaskList)
}
@@ -162,16 +160,16 @@
get() {
if (_baseScene == null) {
_baseScene = when (this.scene?.typeid.toString()) {
- Constant.ScenseType.TYPE1.value -> {
+ Constant.SceneType.TYPE1.value -> {
dbMapper.sceneConstructionSiteMapper.selectByPrimaryKey(scene?.guid)
}
- Constant.ScenseType.TYPE2.value -> {
+ Constant.SceneType.TYPE2.value -> {
dbMapper.sceneWharfMapper.selectByPrimaryKey(scene?.guid)
}
- Constant.ScenseType.TYPE3.value -> {
+ Constant.SceneType.TYPE3.value -> {
dbMapper.sceneMixingPlantMapper.selectByPrimaryKey(scene?.guid)
}
- Constant.ScenseType.TYPE14.value -> {
+ Constant.SceneType.TYPE14.value -> {
dbMapper.sceneStorageYardMapper.selectByPrimaryKey(scene?.guid)
}
else -> null
@@ -182,19 +180,19 @@
private var _baseScene: BaseScene? = null
//鍏蜂綋鐨勯棶棰�
- val problems: MutableList<Problemlist>
+ val problems: List<Problemlist>
get() {
if (noRecord()) return mutableListOf()
- if (_problems.isEmpty()) {
+ if (_problems == null) {
val r = dbMapper.problemlistMapper.selectByExample(Example(Problemlist::class.java).apply {
createCriteria().andEqualTo("stguid", subTask?.stguid)
})
- _problems.addAll(r)
+ _problems = r
}
- return _problems
+ return _problems ?: emptyList()
}
- private var _problems = mutableListOf<Problemlist>()
+ private var _problems: List<Problemlist>? = null
//璇勪及鎬诲垎
val evaluation: Evaluation?
@@ -211,38 +209,40 @@
private var _evaluation: Evaluation? = null
//璇勪及缁嗗垯寰楀垎
- val itemevaluationList: MutableList<Itemevaluation>
+ val itemevaluationList: List<Itemevaluation>
get() {
- if (_itemevaluationList.isEmpty()) {
+ if (_itemevaluationList == null) {
val r = dbMapper.itemevaluationMapper.selectByExample(Example(Itemevaluation::class.java).apply {
createCriteria().andEqualTo("stguid", subTask?.stguid)
})
- _itemevaluationList.addAll(r)
+ _itemevaluationList = r
println("-------------------itemevaluationList--------------------------------")
}
- return _itemevaluationList
+ return _itemevaluationList ?: emptyList()
}
- private var _itemevaluationList = mutableListOf<Itemevaluation>()
+ private var _itemevaluationList: List<Itemevaluation>? = null
//闂绫诲瀷
- val problemTypes: MutableList<Problemtype>
+ val problemTypes: List<Problemtype>
get() {
- if (_problemTypes.isEmpty()) {
+ if (_problemTypes == null) {
val r = dbMapper.problemtypeMapper.selectByExample(Example(Problemtype::class.java).apply {
createCriteria().andEqualTo("scensetypeid", scene?.typeid)
.andEqualTo("districtcode", scene?.districtcode)
orderBy("extension1")
})
- _problemTypes.addAll(r)
+ _problemTypes = r
}
- return _problemTypes
+ return _problemTypes ?: emptyList()
}
- private var _problemTypes = mutableListOf<Problemtype>()
+ private var _problemTypes: List<Problemtype>? = null
//鑷姩璇勫垎瑙勫垯涓�绾у垎绫�
- val topItems: MutableList<Evaluationsubrule2>
+ val topItems: List<Evaluationsubrule2>
get() {
- if (_topItems.isEmpty()) {
+ if (_topItems == null) {
+ val tempTopItems = mutableListOf<Evaluationsubrule2>()
+ val secRules = mutableListOf<Pair<Evaluationsubrule2, MutableList<Evaluationsubrule2>>>()
val rule = dbMapper.evaluationruleMapper.selectByExample(Example(Evaluationrule::class.java).apply {
createCriteria()
.andEqualTo("tasktypeid", 99)
@@ -255,13 +255,13 @@
})
rules.forEach {
if (it.ertype == 2) {
- _topItems.add(it)
+ tempTopItems.add(it)
}
}
- _topItems.sortBy { it.displayid }
+ tempTopItems.sortBy { it.displayid }
var t = 0
- _topItems.forEach {
+ tempTopItems.forEach {
t += it.maxscore ?: 0
val tempRules = mutableListOf<Evaluationsubrule2>()
for (i in rules) {
@@ -282,30 +282,32 @@
}
}
tempSubRules.sortBy { ts -> ts.displayid }
- this._rules.add(Pair(temp, tempSubRules))
+ secRules.add(Pair(temp, tempSubRules))
}
}
}
+ this._rules = secRules
+ _topItems = tempTopItems
}
- return _topItems
+ return _topItems ?: emptyList()
}
- private var _topItems = mutableListOf<Evaluationsubrule2>()
+ private var _topItems: List<Evaluationsubrule2>? = null
//鑷姩璇勫垎瑙勫垯浜岀骇鍜屼笁绾у垎绫�
- val rules: MutableList<Pair<Evaluationsubrule2, MutableList<Evaluationsubrule2>>>
+ val rules: List<Pair<Evaluationsubrule2, MutableList<Evaluationsubrule2>>>
get() {
- if (_rules.isEmpty()) {
+ if (_rules == null) {
this.topItems
}
- return _rules
+ return _rules ?: emptyList()
}
- private var _rules = mutableListOf<Pair<Evaluationsubrule2, MutableList<Evaluationsubrule2>>>()
+ private var _rules: List<Pair<Evaluationsubrule2, MutableList<Evaluationsubrule2>>>? = null
//蹇呭~鍙拌处鏁伴噺
val ledgerCount: Int
get() {
if (_ledgerCount == -1) {
- val tzSceneType = Constant.ScenseType.typeMap(scene?.typeid)
+ val tzSceneType = Constant.SceneType.typeMap(scene?.typeid)
_ledgerCount = dbMapper.ledgerSubTypeMapper.selectCountByExample(Example(LedgerSubType::class.java).apply {
createCriteria().andEqualTo("lScenetype", tzSceneType).andEqualTo("lNeedupdate", true)
})
@@ -359,23 +361,29 @@
}
/**
+ * 璁板綍涓婁竴涓満鏅�
+ */
+ fun recordLastScene() {
+ lastScene = scene
+ }
+
+ /**
* 娓呯┖褰撳墠澶勭悊鐨勫璞$殑鐩稿叧鏁版嵁婧�
*/
fun clear() {
- if (lastScene != null && lastScene?.typeid != _scene?.typeid) {
- _problemTypes.clear()
- _topItems.clear()
- _rules.clear()
- _ledgerCount = -1
- } else {
- lastScene = _scene
- }
_scene = null
_baseScene = null
- _problems.clear()
+ _problems = null
_evaluation = null
- _itemevaluationList.clear()
+ _itemevaluationList = null
_ledgerRecordNum = null
+ if (lastScene != null && lastScene?.typeid != scene?.typeid) {
+ _problemTypes = null
+ _topItems = null
+ _rules = null
+ _ledgerCount = -1
+ }
+ recordLastScene()
}
/**
@@ -385,6 +393,7 @@
}
}
+@Component
data class DbMapper(
val scenseMapper: ScenseMapper,
val problemlistMapper: ProblemlistMapper,
--
Gitblit v1.9.3