Forráskód Böngészése

项目指标数据源配置后端代码

wangxuan 5 hónapja
szülő
commit
e8e3b0ac3c
15 módosított fájl, 508 hozzáadás és 0 törlés
  1. 16 0
      business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxBiDatasourceConfigDao.java
  2. 39 0
      business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxBiDatasourceDao.java
  3. 6 0
      business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxPmqManagementRecoredDao.java
  4. 16 0
      business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxBiDatasourceConfigService.java
  5. 24 0
      business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxBiDatasourceService.java
  6. 5 0
      business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxPMQMService.java
  7. 20 0
      business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxBiDatasourceConfigServiceImpl.java
  8. 97 0
      business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxBiDatasourceServiceImpl.java
  9. 7 0
      business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxPMQMServiceImpl.java
  10. 26 0
      business-common/src/main/resources/mybatis/business/ZhcxBiDatasourceDao.xml
  11. 21 0
      business-common/src/main/resources/mybatis/business/ZhcxPmqManagementRecoredDao.xml
  12. 86 0
      business-entity/src/main/java/com/rongwei/bsentity/domain/ZhcxBiDatasourceConfigDo.java
  13. 90 0
      business-entity/src/main/java/com/rongwei/bsentity/domain/ZhcxBiDatasourceDo.java
  14. 20 0
      business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxBiDatasourceConfigController.java
  15. 35 0
      business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxBiDatasourceController.java

+ 16 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxBiDatasourceConfigDao.java

@@ -0,0 +1,16 @@
+package com.rongwei.bscommon.sys.dao;
+
+import com.rongwei.bsentity.domain.ZhcxBiDatasourceConfigDo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author xuan
+ * @since 2025-02-17
+ */
+public interface ZhcxBiDatasourceConfigDao extends BaseMapper<ZhcxBiDatasourceConfigDo> {
+
+}

+ 39 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxBiDatasourceDao.java

@@ -0,0 +1,39 @@
+package com.rongwei.bscommon.sys.dao;
+
+import com.rongwei.bsentity.domain.ZhcxBiDatasourceDo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwei.bsentity.vo.check.LargeScreenCheckVo;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author xuan
+ * @since 2025-02-17
+ */
+public interface ZhcxBiDatasourceDao extends BaseMapper<ZhcxBiDatasourceDo> {
+
+    @Update({"<script>",
+            "UPDATE INCONTROL.ZHCX_BI_DATASOURCE ",
+            "SET DELETED = '1' ",
+            "WHERE TAGID IN ",
+            "<foreach collection='tagIds' item='item' open='(' separator=',' close=')'>",
+            "#{item}",
+            "</foreach>",
+            " AND DELETED = '0'",
+            "</script>"})
+    void deleteDataByTagId(@Param("tagIds") List<String> tagIds);
+
+    /**
+     * 获取所有的项目机号信息
+     * @return
+     */
+    List<LargeScreenCheckVo> getAllMachineInfo();
+
+    String selectBySql(@Param("sql") String sql);
+}

+ 6 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxPmqManagementRecoredDao.java

@@ -72,4 +72,10 @@ public interface ZhcxPmqManagementRecoredDao extends BaseMapper<ZhcxPmqManagemen
      */
     void deleteDistributionByPIdAndMachineid(@Param("pid")String pid, @Param("machineid") String machineid);
     void deleteDistributionDetailByPIdAndMachineid(@Param("pid")String pid,@Param("machineid")String machineid);
+
+    /**
+     * 根据自动派单数据获取
+     * @return
+     */
+    List<ZhcxPmqManagementRecoredDo> getAutomaticDisPatchRecoredList();
 }

+ 16 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxBiDatasourceConfigService.java

@@ -0,0 +1,16 @@
+package com.rongwei.bscommon.sys.service;
+
+import com.rongwei.bsentity.domain.ZhcxBiDatasourceConfigDo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author xuan
+ * @since 2025-02-17
+ */
+public interface ZhcxBiDatasourceConfigService extends IService<ZhcxBiDatasourceConfigDo> {
+
+}

+ 24 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxBiDatasourceService.java

@@ -0,0 +1,24 @@
+package com.rongwei.bscommon.sys.service;
+
+import com.rongwei.bsentity.domain.ZhcxBiDatasourceDo;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwei.rwcommon.base.R;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author xuan
+ * @since 2025-02-17
+ */
+public interface ZhcxBiDatasourceService extends IService<ZhcxBiDatasourceDo> {
+
+    /**
+     * 项目指标数据源配置
+     * @param map
+     */
+    R getDatasource(Map<String, Object> map);
+}

