From 274bc2d0f7fe8fe7525196e4d7d6ece1cafe2c6c Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期日, 04 二月 2024 17:32:14 +0800
Subject: [PATCH] 1. 新增静安50分制评估结果转换逻辑; 2. 新增根据坐标圆心和半径查询范围内场景逻辑;

---
 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ScenseServiceImpl.kt |  156 +++++++++++++++++++++++++++++++--------------------
 1 files changed, 95 insertions(+), 61 deletions(-)

diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ScenseServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ScenseServiceImpl.kt
index 5af47d9..ea2e3be 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ScenseServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ScenseServiceImpl.kt
@@ -1,8 +1,9 @@
 package cn.flightfeather.supervision.lightshare.service.impl
 
+import cn.flightfeather.supervision.business.location.LocationRoadNearby
+import cn.flightfeather.supervision.common.utils.Constant
 import cn.flightfeather.supervision.domain.ds1.entity.*
 import cn.flightfeather.supervision.domain.ds1.mapper.*
-import cn.flightfeather.supervision.common.utils.Constant
 import cn.flightfeather.supervision.lightshare.service.*
 import cn.flightfeather.supervision.lightshare.vo.*
 import com.github.pagehelper.PageHelper
@@ -16,13 +17,14 @@
 
 @Service
 class ScenseServiceImpl(
-        val scenseMapper: ScenseMapper,
-        val sceneConstructionSiteMapper: SceneConstructionSiteMapper,
-        val sceneDeviceMapper: SceneDeviceMapper,
-        val sceneMixingPlantMapper: SceneMixingPlantMapper,
-        val sceneStorageYardMapper: SceneStorageYardMapper,
-        val sceneWharfMapper: SceneWharfMapper,
-        val userinfoService: UserinfoService
+    val scenseMapper: ScenseMapper,
+    val sceneConstructionSiteMapper: SceneConstructionSiteMapper,
+    val sceneDeviceMapper: SceneDeviceMapper,
+    val sceneMixingPlantMapper: SceneMixingPlantMapper,
+    val sceneStorageYardMapper: SceneStorageYardMapper,
+    val sceneWharfMapper: SceneWharfMapper,
+    val userinfoService: UserinfoService,
+    private val locationRoadNearby: LocationRoadNearby,
 ) : ScenseService {
 
     @Autowired
@@ -264,10 +266,10 @@
         sceneDetail.scense = scene
 
         val mapper = when (scene.typeid.toString()) {
-            Constant.ScenseType.TYPE1.value -> sceneConstructionSiteMapper
-            Constant.ScenseType.TYPE2.value -> sceneWharfMapper
-            Constant.ScenseType.TYPE3.value -> sceneMixingPlantMapper
-            Constant.ScenseType.TYPE14.value -> sceneStorageYardMapper
+            Constant.SceneType.TYPE1.value -> sceneConstructionSiteMapper
+            Constant.SceneType.TYPE2.value -> sceneWharfMapper
+            Constant.SceneType.TYPE3.value -> sceneMixingPlantMapper
+            Constant.SceneType.TYPE14.value -> sceneStorageYardMapper
             else -> null
         }
 
@@ -300,60 +302,92 @@
             }
         }
 
