feiyu02
2024-10-12 7cd8d2a1e96de3d173bf5af64b4adc29c497db2a
src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/DeviceRep.kt
@@ -1,60 +1,121 @@
package cn.flightfeather.supervision.domain.ds1.repository
import cn.flightfeather.supervision.domain.ds1.entity.DeviceInfo
import cn.flightfeather.supervision.domain.ds1.entity.DeviceLocation
import cn.flightfeather.supervision.domain.ds1.mapper.DeviceInfoMapper
import cn.flightfeather.supervision.domain.ds1.mapper.DeviceLocationMapper
import cn.flightfeather.supervision.common.utils.Constant
import cn.flightfeather.supervision.domain.ds1.entity.*
import cn.flightfeather.supervision.domain.ds1.mapper.DeviceStatusMapper
import cn.flightfeather.supervision.domain.ds1.mapper.MonitorDeviceInfoMapper
import cn.flightfeather.supervision.domain.ds1.mapper.TreatmentDeviceInfoMapper
import cn.flightfeather.supervision.domain.ds1.mapper.ProductionDeviceInfoMapper
import org.springframework.stereotype.Repository
import java.util.*
/**
 *
 * 场景设备数据库查询
 * @date 2024/7/24
 * @author feiyu02
 */
@Repository
class DeviceRep(
    private val deviceInfoMapper: DeviceInfoMapper,
    private val deviceLocationMapper: DeviceLocationMapper,
    private val monitorDeviceInfoMapper: MonitorDeviceInfoMapper,
    private val treatmentDeviceInfoMapper: TreatmentDeviceInfoMapper,
    private val productionDeviceInfoMapper: ProductionDeviceInfoMapper,
    private val deviceStatusMapper: DeviceStatusMapper,
) {
    /***--DeviceInfo--***/
    fun findDevice(sceneId: String): DeviceInfo? {
        return deviceInfoMapper.selectByPrimaryKey(sceneId)
    /**
     * 查询设备信息
     * @param deviceId 设备主键id
     * @param type 设备类型
     * @return 设备信息
     */
    fun findDevice(deviceId: Int, type: Constant.DeviceType): BaseDevice? {
        return when (type) {
            Constant.DeviceType.MONITOR_DEVICE -> monitorDeviceInfoMapper.selectByPrimaryKey(deviceId)
            Constant.DeviceType.TREATMENT_DEVICE -> treatmentDeviceInfoMapper.selectByPrimaryKey(deviceId)
            Constant.DeviceType.PRODUCTION_DEVICE -> productionDeviceInfoMapper.selectByPrimaryKey(deviceId)
        }
    }
    fun findDeviceList(sceneId: String): List<DeviceInfo> {
        return findDeviceList(DeviceInfo().apply { diSceneGuid = sceneId })
    /**
     * 查询设备信息
     * @param sceneId 场景主键id
     * @param type 设备类型
     * @return 设备信息
     */
    fun findDeviceList(sceneId: String, type: Constant.DeviceType): List<BaseDevice> {
        return when (type) {
            Constant.DeviceType.MONITOR_DEVICE -> findDeviceList(MonitorDeviceInfo().apply { diSceneGuid = sceneId })
            Constant.DeviceType.TREATMENT_DEVICE -> findDeviceList(TreatmentDeviceInfo()
                .apply { piSceneGuid = sceneId })
            Constant.DeviceType.PRODUCTION_DEVICE -> findDeviceList(ProductionDeviceInfo()
                .apply { wiSceneGuid = sceneId })
        }
    }
    fun findDeviceList(monitorDeviceInfo: MonitorDeviceInfo): List<MonitorDeviceInfo> {
        return monitorDeviceInfoMapper.select(monitorDeviceInfo)
    }
    fun findDeviceList(treatmentDeviceInfo: TreatmentDeviceInfo): List<TreatmentDeviceInfo> {
        return treatmentDeviceInfoMapper.select(treatmentDeviceInfo)
    }
    fun findDeviceList(productionDeviceInfo: ProductionDeviceInfo): List<ProductionDeviceInfo> {
        return productionDeviceInfoMapper.select(productionDeviceInfo)
    }
    fun findDeviceList(deviceInfo: DeviceInfo): List<DeviceInfo> {
        return deviceInfoMapper.select(deviceInfo)
    /**
     * 插入设备信息
     */
    fun insertDevice(monitorDeviceInfo: MonitorDeviceInfo): Int {
        monitorDeviceInfo.diCreateTime = Date()
        monitorDeviceInfo.diUpdateTime = Date()
        return monitorDeviceInfoMapper.insert(monitorDeviceInfo)
    }
    fun insertDevice(treatmentDeviceInfo: TreatmentDeviceInfo): Int {
        treatmentDeviceInfo.piCreateTime = Date()
        treatmentDeviceInfo.piUpdateTime = Date()
        return treatmentDeviceInfoMapper.insert(treatmentDeviceInfo)
    }
    fun insertDevice(productionDeviceInfo: ProductionDeviceInfo): Int {
        productionDeviceInfo.wiCreateTime = Date()
        productionDeviceInfo.wiUpdateTime = Date()
        return productionDeviceInfoMapper.insert(productionDeviceInfo)
    }
    fun insertDevice(deviceInfo: DeviceInfo): Int {
        return deviceInfoMapper.insert(deviceInfo)
    /**
     * 更新设备信息
     */
    fun updateDevice(monitorDeviceInfo: MonitorDeviceInfo): Int {
        monitorDeviceInfo.diUpdateTime = Date()
        return monitorDeviceInfoMapper.updateByPrimaryKey(monitorDeviceInfo)
    }
    fun updateDevice(treatmentDeviceInfo: TreatmentDeviceInfo): Int {
        treatmentDeviceInfo.piUpdateTime = Date()
        return treatmentDeviceInfoMapper.updateByPrimaryKey(treatmentDeviceInfo)
    }
    fun updateDevice(productionDeviceInfo: ProductionDeviceInfo): Int {
        productionDeviceInfo.wiUpdateTime = Date()
        return productionDeviceInfoMapper.updateByPrimaryKey(productionDeviceInfo)
    }
    fun updateDevice(deviceInfo: DeviceInfo): Int {
        return deviceInfoMapper.updateByPrimaryKey(deviceInfo)
    /***--DeviceStatus--***/
    fun findStatus(id: Int): DeviceStatus? {
        return deviceStatusMapper.selectByPrimaryKey(id)
    }
    /***--DeviceLocation--***/
    fun findLocation(id: Int): DeviceLocation? {
        return deviceLocationMapper.selectByPrimaryKey(id)
    fun findStatuses(deviceId: Int): List<DeviceStatus> {
        return findStatuses(DeviceStatus()
            .apply { dlDeviceId = deviceId })
    }
    fun findLocations(deviceId: Int): List<DeviceLocation> {
        return findLocations(DeviceLocation().apply { dlDeviceId = deviceId })
    fun findStatuses(location: DeviceStatus): List<DeviceStatus> {
        return deviceStatusMapper.select(location)
    }
    fun findLocations(location: DeviceLocation): List<DeviceLocation> {
        return deviceLocationMapper.select(location)
    fun insertStatus(location: DeviceStatus): Int {
        return deviceStatusMapper.insert(location)
    }
    fun insertLocation(location: DeviceLocation): Int {
        return deviceLocationMapper.insert(location)
    }
    fun updateLocation(location: DeviceLocation): Int {
        return deviceLocationMapper.updateByPrimaryKey(location)
    fun updateStatus(location: DeviceStatus): Int {
        return deviceStatusMapper.updateByPrimaryKey(location)
    }
}