From 5a003a42d2b34e8362910ac1d3e5a8866768e5fe Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期六, 20 十二月 2025 16:50:28 +0800
Subject: [PATCH] 2025.12.20 巡查任务统计相关功能修改
---
src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/DayTaskProgressVo.kt | 87 ++++++-
src/main/kotlin/cn/flightfeather/supervision/lightshare/web/ProblemlistController.kt | 7
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/MonitorobjectversionServiceImpl.kt | 32 +-
src/main/kotlin/cn/flightfeather/supervision/business/import/SceneImport.kt | 4
src/test/kotlin/cn/flightfeather/supervision/business/location/LocationRoadNearbyTest.kt | 64 ++--
src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/ScenseVo.kt | 128 +++++-----
src/main/kotlin/cn/flightfeather/supervision/lightshare/web/SubtaskController.kt | 9
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/TaskServiceImpl.kt | 84 ++++++-
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/ProblemlistService.kt | 2
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SubtaskServiceImpl.kt | 132 ++++++++---
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/SubtaskService.kt | 2
src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/MonitorObjectVersionVo.kt | 7
src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/SceneRep.kt | 29 ++
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ProblemlistServiceImpl.kt | 31 ++
14 files changed, 444 insertions(+), 174 deletions(-)
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/import/SceneImport.kt b/src/main/kotlin/cn/flightfeather/supervision/business/import/SceneImport.kt
index a015e47..ec2d8ef 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/import/SceneImport.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/import/SceneImport.kt
@@ -93,8 +93,12 @@
index = it.getCell(0)?.numericCellValue?.toInt()
remark = null
}
+ if (scense?.name.isNullOrBlank()) throw BizException(errorStr(it.rowNum + 1, 2, "鍦烘櫙鍚嶇О涓嶈兘绌虹櫧"))
scense?.typeid = Constant.SceneType.getByName(scense?.type)?.value?.toByte()
?: throw BizException(errorStr(it.rowNum + 1, 3, "鍦烘櫙绫诲瀷涓嶅瓨鍦�"))
+ if (scense?.location.isNullOrBlank()) throw BizException(errorStr(it.rowNum + 1, 4, "鍦烘櫙鍦板潃涓嶈兘绌虹櫧"))
+ scense?.longitude ?: throw BizException(errorStr(it.rowNum + 1, 5, "缁忓害涓嶈兘绌虹櫧"))
+ scense?.latitude ?: throw BizException(errorStr(it.rowNum + 1, 6, "绾害涓嶈兘绌虹櫧"))
scense?.provincecode = regionRep.findProvince(scense?.provincename)?.provincecode
?: throw BizException(errorStr(it.rowNum + 1, 7, "鐪佷唤閿欒鎴栫郴缁熸湭鏇鹃厤缃�"))
scense?.citycode = regionRep.findCity(scense?.cityname)?.citycode
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/SceneRep.kt b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/SceneRep.kt
index 7a8e29e..e29beea 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/SceneRep.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/SceneRep.kt
@@ -91,6 +91,35 @@
return isUpdate to r
}
+ fun findSubSceneList(scenes: List<Scense>): List<BaseScene?> {
+ val result = mutableListOf<BaseScene>()
+ scenes.groupBy { it.typeid }.forEach {
+ when (it.key.toString()) {
+ Constant.SceneType.TYPE1.value -> {
+ sceneConstructionSiteMapper.selectByExample(Example(SceneConstructionSite::class.java).apply {
+ createCriteria().andIn("sGuid", it.value.map { v-> v.guid })
+ }).let { s-> result.addAll(s) }
+ }
+ Constant.SceneType.TYPE2.value -> {
+ sceneWharfMapper.selectByExample(Example(SceneWharf::class.java).apply {
+ createCriteria().andIn("sGuid", it.value.map { v-> v.guid })
+ }).let { s-> result.addAll(s) }
+ }
+ Constant.SceneType.TYPE3.value -> {
+ sceneMixingPlantMapper.selectByExample(Example(SceneMixingPlant::class.java).apply {
+ createCriteria().andIn("sGuid", it.value.map { v-> v.guid })
+ }).let { s-> result.addAll(s) }
+ }
+ Constant.SceneType.TYPE14.value -> {
+ sceneStorageYardMapper.selectByExample(Example(SceneStorageYard::class.java).apply {
+ createCriteria().andIn("sGuid", it.value.map { v-> v.guid })
+ }).let { s-> result.addAll(s) }
+ }
+ }
+ }
+ return result
+ }
+
fun findScene(userId: String?): Scense? {
val user = userinfoMapper.selectByPrimaryKey(userId) ?: throw BizException("鐢ㄦ埛id涓嶅瓨鍦�")
return scenseMapper.selectByPrimaryKey(user.dGuid)
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/ProblemlistService.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/ProblemlistService.kt
index d0f1c6e..cdf3f43 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/ProblemlistService.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/ProblemlistService.kt
@@ -37,6 +37,8 @@
fun getProblemByScene(sceneId: String, date: String):List<ProblemListVo>
+ fun getBySceneMonth(sceneId: String, year: Int?, month: Int?):List<ProblemListVo>
+
fun findMonthProblemById(taskId:String, sceneId:Int?):List<MonthProblemVo>
fun check(pId: String, action: Byte, remark: String, userId: String, userName: String): String
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 1899e56..7e0fabe 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/SubtaskService.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/SubtaskService.kt
@@ -47,7 +47,7 @@
fun searchSubTask3(token: String,updateTime: String?, sceneType: Int? = null, districtCode: String? = "310116", startTime: String? = "", endTime: String? = "", page: Int? = 1, perPage: Int? = 30): BaseResponse<BaseSearchResultVo>
- fun findByDate(date: String, userId: String): List<SubtaskVo>
+ fun findByDate(date: String? = null, userId: String? = null, sceneId: String? = null): List<SubtaskVo>
fun getByTopTaskAndDate(topTaskId: String, startTime: String?, endTime: String?, sceneTypeId: Int? = null): List<Subtask>
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/MonitorobjectversionServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/MonitorobjectversionServiceImpl.kt
index 77b2a75..fa0edf1 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/MonitorobjectversionServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/MonitorobjectversionServiceImpl.kt
@@ -1,10 +1,10 @@
package cn.flightfeather.supervision.lightshare.service.impl
import cn.flightfeather.supervision.common.utils.UUIDGenerator
-import cn.flightfeather.supervision.domain.ds1.entity.Monitorobjectversion
-import cn.flightfeather.supervision.domain.ds1.entity.Scense
+import cn.flightfeather.supervision.domain.ds1.entity.*
import cn.flightfeather.supervision.domain.ds1.mapper.MonitorobjectversionMapper
import cn.flightfeather.supervision.domain.ds1.mapper.TaskMapper
+import cn.flightfeather.supervision.domain.ds1.repository.SceneRep
import cn.flightfeather.supervision.lightshare.service.MonitorobjectversionService
import cn.flightfeather.supervision.lightshare.service.ScenseService
import cn.flightfeather.supervision.lightshare.vo.MonitorObjectVersionVo
@@ -14,8 +14,10 @@
import org.springframework.transaction.annotation.Transactional
@Service
-class MonitorobjectversionServiceImpl(val monitorobjectversionMapper: MonitorobjectversionMapper) :
- MonitorobjectversionService {
+class MonitorobjectversionServiceImpl(
+ private val monitorobjectversionMapper: MonitorobjectversionMapper,
+ private val sceneRep: SceneRep,
+) : MonitorobjectversionService {
@Autowired
lateinit var taskMapper: TaskMapper
@@ -63,6 +65,7 @@
districtcode = task.districtcode
}
val sceneList = scenseService.search(s)
+ val subSceneList = sceneRep.findSubSceneList(sceneList)
val monitorobjectversion = Monitorobjectversion()
monitorobjectversion.tid = id
@@ -72,14 +75,21 @@
monitorobjectversionlist.forEach {
val vo = MonitorObjectVersionVo()
BeanUtils.copyProperties(it, vo)
- sceneList.forEach f@ {scene ->
- if (vo.sguid == scene.guid) {
- vo.sceneTypeId = scene.typeid?.toInt() ?: 0
- vo.sceneType = scene.type
- vo.scene = scene
- return@f
- }
+ sceneList.find {s-> s.guid == vo.sguid }?.let { s->
+ vo.sceneTypeId = s.typeid?.toInt() ?: 0
+ vo.sceneType = s.type
+ vo.scene = s
}
+ subSceneList.find { s ->
+ val sGuid = when(s){
+ is SceneConstructionSite-> s.getsGuid()
+ is SceneWharf -> s.getsGuid()
+ is SceneMixingPlant -> s.getsGuid()
+ is SceneStorageYard-> s.getsGuid()
+ else -> null
+ }
+ sGuid == vo.sguid
+ }?.let { s-> vo.subScene = s }
resultList.add(vo)
}
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 ccca225..264e239 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
@@ -13,6 +13,7 @@
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.SubtaskService
import cn.flightfeather.supervision.lightshare.service.TaskService
import cn.flightfeather.supervision.lightshare.vo.*
import com.fasterxml.jackson.core.type.TypeReference
@@ -105,6 +106,36 @@
return problemListVolistTemp1
}
+ override fun getBySceneMonth(sceneId: String, year: Int?, month: Int?): List<ProblemListVo> {
+ var _year = year
+ var _month = month
+ if (year == null) {
+ PageHelper.startPage<Problemlist>(1, 1)
+ val lastProblem = problemlistMapper.selectByExample(Example(Problemlist::class.java).apply {
+ createCriteria().andEqualTo("sguid", sceneId)
+ orderBy("time").desc()
+ }).takeIf { it.isNotEmpty() }?.get(0)
+ if (lastProblem == null) {
+ return emptyList()
+ } else {
+ val lt = LocalDateTime.ofInstant(lastProblem.time?.toInstant(), ZoneId.systemDefault())
+ _year = lt.year
+ _month = lt.monthValue
+ }
+ }
+ val sT = LocalDateTime.of(_year!!, _month!!, 1, 0, 0, 0, 0)
+ val eT = sT.plusMonths(1).minusSeconds(1)
+ return problemlistMapper.selectByExample(Example(Problemlist::class.java).apply {
+ createCriteria().andBetween("time", sT,eT)
+ .andEqualTo("sguid", sceneId)
+ orderBy("time").desc()
+ }).map {
+ val problemVo = ProblemListVo();
+ BeanUtils.copyProperties(it, problemVo)
+ problemVo
+ }
+ }
+
//鑾峰彇鏌愰《灞備换鍔′笅锛屾煇涓満鏅笅鐨勯棶棰樻暣鏀规儏鍐�
override fun getStatisticalResultById(topTaskId: String, sceneTypeId: String): List<StatisticsVo> {
val map = problemlistMapper.getStatisticalResultById(topTaskId, sceneTypeId)
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 f02a9e1..d264f3c 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
@@ -33,20 +33,28 @@
@Autowired
lateinit var taskService: TaskService
+
@Autowired
lateinit var taskMapper: TaskMapper
+
@Autowired
lateinit var evaluationMapper: EvaluationMapper
+
@Autowired
lateinit var problemlistMapper: ProblemlistMapper
+
@Autowired
lateinit var mediafileMapper: MediafileMapper
+
@Autowired
lateinit var scenseMapper: ScenseMapper
+
@Autowired
lateinit var inspectionMapper: InspectionMapper
+
@Autowired
lateinit var monitorobjectversionMapper: MonitorobjectversionMapper
+
@Autowired
lateinit var problemtypeMapper: ProblemtypeMapper
@@ -65,11 +73,11 @@
criteria.andEqualTo("towncode", areaVo.towncode)
criteria.andBetween("planstarttime", areaVo.starttime, areaVo.endtime)
if (!Objects.equals(userGuid, Constant.UserType.ALL_USER.des))
- criteria.andLike("executorguids","%"+userGuid+"%")
+ criteria.andLike("executorguids", "%" + userGuid + "%")
var completecount = 0
var subtasklist = subtaskMapper.selectByExample(example)
subtasklist.forEach {
- if (Objects.equals(it.status, Constant.TaskProgress.RUNINGSTATUS3.text)){
+ if (Objects.equals(it.status, Constant.TaskProgress.RUNINGSTATUS3.text)) {
completecount++
}
}
@@ -102,24 +110,26 @@
criteria.andEqualTo("tsguid", dayTaskId)
if (userType == "1") {
example.and(
- example.createCriteria().orLike("executorguids", "%$userId%")
- .orLike("stAssessorguid", "%$userId%")
+ example.createCriteria().orLike("executorguids", "%$userId%")
+ .orLike("stAssessorguid", "%$userId%")
)
}
example.orderBy("name")
- val result = subtaskMapper.selectByExample(example).apply{
+ val result = subtaskMapper.selectByExample(example).apply {
forEach breaking@{
//宸插鏍告彁绀�
- it.remark= Constant.PROBLEM_CHECK_PASS
+ it.remark = Constant.PROBLEM_CHECK_PASS
problemlistMapper.selectByExample(Example(Problemlist::class.java).apply {
createCriteria().andEqualTo("stguid", it.stguid)
- and(createCriteria().orIsNull("remark")
- .orNotEqualTo("remark", Constant.PROBLEM_DELETED))
- }).forEach {problem ->
+ and(
+ createCriteria().orIsNull("remark")
+ .orNotEqualTo("remark", Constant.PROBLEM_DELETED)
+ )
+ }).forEach { problem ->
//瀛愪换鍔′腑鏈夐棶棰樻湭瀹℃牳鏃讹紝璁剧疆鏈鏍告彁绀�
if (problem.extension3 == Constant.PROBLEM_UNCHECKED) {
- it.remark= Constant.PROBLEM_UNCHECKED
+ it.remark = Constant.PROBLEM_UNCHECKED
return@breaking
}
}
@@ -168,13 +178,13 @@
} else {
guid
}
- val userTypeId = if (userType == "涓荤閮ㄩ棬"){
+ val userTypeId = if (userType == "涓荤閮ㄩ棬") {
"2"
- }else if (userType == "椋炵窘鐢ㄦ埛") {
+ } else if (userType == "椋炵窘鐢ㄦ埛") {
"1"
- } else if(userType == "绠$悊鍛�"){
+ } else if (userType == "绠$悊鍛�") {
"0"
- }else if (userType == "鍦烘櫙") {
+ } else if (userType == "鍦烘櫙") {
"3"
} else {
userType
@@ -197,16 +207,19 @@
two = dateString
three = DateUtil.addMonth(dateString, 1)
}
+
"Left" -> {
one = DateUtil.addMonth(dateString, 1)
two = DateUtil.addMonth(dateString, 2)
three = DateUtil.addMonth(dateString, 3)
}
+
"Right" -> {
one = DateUtil.addMonth(dateString, -1)
two = DateUtil.addMonth(dateString, -2)
three = DateUtil.addMonth(dateString, -3)
}
+
else -> {
//鍙傛暟涓嶆纭氨杩斿洖
return taskPackList
@@ -251,16 +264,19 @@
two = dateString
three = DateUtil.addMonth(dateString, 1)
}
+
"Left" -> {
one = DateUtil.addMonth(dateString, 1)
two = DateUtil.addMonth(dateString, 2)
three = DateUtil.addMonth(dateString, 3)
}
+
"Right" -> {
one = DateUtil.addMonth(dateString, -1)
two = DateUtil.addMonth(dateString, -2)
three = DateUtil.addMonth(dateString, -3)
}
+
else -> {
//鍙傛暟涓嶆纭氨杩斿洖
return taskPackList
@@ -422,21 +438,22 @@
subtask.tsguid = daytaskVo.tguid
//*锛堜慨鏀癸級*鏃ヤ换鍔℃鍦ㄦ墽琛岋紝瀛愪换鍔$粨鏉燂紝閬嶅巻鎵�鏈夊叾浣欏瓙浠诲姟锛岄兘鏄粨鏉熸椂鎵嶅皢鏃ヤ换鍔′慨鏀逛负缁撴潫****
if (subtask.status == Constant.TaskProgress.RUNINGSTATUS3.text
- && daytaskVo.runingstatus == Constant.TaskProgress.RUNINGSTATUS2.text){
+ && daytaskVo.runingstatus == Constant.TaskProgress.RUNINGSTATUS2.text
+ ) {
val subtaskVolist = findByDayTaskID(daytaskVo.tguid!!)
var bool = false
subtaskVolist.forEach {
- if (it.status != Constant.TaskProgress.RUNINGSTATUS3.text){
+ if (it.status != Constant.TaskProgress.RUNINGSTATUS3.text) {
bool = true
}
}
- if (!bool){
+ if (!bool) {
daytaskVo.runingstatus = Constant.TaskProgress.RUNINGSTATUS3.text
}
}
//涓よ�呯姸鎬佺浉鍚屾椂涓嶅仛淇敼锛屽叾浣欐儏鍐垫棩浠诲姟閮戒负姝e湪鎵ц
- else if (subtask.status != daytaskVo.runingstatus){
+ else if (subtask.status != daytaskVo.runingstatus) {
daytaskVo.runingstatus = Constant.TaskProgress.RUNINGSTATUS2.text
}
val daytask = Task()
@@ -465,7 +482,7 @@
}
@Transactional
- override fun delete(id: String): Int{
+ override fun delete(id: String): Int {
val subtask = subtaskMapper.selectByPrimaryKey(id)
val dayTaskId = subtask.tsguid
subtaskMapper.deleteByPrimaryKey(id)
@@ -500,7 +517,15 @@
}
- override fun searchSubTask(token: String, sceneType: Int?, districtCode: String?, startTime: String?, endTime: String?, page: Int?, perPage: Int?): BaseSearchResultVo {
+ override fun searchSubTask(
+ token: String,
+ sceneType: Int?,
+ districtCode: String?,
+ startTime: String?,
+ endTime: String?,
+ page: Int?,
+ perPage: Int?,
+ ): BaseSearchResultVo {
if (token != "jingan") {
return BaseSearchResultVo().apply {
head = DataHead().apply {
@@ -543,7 +568,7 @@
// val p = PageHelper.startPage<Subtask>(page ?: 1, perPage ?: 30)
subtaskMapper.getSubtask2(null, null, _districtCode, _sceneType.toByte(), _startTime, _endTime).forEach {
if (!subtaskMap.containsKey(it.subTaskId)) {
- val vo =SubtaskSearchResultVo()
+ val vo = SubtaskSearchResultVo()
BeanUtils.copyProperties(it, vo)
subtaskMap[it.subTaskId] = vo
}
@@ -553,7 +578,7 @@
problemMap[it.problemId] = problemDetail
subtaskMap[it.subTaskId]?.problemList?.add(problemDetail)
}
- val url = it.mExtension1 + it.mGuid+ ".jpg"
+ val url = it.mExtension1 + it.mGuid + ".jpg"
if (it.isChanged == true) {
problemMap[it.problemId]?.rectificationPics?.add(url)
} else {
@@ -647,8 +672,10 @@
.andNotEqualTo("extension3", Constant.CHANGE_CHECK_FAIL)
.andIsNotNull("extension3")
time?.let {
- and(createCriteria().orGreaterThan("time", it)
- .orGreaterThan("changedtime", it))
+ and(
+ createCriteria().orGreaterThan("time", it)
+ .orGreaterThan("changedtime", it)
+ )
}
}).forEach { p ->
val problem = ProblemDetail().apply {
@@ -743,7 +770,16 @@
return BaseResponse(true, "璇锋眰鎴愬姛", data = result)
}
- override fun searchSubTask3(token: String, updateTime: String?, sceneType: Int?, districtCode: String?, startTime: String?, endTime: String?, page: Int?, perPage: Int?): BaseResponse<BaseSearchResultVo> {
+ override fun searchSubTask3(
+ token: String,
+ updateTime: String?,
+ sceneType: Int?,
+ districtCode: String?,
+ startTime: String?,
+ endTime: String?,
+ page: Int?,
+ perPage: Int?,
+ ): BaseResponse<BaseSearchResultVo> {
if (token != "jinshan") {
return BaseResponse(false, "璇锋眰token閿欒")
}
@@ -798,8 +834,10 @@
.andNotEqualTo("extension3", Constant.CHANGE_CHECK_FAIL)
.andIsNotNull("extension3")
time?.let {
- and(createCriteria().orGreaterThan("time", it)
- .orGreaterThan("changedtime", it))
+ and(
+ createCriteria().orGreaterThan("time", it)
+ .orGreaterThan("changedtime", it)
+ )
}
}).forEach { p ->
val problem = ProblemDetail().apply {
@@ -868,7 +906,7 @@
// val p = PageHelper.startPage<Subtask>(page ?: 1, perPage ?: 30)
subtaskMapper.getSubtask2(time, time2, _districtCode, _sceneType?.toByte(), null, null).forEach {
if (!subtaskMap.containsKey(it.subTaskId)) {
- val vo =SubtaskSearchResultVo()
+ val vo = SubtaskSearchResultVo()
BeanUtils.copyProperties(it, vo)
subtaskMap[it.subTaskId] = vo
}
@@ -878,7 +916,7 @@
problemMap[it.problemId] = problemDetail
subtaskMap[it.subTaskId]?.problemList?.add(problemDetail)
}
- val url = it.mExtension1 + it.mGuid+ ".jpg"
+ val url = it.mExtension1 + it.mGuid + ".jpg"
if (it.isChanged == true) {
problemMap[it.problemId]?.rectificationPics?.add(url)
} else {
@@ -899,15 +937,37 @@
return BaseResponse(true, "璇锋眰鎴愬姛", data = result)
}
- override fun findByDate(date: String, userId: String): List<SubtaskVo> {
- val time = DateUtil.StringToDate(date)
+ override fun findByDate(date: String?, userId: String?, sceneId: String?): List<SubtaskVo> {
+ val time = if (date == null) null else DateUtil.StringToDate(date)
val resultList = mutableListOf<SubtaskVo>()
- subtaskMapper.selectByExample(Example(Subtask::class.java).apply {
- createCriteria().andLessThanOrEqualTo("planstarttime", time)
+ val subtasks = if (time != null) {
+ // 鑾峰彇鏌愪竴澶╃殑宸℃煡浠诲姟
+ subtaskMapper.selectByExample(Example(Subtask::class.java).apply {
+ createCriteria().andLessThanOrEqualTo("planstarttime", time)
.andGreaterThanOrEqualTo("planendtime", time)
- }).forEach {
+ .apply { sceneId?.let { andEqualTo("scenseid", it) } }
+ })
+ } else {
+ // 鑾峰彇鏈�杩戜竴涓湀鍐呯殑锛堟煇涓満鏅殑锛夋墍鏈夊贰鏌ヤ换鍔�
+ PageHelper.startPage<Subtask>(1, 1)
+ val lastOne = subtaskMapper.selectByExample(Example(Subtask::class.java).apply {
+ createCriteria().apply {
+ sceneId?.let { andEqualTo("scenseid", it) }
+ }
+ orderBy("planstarttime").desc()
+ }).takeIf { it.isNotEmpty() }?.get(0)
+ if (lastOne == null) {
+ emptyList()
+ } else {
+ subtaskMapper.selectByExample(Example(Subtask::class.java).apply {
+ createCriteria().andEqualTo("tguid", lastOne.tguid)
+ .andEqualTo("scenseid", lastOne.scenseid)
+ })
+ }
+ }
+ subtasks.forEach {
val vo = SubtaskVo()
BeanUtils.copyProperties(it, vo)
resultList.add(vo)
@@ -920,7 +980,7 @@
topTaskId: String,
startTime: String?,
endTime: String?,
- sceneTypeId: Int?
+ sceneTypeId: Int?,
): List<Subtask> {
return subtaskMapper.selectByTopTask2(topTaskId, sceneTypeId)
@@ -933,7 +993,7 @@
override fun getTaskProgressByArea(areaVo: AreaVo): List<TaskProgressVo> {
// areaVo.scensetypeid ?: throw BizException("缂哄皯鍦烘櫙绫诲瀷鍙傛暟")
val res = mutableListOf<TaskProgressVo>()
- taskRep.findTasks(areaVo).forEach {t->
+ taskRep.findTasks(areaVo).forEach { t ->
if (t?.tguid == null) return@forEach
val pro = TaskProgressVo().apply {
tguid = t.tguid
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/TaskServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/TaskServiceImpl.kt
index f103925..61140aa 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/TaskServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/TaskServiceImpl.kt
@@ -339,14 +339,6 @@
val filterSubTasks = subTasks.filter {s->
s?.tsguid == t?.tguid
}
- // 瀛愪换鍔℃�绘暟
- val total = filterSubTasks.size
-
- // 瀛愪换鍔″畬鎴愭暟
- val complete = filterSubTasks.count {fs->
- fs?.status == Constant.TaskProgress.RUNINGSTATUS3.text
- }
-
// 鑾峰彇褰撴棩鎵�鏈夌殑闂
val subTaskIds = filterSubTasks.map { fs-> fs?.stguid }
val problemList = if (subTaskIds.isNotEmpty()) {
@@ -356,8 +348,69 @@
} else{
emptyList()
}
+ /** 鎬诲贰鏌ラ噺缁熻 **/
+ // 瀛愪换鍔℃�绘暟
+ val total = filterSubTasks.size
+ // 瀛愪换鍔″畬鎴愭暟
+ val complete = filterSubTasks.count {fs->
+ fs?.status == Constant.TaskProgress.RUNINGSTATUS3.text
+ }
+ /** 鎬婚棶棰樻暣鏀圭巼缁熻 **/
+ // 鎬婚棶棰樻暟鍜屾�绘暣鏀规暟
+ val totalProblemNum = problemList.size
+ val changedProblemNum = problemList.filter { it.ischanged == true }.size
+ /** 姣忎釜浜虹殑宸℃煡閲忛棶棰樻暣鏀圭巼 **/
+ val userProgressMap = mutableMapOf<String, ProgressPerUserPerDay>()
+ filterSubTasks.forEach fst@ { fst->
+ fst ?: return@fst
+ // fixme 2025.11.30 鐢变簬鐩戠APP鐨刡ug锛屽鑷寸敤鎴峰彲浠ヤ笉閫夋嫨鎵ц浜哄憳鐩存帴鍒涘缓浠诲姟锛屾墍浠ユ殏鏃跺皢娌℃湁鎵ц浜哄憳鐨勪换鍔″畾涔変负鍖垮悕鐢ㄦ埛
+ if (fst.executorguids.isNullOrBlank()) {
+ fst.executorguids = "niming"
+ fst.executorusernames = "niming"
+ fst.executorrealtimes = "鍖垮悕鐢ㄦ埛"
+ }
+ val ids = fst.executorguids?.split("#") ?: return@fst
+ val names = fst.executorrealtimes?.split("#") ?: return@fst
+ // 绛涢�夋瘡涓瓙浠诲姟涓嬬殑闂
+ val proList = problemList.filter { p-> p?.stguid == fst.stguid }
+ for (i in ids.indices) {
+ val key = ids[i]
+ if (!userProgressMap.containsKey(key)) {
+ userProgressMap[key] = ProgressPerUserPerDay().apply {
+ this.userId = key
+ this.userName = names[i]
+ }
+ }
+ userProgressMap[key]?.apply {
+ // 鍗曚汉宸℃煡閲忕疮璁�
+ // 褰撳涓汉涓�璧锋墽琛屽悓涓�浠诲姟鏃讹紝骞冲垎宸℃煡閲�
+ this.totalTaskNum += 1.0 / ids.size
+ if (fst.status== Constant.TaskProgress.RUNINGSTATUS3.text)
+ this.completeTaskNum += 1.0 / ids.size
+ // 鍗曚汉鏁存敼鐜囩疮璁★紙璇勫垎锛�
+ this.totalProblemNum += proList.size.toDouble() / ids.size
+ this.changedProblemNum += proList.filter { it.ischanged == true }.size.toDouble() / ids.size
+ this.changedProblemNumOnTime += proList.filter {
+ // 鏁存敼鑰楁椂锛堝ぉ锛�
+ val day = ((it.changedtime?.time ?: 0L) - (it?.time?.time ?: 0L)).div(1000 * 60 * 60 * 24)
+ it.ischanged == true && day <= 1
+ }.size.toDouble() / ids.size
+ // 姝ゅ鍏堢疮璁″贰鏌ユ椂闀匡紝鏈�鍚庡啀鏍规嵁浠诲姟鏁伴噺骞冲潎
+ this.avgInspectionTime +=
+ ((fst.executionendtime?.time ?: 0L) - (fst.executionstarttime?.time ?: 0L)).div(1000).div(ids.size)
+ }
+
+ }
+ }
+ // 缁熶竴璁$畻骞冲潎宸℃煡鏃堕暱锛堢锛�
+ userProgressMap.forEach { (t, u) ->
+ u.avgInspectionTime = (u.avgInspectionTime / u.completeTaskNum).toLong()
+ u.formatParam()
+ }
+
+ /** 浠诲姟鏁存敼瀹屾垚鎯呭喌鍜屽鏍告儏鍐电粺璁� **/
var changed = 0
//瀹℃牳鏄惁瀹屾垚
var check = true
@@ -376,9 +429,18 @@
}
}
- resultList.add(DayTaskProgressVo(
- t?.tguid, t?.starttime, taskId, complete, changed, total, check
- ))
+ resultList.add(DayTaskProgressVo().apply {
+ this.guid =t?.tguid
+ this.date =t?.starttime
+ this.tsGuid = taskId
+ this.totalTaskNum = total
+ this.completeTaskNum = complete
+ this.changedTaskNum = changed
+ this.check = check
+ this.totalProblemNum = totalProblemNum
+ this.changedProblemNum = changedProblemNum
+ this.progressPerUser = userProgressMap.entries.map { it.value }
+ })
}
return resultList
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/DayTaskProgressVo.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/DayTaskProgressVo.kt
index 87cb4ff..e573562 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/DayTaskProgressVo.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/DayTaskProgressVo.kt
@@ -1,25 +1,80 @@
package cn.flightfeather.supervision.lightshare.vo
+import org.apache.poi.hpsf.Decimal
+import java.math.BigDecimal
+import java.text.DecimalFormat
import java.util.*
+import kotlin.math.round
/**
* @author riku
* Date: 2019/7/30
* 鏃ヤ换鍔¤繘搴︾被
*/
-data class DayTaskProgressVo(
- //鏃ヤ换鍔d
- val guid: String? = null,
- //鏃ヤ换鍔℃椂闂�
- val date: Date? = null,
- //鎵�灞為《灞備换鍔d
- val tsGuid: String? = null,
- //瀹屾垚瀛愪换鍔℃暟
- val completeTaskNum: Int = 0,
- //宸叉暣鏀瑰瓙浠诲姟鏁�
- val changedTaskNum: Int = 0,
- //鎬诲瓙浠诲姟鏁�
- val totalTaskNum: Int = 0,
- //鏄惁鏈夋湭瀹℃牳鐨勯棶棰�
- val check: Boolean = false
-)
\ No newline at end of file
+class DayTaskProgressVo {
+ //鏃ヤ换鍔d
+ var guid: String? = null
+
+ //鏃ヤ换鍔℃椂闂�
+ var date: Date? = null
+
+ //鎵�灞為《灞備换鍔d
+ var tsGuid: String? = null
+
+ //鎬诲瓙浠诲姟鏁�
+ var totalTaskNum: Int = 0
+
+ //瀹屾垚瀛愪换鍔℃暟
+ var completeTaskNum: Int = 0
+
+ //宸叉暣鏀瑰瓙浠诲姟鏁�
+ var changedTaskNum: Int = 0
+
+ //褰撳瓨鍦ㄨ嚦灏戜竴涓棶棰樻病鏈夊鏍告椂锛屽綋鏃ュ鏍哥姸鎬佷负鏈鏍�
+ var check: Boolean = false
+
+ // 鎬婚棶棰樻暟
+ var totalProblemNum: Int = 0
+ // 鎬绘暣鏀归棶棰樻暟
+ var changedProblemNum: Int = 0
+
+ // 姣忎釜鐢ㄦ埛鐨勫崟鏃ヤ换鍔¤繘搴�
+ var progressPerUser: List<ProgressPerUserPerDay>? = null
+}
+
+class ProgressPerUserPerDay{
+ //鐢ㄦ埛id
+ var userId: String? = null
+ //鐢ㄦ埛鍚�
+ var userName: String? = null
+
+ //鎬诲瓙浠诲姟鏁�
+ var totalTaskNum: Double = .0
+ //瀹屾垚瀛愪换鍔℃暟
+ var completeTaskNum: Double = .0
+
+ // 鎬婚棶棰樻暟
+ var totalProblemNum: Double = .0
+ //宸叉暣鏀归棶棰樻暟
+ var changedProblemNum: Double = .0
+ //宸叉暣鏀归棶棰樻暟锛堝湪褰撳ぉ鍐呮暣鏀癸級
+ var changedProblemNumOnTime: Double = .0
+
+ //骞冲潎宸℃煡鏃堕暱锛堢锛�
+ var avgInspectionTime: Long = 0
+
+ /**
+ * 鏍煎紡鍖朌ouble鍙傛暟锛屼繚鐣欎袱浣嶅皬鏁帮紝鍥涜垗浜斿叆
+ */
+ fun formatParam() {
+ totalTaskNum = numberFormat(totalTaskNum)
+ completeTaskNum = numberFormat(completeTaskNum)
+ totalProblemNum = numberFormat(totalProblemNum)
+ changedProblemNum = numberFormat(changedProblemNum)
+ changedProblemNumOnTime = numberFormat(changedProblemNumOnTime)
+ }
+
+ private fun numberFormat(value:Double): Double {
+ return BigDecimal(value).setScale(2, BigDecimal.ROUND_HALF_UP).toDouble()
+ }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/MonitorObjectVersionVo.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/MonitorObjectVersionVo.kt
index 38161d1..4bf348a 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/MonitorObjectVersionVo.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/MonitorObjectVersionVo.kt
@@ -1,6 +1,9 @@
package cn.flightfeather.supervision.lightshare.vo
+import cn.flightfeather.supervision.domain.ds1.entity.BaseScene
import cn.flightfeather.supervision.domain.ds1.entity.Monitorobjectversion
+import cn.flightfeather.supervision.domain.ds1.entity.SceneDevice
+import io.swagger.annotations.ApiModelProperty
class MonitorObjectVersionVo : Monitorobjectversion() {
@@ -15,4 +18,8 @@
var sceneType: String? = null
var scene: ScenseVo? = null
+
+ //鍦烘櫙鐗规湁淇℃伅
+ @ApiModelProperty(value = "鍦烘櫙鐗规湁淇℃伅", name = "鏍规嵁涓嶅悓鐨勫満鏅被鍨嬶紝灞炴�у悇涓嶇浉鍚�")
+ var subScene: BaseScene? = null
}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/ScenseVo.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/ScenseVo.kt
index 103a3a6..3c4a37c 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/ScenseVo.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/ScenseVo.kt
@@ -6,70 +6,70 @@
import java.util.*
@JsonInclude(JsonInclude.Include.NON_NULL)
-public class ScenseVo {
- var guid: String? = null
-
- var name: String? = null
-
- /**
- * 浠庡�煎煙琛ㄩ噷鍙栧��
- */
- var typeid: Byte? = null
-
- /**
- * 浠庡�煎煙琛ㄩ噷鍙栧��
- */
- var type: String? = null
-
- /**
- * 浠庡�煎煙琛ㄩ噷鍙栧��
- */
- var scensesubtypeid: Byte? = null
-
- /**
- * 浠庡�煎煙琛ㄩ噷鍙栧��
- */
- var scensesubtype: String? = null
-
- var location: String? = null
-
- var longitude: BigDecimal? = null
-
- var latitude: BigDecimal? = null
-
- var provincecode: String? = null
-
- var provincename: String? = null
-
- var citycode: String? = null
-
- var cityname: String? = null
-
- var districtcode: String? = null
-
- var districtname: String? = null
-
- var towncode: String? = null
-
- var townname: String? = null
-
- var contactst: String? = null
-
- var contactswx: String? = null
-
- var contacts: String? = null
-
- var createdate: Date? = null
-
- var updatedate: Date? = null
-
- var extension1: String? = null
-
- var extension2: String? = null
-
- var index: Int? = null
-
- var remark: String? = null
+public class ScenseVo : Scense() {
+// var guid: String? = null
+//
+// var name: String? = null
+//
+// /**
+// * 浠庡�煎煙琛ㄩ噷鍙栧��
+// */
+// var typeid: Byte? = null
+//
+// /**
+// * 浠庡�煎煙琛ㄩ噷鍙栧��
+// */
+// var type: String? = null
+//
+// /**
+// * 浠庡�煎煙琛ㄩ噷鍙栧��
+// */
+// var scensesubtypeid: Byte? = null
+//
+// /**
+// * 浠庡�煎煙琛ㄩ噷鍙栧��
+// */
+// var scensesubtype: String? = null
+//
+// var location: String? = null
+//
+// var longitude: BigDecimal? = null
+//
+// var latitude: BigDecimal? = null
+//
+// var provincecode: String? = null
+//
+// var provincename: String? = null
+//
+// var citycode: String? = null
+//
+// var cityname: String? = null
+//
+// var districtcode: String? = null
+//
+// var districtname: String? = null
+//
+// var towncode: String? = null
+//
+// var townname: String? = null
+//
+// var contactst: String? = null
+//
+// var contactswx: String? = null
+//
+// var contacts: String? = null
+//
+// var createdate: Date? = null
+//
+// var updatedate: Date? = null
+//
+// var extension1: String? = null
+//
+// var extension2: String? = null
+//
+// var index: Int? = null
+//
+// var remark: String? = null
var monitorNum: Int = 0
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/ProblemlistController.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/ProblemlistController.kt
index 8db8d38..cb60564 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/ProblemlistController.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/ProblemlistController.kt
@@ -92,6 +92,13 @@
@RequestParam date: String,
): List<ProblemListVo> = problemlistService.getProblemByScene(sceneId, date)
+ @GetMapping("/getBySceneMonth")
+ fun getBySceneMonth(
+ @RequestParam(value = "sceneId", required = true) sceneId: String,
+ @RequestParam(required = false) year: Int?,
+ @RequestParam(required = false) month: Int?,
+ ) = problemlistService.getBySceneMonth(sceneId, year, month)
+
@IgnoreResponseAdvice
@GetMapping("/month_anlysis")
fun getMonthProblemsById(
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 21eda2a..84412d1 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/SubtaskController.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/SubtaskController.kt
@@ -10,6 +10,7 @@
import cn.flightfeather.supervision.lightshare.vo.TaskVo
import io.swagger.annotations.Api
import io.swagger.annotations.ApiOperation
+import io.swagger.annotations.ApiParam
import org.springframework.format.annotation.DateTimeFormat
import org.springframework.web.bind.annotation.*
import java.time.LocalDateTime
@@ -91,11 +92,13 @@
) = subtaskService.findByDayTaskID(dayTaskId, userId, userType)
@IgnoreResponseAdvice
+ @ApiOperation("鏍规嵁鏃堕棿鍜屽満鏅痠d鑾峰彇宸℃煡浠诲姟")
@GetMapping("/byDate")
fun findByDate(
- @RequestParam("date") date: String,
- @RequestParam("userId") userId: String,
- ) = subtaskService.findByDate(date, userId)
+ @ApiParam(value = "鏃堕棿锛屽鏋滀笉浼狅紝鍒欓粯璁よ幏鍙栨渶鏂颁竴鏈�") @RequestParam("date", required = false) date: String?,
+ @RequestParam("userId", required = false) userId: String?,
+ @ApiParam(value = "鍦烘櫙id") @RequestParam(required = false) sceneId: String?,
+ ) = subtaskService.findByDate(date, userId, sceneId)
@IgnoreResponseAdvice
@GetMapping("/getSubTask")
diff --git a/src/test/kotlin/cn/flightfeather/supervision/business/location/LocationRoadNearbyTest.kt b/src/test/kotlin/cn/flightfeather/supervision/business/location/LocationRoadNearbyTest.kt
index 3218214..823498d 100644
--- a/src/test/kotlin/cn/flightfeather/supervision/business/location/LocationRoadNearbyTest.kt
+++ b/src/test/kotlin/cn/flightfeather/supervision/business/location/LocationRoadNearbyTest.kt
@@ -48,7 +48,7 @@
// LocationRoadNearby.BasePlace("甯傛帶鐐�-寰愬姹�", Pair(121.44187, 31.19793), Pair(121.44187, 31.19793)),
// LocationRoadNearby.BasePlace("甯傛帶鐐�-鍗庢尘", Pair(121.461985, 31.124359), Pair(121.461985, 31.124359)),
// LocationRoadNearby.BasePlace("闈欏畨鐩戞祴绔欏浗鎺х偣", Pair(121.429439, 31.223632), Pair(121.429439, 31.223632)),
-// LocationRoadNearby.BasePlace("閲戝北澶ч亾2000鍙�", Pair(121.3404, 30.744262), Pair(121.3404, 30.744262)),
+ LocationRoadNearby.BasePlace("閲戝北澶ч亾2000鍙�", Pair(121.3404, 30.744262), Pair(121.3404, 30.744262)),
// LocationRoadNearby.BasePlace("浠欓湠绔�", Pair(121.394775, 31.203982), Pair(121.394775, 31.203982)),
// LocationRoadNearby.BasePlace("绋嬫ˉ绔�", Pair(121.362928, 31.192925), Pair(121.362928, 31.192925)),
@@ -77,40 +77,40 @@
// LocationRoadNearby.BasePlace("涔濅赴璺�", Pair(121.254114, 30.903438), Pair(121.254715, 30.893363)),
// 灏忓井绔�
- LocationRoadNearby.BasePlace("姘稿拰浜屾潙", Pair(121.43165,31.29083), Pair(121.43165,31.29083)),
- LocationRoadNearby.BasePlace("鑺锋睙涓矾529鍙�", Pair(121.468446,31.258494), Pair(121.468446,31.258494)),
- LocationRoadNearby.BasePlace("搴峰畞璺�18鍙�", Pair(121.43447,31.306374), Pair(121.43447,31.306374)),
- LocationRoadNearby.BasePlace("鍗忎俊鏄熷厜骞垮満", Pair(121.457125,31.297407), Pair(121.457125,31.297407)),
- LocationRoadNearby.BasePlace("鍏卞悍鍓嶈繘鍏瘬", Pair(121.441018,31.319358), Pair(121.441018,31.319358)),
- LocationRoadNearby.BasePlace("闈欏畨鐩戞祴绔�", Pair(121.429872,31.224094), Pair(121.429872,31.224094)),
- LocationRoadNearby.BasePlace("鍏卞拰鏂拌矾鍦轰腑璺�", Pair(121.449074,31.306086), Pair(121.449074,31.306086)),
- LocationRoadNearby.BasePlace("宀崡璺満涓矾", Pair(121.455317,31.304615), Pair(121.455317,31.304615)),
- LocationRoadNearby.BasePlace("楂樺钩璺睙鍦鸿タ璺�", Pair(121.427832,31.296076), Pair(121.427832,31.296076)),
- LocationRoadNearby.BasePlace("骞夸腑瑗胯矾鍏卞拰鏂拌矾", Pair(121.451879,31.278988), Pair(121.451879,31.278988)),
- LocationRoadNearby.BasePlace("闂稿寳鍏洯", Pair(121.46179,31.271121), Pair(121.46179,31.271121)),
- LocationRoadNearby.BasePlace("鏌宠惀璺叡鍜屾柊璺�", Pair(121.459427,31.265294), Pair(121.459427,31.265294)),
- LocationRoadNearby.BasePlace("涓北鍖楄矾鍏卞拰鏂拌矾", Pair(121.46149,31.260937), Pair(121.46149,31.260937)),
- LocationRoadNearby.BasePlace("涓滃疂鍏磋矾涓叴璺�2024骞�7鏈�24鏃ョЩ浣嶈嚦瀹濋�氳矾539鍙�", Pair(121.475521,31.261383), Pair(121.475521,31.261383)),
- LocationRoadNearby.BasePlace("澶ф偊鍩�", Pair(121.472183,31.243488), Pair(121.472183,31.243488)),
- LocationRoadNearby.BasePlace("闄曡タ鍖楄矾娴烽槻璺�", Pair(121.446472,31.238458), Pair(121.446472,31.238458)),
- LocationRoadNearby.BasePlace("甯稿痉璺柊闂歌矾", Pair(121.447048,31.229643), Pair(121.447048,31.229643)),
- LocationRoadNearby.BasePlace("寤跺畨涓矾瀵屾皯璺�", Pair(121.449711,31.221563), Pair(121.449711,31.221563)),
- LocationRoadNearby.BasePlace("寤跺畨瑗胯矾闀囧畞璺�", Pair(121.439025,31.218146), Pair(121.439025,31.218146)),
- LocationRoadNearby.BasePlace("骞夸腑瑗胯矾涓囪崳璺�", Pair(121.442032,31.278071), Pair(121.442032,31.278071)),
- LocationRoadNearby.BasePlace("骞夸腑瑗胯矾杩愬煄璺�2024骞�9鏈�3鏃ョЩ浣嶈嚦涓叴绀惧尯280-06鍦板潡", Pair(121.473931,31.254645), Pair(121.473931,31.254645)),
- LocationRoadNearby.BasePlace("鍢夊埄鏄庣彔鍩�", Pair(121.434364,31.304047), Pair(121.434364,31.304047)),
- LocationRoadNearby.BasePlace("姹捐タ璺槼娉夎矾", Pair(121.464122,31.31351), Pair(121.464122,31.31351)),
- LocationRoadNearby.BasePlace("娌冲崡鍖楄矾澶╂郊璺�", Pair(121.482241,31.243679), Pair(121.482241,31.243679)),
- LocationRoadNearby.BasePlace("姹舵按璺竾鑽h矾", Pair(121.441558,31.291293), Pair(121.441558,31.291293)),
- LocationRoadNearby.BasePlace("鐭抽棬涓�璺�348鍙�", Pair(121.462105,31.229639), Pair(121.462105,31.229639)),
- LocationRoadNearby.BasePlace("杩愬煄璺疁宸濊矾", Pair(121.439137,31.271005), Pair(121.439137,31.271005)),
+// LocationRoadNearby.BasePlace("姘稿拰浜屾潙", Pair(121.43165,31.29083), Pair(121.43165,31.29083)),
+// LocationRoadNearby.BasePlace("鑺锋睙涓矾529鍙�", Pair(121.468446,31.258494), Pair(121.468446,31.258494)),
+// LocationRoadNearby.BasePlace("搴峰畞璺�18鍙�", Pair(121.43447,31.306374), Pair(121.43447,31.306374)),
+// LocationRoadNearby.BasePlace("鍗忎俊鏄熷厜骞垮満", Pair(121.457125,31.297407), Pair(121.457125,31.297407)),
+// LocationRoadNearby.BasePlace("鍏卞悍鍓嶈繘鍏瘬", Pair(121.441018,31.319358), Pair(121.441018,31.319358)),
+// LocationRoadNearby.BasePlace("闈欏畨鐩戞祴绔�", Pair(121.429872,31.224094), Pair(121.429872,31.224094)),
+// LocationRoadNearby.BasePlace("鍏卞拰鏂拌矾鍦轰腑璺�", Pair(121.449074,31.306086), Pair(121.449074,31.306086)),
+// LocationRoadNearby.BasePlace("宀崡璺満涓矾", Pair(121.455317,31.304615), Pair(121.455317,31.304615)),
+// LocationRoadNearby.BasePlace("楂樺钩璺睙鍦鸿タ璺�", Pair(121.427832,31.296076), Pair(121.427832,31.296076)),
+// LocationRoadNearby.BasePlace("骞夸腑瑗胯矾鍏卞拰鏂拌矾", Pair(121.451879,31.278988), Pair(121.451879,31.278988)),
+// LocationRoadNearby.BasePlace("闂稿寳鍏洯", Pair(121.46179,31.271121), Pair(121.46179,31.271121)),
+// LocationRoadNearby.BasePlace("鏌宠惀璺叡鍜屾柊璺�", Pair(121.459427,31.265294), Pair(121.459427,31.265294)),
+// LocationRoadNearby.BasePlace("涓北鍖楄矾鍏卞拰鏂拌矾", Pair(121.46149,31.260937), Pair(121.46149,31.260937)),
+// LocationRoadNearby.BasePlace("涓滃疂鍏磋矾涓叴璺�2024骞�7鏈�24鏃ョЩ浣嶈嚦瀹濋�氳矾539鍙�", Pair(121.475521,31.261383), Pair(121.475521,31.261383)),
+// LocationRoadNearby.BasePlace("澶ф偊鍩�", Pair(121.472183,31.243488), Pair(121.472183,31.243488)),
+// LocationRoadNearby.BasePlace("闄曡タ鍖楄矾娴烽槻璺�", Pair(121.446472,31.238458), Pair(121.446472,31.238458)),
+// LocationRoadNearby.BasePlace("甯稿痉璺柊闂歌矾", Pair(121.447048,31.229643), Pair(121.447048,31.229643)),
+// LocationRoadNearby.BasePlace("寤跺畨涓矾瀵屾皯璺�", Pair(121.449711,31.221563), Pair(121.449711,31.221563)),
+// LocationRoadNearby.BasePlace("寤跺畨瑗胯矾闀囧畞璺�", Pair(121.439025,31.218146), Pair(121.439025,31.218146)),
+// LocationRoadNearby.BasePlace("骞夸腑瑗胯矾涓囪崳璺�", Pair(121.442032,31.278071), Pair(121.442032,31.278071)),
+// LocationRoadNearby.BasePlace("骞夸腑瑗胯矾杩愬煄璺�2024骞�9鏈�3鏃ョЩ浣嶈嚦涓叴绀惧尯280-06鍦板潡", Pair(121.473931,31.254645), Pair(121.473931,31.254645)),
+// LocationRoadNearby.BasePlace("鍢夊埄鏄庣彔鍩�", Pair(121.434364,31.304047), Pair(121.434364,31.304047)),
+// LocationRoadNearby.BasePlace("姹捐タ璺槼娉夎矾", Pair(121.464122,31.31351), Pair(121.464122,31.31351)),
+// LocationRoadNearby.BasePlace("娌冲崡鍖楄矾澶╂郊璺�", Pair(121.482241,31.243679), Pair(121.482241,31.243679)),
+// LocationRoadNearby.BasePlace("姹舵按璺竾鑽h矾", Pair(121.441558,31.291293), Pair(121.441558,31.291293)),
+// LocationRoadNearby.BasePlace("鐭抽棬涓�璺�348鍙�", Pair(121.462105,31.229639), Pair(121.462105,31.229639)),
+// LocationRoadNearby.BasePlace("杩愬煄璺疁宸濊矾", Pair(121.439137,31.271005), Pair(121.439137,31.271005)),
)
listOf(
- 500.0,
- 1000.0,
+// 500.0,
+// 1000.0,
// 2000.0,
-// 3000.0,
-// 5000.0
+ 3000.0,
+ 5000.0
).forEach {
locationRoadNearby.searchList(bList, it)
}
--
Gitblit v1.9.3