From 664424f52f94028d58c8eebde12d68f4b1f9d020 Mon Sep 17 00:00:00 2001 From: yangjun <1173114630@qq.com> Date: Wed, 27 Aug 2025 19:51:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=87=87=E9=9B=86=E7=83=AD?= =?UTF-8?q?=E9=87=8F=E6=B0=B4=E6=B5=81=E9=87=8F=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../analysisrule/entity/AnalysisRule.java | 6 +- .../modules/heating/entity/Heatanalysis.java | 19 ++ .../modules/heating/job/FlowanalysisJob.java | 192 ++++++++++++++++++ .../heating/mapper/HeatanalysisMapper.java | 2 + .../heating/mapper/xml/HeatanalysisMapper.xml | 4 + .../heating/service/HeatanalysisService.java | 2 + .../service/impl/HeatanalysisServiceImpl.java | 5 + .../entity/BlWaterFlowConfig.java | 8 +- 8 files changed, 231 insertions(+), 7 deletions(-) create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/heating/job/FlowanalysisJob.java diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/analysisrule/entity/AnalysisRule.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/analysisrule/entity/AnalysisRule.java index 4990b67..87b1306 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/analysisrule/entity/AnalysisRule.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/analysisrule/entity/AnalysisRule.java @@ -54,7 +54,7 @@ public class AnalysisRule implements Serializable { @Excel(name = "热力公司ID", width = 15, dictTable = "bl_thermalcompany", dicText = "company_name", dicCode = "id") @Dict(dictTable = "bl_thermalcompany", dicText = "company_name", dicCode = "id") @ApiModelProperty(value = "热力公司ID") - private java.lang.Integer companyId; + private java.lang.String companyId; /**热力公司*/ @Excel(name = "热力公司", width = 15) @ApiModelProperty(value = "热力公司") @@ -63,7 +63,7 @@ public class AnalysisRule implements Serializable { @Excel(name = "锅炉房ID", width = 15, dictTable = "bl_heatsource", dicText = "source_name", dicCode = "id") @Dict(dictTable = "bl_heatsource", dicText = "source_name", dicCode = "id") @ApiModelProperty(value = "锅炉房ID") - private java.lang.Integer sourceId; + private java.lang.String sourceId; /**锅炉房*/ @Excel(name = "锅炉房", width = 15) @ApiModelProperty(value = "锅炉房") @@ -72,7 +72,7 @@ public class AnalysisRule implements Serializable { @Excel(name = "换热站ID", width = 15, dictTable = "bl_heatsourcestation", dicText = "station_name", dicCode = "id") @Dict(dictTable = "bl_heatsourcestation", dicText = "station_name", dicCode = "id") @ApiModelProperty(value = "换热站ID") - private java.lang.Integer stationId; + private java.lang.String stationId; /**换热站*/ @Excel(name = "换热站", width = 15) @ApiModelProperty(value = "换热站") diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/heating/entity/Heatanalysis.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/heating/entity/Heatanalysis.java index 33ebd79..7bafa0d 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/heating/entity/Heatanalysis.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/heating/entity/Heatanalysis.java @@ -1,12 +1,16 @@ package org.jeecg.modules.heating.entity; +import java.io.Serializable; import java.util.Date; import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; import org.jeecg.common.system.base.entity.JeecgEntity; import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; @@ -17,10 +21,25 @@ import org.springframework.format.annotation.DateTimeFormat; */ @Data @TableName("bl_heatanalysis") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) public class Heatanalysis extends JeecgEntity { private static final long serialVersionUID = 1L; + @TableField(exist = false) + private java.lang.String createBy; + @TableField(exist = false) + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private java.util.Date createTime; + @TableField(exist = false) + private java.lang.String updateBy; + @TableField(exist = false) + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private java.util.Date updateTime; + @TableField(exist = false) @Excel(name="热力公司", width = 15) private String view001Name;//公司名称 diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/heating/job/FlowanalysisJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/heating/job/FlowanalysisJob.java new file mode 100644 index 0000000..17d9be4 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/heating/job/FlowanalysisJob.java @@ -0,0 +1,192 @@ +package org.jeecg.modules.heating.job; + +import cn.hutool.json.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.ContentType; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.jeecg.common.util.DateUtils; +import org.jeecg.modules.heating.entity.Heatanalysis; +import org.jeecg.modules.heating.service.HeatanalysisService; +import org.jeecg.modules.waterFlowConfig.entity.BlWaterFlowConfig; +import org.jeecg.modules.waterFlowConfig.service.IBlWaterFlowConfigService; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.springframework.beans.factory.annotation.Autowired; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +/** + * 发送消息任务 + * @author: jeecg-boot + */ + +@Slf4j +public class FlowanalysisJob implements Job { + + @Autowired + private HeatanalysisService heatanalysisService; + + @Autowired + private IBlWaterFlowConfigService WaterFlowConfigService; + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + + log.info(String.format("获取热量水流量数据 ! 时间:" + DateUtils.getTimestamp())); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("del_flag","0"); + List list = WaterFlowConfigService.list(queryWrapper); + for(BlWaterFlowConfig config : list){ + try{ + String sn = config.getSn(); + String json = getWebInfo(sn); + if(StringUtils.equals(json,"false")) continue; + JSONObject jsonObject = new JSONObject(json); + log.info("jsonObject:"+jsonObject); + String success = jsonObject.getStr("success"); + if(StringUtils.equals(success,"true")){ + QueryWrapper heatanalysisQueryWrapper = new QueryWrapper<>(); + heatanalysisQueryWrapper.eq("view031",sn); + heatanalysisQueryWrapper.last("limit 1"); + Heatanalysis heatanalysis = heatanalysisService.getOne(heatanalysisQueryWrapper); + if(heatanalysis != null){ + String view032_old = heatanalysis.getView032(); + String data = jsonObject.getStr("data"); + JSONObject dataObject = new JSONObject(data); + String view032 = dataObject.getStr("logat"); + if(StringUtils.equals(view032,view032_old)){ + log.info("--------数据重复---------"); + continue; + } + String view033 = dataObject.getStr("ID"); + String view034 = dataObject.getStr("valid"); + String view035 = dataObject.getStr("gswd"); + String view036 = dataObject.getStr("hswd"); + String view037 = dataObject.getStr("flowRate"); + String view037_2 = dataObject.getStr("ssll"); + String view038 = dataObject.getStr("pflowAccumulator"); + String view038_2 = dataObject.getStr("zljll"); + String view039 = dataObject.getStr("nflowAccumulator"); + String view039_2 = dataObject.getStr("fljll"); + String view040 = dataObject.getStr("netflowAccumulator"); + String view040_2 = dataObject.getStr("jljll"); + String view041 = dataObject.getStr("ssrl"); + String view042 = dataObject.getStr("zljrl"); + String view043 = dataObject.getStr("fljrl"); + String view044 = dataObject.getStr("jljrl"); + String view045 = dataObject.getStr("ltsd"); + String view046 = dataObject.getStr("n"); + String view047 = dataObject.getStr("m"); + heatanalysis.setView031(sn); + heatanalysis.setView032(view032); + heatanalysis.setView033(view033); + heatanalysis.setView034(view034); + heatanalysis.setView035(view035); + heatanalysis.setView036(view036); + if (StringUtils.isEmpty(view037)){ + heatanalysis.setView037(view037_2); + }else{ + heatanalysis.setView037(view037); + } + if (StringUtils.isEmpty(view038)){ + heatanalysis.setView038(view038_2); + }else{ + heatanalysis.setView038(view038); + } + if (StringUtils.isEmpty(view039)){ + heatanalysis.setView039(view039_2); + }else{ + heatanalysis.setView039(view039); + } + if (StringUtils.isEmpty(view040)){ + heatanalysis.setView040(view040_2); + }else{ + heatanalysis.setView040(view040); + } + heatanalysis.setView041(view041); + heatanalysis.setView042(view042); + heatanalysis.setView043(view043); + heatanalysis.setView044(view044); + heatanalysis.setView045(view045); + heatanalysis.setView046(view046); + heatanalysis.setView047(view047); + heatanalysisService.exeWater(heatanalysis); + + } + } + + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + + + public static String getWebInfo(String sn) { + String result = "false"; + try { + // 1. 创建URL对象 + URL url = new URL("http://49.235.190.102:8068/api/v1/feeding/snap/b501a6e0-d23f-4282-8fab-78661bf999e7/"+sn); + + // 2. 打开连接,转换为HttpURLConnection + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + + // 3. 设置请求方法为GET + connection.setRequestMethod("GET"); + + // 4. 可选:设置请求头(例如,指定期望的响应内容类型) + connection.setRequestProperty("Accept", "application/json"); + + // 5. 获取响应代码 + int responseCode = connection.getResponseCode(); + System.out.println("Response Code: " + responseCode); + + // 6. 如果响应成功(200 OK),读取响应体 + if (responseCode == HttpURLConnection.HTTP_OK) { + // 使用BufferedReader读取输入流 + BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); + String inputLine; + StringBuilder response = new StringBuilder(); + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); // 关闭流 + + // 打印响应结果 + log.info(String.format("获取热量水流量数据 - Response Body:" + response.toString())); + result = response.toString(); + } else { + log.error(String.format("获取热量水流量数据 - GET request failed.")); + result = "false"; + } + + // 7. 断开连接 + connection.disconnect(); + + } catch (IOException e) { + e.printStackTrace(); + result = "false"; + } + return result; + } + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/heating/mapper/HeatanalysisMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/heating/mapper/HeatanalysisMapper.java index c58ba02..4395524 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/heating/mapper/HeatanalysisMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/heating/mapper/HeatanalysisMapper.java @@ -21,4 +21,6 @@ public interface HeatanalysisMapper extends BaseMapper { Page findTwoPage(Page page, @Param("params") Heatanalysis heatanalysis); Page findExtractedOnePage(Page page, @Param("params") Heatanalysis heatanalysis); Page findExtractedTwoPage(Page page, @Param("params") Heatanalysis heatanalysis); + + void exeWater(Heatanalysis heatanalysis); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/heating/mapper/xml/HeatanalysisMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/heating/mapper/xml/HeatanalysisMapper.xml index f6b8998..ff119d1 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/heating/mapper/xml/HeatanalysisMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/heating/mapper/xml/HeatanalysisMapper.xml @@ -285,6 +285,10 @@ CALL P_Q_D_HEATANALYSIS_SIMULATE_NEW(#{code}, #{sim}, #{datatime}, #{view005}, #{view006}, #{view007}, #{view008}, #{view009}, #{view010}, #{view011}, #{view012}) + + CALL P_Q_D_HEATFLOWANALYSIS(#{view031}, #{view032}, #{view033}, #{view034}, #{view035}, #{view036}, #{view037}, #{view038}, #{view039}, #{view040}, #{view041}, #{view042}, #{view043}, #{view044}, #{view045}, #{view046}, #{view047}) + +