+ 5 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxPMQMService.java

@@ -11,4 +11,9 @@ public interface ZhcxPMQMService {
     void updateCloseStatusSimple(String id);
 
     List<ZhcxPmqManagementSourceDo> getNxSystemData();
+
+    /**
+     * 自动派单
+     */
+    void automaticDisPatch();
 }

+ 20 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxBiDatasourceConfigServiceImpl.java

@@ -0,0 +1,20 @@
+package com.rongwei.bscommon.sys.service.impl;
+
+import com.rongwei.bsentity.domain.ZhcxBiDatasourceConfigDo;
+import com.rongwei.bscommon.sys.dao.ZhcxBiDatasourceConfigDao;
+import com.rongwei.bscommon.sys.service.ZhcxBiDatasourceConfigService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author xuan
+ * @since 2025-02-17
+ */
+@Service
+public class ZhcxBiDatasourceConfigServiceImpl extends ServiceImpl<ZhcxBiDatasourceConfigDao, ZhcxBiDatasourceConfigDo> implements ZhcxBiDatasourceConfigService {
+
+}

+ 97 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxBiDatasourceServiceImpl.java

@@ -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("数据更新成功");
+    }
+}

+ 7 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxPMQMServiceImpl.java

@@ -364,4 +364,11 @@ public class ZhcxPMQMServiceImpl implements ZhcxPMQMService {
     log.info("三单数据数量:{}",list.size());
     return list;
     }
+
+    @Override
+    public void automaticDisPatch() {
+        // 根据项目工号找出符合的三单第二层数据
+        List<ZhcxPmqManagementRecoredDo> recoredList = recoredDao.getAutomaticDisPatchRecoredList();
+
+    }
 }

+ 26 - 0
business-common/src/main/resources/mybatis/business/ZhcxBiDatasourceDao.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.rongwei.bscommon.sys.dao.ZhcxBiDatasourceDao">
+
+
+    <select id="getAllMachineInfo" resultType="com.rongwei.bsentity.vo.check.LargeScreenCheckVo">
+        SELECT
+            machine.ID AS machinenoid,
+            machine.DEVICE_NUMBER AS machineno ,
+            project.ID AS projectid,
+            project.PROJECT_CODE AS projectcode,
+            project.PROJECT_NAME AS projectname
+        FROM
+            ZHCX_PROJECT_DEVICE_NUMBER machine
+                JOIN ZHCX_PROJECT_MANAGE project ON
+                machine.PID = project.ID
+        WHERE
+            machine.DELETED = '0'
+          AND project.DELETED = '0'
+          AND ((project.STATUS != '发运' and project.STATUS != '已交机') OR  project.STATUS IS NULL )
+    </select>
+    <select id="selectBySql" resultType="java.lang.String">
+        ${sql}
+    </select>
+</mapper>

+ 21 - 0
business-common/src/main/resources/mybatis/business/ZhcxPmqManagementRecoredDao.xml

@@ -71,6 +71,27 @@
         ORDER BY
             TO_NUMBER(REPLACE(p.MACHINENO, '#', ''))
     </select>
+    <select id="getAutomaticDisPatchRecoredList"
+            resultType="com.rongwei.bsentity.domain.ZhcxPmqManagementRecoredDo">
+        SELECT
+            r.*
+        FROM
+            ZHCX_PMQ_MANAGEMENT_RECORED r
+                JOIN ZHCX_PMQ_MANAGEMENT m ON
+                r.PMQMID = m.ID
+                    AND m.DELETED = '0'
+                    AND m.PROJECTNO IN (
+                    SELECT
+                        DISTINCT x.PROJECTNO
+                    FROM
+                        INCONTROL.ZHCX_PMQ_MANAGEMENT_AUTOMATIC x
+                    WHERE
+                        EFFECT = '0'
+                )
+        WHERE
+            r.DISPATCHSTATUS = '0'
+          AND r.DELETED = '0'
+    </select>
 
     <update id="updateFilesById">
         UPDATE

+ 86 - 0
business-entity/src/main/java/com/rongwei/bsentity/domain/ZhcxBiDatasourceConfigDo.java

