From c17e9978745cfe6c983f3aff75c9182fffef32fd Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期一, 09 六月 2025 17:29:23 +0800 Subject: [PATCH] 1. 修复部分数据统计接口bug --- src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ScenseServiceImpl.kt | 108 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 92 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..492dbbe 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 @@ -66,6 +83,7 @@ val name = scense.name ?: "" val example = Example(Scense::class.java) val criteria = example.createCriteria() + criteria.andEqualTo("typeid", scense.typeid) //濡傛灉鏈塼ype淇℃伅,灏辨瀯寤簍ype鏌ヨ if (StringUtil.isNotEmpty(scense.type)) { criteria.andEqualTo("type", scense.type) @@ -82,6 +100,10 @@ if (StringUtil.isNotEmpty(scense.towncode)) { criteria.andEqualTo("towncode", scense.towncode) } + if (StringUtil.isNotEmpty(scense.extension1)) { + criteria.andEqualTo("extension1", scense.extension1) + } + criteria.andEqualTo("index", scense.index) //name鏌ヨ criteria.andLike("name", "%$name%") val re = scenseMapper.selectByExample(example) @@ -130,12 +152,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 +283,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 +392,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 +406,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