| | |
| | | @RequestParam(name = "timeCode") String timeCode) { |
| | | EnergyIndex energyIndex = energyIndexService.getDeviceIndexByCode(nodeId, meterId, CommonConst.TAG_CODE_ZYGGL); |
| | | |
| | | ListElectricLoadVO vo = electricLoadService.list(timeType, timeCode, energyIndex); |
| | | ListElectricLoadVO vo = electricLoadService.list(timeType, timeCode, energyIndex, meterId); |
| | | return AjaxResult.success(vo); |
| | | } |
| | | |
| | |
| | | /** |
| | | * æ»æååçç¹ä½æ¨¡æ¿code |
| | | */ |
| | | public static final String TAG_CODE_ZYGGL = "\\_ActivePower_Total"; |
| | | public static final String TAG_CODE_ZYGGL = "ActivePow"; |
| | | /** |
| | | * æ»æååçç¹ä½æ¨¡æ¿code |
| | | */ |
| | |
| | | /** |
| | | * è·åè´è·åææ°æ® |
| | | */ |
| | | ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex); |
| | | ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex, String meterId); |
| | | |
| | | /** |
| | | * è·åèç¹ä¸ææçµè¡¨ |
| | |
| | | private MeterImplementMapper meterImplementMapper; |
| | | |
| | | @Override |
| | | public ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex) { |
| | | public ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex, String meterId) { |
| | | ListElectricLoadVO vo = new ListElectricLoadVO(); |
| | | List<ListElectricLoadItem> itemList = new ArrayList<>(); |
| | | vo.setItemList(itemList); |
| | |
| | | detail.setRate(CommonConst.DOUBLE_MINUS_SIGN); |
| | | vo.setDetail(detail); |
| | | |
| | | MeterImplement meterImplement = meterImplementMapper.selectById(energyIndex.getMeterId()); |
| | | MeterImplement meterImplement = meterImplementMapper.selectById(meterId); |
| | | |
| | | if (ObjectUtil.isEmpty(meterImplement)) { |
| | | return vo; |
| | |
| | | |
| | | Page<EnergyIndex> selectEnergyIndexPage(@Param("page")Page<?> page, @Param("query") EnergyIndexQuery energyIndexQuery); |
| | | |
| | | List<EnergyIndex> getIndexByCode(@Param("code")String code, @Param("nodeId")String nodeId); |
| | | List<EnergyIndex> getIndexByCode(@Param("code")String code, @Param("nodeId")String nodeId); |
| | | |
| | | List<EnergyIndex> getIndexByMeterIdIndexCode(@Param("meterId") String meterId, @Param("indexCode") String indexCode, @Param("nodeId") String nodeId); |
| | | } |
| | |
| | | * @return |
| | | */ |
| | | public List<EnergyIndex> listDeviceIndexByCode(String nodeId, String meterId, String indexCode) { |
| | | return energyIndexMapper.selectList(Wrappers.<EnergyIndex>lambdaQuery() |
| | | .eq(EnergyIndex::getNodeId, nodeId) |
| | | .eq(EnergyIndex::getMeterId, meterId) |
| | | .like(EnergyIndex::getCode, indexCode)); |
| | | List<EnergyIndex> energyIndexList = energyIndexMapper.getIndexByMeterIdIndexCode(meterId,indexCode,nodeId); |
| | | return energyIndexList; |
| | | } |
| | | |
| | | /** |
| | |
| | | import com.zhitan.common.enums.CollectionModes; |
| | | import com.zhitan.common.enums.GroupTimeType; |
| | | import com.zhitan.common.enums.RetrievalModes; |
| | | import com.zhitan.realtimedata.data.RealtimeDatabaseManager; |
| | | import com.zhitan.realtimedata.data.influxdb.InfluxDBRepository; |
| | | import com.zhitan.realtimedata.domain.TagValue; |
| | | import com.zhitan.realtimedata.service.RealtimeDatabaseService; |
| | | import org.apache.commons.collections4.CollectionUtils; |
| | | import org.joda.time.DateTime; |
| | | import org.joda.time.Seconds; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.*; |
| | |
| | | |
| | | private final InfluxDBRepository repository; |
| | | |
| | | private final RealtimeDatabaseManager realtimeDatabaseManager; |
| | | |
| | | public RealtimeDatabaseServiceImpl(InfluxDBRepository repository, RealtimeDatabaseManager realtimeDatabaseManager) { |
| | | public RealtimeDatabaseServiceImpl(InfluxDBRepository repository |
| | | ) { |
| | | this.repository = repository; |
| | | this.realtimeDatabaseManager = realtimeDatabaseManager; |
| | | } |
| | | |
| | | /** |
| | |
| | | @Override |
| | | public List<TagValue> retrieve(String tagCode, Date beginTime, Date endTime, |
| | | RetrievalModes retrievalModes, int pointCount) { |
| | | return realtimeDatabaseManager.retrieve(tagCode, beginTime, endTime, retrievalModes, pointCount); |
| | | repository.getHistoryData(Collections.singletonList(tagCode), beginTime, endTime, pointCount); |
| | | pointCount = retrievalModes == RetrievalModes.Full ? 200 : pointCount; |
| | | int span = |
| | | Seconds.secondsBetween(new DateTime(beginTime), new DateTime(endTime)).getSeconds(); |
| | | int interval = span / pointCount; |
| | | List<String> tagCodes = new ArrayList<>(); |
| | | tagCodes.add(tagCode); |
| | | List<TagValue> historyData = repository.getHistoryData(tagCodes, beginTime, endTime, interval); |
| | | return historyData; |
| | | // return realtimeDatabaseManager.retrieve(tagCode, beginTime, endTime, retrievalModes, pointCount); |
| | | } |
| | | } |
| | |
| | | </if> |
| | | </where> |
| | | </select> |
| | | <select id="getIndexByMeterIdIndexCode" resultType="com.zhitan.model.domain.EnergyIndex"> |
| | | SELECT ei.code,mi.meter_name||'_'||ei.name as name from energy_index ei |
| | | LEFT JOIN node_device nd on ei.meter_id = nd.device_id |
| | | LEFT JOIN meter_implement mi on mi."id" = nd.device_id |
| | | <where> |
| | | <if test="nodeId != null and nodeId != ''">and nd.node_id = #{nodeId}</if> |
| | | <if test="indexCode != null and indexCode != ''"> |
| | | and (mi.meter_name like concat('%', #{indexCode}, '%') |
| | | or ei.code like concat('%', #{indexCode}, '%') |
| | | or ei.name like concat('%', #{indexCode}, '%') |
| | | ) |
| | | </if> |
| | | <if test="meterId != null and meterId != ''"> |
| | | and ei.meter_id = #{meterId} |
| | | </if> |
| | | </where> |
| | | </select> |
| | | </mapper> |