@@ -0,0 +1,86 @@
+package com.rongwei.bsentity.domain;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.rongwei.rwcommon.base.BaseDo;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author xuan
+ * @since 2025-02-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("ZHCX_BI_DATASOURCE_CONFIG")
+public class ZhcxBiDatasourceConfigDo extends BaseDo implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键
+     */
+    @TableField("ID")
+    private String id;
+    /**
+     * 租户ID
+     */
+    @TableField("TENANTID")
+    private String tenantid;
+    /**
+     * 扩展
+     */
+    @TableField("ROPTION")
+    private String roption;
+    /**
+     * 指标名
+     */
+    @TableField("TAGNAME")
+    private String tagname;
+    /**
+     * 指标编号
+     */
+    @TableField("TAGCODE")
+    private String tagcode;
+    /**
+     * 数据源SQL/API
+     */
+    @TableField("DATASOURCE")
+    private String datasource;
+    /**
+     * 数据源类型
+     */
+    @TableField("DATASOURCETYPE")
+    private String datasourcetype;
+    /**
+     * 父指标ID
+     */
+    @TableField("PID")
+    private String pid;
+    /**
+     * 排序
+     */
+    @TableField("SORTINDEX")
+    private BigDecimal sortindex;
+    /**
+     * 指标点击弹窗页面
+     */
+    @TableField("EXTURL")
+    private String exturl;
+    /**
+     * 保留小数位
+     */
+    @TableField("KEEPDECIMALS")
+    private Integer keepdecimals;
+
+
+}

+ 90 - 0
business-entity/src/main/java/com/rongwei/bsentity/domain/ZhcxBiDatasourceDo.java

@@ -0,0 +1,90 @@
+package com.rongwei.bsentity.domain;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.rongwei.rwcommon.base.BaseDo;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author xuan
+ * @since 2025-02-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("ZHCX_BI_DATASOURCE")
+public class ZhcxBiDatasourceDo extends BaseDo {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 租户ID
+     */
+    @TableField("TENANTID")
+    private String tenantid;
+    /**
+     * 扩展
+     */
+    @TableField("ROPTION")
+    private String roption;
+    /**
+     * 指标名
+     */
+    @TableField("TAGNAME")
+    private String tagname;
+    /**
+     * 指标编号
+     */
+    @TableField("TAGCODE")
+    private String tagcode;
+    /**
+     * 指标值
+     */
+    @TableField("TAGVALUE")
+    private String tagvalue;
+    /**
+     * 项目名称
+     */
+    @TableField("PROJECTID")
+    private String projectid;
+    /**
+     * 项目工号
+     */
+    @TableField("PROJECTCODE")
+    private String projectcode;
+    /**
+     * 项目名称
+     */
+    @TableField("PROJECTNAME")
+    private String projectname;
+    /**
+     * 排序
+     */
+    @TableField("SORTINDEX")
+    private BigDecimal sortindex;
+    /**
+     * 主键
+     */
+    @TableField("ID")
+    private String id;
+    /**
+     * 指标ID
+     */
+    @TableField("TAGID")
+    private String tagid;
+    /**
+     * 机号
+     */
+    @TableField("MATHINECODE")
+    private String mathinecode;
+
+
+}

+ 20 - 0
business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxBiDatasourceConfigController.java

@@ -0,0 +1,20 @@
+package com.rongwei.bsserver.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author xuan
+ * @since 2025-02-17
+ */
+@RestController
+@RequestMapping("/zhcxBiDatasourceConfig")
+public class ZhcxBiDatasourceConfigController {
+
+}
+

+ 35 - 0
business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxBiDatasourceController.java

@@ -0,0 +1,35 @@
+package com.rongwei.bsserver.controller;
+
+
+import com.rongwei.bscommon.sys.service.ZhcxBiDatasourceService;
+import com.rongwei.rwcommon.base.R;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author xuan
+ * @since 2025-02-17
+ */
+@RestController
+@RequestMapping("/zhcxBiDatasource")
+public class ZhcxBiDatasourceController {
+
+    @Autowired
+    private ZhcxBiDatasourceService zhcxBiDatasourceService;
+
+    @RequestMapping("datasource")
+    @ApiOperation("项目指标数据源")
+    public R datasource(@RequestBody Map<String, Object> map) {
+        return zhcxBiDatasourceService.getDatasource(map);
+    }
+}
+