From 1a677d2b4a4bc615602f8c2a22bc07ec1356e5be Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期四, 16 十月 2025 17:39:06 +0800
Subject: [PATCH] 2025.10.16 1. 根据全局响应增强器GlobalResponseAdvice,将原先的BaseResPack接口包装函数统一去除; 2. 新增三种类型的数据产品数据库实体 3. 新增典型问题场景清单中间数据产品接口
---
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ProblemlistServiceImpl.kt | 417 +++++++++++++++++++++++++++++++++++------------------------
1 files changed, 248 insertions(+), 169 deletions(-)
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 a56fe6a..ccca225 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
@@ -1,19 +1,25 @@
package cn.flightfeather.supervision.lightshare.service.impl
-import cn.flightfeather.supervision.domain.ds1.entity.Problemlist
-import cn.flightfeather.supervision.domain.ds1.entity.Scense
+import cn.flightfeather.supervision.common.exception.BizException
+import cn.flightfeather.supervision.common.log.BizLog
+import cn.flightfeather.supervision.common.log.WorkStreamLogInfo
import cn.flightfeather.supervision.common.utils.Constant
import cn.flightfeather.supervision.common.utils.FileUtil
import cn.flightfeather.supervision.common.utils.UUIDGenerator
-import cn.flightfeather.supervision.domain.ds1.entity.Mediafile
+import cn.flightfeather.supervision.domain.ds1.entity.*
import cn.flightfeather.supervision.domain.ds1.mapper.*
+import cn.flightfeather.supervision.domain.ds1.repository.ProblemRep
+import cn.flightfeather.supervision.domain.ds1.repository.SubTaskRep
+import cn.flightfeather.supervision.domain.ds1.repository.TaskRep
import cn.flightfeather.supervision.lightshare.service.MediafileService
import cn.flightfeather.supervision.lightshare.service.ProblemlistService
import cn.flightfeather.supervision.lightshare.service.TaskService
import cn.flightfeather.supervision.lightshare.vo.*
import com.fasterxml.jackson.core.type.TypeReference
import com.fasterxml.jackson.databind.ObjectMapper
+import com.github.pagehelper.PageHelper
import org.springframework.beans.BeanUtils
+import org.springframework.beans.factory.annotation.Value
import org.springframework.stereotype.Service
import org.springframework.web.multipart.MultipartFile
import tk.mybatis.mapper.entity.Example
@@ -32,43 +38,53 @@
class ProblemlistServiceImpl(
val problemlistMapper: ProblemlistMapper,
val inspectionMapper: InspectionMapper,
- val mediafileMapper: MediafileMapper
+ val mediafileMapper: MediafileMapper,
+ private val taskRep: TaskRep,
+ private val subTaskRep: SubTaskRep,
+ private val problemRep: ProblemRep,
+ private val bizLog: BizLog,
+ @Value("\${filePath}") var filePath: String,
+ @Value("\${imgPath}") var imgPath: String,
) : ProblemlistService {
@Resource
lateinit var scenseMapper: ScenseMapper
+
@Resource
lateinit var problemtypeMapper: ProblemtypeMapper
+
@Resource
lateinit var taskMapper: TaskMapper
+
@Resource
lateinit var taskService: TaskService
+
@Resource
lateinit var mediafileService: MediafileService
- override fun getByTopTask(tguid: String): List<ProblemlistVo> {
+ override fun getByTopTask(tguid: String): List<ProblemListVo> {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
//鏍规嵁鍦烘櫙id鍜屾椂闂磋幏鍙栧搴旈《灞備换鍔′笅鐨勬墍鏈夐棶棰�
- override fun getProblemByScene(sceneId: String, date: String): List<ProblemlistVo> {
+ override fun getProblemByScene(sceneId: String, date: String): List<ProblemListVo> {
val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
val date1 = simpleDateFormat.parse(date)
val scene = scenseMapper.selectByPrimaryKey(sceneId)
val district = scene.districtcode
val taskVolist = taskService.getByDistrictCode(district!!, date1)
- val problemlistVolistTemp1 = mutableListOf<ProblemlistVo>()
+ val problemListVolistTemp1 = mutableListOf<ProblemListVo>()
if (!taskVolist.isEmpty()) {
val problemlists = (problemlistMapper.getProblemByScene(sceneId, taskVolist[0].tguid!!))
problemlists.forEach {
// 闄愬埗浼佷笟鏌ョ湅鏈鏍哥殑闂
if (it.extension3 != Constant.PROBLEM_UNCHECKED && it.extension3 != Constant.PROBLEM_CHECK_FAIL) {
- val problemVo = ProblemlistVo();
+ val problemVo = ProblemListVo();
BeanUtils.copyProperties(it, problemVo)
- problemlistVolistTemp1.add(problemVo)
+ problemListVolistTemp1.add(problemVo)
}
}
- problemlistVolistTemp1.forEach {
+ problemListVolistTemp1.forEach {
if (it.ptguid != null) {
val tmp1 = problemtypeMapper.selectByPrimaryKey(it.ptguid)
if (tmp1 != null) {
@@ -86,7 +102,7 @@
}
}
}
- return problemlistVolistTemp1
+ return problemListVolistTemp1
}
//鑾峰彇鏌愰《灞備换鍔′笅锛屾煇涓満鏅笅鐨勯棶棰樻暣鏀规儏鍐�
@@ -114,28 +130,11 @@
//鏍规嵁鍖哄幙銆佸満鏅被鍨嬨�佹椂闂磋幏鍙栧悇涓棶棰樻暟閲�
override fun getStatisticalResult(areaVo: AreaVo): List<StatisticsVo> {
- val districtcode = areaVo.districtcode
- val sceneType = areaVo.scensetypeid
- val startTime = areaVo.starttime
- val endTime = areaVo.endtime
- val maps = problemlistMapper.getStatisticalResult(districtcode,startTime, endTime, sceneType)
- val statisticsVos = mutableListOf<StatisticsVo>()
- maps.forEach {
- if (!it.isEmpty() && it.get("name") != null) {
- val statisticsVo = StatisticsVo()
- statisticsVo.name = it.get("name").toString()
- try {
- statisticsVo.count = it.get("count").toString().toInt()
- } catch (e: Exception) {
- }
- try {
- statisticsVo.changeCount = it.get("changeCount").toString().toInt()
- } catch (e: Exception) {
- }
- statisticsVos.add(statisticsVo)
- }
- }
- return statisticsVos
+// val districtcode = areaVo.districtcode
+// val sceneType = areaVo.scensetypeid
+// 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"))
+ return problemlistMapper.getStatisticalResult(areaVo)
}
override fun getChargeResult(areaVo: AreaVo): ChargeInfoVo {
@@ -146,7 +145,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()
@@ -167,7 +171,7 @@
} catch (e: Exception) {
}
try {
- sceneInfo.changeCount =it.get("changeCount").toString().toInt()
+ sceneInfo.changeCount = it.get("changeCount").toString().toInt()
} catch (e: Exception) {
}
chargeInfoVo.sceneInfos.add(sceneInfo)
@@ -186,16 +190,16 @@
var curScore = -1
if (it.get("scoreAft") != null) {
curScore = it.get("scoreAft").toString().toInt()
- }else if (it.get("scoreBef") != null) {
+ } else if (it.get("scoreBef") != null) {
curScore = it.get("scoreBef").toString().toInt()
}
if (curScore >= 100) {
scoreInfo1.count++
- }else if (curScore >= 78 && curScore < 100) {
+ } else if (curScore >= 78 && curScore < 100) {
scoreInfo2.count++
- }else if (curScore >= 54 && curScore < 78) {
+ } else if (curScore >= 54 && curScore < 78) {
scoreInfo3.count++
- }else if (curScore < 54 && curScore >= 0) {
+ } else if (curScore < 54 && curScore >= 0) {
scoreInfo4.count++
}
}
@@ -209,8 +213,8 @@
}
//鏍规嵁鍦板煙鑾峰彇闂
- override fun getByArea(areaVo: AreaVo):List<ProblemlistVo> {
- val problemlist = mutableListOf<ProblemlistVo>()
+ override fun getByArea(areaVo: AreaVo): List<ProblemListVo> {
+ val problemlist = mutableListOf<ProblemListVo>()
// val tmpproblemlsit = mutableListOf<Problemlist>()
val example = Example(Scense::class.java)
val criteria = example.createCriteria()
@@ -225,8 +229,8 @@
criteria.andEqualTo("towncode", areaVo.towncode)
criteria.andEqualTo("typeid", areaVo.scensetypeid)
val result1 = scenseMapper.selectByExample(example)
- if (result1.isNotEmpty()){
- result1.forEach{
+ if (result1.isNotEmpty()) {
+ result1.forEach {
val tmpexample = Example(Problemlist::class.java)
val tmpcriteria = tmpexample.createCriteria()
//瀵逛簬纭畾鐨勬瘡涓満鏅紝鏍规嵁鏃堕棿鏌ヨ闂
@@ -234,7 +238,7 @@
tmpcriteria.andBetween("time", areaVo.starttime, areaVo.endtime)
val tmp = problemlistMapper.selectByExample(tmpexample)
tmp.forEach {
- val problem = ProblemlistVo();
+ val problem = ProblemListVo();
BeanUtils.copyProperties(it, problem)
problemlist.add(problem)
}
@@ -254,47 +258,47 @@
}
//鏍规嵁宸℃煡ID鑾峰彇闂
- override fun findByInspectionID(inspectionID: String): List<ProblemlistVo> {
- val problemlistVoList = mutableListOf<ProblemlistVo>()
+ override fun findByInspectionID(inspectionID: String): List<ProblemListVo> {
+ val problemListVoList = mutableListOf<ProblemListVo>()
val problemlist = Problemlist()
problemlist.iguid = inspectionID
val problemlists = problemlistMapper.select(problemlist)
problemlists.forEach {
- val problemlistVo = ProblemlistVo()
+ val problemlistVo = ProblemListVo()
if (it.remark != Constant.PROBLEM_DELETED) {
BeanUtils.copyProperties(it, problemlistVo)
- problemlistVoList.add(problemlistVo)
+ problemListVoList.add(problemlistVo)
}
}
//鎺掑簭
- problemlistVoList.sortBy { it.time }
- return problemlistVoList
+ problemListVoList.sortBy { it.time }
+ return problemListVoList
}
//鏂板涓�涓棶棰�
- override fun addProblem(problemlistVo: ProblemlistVo) {
+ override fun addProblem(problemlistVo: ProblemListVo) {
val probemlist = Problemlist()
BeanUtils.copyProperties(problemlistVo, probemlist)
problemlistMapper.insert(probemlist)
}
//鏍规嵁瀛愪换鍔D鏌ヨ闂
- override fun findBySubtaskId(subTaskID: String): List<ProblemlistVo> {
- val problemlistVoList = mutableListOf<ProblemlistVo>()
+ override fun findBySubtaskId(subTaskID: String): List<ProblemListVo> {
+ val problemListVoList = mutableListOf<ProblemListVo>()
val problemlist = Problemlist()
problemlist.stguid = subTaskID
val problemlists = problemlistMapper.select(problemlist)
problemlists.forEach {
- val problemlistVo = ProblemlistVo()
+ val problemlistVo = ProblemListVo()
BeanUtils.copyProperties(it, problemlistVo)
- problemlistVoList.add(problemlistVo)
+ problemListVoList.add(problemlistVo)
}
- return problemlistVoList
+ return problemListVoList
}
//鏍规嵁闂ID鑾峰彇涓�涓棶棰�
- override fun findByID(id: String): ProblemlistVo {
- val problemlistVo = ProblemlistVo()
+ override fun findByID(id: String): ProblemListVo {
+ val problemlistVo = ProblemListVo()
val problemlist = problemlistMapper.selectByPrimaryKey(id)
if (problemlist != null) {
BeanUtils.copyProperties(problemlist, problemlistVo)
@@ -310,12 +314,12 @@
override fun delete(id: String): Int = problemlistMapper.deleteByPrimaryKey(id)
- override fun setDeleteStatus(id: String): BaseResponse<Int> {
+ override fun setDeleteStatus(id: String): Int {
val p = problemlistMapper.selectByPrimaryKey(id)
return when {
- p.ischanged == true -> BaseResponse(false, "闂宸叉暣鏀癸紝鏃犳硶鍒犻櫎", data = 0)
- p.extension3 != Constant.PROBLEM_UNCHECKED -> BaseResponse(false, "闂宸插鏍革紝鏃犳硶鍒犻櫎", data = 0)
+ p.ischanged == true -> throw BizException("闂宸叉暣鏀癸紝鏃犳硶鍒犻櫎")
+ p.extension3 != Constant.PROBLEM_UNCHECKED -> throw BizException("闂宸插鏍革紝鏃犳硶鍒犻櫎")
else -> {
// 2021/4/25 灏嗗師鏉ョ殑娣诲姞鍒犻櫎鐘舵�佹敼涓虹洿鎺ュ垹闄�
// p.remark = Constant.PROBLEM_DELETED
@@ -329,7 +333,7 @@
inspection.problemcount = inspection.problemcount!! - 1
inspectionMapper.updateByPrimaryKey(inspection)
}
- BaseResponse(true, "闂鍒犻櫎鎴愬姛", data = i)
+ i
}
}
}
@@ -340,79 +344,134 @@
override fun findMonthProblemById(taskId: String, sceneId: Int?): List<MonthProblemVo> {
val monthProblemlistVoList = mutableListOf<MonthProblemVo>()
- var map = problemlistMapper.findMonthProblemById(taskId,sceneId)
+ var map = problemlistMapper.findMonthProblemById(taskId, sceneId)
map.forEach { m ->
val monthProblemVo = MonthProblemVo()
- monthProblemVo.townCode =if(m.get("towncode")!= null) BigDecimal(m.get("towncode").toString()).toString() else null
+ monthProblemVo.townCode =
+ if (m.get("towncode") != null) BigDecimal(m.get("towncode").toString()).toString() else null
monthProblemVo.townName = if (m.get("townname") != null) m.get("townname").toString() else null
- monthProblemVo.scenetype =if (m.get("scenetype") != null) m.get("scenetype").toString().toInt()else null
- monthProblemVo.scenetypename =if(m.get("scenetypename") != null)m.get("scenetypename").toString()else null
- monthProblemVo.totalscenecount =if(m.get("totalscenecount") != null)m.get("totalscenecount").toString().toInt()else null
- monthProblemVo.problemscenes =if(m.get("problemscenes") != null)m.get("problemscenes").toString().toInt()else null
- monthProblemVo.totalproblems =if(m.get("totalproblems") != null)m.get("totalproblems").toString().toInt()else null
- monthProblemVo.changedproblems =if(m.get("changedproblems") != null)m.get("changedproblems").toString().toInt()else null
+ monthProblemVo.scenetype = if (m.get("scenetype") != null) m.get("scenetype").toString().toInt() else null
+ monthProblemVo.scenetypename =
+ if (m.get("scenetypename") != null) m.get("scenetypename").toString() else null
+ monthProblemVo.totalscenecount =
+ if (m.get("totalscenecount") != null) m.get("totalscenecount").toString().toInt() else null
+ monthProblemVo.problemscenes =
+ if (m.get("problemscenes") != null) m.get("problemscenes").toString().toInt() else null
+ monthProblemVo.totalproblems =
+ if (m.get("totalproblems") != null) m.get("totalproblems").toString().toInt() else null
+ monthProblemVo.changedproblems =
+ if (m.get("changedproblems") != null) m.get("changedproblems").toString().toInt() else null
monthProblemlistVoList.add(monthProblemVo)
}
return monthProblemlistVoList;
}
- override fun check(pId: String, action: Byte, remark: String, userId: String, userName: String): BaseResponse<String> {
- if (action !in 0..3) {
- return BaseResponse(false, "闈炴硶鐨勬搷浣滄寚浠�")
+ override fun check(
+ pId: String,
+ action: Byte,
+ remark: String,
+ userId: String,
+ userName: String,
+ ): String {
+ if (action !in 0..5) {
+ throw BizException("闈炴硶鐨勬搷浣滄寚浠�")
}
- val p = problemlistMapper.selectByPrimaryKey(pId) ?: return BaseResponse(false, "闂涓嶅瓨鍦�")
+ val p = problemlistMapper.selectByPrimaryKey(pId) ?: throw BizException("闂涓嶅瓨鍦�")
+ val subtask = p.stguid?.let { subTaskRep.findOne(it) }
val response = BaseResponse<String>(true)
+ var event = ""
p.apply {
this.remark = userName
if (extension3 == Constant.PROBLEM_UNCHECKED) {
+ event = "鍦�${subtask?.scensename}瀹℃牳浜嗕竴涓棶棰�"
when (action) {
- 0.toByte() -> extension3 = Constant.PROBLEM_CHECK_PASS
- 1.toByte() -> extension3 = Constant.PROBLEM_CHECK_FAIL
+ 0.toByte() -> {
+ extension3 = Constant.PROBLEM_CHECK_PASS
+ }
+ 1.toByte() -> {
+ extension3 = Constant.PROBLEM_CHECK_FAIL
+ }
2.toByte(),
- 3.toByte() -> {
+ 3.toByte(),
+ -> {
response.success = false
response.message = "闂鎻愪氦杩樻湭瀹℃牳锛屾棤娉曡繘琛屾暣鏀瑰鏍革紒"
}
+ 4.toByte() -> {
+ response.success = false
+ response.message = "闂鎻愪氦杩樻湭瀹℃牳锛屾棤娉曡繘琛屾挙鍥炲鏍革紒"
+ }
+ 5.toByte() -> {
+ response.success = false
+ response.message = "闂鏁存敼杩樻湭鎻愪氦锛屾棤娉曡繘琛屾挙鍥炲鏍革紒"
+ }
}
- }else if (extension3 == Constant.PROBLEM_CHECK_PASS || extension3 == Constant.PROBLEM_CHECK_FAIL) {
+ } else if (extension3 == Constant.PROBLEM_CHECK_PASS || extension3 == Constant.PROBLEM_CHECK_FAIL) {
when (action) {
0.toByte() -> extension3 = Constant.PROBLEM_CHECK_PASS
1.toByte() -> extension3 = Constant.PROBLEM_CHECK_FAIL
2.toByte(),
- 3.toByte() -> {
+ 3.toByte(),
+ -> {
if (ischanged == true && extension3 == Constant.PROBLEM_CHECK_PASS) {
response.success = true
extension3 = if (action == 2.toByte()) {
Constant.CHANGE_CHECK_PASS
- }else{
+ } else {
Constant.CHANGE_CHECK_FAIL
}
+ event = "鍦�${subtask?.scensename}瀹℃牳浜嗕竴涓暣鏀�"
} else {
response.success = false
response.message = "闂杩樻湭鏁存敼锛屾棤娉曡繘琛屾暣鏀瑰鏍革紒鎿嶄綔鏃犳晥"
}
}
+ 4.toByte() -> {
+ extension3 = Constant.PROBLEM_UNCHECKED
+ }
+ 5.toByte() -> {
+ response.success = false
+ response.message = "闂鏁存敼杩樻湭瀹℃牳锛屾棤娉曡繘琛屾暣鏀瑰鏍告挙鍥炴搷浣滐紒鎿嶄綔鏃犳晥"
+ }
}
- }else if (extension3 == Constant.CHANGE_UNCHECKED) {
+ } else if (extension3 == Constant.CHANGE_UNCHECKED) {
+ event = "鍦�${subtask?.scensename}瀹℃牳浜嗕竴涓暣鏀�"
when (action) {
0.toByte(),
- 1.toByte() -> {
+ 1.toByte(),
+ -> {
response.success = false
response.message = "闂鎻愪氦宸插鏍革紝骞朵笖宸茶鏁存敼銆傛搷浣滄棤鏁�"
}
2.toByte() -> extension3 = Constant.CHANGE_CHECK_PASS
3.toByte() -> extension3 = Constant.CHANGE_CHECK_FAIL
+ 4.toByte() -> {
+ response.success = false
+ response.message = "闂鏁存敼杩樻湭瀹℃牳锛屾棤娉曡繘琛屾挙鍥炲鏍革紒"
+ }
+ 5.toByte() -> {
+ response.success = false
+ response.message = "闂鎻愪氦宸插鏍革紝骞朵笖宸茶鏁存敼銆傛搷浣滄棤鏁�"
+ }
}
- }else if (extension3 == Constant.CHANGE_CHECK_PASS || extension3 == Constant.CHANGE_CHECK_FAIL) {
+ } else if (extension3 == Constant.CHANGE_CHECK_PASS || extension3 == Constant.CHANGE_CHECK_FAIL) {
when (action) {
0.toByte(),
- 1.toByte() -> {
+ 1.toByte(),
+ -> {
response.success = false
response.message = "闂鎻愪氦宸插鏍革紝骞朵笖宸茶鏁存敼銆傛搷浣滄棤鏁�"
}
2.toByte() -> extension3 = Constant.CHANGE_CHECK_PASS
3.toByte() -> extension3 = Constant.CHANGE_CHECK_FAIL
+ 4.toByte() -> {
+ response.success = false
+ response.message = "闂鎻愪氦宸插鏍革紝骞朵笖宸茶鏁存敼锛屾棤娉曡繘琛岄棶棰樺鏍告挙閿�鎿嶄綔銆傛搷浣滄棤鏁�"
+ }
+ 5.toByte() -> {
+ extension3 = Constant.CHANGE_UNCHECKED
+ }
}
}
}
@@ -422,75 +481,25 @@
if (r != 1) {
response.success = false
response.message = "闂鏇存柊澶辫触锛�"
+ } else {
+ bizLog.info(WorkStreamLogInfo(userId, userName, event))
}
}
- return response
+ return if (response.success) "闂瀹℃牳鎴愬姛" else throw BizException(response.message)
}
- override fun newProblem(problem: String, files: Array<MultipartFile>): BaseResponse<String> {
- val mapper = ObjectMapper()
-
+ override fun newProblem(problem: String, files: Array<MultipartFile>): String {
//json杞琽bject
- val problemVo = mapper.readValue(problem, object : TypeReference<ProblemVo>() {})
+ val problemVo = ObjectMapper().readValue(problem, object : TypeReference<ProblemVo>() {})
+ val inspection = inspectionMapper.selectByPrimaryKey(problemVo.insGuid) ?: throw BizException("宸℃煡璁板綍涓嶅瓨鍦�")
+ val scene = scenseMapper.selectByPrimaryKey(inspection.sguid) ?: throw BizException("宸℃煡璁板綍瀵瑰簲鍦烘櫙涓嶅瓨鍦�")
// 淇濆瓨闂
- val inspection = inspectionMapper.selectByPrimaryKey(problemVo.insGuid) ?: return BaseResponse(false, "宸℃煡璁板綍涓嶅瓨鍦�")
- val scene = scenseMapper.selectByPrimaryKey(inspection.sguid) ?: return BaseResponse(false, "宸℃煡璁板綍瀵瑰簲鍦烘櫙涓嶅瓨鍦�")
-
- val problemlist = Problemlist().apply {
- guid = UUIDGenerator.generate16ShortUUID()
- iguid = inspection.guid
- stguid = inspection.stguid
- sguid = inspection.sguid
- sensename = inspection.scensename
- senseaddress = inspection.scenseaddress
- ptguid = problemVo.ptGuid
- problemname = problemVo.proName
- longitude = problemVo.longitude ?: scene.longitude
- latitude = problemVo.latitude ?: scene.latitude
- locationid = problemVo.locationId
- location = problemVo.location
- time = Date()
- isrechecked = false
- ischanged = false
- advise = problemVo.advice
- extension3 = Constant.PROBLEM_UNCHECKED
- }
+ val problemlist = ProblemListVo.newPro(inspection, problemVo, scene)
problemlistMapper.insert(problemlist)
// 淇濆瓨鍥剧墖
- val now = LocalDateTime.now()
- for (image in files) {
- val mediaFile = Mediafile().apply {
- guid = UUIDGenerator.generate16ShortUUID()
- iguid = inspection.guid
- businessguid = problemlist.guid
- longitude = problemlist.longitude
- latitude = problemlist.latitude
- address = problemlist.senseaddress
- filetype = 1
- businesstype = "闂"
- businesstypeid = 1
- path = "FlightFeather/Photo/" + scene.districtname + "/" + now.year + "骞�" + now.monthValue + "鏈�/" + now.monthValue + "鏈�" + now.dayOfMonth + "鏃�/" + scene.name + "/"
- description = problemlist.problemname + " " + problemlist.location + " " + UUIDGenerator.generateUUID(4) + ".jpg"
- savetime = Date()
- ischanged = false
- extension1 = scene.citycode + "/" + scene.districtcode + "/" + now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + "/" + scene.guid + "/"
- remark = "宸蹭笂浼�"
- }
- mediafileMapper.insert(mediaFile)
-
- val path = mediaFile.extension1
- val fileName = mediaFile.guid + ".jpg"
-// val filePath = "E:\\work\\绗笁鏂圭洃绠pp\\鑷姩璇勫垎\\椁愰ギ\\"
- val filePath = "${Constant.DEFAULT_FILE_PATH}/images/$path/"
- try {
- //璋冪敤鏂囦欢淇濆瓨鏂规硶
- FileUtil.uploadFile(image.bytes, filePath, fileName)
- } catch (e: Exception) {
- // TODO: handle exception
- }
- }
+ mediafileService.saveMediaFile(files) { MediaFileVo.newProFile(inspection, problemlist, scene) }
//鏇存柊宸℃煡淇℃伅鐨勯棶棰樻暟
if (inspection.problemcount != null) {
@@ -498,12 +507,37 @@
inspectionMapper.updateByPrimaryKey(inspection)
}
- return BaseResponse(true)
+ problemlist.stguid?.let {
+ val subtask = subTaskRep.findOne(it)
+ val event = "鍦�${subtask?.scensename}鏂板涓�涓棶棰�"
+ bizLog.info(WorkStreamLogInfo(subtask?.executorguids, subtask?.executorrealtimes, event))
+ }
+
+ return "success"
}
- override fun changeProblem(problemId: String, files: Array<MultipartFile>): BaseResponse<String> {
+ override fun updateProblem(problem: ProblemListVo, deleteImg: List<String>, files: Array<MultipartFile>): String {
+ problemRep.findOne(problem.guid) ?: throw BizException("璇ラ棶棰樹笉瀛樺湪")
+ problemRep.update(problem)
+ val inspection = inspectionMapper.selectByPrimaryKey(problem.iguid) ?: throw BizException("宸℃煡璁板綍涓嶅瓨鍦�")
+ val scene = scenseMapper.selectByPrimaryKey(inspection.sguid) ?: throw BizException("宸℃煡璁板綍瀵瑰簲鍦烘櫙涓嶅瓨鍦�")
+ mediafileService.saveMediaFile(files) { MediaFileVo.newProFile(inspection, problem, scene) }
+ mediafileService.deleteList(deleteImg)
+ return "success"
+ }
+
+
+ override fun changeProblem(problemId: String, files: Array<MultipartFile>): String {
+ // 闂鍜岄棶棰樺浘鐗囧悎娉曟�ф鏌�
+ val p = problemlistMapper.selectByPrimaryKey(problemId) ?: throw BizException("闂涓嶅瓨鍦�")
+ val mediaFiles = mediafileMapper.selectByExample(Example(Mediafile::class.java).apply {
+ createCriteria().andEqualTo("businessguid", p.guid)
+ .andEqualTo("businesstypeid", 1)
+ .andEqualTo("ischanged", false)
+ })
+ if (mediaFiles.isEmpty()) throw BizException("闂涓嶅瓨鍦ㄦ垨宸叉暣鏀癸紝鏃犳硶閲嶅鏁存敼")
+
// 鏇存柊闂
- val p = problemlistMapper.selectByPrimaryKey(problemId) ?: return BaseResponse(false, "闂涓嶅瓨鍦�")
p.apply {
ischanged = true
changedtime = Date()
@@ -522,38 +556,83 @@
}
problemlistMapper.updateByPrimaryKey(p)
- // 淇濆瓨鍥剧墖
- val now = LocalDateTime.now()
- val mediaFiles = mediafileMapper.selectByExample(Example(Mediafile::class.java).apply {
- createCriteria().andEqualTo("businessguid", p.guid)
- .andEqualTo("businesstypeid", 1)
- .andEqualTo("ischanged", false)
- })
- if (mediaFiles.isEmpty()) return BaseResponse(false, "鍦烘櫙闂鏁伴噺涓�0锛屾棤娉曟暣鏀�")
+ // 淇濆瓨鏁存敼鍥剧墖
val m = mediaFiles[0]
m.path = m.path + "鏁存敼/"
m.savetime = Date()
m.ischanged = true
-
- for (image in files) {
+ mediafileService.saveMediaFile(files) {
m.apply {
guid = UUIDGenerator.generate16ShortUUID()
description = p.problemname + " " + p.location + " 鏁存敼 " + UUIDGenerator.generateUUID(4) + ".jpg"
}
- mediafileMapper.insert(m)
-
- val path = m.extension1
- val fileName = m.guid + ".jpg"
-// val filePath = "E:\\work\\绗笁鏂圭洃绠pp\\鑷姩璇勫垎\\椁愰ギ\\"
- val filePath = "${Constant.DEFAULT_FILE_PATH}/images/$path"
- try {
- //璋冪敤鏂囦欢淇濆瓨鏂规硶
- FileUtil.uploadFile(image.bytes, filePath, fileName)
- } catch (e: Exception) {
- println(e)
- }
}
- return BaseResponse(true)
+ return "success"
+ }
+
+ override fun updateChange(problemId: String, deleteImg: List<String>, files: Array<MultipartFile>): String {
+ val p = problemRep.findOne(problemId) ?: throw BizException("璇ラ棶棰樹笉瀛樺湪")
+ val mediaFiles = mediafileMapper.selectByExample(Example(Mediafile::class.java).apply {
+ createCriteria().andEqualTo("businessguid", problemId)
+ .andEqualTo("businesstypeid", 1)
+ .andEqualTo("ischanged", true)
+ })
+ if (mediaFiles.isEmpty()) throw BizException("闂杩樻湭鏁存敼锛屾棤娉曚慨鏀规暣鏀�")
+
+ // 淇濆瓨鏂扮殑鏁存敼鍥剧墖
+ val m = mediaFiles[0]
+ m.savetime = Date()
+ mediafileService.saveMediaFile(files) {
+ m.apply {
+ guid = UUIDGenerator.generate16ShortUUID()
+ description = p.problemname + " " + p.location + " 鏁存敼 " + UUIDGenerator.generateUUID(4) + ".jpg"
+ }
+ }
+ mediafileService.deleteList(deleteImg)
+ return "success"
+ }
+
+ override fun getBySubTask(stGuid: String, all: Boolean?): List<ProblemListVo> {
+ //鏍规嵁瀛愪换鍔D鑾峰彇闂鍒楄〃
+ val problemListVo = mutableListOf<ProblemListVo>()
+ if (all == false) {
+ //鍘婚櫎鏈鏍镐互鍙婂鏍镐笉閫氳繃鐨勯棶棰�
+ findBySubtaskId(stGuid).forEach {
+ if (it.extension3 != Constant.PROBLEM_UNCHECKED && it.extension3 != Constant.PROBLEM_CHECK_FAIL) {
+ problemListVo.add(it)
+ }
+ }
+ } else {
+ problemListVo.addAll(findBySubtaskId(stGuid))
+ }
+ //鏍规嵁姣忎釜闂,鑾峰彇濯掍綋鏂囦欢
+ problemListVo.forEach {
+ val mediafileVo = mediafileService.findByBusinessGUID(it.guid!!)
+ //鍒ゆ柇鏄惁鏈夊獟浣撹祫鏂�
+ if (mediafileVo.isNotEmpty()) {
+ //璧嬪��
+ it.mediafileList = mediafileVo
+ }
+ }
+ return problemListVo
+ }
+
+ override fun getSceneByProType(areaVo: AreaVo, pType: String): List<Subtask?> {
+ areaVo.scensetypeid ?: throw BizException("缂哄皯鍦烘櫙绫诲瀷鍙傛暟")
+ val task = taskRep.findOneTask(areaVo) ?: throw BizException("鏈壘鍒板搴旂殑宸℃煡鎬讳换鍔�")
+ return subTaskRep.findSubtasks(task.tguid!!, areaVo.scensetypeid!!, pType)
+ }
+
+ override fun getSceneProSummary(
+ areaVo: AreaVo,
+ page: Int,
+ per_page: Int,
+ ): Pair<DataHead?, List<SceneProblemSummary>?> {
+// areaVo.scensetypeid ?: throw BizException("缂哄皯鍦烘櫙绫诲瀷鍙傛暟")
+// val task = taskRep.findOneTask(areaVo) ?: throw BizException("鏈壘鍒板搴旂殑宸℃煡鎬讳换鍔�")
+ val p = PageHelper.startPage<SceneProblemSummary>(page, per_page)
+ val res = problemRep.selectSceneProSummary(areaVo)
+ return DataHead(p.pageNum, p.pages, p.total) to res
}
}
\ No newline at end of file
--
Gitblit v1.9.3