| | |
| | | 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 |
| | | |
| | | /** |
| | | * 报告所需源数据 |
| | |
| | | val rowData = RowData() |
| | | |
| | | init { |
| | | if (config.districtCode == null) { |
| | | throw IllegalStateException("参数缺少区县编码:[districtCode]") |
| | | } |
| | | if (config.sceneType == null) { |
| | | throw IllegalStateException("参数缺少场景类型:[sceneType]") |
| | | } |
| | | // if (config.districtCode == null) { |
| | | // throw IllegalStateException("参数缺少区县编码:[districtCode]") |
| | | // } |
| | | // if (config.sceneType == null) { |
| | | // throw IllegalStateException("参数缺少场景类型:[sceneType]") |
| | | // } |
| | | getSource(config) |
| | | } |
| | | |
| | | 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) |
| | | } |
| | | } |
| | |
| | | */ |
| | | 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(t.starttime, DateUtil.DateStyle.YYYY_MM_CN)}${t.districtname}${if (area != t.districtname) area else ""}${Constant.SceneType.getDes(config.sceneType)}" |
| | | } |
| | | |
| | | /** |
| | | * 获取报告数据源 |
| | | * 获取报告数据源(巡查任务) |
| | | */ |
| | | private fun getSource(config: ExcelConfigVo) { |
| | | if (config.sceneType == null) return |
| | | // if (config.sceneType == null) return |
| | | |
| | | val result = mutableListOf<Subtask>() |
| | | |
| | |
| | | } |
| | | 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) |
| | | taskSceneIdList = dbMapper.scenseMapper.getSceneByType(config.topTaskGuid, config |
| | | .sceneType, config.townCode).map { it.guid ?: "" } |
| | | dbMapper.subtaskMapper.selectByExample(Example(Subtask::class.java).apply { |
| | | createCriteria().andIn("scenseid", taskSceneIdList) |
| | | .andEqualTo("tguid", config.topTaskGuid) |
| | |
| | | for (s in subTaskList) { |
| | | if (s.scenseid == it) { |
| | | subtask = s |
| | | break |
| | | result.add(s) |
| | | } |
| | | } |
| | | if (subtask == null) subtask = Subtask().apply { scenseid = it } |
| | | result.add(subtask) |
| | | if (subtask == null) { |
| | | result.add(Subtask().apply { scenseid = it }) |
| | | } |
| | | } |
| | | } else { |
| | | result.addAll(subTaskList) |
| | |
| | | var index = 0 |
| | | |
| | | var subTask: Subtask? = null |
| | | |
| | | private var lastScene: Scense? = null |
| | | |
| | | //场景基本信息 |
| | | val scene: Scense? |
| | |
| | | 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 |
| | |
| | | } |
| | | private var _problems = mutableListOf<Problemlist>() |
| | | |
| | | //评估总分 |
| | | val evaluation: Evaluation? |
| | | get() { |
| | | if (_evaluation == null) { |
| | |
| | | } |
| | | private var _evaluation: Evaluation? = null |
| | | |
| | | //评估细则得分 |
| | | val itemevaluationList: MutableList<Itemevaluation> |
| | | get() { |
| | | if (_itemevaluationList.isEmpty()) { |
| | |
| | | get() { |
| | | if (_problemTypes.isEmpty()) { |
| | | val r = dbMapper.problemtypeMapper.selectByExample(Example(Problemtype::class.java).apply { |
| | | createCriteria().andEqualTo("scensetypeid", config.sceneType) |
| | | .andEqualTo("districtcode", config.districtCode) |
| | | createCriteria().andEqualTo("scensetypeid", scene?.typeid) |
| | | .andEqualTo("districtcode", scene?.districtcode) |
| | | orderBy("extension1") |
| | | }) |
| | | _problemTypes.addAll(r) |
| | |
| | | val rule = dbMapper.evaluationruleMapper.selectByExample(Example(Evaluationrule::class.java).apply { |
| | | createCriteria() |
| | | .andEqualTo("tasktypeid", 99) |
| | | .andEqualTo("scensetypeid", config.sceneType) |
| | | .andEqualTo("scensetypeid", scene?.typeid) |
| | | }) |
| | | if (rule.isNotEmpty()) { |
| | | val ruleId = rule[0].guid |
| | |
| | | val ledgerCount: Int |
| | | get() { |
| | | if (_ledgerCount == -1) { |
| | | val tzSceneType = Constant.ScenseType.typeMap(config.sceneType?.toByte()) |
| | | val tzSceneType = Constant.SceneType.typeMap(scene?.typeid) |
| | | _ledgerCount = dbMapper.ledgerSubTypeMapper.selectCountByExample(Example(LedgerSubType::class.java).apply { |
| | | createCriteria().andEqualTo("lScenetype", tzSceneType).andEqualTo("lNeedupdate", true) |
| | | }) |
| | |
| | | } |
| | | |
| | | /** |
| | | * 记录上一个场景 |
| | | */ |
| | | fun recordLastScene() { |
| | | lastScene = scene |
| | | } |
| | | |
| | | /** |
| | | * 清空当前处理的对象的相关数据源 |
| | | */ |
| | | fun clear() { |
| | |
| | | _evaluation = null |
| | | _itemevaluationList.clear() |
| | | _ledgerRecordNum = null |
| | | if (lastScene != null && lastScene?.typeid != scene?.typeid) { |
| | | _problemTypes.clear() |
| | | _topItems.clear() |
| | | _rules.clear() |
| | | _ledgerCount = -1 |
| | | } |
| | | recordLastScene() |
| | | } |
| | | |
| | | /** |