From dc4f12f66685260ac357997680e5f3fe723c3c4a Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期五, 12 九月 2025 17:22:40 +0800 Subject: [PATCH] 2025.9.12 1. 新增监测设备和巡查场景信息的匹配功能 --- src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/AopDataDeviceMap.kt | 148 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 148 insertions(+), 0 deletions(-) diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/AopDataDeviceMap.kt b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/AopDataDeviceMap.kt index 290de1e..623d7b1 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/AopDataDeviceMap.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/AopDataDeviceMap.kt @@ -11,6 +11,7 @@ import cn.flightfeather.supervision.domain.ds3.repository.JSDustSiteRep import cn.flightfeather.supervision.domain.ds3.repository.XHFumeSiteMapRep import cn.flightfeather.supervision.lightshare.vo.* +import com.github.pagehelper.PageHelper import org.apache.poi.hssf.usermodel.HSSFWorkbook import org.springframework.stereotype.Component import java.io.FileOutputStream @@ -84,6 +85,153 @@ } } + fun insertOrUpdate(areaVo: AreaVo, mapSet: List<DeviceMapVo>):Int { + return when (areaVo.sourceType) { + //浠ラ缇界幆澧冪郴缁熶腑鐨勭敤鎴蜂负涓讳綋 + 1 -> { + insertOrUpdate1(areaVo,mapSet) + } + //浠ラ缇界洃绠$郴缁熶腑鐨勭敤鎴蜂负涓讳綋 + 2 -> { + insertOrUpdate2(areaVo,mapSet) + } + else -> 0 + } + } + + private fun insertOrUpdate1(areaVo: AreaVo, mapSet: List<DeviceMapVo>):Int { + return when (areaVo.districtcode) { + //寰愭眹鍖� + "310104" -> { + when (areaVo.scensetypeid) { + //姹戒慨 + Constant.SceneTypeTZ.VehicleRepair.value.toString() -> 0 + else -> 0 + } + } + else -> 0 + } + } + + private fun insertOrUpdate2(areaVo: AreaVo, mapSet: List<DeviceMapVo>):Int { + return when (areaVo.districtcode) { + //闈欏畨鍖� + "310106" -> { + val mapSet1 = mapSet.map { DeviceMapVo.toJADustSiteMap(it) } + when (areaVo.scensetypeid) { + //宸ュ湴 + Constant.SceneType.TYPE1.value -> { + var rc = 0 + mapSet1.forEach { + rc += if(jaDustSiteRep.findByPrimaryKey(it.id) == null) { + jaDustSiteRep.insert(it) + } else { + jaDustSiteRep.update(it) + } + } + rc + } + else -> 0 + } + } + //閲戝北鍖� + "310116" -> { + val mapSet1 = mapSet.map { DeviceMapVo.toJSDustSiteMap(it) } + when (areaVo.scensetypeid) { + //宸ュ湴,鐮佸ご姘存偿鎼呮媽绔� + Constant.SceneType.TYPE1.value, + Constant.SceneType.TYPE2.value, + Constant.SceneType.TYPE3.value, + -> { + var rc = 0 + mapSet1.forEach { + rc += if(jsDustSiteRep.findByPrimaryKey(it.id) == null) { + jsDustSiteRep.insert(it) + } else { + jsDustSiteRep.update(it) + } + } + rc + } + + else -> 0 + } + } + //寰愭眹鍖� + "310104" -> { + val mapSet1 = mapSet.map { DeviceMapVo.toXHFumeSiteMap(it) } + when (areaVo.scensetypeid) { + //椁愰ギ + Constant.SceneType.TYPE5.value -> { + var rc = 0 + mapSet1.forEach { + rc += if(xhFumeSiteMapRep.findByPrimaryKey(it.id) == null) { + xhFumeSiteMapRep.insert(it) + } else { + xhFumeSiteMapRep.update(it) + } + } + rc + } + else -> 0 + } + } + else -> 0 + + } + } + + /** + * 鎼滅储璁惧 + * @param areaVo 鍖哄煙鏉′欢 + * @param keyword 鎼滅储鍏抽敭璇� + * @param page 椤电爜 + * @param perPage 姣忛〉鏁伴噺 + * @return 璁惧鍒楄〃 + */ + fun searchDevice(areaVo: AreaVo, keyword: String, page: Int, perPage: Int): Pair<DataHead, List<DeviceSiteVo>> { + return when (areaVo.districtcode) { + //闈欏畨鍖� + "310106" -> when (areaVo.scensetypeid) { + //宸ュ湴 + Constant.SceneType.TYPE1.value -> { + val pageInfo = PageHelper.startPage<DeviceSiteVo>(page, perPage) + val list = jaDustSiteRep.searchSiteInfo(keyword) + DataHead(pageInfo.pageNum, pageInfo.pages, pageInfo.total) to list + } + + else -> DataHead() to emptyList() + } + //閲戝北鍖� + "310116" -> when (areaVo.scensetypeid) { + //宸ュ湴,鐮佸ご姘存偿鎼呮媽绔� + Constant.SceneType.TYPE1.value, + Constant.SceneType.TYPE2.value, + Constant.SceneType.TYPE3.value, + -> { + val pageInfo = PageHelper.startPage<DeviceSiteVo>(page, perPage) + val list = jsDustSiteRep.searchSiteInfo(keyword) + DataHead(pageInfo.pageNum, pageInfo.pages, pageInfo.total) to list + } + + else -> DataHead() to emptyList() + } + //寰愭眹鍖� + "310104" -> when (areaVo.scensetypeid) { + //椁愰ギ + Constant.SceneType.TYPE5.value -> { +// val pageInfo = PageHelper.startPage<DeviceSiteVo>(page, perPage) +// val list = xhFumeSiteRep.searchSiteInfo(keyword) +// DataHead(pageInfo.pageNum, pageInfo.pages, pageInfo.total) to list + DataHead() to emptyList() + } + else -> DataHead() to emptyList() + } + + else -> DataHead() to emptyList() + } + } + /** * 杈撳嚭鐩戞祴鐐逛綅鍜岀洃娴嬭澶囩殑瀵瑰簲鍖归厤鍏崇郴 * @param areaVo 鍖哄煙鏉′欢 -- Gitblit v1.9.3