Explorar o código

风控+设备管理

wangzhuo hai 1 ano
pai
achega
d701a052fc

+ 9 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/iot/OrderController.java

@@ -3,6 +3,7 @@ package com.ruoyi.web.controller.iot;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.web.controller.iot.domain.AlarmLogging;
 import com.ruoyi.web.controller.iot.domain.Device;
 import com.ruoyi.web.controller.iot.domain.Enterprise;
 import com.ruoyi.web.controller.iot.domain.Order;
@@ -135,4 +136,12 @@ public class OrderController extends BaseController {
         return orderService.reportHistogram(status,enterpriseName,startTime,endTime);
     }
 
+    /**
+     * 银行端报警记录
+     */
+    @GetMapping("/alarmLoggingList")
+    public TableDataInfo alarmLoggingList(AlarmLogging alarmLogging) {
+        return orderService.alarmLoggingList(alarmLogging);
+    }
+
 }

+ 56 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/iot/domain/AlarmLogging.java

@@ -3,4 +3,60 @@ package com.ruoyi.web.controller.iot.domain;
 public class AlarmLogging {
 
     private Long id;
+    /**
+     * 企业名称
+     */
+    private String enterpriseName;
+    /**
+     * 统一社会编码
+     */
+    private String enterpriseCode;
+    /**
+     * 设备名称
+     */
+    private String equipmentName;
+    /**
+     * 设备资产编号
+     */
+    private String equipmentCode;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getEnterpriseName() {
+        return enterpriseName;
+    }
+
+    public void setEnterpriseName(String enterpriseName) {
+        this.enterpriseName = enterpriseName;
+    }
+
+    public String getEnterpriseCode() {
+        return enterpriseCode;
+    }
+
+    public void setEnterpriseCode(String enterpriseCode) {
+        this.enterpriseCode = enterpriseCode;
+    }
+
+    public String getEquipmentName() {
+        return equipmentName;
+    }
+
+    public void setEquipmentName(String equipmentName) {
+        this.equipmentName = equipmentName;
+    }
+
+    public String getEquipmentCode() {
+        return equipmentCode;
+    }
+
+    public void setEquipmentCode(String equipmentCode) {
+        this.equipmentCode = equipmentCode;
+    }
 }

+ 22 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/iot/domain/DTO/CompanyDatabase.java

@@ -0,0 +1,22 @@
+package com.ruoyi.web.controller.iot.domain.DTO;
+
+public class CompanyDatabase {
+    private String companyName;
+    private String companyDataBaseUrl;
+
+    public String getCompanyName() {
+        return companyName;
+    }
+
+    public void setCompanyName(String companyName) {
+        this.companyName = companyName;
+    }
+
+    public String getCompanyDataBaseUrl() {
+        return companyDataBaseUrl;
+    }
+
+    public void setCompanyDataBaseUrl(String companyDataBaseUrl) {
+        this.companyDataBaseUrl = companyDataBaseUrl;
+    }
+}

+ 3 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/iot/service/IOrderService.java

@@ -2,6 +2,7 @@ package com.ruoyi.web.controller.iot.service;
 
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.web.controller.iot.domain.AlarmLogging;
 import com.ruoyi.web.controller.iot.domain.Device;
 import com.ruoyi.web.controller.iot.domain.Enterprise;
 import com.ruoyi.web.controller.iot.domain.Order;
@@ -41,4 +42,6 @@ public interface IOrderService {
     TableDataInfo reportList(String status, String enterpriseName, String startTime, String endTime);
 
     AjaxResult reportHistogram(String status, String enterpriseName, String startTime, String endTime);
+
+    TableDataInfo alarmLoggingList(AlarmLogging alarmLogging);
 }

+ 88 - 7
ruoyi-admin/src/main/java/com/ruoyi/web/controller/iot/service/impl/OrderServiceImpl.java

@@ -9,7 +9,10 @@ import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.core.page.TableSupport;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.sql.SqlUtil;
+import com.ruoyi.system.domain.dto.UserEnterpriseRelation;
+import com.ruoyi.web.controller.iot.OrderController;
 import com.ruoyi.web.controller.iot.domain.*;
