feiyu02
2025-08-14 f373bbf83d9d2a7e5f96118d7dcd658c9fea8bc8
src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/SceneRep.kt
@@ -1,10 +1,11 @@
package cn.flightfeather.supervision.domain.ds1.repository
import cn.flightfeather.supervision.common.exception.BizException
import cn.flightfeather.supervision.common.utils.Constant
import cn.flightfeather.supervision.common.utils.UUIDGenerator
import cn.flightfeather.supervision.domain.ds1.entity.Scense
import cn.flightfeather.supervision.domain.ds1.mapper.ScenseMapper
import cn.flightfeather.supervision.domain.ds1.mapper.UserinfoMapper
import cn.flightfeather.supervision.domain.ds1.entity.*
import cn.flightfeather.supervision.domain.ds1.mapper.*
import com.google.gson.Gson
import org.springframework.stereotype.Repository
import tk.mybatis.mapper.entity.Example
import java.util.*
@@ -17,6 +18,11 @@
    private val scenseMapper: ScenseMapper,
    private val userinfoMapper: UserinfoMapper,
    private val subTaskRep: SubTaskRep,
    val sceneConstructionSiteMapper: SceneConstructionSiteMapper,
    val sceneDeviceMapper: SceneDeviceMapper,
    val sceneMixingPlantMapper: SceneMixingPlantMapper,
    val sceneStorageYardMapper: SceneStorageYardMapper,
    val sceneWharfMapper: SceneWharfMapper,
) {
    fun insert(scene: Scense?):Int {
@@ -26,11 +32,63 @@
        return scenseMapper.insertSelective(scene)
    }
    /**
     * 查找场景
     */
    fun findScene(topTaskId: String, sceneTypeId: Int? = null, townCode: String? = null): List<Scense?> {
        return scenseMapper.getSceneByType(topTaskId, sceneTypeId, townCode)
    fun insertOrUpdateSubScene(typeId: Int?, guid: String?, subScene: BaseScene?): Pair<Boolean, Int> {
        var r = 0
        var isUpdate = false
        subScene ?: return false to 0
        when (typeId.toString()) {
            Constant.SceneType.TYPE1.value -> {
                if ((subScene as SceneConstructionSite).getsGuid() == null) {
                    subScene.setsGuid(guid)
                }
                subScene.csUpdateTime = Date()
                val record = sceneConstructionSiteMapper.selectByPrimaryKey(subScene.getsGuid())
                r = if (record == null) {
                    sceneConstructionSiteMapper.insert(subScene)
                } else {
                    sceneConstructionSiteMapper.updateByPrimaryKeySelective(subScene)
                }
            }
            Constant.SceneType.TYPE2.value -> {
                if ((subScene as SceneWharf).getsGuid() == null) {
                    subScene.setsGuid(guid)
                }
                val record = sceneWharfMapper.selectByPrimaryKey(subScene.getsGuid())
                r = if (record == null) {
                    sceneWharfMapper.insert(subScene)
                } else {
                    sceneWharfMapper.updateByPrimaryKeySelective(subScene)
                }
            }
            Constant.SceneType.TYPE3.value -> {
                if ((subScene as SceneMixingPlant).getsGuid() == null) {
                    subScene.setsGuid(guid)
                }
                val record = sceneMixingPlantMapper.selectByPrimaryKey(subScene.getsGuid())
                r = if (record == null) {
                    sceneMixingPlantMapper.insert(subScene)
                } else {
                    sceneMixingPlantMapper.updateByPrimaryKeySelective(subScene)
                }
            }
            Constant.SceneType.TYPE14.value -> {
                if ((subScene as SceneStorageYard).getsGuid() == null) {
                    subScene.setsGuid(guid)
                }
                val record = sceneStorageYardMapper.selectByPrimaryKey(subScene.getsGuid())
                isUpdate = record != null
                r = if (record == null) {
                    sceneStorageYardMapper.insert(subScene)
                } else {
                    sceneStorageYardMapper.updateByPrimaryKeySelective(subScene)
                }
            }
        }
        return isUpdate to r
    }
    fun findScene(userId: String?): Scense? {
@@ -45,12 +103,23 @@
        })
    }
    fun findScenes(nameList: List<String?>): List<Scense?> {
    fun findSceneList(scene: Scense): List<Scense?> {
        return scenseMapper.select(scene)
    }
    fun findSceneList(nameList: List<String?>): List<Scense?> {
        return scenseMapper.selectByExample(Example(Scense::class.java).apply {
            createCriteria().andIn("name", nameList)
        })
    }
    /**
     * 查找场景
     */
    fun findSceneList(topTaskId: String, sceneTypeId: Int? = null, townCode: String? = null): List<Scense?> {
        return scenseMapper.getSceneByType(topTaskId, sceneTypeId, townCode)
    }
    fun findBySubTask(subTaskId: String): Scense? {
        val subtask = subTaskRep.findOne(subTaskId)
        return scenseMapper.selectByPrimaryKey(subtask?.scenseid)