-        var r = 0
-        var isUpdate = true
-        when (typeId.toString()) {
-            Constant.ScenseType.TYPE1.value -> {
-                val subScene = Gson().fromJson(sceneDetailStr.subScene, SceneConstructionSite::class.java)
-                if (subScene.getsGuid() != null) {
-                    val record =sceneConstructionSiteMapper.selectByPrimaryKey(subScene.getsGuid())
-                    isUpdate = record != null
-                    r = if (record == null) {
-                        sceneConstructionSiteMapper.insert(subScene)
-                    } else {
-                        sceneConstructionSiteMapper.updateByPrimaryKeySelective(subScene)
+        if (sceneDetailStr.subScene != null) {
+            var r = 0
+            var isUpdate = true
+            when (typeId.toString()) {
+                Constant.SceneType.TYPE1.value -> {
+                    val subScene = Gson().fromJson(sceneDetailStr.subScene, SceneConstructionSite::class.java)
+                    if (subScene.getsGuid() != null) {
+                        val record = sceneConstructionSiteMapper.selectByPrimaryKey(subScene.getsGuid())
+                        isUpdate = record != null
+                        r = if (record == null) {
+                            sceneConstructionSiteMapper.insert(subScene)
+                        } else {
+                            sceneConstructionSiteMapper.updateByPrimaryKeySelective(subScene)
+                        }
+                    }
+                }
+                Constant.SceneType.TYPE2.value -> {
+                    val subScene = Gson().fromJson(sceneDetailStr.subScene, SceneWharf::class.java)
+                    if (subScene.getsGuid() != null) {
+                        val record = sceneWharfMapper.selectByPrimaryKey(subScene.getsGuid())
+                        isUpdate = record != null
+                        r = if (record == null) {
+                            sceneWharfMapper.insert(subScene)
+                        } else {
+                            sceneWharfMapper.updateByPrimaryKeySelective(subScene)
+                        }
+                    }
+                }
+                Constant.SceneType.TYPE3.value -> {
+                    val subScene = Gson().fromJson(sceneDetailStr.subScene, SceneMixingPlant::class.java)
+                    if (subScene.getsGuid() != null) {
+                        val record = sceneMixingPlantMapper.selectByPrimaryKey(subScene.getsGuid())
+                        isUpdate = record != null
+                        r = if (record == null) {
+                            sceneMixingPlantMapper.insert(subScene)
+                        } else {
+                            sceneMixingPlantMapper.updateByPrimaryKeySelective(subScene)
+                        }
+                    }
+                }
+                Constant.SceneType.TYPE14.value -> {
+                    val subScene = Gson().fromJson(sceneDetailStr.subScene, SceneStorageYard::class.java)
+                    if (subScene.getsGuid() != null) {
+                        val record = sceneStorageYardMapper.selectByPrimaryKey(subScene.getsGuid())
+                        isUpdate = record != null
+                        r = if (record == null) {
+                            sceneStorageYardMapper.insert(subScene)
+                        } else {
+                            sceneStorageYardMapper.updateByPrimaryKeySelective(subScene)
+                        }
                     }
                 }
             }
-            Constant.ScenseType.TYPE2.value -> {
-                val subScene = Gson().fromJson(sceneDetailStr.subScene, SceneWharf::class.java)
-                if (subScene.getsGuid() != null) {
-                    val record =sceneWharfMapper.selectByPrimaryKey(subScene.getsGuid())
-                    isUpdate = record != null
-                    r = if (record == null) {
-                        sceneWharfMapper.insert(subScene)
-                    } else {
-                        sceneWharfMapper.updateByPrimaryKeySelective(subScene)
-                    }
-                }
-            }
-            Constant.ScenseType.TYPE3.value -> {
-                val subScene = Gson().fromJson(sceneDetailStr.subScene, SceneMixingPlant::class.java)
-                if (subScene.getsGuid() != null) {
-                    val record =sceneMixingPlantMapper.selectByPrimaryKey(subScene.getsGuid())
-                    isUpdate = record != null
-                    r = if (record == null) {
-                        sceneMixingPlantMapper.insert(subScene)
-                    } else {
-                        sceneMixingPlantMapper.updateByPrimaryKeySelective(subScene)
-                    }
-                }
-            }
-            Constant.ScenseType.TYPE14.value -> {
-                val subScene = Gson().fromJson(sceneDetailStr.subScene, SceneStorageYard::class.java)
-                if (subScene.getsGuid() != null) {
-                    val record =sceneStorageYardMapper.selectByPrimaryKey(subScene.getsGuid())
-                    isUpdate = record != null
-                    r = if (record == null) {
-                        sceneStorageYardMapper.insert(subScene)
-                    } else {
-                        sceneStorageYardMapper.updateByPrimaryKeySelective(subScene)
-                    }
-                }
-            }
+            result.append("鍦烘櫙鐗规湁淇℃伅${if (isUpdate) "鏇存柊" else "鏂板"}: $r; ")
         }
-        result.append("鍦烘櫙鐗规湁淇℃伅${if (isUpdate) "鏇存柊" else "鏂板"}: $r; ")
 
         return BaseResponse(true, data = result.toString())
     }
+
+    override fun searchScene(areaVo: AreaVo, page: Int?, perPage: Int?): BaseResponse<List<Scense>> {
+        val p = PageHelper.startPage<Scense>(page ?: 1, perPage ?: 30)
+        val list = scenseMapper.selectByExample(Example(Scense::class.java).apply {
+            createCriteria().apply {
+                areaVo.provincecode?.let { andEqualTo("provincecode", it) }
+                areaVo.citycode?.let { andEqualTo("citycode", it) }
+                areaVo.districtcode?.let { andEqualTo("districtcode", it) }
+                areaVo.towncode?.let { andEqualTo("towncode", it) }
+                areaVo.scensetypeid?.let { andEqualTo("typeid", it) }
+                areaVo.sceneName?.let { andLike("name", "%${it}%") }
+
+            }
+            areaVo.online?.let {
+                and(createCriteria().apply {
+                    if (it) {
+                        orNotEqualTo("extension1", "0").orIsNull("extension1")
+                    } else {
+                        andEqualTo("extension1", "0")
+                    }
+                })
+            }
+            orderBy("typeid").orderBy("index")
+        })
+        return BaseResponse(true, head = DataHead(p.pageNum, p.pages, p.total), data = list)
+    }
+
+    override fun searchByCoordinate(lng: Double, lat: Double, radius: Double): List<Scense> {
+        return locationRoadNearby.searchByRadius(Pair(lng, lat), radius)
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3