iailab-module-data/iailab-module-data-api/src/main/java/com/iailab/module/data/api/point/DataPointApi.java
@@ -1,5 +1,6 @@ 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; @@ -50,5 +51,7 @@ @Operation(summary = "写入单个测点值") Boolean writePointRealValue(@RequestBody ApiPointValueWriteDTO queryDto); @GetMapping(PREFIX + "/info/nos/{pointNo}") @Operation(summary = "根据计算点编号查询测点集合") PageResult<ApiPointDTO> getPageByNo(@PathVariable("pointNo") String pointNo); } iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/point/DataPointApiImpl.java
@@ -1,5 +1,6 @@ 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.*; @@ -7,8 +8,10 @@ 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; @@ -17,6 +20,7 @@ import java.util.*; import java.util.stream.Collectors; import java.util.stream.IntStream; /** * @author PanZhibao @@ -35,6 +39,9 @@ @Autowired private InfluxDBService influxDBService; @Autowired private DaMathPointService daMathPointService; @Override public ApiPointDTO getInfoById(String pointId) { @@ -130,4 +137,24 @@ 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; } } iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dao/DaPointDao.java
@@ -3,12 +3,15 @@ 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; @@ -37,6 +40,8 @@ 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); } iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/DaMathPointService.java
@@ -1,8 +1,14 @@ 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 @@ -22,4 +28,5 @@ void deleteBatch(String[] ids); void deleteByPoint(String[] ids); } iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/DaPointService.java
@@ -5,6 +5,8 @@ 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; @@ -69,4 +71,6 @@ List<DaPointDTO> getMeasurePoint(DaPointPageReqVO reqVO); List<DaPointDTO> getMathPoint(DaPointPageReqVO reqVO); PageResult<ApiPointDTO> getPointPage(HashMap map); } iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/DaMathPointServiceImpl.java
@@ -10,6 +10,8 @@ import org.springframework.stereotype.Service; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.UUID; /** @@ -61,4 +63,5 @@ wrapper.in("point_id", Arrays.asList(ids)); baseDao.delete(wrapper); } } iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/DaPointServiceImpl.java
@@ -6,7 +6,9 @@ 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; @@ -45,7 +47,7 @@ * @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; @@ -306,6 +308,12 @@ } @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()); @@ -395,7 +403,7 @@ 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()); @@ -444,7 +452,7 @@ 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())); iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/point/DaPointDao.xml
@@ -286,5 +286,14 @@ </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>