+import com.ruoyi.web.controller.iot.domain.DTO.CompanyDatabase;
 import com.ruoyi.web.controller.iot.mapper.EnterpriseMapper;
 import com.ruoyi.web.controller.iot.service.IOrderService;
 import com.ruoyi.web.dataBase.DatabaseConnectionMap;
@@ -162,9 +165,9 @@ public class OrderServiceImpl implements IOrderService {
         if (!ObjectUtils.isEmpty(device.getModel())) {
             condition += "and equipment_code like '%" + device.getModel() + "%'";
         }
-        if (!ObjectUtils.isEmpty(device.getEnterpriseName())) {
-            condition += "and order_status = " + device.getEnterpriseName();
-        }
+//        if (!ObjectUtils.isEmpty(device.getEnterpriseName())) {
+//            condition += "and order_status = " + device.getEnterpriseName();
+//        }
         if (!ObjectUtils.isEmpty(device.getConnectionTimeList()) && device.getConnectionTimeList().size() > 0) {
             condition += "and equipment_code >= '" + device.getConnectionTimeList().get(0) + "'";
             condition += "and equipment_code <= '" + device.getConnectionTimeList().get(1) + "'";
@@ -172,11 +175,28 @@ public class OrderServiceImpl implements IOrderService {
         try {
 
             Map<String, JdbcTemplate> jdbcTemplateMap = databaseConnectionMap.getJdbcTemplate();
-            Set<String> key = jdbcTemplateMap.keySet();
+            JdbcTemplate iotDataBast = DatabaseConnectionMap.getIOT_DATA_BAST();
 
-            for (String keyUrl : key) {
-                JdbcTemplate template = jdbcTemplateMap.get(keyUrl);
-                List<Device> deviceList = template.query("SELECT ie.* ,it.tsl_name as tslName, '" + keyUrl + "' as url" + " FROM iot_equipment ie " +
+            String sql = "select ue.enterprise_name as companyName, ue.enterprise_database_url as companyDataBaseUrl from t_sys_enterprise ue inner join user_enterprise_relation uer on ue.enterprise_openid = uer.enterprise_open_id where ue.factory_status = 1 and uer.standing_id = " + SecurityUtils.getLoginUser().getUser().getDeptId();
+
+            List<CompanyDatabase> companyDatabaseList = iotDataBast.query(sql, new BeanPropertyRowMapper<>(CompanyDatabase.class));
+
+            for (CompanyDatabase companyDataba : companyDatabaseList) {
+                String requestEnterpriseName = device.getEnterpriseName();
+                if (requestEnterpriseName != null && !requestEnterpriseName.isEmpty()) {
+                    if (!companyDataba.getCompanyName().contains(requestEnterpriseName)) {
+                        continue;
+                    }
+                }
+
+                JdbcTemplate template = jdbcTemplateMap.get(companyDataba.getCompanyDataBaseUrl());
+                String companyData = ", '" + companyDataba.getCompanyName() + "' as enterpriseName";
+
+
+//                for (String keyUrl : key) {
+//                JdbcTemplate template = jdbcTemplateMap.get(keyUrl);
+                String keyUrl = companyDataba.getCompanyDataBaseUrl();
+                List<Device> deviceList = template.query("SELECT ie.* ,it.tsl_name as tslName, '" + keyUrl + "' as url" + companyData + " FROM iot_equipment ie " +
                                 "LEFT JOIN iot_tsl it ON ie.tsl_id = it.id " +
                                 " where 1=1 " + (ObjectUtils.isEmpty(condition) ? "" : condition) + ";",
                         new BeanPropertyRowMapper<Device>(Device.class));
@@ -646,6 +666,67 @@ public class OrderServiceImpl implements IOrderService {
     }
 
     @Override
+    public TableDataInfo alarmLoggingList(AlarmLogging alarmLogging) {
+        List<AlarmLogging> orderList = new ArrayList<>();
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = (pageDomain.getPageNum() - 1) * pageDomain.getPageSize();
+        Integer pageSize = pageDomain.getPageSize();
+        String condition = "";
+        if (!ObjectUtils.isEmpty(alarmLogging.getEquipmentName())) {
+            condition += "and equipment_name like '%" + alarmLogging.getEquipmentName() + "%'";
+        }
+        if (!ObjectUtils.isEmpty(alarmLogging.getEquipmentCode())) {
+            condition += "and equipment_code like '%" + alarmLogging.getEquipmentCode() + "%'";
+        }
+        try {
+
+            Map<String, JdbcTemplate> jdbcTemplateMap = databaseConnectionMap.getJdbcTemplate();
+
+            JdbcTemplate iotDataBast = DatabaseConnectionMap.getIOT_DATA_BAST();
+
+            String sql = "select ue.enterprise_name as companyName, ue.enterprise_database_url as companyDataBaseUrl from t_sys_enterprise ue inner join user_enterprise_relation uer on ue.enterprise_openid = uer.enterprise_open_id where ue.factory_status = 1 and uer.standing_id = " + SecurityUtils.getLoginUser().getUser().getDeptId();
+
+            List<CompanyDatabase> companyDatabaseList = iotDataBast.query(sql, new BeanPropertyRowMapper<>(CompanyDatabase.class));
+
+            for (CompanyDatabase companyDataba : companyDatabaseList) {
+                String requestEnterpriseName = alarmLogging.getEnterpriseName();
+                if (requestEnterpriseName != null && !requestEnterpriseName.isEmpty()) {
+                    if (!companyDataba.getCompanyName().contains(requestEnterpriseName)) {
+                        continue;
+                    }
+                }
+                String creditCode = "";
+                String jsonString = executeGet(url + companyDataba.getCompanyName(), token);
+                JSONObject jsonObject = JSONObject.parseObject(jsonString);
+                if ("0".equals(jsonObject.getString("error_code"))) {
+                    String result = jsonObject.getString("result");
+                    JSONObject jsonData = JSONObject.parseObject(result);
+                    creditCode = jsonData.getString("creditCode");
+                }
+
+                JdbcTemplate template = jdbcTemplateMap.get(companyDataba.getCompanyDataBaseUrl());
+                String companyData = ", '" + companyDataba.getCompanyName() + "' as enterpriseName";
+                String creditCodeSql = ", '" + creditCode + "' as enterpriseCode";
+
+                List<AlarmLogging> deviceList = template.query("SELECT ie.* ,it.tsl_name as tslName " + companyData + creditCodeSql + " FROM iot_equipment ie " +
+                                "LEFT JOIN iot_tsl it ON ie.tsl_id = it.id " +
+                                " where 1=1 " + (ObjectUtils.isEmpty(condition) ? "" : condition) + ";",
+                        new BeanPropertyRowMapper<AlarmLogging>(AlarmLogging.class));
+                orderList.addAll(deviceList);
+            }
+
+        } catch (Exception e) {
+            throw new RuntimeException(e.getMessage());
+        }
+        TableDataInfo tableDataInfo = new TableDataInfo();
+        tableDataInfo.setCode(HttpStatus.SUCCESS);
+        tableDataInfo.setMsg("查询成功");
+        tableDataInfo.setRows(orderList.stream().skip(pageNum).limit(pageSize).collect(Collectors.toList()));
+        tableDataInfo.setTotal(orderList.size());
+        return tableDataInfo;
+    }
+
+    @Override
     public AjaxResult deviceDetails(Device device) {
         List<IotRealData> iotRealDataList = new ArrayList<>();
         try {

+ 5 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/dataBase/DatabaseConnectionMap.java

@@ -20,7 +20,7 @@ public class DatabaseConnectionMap {
 
     private static ConcurrentHashMap<Long, Map<String, JdbcTemplate>> DATA_BASE_CONNECTION_MAP = new ConcurrentHashMap<>();
 
-    private JdbcTemplate IOT_DATA_BAST;
+    private static JdbcTemplate IOT_DATA_BAST;
 
 
 
@@ -32,6 +32,10 @@ public class DatabaseConnectionMap {
         connectToAllDatabase(null);
     }
 
+    public static JdbcTemplate getIOT_DATA_BAST() {
+        return IOT_DATA_BAST;
+    }
+
     /**
      * 连接iot数据库
      */