From f565fbc09724992d53ec6632c3e5d1de3325f328 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期四, 11 一月 2024 17:33:44 +0800
Subject: [PATCH] 1. 调整返回接口的异常捕获类为自定义异常类; 2. 修改AreaVo类中时间参数的类型; 3. 新增文档生成任务类型,并新增文档后台生成任务逻辑;
---
src/main/kotlin/cn/flightfeather/supervision/common/executor/BgTaskType.kt | 5
src/main/kotlin/cn/flightfeather/supervision/common/executor/BgTaskStatus.kt | 3
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/EvaluationService.kt | 4
src/main/resources/application-pro.yml | 3
src/main/kotlin/cn/flightfeather/supervision/business/bgtask/ReportTaskCtrl.kt | 41 ++++++
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/EvaluationServiceImpl.kt | 104 +++++++++++++----
src/test/kotlin/cn/flightfeather/supervision/CommonTest.kt | 15 ++
src/main/kotlin/cn/flightfeather/supervision/common/executor/BackgroundTaskCtrl.kt | 29 ++--
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/BgTaskServiceImpl.kt | 11 +
src/main/kotlin/cn/flightfeather/supervision/lightshare/web/EvaluationController.kt | 7 +
src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/EvaluationRuleRep.kt | 8
src/main/resources/application-dev.yml | 3
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ProblemlistServiceImpl.kt | 11 +
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserMapServiceImpl.kt | 3
src/main/kotlin/cn/flightfeather/supervision/business/autooutput/datasource/AopDataSource.kt | 3
src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/AopCreditCode.kt | 3
src/main/kotlin/cn/flightfeather/supervision/domain/ds2/repository/ComplaintAndPunishmentRep.kt | 14 ++
src/main/resources/application-test.yml | 3
src/main/kotlin/cn/flightfeather/supervision/business/bgtask/AopTaskCtrl.kt | 11 +
src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/TaskRep.kt | 4
src/main/kotlin/cn/flightfeather/supervision/common/exception/ResponseErrorException.kt | 13 ++
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ComplaintServiceImpl.kt | 3
src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/AreaVo.kt | 10 +
src/main/kotlin/cn/flightfeather/supervision/lightshare/web/BaseResPack.kt | 3
src/main/kotlin/cn/flightfeather/supervision/business/report/DataSource.kt | 2
src/main/kotlin/cn/flightfeather/supervision/business/report/BaseTemplateMulti.kt | 3
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SearchServiceImpl.kt | 7
27 files changed, 255 insertions(+), 71 deletions(-)
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/datasource/AopDataSource.kt b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/datasource/AopDataSource.kt
index 20fcc11..f557b32 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/datasource/AopDataSource.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/datasource/AopDataSource.kt
@@ -1,5 +1,6 @@
package cn.flightfeather.supervision.business.autooutput.datasource
+import cn.flightfeather.supervision.common.exception.ResponseErrorException
import cn.flightfeather.supervision.common.utils.Constant
import cn.flightfeather.supervision.domain.ds1.entity.*
import cn.flightfeather.supervision.domain.ds2.entity.LedgerRecord
@@ -85,7 +86,7 @@
// 浠庣洃绠$郴缁熻幏鍙栧満鏅�
private fun initSceneSource(config: AopDataConfig) {
- config.topTaskGuid ?: throw IllegalStateException("椤跺眰浠诲姟id涓嶈兘涓簄ull")
+ config.topTaskGuid ?: throw ResponseErrorException("椤跺眰浠诲姟id涓嶈兘涓簄ull")
this.config = config
this.mode = 0
sceneSourceList.clear()
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/AopCreditCode.kt b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/AopCreditCode.kt
index 4bfc770..6bff41d 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/AopCreditCode.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/AopCreditCode.kt
@@ -1,6 +1,7 @@
package cn.flightfeather.supervision.business.autooutput.score
import cn.flightfeather.supervision.business.autooutput.datasource.AopDataConfig
+import cn.flightfeather.supervision.common.exception.ResponseErrorException
import cn.flightfeather.supervision.common.utils.Constant
import cn.flightfeather.supervision.domain.ds1.repository.EvaluationRep
import cn.flightfeather.supervision.domain.ds2.entity.UserinfoTZ
@@ -22,7 +23,7 @@
) {
fun execute(config: AopDataConfig) {
- if (config.year == null || config.month == null) throw IllegalStateException("鐜俊鐮佽瘎浼版椂蹇呴』浼犻�掓椂闂存潯浠�!")
+ if (config.year == null || config.month == null) throw ResponseErrorException("鐜俊鐮佽瘎浼版椂蹇呴』浼犻�掓椂闂存潯浠�!")
// 鎵惧埌椋炵窘鐜涓渶瑕佺敓鎴愮幆淇$爜鐨勬墍鏈夌珯鐐�
val sceneType = Constant.SceneType.getByValue(config.sceneType.toString())
val userList = findUsers(config.districtName, sceneType)
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/AopTaskCtrl.kt b/src/main/kotlin/cn/flightfeather/supervision/business/bgtask/AopTaskCtrl.kt
similarity index 87%
rename from src/main/kotlin/cn/flightfeather/supervision/business/autooutput/AopTaskCtrl.kt
rename to src/main/kotlin/cn/flightfeather/supervision/business/bgtask/AopTaskCtrl.kt
index c013604..bd04aa1 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/AopTaskCtrl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/bgtask/AopTaskCtrl.kt
@@ -1,9 +1,10 @@
-package cn.flightfeather.supervision.business.autooutput
+package cn.flightfeather.supervision.business.bgtask
import cn.flightfeather.supervision.business.autooutput.dataanalysis.*
import cn.flightfeather.supervision.business.autooutput.datasource.AopDataConfig
import cn.flightfeather.supervision.business.autooutput.score.AopCreditCode
import cn.flightfeather.supervision.business.autooutput.score.AopEvaluation
+import cn.flightfeather.supervision.common.exception.ResponseErrorException
import cn.flightfeather.supervision.common.executor.BackgroundTaskCtrl
import cn.flightfeather.supervision.common.executor.BgTaskStatus
import cn.flightfeather.supervision.common.executor.BgTaskType
@@ -11,7 +12,6 @@
import cn.flightfeather.supervision.domain.ds1.repository.TaskRep
import cn.flightfeather.supervision.lightshare.vo.AreaVo
import org.springframework.stereotype.Component
-import java.time.LocalDate
/**
* 鑷姩璇勪及浠诲姟绠$悊
@@ -45,10 +45,11 @@
if (taskId != null) {
val districtCode = areaVo.districtcode
val districtName = areaVo.districtname
- val d = LocalDate.parse(areaVo.starttime)
+// val d = LocalDateTime.parse(areaVo.starttime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+ val d = areaVo.starttime ?: throw ResponseErrorException("鑷姩璇勪及浠诲姟蹇呴』璁惧畾鏃堕棿")
val year = d.year
val month = d.monthValue
- val sceneType = areaVo.scensetypeid?.toInt() ?: throw IllegalStateException("鍦烘櫙绫诲瀷鏈缃紝鏃犳硶璇勪及")
+ val sceneType = areaVo.scensetypeid?.toInt() ?: throw ResponseErrorException("鍦烘櫙绫诲瀷鏈缃紝鏃犳硶璇勪及")
val id = "${BgTaskType.AUTO_SCORE.name}-${districtCode}-${sceneType}"
val name = "${districtName}${Constant.SceneType.getDes(sceneType)}鑷姩璇勫垎"
@@ -68,7 +69,7 @@
}
return bgTask.taskStatus
} else {
- throw IllegalStateException("宸℃煡鎬讳换鍔′笉瀛樺湪锛屾棤娉曡瘎浼�")
+ throw ResponseErrorException("宸℃煡鎬讳换鍔′笉瀛樺湪锛屾棤娉曡瘎浼�")
}
}
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/bgtask/ReportTaskCtrl.kt b/src/main/kotlin/cn/flightfeather/supervision/business/bgtask/ReportTaskCtrl.kt
new file mode 100644
index 0000000..3c126f5
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/bgtask/ReportTaskCtrl.kt
@@ -0,0 +1,41 @@
+package cn.flightfeather.supervision.business.bgtask
+
+import cn.flightfeather.supervision.business.report.BaseExcel
+import cn.flightfeather.supervision.business.report.DataSource
+import cn.flightfeather.supervision.business.report.DbMapper
+import cn.flightfeather.supervision.business.report.file.ReportOne
+import cn.flightfeather.supervision.business.report.file.ReportThree
+import cn.flightfeather.supervision.business.report.file.ReportTwo
+import cn.flightfeather.supervision.common.executor.BackgroundTaskCtrl
+import cn.flightfeather.supervision.common.executor.BgTaskStatus
+import cn.flightfeather.supervision.common.executor.BgTaskType
+import cn.flightfeather.supervision.lightshare.vo.ExcelConfigVo
+import org.springframework.beans.factory.annotation.Value
+import org.springframework.stereotype.Component
+import java.io.File
+import java.net.URLEncoder
+
+/**
+ * 鑷姩鐢熸垚鎶ュ憡浠诲姟绠$悊
+ */
+@Component
+class ReportTaskCtrl(
+ private val backgroundTaskCtrl: BackgroundTaskCtrl,
+ private val dbMapper: DbMapper,
+ @Value("\${filePath}") private val filePath: String,
+) {
+
+ fun startTask(baseExcel: BaseExcel, downloadUrl: String): BgTaskStatus {
+ val id =
+ "${BgTaskType.DOCUMENT.name}-${baseExcel.dataSource.config.districtCode}-${baseExcel.dataSource.config.sceneType}"
+ val taskName = baseExcel.getReportName()
+ val bgTask = backgroundTaskCtrl.startNewTask(BgTaskType.DOCUMENT, id, taskName) {
+ val p = "$filePath/autoscore/"
+ baseExcel.toFile(p)
+ true
+ }
+ bgTask.taskStatus.extra = downloadUrl
+ return bgTask.taskStatus
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/report/BaseTemplateMulti.kt b/src/main/kotlin/cn/flightfeather/supervision/business/report/BaseTemplateMulti.kt
index 4ff70ed..6ac0c6a 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/report/BaseTemplateMulti.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/report/BaseTemplateMulti.kt
@@ -1,5 +1,6 @@
package cn.flightfeather.supervision.business.report
+import cn.flightfeather.supervision.common.exception.ResponseErrorException
import cn.flightfeather.supervision.common.utils.Constant
import cn.flightfeather.supervision.common.utils.DateUtil
import cn.flightfeather.supervision.common.utils.ExcelUtil
@@ -31,7 +32,7 @@
open fun execute() {
- if (dataSourceList.isEmpty()) throw IllegalStateException("${templateName}: 鏁版嵁婧愪负绌�")
+ if (dataSourceList.isEmpty()) throw ResponseErrorException("${templateName}: 鏁版嵁婧愪负绌�")
//鍚堟垚琛ㄥご
cols.forEach {
it.combineHead(head, dataSourceList[0])
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 063368b..d334b56 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/report/DataSource.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/report/DataSource.kt
@@ -11,6 +11,7 @@
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.stereotype.Component
import tk.mybatis.mapper.entity.Example
import java.time.LocalDateTime
import java.time.ZoneId
@@ -390,6 +391,7 @@
}
}
+@Component
data class DbMapper(
val scenseMapper: ScenseMapper,
val problemlistMapper: ProblemlistMapper,
diff --git a/src/main/kotlin/cn/flightfeather/supervision/common/exception/ResponseErrorException.kt b/src/main/kotlin/cn/flightfeather/supervision/common/exception/ResponseErrorException.kt
new file mode 100644
index 0000000..e01d06e
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/common/exception/ResponseErrorException.kt
@@ -0,0 +1,13 @@
+package cn.flightfeather.supervision.common.exception
+
+/**
+ * 鍏佽鎺ュ彛杩斿洖鐨勪笟鍔″眰闈㈢殑閿欒
+ */
+class ResponseErrorException : Exception {
+ constructor():super()
+ constructor(message: String) : super(message)
+ constructor(message: String, cause: Throwable) : super(message, cause)
+ constructor(cause: Throwable) : super(cause)
+ constructor(message: String, cause: Throwable, enableSuppression: Boolean, writableStackTrace: Boolean)
+ : super(message, cause, enableSuppression, writableStackTrace)
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/common/executor/BackgroundTaskCtrl.kt b/src/main/kotlin/cn/flightfeather/supervision/common/executor/BackgroundTaskCtrl.kt
index 72423b9..a7c6250 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/common/executor/BackgroundTaskCtrl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/common/executor/BackgroundTaskCtrl.kt
@@ -1,5 +1,6 @@
package cn.flightfeather.supervision.common.executor
+import cn.flightfeather.supervision.common.exception.ResponseErrorException
import org.springframework.stereotype.Component
import java.time.LocalDateTime
import java.util.concurrent.ConcurrentHashMap
@@ -20,13 +21,13 @@
/**
* 鏂板浠诲姟
*/
- @Throws(IllegalStateException::class)
+ @Throws(ResponseErrorException::class)
fun newTask(type: BgTaskType, id: String, name: String, task: () -> Boolean): BgTask {
if (!taskCollection.containsKey(type)) {
taskCollection[type] = ConcurrentHashMap<String, BgTask>()
}
val taskSet = taskCollection[type]!!
- if (taskSet.containsKey(id)) throw IllegalStateException("鏃犳硶鍒涘缓浠诲姟锛� 浠诲姟[${name}]鐨刬d閲嶅")
+ if (taskSet.containsKey(id)) throw ResponseErrorException("鏃犳硶鍒涘缓浠诲姟锛� 浠诲姟[${name}]鐨刬d閲嶅")
val t = BgTask(type, id, name, task)
taskSet[id] = t
return t
@@ -35,20 +36,20 @@
/**
* 寮�濮嬩换鍔�
*/
- @Throws(IllegalStateException::class)
+ @Throws(ResponseErrorException::class)
fun startTask(type: BgTaskType, id: String): BgTask {
- val taskSet = taskCollection[type] ?: throw throw IllegalStateException("鏃犳硶寮�鍚换鍔★紝璇ヤ换鍔$被鍨媅${type.des}]涓嶅瓨鍦�")
- val t = taskSet[id] ?: throw IllegalStateException("鏃犳硶寮�鍚换鍔★紝璇ヤ换鍔${id}]涓嶅瓨鍦�")
+ val taskSet = taskCollection[type] ?: throw throw ResponseErrorException("鏃犳硶寮�鍚换鍔★紝璇ヤ换鍔$被鍨媅${type.des}]涓嶅瓨鍦�")
+ val t = taskSet[id] ?: throw ResponseErrorException("鏃犳硶寮�鍚换鍔★紝璇ヤ换鍔${id}]涓嶅瓨鍦�")
return startTask(t)
}
- @Throws(IllegalStateException::class)
+ @Throws(ResponseErrorException::class)
fun startTask(task: BgTask): BgTask {
if (task.taskStatus.status != TaskStatus.WAITING) {
if (task.taskStatus.status == TaskStatus.RUNNING) {
- throw IllegalStateException("鏃犳硶寮�鍚换鍔★紝浠诲姟[${task.name}]姝e湪鎵ц")
+ throw ResponseErrorException("鏃犳硶寮�鍚换鍔★紝浠诲姟[${task.name}]姝e湪鎵ц")
} else {
- throw IllegalStateException("鏃犳硶寮�鍚换鍔★紝浠诲姟[${task.name}]宸茬粨鏉�")
+ throw ResponseErrorException("鏃犳硶寮�鍚换鍔★紝浠诲姟[${task.name}]宸茬粨鏉�")
}
} else {
task.ready()
@@ -60,7 +61,7 @@
/**
* 鏂板骞跺紑濮嬩换鍔�
*/
- @Throws(IllegalStateException::class)
+ @Throws(ResponseErrorException::class)
fun startNewTask(type: BgTaskType, id: String, name: String, task: () -> Boolean): BgTask {
val t = newTask(type, id, name, task)
return startTask(t)
@@ -95,11 +96,11 @@
/**
* 寮哄埗鍏抽棴浠诲姟
*/
- @Throws(IllegalStateException::class)
+ @Throws(ResponseErrorException::class)
fun shutDownTask(type: BgTaskType, id: String?): List<BgTaskStatus?> {
- val taskMap = taskCollection[type] ?: throw IllegalStateException("鏃犳硶鍏抽棴浠诲姟锛屼换鍔$被鍨媅${type.des}]鏈垱寤�")
+ val taskMap = taskCollection[type] ?: throw ResponseErrorException("鏃犳硶鍏抽棴浠诲姟锛屼换鍔$被鍨媅${type.des}]鏈垱寤�")
return if (id != null) {
- val task = taskMap[id] ?: throw IllegalStateException("鏃犳硶鍏抽棴浠诲姟锛屼换鍔${id}]涓嶅瓨鍦�")
+ val task = taskMap[id] ?: throw ResponseErrorException("鏃犳硶鍏抽棴浠诲姟锛屼换鍔${id}]涓嶅瓨鍦�")
task.shutdown()
listOf(task.taskStatus)
} else {
@@ -112,11 +113,11 @@
}
}
- @Throws(IllegalStateException::class)
+ @Throws(ResponseErrorException::class)
fun removeTask(type: BgTaskType, id: String): Boolean {
val statusList = shutDownTask(type, id)
if (statusList.isNotEmpty()) {
- val s = statusList.first() ?: throw IllegalStateException("鏃犳硶绉婚櫎浠诲姟锛屼换鍔′笉瀛樺湪")
+ val s = statusList.first() ?: throw ResponseErrorException("鏃犳硶绉婚櫎浠诲姟锛屼换鍔′笉瀛樺湪")
taskCollection[s.type]?.remove(s.id)
return true
}
diff --git a/src/main/kotlin/cn/flightfeather/supervision/common/executor/BgTaskStatus.kt b/src/main/kotlin/cn/flightfeather/supervision/common/executor/BgTaskStatus.kt
index 22d6fa9..60bfcf4 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/common/executor/BgTaskStatus.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/common/executor/BgTaskStatus.kt
@@ -45,6 +45,9 @@
}
}
+ // 棰濆鑷畾涔夐檮甯︿俊鎭�
+ var extra: Any? = null
+
}
enum class TaskStatus {
diff --git a/src/main/kotlin/cn/flightfeather/supervision/common/executor/BgTaskType.kt b/src/main/kotlin/cn/flightfeather/supervision/common/executor/BgTaskType.kt
index d1b471f..85b0bf5 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/common/executor/BgTaskType.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/common/executor/BgTaskType.kt
@@ -4,7 +4,9 @@
//娴嬭瘯浠诲姟
TEST(0, "娴嬭瘯浠诲姟"),
//鑷姩璇勫垎
- AUTO_SCORE(1, "鑷姩璇勪及浠诲姟");
+ AUTO_SCORE(1, "鑷姩璇勪及浠诲姟"),
+ //鏂囨。鐢熸垚
+ DOCUMENT(2, "鐢熸垚鏂囨。浠诲姟");
companion object {
@@ -13,6 +15,7 @@
return when (index) {
TEST.index -> TEST
AUTO_SCORE.index -> AUTO_SCORE
+ DOCUMENT.index -> DOCUMENT
else -> null
}
}
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/EvaluationRuleRep.kt b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/EvaluationRuleRep.kt
index 9014743..30fbccc 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/EvaluationRuleRep.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/EvaluationRuleRep.kt
@@ -20,11 +20,11 @@
return evaluationruleMapper.selectByExample(Example(Evaluationrule::class.java).apply {
createCriteria().andEqualTo("tasktypeid", areaEvaVo.taskTypeId)
.andEqualTo("scensetypeid", areaEvaVo.scensetypeid)
- .andEqualTo("provincecode", areaEvaVo.provincecode)
- .andEqualTo("citycode", areaEvaVo.citycode)
- .andEqualTo("districtcode", areaEvaVo.districtcode)
- .andEqualTo("towncode", areaEvaVo.towncode)
.andEqualTo("isuse", true)
+ and(createCriteria().orEqualTo("provincecode", areaEvaVo.provincecode).orIsNull("provincecode"))
+ and(createCriteria().orEqualTo("citycode", areaEvaVo.citycode).orIsNull("citycode"))
+ and(createCriteria().orEqualTo("districtcode", areaEvaVo.districtcode).orIsNull("districtcode"))
+ and(createCriteria().orEqualTo("towncode", areaEvaVo.towncode).orIsNull("towncode"))
})
}
}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/TaskRep.kt b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/TaskRep.kt
index 8dba496..14eccea 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/TaskRep.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/TaskRep.kt
@@ -5,7 +5,9 @@
import cn.flightfeather.supervision.lightshare.vo.AreaVo
import org.springframework.stereotype.Repository
import java.time.LocalDate
+import java.time.LocalDateTime
import java.time.ZoneId
+import java.time.format.DateTimeFormatter
import java.util.*
@Repository
@@ -13,7 +15,7 @@
private fun exampleTask(areaVo: AreaVo): Task?{
areaVo.starttime ?: return null
- val mStart = LocalDate.parse(areaVo.starttime).withDayOfMonth(1).atStartOfDay()
+ val mStart = areaVo.starttime!!.withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0)
val mEnd = mStart.plusMonths(1).minusSeconds(1)
return Task().apply {
provincecode = areaVo.provincecode
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds2/repository/ComplaintAndPunishmentRep.kt b/src/main/kotlin/cn/flightfeather/supervision/domain/ds2/repository/ComplaintAndPunishmentRep.kt
index 3c60c11..a5f7ef2 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/domain/ds2/repository/ComplaintAndPunishmentRep.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds2/repository/ComplaintAndPunishmentRep.kt
@@ -6,6 +6,8 @@
import cn.flightfeather.supervision.lightshare.vo.ComplaintVo
import cn.flightfeather.supervision.lightshare.vo.PunishmentVo
import org.springframework.stereotype.Repository
+import java.time.LocalDateTime
+import java.time.format.DateTimeFormatter
import java.util.*
/**
@@ -30,6 +32,12 @@
return findComplaint(tzUserIdList, s, e)
}
+ fun findComplaint(tzUserIdList: List<String?>, sTime: LocalDateTime?, eTime: LocalDateTime?): List<ComplaintVo?> {
+ val s = sTime?.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+ val e = eTime?.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+ return findComplaint(tzUserIdList, s, e)
+ }
+
fun findComplaint(tzUserIdList: List<String?>, sTime: String?, eTime: String?): List<ComplaintVo?> {
return complaintMapper.findComplaint(tzUserIdList, sTime, eTime)
}
@@ -44,6 +52,12 @@
return findPunishment(tzUserIdList, s, e)
}
+ fun findPunishment(tzUserIdList: List<String?>, sTime: LocalDateTime?, eTime: LocalDateTime?): List<PunishmentVo?> {
+ val s = sTime?.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+ val e = eTime?.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+ return findPunishment(tzUserIdList, s, e)
+ }
+
fun findPunishment(tzUserIdList: List<String?>, sTime: String?, eTime: String?): List<PunishmentVo?> {
return punishmentMapper.findPunishment(tzUserIdList, sTime, eTime)
}
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/EvaluationService.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/EvaluationService.kt
index dd4b9d3..4fc2723 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/EvaluationService.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/EvaluationService.kt
@@ -7,6 +7,8 @@
import cn.flightfeather.supervision.lightshare.vo.AutoScoreResultVo
import cn.flightfeather.supervision.lightshare.vo.BaseResponse
import cn.flightfeather.supervision.lightshare.vo.EvaluateResVo
+import springfox.documentation.annotations.ApiIgnore
+import javax.servlet.http.HttpServletResponse
interface EvaluationService {
@@ -39,4 +41,6 @@
fun autoEvaluate(areaVo: AreaVo): BgTaskStatus?
fun findAutoEvaluation(areaVo: AreaVo): List<AutoScoreResultVo?>?
+
+ fun downloadAutoEvaluation(areaVo: AreaVo, response: HttpServletResponse): Boolean
}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/BgTaskServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/BgTaskServiceImpl.kt
index 613e021..fedcdf2 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/BgTaskServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/BgTaskServiceImpl.kt
@@ -1,5 +1,6 @@
package cn.flightfeather.supervision.lightshare.service.impl
+import cn.flightfeather.supervision.common.exception.ResponseErrorException
import cn.flightfeather.supervision.common.executor.BackgroundTaskCtrl
import cn.flightfeather.supervision.common.executor.BgTaskConditionVo
import cn.flightfeather.supervision.common.executor.BgTaskStatus
@@ -15,21 +16,21 @@
}
override fun startTask(condition: BgTaskConditionVo): BgTaskStatus? {
- condition.type ?: throw IllegalStateException("浠诲姟绫诲瀷涓嶈兘涓虹┖")
- condition.id ?: throw IllegalStateException("浠诲姟id涓嶈兘涓虹┖")
+ condition.type ?: throw ResponseErrorException("浠诲姟绫诲瀷涓嶈兘涓虹┖")
+ condition.id ?: throw ResponseErrorException("浠诲姟id涓嶈兘涓虹┖")
val task = backgroundTaskCtrl.startTask(condition.type!!, condition.id!!)
return task.taskStatus
}
override fun shutDownTask(condition: BgTaskConditionVo): List<BgTaskStatus?> {
- condition.type ?: throw IllegalStateException("浠诲姟绫诲瀷涓嶈兘涓虹┖")
+ condition.type ?: throw ResponseErrorException("浠诲姟绫诲瀷涓嶈兘涓虹┖")
return backgroundTaskCtrl.shutDownTask(condition.type!!, condition.id)
}
override fun removeTask(condition: BgTaskConditionVo): Boolean {
- condition.type ?: throw IllegalStateException("浠诲姟绫诲瀷涓嶈兘涓虹┖")
- condition.id ?: throw IllegalStateException("浠诲姟id涓嶈兘涓虹┖")
+ condition.type ?: throw ResponseErrorException("浠诲姟绫诲瀷涓嶈兘涓虹┖")
+ condition.id ?: throw ResponseErrorException("浠诲姟id涓嶈兘涓虹┖")
return backgroundTaskCtrl.removeTask(condition.type!!, condition.id!!)
}
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ComplaintServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ComplaintServiceImpl.kt
index f56a1a1..3c7a1bd 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ComplaintServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ComplaintServiceImpl.kt
@@ -1,5 +1,6 @@
package cn.flightfeather.supervision.lightshare.service.impl
+import cn.flightfeather.supervision.common.exception.ResponseErrorException
import cn.flightfeather.supervision.domain.ds1.repository.SceneRep
import cn.flightfeather.supervision.domain.ds1.repository.TaskRep
import cn.flightfeather.supervision.domain.ds1.repository.UserInfoSVRep
@@ -36,7 +37,7 @@
}
//浠ラ缇界洃绠$郴缁熶腑鐨勭敤鎴蜂负涓讳綋
2 -> {
- val task = taskRep.findOneTask(areaVo) ?: throw IllegalStateException("褰撳墠鏌ヨ鏉′欢涓嬫湭鎵惧埌瀵瑰簲椤跺眰浠诲姟")
+ val task = taskRep.findOneTask(areaVo) ?: throw ResponseErrorException("褰撳墠鏌ヨ鏉′欢涓嬫湭鎵惧埌瀵瑰簲椤跺眰浠诲姟")
val scenes = sceneRep.findScene(task.tguid!!, areaVo.scensetypeid?.toInt(), areaVo.towncode)
.map { it?.guid }
val idList = userInfoSVRep.findUser(scenes).map { it?.guid }
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/EvaluationServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/EvaluationServiceImpl.kt
index b7db654..22a8fea 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/EvaluationServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/EvaluationServiceImpl.kt
@@ -1,11 +1,16 @@
package cn.flightfeather.supervision.lightshare.service.impl
import cn.flightfeather.supervision.business.AutoScore2
-import cn.flightfeather.supervision.business.autooutput.AopTaskCtrl
+import cn.flightfeather.supervision.business.bgtask.AopTaskCtrl
import cn.flightfeather.supervision.business.autooutput.score.AopEvaluation
-import cn.flightfeather.supervision.common.executor.BackgroundTaskCtrl
+import cn.flightfeather.supervision.business.bgtask.ReportTaskCtrl
+import cn.flightfeather.supervision.business.report.DataSource
+import cn.flightfeather.supervision.business.report.DbMapper
+import cn.flightfeather.supervision.business.report.file.ReportOne
+import cn.flightfeather.supervision.business.report.file.ReportThree
+import cn.flightfeather.supervision.business.report.file.ReportTwo
+import cn.flightfeather.supervision.common.exception.ResponseErrorException
import cn.flightfeather.supervision.common.executor.BgTaskStatus
-import cn.flightfeather.supervision.common.executor.BgTaskType
import cn.flightfeather.supervision.domain.ds1.entity.Domainitem
import cn.flightfeather.supervision.domain.ds1.entity.Evaluation
import cn.flightfeather.supervision.domain.ds1.entity.Subtask
@@ -18,15 +23,17 @@
import cn.flightfeather.supervision.domain.ds1.repository.EvaluationRep
import cn.flightfeather.supervision.domain.ds1.repository.TaskRep
import cn.flightfeather.supervision.lightshare.service.EvaluationService
+import cn.flightfeather.supervision.lightshare.service.SearchService
import cn.flightfeather.supervision.lightshare.service.SubtaskService
-import cn.flightfeather.supervision.lightshare.vo.AreaVo
-import cn.flightfeather.supervision.lightshare.vo.AutoScoreResultVo
-import cn.flightfeather.supervision.lightshare.vo.BaseResponse
-import cn.flightfeather.supervision.lightshare.vo.EvaluateResVo
+import cn.flightfeather.supervision.lightshare.vo.*
import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.beans.factory.annotation.Value
import org.springframework.stereotype.Service
import tk.mybatis.mapper.entity.Example
+import java.io.File
+import java.net.URLEncoder
import java.util.*
+import javax.servlet.http.HttpServletResponse
import kotlin.Comparator
@Service
@@ -35,14 +42,21 @@
private val evaluationRep: EvaluationRep,
private val taskRep: TaskRep,
private val aopTaskCtrl: AopTaskCtrl,
+ private val searchService: SearchService,
+ private val dbMapper: DbMapper,
+ @Value("\${filePath}") private val filePath: String,
+ private val reportTaskCtrl: ReportTaskCtrl,
) : EvaluationService {
@Autowired
lateinit var subtaskService: SubtaskService
+
@Autowired
lateinit var domainitemMapper: DomainitemMapper
+
@Autowired
lateinit var subtaskMapper: SubtaskMapper
+
@Autowired
lateinit var aopEvaluation: AopEvaluation
private var isAutoScoreRunning = false
@@ -53,12 +67,13 @@
var areaVolist = mutableListOf<EvaluateResVo>()
//鑰冩牳绫诲瀷鏄鑼冭�冩牳
if (evaluationlist.isNotEmpty() &&
- Objects.equals(evaluationlist.get(0).ertype, Constant.RuleType.STANDARD.value)) {
+ Objects.equals(evaluationlist.get(0).ertype, Constant.RuleType.STANDARD.value)
+ ) {
//鑾峰彇瑙勮寖鑰冩牳鐨勮�冩牳鐣岄檺锛堥棶棰樻暟閲忥級
val example = Example(Domainitem::class.java)
val criteria = example.createCriteria()
criteria.andEqualTo("dcguid", Domain.STANDARDLEVEL.value)
- val standardlevel:String? = domainitemMapper.selectByExample(example).get(0).value
+ val standardlevel: String? = domainitemMapper.selectByExample(example).get(0).value
//鎸夎闀囪绠椾弗閲嶄笉瑙勮寖鍦烘櫙鏁伴噺骞舵寜鐧惧垎姣旀帓搴�
while (evaluationlist.isNotEmpty()) {
val tmplist = mutableListOf<Evaluation>()
@@ -68,9 +83,9 @@
val evaluation = evaluationlist.get(0)//鑾峰彇涓�绉嶈闀�
var areaVo = EvaluateResVo()
areaVo = transform(areaVo, evaluation)
- while (iterator.hasNext()){
+ while (iterator.hasNext()) {
val tmp = iterator.next()
- if (Objects.equals(tmp.towncode, evaluation.towncode)){
+ if (Objects.equals(tmp.towncode, evaluation.towncode)) {
if (tmp.resultscorebef!!.toInt() >= standardlevel!!.toInt())
areaVo.notstandardnum++
areaVo.allsensenum++
@@ -84,7 +99,8 @@
}
//鑰冩牳绫诲瀷鏄瘎鍒嗚�冩牳
else if (evaluationlist.isNotEmpty() &&
- Objects.equals(evaluationlist.get(0).ertype, Constant.RuleType.SCORE.value)){
+ Objects.equals(evaluationlist.get(0).ertype, Constant.RuleType.SCORE.value)
+ ) {
//鑾峰彇璇勫垎鑰冩牳鐨勮瘎鍒嗙晫闄�
val example = Example(Domainitem::class.java)
val criteria = example.createCriteria()
@@ -100,7 +116,7 @@
val evaluation = evaluationlist.get(0)//鑾峰彇涓�绉嶈闀�
var areaVo = EvaluateResVo()
areaVo = transform(areaVo, evaluation)
- while (iterator.hasNext()){
+ while (iterator.hasNext()) {
val tmp = iterator.next()
if (Objects.equals(tmp.towncode, evaluation.towncode)) {
if (tmp.resultscorebef!!.toInt() < scorelevellist.get(scorelevellist.size - 1).text!!.toInt())
@@ -136,7 +152,7 @@
override fun delete(id: String): Int = evaluationMapper.deleteByPrimaryKey(id)
//鑾峰彇鎸囧畾鍖哄煙锛堥《灞備换鍔★級鎸囧畾鍦烘櫙鐨勮瘎鍒嗕俊鎭�
- fun getRankInfo(tguid: String, scensetypeid: String?, ruletypeid: ByteArray?):MutableList<Evaluation>{
+ fun getRankInfo(tguid: String, scensetypeid: String?, ruletypeid: ByteArray?): MutableList<Evaluation> {
val evaluationlist = mutableListOf<Evaluation>()
val subtaskVolist = subtaskService.findByTaskID(tguid)
subtaskVolist.forEach {
@@ -148,11 +164,11 @@
criteria.andEqualTo("scensetypeid", scensetypeid)
if (ruletypeid != null)//璇勫垎绫诲瀷
criteria.andEqualTo("ertype", ruletypeid)
- else{
+ else {
criteria.andEqualTo("ertype", Constant.RuleType.STANDARD.value)
val result = evaluationMapper.selectByExample(example)//鏌ヨ鏄惁鏈夎鑼冩�ц瘎鍒嗚〃
//娌℃湁瑙勮寖琛ㄥ氨鏌ヨ璇勫垎琛�
- if (result.isEmpty()){
+ if (result.isEmpty()) {
val example1 = Example(Evaluation::class.java)
val criteria1 = example1.createCriteria()
criteria1.andEqualTo("stguid", it.stguid)//瀛愪换鍔d
@@ -162,8 +178,7 @@
val result1 = evaluationMapper.selectByExample(example1)
if (result1.size == 1)
evaluationlist.add(result1.get(0))
- }
- else
+ } else
if (result.size == 1)
evaluationlist.add(result.get(0))
}
@@ -172,7 +187,7 @@
}
//Evaluation浼犻�掓暟鎹粰AreaVo
- fun transform(areaVo: EvaluateResVo, evaluation: Evaluation):EvaluateResVo{
+ fun transform(areaVo: EvaluateResVo, evaluation: Evaluation): EvaluateResVo {
areaVo.provincecode = evaluation.provincecode
areaVo.provincename = evaluation.provincename
areaVo.citycode = evaluation.citycode
@@ -185,15 +200,15 @@
}
//鎸夎閬撲弗閲嶄笉瑙勮寖鍦烘櫙鐧惧垎姣旀帓搴�
- fun sort(areaVolist: MutableList<EvaluateResVo>):MutableList<EvaluateResVo>{
- Collections.sort(areaVolist, object : Comparator<EvaluateResVo>{
+ fun sort(areaVolist: MutableList<EvaluateResVo>): MutableList<EvaluateResVo> {
+ Collections.sort(areaVolist, object : Comparator<EvaluateResVo> {
override fun compare(o1: EvaluateResVo?, o2: EvaluateResVo?): Int {
var num1 = 0.0
if (o1!!.allsensenum != 0)
- num1 = (o1.notstandardnum/o1.allsensenum).toDouble()
+ num1 = (o1.notstandardnum / o1.allsensenum).toDouble()
var num2 = 0.0
if (o2!!.allsensenum != 0)
- num2 = (o2.notstandardnum/o2.allsensenum).toDouble()
+ num2 = (o2.notstandardnum / o2.allsensenum).toDouble()
return compareValues(num1, num2)
}
})
@@ -270,8 +285,47 @@
override fun findAutoEvaluation(areaVo: AreaVo): List<AutoScoreResultVo?>? {
//1. 鏌ユ壘鍘嗗彶璁板綍锛屾煡鐪嬭瘎浼版槸鍚﹀凡瀛樺湪
- areaVo.scensetypeid ?: throw IllegalStateException("鏌ヨ鏃跺繀椤婚�夋嫨涓�涓満鏅被鍨�")
- val task = taskRep.findOneTask(areaVo) ?: throw IllegalStateException("鏌ヨ鏃跺繀椤婚�夋嫨涓�涓満鏅被鍨�")
+// areaVo.scensetypeid ?: throw ResponseErrorException("鏌ヨ鏃跺繀椤婚�夋嫨涓�涓満鏅被鍨�")
+// val task = taskRep.findOneTask(areaVo) ?: throw ResponseErrorException("鏌ヨ鏃跺繀椤婚�夋嫨涓�涓満鏅被鍨�")
return evaluationRep.findAutoScore(areaVo)
}
+
+ override fun downloadAutoEvaluation(areaVo: AreaVo, response: HttpServletResponse): Boolean {
+ areaVo.scensetypeid ?: throw ResponseErrorException("蹇呴』閫夋嫨涓�涓満鏅被鍨�")
+ val topTask = taskRep.findOneTask(areaVo) ?: throw ResponseErrorException("鏈壘鍒扮鍚堟潯浠剁殑椤跺眰浠诲姟")
+ val config = ExcelConfigVo(
+ topTask.tguid ?: "",
+ topTask.starttime,
+ topTask.endtime,
+ topTask.provincecode,
+ topTask.citycode,
+ topTask.districtcode,
+ topTask.towncode,
+ areaVo.scensetypeid?.toInt()
+ )
+
+ val dataSource = DataSource(config, dbMapper)
+ val t = ReportTwo(dataSource)
+ val fileName = t.getReportName()
+ val p = "$filePath/autoscore/"
+ val file = File(p + fileName)
+ if (config.forceUpdate || !file.exists()) {
+ val downloadUrl = "/autoscore/${fileName}"
+ reportTaskCtrl.startTask(t, downloadUrl)
+ return false
+ } else {
+ val fName = Base64.getEncoder().encodeToString(fileName.toByteArray())
+ response.apply {
+ setHeader("Content-Disposition", "attachment;filename=$fName")
+ setHeader("fileName", fName)
+ addHeader("Access-Control-Expose-Headers", "fileName")
+ contentType = "application/vnd.ms-excel;charset=UTF-8"
+ setHeader("Pragma", "no-cache")
+ setHeader("Cache-Control", "no-cache")
+ setDateHeader("Expires", 0)
+ }
+ response.outputStream.write(file.readBytes())
+ return true
+ }
+ }
}
\ 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 d49e29f..eb2d02b 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
@@ -116,8 +116,8 @@
override fun getStatisticalResult(areaVo: AreaVo): List<StatisticsVo> {
val districtcode = areaVo.districtcode
val sceneType = areaVo.scensetypeid
- val startTime = areaVo.starttime
- val endTime = areaVo.endtime
+ val startTime = areaVo.starttime?.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+ val endTime = areaVo.endtime?.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
val maps = problemlistMapper.getStatisticalResult(districtcode,startTime, endTime, sceneType)
val statisticsVos = mutableListOf<StatisticsVo>()
maps.forEach {
@@ -146,7 +146,12 @@
// .andGreaterThanOrEqualTo("endtime", areaVo.endtime)
// .andEqualTo("districtcode", areaVo.districtcode)
val chargeInfoVo = ChargeInfoVo()
- val sql = "select T_GUID, T_Name from tm_t_task where TS_GUID IS NULL and T_StartTime <= '" + areaVo.starttime + "' and T_EndTime >= '" + areaVo.endtime + "' and T_DistrictCode = '" + areaVo.districtcode +"'"
+ val sTime = areaVo.starttime?.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+ val eTime = areaVo.endtime?.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+ val sql =
+ "select T_GUID, T_Name from tm_t_task where TS_GUID IS NULL and T_StartTime <= '" + sTime + "' and T_EndTime" +
+ " >= '" + eTime + "' and T_DistrictCode = '" + areaVo.districtcode + "'"
+
val maps1 = taskMapper.selectSE(sql)
var topTaskId = String()
var topTaskName = String()
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SearchServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SearchServiceImpl.kt
index 3070b2e..8b0e284 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SearchServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SearchServiceImpl.kt
@@ -17,6 +17,7 @@
import cn.flightfeather.supervision.lightshare.vo.*
import com.github.pagehelper.PageHelper
import org.springframework.beans.BeanUtils
+import org.springframework.beans.factory.annotation.Value
import org.springframework.stereotype.Service
import tk.mybatis.mapper.entity.Example
import java.io.File
@@ -55,7 +56,9 @@
val ledgerSubTypeMapper: LedgerSubTypeMapper,
val ledgerRecordMapper: LedgerRecordMapper,
val userMapMapper: UserMapMapper,
- val taskService: TaskService
+ val taskService: TaskService,
+ @Value("\${filePath}") var filePath: String,
+ @Value("\${imgPath}") var imgPath: String
) : SearchService {
private val dateUtil = DateUtil()
@@ -122,7 +125,7 @@
setDateHeader("Expires", 0)
}
- val p = Constant.DEFAULT_FILE_PATH + "/files/autoscore/"
+ val p = "$filePath/autoscore/"
val file = File(p + fileName)
if (config.forceUpdate || !file.exists()) {
t.toFile(p)
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserMapServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserMapServiceImpl.kt
index 47e7b9e..6ef1a58 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserMapServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserMapServiceImpl.kt
@@ -1,6 +1,7 @@
package cn.flightfeather.supervision.lightshare.service.impl
import cn.flightfeather.supervision.business.autooutput.dataanalysis.AopDataDeviceMap
+import cn.flightfeather.supervision.common.exception.ResponseErrorException
import cn.flightfeather.supervision.common.utils.Constant
import cn.flightfeather.supervision.common.utils.UUIDGenerator
import cn.flightfeather.supervision.domain.ds1.entity.Userinfo
@@ -97,7 +98,7 @@
}
//浠ラ缇界洃绠$郴缁熶腑鐨勭敤鎴蜂负涓讳綋
2 -> {
- val task = taskRep.findOneTask(areaVo) ?: throw IllegalStateException("褰撳墠鏌ヨ鏉′欢涓嬫湭鎵惧埌瀵瑰簲椤跺眰浠诲姟")
+ val task = taskRep.findOneTask(areaVo) ?: throw ResponseErrorException("褰撳墠鏌ヨ鏉′欢涓嬫湭鎵惧埌瀵瑰簲椤跺眰浠诲姟")
val scenes = sceneRep.findScene(task.tguid!!, areaVo.scensetypeid?.toInt(), areaVo.towncode)
.map { it?.guid }
userInfoSVRep.findUser(scenes).map { it?.guid }
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/AreaVo.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/AreaVo.kt
index 348eedc..9068058 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/AreaVo.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/AreaVo.kt
@@ -1,6 +1,8 @@
package cn.flightfeather.supervision.lightshare.vo
+import com.fasterxml.jackson.annotation.JsonFormat
import com.fasterxml.jackson.annotation.JsonInclude
+import java.time.LocalDateTime
/**
* 鍖哄煙鏉′欢
@@ -17,9 +19,11 @@
var towncode: String? = null
var townname: String? = null
- // 鏃堕棿鑼冨洿
- var starttime: String? = null
- var endtime: String? = null
+ // 鏃堕棿鑼冨洿,鏍煎紡yyyy-MM-dd HH:mm:ss
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ var starttime: LocalDateTime? = null
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ var endtime: LocalDateTime? = null
// 鍦烘櫙鍚嶇О
var sceneName: String? = null
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/BaseResPack.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/BaseResPack.kt
index 9716c15..3cc30f6 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/BaseResPack.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/BaseResPack.kt
@@ -1,5 +1,6 @@
package cn.flightfeather.supervision.lightshare.web
+import cn.flightfeather.supervision.common.exception.ResponseErrorException
import cn.flightfeather.supervision.lightshare.vo.BaseResponse
import cn.flightfeather.supervision.lightshare.vo.DataHead
@@ -19,7 +20,7 @@
} else {
BaseResponse(true, data = res)
}
- } catch (e: IllegalStateException) {
+ } catch (e: ResponseErrorException) {
BaseResponse(false, message = e.message ?: "")
}
}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/EvaluationController.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/EvaluationController.kt
index c857357..ce1b46e 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/EvaluationController.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/EvaluationController.kt
@@ -6,6 +6,8 @@
import io.swagger.annotations.Api
import io.swagger.annotations.ApiOperation
import org.springframework.web.bind.annotation.*
+import springfox.documentation.annotations.ApiIgnore
+import javax.servlet.http.HttpServletResponse
@Api(tags = ["EvaluationController"], description = "璇勪及鎬诲垎API鎺ュ彛")
@RestController
@@ -65,4 +67,9 @@
@ApiOperation(value = "鏍规嵁鍖哄煙鑼冨洿鑾峰彇鑷姩璇勪及鍘嗗彶璁板綍")
@PostMapping("/auto/record")
fun findAutoEvaluation(@RequestBody areaVo: AreaVo) = resPack { evaluationService.findAutoEvaluation(areaVo) }
+
+ @ApiOperation(value = "涓嬭浇鑷姩璇勪及缁撴灉")
+ @PostMapping("/auto/record/download")
+ fun downloadAutoEvaluation(@RequestBody areaVo: AreaVo, @ApiIgnore response: HttpServletResponse) =
+ resPack { evaluationService.downloadAutoEvaluation(areaVo, response) }
}
\ No newline at end of file
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 89c651c..5af1db9 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -17,4 +17,5 @@
v2:
enabled: true
-
+imgPath: target
+filePath: target
diff --git a/src/main/resources/application-pro.yml b/src/main/resources/application-pro.yml
index 3aafb8b..b5a8da8 100644
--- a/src/main/resources/application-pro.yml
+++ b/src/main/resources/application-pro.yml
@@ -11,4 +11,5 @@
username: ledger
password: ledger_fxxchackxr
-
+imgPath: D:/02product/04supervision/images/
+filePath: D:/02product/04supervision/files/
\ No newline at end of file
diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml
index 69cabda..9bf72d3 100644
--- a/src/main/resources/application-test.yml
+++ b/src/main/resources/application-test.yml
@@ -26,3 +26,6 @@
swagger:
v2:
enabled: true
+
+imgPath: C:\02product\supervision\images
+filePath: C:\02product\supervision\files
\ No newline at end of file
diff --git a/src/test/kotlin/cn/flightfeather/supervision/CommonTest.kt b/src/test/kotlin/cn/flightfeather/supervision/CommonTest.kt
new file mode 100644
index 0000000..4b2f0e0
--- /dev/null
+++ b/src/test/kotlin/cn/flightfeather/supervision/CommonTest.kt
@@ -0,0 +1,15 @@
+package cn.flightfeather.supervision
+
+import org.junit.Test
+import java.util.*
+
+class CommonTest {
+
+ @Test
+ fun foo1() {
+ val fName = Base64.getEncoder().encodeToString("2024骞�01鏈堥潤瀹夊尯宸ュ湴-瑙勮寖鎬ц瘎浼颁笌鍒嗘瀽娓呭崟.xls".toByteArray())
+ val dName = String(Base64.getDecoder().decode(fName))
+ println(fName)
+ println(dName)
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.3