From 99be60a4c8c1f39eb01d414460cbe0ac76ca97d3 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期四, 21 七月 2022 17:47:40 +0800
Subject: [PATCH] 1. 巡查汇总报告功能添加整改跟踪提醒统计列; 2. 新增获取巡查任务统计信息接口;
---
src/test/kotlin/cn/flightfeather/supervision/business/fume/AutoScoreTest.kt | 5
src/main/resources/mapper/ds1/MonitorobjectversionMapper.xml | 12 ++
src/main/kotlin/cn/flightfeather/supervision/business/storage/item/StScoreItem_1.kt | 6
src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/SubTaskSummary.kt | 18 +++
src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/SubtaskMapper.kt | 2
src/test/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SearchServiceImplTest.kt | 6
src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProTypeStatusSummary.kt | 9 +
src/main/kotlin/cn/flightfeather/supervision/lightshare/web/SubtaskController.kt | 12 +
src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProAnalysisSummary.kt | 2
src/main/kotlin/cn/flightfeather/supervision/business/report/cols/ColStrategy.kt | 106 +++++++++++++++++
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SubtaskServiceImpl.kt | 81 ++++++++----
src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/MonitorobjectversionMapper.kt | 6
src/main/kotlin/cn/flightfeather/supervision/business/report/cols/ColStatus.kt | 17 +-
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/SubtaskService.kt | 4
src/main/kotlin/cn/flightfeather/supervision/business/report/DataSource.kt | 2
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ProblemlistServiceImpl.kt | 12 ++
src/main/kotlin/cn/flightfeather/supervision/business/report/cols/ColTotalGrade.kt | 4
src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProTypeRankMainSummary.kt | 39 +++++-
18 files changed, 280 insertions(+), 63 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 cea8933..da0703a 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/report/DataSource.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/report/DataSource.kt
@@ -110,7 +110,7 @@
}
})
} else {
- taskSceneIdList = dbMapper.monitorobjectversionMapper.getSceneByType(config.topTaskGuid, config.sceneType)
+ 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)
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/report/cols/ColStatus.kt b/src/main/kotlin/cn/flightfeather/supervision/business/report/cols/ColStatus.kt
index da630da..3d40ce8 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/report/cols/ColStatus.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/report/cols/ColStatus.kt
@@ -18,22 +18,27 @@
}
override fun onOneRow(rowData: DataSource.RowData): List<Any> {
- val status = when (rowData.scene?.typeid.toString()) {
+ var status: String? = ""
+ var stage: String? = ""
+ when (rowData.scene?.typeid.toString()) {
Constant.ScenseType.TYPE1.value -> {
- (rowData.baseScene as SceneConstructionSite?)?.csStatus
+ (rowData.baseScene as SceneConstructionSite?)?.apply {
+ status = csStatus
+ stage = siExtension1
+ }
}
Constant.ScenseType.TYPE2.value -> {
- (rowData.baseScene as SceneWharf?)?.getwStatus()
+ status = (rowData.baseScene as SceneWharf?)?.getwStatus()
}
Constant.ScenseType.TYPE3.value -> {
- (rowData.baseScene as SceneMixingPlant?)?.mpStatus
+ status = (rowData.baseScene as SceneMixingPlant?)?.mpStatus
}
Constant.ScenseType.TYPE14.value -> {
- (rowData.baseScene as SceneStorageYard?)?.syStatus
+ status = (rowData.baseScene as SceneStorageYard?)?.syStatus
}
else -> ""
}
val s = status ?: ""
- return listOf(s, s)
+ return listOf(s, stage ?: "")
}
}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/report/cols/ColStrategy.kt b/src/main/kotlin/cn/flightfeather/supervision/business/report/cols/ColStrategy.kt
new file mode 100644
index 0000000..4f12b5c
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/report/cols/ColStrategy.kt
@@ -0,0 +1,106 @@
+package cn.flightfeather.supervision.business.report.cols
+
+import cn.flightfeather.supervision.business.report.BaseCols
+import cn.flightfeather.supervision.business.report.DataSource
+import cn.flightfeather.supervision.common.utils.Constant
+import cn.flightfeather.supervision.common.utils.ExcelUtil
+import java.time.Duration
+import java.time.LocalDateTime
+import java.time.ZoneId
+
+class ColStrategy : BaseCols() {
+ override fun onHeads(dataSource: DataSource): MutableList<MutableList<ExcelUtil.MyCell>> {
+ return mutableListOf(mutableListOf(
+ ExcelUtil.MyCell("鏁存敼璺熻釜鎻愰啋")
+ ))
+ }
+
+ override fun onOneRow(rowData: DataSource.RowData): List<Any> {
+ if (rowData.problems.isEmpty()) return listOf("")
+
+ val strategyList = listOf(
+ "1銆佸瓨鍦ㄩ棶棰樿秴鏈�3澶╀笉婊�7澶╂湭鏁存敼锛岀敱绯荤粺鎺ㄩ�佹暣鏀规彁閱掞紱",
+ "2銆佸瓨鍦ㄩ棶棰樿秴鏈�7澶╂湭鏁存敼锛岀敱鎶�鏈湇鍔¢儴绾夸笂鐫d績锛�",
+ "3銆佸贰鏌ュ悗10澶╂垨鏈堟湯鍓�3澶╋紝闂鏁存敼鐜囦綆浜�50%锛岀敱鏁版嵁搴旂敤閮ㄤ竴瀵逛竴鐫d績锛屽苟浜庝富绠¢儴闂ㄨ仈鍔紱",
+ "4銆侀棶棰樺鏍告垨鏁存敼瀹℃牳鏈紑灞曟垨闂瀹℃牳杈冨贰鏌ユ椂闂村欢鍚�24灏忔椂浠ヤ笂鎴栭棶棰樹笌鏁存敼鏃堕棿闂撮殧瓒呰繃涓�鍛紝椤圭洰绠$悊浜哄憳搴斿強鏃跺紑灞曞鏍告垨鍚庣画搴旀彁鍗囧鏍告椂鏁堟�э紱",
+ "5銆佸彴璐︽湭鎸夋椂鎻愪氦锛岀敱鎶�鏈湇鍔¢儴涓�瀵逛竴鐫d績锛�",
+ "6銆佸彴璐﹀凡閮ㄥ垎鎻愪氦锛屾彁浜ゆ瘮渚嬩笉瓒�100%鐨勶紝鐢辨暟鎹簲鐢ㄩ儴涓�瀵逛竴鐫d績锛�",
+ "7銆佸綋鏈堥棶棰樻暟瓒�3涓笖鍏ㄩ儴鏈暣鏀规垨杩炵画涓ゆ湀闂鏁存敼鐜囦綆浜�50%鐨勫満鏅紝鍒椾负閲嶇偣鐩戠锛岀敱鎶�鏈湇鍔¢儴褰撴湀澧炲姞涓嶅皯浜庝竴娆$幇鍦哄鏍革紱",
+ "8銆佽繛缁袱鏈堝彴璐︽彁浜ゆ瘮渚嬩綆浜�50%鐨勶紝鐢辨妧鏈湇鍔¢儴褰撴湀澧炲姞涓�娆$幇鍦烘垨绾夸笂鎿嶄綔鎸囧锛�",
+ "9銆佸彴璐﹀鏍歌緝鎻愪氦鏃堕棿寤跺悗5鏃ヤ互涓婃垨鏈堟湯鍓�3鏃ヤ粛鏈鏍哥殑锛岀敱鏁版嵁搴旂敤閮ㄥ強鏃跺紑灞曪紱"
+ )
+
+ var result = ""
+ val now = LocalDateTime.now()
+
+ var cPros = 0//鏁存敼鎬绘暟
+ for (p in rowData.problems) {
+ if (p.ischanged == true) {
+ cPros++
+ continue
+ }
+ val pTime = LocalDateTime.ofInstant(p.time?.toInstant(), ZoneId.systemDefault())
+ val duration = Duration.between(pTime.toLocalDate(), now)
+ val day = duration.toDays()
+
+ when {
+ day in 3..6 -> {
+ result += strategyList[0] + "\n"
+ break
+ }
+ day > 6 -> {
+ result += strategyList[1] + "\n"
+ break
+ }
+ }
+ }
+ //鏁存敼鐜�
+ val cPer = cPros.toDouble() / rowData.problems.size
+ //宸℃煡鏃堕棿
+ val sTime = LocalDateTime.ofInstant(rowData.subTask?.planstarttime?.toInstant(), ZoneId.systemDefault())
+ val day1 = Duration.between(sTime.toLocalDate(), now).toDays()
+ val lastDayOfMon = now.plusMonths(1).withDayOfMonth(1).minusDays(1)
+ val day2 = Duration.between(lastDayOfMon.toLocalDate(), now.toLocalDate()).toDays()
+ if (cPer < .5 && (day1 >= 10 || day2 <= 3)) result += strategyList[2] + "\n"
+
+ //瀹℃牳
+ for (p in rowData.problems) {
+ //闂瀹℃牳鎴栨暣鏀瑰鏍告湭寮�灞�
+ when (p.extension3) {
+ Constant.PROBLEM_UNCHECKED,
+ Constant.CHANGE_UNCHECKED -> {
+ result += strategyList[3] + "\n"
+ break
+ }
+ }
+ //闂瀹℃牳杈冨贰鏌ユ椂闂村欢鍚�24灏忔椂浠ヤ笂
+ // TODO: 2022/7/20
+
+ //闂涓庢暣鏀规椂闂撮棿闅旇秴杩囦竴鍛�
+ if (p.changedtime != null) {
+ val ct = LocalDateTime.ofInstant(p.changedtime?.toInstant(), ZoneId.systemDefault())
+ val pt = LocalDateTime.ofInstant(p.time?.toInstant(), ZoneId.systemDefault())
+ if (Duration.between(pt.toLocalDate(), ct.toLocalDate()).toDays() > 7) {
+ result += strategyList[3] + "\n"
+ break
+ }
+ }
+
+
+ }
+
+ //鍙拌处
+ val rNum = rowData.ledgerRecords.size
+ if (rNum == 0) result += strategyList[4] + "\n"
+ if (rNum != 0 && rNum < rowData.ledgerCount) result += strategyList[5] + "\n"
+
+ //7銆佸綋鏈堥棶棰樻暟瓒�3涓笖鍏ㄩ儴鏈暣鏀规垨杩炵画涓ゆ湀闂鏁存敼鐜囦綆浜�50%鐨勫満鏅紝鍒椾负閲嶇偣鐩戠锛岀敱鎶�鏈湇鍔¢儴褰撴湀澧炲姞涓嶅皯浜庝竴娆$幇鍦哄鏍革紱
+ if (rowData.problems.size > 3 && cPros == 0) {
+ }
+
+ //8銆佽繛缁袱鏈堝彴璐︽彁浜ゆ瘮渚嬩綆浜�50%鐨勶紝鐢辨妧鏈湇鍔¢儴褰撴湀澧炲姞涓�娆$幇鍦烘垨绾夸笂鎿嶄綔鎸囧锛�
+ //9銆佸彴璐﹀鏍歌緝鎻愪氦鏃堕棿寤跺悗5鏃ヤ互涓婃垨鏈堟湯鍓�3鏃ヤ粛鏈鏍哥殑锛岀敱鏁版嵁搴旂敤閮ㄥ強鏃跺紑灞曪紱
+
+ return strategyList
+ }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/report/cols/ColTotalGrade.kt b/src/main/kotlin/cn/flightfeather/supervision/business/report/cols/ColTotalGrade.kt
index 4efda09..f77e2b6 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/report/cols/ColTotalGrade.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/report/cols/ColTotalGrade.kt
@@ -35,8 +35,8 @@
else -> ExcelUtil.MyCell("瓒呭嚭鑼冨洿锛�${s}", fontColor = HSSFColor.HSSFColorPredefined.BLACK.index)
}
val normalization = when (s) {
- in 0..59 -> ExcelUtil.MyCell("涓ラ噸涓嶈鑼�", fontColor = HSSFColor.HSSFColorPredefined.RED.index)
- in 60..89 -> ExcelUtil.MyCell("涓嶈鑼�", fontColor = HSSFColor.HSSFColorPredefined.ROSE.index)
+ in 0..39 -> ExcelUtil.MyCell("涓ラ噸涓嶈鑼�", fontColor = HSSFColor.HSSFColorPredefined.RED.index)
+ in 40..89 -> ExcelUtil.MyCell("涓嶈鑼�", fontColor = HSSFColor.HSSFColorPredefined.ROSE.index)
in 90..99 -> ExcelUtil.MyCell("鍩烘湰瑙勮寖", fontColor = HSSFColor.HSSFColorPredefined.GOLD.index)
100 -> ExcelUtil.MyCell("瑙勮寖", fontColor = HSSFColor.HSSFColorPredefined.BRIGHT_GREEN.index)
-1 -> ExcelUtil.MyCell("", fontColor = HSSFColor.HSSFColorPredefined.BLACK.index)
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProAnalysisSummary.kt b/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProAnalysisSummary.kt
index 7a62467..957f61f 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProAnalysisSummary.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProAnalysisSummary.kt
@@ -60,7 +60,7 @@
else -> ""
}
// FIXME: 2022/7/18 鍚庣画鍦烘櫙鐨勬柦宸ョ姸鎬佹敼涓哄竷灏斿�煎瓨鍌�
- if ((status?.contains("瀹屽伐") == true) || (status?.contains("鏈柦宸�") == true) || (status?.contains("鍋�") == true)
+ if ((status?.contains("瀹屽伐") == true) || (status?.contains("鏈柦宸�") == true) || (status?.contains("鍋滃伐") == true)
|| (status?.contains("鍏�") == true)
) {
inactiveScenes++
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProTypeRankMainSummary.kt b/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProTypeRankMainSummary.kt
index 1eec3c3..83cdc70 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProTypeRankMainSummary.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProTypeRankMainSummary.kt
@@ -16,6 +16,20 @@
summarys.sortByDescending { it.count }
+ var tPros = 0
+ var mainTPros = 0
+ var pDes = ""
+ for (i in summarys.indices) {
+ val it = summarys[i]
+ tPros += it.count
+ if (i < max) {
+ val lr = if (i > 0) "\n" else ""
+ mainTPros += it.count
+ pDes += "${lr}${i+1}銆�${it.proDes}"
+ }
+ }
+ var per = if (tPros == 0) .0 else mainTPros.toDouble() / tPros
+
head.clear()
head.add(
mutableListOf(
@@ -41,16 +55,23 @@
ExcelUtil.MyCell("涓昏闂鍗犳瘮"),
)
)
- for (i in summarys.indices) {
- if (i >= max) break
+// for (i in summarys.indices) {
+// if (i >= max) break
+//
+// val s = summarys[i]
+// contents.add(
+// mutableListOf(
+// i + 1, dataSource.year, dataSource.month, dataSource.rowData.scene?.type ?: "", dataSource.area, s.count,
+// s.proDes, s.count, ExcelUtil.MyCell(s.countPer.toString(), isPercent = true)
+// )
+// )
+// }
- val s = summarys[i]
- contents.add(
- mutableListOf(
- i + 1, dataSource.year, dataSource.month, dataSource.rowData.scene?.type ?: "", dataSource.area, s.count,
- s.proDes, s.count, ExcelUtil.MyCell(s.countPer.toString(), isPercent = true)
- )
+ contents.add(
+ mutableListOf(
+ 1, dataSource.year, dataSource.month, dataSource.rowData.scene?.type ?: "", dataSource.area, tPros,
+ pDes, mainTPros, ExcelUtil.MyCell(per.toString(), isPercent = true)
)
- }
+ )
}
}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProTypeStatusSummary.kt b/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProTypeStatusSummary.kt
index aa6e38a..ce7cea3 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProTypeStatusSummary.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/report/template/ProTypeStatusSummary.kt
@@ -23,7 +23,8 @@
val proMap = mutableMapOf<String?, MutableMap<String?, Summary>>()
dataSource.loop { _, rowData ->
rowData.problems.forEach {
- val s = (rowData.baseScene as SceneConstructionSite?)?.csStatus
+ val baseScene = rowData.baseScene as SceneConstructionSite?
+ val s = baseScene?.siExtension1
if (!proMap.containsKey(s)) {
proMap[s] = mutableMapOf()
}
@@ -32,7 +33,8 @@
proMap[s]?.put(pt, Summary().apply {
for (p in rowData.problemTypes) {
if (p.guid == pt) {
- status = s ?: ""
+ stage = s ?: ""
+ status = baseScene?.csStatus ?: ""
proType = p.typename ?: ""
proDes = p.description ?: ""
break
@@ -100,7 +102,7 @@
val s = summarys[i]
contents.add(
mutableListOf(
- i + 1, dataSource.year, dataSource.month, dataSource.rowData.scene?.type ?: "", dataSource.area, s.status, s.status,
+ i + 1, dataSource.year, dataSource.month, dataSource.rowData.scene?.type ?: "", dataSource.area, s.status, s.stage,
s.proType, s.proDes,
s.count, ExcelUtil.MyCell(s.countPer.toString(), isPercent = true),
s.changeNum, ExcelUtil.MyCell(s.changePer.toString(), isPercent = true),
@@ -111,6 +113,7 @@
inner class Summary() {
var status = ""
+ var stage = ""
var proType = ""
var proDes = ""
var count = 0
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/storage/item/StScoreItem_1.kt b/src/main/kotlin/cn/flightfeather/supervision/business/storage/item/StScoreItem_1.kt
index a9d0dba..a6dbd59 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/storage/item/StScoreItem_1.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/storage/item/StScoreItem_1.kt
@@ -34,9 +34,9 @@
*/
override fun otherProblem(size: Int): Int? {
val p = problemlistMapper.selectByExample(Example(Problemlist::class.java).apply {
- createCriteria().andEqualTo("sguid", info.sceneId)
- .andGreaterThanOrEqualTo("time", info.sTime)
- .andLessThan("time", info.eTime)
+ createCriteria().andEqualTo("stguid", info.subTask?.stguid)
+// .andGreaterThanOrEqualTo("time", info.sTime)
+// .andLessThan("time", info.eTime)
})
var i = 0
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/MonitorobjectversionMapper.kt b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/MonitorobjectversionMapper.kt
index 0cbce76..3aed701 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/MonitorobjectversionMapper.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/MonitorobjectversionMapper.kt
@@ -8,7 +8,7 @@
@Mapper
interface MonitorobjectversionMapper:MyMapper<Monitorobjectversion> {
- @Select("select b.S_GUID from sm_t_monitorobjectversion as a left join sm_t_scense as b on a.S_GUID = b.S_GUID" +
- " where a.T_ID = #{param1} and b.S_TypeID = #{param2}")
- fun getSceneByType(topTaskId: String, sceneTypeId: Int): List<String>
+ // @Select("select b.S_GUID from sm_t_monitorobjectversion as a left join sm_t_scense as b on a.S_GUID = b.S_GUID" +
+// " where a.T_ID = #{param1} and b.S_TypeID = #{param2}")
+ fun getSceneByType(topTaskId: String, sceneTypeId: Int, townCode: String? = null): List<String>
}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/SubtaskMapper.kt b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/SubtaskMapper.kt
index fbf1ba0..3a49785 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/SubtaskMapper.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/SubtaskMapper.kt
@@ -18,4 +18,6 @@
fun selectByTopTask(topTaskId: String, startTime: String, endTime: String, sceneTypeId: Int? = null): List<SubtaskVo>
fun selectByTopTask2(topTaskId: String, sceneTypeId: Int? = null): List<Subtask>
+
+
}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/SubtaskService.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/SubtaskService.kt
index 0359ae8..91d5446 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/SubtaskService.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/SubtaskService.kt
@@ -42,5 +42,7 @@
fun findByDate(date: String, userId: String): List<SubtaskVo>
- fun getByTopTaskAndDate(topTaskId: String, startTime: String, endTime: String, sceneTypeId: Int? = null): List<SubtaskVo>
+ fun getByTopTaskAndDate(topTaskId: String, startTime: String?, endTime: String?, sceneTypeId: Int? = null): List<Subtask>
+
+ fun getSummary(topTaskId: String, sceneTypeId: Int? = null): List<SubTaskSummary>
}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ProblemlistServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ProblemlistServiceImpl.kt
index bf7ef44..a56fe6a 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ProblemlistServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ProblemlistServiceImpl.kt
@@ -323,6 +323,12 @@
mediafileMapper.deleteByExample(Example(Mediafile::class.java).apply {
createCriteria().andEqualTo("businessguid", id)
})
+ //鏇存柊宸℃煡淇℃伅涓殑闂鏁伴噺
+ val inspection = inspectionMapper.selectByPrimaryKey(p.iguid)
+ if (inspection.problemcount != null && inspection.problemcount!! > 0) {
+ inspection.problemcount = inspection.problemcount!! - 1
+ inspectionMapper.updateByPrimaryKey(inspection)
+ }
BaseResponse(true, "闂鍒犻櫎鎴愬姛", data = i)
}
}
@@ -486,6 +492,12 @@
}
}
+ //鏇存柊宸℃煡淇℃伅鐨勯棶棰樻暟
+ if (inspection.problemcount != null) {
+ inspection.problemcount = inspection.problemcount!! + 1
+ inspectionMapper.updateByPrimaryKey(inspection)
+ }
+
return BaseResponse(true)
}
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SubtaskServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SubtaskServiceImpl.kt
index 8ea2a19..3372dde 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SubtaskServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SubtaskServiceImpl.kt
@@ -968,37 +968,60 @@
return resultList
}
- override fun getByTopTaskAndDate(topTaskId: String, startTime: String, endTime: String, sceneTypeId: Int?): List<SubtaskVo> {
- val startDate = dateUtil.StringToDate(startTime)
- val endDate = dateUtil.StringToDate(endTime)
-
- val cal = Calendar.getInstance().apply { time = startDate }
- val _startTime = dateUtil.DateToString(cal.time, DateUtil.DateStyle.YYYY_MM_DD_HH_MM_SS) ?: startTime
-
- if (endDate == null) {
- cal.add(Calendar.MONTH, 1)
- cal.add(Calendar.DAY_OF_MONTH, -1)
- } else {
- cal.time = endDate
- }
- cal.set(Calendar.HOUR_OF_DAY, 23)
- cal.set(Calendar.MINUTE, 59)
- cal.set(Calendar.SECOND, 59)
- val _endTime = dateUtil.DateToString(cal.time, DateUtil.DateStyle.YYYY_MM_DD_HH_MM_SS) ?: endTime
-
-// val resultList = mutableListOf<SubtaskVo>()
- val resultList = subtaskMapper.selectByTopTask(topTaskId, _startTime, _endTime, sceneTypeId)
-// subtaskMapper.selectByExample(Example(Subtask::class.java).apply {
-// createCriteria()
-// .andGreaterThanOrEqualTo("planstarttime", startDate)
-// .andLessThanOrEqualTo("planstarttime", endDate)
-// .andEqualTo("tguid", topTaskId)
-// }).forEach {
-// val vo = SubtaskVo()
-// BeanUtils.copyProperties(it, vo)
-// resultList.add(vo)
+ override fun getByTopTaskAndDate(topTaskId: String, startTime: String?, endTime: String?, sceneTypeId: Int?): List<Subtask> {
+// val startDate = dateUtil.StringToDate(startTime)
+// val endDate = dateUtil.StringToDate(endTime)
+//
+// val cal = Calendar.getInstance().apply { time = startDate }
+// val _startTime = dateUtil.DateToString(cal.time, DateUtil.DateStyle.YYYY_MM_DD_HH_MM_SS) ?: startTime
+//
+// if (endDate == null) {
+// cal.add(Calendar.MONTH, 1)
+// cal.add(Calendar.DAY_OF_MONTH, -1)
+// } else {
+// cal.time = endDate
// }
+// cal.set(Calendar.HOUR_OF_DAY, 23)
+// cal.set(Calendar.MINUTE, 59)
+// cal.set(Calendar.SECOND, 59)
+// val _endTime = dateUtil.DateToString(cal.time, DateUtil.DateStyle.YYYY_MM_DD_HH_MM_SS) ?: endTime
+
+ val resultList = subtaskMapper.selectByTopTask2(topTaskId, sceneTypeId)
return resultList
}
+
+ override fun getSummary(topTaskId: String, sceneTypeId: Int?): List<SubTaskSummary> {
+ val result = mutableListOf<SubTaskSummary>()
+
+ subtaskMapper.selectByTopTask2(topTaskId, sceneTypeId).forEach {
+ val scene = scenseMapper.selectByPrimaryKey(it.scenseid)
+ var p = 0
+ var c = 0
+ var pc = 0
+ var cc = 0
+ problemlistMapper.selectByExample(Example(Problemlist::class.java).apply {
+ createCriteria().andEqualTo("stguid", it.stguid)
+ }).forEach {pro ->
+ p++
+ if (pro.ischanged == true) c++
+ if (pro.extension3 != Constant.PROBLEM_UNCHECKED) pc++
+ if (pro.extension3 == Constant.CHANGE_CHECK_PASS || pro.extension3 == Constant.CHANGE_CHECK_FAIL) cc++
+ }
+ result.add(SubTaskSummary().apply {
+ stGuid = it.stguid
+ stName = it.name
+ sceneId = it.scenseid
+ sceneName = scene.name
+ sceneType = scene.type
+ stPlanTime = it.planstarttime
+ proNum = p
+ changeNum = c
+ proCheckedNum = pc
+ changeCheckedNum = cc
+ })
+ }
+
+ return result
+ }
}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/SubTaskSummary.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/SubTaskSummary.kt
new file mode 100644
index 0000000..58e7368
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/SubTaskSummary.kt
@@ -0,0 +1,18 @@
+package cn.flightfeather.supervision.lightshare.vo
+
+import java.util.*
+
+class SubTaskSummary {
+ var stGuid: String? = null
+ var stName: String? = null
+ var sceneId: String? = null
+ var sceneName: String? = null
+ var sceneType: String? = null
+ var stPlanTime: Date? = null
+
+ var proNum = 0
+ var changeNum = 0
+
+ var proCheckedNum: Int = 0
+ var changeCheckedNum: Int = 0
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/SubtaskController.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/SubtaskController.kt
index 21c7c54..69d5aa6 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/SubtaskController.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/SubtaskController.kt
@@ -5,6 +5,7 @@
import cn.flightfeather.supervision.lightshare.vo.AreaVo
import cn.flightfeather.supervision.lightshare.vo.TaskVo
import io.swagger.annotations.Api
+import io.swagger.annotations.ApiOperation
import org.springframework.web.bind.annotation.*
@Api(tags = ["SubtaskController"], description = "宸℃煡瀛愪换鍔PI鎺ュ彛")
@@ -58,8 +59,15 @@
@GetMapping("/getSubTask")
fun getByTopTaskAndDate(
@RequestParam("topTaskId") topTaskId: String,
- @RequestParam("startTime") startTime: String,
- @RequestParam("endTime") endTime: String,
+ @RequestParam(value = "startTime", required = false) startTime: String?,
+ @RequestParam(value = "endTime", required = false) endTime: String?,
@RequestParam(value = "sceneTypeId", required = false) sceneTypeId: Int?
) = subtaskService.getByTopTaskAndDate(topTaskId, startTime, endTime, sceneTypeId)
+
+ @ApiOperation("鑾峰彇鏌愮被鍦烘櫙鐨勫贰鏌ヤ换鍔$粺璁′俊鎭�")
+ @GetMapping("/summary")
+ fun getByTopTaskAndDate(
+ @RequestParam("topTaskId") topTaskId: String,
+ @RequestParam(value = "sceneTypeId", required = false) sceneTypeId: Int?
+ ) = subtaskService.getSummary(topTaskId, sceneTypeId)
}
\ No newline at end of file
diff --git a/src/main/resources/mapper/ds1/MonitorobjectversionMapper.xml b/src/main/resources/mapper/ds1/MonitorobjectversionMapper.xml
index 4e67a07..8418639 100644
--- a/src/main/resources/mapper/ds1/MonitorobjectversionMapper.xml
+++ b/src/main/resources/mapper/ds1/MonitorobjectversionMapper.xml
@@ -32,4 +32,16 @@
MOV_Suitable, MOV_DisplayID, MOV_Year, MOV_Month, MOV_Day, MOV_ISCP, MOV_CustomPeriod,
MOV_Extension1, MOV_Extension2, MOV_Extension3, MOV_Remark
</sql>
+
+ <select id="getSceneByType" resultType="String">
+ select
+ b.S_GUID
+ from sm_t_monitorobjectversion as a
+ left join sm_t_scense as b
+ on a.S_GUID = b.S_GUID
+ where a.T_ID = #{param1} and b.S_TypeID = #{param2}
+ <if test="param3 != null">
+ and b.S_TownCode = #{param3}
+ </if>
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/test/kotlin/cn/flightfeather/supervision/business/fume/AutoScoreTest.kt b/src/test/kotlin/cn/flightfeather/supervision/business/fume/AutoScoreTest.kt
index f02583c..044758c 100644
--- a/src/test/kotlin/cn/flightfeather/supervision/business/fume/AutoScoreTest.kt
+++ b/src/test/kotlin/cn/flightfeather/supervision/business/fume/AutoScoreTest.kt
@@ -39,9 +39,10 @@
@Test
fun go() {
autoScore.sceneType = Constant.ScenseType.TYPE1
- autoScore.topTaskGrade("tgfMJWdUJqWE6bWo")
-// val subtask = subtaskMapper.selectByPrimaryKey("1DxdkFdVAdQD5Mce")
+ autoScore.topTaskGrade("8QN1VzftuhBJmrF8")
+// val subtask = subtaskMapper.selectByPrimaryKey("OPmza2ddEAKiQHqz")
// autoScore.sceneGrade(subtask)
+// autoScore.sceneGradeToFile(subtask)
// autoScore3.go(2022, 1, 2)
// val t = problemlistMapper.getStatisticalResult("310116", "2021-09-01 00:00:00", "2021-09-30 00:00:00", "1")
// println()
diff --git a/src/test/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SearchServiceImplTest.kt b/src/test/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SearchServiceImplTest.kt
index 498bc47..96dd876 100644
--- a/src/test/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SearchServiceImplTest.kt
+++ b/src/test/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SearchServiceImplTest.kt
@@ -33,7 +33,11 @@
val mode = 10
//閲戝北2022骞�6鏈�
- searchService.writeToFile(ExcelConfigVo("tgfMJWdUJqWE6bWo", districtCode = "310116", sceneType = 1), mode)
+ searchService.writeToFile(ExcelConfigVo(
+ "8QN1VzftuhBJmrF8",
+ districtCode = "310106",
+// townCode = "310116113",
+ sceneType = 1), mode)
//閲戝北2021骞�3鏈�
// searchService.writeToFile(ExcelConfigVo("o7jdSzr79fe0NH3I", districtCode = "310116", sceneType = 1))
}
--
Gitblit v1.9.3