diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/WlRecordParam.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/WlRecordParam.java index 564a2f9..c9d068e 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/WlRecordParam.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/WlRecordParam.java @@ -112,6 +112,10 @@ public class WlRecordParam { @ApiModelProperty("测试项结束时间") private String itemEndTime; + @ApiModelProperty("数据来源 0:补召 1:在线监测 ") + private Integer dataSource; + + } } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DataGroupEventVO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DataGroupEventVO.java index 5e222fd..01abe4f 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DataGroupEventVO.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DataGroupEventVO.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; + import java.time.LocalDateTime; /** @@ -12,7 +13,7 @@ import java.time.LocalDateTime; * @date 2023/6/19 */ @Data -public class DataGroupEventVO { +public class DataGroupEventVO { @ApiModelProperty("id") private String id; @@ -26,6 +27,12 @@ public class DataGroupEventVO { @ApiModelProperty("监测点名称") private String lineName; + @ApiModelProperty("装置ID") + private String deviceId; + + @ApiModelProperty("装置名称") + private String devName; + @ApiModelProperty("项目名称") private String projectName; diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/RecordVo.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/RecordVo.java index 1496e2c..1a38f23 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/RecordVo.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/RecordVo.java @@ -22,6 +22,9 @@ public class RecordVo { @ApiModelProperty("名称") private String itemName; + @ApiModelProperty("监测点id") + private String lineId; + @ApiModelProperty("数据起始时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime startTime; diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/line/CslineController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/line/CslineController.java index 0c0494a..e08d1ad 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/line/CslineController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/line/CslineController.java @@ -139,7 +139,6 @@ public class CslineController extends BaseController { @PostMapping("/getById") @ApiOperation("根据监测点id获取监测点详情") @ApiImplicitParam(name = "lineId", value = "监测点id", required = true) - @ApiIgnore public HttpResult getById(@RequestParam String lineId) { String methodDescribe = getMethodDescribe("getById"); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/scheme/WlRecordController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/scheme/WlRecordController.java index fba7dbc..5a2e5fb 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/scheme/WlRecordController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/scheme/WlRecordController.java @@ -246,6 +246,5 @@ public class WlRecordController extends BaseController { List result = wlRecordService.getWlAssByWlId(wlId); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } - } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataSetServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataSetServiceImpl.java index f1a8be0..463999f 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataSetServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataSetServiceImpl.java @@ -9,7 +9,6 @@ import com.njcn.csdevice.service.ICsDataSetService; import org.springframework.stereotype.Service; import java.util.Arrays; -import java.util.Collections; import java.util.Comparator; import java.util.List; @@ -40,7 +39,7 @@ public class CsDataSetServiceImpl extends ServiceImpli.eq(CsDataSet::getDataType,"Stat").or().isNull(CsDataSet::getDataType)) - .orderByAsc(CsDataSet::getType,CsDataSet::getClDev) + .orderByAsc(CsDataSet::getIdx) .list(); } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java index 1f0551d..5d3c0d9 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java @@ -382,47 +382,17 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl csLinePOS = csLinePOService.findByNdid(csEquipmentDeliveryPo.getNdid()); @@ -432,6 +402,14 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl dataSetList, CsDataSet item, String name, String type) { + DeviceManagerVO.DataSetVO dataSetVO = new DeviceManagerVO.DataSetVO(); + dataSetVO.setId(item.getId()); + dataSetVO.setName(name); + dataSetVO.setType(type); + dataSetList.add(dataSetVO); + } + @Override public void updateSoftInfoBynDid(String nDid, String id, Integer module) { boolean result; diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLedgerServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLedgerServiceImpl.java index 21257df..f08b353 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLedgerServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLedgerServiceImpl.java @@ -16,16 +16,15 @@ import com.njcn.csdevice.pojo.param.CsLedgerParam; import com.njcn.csdevice.pojo.po.*; import com.njcn.csdevice.pojo.vo.CsLedgerVO; import com.njcn.csdevice.service.*; -import com.njcn.oss.utils.FileStorageUtil; import com.njcn.redis.utils.RedisUtil; import com.njcn.system.api.AreaFeignClient; -import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.pojo.po.Area; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -40,15 +39,12 @@ import java.util.stream.Collectors; @AllArgsConstructor public class CsLedgerServiceImpl extends ServiceImpl implements ICsLedgerService { - private final ICsEngineeringUserService csEngineeringUserService; private final AreaFeignClient areaFeignClient; private final RedisUtil redisUtil; private final AppTopologyDiagramMapper appTopologyDiagramMapper; private final AppProjectMapper appProjectMapper; private final CsEngineeringMapper csEngineeringMapper; private final CsLinePOService csLinePOService; - private final DicDataFeignClient dicDataFeignClient; - private final FileStorageUtil fileStorageUtil; private final RoleEngineerDevService roleEngineerDevService; private final CsDevModelRelationService csDevModelRelationService; private final CsEquipmentDeliveryMapper csEquipmentDeliveryMapper; @@ -77,17 +73,29 @@ public class CsLedgerServiceImpl extends ServiceImpl i List roleengineer = roleEngineerDevService.getRoleengineer(); List device = roleEngineerDevService.getDevice(); engineeringList = allList.stream().filter(item->roleengineer.contains(item.getId())).collect(Collectors.toList()); - List projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList()); - List deviceList = allList.stream().filter(item -> device.contains(item.getId()) && !Objects.equals(item.getPid(),"0")). - peek( - temp->{ - CsEquipmentDeliveryPO csEquipmentDeliveryPO = csEquipmentDeliveryMapper.selectById(temp.getId()); - temp.setComFlag(csEquipmentDeliveryPO.getRunStatus()); - temp.setType("device"); - } - ). - sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList()); + + Map poMap = allList.stream() + .filter(item -> device.contains(item.getId()) && !Objects.equals(item.getPid(), "0")) + .map(CsLedgerVO::getId) + .distinct() + .collect(Collectors.toMap( + Function.identity(), + csEquipmentDeliveryMapper::selectById + )); + + List deviceList = allList.stream() + .filter(item -> device.contains(item.getId()) && !Objects.equals(item.getPid(), "0")) + .peek(item -> { + CsEquipmentDeliveryPO po = poMap.get(item.getId()); + item.setComFlag(po.getRunStatus()); + item.setNDId(po.getNdid()); + item.setType("device"); + }) + .filter(item -> Objects.equals(poMap.get(item.getId()).getUsageStatus(), 1)) + .sorted(Comparator.comparing(CsLedgerVO::getSort)) + .collect(Collectors.toList()); + List finalLineList = allList.stream() .filter(item -> item.getLevel().equals(LineBaseEnum.LINE_LEVEL.getCode())) .sorted(Comparator.comparing(CsLedgerVO::getSort)) @@ -185,17 +193,28 @@ public class CsLedgerServiceImpl extends ServiceImpl i List device = roleEngineerDevService.getDevice(); engineeringList = allList.stream().filter(item->roleengineer.contains(item.getId())).collect(Collectors.toList()); List projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList()); - List deviceList = allList.stream().filter(item -> device.contains(item.getId()) && !Objects.equals(item.getPid(),"0")). - peek( - temp->{ - CsEquipmentDeliveryPO po = csEquipmentDeliveryMapper.selectById(temp.getId()); - temp.setComFlag(po.getRunStatus()); - temp.setNDId(po.getNdid()); - temp.setType("device"); - } - ). - sorted(Comparator.comparing(CsLedgerVO::getSort)) + + Map poMap = allList.stream() + .filter(item -> device.contains(item.getId()) && !Objects.equals(item.getPid(), "0")) + .map(CsLedgerVO::getId) + .distinct() + .collect(Collectors.toMap( + Function.identity(), + csEquipmentDeliveryMapper::selectById + )); + + List deviceList = allList.stream() + .filter(item -> device.contains(item.getId()) && !Objects.equals(item.getPid(), "0")) + .peek(item -> { + CsEquipmentDeliveryPO po = poMap.get(item.getId()); + item.setComFlag(po.getRunStatus()); + item.setNDId(po.getNdid()); + item.setType("device"); + }) + .filter(item -> Objects.equals(poMap.get(item.getId()).getUsageStatus(), 1)) + .sorted(Comparator.comparing(CsLedgerVO::getSort)) .collect(Collectors.toList()); + checkDevSetData(deviceList); projectList.forEach(pro -> pro.setChildren(getChildren(pro, deviceList))); engineeringList.forEach(eng -> eng.setChildren(getChildren(eng, projectList))); diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/PortableOfflLogServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/PortableOfflLogServiceImpl.java index 963a153..b74e3a5 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/PortableOfflLogServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/PortableOfflLogServiceImpl.java @@ -2,6 +2,7 @@ package com.njcn.csdevice.service.impl; import cn.hutool.core.util.IdUtil; import com.alibaba.nacos.shaded.com.google.gson.Gson; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.tocrhz.mqtt.publisher.MqttPublisher; @@ -12,9 +13,11 @@ import com.njcn.csdevice.constant.DataParam; import com.njcn.csdevice.enums.AlgorithmResponseEnum; import com.njcn.csdevice.mapper.PortableOfflLogMapper; import com.njcn.csdevice.pojo.dto.CsEquipmentDeliveryDTO; +import com.njcn.csdevice.pojo.po.CsLinePO; import com.njcn.csdevice.pojo.po.PortableOffMainLog; import com.njcn.csdevice.pojo.po.PortableOfflLog; import com.njcn.csdevice.pojo.po.WlRecord; +import com.njcn.csdevice.service.CsLinePOService; import com.njcn.csdevice.service.IPortableOfflLogService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.csdevice.param.UploadDataParam; @@ -53,6 +56,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; import java.io.*; +import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.time.Instant; @@ -99,6 +103,7 @@ public class PortableOfflLogServiceImpl extends ServiceImpl queryPage(BaseParam baseParam) { @@ -175,6 +180,10 @@ public class PortableOfflLogServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(CsLinePO::getLineId,lineId).eq(CsLinePO::getStatus,1); + CsLinePO po = csLinePOService.getOne(queryWrapper); String cdid = uploadDataParam.getLineId().substring(uploadDataParam.getLineId().length() - 1); //第一步解析redcord.bin文件获取监测点序号做校验 List record = uploadDataParam.getFiles().stream().filter( @@ -304,25 +313,22 @@ public class PortableOfflLogServiceImpl extends ServiceImpl i lambdaQueryWrapper.eq(WlRecord::getLineId,param.getLineId()) .between(WlRecord::getStartTime,param.getItemStartTime(),param.getItemEndTime()) .eq(WlRecord::getType,1) - .eq(WlRecord::getState,1).orderByDesc(WlRecord::getStartTime); + .eq(WlRecord::getState,1) + .orderByDesc(WlRecord::getStartTime); + if (Objects.equals(param.getDataSource(),0)) { + lambdaQueryWrapper.eq(WlRecord::getItemName,"补召"); + } else if (Objects.equals(param.getDataSource(),1)) { + lambdaQueryWrapper.eq(WlRecord::getItemName,"在线监测"); + } List list = this.list(lambdaQueryWrapper); if (CollUtil.isNotEmpty(list)) { list.forEach(item->{ diff --git a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/param/DataParam.java b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/param/DataParam.java index 76fd699..51ffe21 100644 --- a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/param/DataParam.java +++ b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/param/DataParam.java @@ -26,4 +26,7 @@ public class DataParam implements Serializable { @ApiModelProperty("数据标志") private String dataLevel; + @ApiModelProperty("数据来源 0:补召 1:在线监测 ") + private Integer dataSource; + } diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/controller/DataController.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/controller/DataController.java index 8ba931b..5fea0de 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/controller/DataController.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/controller/DataController.java @@ -5,6 +5,7 @@ import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; +import com.njcn.csdevice.pojo.vo.DataGroupEventVO; import com.njcn.csdevice.pojo.vo.RecordVo; import com.njcn.csharmonic.param.DataParam; import com.njcn.csharmonic.pojo.vo.RealTimeDataVo; @@ -15,10 +16,7 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -53,4 +51,15 @@ public class DataController extends BaseController { List list = dataService.getTestData(param); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getEventByItem") + @ApiOperation("方案数据-》根据测试项获取暂态事件") + @ApiImplicitParam(name = "id", value = "id", required = true) + public HttpResult> getEventByItem(@RequestParam("id") String id) { + String methodDescribe = getMethodDescribe("getEventByItem"); + List list = dataService.getEventByItem(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + } diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/CsEventPOService.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/CsEventPOService.java index 4c00290..9172b84 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/CsEventPOService.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/CsEventPOService.java @@ -11,6 +11,7 @@ import com.njcn.csharmonic.pojo.vo.EventDetailVO; import com.njcn.event.file.pojo.dto.WaveDataDTO; import javax.servlet.http.HttpServletResponse; +import java.time.LocalDateTime; import java.util.List; /** @@ -49,4 +50,6 @@ public interface CsEventPOService extends IService{ void saveBatchEventList(List csEventPOS); void getFileZip(String eventId,HttpServletResponse response); + + List queryEventList(LocalDateTime startDate, LocalDateTime endDate, String lineId); } diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/IDataService.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/IDataService.java index b5a95c6..540ec31 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/IDataService.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/IDataService.java @@ -1,5 +1,6 @@ package com.njcn.csharmonic.service; +import com.njcn.csdevice.pojo.vo.DataGroupEventVO; import com.njcn.csdevice.pojo.vo.RecordVo; import com.njcn.csharmonic.param.DataParam; import com.njcn.csharmonic.pojo.vo.RealTimeDataVo; @@ -23,4 +24,9 @@ public interface IDataService { */ List getTestData(DataParam param); + /** + * 根据测试项id获取时间范围内的暂态事件 + */ + List getEventByItem(String id); + } diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventPOServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventPOServiceImpl.java index 9eb0c0b..3ec1e8c 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventPOServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventPOServiceImpl.java @@ -53,6 +53,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; +import java.time.LocalDateTime; import java.util.*; @@ -206,6 +207,20 @@ public class CsEventPOServiceImpl extends ServiceImpl queryEventList(LocalDateTime startDate, LocalDateTime endDate, String lineId) { + List dataGroupEventVOList = new ArrayList<>(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(CsEventPO::getLineId,lineId) + .eq(CsEventPO::getType,0).between(CsEventPO::getStartTime,startDate,endDate) + .orderByDesc(CsEventPO::getStartTime); + List pos = this.baseMapper.selectList(lambdaQueryWrapper); + if(CollUtil.isNotEmpty(pos)){ + dataGroupEventVOList = BeanUtil.copyToList(pos,DataGroupEventVO.class); + } + return dataGroupEventVOList; + } + /** * @return WaveDataDTO diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/DataServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/DataServiceImpl.java index 032b182..91d87c5 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/DataServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/DataServiceImpl.java @@ -1,27 +1,38 @@ package com.njcn.csharmonic.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.LocalDateTimeUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.njcn.csdevice.api.CsLineFeignClient; +import com.njcn.csdevice.api.EquipmentFeignClient; import com.njcn.csdevice.api.WlRecordFeignClient; +import com.njcn.csdevice.pojo.dto.CsEquipmentDeliveryDTO; import com.njcn.csdevice.pojo.param.WlRecordParam; +import com.njcn.csdevice.pojo.param.WlRecordTemplete; import com.njcn.csdevice.pojo.po.CsDataSet; +import com.njcn.csdevice.pojo.po.CsLedger; import com.njcn.csdevice.pojo.po.CsLinePO; +import com.njcn.csdevice.pojo.po.WlRecord; +import com.njcn.csdevice.pojo.vo.DataGroupEventVO; import com.njcn.csdevice.pojo.vo.RecordVo; import com.njcn.csdevice.utils.DataChangeUtil; +import com.njcn.csharmonic.api.EventFeignClient; import com.njcn.csharmonic.constant.HarmonicConstant; import com.njcn.csharmonic.mapper.CsDataSetMapper; import com.njcn.csharmonic.param.DataParam; import com.njcn.csharmonic.pojo.vo.RealTimeDataVo; +import com.njcn.csharmonic.service.CsEventPOService; import com.njcn.csharmonic.service.IDataService; import com.njcn.csharmonic.util.InfluxDbParamUtil; +import com.njcn.influx.pojo.dto.EventDataSetDTO; import com.njcn.influx.pojo.dto.StatisticalDataDTO; import com.njcn.influx.service.CommonService; -import com.njcn.system.api.CsStatisticalSetFeignClient; -import com.njcn.system.api.DictTreeFeignClient; +import com.njcn.influx.service.EvtDataService; +import com.njcn.system.api.*; import com.njcn.system.pojo.po.EleEpdPqd; +import com.njcn.system.pojo.po.EleEvtParm; import com.njcn.system.pojo.vo.DictTreeVO; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; @@ -49,7 +60,12 @@ public class DataServiceImpl implements IDataService { private final CsLineFeignClient csLineFeignClient; private final CsDataSetMapper csDataSetMapper; private final WlRecordFeignClient wlRecordFeignClient; + private final CsEventPOService csEventPOService; private final DecimalFormat df = new DecimalFormat("#0.00"); + private final EpdFeignClient epdFeignClient; + private final EvtDataService evtDataService; + private final EleEvtFeignClient eleEvtFeignClient; + private final EquipmentFeignClient equipmentFeignClient; @Override public List getRealTimeData(DataParam param) { @@ -97,9 +113,78 @@ public class DataServiceImpl implements IDataService { String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(param.getEndTime(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); record.setItemStartTime(beginDay); record.setItemEndTime(endDay); + record.setDataSource(param.getDataSource()); return wlRecordFeignClient.findDevBaseDataByLineId(record).getData(); } + @Override + public List getEventByItem(String id) { + List result = new ArrayList<>(); + List list = wlRecordFeignClient.getWlAssByWlId(id).getData(); + if (CollUtil.isNotEmpty(list)) { + list.forEach(item->{ + List eventList = csEventPOService.queryEventList(item.getStartTime(),item.getEndTime(),item.getLineId()); + result.addAll(eventList); + }); + } + if (CollUtil.isNotEmpty(result)) { + result.forEach(temp->{ + String lineName = csLineFeignClient.getById(temp.getLineId()).getData().getName(); + temp.setLineName(lineName); + List dto = equipmentFeignClient.queryDeviceById(Collections.singletonList(temp.getDeviceId())).getData(); + if (CollUtil.isNotEmpty(dto)) { + String devName = dto.get(0).getName(); + temp.setDevName(devName); + } + + EleEpdPqd ele = epdFeignClient.findByName(temp.getTag()).getData(); + if(ele!=null){ + temp.setShowName(ele.getShowName()); + //相别 + List data1 = eleEvtFeignClient.queryByPid(ele.getId()).getData(); + List eventDataSetDTOS = new ArrayList<>(); + for (EleEvtParm eleEvtParm : data1) { + EventDataSetDTO eventDataSetDTO = new EventDataSetDTO(); + BeanUtils.copyProperties(eleEvtParm,eventDataSetDTO); + EventDataSetDTO evtData = evtDataService.getEventDataSet(com.njcn.csdevice.constant.DataParam.evtData, temp.getId(), eleEvtParm.getName()); + if (evtData == null) { + eventDataSetDTO.setValue("-"); + }else { + eventDataSetDTO.setValue(Optional.ofNullable(evtData.getValue()).orElse("-")); + } + eventDataSetDTOS.add(eventDataSetDTO); + } + List evtParamPhase = eventDataSetDTOS.stream(). + filter(dataSetDTO -> Objects.equals(dataSetDTO.getName(), com.njcn.csdevice.constant.DataParam.EvtParamPhase)). + collect(Collectors.toList()); + if(CollectionUtil.isEmpty(evtParamPhase)){ + temp.setPhaseType(null); + }else { + temp.setPhaseType(evtParamPhase.get(0).getValue()+(Objects.isNull(evtParamPhase.get(0).getUnit())?"":evtParamPhase.get(0).getUnit())); + } + + List evtParamDepth = eventDataSetDTOS.stream(). + filter(dataSetDTO -> Objects.equals(dataSetDTO.getName(), com.njcn.csdevice.constant.DataParam.EvtParamDepth)). + collect(Collectors.toList()); + if(CollectionUtil.isEmpty(evtParamDepth)){ + temp.setFeatureAmplitude(null); + }else { + temp.setFeatureAmplitude("-".equals(evtParamDepth.get(0).getValue())?null:Float.parseFloat(evtParamDepth.get(0).getValue())); + } + List evtParmTm = eventDataSetDTOS.stream(). + filter(dataSetDTO -> Objects.equals(dataSetDTO.getName(), com.njcn.csdevice.constant.DataParam.EVTPARAMTM)). + collect(Collectors.toList()); + if(CollectionUtil.isEmpty(evtParamDepth)){ + temp.setPersistTime(null); + }else { + temp.setPersistTime("-".equals(evtParmTm.get(0).getValue())?null:Double.parseDouble(evtParmTm.get(0).getValue())); + } + } + }); + } + return result; + } + //基础数据 public RealTimeDataVo getBaseData(EleEpdPqd item2, String lineId, String dataLevel, String csDataSetLevel,Double pt, Double ct) { RealTimeDataVo vo = new RealTimeDataVo();