Merge branch 'master' of http://dlindusit.com:53929/r/iailab-plat
| | |
| | | package com.iailab.module.data.api.point; |
| | | |
| | | import com.iailab.framework.common.pojo.PageResult; |
| | | import com.iailab.module.data.api.point.dto.*; |
| | | import com.iailab.module.data.enums.ApiConstants; |
| | | import io.swagger.v3.oas.annotations.Operation; |
| | |
| | | @Operation(summary = "写入单个测点值") |
| | | Boolean writePointRealValue(@RequestBody ApiPointValueWriteDTO queryDto); |
| | | |
| | | |
| | | @GetMapping(PREFIX + "/info/nos/{pointNo}") |
| | | @Operation(summary = "根据计算点编号查询测点集合") |
| | | PageResult<ApiPointDTO> getPageByNo(@PathVariable("pointNo") String pointNo); |
| | | } |
| | |
| | | |
| | | @Schema(description = "采集频率", required = true) |
| | | private String minfreqid; |
| | | |
| | | @Schema(description = "当前值", required = false) |
| | | private Object currentValue; |
| | | } |
| | |
| | | package com.iailab.module.data.api.controller.admin; |
| | | |
| | | import com.iailab.framework.common.pojo.CommonResult; |
| | | import com.iailab.framework.common.pojo.PageResult; |
| | | import com.iailab.framework.common.util.date.DateUtils; |
| | | import com.iailab.framework.common.util.object.BeanUtils; |
| | | import com.iailab.framework.common.util.object.ConvertUtils; |
| | | import com.iailab.framework.excel.core.util.ExcelUtils; |
| | | import com.iailab.module.data.api.dto.DeviceValueDTO; |
| | |
| | | import com.iailab.module.data.api.plan.PlanItemApi; |
| | | import com.iailab.module.data.api.plan.dto.ApiPlanDataDTO; |
| | | import com.iailab.module.data.api.point.DataPointApi; |
| | | import com.iailab.module.data.api.point.dto.ApiPointDTO; |
| | | import com.iailab.module.data.api.point.dto.ApiPointValueDTO; |
| | | import com.iailab.module.data.api.point.dto.ApiPointValueQueryDTO; |
| | | import com.iailab.module.data.api.point.dto.ApiPointsValueQueryDTO; |
| | |
| | | List<IndItemValueVO> list = indItemCollector.queryValue(dto.getItemNo(), dto.getStart(), dto.getEnd()); |
| | | return success(ConvertUtils.sourceToTarget(list, ApiIndItemValueDTO.class)); |
| | | } |
| | | |
| | | @PermitAll |
| | | @GetMapping("/query-points/info") |
| | | @Operation(summary = "根据计算点编号查询测点集合") |
| | | public CommonResult<PageResult<ApiPointDTO>> queryPageByNo(@RequestParam String pointNo) { |
| | | PageResult<ApiPointDTO> data = dataPointApi.getPageByNo(pointNo); |
| | | return success(data); |
| | | } |
| | | |
| | | } |
| | |
| | | package com.iailab.module.data.api.point; |
| | | |
| | | import com.iailab.framework.common.pojo.PageResult; |
| | | import com.iailab.framework.common.util.date.DateUtils; |
| | | import com.iailab.framework.common.util.object.ConvertUtils; |
| | | import com.iailab.module.data.api.point.dto.*; |
| | |
| | | import com.iailab.module.data.influxdb.service.InfluxDBService; |
| | | import com.iailab.module.data.influxdb.service.impl.InfluxDBServiceImpl; |
| | | import com.iailab.module.data.point.collection.PointCollector; |
| | | import com.iailab.module.data.point.dto.DaMathPointDTO; |
| | | import com.iailab.module.data.point.dto.DaPointDTO; |
| | | import com.iailab.module.data.point.dto.DaPointWriteValueDTO; |
| | | import com.iailab.module.data.point.service.DaMathPointService; |
| | | import com.iailab.module.data.point.service.DaPointService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.util.CollectionUtils; |
| | |
| | | |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | import java.util.stream.IntStream; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | |
| | | |
| | | @Autowired |
| | | private InfluxDBService influxDBService; |
| | | |
| | | @Autowired |
| | | private DaMathPointService daMathPointService; |
| | | |
| | | @Override |
| | | public ApiPointDTO getInfoById(String pointId) { |
| | |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public PageResult<ApiPointDTO> getPageByNo(String pointNo) { |
| | | DaPointDTO daPointDTO = daPointService.getSimpleInfoByNo(pointNo); |
| | | DaMathPointDTO daMathPointDTO = daMathPointService.getByPoint(daPointDTO.getId()); |
| | | String[] pointNos = daMathPointDTO.getExpression().split("[-+]+"); |
| | | HashMap<Integer, String> map = new HashMap<>(); |
| | | IntStream.range(0, pointNos.length).forEach(i -> map.put(i, pointNos[i])); |
| | | List<String> pointNosL = new ArrayList<>(); |
| | | for (String value : map.values()) { |
| | | pointNosL.add(value); |
| | | } |
| | | PageResult<ApiPointDTO> pageResult = daPointService.getPointPage(map); |
| | | Map<String, Object> CurrentValueMap = pointCollector.getCurrentValue(pointNosL); |
| | | pageResult.getList().stream().map(item -> { |
| | | item.setCurrentValue(CurrentValueMap.get(item.getPointNo())); |
| | | return item; |
| | | }).collect(Collectors.toList()); |
| | | return pageResult; |
| | | } |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.iailab.framework.mybatis.core.mapper.BaseMapperX; |
| | | import com.iailab.framework.tenant.core.db.dynamic.TenantDS; |
| | | import com.iailab.module.data.api.point.dto.ApiPointDTO; |
| | | import com.iailab.module.data.point.dto.DaPointDTO; |
| | | import com.iailab.module.data.point.entity.DaPointEntity; |
| | | import com.iailab.module.data.point.vo.DaPointPageReqVO; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.LinkedHashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | |
| | | return getPageList(getPage(reqVO), reqVO); |
| | | } |
| | | |
| | | IPage<ApiPointDTO> getPointPage(IPage<DaPointEntity> page, @Param("paramsMap") HashMap map); |
| | | |
| | | default DaPointEntity selectByPointName(String pointName) { |
| | | return selectOne("point_name", pointName); |
| | | } |
| | |
| | | package com.iailab.module.data.point.service; |
| | | |
| | | import com.iailab.framework.common.service.BaseService; |
| | | import com.iailab.framework.common.validation.group.AddGroup; |
| | | import com.iailab.framework.common.validation.group.UpdateGroup; |
| | | import com.iailab.module.data.point.entity.DaMathPointEntity; |
| | | import com.iailab.module.data.point.dto.DaMathPointDTO; |
| | | |
| | | import javax.validation.constraints.NotNull; |
| | | import javax.validation.constraints.Null; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | |
| | | void deleteBatch(String[] ids); |
| | | |
| | | void deleteByPoint(String[] ids); |
| | | |
| | | } |
| | |
| | | import com.iailab.module.data.point.dto.DaPointDTO; |
| | | import com.iailab.module.data.point.vo.*; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.LinkedHashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | |
| | | List<DaPointDTO> getMeasurePoint(DaPointPageReqVO reqVO); |
| | | |
| | | List<DaPointDTO> getMathPoint(DaPointPageReqVO reqVO); |
| | | |
| | | PageResult<ApiPointDTO> getPointPage(HashMap map); |
| | | } |
| | |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.Arrays; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.UUID; |
| | | |
| | | /** |
| | |
| | | wrapper.in("point_id", Arrays.asList(ids)); |
| | | baseDao.delete(wrapper); |
| | | } |
| | | |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.iailab.framework.common.constant.Constant; |
| | | import com.iailab.framework.common.pojo.PageResult; |
| | | import com.iailab.framework.common.service.impl.BaseServiceImpl; |
| | | import com.iailab.framework.common.util.object.BeanUtils; |
| | | import com.iailab.framework.common.util.object.ConvertUtils; |
| | | import com.iailab.module.data.api.point.dto.ApiPointDTO; |
| | |
| | | * @createTime 2024年09月2日 |
| | | */ |
| | | @Service |
| | | public class DaPointServiceImpl extends ServiceImpl<DaPointDao, DaPointEntity> implements DaPointService { |
| | | public class DaPointServiceImpl extends BaseServiceImpl<DaPointDao, DaPointEntity> implements DaPointService { |
| | | |
| | | @Autowired |
| | | private DaMeasurePointService daMeasurePointService; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public PageResult<ApiPointDTO> getPointPage(HashMap map) { |
| | | IPage<ApiPointDTO> page = daPointDao.getPointPage(getPage(map, Constant.CREATE_TIME, false),map); |
| | | return new PageResult<>(page.getRecords(), page.getTotal()); |
| | | } |
| | | |
| | | @Override |
| | | public List<DaPointDTO> getMathPoint(String freq) { |
| | | Map<String, Object> params = new HashMap<>(); |
| | | params.put("pointType", PointTypeEnum.CALCULATE_POINT.getCode()); |
| | |
| | | importPoints.forEach(importPoint -> { |
| | | |
| | | // 判断如果不存在,再进行插入 |
| | | DaPointEntity existPoint = baseMapper.selectByPointName(importPoint.getPointName()); |
| | | DaPointEntity existPoint = baseDao.selectByPointName(importPoint.getPointName()); |
| | | if (existPoint == null) { |
| | | DaPointEntity daPointEntity = ConvertUtils.sourceToTarget(importPoint, DaPointEntity.class); |
| | | daPointEntity.setId(UUID.randomUUID().toString()); |
| | |
| | | |
| | | DaPointEntity updatePoint = BeanUtils.toBean(importPoint, DaPointEntity.class); |
| | | updatePoint.setId(existPoint.getId()); |
| | | baseMapper.updateById(updatePoint); |
| | | baseDao.updateById(updatePoint); |
| | | DaMeasurePointEntity measurePoint = new DaMeasurePointEntity(); |
| | | measurePoint.setSourceType(importPoint.getSourceType()); |
| | | measurePoint.setSourceId(sourcesIdMap.get(importPoint.getSourceType()).get(importPoint.getSourceName())); |
| | |
| | | </if> |
| | | </where> |
| | | </select> |
| | | <select id="getPointPage" parameterType="map" resultType="com.iailab.module.data.api.point.dto.ApiPointDTO"> |
| | | select point_no pointNo,point_name pointName from t_da_point |
| | | <where> |
| | | point_no in |
| | | <foreach item="value" collection="paramsMap.values" separator="," open="(" close=")"> |
| | | '${value}' |
| | | </foreach> |
| | | </where> |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | @Operation(summary = "获取预警信息和调度建议分页列表") |
| | | PageResult<StAlarmAndSuggestRespVO> getAlarmAndSuggestPage(@RequestBody StAlarmAndSuggestPageReqVO reqVO); |
| | | |
| | | @PostMapping(PREFIX + "/predict-data/doubleValue") |
| | | @Operation(summary = "获取多个预测项Double类型数据") |
| | | Map<String, Map<String, Double>> getPreDoubleData(PreDoubleDataReqVO reqVO); |
| | | |
| | | /*@PostMapping(PREFIX + "/predict-data/last-value") |
| | | @Operation(summary = "获取最后预测值") |
| | | Double getPredictLastValue();*/ |
对比新文件 |
| | |
| | | package com.iailab.module.model.api.mcs.dto; |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @description: |
| | | * @author: dzd |
| | | * @date: 2025/1/13 13:59 |
| | | **/ |
| | | @Data |
| | | public class PreDoubleDataReqVO implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @Schema(description = "预测编号") |
| | | private List<String> itemNos; |
| | | } |
| | |
| | | import com.iailab.module.data.common.ApiDataQueryDTO; |
| | | import com.iailab.module.model.api.mcs.McsApi; |
| | | import com.iailab.module.model.api.mcs.dto.*; |
| | | import com.iailab.module.model.common.enums.DataTypeEnum; |
| | | import com.iailab.module.model.enums.CommonConstant; |
| | | import com.iailab.module.model.common.enums.PreLineTypeEnum; |
| | | import com.iailab.module.model.influxdb.pojo.InfluxModelResultByOutPutIdsPOJO; |
| | | import com.iailab.module.model.influxdb.service.InfluxDBService; |
| | | import com.iailab.module.model.influxdb.vo.InfluxModelResultVO; |
| | | import com.iailab.module.model.mcs.pre.entity.DmModuleEntity; |
| | | import com.iailab.module.model.mcs.pre.entity.MmItemOutputEntity; |
| | | import com.iailab.module.model.mcs.pre.entity.MmPredictAlarmMessageEntity; |
| | | import com.iailab.module.model.mcs.pre.service.*; |
| | | import com.iailab.module.model.mcs.pre.vo.MmItemOutputRespVO; |
| | | import com.iailab.module.model.mcs.pre.vo.MmPredictAlarmMessageSaveReqVO; |
| | | import com.iailab.module.model.mcs.pre.vo.MmPredictItemRespVO; |
| | | import com.iailab.module.model.mcs.sche.entity.StScheduleSuggestEntity; |
| | | import com.iailab.module.model.mcs.sche.service.StScheduleSchemeService; |
| | | import com.iailab.module.model.mcs.sche.service.StScheduleSuggestService; |
| | |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | import java.util.function.Function; |
| | | import java.util.stream.Collectors; |
| | | import java.util.stream.Stream; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | |
| | | |
| | | @Autowired |
| | | private ChartParamService chartParamService; |
| | | |
| | | @Autowired |
| | | private InfluxDBService influxDBService; |
| | | |
| | | private int HOUR_MINS = 60; |
| | | |
| | |
| | | return stScheduleSchemeService.getAlarmAndSuggestPage(reqVO); |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Map<String, Double>> getPreDoubleData(PreDoubleDataReqVO reqVO) { |
| | | List<MmPredictItemRespVO> doubleItemOutPuts = mmPredictItemService.getDoubleOutPutsByItemNos(reqVO.getItemNos()); |
| | | |
| | | //<itemNo,<resultStr,double>> |
| | | Map<String, Map<String, Double>> result = new HashMap<>(reqVO.getItemNos().size()); |
| | | |
| | | for (MmPredictItemRespVO mmPredictItemRespVO : doubleItemOutPuts) { |
| | | List<String> outPutIds = mmPredictItemRespVO.getOutPuts().stream().map(MmItemOutputRespVO::getId).collect(Collectors.toList()); |
| | | InfluxModelResultByOutPutIdsPOJO pojo = new InfluxModelResultByOutPutIdsPOJO(); |
| | | pojo.setOutPutIds(outPutIds); |
| | | pojo.setType(DataTypeEnum.FLOAT.getCode()); |
| | | Map<String, List<InfluxModelResultVO>> outPutIdDoubles = influxDBService.queryModelResultsByOutPutIds(pojo, mmPredictItemRespVO.getLastTime(), mmPredictItemRespVO.getLastTime()); |
| | | Map<String, Double> outPutIdDouble = new HashMap<>(outPutIds.size()); |
| | | for (MmItemOutputRespVO outPut : mmPredictItemRespVO.getOutPuts()) { |
| | | String outPutId = outPut.getId(); |
| | | if (outPutIdDoubles.containsKey(outPutId)) { |
| | | List<InfluxModelResultVO> influxModelResultVOS = outPutIdDoubles.get(outPutId); |
| | | if (!CollectionUtils.isEmpty(influxModelResultVOS)) { |
| | | outPutIdDouble.put(outPut.getResultstr(),Double.valueOf(influxModelResultVOS.get(0).getValue().toString())); |
| | | } |
| | | } |
| | | } |
| | | result.put(mmPredictItemRespVO.getItemno(),outPutIdDouble); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | private Date[] calResultTime(ItemVO predictItem, Date startTimeReq, Date endTimeReq, int lengthLeft, int lengthRight) { |
| | | Date[] result = new Date[3]; |
| | | Date predictTime = predictItem.getLastTime(); |
| | |
| | | List<ChartParamDTO> chartParamList = mcsApi.getChartParamList(chartCode); |
| | | return CommonResult.success(chartParamList); |
| | | } |
| | | |
| | | @PostMapping("/predict-data/doubleValue") |
| | | @Operation(summary = "获取多个预测项Double类型数据") |
| | | public CommonResult<Map<String, Map<String,Double>>> getPreDoubleData(@RequestBody PreDoubleDataReqVO reqVO) { |
| | | Map<String, Map<String,Double>> map = mcsApi.getPreDoubleData(reqVO); |
| | | return CommonResult.success(map); |
| | | } |
| | | } |
| | |
| | | import com.influxdb.client.InfluxDBClient; |
| | | import com.influxdb.client.InfluxDBClientFactory; |
| | | import com.influxdb.client.domain.Bucket; |
| | | import com.influxdb.client.domain.BucketRetentionRules; |
| | | import com.influxdb.client.domain.Organization; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | private InfluxDBClient client; |
| | | // bucket过期时间 |
| | | private Integer everySeconds = 3600 * 24 * 10; |
| | | |
| | | public InfluxDBClient getClient() { |
| | | try { |
| | |
| | | Bucket bucketByName = client.getBucketsApi().findBucketByName(bucketName); |
| | | if (null == bucketByName) { |
| | | Organization organization = client.getOrganizationsApi().findOrganizations().stream().filter(e -> e.getName().equals(org)).findFirst().orElseThrow(() -> new RuntimeException("influxdb:org不存在,org:" + org)); |
| | | client.getBucketsApi().createBucket(bucketName,organization); |
| | | // 创建Bucket,并设置过期时间 |
| | | client.getBucketsApi().createBucket(bucketName,new BucketRetentionRules().everySeconds(everySeconds),organization); |
| | | }else { |
| | | isExistBucket.add(bucketName); |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.model.influxdb.pojo; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import java.time.Instant; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @description: |
| | | * @author: dzd |
| | | * @date: 2025/1/13 14:39 |
| | | **/ |
| | | @Data |
| | | public class InfluxModelResultByOutPutIdsPOJO implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | private List<String> outPutIds; |
| | | |
| | | private Instant timestamp; |
| | | |
| | | private String type; |
| | | } |
| | |
| | | package com.iailab.module.model.influxdb.service; |
| | | |
| | | import com.iailab.module.model.influxdb.pojo.InfluxModelResultByOutPutIdsPOJO; |
| | | import com.iailab.module.model.influxdb.pojo.InfluxModelResultPOJO; |
| | | import com.iailab.module.model.influxdb.vo.InfluxModelResultVO; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * InfluxDB操作类 |
| | |
| | | void asyncWriteModelResults(List<InfluxModelResultPOJO> pointValues); |
| | | |
| | | List<InfluxModelResultVO> queryModelResults(InfluxModelResultPOJO pojo, Date startTime, Date endTime); |
| | | Map<String,List<InfluxModelResultVO>> queryModelResultsByOutPutIds(InfluxModelResultByOutPutIdsPOJO pojo, Date startTime, Date endTime); |
| | | } |
| | |
| | | |
| | | import com.iailab.module.model.influxdb.common.config.InfluxDBInstance; |
| | | import com.iailab.module.model.influxdb.common.utils.MeasurementUtils; |
| | | import com.iailab.module.model.influxdb.pojo.InfluxModelResultByOutPutIdsPOJO; |
| | | import com.iailab.module.model.influxdb.pojo.InfluxModelResultPOJO; |
| | | import com.iailab.module.model.influxdb.service.InfluxDBService; |
| | | import com.iailab.module.model.influxdb.vo.InfluxModelResultVO; |
| | |
| | | import javax.annotation.PostConstruct; |
| | | import javax.annotation.Resource; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * InfluxDB操作类 |
| | |
| | | } |
| | | return dataList; |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, List<InfluxModelResultVO>> queryModelResultsByOutPutIds(InfluxModelResultByOutPutIdsPOJO pojo, Date startTime, Date endTime) { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.set(Calendar.MILLISECOND, 0); |
| | | String start = startTime.toInstant().toString(); |
| | | |
| | | if (startTime.getTime() == endTime.getTime()) { |
| | | // 如果相等,则engTime加1毫秒,否则influxdb报错(因为influxdb的range函数是左闭右开区间,所以将engTime加一毫秒,才可以查到startTime时间点的数据) |
| | | endTime.setTime(endTime.getTime() + 1); |
| | | } |
| | | String stop = endTime.toInstant().toString(); |
| | | |
| | | String measurement = MeasurementUtils.getMeasurement(pojo.getType()); |
| | | // 拼接OutPutIds |
| | | String outPutIdsFilter = pojo.getOutPutIds().stream().map(id -> "r[\"outPutId\"] == \"" + id + "\"").collect(Collectors.joining(" or ")); |
| | | StringBuilder sb = new StringBuilder(); |
| | | sb.append("from(bucket:\"" + influxDBInstance.getBucket() + "\") "); |
| | | sb.append("|> range(start: ").append(start).append(", stop: ").append(stop).append(") "); |
| | | sb.append("|> filter(fn: (r) => r[\"_measurement\"] == \"" + measurement + "\")"); |
| | | sb.append("|> filter(fn: (r) => r[\"_field\"] == \"value\")"); |
| | | sb.append("|> filter(fn: (r) => " + outPutIdsFilter + ")"); |
| | | sb.append("|> sort(columns: [\"_time\"]) "); |
| | | sb.append("|> yield(name: \"mean\")"); |
| | | log.info("influxdbSql===============" + sb); |
| | | List<FluxTable> tables = queryApi.query(sb.toString(), influxDBInstance.org); |
| | | |
| | | Map<String, List<InfluxModelResultVO>> result = new HashMap<>(pojo.getOutPutIds().size()); |
| | | for (FluxTable table : tables) { |
| | | List<FluxRecord> records = table.getRecords(); |
| | | for (FluxRecord record : records) { |
| | | String outPutId = record.getValueByKey("outPutId").toString(); |
| | | if (result.containsKey(outPutId)) { |
| | | result.get(outPutId).add( new InfluxModelResultVO(record.getValueByKey("_value"),record.getTime())); |
| | | } else { |
| | | List<InfluxModelResultVO> dataList = new ArrayList<>(); |
| | | InfluxModelResultVO vo = new InfluxModelResultVO(record.getValueByKey("_value"),record.getTime()); |
| | | dataList.add(vo); |
| | | result.put(outPutId,dataList); |
| | | } |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | } |
| | |
| | | default IPage<MmPredictItemRespVO> selectPage(MmPredictItemPageReqVO reqVO) { |
| | | return getPageList(getPage(reqVO), reqVO); |
| | | } |
| | | |
| | | List<MmPredictItemRespVO> getDoubleOutPutsByItemNos(Map<String, Object> params); |
| | | } |
| | |
| | | List<MmPredictItemRespVO> list(Map<String, Object> params); |
| | | |
| | | MmPredictItemEntity getById(String id); |
| | | |
| | | List<MmPredictItemRespVO> getDoubleOutPutsByItemNos(List<String> itemNos); |
| | | } |
| | |
| | | return mmPredictItemDao.selectById(id); |
| | | } |
| | | |
| | | @Override |
| | | public List<MmPredictItemRespVO> getDoubleOutPutsByItemNos(List<String> itemNos) { |
| | | if (CollectionUtils.isEmpty(itemNos)) { |
| | | return new ArrayList<>(); |
| | | } |
| | | Map<String, Object> params = new HashMap(1); |
| | | params.put("itemNos", itemNos); |
| | | List<MmPredictItemRespVO> list = mmPredictItemDao.getDoubleOutPutsByItemNos(params); |
| | | return list; |
| | | } |
| | | |
| | | @DSTransactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public void add(MmPredictItemDTO mmPredictItemDto) { |
| | |
| | | <!-- 启动服务时,是否清理历史日志,一般不建议清理 --> |
| | | <cleanHistoryOnStart>${LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START:-false}</cleanHistoryOnStart> |
| | | <!-- 日志文件,到达多少容量,进行滚动 --> |
| | | <maxFileSize>${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-100MB}</maxFileSize> |
| | | <maxFileSize>${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-50MB}</maxFileSize> |
| | | <!-- 日志文件的总大小,0 表示不限制 --> |
| | | <totalSizeCap>${LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP:-0}</totalSizeCap> |
| | | <!-- 日志文件的保留天数 --> |
| | |
| | | </appender> |
| | | |
| | | <!-- 本地环境 --> |
| | | <springProfile name="local"> |
| | | <root level="INFO"> |
| | | <springProfile name="dev"> |
| | | <root level="DEBUG"> |
| | | <appender-ref ref="STDOUT"/> |
| | | <appender-ref ref="GRPC"/> <!-- 本地环境下,如果不想接入 SkyWalking 日志服务,可以注释掉本行 --> |
| | | <appender-ref ref="ASYNC"/> <!-- 本地环境下,如果不想打印日志,可以注释掉本行 --> |
| | | </root> |
| | | </springProfile> |
| | | <!-- 其它环境 --> |
| | | <springProfile name="dev,test,stage,prod,default"> |
| | | <springProfile name="test,stage,prod,default"> |
| | | <root level="INFO"> |
| | | <appender-ref ref="STDOUT"/> |
| | | <appender-ref ref="ASYNC"/> |
| | |
| | | <result property="itemorder" column="ITEMORDER"/> |
| | | <result property="status" column="STATUS"/> |
| | | <result property="categoryid" column="CATEGORYID"/> |
| | | <result property="lastTime" column="last_time"/> |
| | | <collection property="outPuts" ofType="com.iailab.module.model.mcs.pre.vo.MmItemOutputRespVO"> |
| | | <result property="id" column="out_put_id"/> |
| | | <result property="outputorder" column="out_put_order"/> |
| | | <result property="resultName" column="result_name"/> |
| | | <result property="resultstr" column="result_str"/> |
| | | </collection> |
| | | </resultMap> |
| | | |
| | |
| | | FROM t_mm_predict_merge_item t1 |
| | | WHERE t1.itemid = #{ITEMID} |
| | | </select> |
| | | <select id="getDoubleOutPutsByItemNos" resultMap="MmPredictItemRespVO" parameterType="map"> |
| | | SELECT |
| | | TMPI.ID, |
| | | TMPI.ITEMNO, |
| | | TMPI.ITEMNAME, |
| | | TMPI.ITEMTYPEID, |
| | | TMPI.predictlength, |
| | | TMPI.GRANULARITY, |
| | | TMPI.ISFUSE, |
| | | TMPI.WORKCHECKED, |
| | | TMPI.STATUS, |
| | | TMIO.id out_put_id, |
| | | TMIO.outputorder out_put_order, |
| | | TMIO.resultstr result_str, |
| | | TMIO.result_name, |
| | | TMIS.last_time |
| | | FROM T_MM_PREDICT_ITEM TMPI |
| | | LEFT JOIN t_mm_item_output TMIO ON TMIO.itemid = TMPI.ID AND TMIO.result_type = 3 |
| | | LEFT JOIN t_mm_item_status TMIS ON TMIS.item_id = TMPI.ID |
| | | WHERE TMPI.itemno in |
| | | <foreach collection="itemNos" item="item" open="(" close=")" separator=","> |
| | | #{item} |
| | | </foreach> |
| | | </select> |
| | | |
| | | |
| | | </mapper> |