diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsLedgerFeignClient.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsLedgerFeignClient.java index 38a3f4d..71af3a0 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsLedgerFeignClient.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsLedgerFeignClient.java @@ -7,6 +7,7 @@ import com.njcn.csdevice.pojo.dto.DevDetailDTO; import com.njcn.csdevice.pojo.dto.LineParamDTO; import com.njcn.csdevice.pojo.param.CsLedgerParam; import com.njcn.csdevice.pojo.po.CsLedger; +import com.njcn.csdevice.pojo.vo.CsLedgerVO; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; @@ -34,4 +35,8 @@ public interface CsLedgerFeignClient { @PostMapping("/queryDevDetail") HttpResult queryDevDetail(@RequestParam("devId") String devId); + + @PostMapping("/deviceTree") + @ApiOperation("三层设备树(装置层)") + HttpResult> getDeviceTree(); } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsLedgerFeignClientFallbackFactory.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsLedgerFeignClientFallbackFactory.java index 06d6fcc..0d402ee 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsLedgerFeignClientFallbackFactory.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsLedgerFeignClientFallbackFactory.java @@ -8,6 +8,7 @@ import com.njcn.csdevice.pojo.dto.DevDetailDTO; import com.njcn.csdevice.pojo.dto.LineParamDTO; import com.njcn.csdevice.pojo.param.CsLedgerParam; import com.njcn.csdevice.pojo.po.CsLedger; +import com.njcn.csdevice.pojo.vo.CsLedgerVO; import com.njcn.csdevice.utils.CsDeviceEnumUtil; import feign.hystrix.FallbackFactory; import lombok.extern.slf4j.Slf4j; @@ -55,6 +56,12 @@ public class CsLedgerFeignClientFallbackFactory implements FallbackFactory> getDeviceTree() { + log.error("{}异常,降级处理,异常为:{}","查询设备树",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } }; } } diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/CsEventUserPOMapper.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/CsEventUserPOMapper.java index c85348b..cc1c74c 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/CsEventUserPOMapper.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/CsEventUserPOMapper.java @@ -1,6 +1,8 @@ package com.njcn.csharmonic.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.csharmonic.param.CsEventUserQueryPage; import com.njcn.csharmonic.param.CsEventUserQueryParam; import com.njcn.csharmonic.pojo.po.CsEventUserPO; import com.njcn.csharmonic.pojo.vo.EventDetailVO; @@ -20,4 +22,6 @@ public interface CsEventUserPOMapper extends BaseMapper { Integer queryEventCount(@Param("csEventUserQueryParam") CsEventUserQueryParam csEventUserQueryParam); List queryUserEventList(@Param("csEventUserQueryParam") CsEventUserQueryParam csEventUserQueryParam); + + Page queryEventpage(Page returnpage, @Param("csEventUserQueryPage") CsEventUserQueryPage csEventUserQueryPage, @Param("devIds") List devIds); } \ No newline at end of file diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventUserPOMapper.xml b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventUserPOMapper.xml index e6e23e4..1f7f565 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventUserPOMapper.xml +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventUserPOMapper.xml @@ -62,4 +62,41 @@ order by create_time desc + + \ No newline at end of file diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventUserPOServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventUserPOServiceImpl.java index f65d4a2..bcea37f 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventUserPOServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventUserPOServiceImpl.java @@ -6,8 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.pojo.constant.LogInfo; import com.njcn.csdevice.api.CsLedgerFeignClient; import com.njcn.csdevice.pojo.dto.DevDetailDTO; -import com.njcn.csdevice.pojo.po.AppTopologyDiagramPO; -import com.njcn.csdevice.pojo.vo.AppTopologyDiagramVO; + +import com.njcn.csdevice.pojo.vo.CsLedgerVO; import com.njcn.csharmonic.param.CsEventUserQueryPage; import com.njcn.csharmonic.param.CsEventUserQueryParam; import com.njcn.csharmonic.pojo.vo.EventDetailVO; @@ -16,22 +16,17 @@ import com.njcn.influx.service.EvtDataService; import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.api.EleEvtFeignClient; import com.njcn.system.api.EpdFeignClient; -import com.njcn.system.enums.DicDataTypeEnum; -import com.njcn.system.pojo.po.DictData; + import com.njcn.system.pojo.po.EleEpdPqd; import com.njcn.system.pojo.po.EleEvtParm; import com.njcn.user.enums.AppRoleEnum; import com.njcn.web.utils.RequestUtil; import lombok.RequiredArgsConstructor; -import org.apache.poi.ss.formula.functions.T; + import org.springframework.beans.BeanUtils; -import org.springframework.data.domain.PageImpl; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -91,29 +86,154 @@ public class CsEventUserPOServiceImpl extends ServiceImpl list = this.getBaseMapper().queryUserEventList(csEventUserQueryParam); + // 主要用于统计不关心详情,详情重分页查询获取 +// list.forEach(temp->{ +// DevDetailDTO devDetail = csLedgerFeignClient.queryDevDetail(temp.getDeviceId()).getData(); +// temp.setEquipmentName(devDetail.getEquipmentName()); +// temp.setProjectId(devDetail.getProjectId()); +// temp.setProjectName(devDetail.getProjectName()); +// temp.setEngineeringid(devDetail.getEngineeringid()); +// temp.setEngineeringName(devDetail.getEngineeringName()); +// EleEpdPqd data = epdFeignClient.findByName(temp.getTag()).getData(); +// temp.setShowName(data.getShowName()); +// +// if(Objects.equals(csEventUserQueryParam.getType(),"0")){ +// List data1 = eleEvtFeignClient.queryByPid(data.getId()).getData(); +// List eventDataSetDTOS = new ArrayList<>(); +// for (EleEvtParm eleEvtParm : data1) { +// EventDataSetDTO eventDataSetDTO = new EventDataSetDTO(); +// BeanUtils.copyProperties(eleEvtParm,eventDataSetDTO); +// EventDataSetDTO evtData = evtDataService.getEventDataSet("evt_data", temp.getId(), eleEvtParm.getName()); +// if (evtData == null) { +// eventDataSetDTO.setValue("-"); +// }else { +// eventDataSetDTO.setValue(Optional.ofNullable(evtData.getValue()).orElse("-")); +// +// } +// +// eventDataSetDTOS.add(eventDataSetDTO); +// } +// temp.setDataSet(eventDataSetDTOS); +// +// List evtParamVVaDepth = eventDataSetDTOS.stream(). +// filter(dataSetDTO -> Objects.equals(dataSetDTO.getName(), "Evt_Param_VVaDepth")). +// collect(Collectors.toList()); +// if(CollectionUtil.isEmpty(evtParamVVaDepth)){ +// temp.setEvtParamVVaDepth("-"); +// +// }else { +// temp.setEvtParamVVaDepth(evtParamVVaDepth.get(0).getValue()+(Objects.isNull(evtParamVVaDepth.get(0).getUnit())?"":evtParamVVaDepth.get(0).getUnit())); +// +// } +// +// List evtParamPosition = eventDataSetDTOS.stream(). +// filter(dataSetDTO -> Objects.equals(dataSetDTO.getName(), "Evt_Param_Position")). +// collect(Collectors.toList()); +// if(CollectionUtil.isEmpty(evtParamPosition)){ +// temp.setEvtParamPosition("-"); +// +// }else { +// temp.setEvtParamPosition(evtParamPosition.get(0).getValue()+(Objects.isNull(evtParamPosition.get(0).getUnit())?"":evtParamPosition.get(0).getUnit())); +// +// } +// +// List evtParamTm = eventDataSetDTOS.stream(). +// filter(dataSetDTO -> Objects.equals(dataSetDTO.getName(), "Evt_Param_Tm")). +// collect(Collectors.toList()); +// if(CollectionUtil.isEmpty(evtParamTm)){ +// temp.setEvtParamTm("-"); +// +// }else { +// temp.setEvtParamTm(evtParamTm.get(0).getValue()+(Objects.isNull(evtParamTm.get(0).getUnit())?"":evtParamTm.get(0).getUnit())); +// +// } +// +// List evtParamPhase = eventDataSetDTOS.stream(). +// filter(dataSetDTO -> Objects.equals(dataSetDTO.getName(), "Evt_Param_Phase")). +// collect(Collectors.toList()); +// if(CollectionUtil.isEmpty(evtParamPhase)){ +// temp.setEvtParamPhase("-"); +// +// }else { +// temp.setEvtParamPhase(evtParamPhase.get(0).getValue()+(Objects.isNull(evtParamPhase.get(0).getUnit())?"":evtParamPhase.get(0).getUnit())); +// +// } +// +// } +// +// }); - list.forEach(temp->{ + + return list; + } + + @Override + public void updateStatus(CsEventUserQueryParam csEventUserQueryParam) { + if(CollectionUtil.isEmpty(csEventUserQueryParam.getEventIds())){ + return; + } + csEventUserQueryParam.setUserId(RequestUtil.getUserIndex()); + this.lambdaUpdate().in(CsEventUserPO::getEventId,csEventUserQueryParam.getEventIds()). + eq(CsEventUserPO::getUserId,csEventUserQueryParam.getUserId()). + set(CsEventUserPO::getStatus,1).update(); + } + + @Override + public Page queryEventpage(CsEventUserQueryPage csEventUserQueryPage) { + Page returnpage = new Page<> (csEventUserQueryPage.getPageNum ( ), csEventUserQueryPage.getPageSize ( )); + + + csEventUserQueryPage.setUserId(RequestUtil.getUserIndex()); + String role = RequestUtil.getUserRole(); + if(Objects.equals(role, LogInfo.UNKNOWN_ROLE)){ + return returnpage; + } + List strings = JSONArray.parseArray(role, String.class); + if(CollectionUtils.isEmpty(strings)){ + return returnpage; + } + role=strings.get(0); + if( Objects.equals(role, AppRoleEnum.APP_VIP_USER.getCode())){ + csEventUserQueryPage.setLevel("3"); + } + if( Objects.equals(role, AppRoleEnum.OPERATION_MANAGER.getCode())||Objects.equals(role, AppRoleEnum.ROOT.getCode())){ + csEventUserQueryPage.setUserId(null); + } + List deviceId = new ArrayList<>(); + List data = csLedgerFeignClient.getDeviceTree().getData(); + + List collect = data.stream().filter(temp->StringUtils.isEmpty(csEventUserQueryPage.getEngineeringid())|| + Objects.equals(temp.getId(), csEventUserQueryPage.getEngineeringid())).map(CsLedgerVO::getChildren). + flatMap(Collection::stream).filter( + temp->StringUtils.isEmpty(csEventUserQueryPage.getProjectId())|| + Objects.equals(temp.getId(), csEventUserQueryPage.getProjectId()) + ). + map(CsLedgerVO::getChildren). + flatMap(Collection::stream).filter( + temp->StringUtils.isEmpty(csEventUserQueryPage.getDeviceId())|| + Objects.equals(temp.getId(), csEventUserQueryPage.getDeviceId()) + ). + map(CsLedgerVO::getId). + collect(Collectors.toList()); + if (CollectionUtils.isEmpty(collect)){ + return returnpage; + } + + + returnpage = this.getBaseMapper().queryEventpage(returnpage,csEventUserQueryPage,collect); + + returnpage.getRecords().forEach(temp->{ DevDetailDTO devDetail = csLedgerFeignClient.queryDevDetail(temp.getDeviceId()).getData(); temp.setEquipmentName(devDetail.getEquipmentName()); temp.setProjectId(devDetail.getProjectId()); temp.setProjectName(devDetail.getProjectName()); temp.setEngineeringid(devDetail.getEngineeringid()); temp.setEngineeringName(devDetail.getEngineeringName()); - EleEpdPqd data = epdFeignClient.findByName(temp.getTag()).getData(); - temp.setShowName(data.getShowName()); + EleEpdPqd ele = epdFeignClient.findByName(temp.getTag()).getData(); + temp.setShowName(ele.getShowName()); + if(Objects.equals(csEventUserQueryPage.getType(),"0")){ - }); - if(Objects.equals(csEventUserQueryParam.getType(),"0")){ - list.forEach(temp->{ - DevDetailDTO devDetail = csLedgerFeignClient.queryDevDetail(temp.getDeviceId()).getData(); - temp.setEquipmentName(devDetail.getEquipmentName()); - temp.setProjectId(devDetail.getProjectId()); - temp.setProjectName(devDetail.getProjectName()); - temp.setEngineeringid(devDetail.getEngineeringid()); - temp.setEngineeringName(devDetail.getEngineeringName()); - EleEpdPqd data = epdFeignClient.findByName(temp.getTag()).getData(); - temp.setShowName(data.getShowName()); - List data1 = eleEvtFeignClient.queryByPid(data.getId()).getData(); + List data1 = eleEvtFeignClient.queryByPid(ele.getId()).getData(); List eventDataSetDTOS = new ArrayList<>(); for (EleEvtParm eleEvtParm : data1) { EventDataSetDTO eventDataSetDTO = new EventDataSetDTO(); @@ -173,56 +293,14 @@ public class CsEventUserPOServiceImpl extends ServiceImpl queryEventpage(CsEventUserQueryPage csEventUserQueryPage) { - Page returnpage = new Page<> (csEventUserQueryPage.getPageNum ( ), csEventUserQueryPage.getPageSize ( )); - List list = this.queryUserEventList(csEventUserQueryPage); - if(!StringUtils.isEmpty(csEventUserQueryPage.getEngineeringid())){ - list =list.stream().filter(temp->Objects.equals(temp.getEngineeringid(),csEventUserQueryPage.getEngineeringid())).collect(Collectors.toList()); - } - if(!StringUtils.isEmpty(csEventUserQueryPage.getProjectId())){ - list =list.stream().filter(temp->Objects.equals(temp.getProjectId(),csEventUserQueryPage.getProjectId())).collect(Collectors.toList()); - } - if(!StringUtils.isEmpty(csEventUserQueryPage.getDeviceId())){ - list =list.stream().filter(temp->Objects.equals(temp.getDeviceId(),csEventUserQueryPage.getDeviceId())).collect(Collectors.toList()); - } - List list1 = this.startPage(list, csEventUserQueryPage.getPageNum(), csEventUserQueryPage.getPageSize()); - returnpage.setRecords (list1); - returnpage.setTotal(list.size()); return returnpage; } - - public List startPage(List list, Integer pageNum, - Integer pageSize) { - int total = list.size(); - int size = pageNum * pageSize > total ? total : pageNum * pageSize; - - int startNum = (pageNum - 1) * pageSize; - if (startNum > size){ - startNum = 1; - } - List dataList = list.subList(startNum, size); - return dataList; - } - }