diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/MonitorSendServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/MonitorSendServiceImpl.java index 94637531c..bc085bb64 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/MonitorSendServiceImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/MonitorSendServiceImpl.java @@ -22,6 +22,7 @@ import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.api.DictTreeFeignClient; import com.njcn.system.enums.DicDataEnum; import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.enums.DicTreeEnum; import com.njcn.system.pojo.po.DictData; import com.njcn.system.pojo.po.SysDicTreePO; import com.njcn.system.pojo.vo.DictTreeVO; @@ -40,6 +41,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.function.Function; import java.util.stream.Collectors; @@ -65,29 +67,55 @@ public class MonitorSendServiceImpl implements MonitorSendService { @Override public String sendType(MonitorParam.Info param) { - SysDicTreePO dicTree = dictTreeFeignClient.queryById(param.getObjType()).getData(); - if(ObjectUtil.isNull(dicTree)){ - throw new BusinessException("请检查监测对象类型是否存在"); + SysDicTreePO dicTree = null; + List objTypeIds=new ArrayList<>(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + if(param.getObjType().equals("987654321")){ + dicTree = new SysDicTreePO(); + dicTree.setCode("987654321"); + dicTree.setName("其他"); + + //特殊处理 + List sysDicTreePOList = dictTreeFeignClient.queryAll().getData(); + List typicDic =sysDicTreePOList.stream().filter(item-> Objects.equals(DicTreeEnum.Power_Station.getCode(),item.getCode())||Objects.equals(DicTreeEnum.Ele_Railways.getCode(),item.getCode())|| + Objects.equals(DicTreeEnum.Wind_Farms.getCode(),item.getCode())).collect(Collectors.toList()); + + for(SysDicTreePO sysDicTreePO : typicDic){ + List temList = dictTreeFeignClient.query(sysDicTreePO.getId()).getData(); + List ids = temList.stream().map(DictTreeVO::getId).collect(Collectors.toList()); + objTypeIds.addAll(ids); + objTypeIds.add(sysDicTreePO.getId()); + } + lambdaQueryWrapper.notIn(Monitor::getObjType, objTypeIds); + }else { + dicTree = dictTreeFeignClient.queryById(param.getObjType()).getData(); + if(ObjectUtil.isNull(dicTree)){ + throw new BusinessException("请检查监测对象类型是否存在"); + } + List objType = dictTreeFeignClient.query(param.getObjType()).getData(); + objTypeIds.add(param.getObjType()); + if(CollUtil.isNotEmpty(objType)){ + objTypeIds.addAll(objType.stream().map(DictTreeVO::getId).collect(Collectors.toList())); + } + lambdaQueryWrapper.in(Monitor::getObjType, objTypeIds); } - List objType = dictTreeFeignClient.query(param.getObjType()).getData(); + + //运行状态 List lineState = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_STATE.getCode()).getData(); List run = lineState.stream().filter(x -> DicDataEnum.RUN.getCode() .equals(x.getCode())).collect(Collectors.toList()); - List objTypeIds=new ArrayList<>(); - objTypeIds.add(param.getObjType()); - if(CollUtil.isNotEmpty(objType)){ - objTypeIds.addAll(objType.stream().map(DictTreeVO::getId).collect(Collectors.toList())); - } + + //获取监测点信息 - List monitorList = monitorService.list(new LambdaQueryWrapper() - .in(StrUtil.isNotBlank(param.getMonitorTag()),Monitor::getMonitorTag, param.getMonitorTag()) - .in(Monitor::getObjType, objTypeIds) + + lambdaQueryWrapper.in(StrUtil.isNotBlank(param.getMonitorTag()),Monitor::getMonitorTag, param.getMonitorTag()) .eq(Monitor::getIsUpToGrid,1) .eq(Monitor::getMonitorState,run.get(0).getId()) .ne(param.getFiy(),Monitor::getIsUploadHead,1) - .in(CollUtil.isNotEmpty(param.getIds()),Monitor::getId, param.getIds()) - ); + .in(CollUtil.isNotEmpty(param.getIds()),Monitor::getId, param.getIds()); + + List monitorList = monitorService.list(lambdaQueryWrapper); if(CollUtil.isEmpty(monitorList)){ return "国网上送监测点为空,请检查是否存在上送国网监测点"; } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/MonitorServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/MonitorServiceImpl.java index b4206c03b..c16fdcfe3 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/MonitorServiceImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/MonitorServiceImpl.java @@ -43,6 +43,7 @@ import com.njcn.poi.util.PoiUtil; import com.njcn.system.api.DictTreeFeignClient; import com.njcn.system.enums.DicDataEnum; import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.enums.DicTreeEnum; import com.njcn.system.pojo.po.SysDicTreePO; import com.njcn.system.pojo.vo.DictTreeVO; import com.njcn.user.api.DeptFeignClient; @@ -182,24 +183,45 @@ public class MonitorServiceImpl extends ServiceImpl impl @Override public Page getAllMonitorPageList(TerminalQueryParam baseParam) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); List objTypeIds = new ArrayList<>(); if(StrUtil.isNotBlank(baseParam.getObjType())){ - SysDicTreePO sysDicTreePO = dictTreeFeignClient.queryById(baseParam.getObjType()).getData(); - if(sysDicTreePO.getPid().equals("0")){ - List temList = dictTreeFeignClient.query(sysDicTreePO.getId()).getData(); - List ids = temList.stream().map(DictTreeVO::getId).collect(Collectors.toList()); - objTypeIds.addAll(ids); - } - objTypeIds.add(sysDicTreePO.getId()); + if(baseParam.getObjType().equals("987654321")){ + //特殊处理 + List sysDicTreePOList = dictTreeFeignClient.queryAll().getData(); + List typicDic =sysDicTreePOList.stream().filter(item->Objects.equals(DicTreeEnum.Power_Station.getCode(),item.getCode())||Objects.equals(DicTreeEnum.Ele_Railways.getCode(),item.getCode())|| + Objects.equals(DicTreeEnum.Wind_Farms.getCode(),item.getCode())).collect(Collectors.toList()); + + for(SysDicTreePO sysDicTreePO : typicDic){ + List temList = dictTreeFeignClient.query(sysDicTreePO.getId()).getData(); + List ids = temList.stream().map(DictTreeVO::getId).collect(Collectors.toList()); + objTypeIds.addAll(ids); + objTypeIds.add(sysDicTreePO.getId()); + } + + lambdaQueryWrapper.notIn(Monitor::getObjType,objTypeIds); + + + }else { + SysDicTreePO sysDicTreePO = dictTreeFeignClient.queryById(baseParam.getObjType()).getData(); + if(sysDicTreePO.getPid().equals("0")){ + List temList = dictTreeFeignClient.query(sysDicTreePO.getId()).getData(); + List ids = temList.stream().map(DictTreeVO::getId).collect(Collectors.toList()); + objTypeIds.addAll(ids); + } + objTypeIds.add(sysDicTreePO.getId()); + lambdaQueryWrapper.in(CollUtil.isNotEmpty(objTypeIds),Monitor::getObjType,objTypeIds); + + } + } - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper .eq(StrUtil.isNotBlank(baseParam.getMonitorState()), Monitor::getMonitorState, baseParam.getMonitorState()) .eq(StrUtil.isNotBlank(baseParam.getMonitorTag()), Monitor::getMonitorTag, baseParam.getMonitorTag()) .eq(Objects.nonNull(baseParam.getIsUpToGrid()), Monitor::getIsUpToGrid, baseParam.getIsUpToGrid()) - .in(StrUtil.isNotBlank(baseParam.getObjType()),Monitor::getObjType,objTypeIds) + .and(StrUtil.isNotBlank(baseParam.getSearchValue()), i -> i.like(Monitor::getName, baseParam.getSearchValue()) .or() .like(Monitor::getId, baseParam.getSearchValue()) diff --git a/pqs-user/user-api/src/main/java/com/njcn/user/api/DeptFeignClient.java b/pqs-user/user-api/src/main/java/com/njcn/user/api/DeptFeignClient.java index 5ceb62b67..d024bf45a 100644 --- a/pqs-user/user-api/src/main/java/com/njcn/user/api/DeptFeignClient.java +++ b/pqs-user/user-api/src/main/java/com/njcn/user/api/DeptFeignClient.java @@ -149,6 +149,10 @@ public interface DeptFeignClient { @PostMapping("/getDeptByCodeList") HttpResult> getDeptByCodeList(@RequestBody List list); + + @PostMapping("/getDeptInfoListByIds") + HttpResult> getDeptInfoListByIds(@RequestBody List deptIds); + /** * 获取所有的部门集合 * @author xy diff --git a/pqs-user/user-api/src/main/java/com/njcn/user/api/fallback/DeptFeignClientFallbackFactory.java b/pqs-user/user-api/src/main/java/com/njcn/user/api/fallback/DeptFeignClientFallbackFactory.java index 4098117a8..84444c104 100644 --- a/pqs-user/user-api/src/main/java/com/njcn/user/api/fallback/DeptFeignClientFallbackFactory.java +++ b/pqs-user/user-api/src/main/java/com/njcn/user/api/fallback/DeptFeignClientFallbackFactory.java @@ -135,6 +135,12 @@ public class DeptFeignClientFallbackFactory implements FallbackFactory> getDeptInfoListByIds(List deptIds) { + log.error("{}异常,降级处理,异常为:{}","根据部门ids获取部门集合:",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + @Override public HttpResult> getAllDept() { log.error("{}异常,降级处理,异常为:{}","获取所有单位:",cause.toString()); diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/controller/DeptController.java b/pqs-user/user-boot/src/main/java/com/njcn/user/controller/DeptController.java index a2ae0b1bf..81d1fc79b 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/controller/DeptController.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/controller/DeptController.java @@ -481,6 +481,22 @@ public class DeptController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } + + /** + * 根据部门ids获取部门集合 + * @author cdf + * @date 2024/2/29 + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @PostMapping("/getDeptInfoListByIds") + @ApiOperation("根据部门ids获取部门集合") + @ApiImplicitParam(name = "list", value = "code集合", required = true) + public HttpResult> getDeptInfoListByIds(@RequestBody List deptIds) { + String methodDescribe = getMethodDescribe("getDeptInfoListByIds"); + List result = deptService.getDeptInfoListByIds(deptIds); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + /** * 获取所有的部门集合 * @author xy diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/service/IDeptService.java b/pqs-user/user-boot/src/main/java/com/njcn/user/service/IDeptService.java index 038c4b0cd..4f5cbcfd7 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/service/IDeptService.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/service/IDeptService.java @@ -238,6 +238,9 @@ public interface IDeptService extends IService { */ List getDeptByCodeList(List list); + + List getDeptInfoListByIds(List deptIds); + /** * @Description: 获取所有单位 * @Author: xuyang diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/DeptServiceImpl.java b/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/DeptServiceImpl.java index c74bfe126..4cdd7a1a1 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/DeptServiceImpl.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/DeptServiceImpl.java @@ -184,7 +184,7 @@ public class DeptServiceImpl extends ServiceImpl implements ID List deptType = WebUtil.filterDeptType(); String deptIndex = RequestUtil.getDeptIndex(); List deptList = this.baseMapper.getDeptTree(deptIndex, deptType); - List finalDeptList = deptList.stream().filter(item->deptIds.contains(item.getCode())).collect(Collectors.toList()); + List finalDeptList = deptList.stream().filter(item->deptIds.contains(item.getId())).collect(Collectors.toList()); return finalDeptList.stream() .filter(deptVO -> deptVO.getId().equals(deptIndex)) .peek(deptFirst -> deptFirst.setChildren(getChildren(deptFirst, finalDeptList))) @@ -492,6 +492,11 @@ public class DeptServiceImpl extends ServiceImpl implements ID return this.lambdaQuery().in(Dept::getCode,list).eq(Dept::getState,DataStateEnum.ENABLE.getCode()).list(); } + @Override + public List getDeptInfoListByIds(List deptIds) { + return this.lambdaQuery().in(Dept::getId,deptIds).eq(Dept::getState,DataStateEnum.ENABLE.getCode()).list(); + } + @Override public List getAllDept() { return this.lambdaQuery().eq(Dept::getState,DataStateEnum.ENABLE.getCode()).list();