From 52a0c16de9b0955a5f092560b73f16e41684f97b Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期二, 31 十二月 2024 10:13:35 +0800 Subject: [PATCH] 1. 环信码生成时,如果在线场景当期没有评估(未巡查)结果,则延用历史最新一次的结果; 2. 新增跨时间跨月度的历史整改记录查询逻辑 3. 优化获取顶层任务和日任务的获取逻辑 --- src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ScenseServiceImpl.kt | 81 ++++++++++++++++++++++++++++++++++++---- 1 files changed, 73 insertions(+), 8 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 ea2e3be..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,19 +1,30 @@ 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.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( @@ -25,6 +36,10 @@ 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 @@ -132,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) @@ -262,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 @@ -371,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 { @@ -390,4 +405,54 @@ 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