From 6992aaf0587c09f7c511c1afd12e1519d91363d3 Mon Sep 17 00:00:00 2001 From: cjl <276999030@qq.com> Date: Thu, 14 Dec 2023 15:38:45 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/cjl' into qa --- screen-job/src/main/java/com/moral/api/service/impl/HistoryAqiServiceImpl.java | 158 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 134 insertions(+), 24 deletions(-) diff --git a/screen-job/src/main/java/com/moral/api/service/impl/HistoryAqiServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/HistoryAqiServiceImpl.java index d387711..e05a362 100644 --- a/screen-job/src/main/java/com/moral/api/service/impl/HistoryAqiServiceImpl.java +++ b/screen-job/src/main/java/com/moral/api/service/impl/HistoryAqiServiceImpl.java @@ -1,5 +1,7 @@ package com.moral.api.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.moral.api.entity.GovMonitorPoint; @@ -8,29 +10,44 @@ import com.moral.api.service.GovMonitorPointService; import com.moral.api.service.HistoryAqiService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.api.util.HttpUtils; import com.moral.constant.Constants; import com.moral.constant.RedisConstants; import com.moral.util.DateUtils; import com.xxl.job.core.context.XxlJobHelper; import lombok.extern.slf4j.Slf4j; +import net.sf.jsqlparser.expression.DoubleValue; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpResponse; +import org.apache.http.client.CookieStore; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.protocol.HttpClientContext; +import org.apache.http.impl.client.BasicCookieStore; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.impl.cookie.BasicClientCookie; +import org.apache.http.protocol.BasicHttpContext; +import org.apache.http.protocol.HttpContext; +import org.apache.http.util.EntityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.ResponseEntity; +import org.springframework.http.*; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; +import org.springframework.web.client.RestClientException; import org.springframework.web.client.RestTemplate; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.*; /** * <p> @@ -60,7 +77,7 @@ //���������aqi���������������������������������������������������������API--��������������� @Override @Transactional - public void insertHistoryAqi() { + public void insertHistoryAqi(String dateTime) { //��������������� HttpHeaders headers = new HttpHeaders(); headers.set("Authorization", "APPCODE 31b6ea8f804a4472be3b633cfee44849"); @@ -69,12 +86,16 @@ QueryWrapper<GovMonitorPoint> queryWrapper = new QueryWrapper<>(); queryWrapper.select("guid").eq("is_delete", Constants.NOT_DELETE); + /*// + queryWrapper.eq("guid","d0955320-4632-4276-b9e2-959e5ace49b3");*/ //������������������������������������������ - List<GovMonitorPoint> govMonitorPoints = govMonitorPointService.list(queryWrapper); - Date time = DateUtils.dataToTimeStampTime(new Date(), DateUtils.yyyy_MM_dd_HH_EN); -// String timeStr = DateUtils.dateToDateString(time, DateUtils.yyyy_MM_dd_HH_mm_ss_EN); - String timeStr = DateUtils.dateToDateString(DateUtils.addHours(time, -1), DateUtils.yyyy_MM_dd_HH_mm_ss_EN); + String time1 = StringUtils.isNotEmpty(dateTime)?dateTime:DateUtils.dateToDateString(new Date(),DateUtils.yyyy_MM_dd_HH_EN); + List<GovMonitorPoint> govMonitorPoints = govMonitorPointService.list(queryWrapper); + Date time = DateUtils.dataToTimeStampTime(DateUtils.getDate(time1, DateUtils.yyyy_MM_dd_HH_EN),DateUtils.yyyy_MM_dd_HH_EN); + + //String timeStr = DateUtils.dateToDateString(time, DateUtils.yyyy_MM_dd_HH_mm_ss_EN); + String timeStr = DateUtils.dateToDateString(DateUtils.addHours(time, -1), DateUtils.yyyy_MM_dd_HH_mm_ss_EN); List<HistoryAqi> historyAqis = new ArrayList<>(); for (GovMonitorPoint govMonitorPoint : govMonitorPoints) { @@ -132,14 +153,8 @@ if (!ObjectUtils.isEmpty(o3)) { value.put(Constants.SENSOR_CODE_O3, o3); } - - //aqi������������redis redisTemplate.opsForHash().put(RedisConstants.AQI_DATA, guid, value); - -// historyAqiMapper.insert(historyAqi); - - }else { ResponseEntity<String> response; try { @@ -158,7 +173,6 @@ historyAqi.setTime(DateUtils.addHours(time, -1)); //��������������� historyAqi.setValue(JSONObject.toJSONString(map)); - historyAqis.add(historyAqi); Map<String, Object> value = new HashMap<>(); @@ -191,13 +205,13 @@ if (!ObjectUtils.isEmpty(o3)) { value.put(Constants.SENSOR_CODE_O3, o3); } - //aqi������������redis redisTemplate.opsForHash().put(RedisConstants.AQI_DATA, guid, value); -// historyAqiMapper.insert(historyAqi); - } + } + if (ObjectUtils.isEmpty(historyAqis)){ + XxlJobHelper.log("���������������"); } //��������������� historyAqiMapper.insertHistoryAqi(historyAqis); @@ -221,4 +235,100 @@ queryWrapper.eq("time", time); return historyAqiMapper.selectList(queryWrapper); } + + @Override + public void insertHCHistoryAqi() { + Date endTime = DateUtils.dataToTimeStampTime(new Date(), "yyyy/MM/dd HH:mm"); + Date startTime = DateUtils.addHours(endTime,-8); + String endTimeStr = DateUtils.dateToDateString(endTime, "yyyy/MM/dd HH")+":00"; + String startStr = DateUtils.dateToDateString(startTime, "yyyy/MM/dd HH")+":00"; + cityHc(startStr,endTimeStr); + } + public void cityHc(String startTime , String endTime){ + String guid = "494942fc-707d-4997-8ada-02cf03a48ca8"; + //String cook ="ASP.NET_SessionId=u1wknnkdq4qjq2rgtdx23jxg; __RequestVerificationToken=Goi78jPi7W5n6rXeetyuDY6meazKED4bLSHbuMiDdJgDH8j5iCW_Dq1hqmTYGKiseHIslQOa9lhOEgGzcFhHxpnYVoC-1fkYp9olbgRyVSfSwGx53EQWZwTqL5X8XszfDTJhuWMcK7qONpSHIBfzzA2; Captcha=A7B9FB; .ASPXAUTH=06E9FA83AFFAD6D023922A9814118F0D3E97B16AF1D814CAAFED4E2E64416E5F4A17649F8C71180BCFE30DD72EB8EDFE6A997B204BF3C6F361C47F650301820CC35C0E9DEC3F22F52F9919EA38A8AFDA294CE107C2F477A4AD5B397268943AE6E7FEB1998DA4A6F6F067B8ABF0C4C8F2C8A6DD337B491D8458B4EA5A9C215549"; + String cook = redisTemplate.opsForHash().get("hc","cook").toString(); + String host = "http://218.60.150.228:8008"; + String path = "//Layui/GetTableData"; + String method = "POST"; + Map<String, String> headers = new HashMap<String, String>(); + headers.put("Cookie", cook); + Map<String, String> querys = new HashMap<String, String>(); + querys.put("StationId","9efce5f9-f5d0-43e8-83ef-9aa7421efe63"); + querys.put("StationId_Text","������������������"); + querys.put("MItemId","5780ec98-a292-4727-9db2-d48c23fe5df5%2C262c4695-a376-4d3c-b122-2551897c1f8f%2Cca3ca54d-6525-4087-8fe5-bbdd77790317%2Cdb38b109-aeed-4888-bb2d-7cff951fd8c6%2Cbc3d741f-89b5-486d-aa25-b0e6a8ea8d2f%2C05e1dc49-5f09-45bc-8214-ceeb79b723d4%2Cba36afa5-2af8-4eb8-a52e-e8e653ce480a%2C9422b004-9761-4ca2-a725-4e998e5bb194%2Cdc3e1cf6-0771-4202-976b-199a3c0d66f5%2Cf02e3db5-5a42-4e1e-9bf2-94f8ee506e08%2Cbc39097e-4623-4076-8b5c-41c5b11d4b9b%2C2bcf2b6d-1588-43be-a2a6-ec4d5d52b707%2Cba20e1eb-23f7-44ea-8159-3e165a50c47c%2C06293d01-fb29-4e36-8dfa-763ef917a071%2C34f2e0e3-7230-45f5-aeac-f7da85f0b8a6%2C33f81201-5c25-459f-96ef-89e66e39d518%2C24173325-a890-4326-a909-1fc92da8d905"); + querys.put("sdtDate",startTime); + querys.put("edtDate",endTime); + querys.put("WorkCondition","2"); + querys.put("_CTRL_ID","MonValueTable"); + querys.put("_PAGE_ID","MonValue"); + try { + HttpResponse response = HttpUtils.doPost(host, path, method, headers, new HashMap<>(),querys); + System.out.println(response.toString()); + //������response���body + String msg = EntityUtils.toString(response.getEntity()); + Map<String, Object> data = JSON.parseObject(msg, Map.class); + String mac = data.get("Data").toString(); + JSONArray jsonArray = JSONArray.parseArray(mac); + if(jsonArray.size()>0){ + JSONObject object = jsonArray.getJSONObject(jsonArray.size()-1); + String pm2_5 = object.get("262c4695-a376-4d3c-b122-2551897c1f8f_15e1b93e-3827-407f-9121-081555a512c5").toString(); + String pm10 = object.get("ca3ca54d-6525-4087-8fe5-bbdd77790317_15e1b93e-3827-407f-9121-081555a512c5").toString(); + String so2 = object.get("db38b109-aeed-4888-bb2d-7cff951fd8c6_15e1b93e-3827-407f-9121-081555a512c5").toString(); + String no2 = object.get("bc3d741f-89b5-486d-aa25-b0e6a8ea8d2f_15e1b93e-3827-407f-9121-081555a512c5").toString(); + String no = object.get("05e1dc49-5f09-45bc-8214-ceeb79b723d4_15e1b93e-3827-407f-9121-081555a512c5").toString(); + String nox = object.get("ba36afa5-2af8-4eb8-a52e-e8e653ce480a_15e1b93e-3827-407f-9121-081555a512c5").toString(); + String co = object.get("9422b004-9761-4ca2-a725-4e998e5bb194_15e1b93e-3827-407f-9121-081555a512c5").toString(); + String o3 = object.get("dc3e1cf6-0771-4202-976b-199a3c0d66f5_15e1b93e-3827-407f-9121-081555a512c5").toString(); + String pubtime = object.get("DistrictId").toString(); + String station = object.get("TimePoint").toString(); + String city = object.get("CityId").toString(); + Map<String,Object> map = new HashMap<>(); + map.put("pm2_5", StringUtils.isNotEmpty(pm2_5)? Double.parseDouble(pm2_5):0d); + map.put("pm10", StringUtils.isNotEmpty(pm10)? Double.parseDouble(pm10):0d); + map.put("so2", StringUtils.isNotEmpty(so2)? Double.parseDouble(so2):0d); + map.put("no2", StringUtils.isNotEmpty(no2)? Double.parseDouble(no2):0d); + map.put("no", StringUtils.isNotEmpty(no)? Double.parseDouble(no):0d); + map.put("co", StringUtils.isNotEmpty(co)? Double.parseDouble(co):0d); + map.put("o3", StringUtils.isNotEmpty(o3)? Double.parseDouble(o3):0d); + map.put("pubtime", pubtime); + map.put("station", station); + map.put("city", city); + HistoryAqi historyAqi = new HistoryAqi(); + historyAqi.setValue(JSONObject.toJSONString(map)); + historyAqi.setGuid(guid); + Date time = DateUtils.getDate(object.get("TimePoint").toString(), DateUtils.yyyy_MM_dd_HH_EN); + historyAqi.setTime(DateUtils.addHours(time,-1)); + Map<String, Object> value = new HashMap<>(); + if (StringUtils.isNotEmpty(pm2_5)) { + value.put(Constants.SENSOR_CODE_PM25, Double.parseDouble(pm2_5)); + } + + if (StringUtils.isNotEmpty(pm10)) { + value.put(Constants.SENSOR_CODE_PM10, Double.parseDouble(pm10)); + } + + if (StringUtils.isNotEmpty(so2)) { + value.put(Constants.SENSOR_CODE_SO2, Double.parseDouble(so2)); + } + + if (StringUtils.isNotEmpty(no2)) { + value.put(Constants.SENSOR_CODE_NO2, Double.parseDouble(no2)); + } + + if (StringUtils.isNotEmpty(co)) { + value.put(Constants.SENSOR_CODE_CO, Double.parseDouble(co.toString())); + } + + if (StringUtils.isNotEmpty(o3)) { + value.put(Constants.SENSOR_CODE_O3, Double.parseDouble(o3)); + } + //aqi������������redis + redisTemplate.opsForHash().put(RedisConstants.AQI_DATA, guid, value); + historyAqiMapper.insertHistoryAqi(Arrays.asList(historyAqi)); + } + } catch (Exception e) { + e.printStackTrace(); + } + } } -- Gitblit v1.8.0