From 82baf5d28ce79aa4d3b64956207d247596726924 Mon Sep 17 00:00:00 2001
From: hcong <1050828145@qq.com>
Date: 星期二, 10 十二月 2024 11:21:33 +0800
Subject: [PATCH] 1. BgTaskStatus状态属性序列化
---
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ScenseServiceImpl.kt | 103 +++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 87 insertions(+), 16 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 19e54ff..8bf1dba 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,28 +1,45 @@
package cn.flightfeather.supervision.lightshare.service.impl
+import cn.flightfeather.supervision.business.import.SceneImport
+import cn.flightfeather.supervision.business.location.LocationRoadNearby
+import cn.flightfeather.supervision.common.exception.BizException
+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.domain.ds1.repository.SceneRep
+import cn.flightfeather.supervision.domain.ds2.entity.UserMap
+import cn.flightfeather.supervision.domain.ds2.repository.BaseInfoRep
+import cn.flightfeather.supervision.domain.ds2.repository.UserMapRep
import cn.flightfeather.supervision.lightshare.service.*
import cn.flightfeather.supervision.lightshare.vo.*
import com.github.pagehelper.PageHelper
import com.google.gson.Gson
+import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
import org.springframework.beans.BeanUtils
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
+import org.springframework.web.multipart.MultipartFile
import tk.mybatis.mapper.entity.Example
import tk.mybatis.mapper.util.StringUtil
+import java.io.ByteArrayInputStream
+import java.util.*
+import kotlin.collections.ArrayList
@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,
+ private val sceneImport: SceneImport,
+ private val sceneRep: SceneRep,
+ private val baseInfoRep: BaseInfoRep,
+ private val userMapRep: UserMapRep,
) : ScenseService {
@Autowired
@@ -130,12 +147,13 @@
}
override fun save(scense: Scense): Int {
- // TODO: 2021/7/20 鏂板鍦烘櫙鐨勫悓鏃剁敓鎴愯处鎴�
- val r = scenseMapper.insert(scense)
- if (r == 1) {
- scense.guid?.let { userinfoService.createAccount(it) }
+ return try {
+ createScene(scense)
+ 1
+ } catch (e: BizException) {
+ println(e.message)
+ 0
}
- return r
}
override fun update(scense: Scense): Int = scenseMapper.updateByPrimaryKeySelective(scense)
@@ -260,10 +278,10 @@
override fun getSceneDetail(sceneId: String): BaseResponse<SceneDetail> {
val sceneDetail = SceneDetail()
- val scene = scenseMapper.selectByPrimaryKey(sceneId)
+ val scene = sceneRep.findScene(sceneId = sceneId)
sceneDetail.scense = scene
- val mapper = when (scene.typeid.toString()) {
+ val mapper = when (scene?.typeid.toString()) {
Constant.SceneType.TYPE1.value -> sceneConstructionSiteMapper
Constant.SceneType.TYPE2.value -> sceneWharfMapper
Constant.SceneType.TYPE3.value -> sceneMixingPlantMapper
@@ -369,7 +387,6 @@
areaVo.towncode?.let { andEqualTo("towncode", it) }
areaVo.scensetypeid?.let { andEqualTo("typeid", it) }
areaVo.sceneName?.let { andLike("name", "%${it}%") }
-
}
areaVo.online?.let {
and(createCriteria().apply {
@@ -384,4 +401,58 @@
})
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)
+ }
+
+ override fun importSceneInfo(file: MultipartFile): Boolean {
+ val f = ByteArrayInputStream(file.bytes)
+ val scenes = sceneImport.readFromFile(f)
+ // 鏌ユ壘鍦烘櫙鍚嶇О鏄惁閲嶅
+ val names = scenes.map { it.name }
+ sceneRep.findSceneList(names).map { it?.name }.ifNotEmpty {
+ val str = this.joinToString("锛�")
+ throw BizException("瀛樺湪閲嶅鍦烘櫙锛屽涓嬶細${str}")
+ }
+ scenes.forEach {
+ createOneScene(it)
+ }
+ return true
+ }
+
+ override fun createScene(scense: Scense): Scense {
+ val names = listOf(scense.name)
+ sceneRep.findSceneList(names).map { it?.name }.ifNotEmpty {
+ val str = this.joinToString("锛�")
+ throw BizException("瀛樺湪閲嶅鍦烘櫙锛屽涓嬶細${str}")
+ }
+ createOneScene(scense)
+ return scense
+ }
+
+
+ override fun createOneScene(scense: Scense) {
+ //1. 鎻掑叆鍦烘櫙琛�
+ scense.townname = scense.townname?.trim()
+ sceneRep.insert(scense)
+ //2. 鐢熸垚瀵瑰簲璐︽埛淇℃伅
+ val userInfo = userinfoService.createAccount(scense)
+ createTZUserInfo(userInfo, scense)
+ }
+
+ override fun createTZUserInfo(userInfo: Userinfo, scense: Scense) {
+ //1. 鐢熸垚椋炵窘鐜绯荤粺瀵瑰簲璐︽埛鍜屽熀纭�淇℃伅
+ val userInfoTZ = userinfoService.createAccountTZ(userInfo, scense)
+ val baseInfo = baseInfoRep.create(userInfoTZ, scense)
+ //2. 鐢熸垚鐢ㄦ埛鍖归厤淇℃伅
+ userMapRep.insert(UserMap().apply {
+ tzUserId = userInfoTZ.guid
+ tzUserName = userInfoTZ.realname
+ svUserId = userInfo.guid
+ svUserName = userInfo.realname
+ umCreateTime = Date()
+ })
+ }
+
}
\ No newline at end of file
--
Gitblit v1.9.3