diff --git a/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java b/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java index 6d55f9ff8..2cc99ab06 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java @@ -267,8 +267,6 @@ public class Project implements Serializable { private String jzgProjectCode; @ApiModelProperty(value = "金筑工访问host") private String jzgHost; - @ApiModelProperty(value = "携稳url") - private String xiwonUrl; /** * 弃用,使用xiwonUrl */ @@ -295,6 +293,10 @@ public class Project implements Serializable { private String bimCommandCenterUrl; @ApiModelProperty(value = "天气信息") private String weatherInfo; + @ApiModelProperty(value = "济南仁智测控账号") + private String jnrzckAccount; + @ApiModelProperty(value = "济南仁智测控密码") + private String jnrzckPw; /** * runde平台token diff --git a/src/main/java/com/zhgd/xmgl/task/ElectricalTask.java b/src/main/java/com/zhgd/xmgl/task/ElectricalTask.java index fe46e1d61..7e89aad74 100644 --- a/src/main/java/com/zhgd/xmgl/task/ElectricalTask.java +++ b/src/main/java/com/zhgd/xmgl/task/ElectricalTask.java @@ -66,8 +66,6 @@ public class ElectricalTask { log.info("获取最新电量使用情况 每5分钟触发任务"); if (StringUtils.isNotBlank(url)) { List projectList = projectMapper.selectList(new LambdaQueryWrapper() - .ne(Project::getXiwonUrl, "") - .isNotNull(Project::getXiwonUrl) .ne(Project::getXiwonAppId, "") .isNotNull(Project::getXiwonAppId) .ne(Project::getXiwonAppSecret, "") diff --git a/src/main/java/com/zhgd/xmgl/task/StandardDevTask.java b/src/main/java/com/zhgd/xmgl/task/StandardDevTask.java index bee0418e3..a23da228b 100644 --- a/src/main/java/com/zhgd/xmgl/task/StandardDevTask.java +++ b/src/main/java/com/zhgd/xmgl/task/StandardDevTask.java @@ -2,16 +2,19 @@ package com.zhgd.xmgl.task; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.util.HuaWeiMessageUtils; import com.zhgd.xmgl.modules.basicdata.entity.Notice; +import com.zhgd.xmgl.modules.basicdata.service.INoticeService; +import com.zhgd.xmgl.modules.project.entity.Project; +import com.zhgd.xmgl.modules.project.mapper.ProjectMapper; import com.zhgd.xmgl.modules.standard.entity.StandardAlarm; import com.zhgd.xmgl.modules.standard.entity.StandardContinuityAlarm; import com.zhgd.xmgl.modules.standard.entity.StandardCurrentData; import com.zhgd.xmgl.modules.standard.entity.StandardDev; import com.zhgd.xmgl.modules.standard.mapper.*; -import com.zhgd.xmgl.modules.basicdata.service.INoticeService; import com.zhgd.xmgl.util.StandardDevUtil; import lombok.extern.log4j.Log4j; import net.javacrumbs.shedlock.core.SchedulerLock; @@ -55,6 +58,8 @@ public class StandardDevTask { private StandardAlarmMapper standardAlarmMapper; @Autowired private StandardDevRealTimeDataMapper standardDevRealTimeDataMapper; + @Autowired + private ProjectMapper projectMapper; @Value("${isGetStandardData}") private boolean isGetStandardData; @@ -65,29 +70,29 @@ public class StandardDevTask { * 根据实时数据计算每15分钟标养室是否报警 */ @Scheduled(cron = "0 0/15 * * * ?") - @SchedulerLock(name = "totalStandardAlarmTypeTask", lockAtMostFor = 1000*60*10, lockAtLeastFor = 1000*60*3) - public void totalStandardAlarmTypeTask(){ - try{ + @SchedulerLock(name = "totalStandardAlarmTypeTask", lockAtMostFor = 1000 * 60 * 10, lockAtLeastFor = 1000 * 60 * 3) + public void totalStandardAlarmTypeTask() { + try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - String time=sdf.format(new Date()); - List list=standardCurrentDataMapper.selectStandardCurrentDataTotalAlarmStateList(); - if(list.size()>0){ - for(EntityMap map:list){ - StandardContinuityAlarm standardContinuityAlarm=new StandardContinuityAlarm(); - standardContinuityAlarm.setProjectSn(MapUtils.getString(map,"projectSn")); - standardContinuityAlarm.setDevSn(MapUtils.getString(map,"devSn")); - standardContinuityAlarm.setAlarmState(MapUtils.getInteger(map,"alarmType")); + String time = sdf.format(new Date()); + List list = standardCurrentDataMapper.selectStandardCurrentDataTotalAlarmStateList(); + if (list.size() > 0) { + for (EntityMap map : list) { + StandardContinuityAlarm standardContinuityAlarm = new StandardContinuityAlarm(); + standardContinuityAlarm.setProjectSn(MapUtils.getString(map, "projectSn")); + standardContinuityAlarm.setDevSn(MapUtils.getString(map, "devSn")); + standardContinuityAlarm.setAlarmState(MapUtils.getInteger(map, "alarmType")); standardContinuityAlarm.setQueryTime(time); standardContinuityAlarmMapper.insert(standardContinuityAlarm); } } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } - private void addNotice(StandardDev dev, String alarmPushWorkerId){ + private void addNotice(StandardDev dev, String alarmPushWorkerId) { try { if (StringUtils.isNotEmpty(alarmPushWorkerId) && alarmPushWorkerId.length() > 0) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -104,49 +109,50 @@ public class StandardDevTask { noticeService.addNotice(notice, true); } } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } - private void sendSms(StandardDev dev,String alarmPushPhone,int hour) { + private void sendSms(StandardDev dev, String alarmPushPhone, int hour) { try { - if (StringUtils.isNotEmpty(alarmPushPhone) && alarmPushPhone.length() > 0 &&!"[]".equals(alarmPushPhone)) { - JSONArray array=JSONArray.parseArray(alarmPushPhone); + if (StringUtils.isNotEmpty(alarmPushPhone) && alarmPushPhone.length() > 0 && !"[]".equals(alarmPushPhone)) { + JSONArray array = JSONArray.parseArray(alarmPushPhone); String signature = "华为云短信测试"; //短信模板ID //String templateId = "790d907f70594b4893227fc1d97e78bc"; //模板参数 - String context=dev.getProjectName()+ "," +dev.getLaboratoryName()+ ","+ hour; - for (int i=0;i list=standardDevMapper.selectContinuityAlarmDev(1); - log.info("----------------------标养室1小时报警推送---------------------------------任务数:"+list.size()); - if(list!=null&&list.size()>0){ - for(StandardDev dev:list){ - addNotice(dev,dev.getOneHourPushWorkerId()); - sendSms(dev,dev.getOneHourPushPhone(),1); + List list = standardDevMapper.selectContinuityAlarmDev(1); + log.info("----------------------标养室1小时报警推送---------------------------------任务数:" + list.size()); + if (list != null && list.size() > 0) { + for (StandardDev dev : list) { + addNotice(dev, dev.getOneHourPushWorkerId()); + sendSms(dev, dev.getOneHourPushPhone(), 1); //添加报警记录 addStandardAlarm(dev); } @@ -156,9 +162,9 @@ public class StandardDevTask { } } - private void addStandardAlarm(StandardDev dev){ + private void addStandardAlarm(StandardDev dev) { java.text.DateFormat format1 = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - StandardAlarm standardAlarm=new StandardAlarm(); + StandardAlarm standardAlarm = new StandardAlarm(); standardAlarm.setAlarmTime(format1.format(new Date())); standardAlarm.setAlarmType("温湿度异常"); standardAlarm.setProjectSn(dev.getProjectSn()); @@ -170,50 +176,52 @@ public class StandardDevTask { * 2小时报警推送 */ @Scheduled(cron = "0 0 */2 * * ?") - @SchedulerLock(name = "twoHourTask", lockAtMostFor = 1000*60*30, lockAtLeastFor = 1000*60*5) + @SchedulerLock(name = "twoHourTask", lockAtMostFor = 1000 * 60 * 30, lockAtLeastFor = 1000 * 60 * 5) public void twoHourTask() { try { - List list=standardDevMapper.selectContinuityAlarmDev(2); - if(list!=null&&list.size()>0){ - for(StandardDev dev:list){ - addNotice(dev,dev.getTwoHourPushWorkerId()); - sendSms(dev,dev.getTwoHourPushPhone(),2); + List list = standardDevMapper.selectContinuityAlarmDev(2); + if (list != null && list.size() > 0) { + for (StandardDev dev : list) { + addNotice(dev, dev.getTwoHourPushWorkerId()); + sendSms(dev, dev.getTwoHourPushPhone(), 2); } } } catch (Exception e) { e.printStackTrace(); } } + /** * 3小时报警推送 */ @Scheduled(cron = "0 0 */3 * * ?") - @SchedulerLock(name = "threeHourTask", lockAtMostFor = 1000*60*30, lockAtLeastFor = 1000*60*5) + @SchedulerLock(name = "threeHourTask", lockAtMostFor = 1000 * 60 * 30, lockAtLeastFor = 1000 * 60 * 5) public void threeHourTask() { try { - List list=standardDevMapper.selectContinuityAlarmDev(3); - if(list!=null&&list.size()>0){ - for(StandardDev dev:list){ - addNotice(dev,dev.getThreeHourPushWorkerId()); - sendSms(dev,dev.getThreeHourPushPhone(),3); + List list = standardDevMapper.selectContinuityAlarmDev(3); + if (list != null && list.size() > 0) { + for (StandardDev dev : list) { + addNotice(dev, dev.getThreeHourPushWorkerId()); + sendSms(dev, dev.getThreeHourPushPhone(), 3); } } } catch (Exception e) { e.printStackTrace(); } } + /** * 12小时报警推送 */ @Scheduled(cron = "0 0 */6 * * ?") - @SchedulerLock(name = "twelveHourTask", lockAtMostFor = 1000*60*30, lockAtLeastFor = 1000*60*5) + @SchedulerLock(name = "twelveHourTask", lockAtMostFor = 1000 * 60 * 30, lockAtLeastFor = 1000 * 60 * 5) public void twelveHourTask() { try { - List list=standardDevMapper.selectContinuityAlarmDev(5); - if(list!=null&&list.size()>0){ - for(StandardDev dev:list){ - addNotice(dev,dev.getTwelveHourPushWorkerId()); - sendSms(dev,dev.getTwelveHourPushPhone(),12); + List list = standardDevMapper.selectContinuityAlarmDev(5); + if (list != null && list.size() > 0) { + for (StandardDev dev : list) { + addNotice(dev, dev.getTwelveHourPushWorkerId()); + sendSms(dev, dev.getTwelveHourPushPhone(), 12); } } @@ -226,14 +234,14 @@ public class StandardDevTask { * 6小时报警推送 */ @Scheduled(cron = "0 0 */6 * * ?") - @SchedulerLock(name = "sixHourTask", lockAtMostFor = 1000*60*30, lockAtLeastFor = 1000*60*5) + @SchedulerLock(name = "sixHourTask", lockAtMostFor = 1000 * 60 * 30, lockAtLeastFor = 1000 * 60 * 5) public void sixHourTask() { try { - List list=standardDevMapper.selectContinuityAlarmDev(4); - if(list!=null&&list.size()>0){ - for(StandardDev dev:list){ - addNotice(dev,dev.getSixHourPushWorkerId()); - sendSms(dev,dev.getSixHourPushPhone(),6); + List list = standardDevMapper.selectContinuityAlarmDev(4); + if (list != null && list.size() > 0) { + for (StandardDev dev : list) { + addNotice(dev, dev.getSixHourPushWorkerId()); + sendSms(dev, dev.getSixHourPushPhone(), 6); } } @@ -246,14 +254,14 @@ public class StandardDevTask { * 24小时报警推送 */ @Scheduled(cron = "0 0 */24 * * ?") - @SchedulerLock(name = "twelveFourHourTask", lockAtMostFor = 1000*60*30, lockAtLeastFor = 1000*60*5) + @SchedulerLock(name = "twelveFourHourTask", lockAtMostFor = 1000 * 60 * 30, lockAtLeastFor = 1000 * 60 * 5) public void twelveFourHourTask() { try { - List list=standardDevMapper.selectContinuityAlarmDev(6); - if(list!=null&&list.size()>0){ - for(StandardDev dev:list){ - addNotice(dev,dev.getTwelveFourHourPushWorkerId()); - sendSms(dev,dev.getTwelveFourHourPushPhone(),24); + List list = standardDevMapper.selectContinuityAlarmDev(6); + if (list != null && list.size() > 0) { + for (StandardDev dev : list) { + addNotice(dev, dev.getTwelveFourHourPushWorkerId()); + sendSms(dev, dev.getTwelveFourHourPushPhone(), 24); } } } catch (Exception e) { @@ -266,23 +274,29 @@ public class StandardDevTask { */ @Scheduled(cron = "0 0/2 * * * ?") @SchedulerLock(name = "getStandardData", lockAtMostFor = 1000 * 60 * 2, lockAtLeastFor = 1000 * 60 * 1) - @GetMapping("/getStandardData") - public void getStandardData(){ - if (isGetStandardData) { - try { - log.info("------------拉取执行标样室时数据任务开始---------"); - QueryWrapper queryWrapper = new QueryWrapper<>(); + @GetMapping("/task/getStandardData") + public void getStandardData() { + try { + log.info("------------拉取执行标样室时数据任务开始---------"); + List projectList = projectMapper.selectList(new LambdaQueryWrapper() + .ne(Project::getJnrzckAccount, "") + .isNotNull(Project::getJnrzckAccount) + .ne(Project::getJnrzckPw, "") + .isNotNull(Project::getJnrzckPw) + ); + for (Project project : projectList) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(StandardDev::getProjectSn, project.getProjectSn()); List list = standardDevMapper.selectList(queryWrapper); if (list != null && list.size() > 0) { - JSONArray array = StandardDevUtil.getDeviceData(""); + JSONArray array = StandardDevUtil.getDeviceData("", project.getJnrzckAccount(), project.getJnrzckPw()); for (StandardDev dev : list) { - List temperatureList = new ArrayList<>(); List humidityList = new ArrayList<>(); if (array != null && array.size() > 0) { for (int i = 0; i < array.size(); i++) { JSONObject obj = array.getJSONObject(i); - if(dev.getDevSn().equals(obj.getString("deviceAddr"))) { + if (dev.getDevSn().equals(obj.getString("deviceAddr"))) { //判断设备是否在线 if ("2".equals(obj.getString("deviceStatus"))) { JSONArray jsonArray = obj.getJSONArray("realTimeData"); @@ -290,11 +304,11 @@ public class StandardDevTask { for (int a = 0; a < jsonArray.size(); a++) { JSONObject obj2 = jsonArray.getJSONObject(a); if (obj2.getString("dataName").indexOf("温度") >= 0) { - if (StringUtils.isNotEmpty(obj2.getString("dataValue"))&&obj2.getDouble("dataValue")!=0d) { + if (StringUtils.isNotEmpty(obj2.getString("dataValue")) && obj2.getDouble("dataValue") != 0d) { temperatureList.add(Double.valueOf(obj2.getString("dataValue"))); } } else if (obj2.getString("dataName").indexOf("湿度") >= 0) { - if (StringUtils.isNotEmpty(obj2.getString("dataValue"))&&obj2.getDouble("dataValue")!=0d) { + if (StringUtils.isNotEmpty(obj2.getString("dataValue")) && obj2.getDouble("dataValue") != 0d) { humidityList.add(Double.valueOf(obj2.getString("dataValue"))); } } @@ -332,10 +346,10 @@ public class StandardDevTask { } } } - log.info("------------拉取执行标样室时数据任务结束---------"); - }catch(Exception e){ - e.printStackTrace(); } + log.info("------------拉取执行标样室时数据任务结束---------"); + } catch (Exception e) { + e.printStackTrace(); } } @@ -344,7 +358,7 @@ public class StandardDevTask { * 汇总标养室设备实时数据 */ @Scheduled(cron = "0 0/2 * * * ?") - @SchedulerLock(name = "saveStandardRealTimeDataTask", lockAtMostFor = 1000*60*1, lockAtLeastFor = 1000*30) + @SchedulerLock(name = "saveStandardRealTimeDataTask", lockAtMostFor = 1000 * 60 * 1, lockAtLeastFor = 1000 * 30) public void saveStandardRealTimeDataTask() { try { @@ -352,23 +366,23 @@ public class StandardDevTask { List list = standardDevMapper.selectList(queryWrapper); if (list != null && list.size() > 0) { for (StandardDev dev : list) { - int dataNum=0; - String temperature=null; - String humidity=null; - List> dataList=standardDevRealTimeDataMapper.selectDevRealTimeDataCount(dev.getDevSn()); - if(dataList!=null&&dataList.size()>0){ - for (Map data:dataList){ - if(MapUtils.getString(data,"dataName").indexOf("温度")>=0){ - dataNum=dataNum+MapUtils.getInteger(data,"num"); - temperature=MapUtils.getString(data,"avgValue"); - }else if(MapUtils.getString(data,"dataName").indexOf("湿度")>=0){ - dataNum=dataNum+MapUtils.getInteger(data,"num"); - humidity=MapUtils.getString(data,"avgValue"); + int dataNum = 0; + String temperature = null; + String humidity = null; + List> dataList = standardDevRealTimeDataMapper.selectDevRealTimeDataCount(dev.getDevSn()); + if (dataList != null && dataList.size() > 0) { + for (Map data : dataList) { + if (MapUtils.getString(data, "dataName").indexOf("温度") >= 0) { + dataNum = dataNum + MapUtils.getInteger(data, "num"); + temperature = MapUtils.getString(data, "avgValue"); + } else if (MapUtils.getString(data, "dataName").indexOf("湿度") >= 0) { + dataNum = dataNum + MapUtils.getInteger(data, "num"); + humidity = MapUtils.getString(data, "avgValue"); } } } //没有数据不插入 - if (dataNum> 0) { + if (dataNum > 0) { StandardCurrentData standardCurrentData = new StandardCurrentData(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); standardCurrentData.setReceiveTime(sdf.format(new Date())); @@ -387,7 +401,7 @@ public class StandardDevTask { } } - }catch(Exception e){ + } catch (Exception e) { e.printStackTrace(); } } diff --git a/src/main/java/com/zhgd/xmgl/util/StandardDevUtil.java b/src/main/java/com/zhgd/xmgl/util/StandardDevUtil.java index 456753cab..eab75f796 100644 --- a/src/main/java/com/zhgd/xmgl/util/StandardDevUtil.java +++ b/src/main/java/com/zhgd/xmgl/util/StandardDevUtil.java @@ -24,18 +24,18 @@ public class StandardDevUtil { //账户 //public static final String loginName = "t210127lekd"; - public static final String loginName = "2023wenshiduceshi"; + //public static final String loginName = "2023wenshiduceshi"; //密码 //public static final String password = "t210127lekd"; - public static final String password = "2023wenshiduceshi"; + //public static final String password = "2023wenshiduceshi"; //public static final String url = "http://iot.0531yun.cn/wsjc"; public static final String url = "https://www.0531yun.com"; private static String userId = ""; - public static String getLoginUserId() { + public static String getLoginUserId(String jnrzckAccount, String jnrzckPw) { Map param = new HashMap<>(); - param.put("loginName", loginName); - param.put("password", password); + param.put("loginName", jnrzckAccount); + param.put("password", jnrzckPw); String urlString = url + "/app/Login"; String body = JSONUtil.toJsonStr(param); log.info("url:{},body:{}", urlString, body); @@ -52,10 +52,8 @@ public class StandardDevUtil { return null; } - public static JSONArray getDeviceData(String groupId) { - if (StringUtils.isEmpty(userId)) { - userId = getLoginUserId(); - } + public static JSONArray getDeviceData(String groupId, String jnrzckAccount, String jnrzckPw) { + userId = getLoginUserId(jnrzckAccount, jnrzckPw); Map param = new HashMap<>(); param.put("groupId", groupId); Map headerMap = new HashMap<>(); @@ -82,7 +80,5 @@ public class StandardDevUtil { } public static void main(String[] args) { - getLoginUserId(); - getDeviceData(""); } }