feiyu02
2025-09-12 dc4f12f66685260ac357997680e5f3fe723c3c4a
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserMapServiceImpl.kt
@@ -17,7 +17,9 @@
import cn.flightfeather.supervision.domain.ds2.repository.UserMapRep
import cn.flightfeather.supervision.lightshare.service.UserMapService
import cn.flightfeather.supervision.lightshare.vo.AreaVo
import cn.flightfeather.supervision.lightshare.vo.DataHead
import cn.flightfeather.supervision.lightshare.vo.DeviceMapVo
import cn.flightfeather.supervision.lightshare.vo.DeviceSiteVo
import org.springframework.stereotype.Service
import tk.mybatis.mapper.entity.Example
import java.util.*
@@ -102,18 +104,64 @@
            //以飞羽环境系统中的用户为主体
            1 -> {
                val u = userInfoTZRep.findEnterpriseUser(areaVo.districtname, areaVo.scensetypeid?.toInt())
                u.map { it?.guid }
                u.map { it?.guid to it?.realname }
            }
            //以飞羽监管系统中的用户为主体
            2 -> {
                val task = taskRep.findOneTask(areaVo) ?: throw BizException("当前查询条件下未找到对应顶层任务")
                val scenes = sceneRep.findSceneList(task.tguid!!, areaVo.scensetypeid?.toInt(), areaVo.towncode)
                    .map { it?.guid }
                userInfoSVRep.findUser(scenes).map { it?.guid }
                userInfoSVRep.findUser(scenes).map { it?.guid to it?.realname }
            }
            else -> emptyList()
        }
        // 2.通过区域条件决定匹配的数据来源
        return aopDataDeviceMap.findMapSet(areaVo, userIdList)
        val mapSet = aopDataDeviceMap.findMapSet(areaVo, userIdList.map { it.first })
        val result = mutableListOf<DeviceMapVo>()
        // 将不在mapSet中的用户,添加到结果集中
        userIdList.forEach {u ->
            val ddm = mapSet.find { m->
                when (areaVo.sourceType) {
                    //以飞羽环境系统中的用户为主体
                    1 -> m.tzUserId == u.first
                    //以飞羽监管系统中的用户为主体
                    2 -> m.svUserId == u.first
                    else -> false
                }
            }
            if (ddm == null) {
                result.add(DeviceMapVo().apply {
                    when (areaVo.sourceType) {
                        //以飞羽环境系统中的用户为主体
                        1 -> {
                            tzUserId = u.first
                            tzUserName = u.second
                        }
                        //以飞羽监管系统中的用户为主体
                        2 -> {
                            svUserId = u.first
                            svUserName = u.second
                        }
                    }
                })
            }
        }
        // 将mapSet中的数据添加到结果集中
        result.addAll(mapSet)
        return result.sortedBy { it.svUserId }
    }
    override fun insertOrUpdate(param: Pair<AreaVo, DeviceMapVo>): Int {
        return aopDataDeviceMap.insertOrUpdate(param.first, listOf(param.second))
    }
    override fun searchThirdPartyDevice(
        areaVo: AreaVo,
        keyword: String,
        page: Int?,
        perPage: Int?,
    ): Pair<DataHead, List<DeviceSiteVo>> {
        return aopDataDeviceMap.searchDevice(areaVo, keyword, page ?: 1, perPage ?: 30)
    }
}