diff --git a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/controller/AlgorithmArrangeController.java b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/controller/AlgorithmArrangeController.java index 3377857..5bf69f1 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/controller/AlgorithmArrangeController.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/controller/AlgorithmArrangeController.java @@ -1,13 +1,23 @@ package com.yfd.platform.modules.algorithm.controller; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.modules.algorithm.domain.AlgorithmArrange; +import com.yfd.platform.modules.algorithm.service.IAlgorithmArrangeService; +import com.yfd.platform.utils.SecurityUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; +import java.time.LocalDateTime; /** *
- * 前端控制器 + * 前端控制器 *
* Mapper 接口 @@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface AlgorithmArrangeDeviceMapper extends BaseMapper { + List> getArrangeDeviceInfo(String arrangeId); } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmArrangeDeviceService.java b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmArrangeDeviceService.java index aa12884..0974b81 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmArrangeDeviceService.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmArrangeDeviceService.java @@ -3,6 +3,9 @@ package com.yfd.platform.modules.algorithm.service; import com.yfd.platform.modules.algorithm.domain.AlgorithmArrangeDevice; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; +import java.util.Map; + /** * * 服务类 @@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IAlgorithmArrangeDeviceService extends IService { + List> getArrangeDeviceInfo(String arrangeId); } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmArrangeDeviceServiceImpl.java b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmArrangeDeviceServiceImpl.java index 9264eae..b124115 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmArrangeDeviceServiceImpl.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmArrangeDeviceServiceImpl.java @@ -6,15 +6,47 @@ import com.yfd.platform.modules.algorithm.service.IAlgorithmArrangeDeviceService import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.*; + /** * - * 服务实现类 + * 服务实现类 * * * @author zhengsl * @since 2025-06-06 */ @Service -public class AlgorithmArrangeDeviceServiceImpl extends ServiceImpl implements IAlgorithmArrangeDeviceService { +public class AlgorithmArrangeDeviceServiceImpl extends ServiceImpl implements IAlgorithmArrangeDeviceService { + @Resource + private AlgorithmArrangeDeviceMapper algorithmArrangeDeviceMapper; + + @Override + public List> getArrangeDeviceInfo(String arrangeId) { + List> rawData = algorithmArrangeDeviceMapper.getArrangeDeviceInfo(arrangeId); + + // 使用 Map<主设备ID, 结果行> 来合并数据 + Map> groupedData = new HashMap<>(); + + for (Map row : rawData) { + String mainDeviceId = (String) row.get("mainDeviceId"); + String mainDeviceName = (String) row.get("mainDeviceName"); + String deviceTypeCode = (String) row.get("deviceTypeCode"); + Long count = (Long) row.get("deviceTypeCount"); + + groupedData.computeIfAbsent(mainDeviceId, k -> { + Map newRow = new HashMap<>(); + newRow.put("mainDeviceId", mainDeviceId); + newRow.put("mainDeviceName", mainDeviceName); + return newRow; + }); + // 设置具体类型的数量 + groupedData.get(mainDeviceId).put(deviceTypeCode, count); + } + + return new ArrayList<>(groupedData.values()); + } } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationController.java b/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationController.java index 39b8bca..7cd347e 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationController.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationController.java @@ -92,7 +92,7 @@ public class SubstationController { queryWrapper.eq(Substation::getIsStationFlag, flag); } queryWrapper.eq(Substation::getDatastatus, "1").select(Substation::getStationId, Substation::getStationCode, - Substation::getStationName).orderByAsc(Substation::getCustom1); + Substation::getStationName,Substation::getVoltLevel,Substation::getStationType).orderByAsc(Substation::getCustom1); List> listMaps = substationService.listMaps(queryWrapper); return ResponseResult.successData(listMaps); } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationMaindeviceController.java b/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationMaindeviceController.java index 76c5d94..37b6035 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationMaindeviceController.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationMaindeviceController.java @@ -109,13 +109,13 @@ public class SubstationMaindeviceController { @GetMapping("/getMainDeviceByType") @ApiOperation("根据主设备类型获取主设备") - public ResponseResult getMainDeviceByType(String stationCode, String deviceType) { - if (StrUtil.isBlank(stationCode) || StrUtil.isBlank(deviceType)) { + public ResponseResult getMainDeviceByType(String stationCode, String deviceTypeList) { + if (StrUtil.isBlank(stationCode) || StrUtil.isBlank(deviceTypeList)) { return ResponseResult.successData(new ArrayList<>()); } LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(StrUtil.isNotBlank(stationCode), SubstationMaindevice::getStationCode, stationCode); - queryWrapper.eq(StrUtil.isNotBlank(deviceType), SubstationMaindevice::getDeviceType, StrUtil.split(deviceType + queryWrapper.eq(StrUtil.isNotBlank(deviceTypeList), SubstationMaindevice::getDeviceType, StrUtil.split(deviceTypeList , ",")); queryWrapper.select(SubstationMaindevice::getMainDeviceId, SubstationMaindevice::getMainDeviceName, SubstationMaindevice::getDeviceType, SubstationMaindevice::getFileUrl); diff --git a/riis-system/src/main/java/com/yfd/platform/system/controller/SysDictionaryController.java b/riis-system/src/main/java/com/yfd/platform/system/controller/SysDictionaryController.java index d884c55..9a63119 100644 --- a/riis-system/src/main/java/com/yfd/platform/system/controller/SysDictionaryController.java +++ b/riis-system/src/main/java/com/yfd/platform/system/controller/SysDictionaryController.java @@ -36,12 +36,12 @@ public class SysDictionaryController { ***********************************/ @GetMapping("/dictList") @ApiOperation("获取数据字典列表") - public ResponseResult getDictList(String dictType) { + public ResponseResult getDictList(String dictType,String dictName) { if (StrUtil.isBlank(dictType)) { return ResponseResult.error("参数为空"); } List sysDictionaries = - sysDictionaryService.getDictList(dictType); + sysDictionaryService.getDictList(dictType,dictName); return ResponseResult.successData(sysDictionaries); } diff --git a/riis-system/src/main/java/com/yfd/platform/system/service/ISysDictionaryService.java b/riis-system/src/main/java/com/yfd/platform/system/service/ISysDictionaryService.java index f497790..a8571f7 100644 --- a/riis-system/src/main/java/com/yfd/platform/system/service/ISysDictionaryService.java +++ b/riis-system/src/main/java/com/yfd/platform/system/service/ISysDictionaryService.java @@ -20,7 +20,7 @@ public interface ISysDictionaryService extends IService { * 参数说明 dictType 字典类型 * 返回值说明: com.yfd.platform.config.ResponseResult 返回分页查询结果 ***********************************/ - List getDictList(String dictType); + List getDictList(String dictType,String dictName); /********************************** * 用途说明: 新增字典 diff --git a/riis-system/src/main/java/com/yfd/platform/system/service/impl/SysDictionaryServiceImpl.java b/riis-system/src/main/java/com/yfd/platform/system/service/impl/SysDictionaryServiceImpl.java index 6d8492e..4762034 100644 --- a/riis-system/src/main/java/com/yfd/platform/system/service/impl/SysDictionaryServiceImpl.java +++ b/riis-system/src/main/java/com/yfd/platform/system/service/impl/SysDictionaryServiceImpl.java @@ -1,5 +1,6 @@ package com.yfd.platform.system.service.impl; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -38,10 +39,10 @@ public class SysDictionaryServiceImpl extends ServiceImpl getDictList(String dictType) { + public List getDictList(String dictType,String dictName) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(SysDictionary::getDictType, dictType).orderByAsc(SysDictionary::getOrderNo); + queryWrapper.eq(SysDictionary::getDictType, dictType).like(StrUtil.isNotBlank(dictName),SysDictionary::getDictName, dictName).orderByAsc(SysDictionary::getOrderNo); return sysDictionaryMapper.selectList(queryWrapper); } diff --git a/riis-system/src/main/resources/mapper/algorithm/AlgorithmArrangeDeviceMapper.xml b/riis-system/src/main/resources/mapper/algorithm/AlgorithmArrangeDeviceMapper.xml index 77a4b01..0704a48 100644 --- a/riis-system/src/main/resources/mapper/algorithm/AlgorithmArrangeDeviceMapper.xml +++ b/riis-system/src/main/resources/mapper/algorithm/AlgorithmArrangeDeviceMapper.xml @@ -2,4 +2,35 @@ + + SELECT + d.main_device_id, + d.main_device_name, + t.device_type_code, + t.device_type_name, + COUNT(iis.id) AS device_type_count + FROM + (SELECT DISTINCT main_device_id, main_device_name FROM iis_algorithm_arrange_device) d + CROSS JOIN + (SELECT itemcode AS device_type_code, dictname AS device_type_name + FROM sys_dictionary_items + WHERE dictid = '953147a7bb8e0961c6d1cd4e23e7fddc' + ) t + LEFT JOIN + iis_algorithm_arrange_device iis + ON iis.main_device_id = d.main_device_id + AND iis.patroldevice_type = t.device_type_code + + AND arrange_id = #{arrangeId} + + GROUP BY + d.main_device_id, + d.main_device_name, + t.device_type_code, + t.device_type_name + ORDER BY + d.main_device_id, + t.device_type_code; + +
* 服务类 @@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IAlgorithmArrangeDeviceService extends IService { + List> getArrangeDeviceInfo(String arrangeId); } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmArrangeDeviceServiceImpl.java b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmArrangeDeviceServiceImpl.java index 9264eae..b124115 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmArrangeDeviceServiceImpl.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmArrangeDeviceServiceImpl.java @@ -6,15 +6,47 @@ import com.yfd.platform.modules.algorithm.service.IAlgorithmArrangeDeviceService import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.*; + /** * - * 服务实现类 + * 服务实现类 * * * @author zhengsl * @since 2025-06-06 */ @Service -public class AlgorithmArrangeDeviceServiceImpl extends ServiceImpl implements IAlgorithmArrangeDeviceService { +public class AlgorithmArrangeDeviceServiceImpl extends ServiceImpl implements IAlgorithmArrangeDeviceService { + @Resource + private AlgorithmArrangeDeviceMapper algorithmArrangeDeviceMapper; + + @Override + public List> getArrangeDeviceInfo(String arrangeId) { + List> rawData = algorithmArrangeDeviceMapper.getArrangeDeviceInfo(arrangeId); + + // 使用 Map<主设备ID, 结果行> 来合并数据 + Map> groupedData = new HashMap<>(); + + for (Map row : rawData) { + String mainDeviceId = (String) row.get("mainDeviceId"); + String mainDeviceName = (String) row.get("mainDeviceName"); + String deviceTypeCode = (String) row.get("deviceTypeCode"); + Long count = (Long) row.get("deviceTypeCount"); + + groupedData.computeIfAbsent(mainDeviceId, k -> { + Map newRow = new HashMap<>(); + newRow.put("mainDeviceId", mainDeviceId); + newRow.put("mainDeviceName", mainDeviceName); + return newRow; + }); + // 设置具体类型的数量 + groupedData.get(mainDeviceId).put(deviceTypeCode, count); + } + + return new ArrayList<>(groupedData.values()); + } } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationController.java b/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationController.java index 39b8bca..7cd347e 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationController.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationController.java @@ -92,7 +92,7 @@ public class SubstationController { queryWrapper.eq(Substation::getIsStationFlag, flag); } queryWrapper.eq(Substation::getDatastatus, "1").select(Substation::getStationId, Substation::getStationCode, - Substation::getStationName).orderByAsc(Substation::getCustom1); + Substation::getStationName,Substation::getVoltLevel,Substation::getStationType).orderByAsc(Substation::getCustom1); List> listMaps = substationService.listMaps(queryWrapper); return ResponseResult.successData(listMaps); } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationMaindeviceController.java b/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationMaindeviceController.java index 76c5d94..37b6035 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationMaindeviceController.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationMaindeviceController.java @@ -109,13 +109,13 @@ public class SubstationMaindeviceController { @GetMapping("/getMainDeviceByType") @ApiOperation("根据主设备类型获取主设备") - public ResponseResult getMainDeviceByType(String stationCode, String deviceType) { - if (StrUtil.isBlank(stationCode) || StrUtil.isBlank(deviceType)) { + public ResponseResult getMainDeviceByType(String stationCode, String deviceTypeList) { + if (StrUtil.isBlank(stationCode) || StrUtil.isBlank(deviceTypeList)) { return ResponseResult.successData(new ArrayList<>()); } LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(StrUtil.isNotBlank(stationCode), SubstationMaindevice::getStationCode, stationCode); - queryWrapper.eq(StrUtil.isNotBlank(deviceType), SubstationMaindevice::getDeviceType, StrUtil.split(deviceType + queryWrapper.eq(StrUtil.isNotBlank(deviceTypeList), SubstationMaindevice::getDeviceType, StrUtil.split(deviceTypeList , ",")); queryWrapper.select(SubstationMaindevice::getMainDeviceId, SubstationMaindevice::getMainDeviceName, SubstationMaindevice::getDeviceType, SubstationMaindevice::getFileUrl); diff --git a/riis-system/src/main/java/com/yfd/platform/system/controller/SysDictionaryController.java b/riis-system/src/main/java/com/yfd/platform/system/controller/SysDictionaryController.java index d884c55..9a63119 100644 --- a/riis-system/src/main/java/com/yfd/platform/system/controller/SysDictionaryController.java +++ b/riis-system/src/main/java/com/yfd/platform/system/controller/SysDictionaryController.java @@ -36,12 +36,12 @@ public class SysDictionaryController { ***********************************/ @GetMapping("/dictList") @ApiOperation("获取数据字典列表") - public ResponseResult getDictList(String dictType) { + public ResponseResult getDictList(String dictType,String dictName) { if (StrUtil.isBlank(dictType)) { return ResponseResult.error("参数为空"); } List sysDictionaries = - sysDictionaryService.getDictList(dictType); + sysDictionaryService.getDictList(dictType,dictName); return ResponseResult.successData(sysDictionaries); } diff --git a/riis-system/src/main/java/com/yfd/platform/system/service/ISysDictionaryService.java b/riis-system/src/main/java/com/yfd/platform/system/service/ISysDictionaryService.java index f497790..a8571f7 100644 --- a/riis-system/src/main/java/com/yfd/platform/system/service/ISysDictionaryService.java +++ b/riis-system/src/main/java/com/yfd/platform/system/service/ISysDictionaryService.java @@ -20,7 +20,7 @@ public interface ISysDictionaryService extends IService { * 参数说明 dictType 字典类型 * 返回值说明: com.yfd.platform.config.ResponseResult 返回分页查询结果 ***********************************/ - List getDictList(String dictType); + List getDictList(String dictType,String dictName); /********************************** * 用途说明: 新增字典 diff --git a/riis-system/src/main/java/com/yfd/platform/system/service/impl/SysDictionaryServiceImpl.java b/riis-system/src/main/java/com/yfd/platform/system/service/impl/SysDictionaryServiceImpl.java index 6d8492e..4762034 100644 --- a/riis-system/src/main/java/com/yfd/platform/system/service/impl/SysDictionaryServiceImpl.java +++ b/riis-system/src/main/java/com/yfd/platform/system/service/impl/SysDictionaryServiceImpl.java @@ -1,5 +1,6 @@ package com.yfd.platform.system.service.impl; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -38,10 +39,10 @@ public class SysDictionaryServiceImpl extends ServiceImpl getDictList(String dictType) { + public List getDictList(String dictType,String dictName) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(SysDictionary::getDictType, dictType).orderByAsc(SysDictionary::getOrderNo); + queryWrapper.eq(SysDictionary::getDictType, dictType).like(StrUtil.isNotBlank(dictName),SysDictionary::getDictName, dictName).orderByAsc(SysDictionary::getOrderNo); return sysDictionaryMapper.selectList(queryWrapper); } diff --git a/riis-system/src/main/resources/mapper/algorithm/AlgorithmArrangeDeviceMapper.xml b/riis-system/src/main/resources/mapper/algorithm/AlgorithmArrangeDeviceMapper.xml index 77a4b01..0704a48 100644 --- a/riis-system/src/main/resources/mapper/algorithm/AlgorithmArrangeDeviceMapper.xml +++ b/riis-system/src/main/resources/mapper/algorithm/AlgorithmArrangeDeviceMapper.xml @@ -2,4 +2,35 @@ + + SELECT + d.main_device_id, + d.main_device_name, + t.device_type_code, + t.device_type_name, + COUNT(iis.id) AS device_type_count + FROM + (SELECT DISTINCT main_device_id, main_device_name FROM iis_algorithm_arrange_device) d + CROSS JOIN + (SELECT itemcode AS device_type_code, dictname AS device_type_name + FROM sys_dictionary_items + WHERE dictid = '953147a7bb8e0961c6d1cd4e23e7fddc' + ) t + LEFT JOIN + iis_algorithm_arrange_device iis + ON iis.main_device_id = d.main_device_id + AND iis.patroldevice_type = t.device_type_code + + AND arrange_id = #{arrangeId} + + GROUP BY + d.main_device_id, + d.main_device_name, + t.device_type_code, + t.device_type_name + ORDER BY + d.main_device_id, + t.device_type_code; + +
- * 服务实现类 + * 服务实现类 *