From 8b43a1a91c37676e6a1e506e211f60e3e238f669 Mon Sep 17 00:00:00 2001
From: dongyukun <1208714201@qq.com>
Date: 星期四, 20 二月 2025 16:23:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/impl/IndItemValueServiceImpl.java |   40 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 40 insertions(+), 0 deletions(-)

diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/impl/IndItemValueServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/impl/IndItemValueServiceImpl.java
index 5efbb4c..2453ea2 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/impl/IndItemValueServiceImpl.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/impl/IndItemValueServiceImpl.java
@@ -3,13 +3,22 @@
 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.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.iailab.framework.tenant.core.context.DataContextHolder;
+import com.iailab.module.data.common.utils.DateUtils;
+import com.iailab.module.data.common.xss.SQLFilter;
+import com.iailab.module.data.ind.item.vo.IndItemValueVO;
 import com.iailab.module.data.ind.value.dao.IndItemValueDao;
+import com.iailab.module.data.ind.value.dto.QuerySourceValueDTO;
 import com.iailab.module.data.ind.value.entity.IndItemValueEntity;
 import com.iailab.module.data.ind.value.service.IndItemValueService;
 import com.iailab.module.data.ind.value.vo.IndItemValuePageReqVO;
 import com.iailab.module.data.ind.value.vo.IndItemValueSaveReqVO;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
 import java.util.UUID;
 
 /**
@@ -47,4 +56,35 @@
     public void delete(String id) {
         baseDao.deleteById(id);
     }
+
+    /**
+     * 根据配置的数据源动态查询
+     * @param dto
+     * @return
+     */
+    @Override
+    public List<IndItemValueVO> getSourceValue(QuerySourceValueDTO dto) {
+        if (StringUtils.isEmpty(dto.getDataSource())) {
+            log.warn("数据源不能为空");
+            return null;
+        }
+        SQLFilter.sqlInject2(dto.getSelectSql());
+        SQLFilter.sqlInject2(dto.getViewSql());
+        SQLFilter.sqlInject2(dto.getWhereSql());
+        SQLFilter.sqlInject2(dto.getGroupSql());
+        SQLFilter.sqlInject2(dto.getGroupSql());
+        DataContextHolder.setDataSourceId(Long.valueOf(dto.getDataSource()));
+        return baseDao.getSourceValue(dto);
+    }
+
+    @Override
+    public List<IndItemValueVO> getValueList(IndItemValuePageReqVO reqVO) {
+        List<IndItemValueEntity> entities = baseDao.selectList( new LambdaQueryWrapperX<IndItemValueEntity>()
+                .eq(StringUtils.isNotBlank(reqVO.getItemNo()), IndItemValueEntity::getItemNo, reqVO.getItemNo())
+                .geIfPresent(IndItemValueEntity::getDataTime, DateUtils.stringToDate(reqVO.getStartTime(), DateUtils.DATE_TIME_PATTERN))
+                .leIfPresent(IndItemValueEntity::getDataTime, DateUtils.stringToDate(reqVO.getEndTime(), DateUtils.DATE_TIME_PATTERN))
+                .orderByDesc(IndItemValueEntity::getDataTime)
+        );
+        return ConvertUtils.sourceToTarget(entities, IndItemValueVO.class);
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3