|
@@ -0,0 +1,97 @@
|
|
|
|
+package com.rongwei.bscommon.sys.service.impl;
|
|
|
|
+
|
|
|
|
+import cn.hutool.core.convert.Convert;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
+import com.rongwei.bscommon.sys.service.ZhcxBiDatasourceConfigService;
|
|
|
|
+import com.rongwei.bsentity.domain.ZhcxBiDatasourceConfigDo;
|
|
|
|
+import com.rongwei.bsentity.domain.ZhcxBiDatasourceDo;
|
|
|
|
+import com.rongwei.bscommon.sys.dao.ZhcxBiDatasourceDao;
|
|
|
|
+import com.rongwei.bscommon.sys.service.ZhcxBiDatasourceService;
|
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import com.rongwei.bsentity.vo.check.LargeScreenCheckVo;
|
|
|
|
+import com.rongwei.rwcommon.base.R;
|
|
|
|
+import com.rongwei.rwcommon.utils.SecurityUtil;
|
|
|
|
+import com.rongwei.rwcommon.utils.StringUtils;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+
|
|
|
|
+import java.math.RoundingMode;
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * <p>
|
|
|
|
+ * 服务实现类
|
|
|
|
+ * </p>
|
|
|
|
+ *
|
|
|
|
+ * @author xuan
|
|
|
|
+ * @since 2025-02-17
|
|
|
|
+ */
|
|
|
|
+@Service
|
|
|
|
+public class ZhcxBiDatasourceServiceImpl extends ServiceImpl<ZhcxBiDatasourceDao, ZhcxBiDatasourceDo> implements ZhcxBiDatasourceService {
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private ZhcxBiDatasourceConfigService configService;
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public R getDatasource(Map<String, Object> map) {
|
|
|
|
+ // 根据配置查询出数据
|
|
|
|
+ LambdaQueryWrapper<ZhcxBiDatasourceConfigDo> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
+ wrapper.eq(ZhcxBiDatasourceConfigDo::getDeleted,"0")
|
|
|
|
+ .isNotNull(ZhcxBiDatasourceConfigDo::getDatasource)
|
|
|
|
+ .isNotNull(ZhcxBiDatasourceConfigDo::getDatasourcetype);
|
|
|
|
+ List<ZhcxBiDatasourceConfigDo> configList = configService.list(wrapper);
|
|
|
|
+ // 去删除历史数据
|
|
|
|
+ if(!configList.isEmpty()){
|
|
|
|
+ baseMapper.deleteDataByTagId(configList.stream()
|
|
|
|
+ .map(ZhcxBiDatasourceConfigDo::getId)
|
|
|
|
+ .collect(Collectors.toList()));
|
|
|
|
+ }
|
|
|
|
+ // 查询出所有的项目+机号数据
|
|
|
|
+ List<LargeScreenCheckVo> projectList = baseMapper.getAllMachineInfo();
|
|
|
|
+ // 结果集合
|
|
|
|
+ List<ZhcxBiDatasourceDo> resultList = new ArrayList<>();
|
|
|
|
+ for (ZhcxBiDatasourceConfigDo zhcxBiDatasourceConfigDo : configList) {
|
|
|
|
+ // 目前有两种方式 1.sql 2.api接口
|
|
|
|
+ if(zhcxBiDatasourceConfigDo.getDatasourcetype().equals("SQL")){
|
|
|
|
+ String sql = zhcxBiDatasourceConfigDo.getDatasource();
|
|
|
|
+ projectList.forEach(item -> {
|
|
|
|
+ String selectSql = sql.replace("${projectId}",item.getProjectid())
|
|
|
|
+ .replace("${machineno}",item.getMachineno())
|
|
|
|
+ .replace("${projectCode}",item.getProjectcode())
|
|
|
|
+ .replace("${machineId}",item.getMachinenoid());
|
|
|
|
+ String tagvalue =baseMapper.selectBySql(selectSql);
|
|
|
|
+ if(StringUtils.isNotEmpty(tagvalue)){
|
|
|
|
+ // 处理保留小数点的数据
|
|
|
|
+ if(zhcxBiDatasourceConfigDo.getKeepdecimals() != null){
|
|
|
|
+ tagvalue = Convert.toBigDecimal(tagvalue).setScale(zhcxBiDatasourceConfigDo.getKeepdecimals(), RoundingMode.HALF_UP) + "";
|
|
|
|
+ }
|
|
|
|
+ // 构建数据源数据
|
|
|
|
+ ZhcxBiDatasourceDo zhcxBiDatasourceDo = new ZhcxBiDatasourceDo();
|
|
|
|
+ zhcxBiDatasourceDo.setId(SecurityUtil.getUUID());
|
|
|
|
+ zhcxBiDatasourceDo.setTagname(zhcxBiDatasourceConfigDo.getTagname());
|
|
|
|
+ zhcxBiDatasourceDo.setTagcode(zhcxBiDatasourceConfigDo.getTagcode());
|
|
|
|
+ zhcxBiDatasourceDo.setTagvalue(tagvalue);
|
|
|
|
+ zhcxBiDatasourceDo.setProjectid(item.getProjectid());
|
|
|
|
+ zhcxBiDatasourceDo.setProjectcode(item.getProjectcode());
|
|
|
|
+ zhcxBiDatasourceDo.setProjectname(item.getProjectname());
|
|
|
|
+ zhcxBiDatasourceDo.setTagid(zhcxBiDatasourceConfigDo.getId());
|
|
|
|
+ zhcxBiDatasourceDo.setMathinecode(item.getMachineno());
|
|
|
|
+ resultList.add(zhcxBiDatasourceDo);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(zhcxBiDatasourceConfigDo.getDatasourcetype().equals("API")){
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(!resultList.isEmpty()){
|
|
|
|
+ this.saveBatch(resultList);
|
|
|
|
+ }
|
|
|
|
+ return R.ok("数据更新成功");
|
|
|
|
+ }
|
|
|
|
+}
|