diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java index 89c5212..9e8d154 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -51,7 +51,6 @@ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - //业务逻辑 SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java index 89c5212..9e8d154 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -51,7 +51,6 @@ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - //业务逻辑 SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d906508..fa92688 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -120,7 +120,7 @@ @Override public List> jobInfo(Long id, DataScope dataScope, Long personId) { - List> jobList = this.baseMapper.jobInfo(id,dataScope, personId); + List> jobList = this.baseMapper.jobInfo(id, dataScope, personId); jobList.forEach(job -> job.put("editable", job.get("jobBelongTo") != null && job.get("jobBelongTo").toString().equals(personId) ? 1 : 0)); return jobList; } @@ -139,18 +139,18 @@ public boolean getJob(Long id, long personId) { Calendar now = Calendar.getInstance(); Date getTime = now.getTime(); -// if (isWeekend(now)) { -// now.add(Calendar.WEEK_OF_YEAR, 1); -// now.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); -// now.set(Calendar.HOUR_OF_DAY, 8); -// now.set(Calendar.MINUTE, 0); -// now.set(Calendar.SECOND, 0); -// } else { -// now.add(Calendar.HOUR, 24); -// while (isWeekend(now)) { -// now.add(Calendar.HOUR, 24); -// } -// } + if (isWeekend(now)) { + now.add(Calendar.WEEK_OF_YEAR, 1); + now.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); + now.set(Calendar.HOUR_OF_DAY, 8); + now.set(Calendar.MINUTE, 0); + now.set(Calendar.SECOND, 0); + } else { + now.add(Calendar.HOUR, 24); + while (isWeekend(now)) { + now.add(Calendar.HOUR, 24); + } + } Date shouldHandleTime = now.getTime(); if (useOverTime.equals("true")) { System.out.println(shouldHandleTime); @@ -204,6 +204,16 @@ // return this.baseMapper.overJob(id, personId,handleMessage, handlePhotos); } + public static void main(String [] args) { + Calendar now = Calendar.getInstance(); + Date getTime = now.getTime(); + now.add(Calendar.WEEK_OF_YEAR, 1); + now.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + now.set(Calendar.HOUR_OF_DAY, 10);//默认8点上班 + now.set(Calendar.MINUTE, 0); + now.set(Calendar.SECOND, 0); + } + @Override public boolean handleJob(Long id, long personId) { return this.baseMapper.handleJob(id, personId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java index 89c5212..9e8d154 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -51,7 +51,6 @@ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - //业务逻辑 SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d906508..fa92688 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -120,7 +120,7 @@ @Override public List> jobInfo(Long id, DataScope dataScope, Long personId) { - List> jobList = this.baseMapper.jobInfo(id,dataScope, personId); + List> jobList = this.baseMapper.jobInfo(id, dataScope, personId); jobList.forEach(job -> job.put("editable", job.get("jobBelongTo") != null && job.get("jobBelongTo").toString().equals(personId) ? 1 : 0)); return jobList; } @@ -139,18 +139,18 @@ public boolean getJob(Long id, long personId) { Calendar now = Calendar.getInstance(); Date getTime = now.getTime(); -// if (isWeekend(now)) { -// now.add(Calendar.WEEK_OF_YEAR, 1); -// now.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); -// now.set(Calendar.HOUR_OF_DAY, 8); -// now.set(Calendar.MINUTE, 0); -// now.set(Calendar.SECOND, 0); -// } else { -// now.add(Calendar.HOUR, 24); -// while (isWeekend(now)) { -// now.add(Calendar.HOUR, 24); -// } -// } + if (isWeekend(now)) { + now.add(Calendar.WEEK_OF_YEAR, 1); + now.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); + now.set(Calendar.HOUR_OF_DAY, 8); + now.set(Calendar.MINUTE, 0); + now.set(Calendar.SECOND, 0); + } else { + now.add(Calendar.HOUR, 24); + while (isWeekend(now)) { + now.add(Calendar.HOUR, 24); + } + } Date shouldHandleTime = now.getTime(); if (useOverTime.equals("true")) { System.out.println(shouldHandleTime); @@ -204,6 +204,16 @@ // return this.baseMapper.overJob(id, personId,handleMessage, handlePhotos); } + public static void main(String [] args) { + Calendar now = Calendar.getInstance(); + Date getTime = now.getTime(); + now.add(Calendar.WEEK_OF_YEAR, 1); + now.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + now.set(Calendar.HOUR_OF_DAY, 10);//默认8点上班 + now.set(Calendar.MINUTE, 0); + now.set(Calendar.SECOND, 0); + } + @Override public boolean handleJob(Long id, long personId) { return this.baseMapper.handleJob(id, personId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml index 151be02..20ef3d2 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml @@ -555,6 +555,7 @@ + ORDER BY aj.CREATE_TIME DESC diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java index 89c5212..9e8d154 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -51,7 +51,6 @@ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - //业务逻辑 SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d906508..fa92688 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -120,7 +120,7 @@ @Override public List> jobInfo(Long id, DataScope dataScope, Long personId) { - List> jobList = this.baseMapper.jobInfo(id,dataScope, personId); + List> jobList = this.baseMapper.jobInfo(id, dataScope, personId); jobList.forEach(job -> job.put("editable", job.get("jobBelongTo") != null && job.get("jobBelongTo").toString().equals(personId) ? 1 : 0)); return jobList; } @@ -139,18 +139,18 @@ public boolean getJob(Long id, long personId) { Calendar now = Calendar.getInstance(); Date getTime = now.getTime(); -// if (isWeekend(now)) { -// now.add(Calendar.WEEK_OF_YEAR, 1); -// now.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); -// now.set(Calendar.HOUR_OF_DAY, 8); -// now.set(Calendar.MINUTE, 0); -// now.set(Calendar.SECOND, 0); -// } else { -// now.add(Calendar.HOUR, 24); -// while (isWeekend(now)) { -// now.add(Calendar.HOUR, 24); -// } -// } + if (isWeekend(now)) { + now.add(Calendar.WEEK_OF_YEAR, 1); + now.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); + now.set(Calendar.HOUR_OF_DAY, 8); + now.set(Calendar.MINUTE, 0); + now.set(Calendar.SECOND, 0); + } else { + now.add(Calendar.HOUR, 24); + while (isWeekend(now)) { + now.add(Calendar.HOUR, 24); + } + } Date shouldHandleTime = now.getTime(); if (useOverTime.equals("true")) { System.out.println(shouldHandleTime); @@ -204,6 +204,16 @@ // return this.baseMapper.overJob(id, personId,handleMessage, handlePhotos); } + public static void main(String [] args) { + Calendar now = Calendar.getInstance(); + Date getTime = now.getTime(); + now.add(Calendar.WEEK_OF_YEAR, 1); + now.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + now.set(Calendar.HOUR_OF_DAY, 10);//默认8点上班 + now.set(Calendar.MINUTE, 0); + now.set(Calendar.SECOND, 0); + } + @Override public boolean handleJob(Long id, long personId) { return this.baseMapper.handleJob(id, personId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml index 151be02..20ef3d2 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml @@ -555,6 +555,7 @@ + ORDER BY aj.CREATE_TIME DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index 674239c..b0338f5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -21,6 +21,7 @@ abstractRequestHashMap.put(DeviceTypeEnum.Methane.toString(), new MethaneRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Tube.toString(), new TubeRequest()); abstractRequestHashMap.put(DeviceTypeEnum.WasteGas.toString(), new WasteGasRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.Well.toString(), new WellRequest()); // abstractRequestHashMap.put(DeviceTypeEnum.WaterMeter.toString(), new WaterMeterRequest()); // abstractRequestHashMap.put(DeviceTypeEnum.TempPressure.toString(), new TemPressureRequest()); abstractRequestHashMap.put(DeviceTypeEnum.TempHumi.toString(), new TempHumiRequest()); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java index 89c5212..9e8d154 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -51,7 +51,6 @@ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - //业务逻辑 SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d906508..fa92688 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -120,7 +120,7 @@ @Override public List> jobInfo(Long id, DataScope dataScope, Long personId) { - List> jobList = this.baseMapper.jobInfo(id,dataScope, personId); + List> jobList = this.baseMapper.jobInfo(id, dataScope, personId); jobList.forEach(job -> job.put("editable", job.get("jobBelongTo") != null && job.get("jobBelongTo").toString().equals(personId) ? 1 : 0)); return jobList; } @@ -139,18 +139,18 @@ public boolean getJob(Long id, long personId) { Calendar now = Calendar.getInstance(); Date getTime = now.getTime(); -// if (isWeekend(now)) { -// now.add(Calendar.WEEK_OF_YEAR, 1); -// now.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); -// now.set(Calendar.HOUR_OF_DAY, 8); -// now.set(Calendar.MINUTE, 0); -// now.set(Calendar.SECOND, 0); -// } else { -// now.add(Calendar.HOUR, 24); -// while (isWeekend(now)) { -// now.add(Calendar.HOUR, 24); -// } -// } + if (isWeekend(now)) { + now.add(Calendar.WEEK_OF_YEAR, 1); + now.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); + now.set(Calendar.HOUR_OF_DAY, 8); + now.set(Calendar.MINUTE, 0); + now.set(Calendar.SECOND, 0); + } else { + now.add(Calendar.HOUR, 24); + while (isWeekend(now)) { + now.add(Calendar.HOUR, 24); + } + } Date shouldHandleTime = now.getTime(); if (useOverTime.equals("true")) { System.out.println(shouldHandleTime); @@ -204,6 +204,16 @@ // return this.baseMapper.overJob(id, personId,handleMessage, handlePhotos); } + public static void main(String [] args) { + Calendar now = Calendar.getInstance(); + Date getTime = now.getTime(); + now.add(Calendar.WEEK_OF_YEAR, 1); + now.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + now.set(Calendar.HOUR_OF_DAY, 10);//默认8点上班 + now.set(Calendar.MINUTE, 0); + now.set(Calendar.SECOND, 0); + } + @Override public boolean handleJob(Long id, long personId) { return this.baseMapper.handleJob(id, personId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml index 151be02..20ef3d2 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml @@ -555,6 +555,7 @@ + ORDER BY aj.CREATE_TIME DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index 674239c..b0338f5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -21,6 +21,7 @@ abstractRequestHashMap.put(DeviceTypeEnum.Methane.toString(), new MethaneRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Tube.toString(), new TubeRequest()); abstractRequestHashMap.put(DeviceTypeEnum.WasteGas.toString(), new WasteGasRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.Well.toString(), new WellRequest()); // abstractRequestHashMap.put(DeviceTypeEnum.WaterMeter.toString(), new WaterMeterRequest()); // abstractRequestHashMap.put(DeviceTypeEnum.TempPressure.toString(), new TemPressureRequest()); abstractRequestHashMap.put(DeviceTypeEnum.TempHumi.toString(), new TempHumiRequest()); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/WellRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/WellRequest.java new file mode 100644 index 0000000..3c6cd85 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/WellRequest.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.rs; + +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class WellRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + @Override + public void send(String devCode, String content, String attemptsMax) { + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + commConfigDTO.setRepeat(Long.valueOf(content.split(",")[0])); + commConfigDTO.setInterval(Long.valueOf(content.split(",")[1])); + commConfigDTO.setPeriod(Long.valueOf(content.split(",")[2])); + if(StringUtils.isNotBlank(content.split(",",5)[3])){ + commConfigDTO.setIp(content.split(",", 5)[3]); + commConfigDTO.setPort(Long.valueOf(content.split(",", 5)[4])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java index 89c5212..9e8d154 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -51,7 +51,6 @@ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - //业务逻辑 SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d906508..fa92688 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -120,7 +120,7 @@ @Override public List> jobInfo(Long id, DataScope dataScope, Long personId) { - List> jobList = this.baseMapper.jobInfo(id,dataScope, personId); + List> jobList = this.baseMapper.jobInfo(id, dataScope, personId); jobList.forEach(job -> job.put("editable", job.get("jobBelongTo") != null && job.get("jobBelongTo").toString().equals(personId) ? 1 : 0)); return jobList; } @@ -139,18 +139,18 @@ public boolean getJob(Long id, long personId) { Calendar now = Calendar.getInstance(); Date getTime = now.getTime(); -// if (isWeekend(now)) { -// now.add(Calendar.WEEK_OF_YEAR, 1); -// now.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); -// now.set(Calendar.HOUR_OF_DAY, 8); -// now.set(Calendar.MINUTE, 0); -// now.set(Calendar.SECOND, 0); -// } else { -// now.add(Calendar.HOUR, 24); -// while (isWeekend(now)) { -// now.add(Calendar.HOUR, 24); -// } -// } + if (isWeekend(now)) { + now.add(Calendar.WEEK_OF_YEAR, 1); + now.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); + now.set(Calendar.HOUR_OF_DAY, 8); + now.set(Calendar.MINUTE, 0); + now.set(Calendar.SECOND, 0); + } else { + now.add(Calendar.HOUR, 24); + while (isWeekend(now)) { + now.add(Calendar.HOUR, 24); + } + } Date shouldHandleTime = now.getTime(); if (useOverTime.equals("true")) { System.out.println(shouldHandleTime); @@ -204,6 +204,16 @@ // return this.baseMapper.overJob(id, personId,handleMessage, handlePhotos); } + public static void main(String [] args) { + Calendar now = Calendar.getInstance(); + Date getTime = now.getTime(); + now.add(Calendar.WEEK_OF_YEAR, 1); + now.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + now.set(Calendar.HOUR_OF_DAY, 10);//默认8点上班 + now.set(Calendar.MINUTE, 0); + now.set(Calendar.SECOND, 0); + } + @Override public boolean handleJob(Long id, long personId) { return this.baseMapper.handleJob(id, personId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml index 151be02..20ef3d2 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml @@ -555,6 +555,7 @@ + ORDER BY aj.CREATE_TIME DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index 674239c..b0338f5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -21,6 +21,7 @@ abstractRequestHashMap.put(DeviceTypeEnum.Methane.toString(), new MethaneRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Tube.toString(), new TubeRequest()); abstractRequestHashMap.put(DeviceTypeEnum.WasteGas.toString(), new WasteGasRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.Well.toString(), new WellRequest()); // abstractRequestHashMap.put(DeviceTypeEnum.WaterMeter.toString(), new WaterMeterRequest()); // abstractRequestHashMap.put(DeviceTypeEnum.TempPressure.toString(), new TemPressureRequest()); abstractRequestHashMap.put(DeviceTypeEnum.TempHumi.toString(), new TempHumiRequest()); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/WellRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/WellRequest.java new file mode 100644 index 0000000..3c6cd85 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/WellRequest.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.rs; + +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class WellRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + @Override + public void send(String devCode, String content, String attemptsMax) { + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + commConfigDTO.setRepeat(Long.valueOf(content.split(",")[0])); + commConfigDTO.setInterval(Long.valueOf(content.split(",")[1])); + commConfigDTO.setPeriod(Long.valueOf(content.split(",")[2])); + if(StringUtils.isNotBlank(content.split(",",5)[3])){ + commConfigDTO.setIp(content.split(",", 5)[3]); + commConfigDTO.setPort(Long.valueOf(content.split(",", 5)[4])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellCoverServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellCoverServiceImpl.java new file mode 100644 index 0000000..4510622 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellCoverServiceImpl.java @@ -0,0 +1,316 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +@AllArgsConstructor +@Service +@Slf4j +public class BusWellCoverServiceImpl extends ServiceImpl implements IBusConfigService { + + private final RedisCommon redisCommon; + private final IBaseExportService exportService; + private final IDeviceService iDeviceService; + private final IDeviceRuleService iDeviceRuleService; + private final DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + + public String getThresholdByDevId(BusConfigDTO busConfigDTO) { + String limitValue = "0";//报警阈值 + limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); + DecimalFormat df = new DecimalFormat("0.000"); + limitValue = df.format(Double.parseDouble(limitValue) * + Double.valueOf(busConfigDTO.getPercent()) / 100); + return limitValue; + } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length == 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + busConfigList.forEach(busConfig -> { + this.removeById(busConfig.getId()); + }); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.Well.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + " "+ "," + +" " + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Well.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.Well.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Well.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { + busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Well.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.WELL_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.WELL_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + } + }); + } + } + }); + //输出模板 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java index 89c5212..9e8d154 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -51,7 +51,6 @@ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - //业务逻辑 SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d906508..fa92688 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -120,7 +120,7 @@ @Override public List> jobInfo(Long id, DataScope dataScope, Long personId) { - List> jobList = this.baseMapper.jobInfo(id,dataScope, personId); + List> jobList = this.baseMapper.jobInfo(id, dataScope, personId); jobList.forEach(job -> job.put("editable", job.get("jobBelongTo") != null && job.get("jobBelongTo").toString().equals(personId) ? 1 : 0)); return jobList; } @@ -139,18 +139,18 @@ public boolean getJob(Long id, long personId) { Calendar now = Calendar.getInstance(); Date getTime = now.getTime(); -// if (isWeekend(now)) { -// now.add(Calendar.WEEK_OF_YEAR, 1); -// now.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); -// now.set(Calendar.HOUR_OF_DAY, 8); -// now.set(Calendar.MINUTE, 0); -// now.set(Calendar.SECOND, 0); -// } else { -// now.add(Calendar.HOUR, 24); -// while (isWeekend(now)) { -// now.add(Calendar.HOUR, 24); -// } -// } + if (isWeekend(now)) { + now.add(Calendar.WEEK_OF_YEAR, 1); + now.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); + now.set(Calendar.HOUR_OF_DAY, 8); + now.set(Calendar.MINUTE, 0); + now.set(Calendar.SECOND, 0); + } else { + now.add(Calendar.HOUR, 24); + while (isWeekend(now)) { + now.add(Calendar.HOUR, 24); + } + } Date shouldHandleTime = now.getTime(); if (useOverTime.equals("true")) { System.out.println(shouldHandleTime); @@ -204,6 +204,16 @@ // return this.baseMapper.overJob(id, personId,handleMessage, handlePhotos); } + public static void main(String [] args) { + Calendar now = Calendar.getInstance(); + Date getTime = now.getTime(); + now.add(Calendar.WEEK_OF_YEAR, 1); + now.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + now.set(Calendar.HOUR_OF_DAY, 10);//默认8点上班 + now.set(Calendar.MINUTE, 0); + now.set(Calendar.SECOND, 0); + } + @Override public boolean handleJob(Long id, long personId) { return this.baseMapper.handleJob(id, personId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml index 151be02..20ef3d2 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml @@ -555,6 +555,7 @@ + ORDER BY aj.CREATE_TIME DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index 674239c..b0338f5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -21,6 +21,7 @@ abstractRequestHashMap.put(DeviceTypeEnum.Methane.toString(), new MethaneRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Tube.toString(), new TubeRequest()); abstractRequestHashMap.put(DeviceTypeEnum.WasteGas.toString(), new WasteGasRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.Well.toString(), new WellRequest()); // abstractRequestHashMap.put(DeviceTypeEnum.WaterMeter.toString(), new WaterMeterRequest()); // abstractRequestHashMap.put(DeviceTypeEnum.TempPressure.toString(), new TemPressureRequest()); abstractRequestHashMap.put(DeviceTypeEnum.TempHumi.toString(), new TempHumiRequest()); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/WellRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/WellRequest.java new file mode 100644 index 0000000..3c6cd85 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/WellRequest.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.rs; + +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class WellRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + @Override + public void send(String devCode, String content, String attemptsMax) { + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + commConfigDTO.setRepeat(Long.valueOf(content.split(",")[0])); + commConfigDTO.setInterval(Long.valueOf(content.split(",")[1])); + commConfigDTO.setPeriod(Long.valueOf(content.split(",")[2])); + if(StringUtils.isNotBlank(content.split(",",5)[3])){ + commConfigDTO.setIp(content.split(",", 5)[3]); + commConfigDTO.setPort(Long.valueOf(content.split(",", 5)[4])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellCoverServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellCoverServiceImpl.java new file mode 100644 index 0000000..4510622 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellCoverServiceImpl.java @@ -0,0 +1,316 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +@AllArgsConstructor +@Service +@Slf4j +public class BusWellCoverServiceImpl extends ServiceImpl implements IBusConfigService { + + private final RedisCommon redisCommon; + private final IBaseExportService exportService; + private final IDeviceService iDeviceService; + private final IDeviceRuleService iDeviceRuleService; + private final DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + + public String getThresholdByDevId(BusConfigDTO busConfigDTO) { + String limitValue = "0";//报警阈值 + limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); + DecimalFormat df = new DecimalFormat("0.000"); + limitValue = df.format(Double.parseDouble(limitValue) * + Double.valueOf(busConfigDTO.getPercent()) / 100); + return limitValue; + } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length == 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + busConfigList.forEach(busConfig -> { + this.removeById(busConfig.getId()); + }); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.Well.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + " "+ "," + +" " + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Well.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.Well.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Well.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { + busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Well.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.WELL_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.WELL_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + } + }); + } + } + }); + //输出模板 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index f73d94f..1724edb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -152,7 +152,8 @@ sensorHashMap.put(DeviceTypeEnum.Dig.getIndex(), "000064"); sensorHashMap.put(DeviceTypeEnum.Noise.getIndex(), "000032"); sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); - sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "0000084"); + sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); + sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); } // private String framecontent;//下发内容 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java index 89c5212..9e8d154 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -51,7 +51,6 @@ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - //业务逻辑 SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d906508..fa92688 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -120,7 +120,7 @@ @Override public List> jobInfo(Long id, DataScope dataScope, Long personId) { - List> jobList = this.baseMapper.jobInfo(id,dataScope, personId); + List> jobList = this.baseMapper.jobInfo(id, dataScope, personId); jobList.forEach(job -> job.put("editable", job.get("jobBelongTo") != null && job.get("jobBelongTo").toString().equals(personId) ? 1 : 0)); return jobList; } @@ -139,18 +139,18 @@ public boolean getJob(Long id, long personId) { Calendar now = Calendar.getInstance(); Date getTime = now.getTime(); -// if (isWeekend(now)) { -// now.add(Calendar.WEEK_OF_YEAR, 1); -// now.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); -// now.set(Calendar.HOUR_OF_DAY, 8); -// now.set(Calendar.MINUTE, 0); -// now.set(Calendar.SECOND, 0); -// } else { -// now.add(Calendar.HOUR, 24); -// while (isWeekend(now)) { -// now.add(Calendar.HOUR, 24); -// } -// } + if (isWeekend(now)) { + now.add(Calendar.WEEK_OF_YEAR, 1); + now.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); + now.set(Calendar.HOUR_OF_DAY, 8); + now.set(Calendar.MINUTE, 0); + now.set(Calendar.SECOND, 0); + } else { + now.add(Calendar.HOUR, 24); + while (isWeekend(now)) { + now.add(Calendar.HOUR, 24); + } + } Date shouldHandleTime = now.getTime(); if (useOverTime.equals("true")) { System.out.println(shouldHandleTime); @@ -204,6 +204,16 @@ // return this.baseMapper.overJob(id, personId,handleMessage, handlePhotos); } + public static void main(String [] args) { + Calendar now = Calendar.getInstance(); + Date getTime = now.getTime(); + now.add(Calendar.WEEK_OF_YEAR, 1); + now.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + now.set(Calendar.HOUR_OF_DAY, 10);//默认8点上班 + now.set(Calendar.MINUTE, 0); + now.set(Calendar.SECOND, 0); + } + @Override public boolean handleJob(Long id, long personId) { return this.baseMapper.handleJob(id, personId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml index 151be02..20ef3d2 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml @@ -555,6 +555,7 @@ + ORDER BY aj.CREATE_TIME DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index 674239c..b0338f5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -21,6 +21,7 @@ abstractRequestHashMap.put(DeviceTypeEnum.Methane.toString(), new MethaneRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Tube.toString(), new TubeRequest()); abstractRequestHashMap.put(DeviceTypeEnum.WasteGas.toString(), new WasteGasRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.Well.toString(), new WellRequest()); // abstractRequestHashMap.put(DeviceTypeEnum.WaterMeter.toString(), new WaterMeterRequest()); // abstractRequestHashMap.put(DeviceTypeEnum.TempPressure.toString(), new TemPressureRequest()); abstractRequestHashMap.put(DeviceTypeEnum.TempHumi.toString(), new TempHumiRequest()); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/WellRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/WellRequest.java new file mode 100644 index 0000000..3c6cd85 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/WellRequest.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.rs; + +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class WellRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + @Override + public void send(String devCode, String content, String attemptsMax) { + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + commConfigDTO.setRepeat(Long.valueOf(content.split(",")[0])); + commConfigDTO.setInterval(Long.valueOf(content.split(",")[1])); + commConfigDTO.setPeriod(Long.valueOf(content.split(",")[2])); + if(StringUtils.isNotBlank(content.split(",",5)[3])){ + commConfigDTO.setIp(content.split(",", 5)[3]); + commConfigDTO.setPort(Long.valueOf(content.split(",", 5)[4])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellCoverServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellCoverServiceImpl.java new file mode 100644 index 0000000..4510622 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellCoverServiceImpl.java @@ -0,0 +1,316 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +@AllArgsConstructor +@Service +@Slf4j +public class BusWellCoverServiceImpl extends ServiceImpl implements IBusConfigService { + + private final RedisCommon redisCommon; + private final IBaseExportService exportService; + private final IDeviceService iDeviceService; + private final IDeviceRuleService iDeviceRuleService; + private final DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + + public String getThresholdByDevId(BusConfigDTO busConfigDTO) { + String limitValue = "0";//报警阈值 + limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); + DecimalFormat df = new DecimalFormat("0.000"); + limitValue = df.format(Double.parseDouble(limitValue) * + Double.valueOf(busConfigDTO.getPercent()) / 100); + return limitValue; + } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length == 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + busConfigList.forEach(busConfig -> { + this.removeById(busConfig.getId()); + }); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.Well.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + " "+ "," + +" " + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Well.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.Well.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Well.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { + busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Well.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.WELL_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.WELL_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + } + }); + } + } + }); + //输出模板 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index f73d94f..1724edb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -152,7 +152,8 @@ sensorHashMap.put(DeviceTypeEnum.Dig.getIndex(), "000064"); sensorHashMap.put(DeviceTypeEnum.Noise.getIndex(), "000032"); sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); - sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "0000084"); + sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); + sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); } // private String framecontent;//下发内容 diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AlarmRecords.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AlarmRecords.java index f022dc7..4738edf 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AlarmRecords.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AlarmRecords.java @@ -81,7 +81,7 @@ * 工单编号 */ @TableField("JOB_ID") - private Integer jobId; + private Long jobId; @TableField(exist = false) private Integer jobStatus; @@ -184,11 +184,11 @@ this.status = status; } - public Integer getJobId() { + public Long getJobId() { return jobId; } - public void setJobId(Integer jobId) { + public void setJobId(Long jobId) { this.jobId = jobId; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java index 89c5212..9e8d154 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -51,7 +51,6 @@ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - //业务逻辑 SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d906508..fa92688 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -120,7 +120,7 @@ @Override public List> jobInfo(Long id, DataScope dataScope, Long personId) { - List> jobList = this.baseMapper.jobInfo(id,dataScope, personId); + List> jobList = this.baseMapper.jobInfo(id, dataScope, personId); jobList.forEach(job -> job.put("editable", job.get("jobBelongTo") != null && job.get("jobBelongTo").toString().equals(personId) ? 1 : 0)); return jobList; } @@ -139,18 +139,18 @@ public boolean getJob(Long id, long personId) { Calendar now = Calendar.getInstance(); Date getTime = now.getTime(); -// if (isWeekend(now)) { -// now.add(Calendar.WEEK_OF_YEAR, 1); -// now.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); -// now.set(Calendar.HOUR_OF_DAY, 8); -// now.set(Calendar.MINUTE, 0); -// now.set(Calendar.SECOND, 0); -// } else { -// now.add(Calendar.HOUR, 24); -// while (isWeekend(now)) { -// now.add(Calendar.HOUR, 24); -// } -// } + if (isWeekend(now)) { + now.add(Calendar.WEEK_OF_YEAR, 1); + now.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); + now.set(Calendar.HOUR_OF_DAY, 8); + now.set(Calendar.MINUTE, 0); + now.set(Calendar.SECOND, 0); + } else { + now.add(Calendar.HOUR, 24); + while (isWeekend(now)) { + now.add(Calendar.HOUR, 24); + } + } Date shouldHandleTime = now.getTime(); if (useOverTime.equals("true")) { System.out.println(shouldHandleTime); @@ -204,6 +204,16 @@ // return this.baseMapper.overJob(id, personId,handleMessage, handlePhotos); } + public static void main(String [] args) { + Calendar now = Calendar.getInstance(); + Date getTime = now.getTime(); + now.add(Calendar.WEEK_OF_YEAR, 1); + now.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + now.set(Calendar.HOUR_OF_DAY, 10);//默认8点上班 + now.set(Calendar.MINUTE, 0); + now.set(Calendar.SECOND, 0); + } + @Override public boolean handleJob(Long id, long personId) { return this.baseMapper.handleJob(id, personId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml index 151be02..20ef3d2 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml @@ -555,6 +555,7 @@ + ORDER BY aj.CREATE_TIME DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index 674239c..b0338f5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -21,6 +21,7 @@ abstractRequestHashMap.put(DeviceTypeEnum.Methane.toString(), new MethaneRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Tube.toString(), new TubeRequest()); abstractRequestHashMap.put(DeviceTypeEnum.WasteGas.toString(), new WasteGasRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.Well.toString(), new WellRequest()); // abstractRequestHashMap.put(DeviceTypeEnum.WaterMeter.toString(), new WaterMeterRequest()); // abstractRequestHashMap.put(DeviceTypeEnum.TempPressure.toString(), new TemPressureRequest()); abstractRequestHashMap.put(DeviceTypeEnum.TempHumi.toString(), new TempHumiRequest()); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/WellRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/WellRequest.java new file mode 100644 index 0000000..3c6cd85 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/WellRequest.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.rs; + +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class WellRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + @Override + public void send(String devCode, String content, String attemptsMax) { + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + commConfigDTO.setRepeat(Long.valueOf(content.split(",")[0])); + commConfigDTO.setInterval(Long.valueOf(content.split(",")[1])); + commConfigDTO.setPeriod(Long.valueOf(content.split(",")[2])); + if(StringUtils.isNotBlank(content.split(",",5)[3])){ + commConfigDTO.setIp(content.split(",", 5)[3]); + commConfigDTO.setPort(Long.valueOf(content.split(",", 5)[4])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellCoverServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellCoverServiceImpl.java new file mode 100644 index 0000000..4510622 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellCoverServiceImpl.java @@ -0,0 +1,316 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +@AllArgsConstructor +@Service +@Slf4j +public class BusWellCoverServiceImpl extends ServiceImpl implements IBusConfigService { + + private final RedisCommon redisCommon; + private final IBaseExportService exportService; + private final IDeviceService iDeviceService; + private final IDeviceRuleService iDeviceRuleService; + private final DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + + public String getThresholdByDevId(BusConfigDTO busConfigDTO) { + String limitValue = "0";//报警阈值 + limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); + DecimalFormat df = new DecimalFormat("0.000"); + limitValue = df.format(Double.parseDouble(limitValue) * + Double.valueOf(busConfigDTO.getPercent()) / 100); + return limitValue; + } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length == 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + busConfigList.forEach(busConfig -> { + this.removeById(busConfig.getId()); + }); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.Well.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + " "+ "," + +" " + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Well.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.Well.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Well.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { + busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Well.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.WELL_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.WELL_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + } + }); + } + } + }); + //输出模板 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index f73d94f..1724edb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -152,7 +152,8 @@ sensorHashMap.put(DeviceTypeEnum.Dig.getIndex(), "000064"); sensorHashMap.put(DeviceTypeEnum.Noise.getIndex(), "000032"); sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); - sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "0000084"); + sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); + sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); } // private String framecontent;//下发内容 diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AlarmRecords.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AlarmRecords.java index f022dc7..4738edf 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AlarmRecords.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AlarmRecords.java @@ -81,7 +81,7 @@ * 工单编号 */ @TableField("JOB_ID") - private Integer jobId; + private Long jobId; @TableField(exist = false) private Integer jobStatus; @@ -184,11 +184,11 @@ this.status = status; } - public Integer getJobId() { + public Long getJobId() { return jobId; } - public void setJobId(Integer jobId) { + public void setJobId(Long jobId) { this.jobId = jobId; } diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java index 651b112..dd163ba 100644 --- a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "gwq"; + username = "admin"; // mysql // password = "1q2W3E4R"; //postgre diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java index 89c5212..9e8d154 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/job/DelayJob.java @@ -51,7 +51,6 @@ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - //业务逻辑 SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); System.out.println("CRON ----> schedule job1 is running ... + " + jobId + " ----> " + dateFormat.format(new Date())); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java index d906508..fa92688 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmJobServiceImpl.java @@ -120,7 +120,7 @@ @Override public List> jobInfo(Long id, DataScope dataScope, Long personId) { - List> jobList = this.baseMapper.jobInfo(id,dataScope, personId); + List> jobList = this.baseMapper.jobInfo(id, dataScope, personId); jobList.forEach(job -> job.put("editable", job.get("jobBelongTo") != null && job.get("jobBelongTo").toString().equals(personId) ? 1 : 0)); return jobList; } @@ -139,18 +139,18 @@ public boolean getJob(Long id, long personId) { Calendar now = Calendar.getInstance(); Date getTime = now.getTime(); -// if (isWeekend(now)) { -// now.add(Calendar.WEEK_OF_YEAR, 1); -// now.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); -// now.set(Calendar.HOUR_OF_DAY, 8); -// now.set(Calendar.MINUTE, 0); -// now.set(Calendar.SECOND, 0); -// } else { -// now.add(Calendar.HOUR, 24); -// while (isWeekend(now)) { -// now.add(Calendar.HOUR, 24); -// } -// } + if (isWeekend(now)) { + now.add(Calendar.WEEK_OF_YEAR, 1); + now.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); + now.set(Calendar.HOUR_OF_DAY, 8); + now.set(Calendar.MINUTE, 0); + now.set(Calendar.SECOND, 0); + } else { + now.add(Calendar.HOUR, 24); + while (isWeekend(now)) { + now.add(Calendar.HOUR, 24); + } + } Date shouldHandleTime = now.getTime(); if (useOverTime.equals("true")) { System.out.println(shouldHandleTime); @@ -204,6 +204,16 @@ // return this.baseMapper.overJob(id, personId,handleMessage, handlePhotos); } + public static void main(String [] args) { + Calendar now = Calendar.getInstance(); + Date getTime = now.getTime(); + now.add(Calendar.WEEK_OF_YEAR, 1); + now.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + now.set(Calendar.HOUR_OF_DAY, 10);//默认8点上班 + now.set(Calendar.MINUTE, 0); + now.set(Calendar.SECOND, 0); + } + @Override public boolean handleJob(Long id, long personId) { return this.baseMapper.handleJob(id, personId); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml index 151be02..20ef3d2 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmJobMapper.xml @@ -555,6 +555,7 @@ + ORDER BY aj.CREATE_TIME DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java index 674239c..b0338f5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/AbstractRequest.java @@ -21,6 +21,7 @@ abstractRequestHashMap.put(DeviceTypeEnum.Methane.toString(), new MethaneRequest()); abstractRequestHashMap.put(DeviceTypeEnum.Tube.toString(), new TubeRequest()); abstractRequestHashMap.put(DeviceTypeEnum.WasteGas.toString(), new WasteGasRequest()); + abstractRequestHashMap.put(DeviceTypeEnum.Well.toString(), new WellRequest()); // abstractRequestHashMap.put(DeviceTypeEnum.WaterMeter.toString(), new WaterMeterRequest()); // abstractRequestHashMap.put(DeviceTypeEnum.TempPressure.toString(), new TemPressureRequest()); abstractRequestHashMap.put(DeviceTypeEnum.TempHumi.toString(), new TempHumiRequest()); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/rs/WellRequest.java b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/WellRequest.java new file mode 100644 index 0000000..3c6cd85 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/rs/WellRequest.java @@ -0,0 +1,28 @@ +package com.casic.missiles.modular.system.rs; + +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.modular.system.dto.CommConfigDTO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class WellRequest extends AbstractRequest { + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + @Override + public void send(String devCode, String content, String attemptsMax) { + + RedisCommon redisCommon = SpringContextHolder.getBean("redisCommon"); + CommConfigDTO commConfigDTO = new CommConfigDTO(); + commConfigDTO.setRepeat(Long.valueOf(content.split(",")[0])); + commConfigDTO.setInterval(Long.valueOf(content.split(",")[1])); + commConfigDTO.setPeriod(Long.valueOf(content.split(",")[2])); + if(StringUtils.isNotBlank(content.split(",",5)[3])){ + commConfigDTO.setIp(content.split(",", 5)[3]); + commConfigDTO.setPort(Long.valueOf(content.split(",", 5)[4])); + } + redisCommon.setRedisConfig(devCode, commConfigDTO); + if (/*"1".equals(this.getNetType()) &&*/ StringUtils.isNotBlank(getConcentratorCode())) + redisCommon.setRedisConcentrator(getConcentratorCode(), devCode, attemptsMax); + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellCoverServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellCoverServiceImpl.java new file mode 100644 index 0000000..4510622 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/BusWellCoverServiceImpl.java @@ -0,0 +1,316 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.response.SuccessResponseData; +import com.casic.missiles.modular.system.constant.DeviceConfigConst; +import com.casic.missiles.modular.system.dao.BusConfigMapper; +import com.casic.missiles.modular.system.dto.BusConfigDTO; +import com.casic.missiles.modular.system.dto.DeviceTypeEnum; +import com.casic.missiles.modular.system.model.BusConfig; +import com.casic.missiles.modular.system.model.Device; +import com.casic.missiles.modular.system.redis.RedisPublisherUtil; +import com.casic.missiles.modular.system.rs.RedisCommon; +import com.casic.missiles.modular.system.service.IBusConfigService; +import com.casic.missiles.modular.system.service.IDeviceRuleService; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.RegUtil; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.*; + +@AllArgsConstructor +@Service +@Slf4j +public class BusWellCoverServiceImpl extends ServiceImpl implements IBusConfigService { + + private final RedisCommon redisCommon; + private final IBaseExportService exportService; + private final IDeviceService iDeviceService; + private final IDeviceRuleService iDeviceRuleService; + private final DeviceServerProperties deviceServerProperties; + + @Override + public List getListBydevId(Long devId) { + QueryWrapper busConfigEntityWrapper = new QueryWrapper<>(); + busConfigEntityWrapper.eq("DEVICE_ID", devId); + return this.baseMapper.selectList(busConfigEntityWrapper); + } + + public String getThresholdByDevId(BusConfigDTO busConfigDTO) { + String limitValue = "0";//报警阈值 + limitValue = getWellDeepByDevId(busConfigDTO.getDeviceId()); + DecimalFormat df = new DecimalFormat("0.000"); + limitValue = df.format(Double.parseDouble(limitValue) * + Double.valueOf(busConfigDTO.getPercent()) / 100); + return limitValue; + } + + @Override + public List getConfigList(Page page, + String keywords, + String deptid, + Long deviceType, + DataScope dataScope) { + List> result = this.baseMapper.getConfigList(page, keywords, deptid, + BusConfigDTO.sensorHashMap.get(deviceType.intValue()), dataScope); + List busConfigDTOList = new ArrayList<>(); + for (Map objectMap : result) { + BusConfigDTO dto = BusConfigDTO.ConvertDTO(objectMap); + String framecontent = objectMap.get("framecontent").toString(); + if (null != framecontent) { + String[] configItems = framecontent.split(","); + dto.setRetryTimes(configItems[0]); + dto.setCollectInterval(configItems[1]); + dto.setUploadPeriod(configItems[2]); + if (configItems.length == 5) { + dto.setIp(configItems[3]); + dto.setPort(configItems[4]); + } + } + busConfigDTOList.add(dto); + } + return busConfigDTOList; + + } + + + @Override + public String getConcenCodeByDevId(Long devID) { + return this.baseMapper.getConcenCodeByDevId(devID); + } + + @Override + public String getWellDeepByDevId(Long devID) { + return this.baseMapper.getWellDeepByDevId(devID); + } + + @Transactional + @Override + public void addConfig(BusConfigDTO busConfigDTO) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + busConfigList.forEach(busConfig -> { + this.removeById(busConfig.getId()); + }); + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.Well.getIndex())); + BusConfig busConfig = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + " "+ "," + +" " + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort();//按照重传次数、采集间隔、上传周期 + busConfig.setFramecontent(str); + save(busConfig); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Well.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + //发布消息订阅 + if (StrUtil.isNotBlank(concentratorCode)) { + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + @Transactional + public void addBatchConfig(List busConfigDTOList) { + String concentratorCodeStr = ""; + for (BusConfigDTO busConfigDTO : busConfigDTOList) { + List busConfigList = getListBydevId(busConfigDTO.getDeviceId()); + for (BusConfig busConfig : busConfigList) { + removeById(busConfig.getId()); + } + busConfigDTO.setDeviceType(Long.valueOf(DeviceTypeEnum.Well.getIndex())); + BusConfig busConfig1 = new BusConfig(busConfigDTO); + String str = busConfigDTO.getRetryTimes() + "," + busConfigDTO.getCollectInterval() + "," + + busConfigDTO.getUploadPeriod() + "," + + busConfigDTO.getIp() + "," + busConfigDTO.getPort();//按照重传次数、采集间隔、上传周期 + busConfig1.setFramecontent(str); + save(busConfig1); + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Well.toString(), + busConfig1.getDeviceId(), busConfig1.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) { + concentratorCodeStr += (concentratorCode + ","); + } + } + if (StrUtil.isNotBlank(concentratorCodeStr)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCodeStr.substring(0, concentratorCodeStr.length() - 1)); + } + } + + @Override + public void updateConfig(BusConfigDTO busConfigDTO) { + busConfigDTO.setThreshold(Float.valueOf(getThresholdByDevId(busConfigDTO))); + BusConfig busConfig = getById(busConfigDTO.getId()); + busConfig.setDeviceId(Long.valueOf(busConfigDTO.getDeviceId())); + busConfig.setFramecontent(busConfigDTO.getThreshold() + "," + busConfigDTO.getInstallHeight() + "," + + busConfigDTO.getRetryTimes() + "," + busConfigDTO.getPercent() + "," + busConfigDTO.getIp() + "," + + busConfigDTO.getPort()); + busConfig.setStatus("0"); + busConfig.setAttemptsmax(Integer.valueOf(busConfigDTO.getAttemptsMax())); + busConfig.setWritetime(new Date()); + updateById(busConfig); + Device device = iDeviceService.getById(busConfigDTO.getDeviceId()); + if (device != null) { + iDeviceRuleService.updateRule(device.getDevcode(), busConfigDTO.getThreshold(), null); + } + String concentratorCode = redisCommon.sendMsg(DeviceTypeEnum.Well.toString(), + busConfig.getDeviceId(), busConfig.getFramecontent(), busConfigDTO.getAttemptsMax()); + if (StrUtil.isNotBlank(concentratorCode)) {//发布消息订阅 + RedisPublisherUtil.getInstance(). + publishMessage(concentratorCode); + } + } + + public Map validate(List busConfigDTOList) { + Map stringMap = new HashMap<>(); + try { + for (int i = 0; i < busConfigDTOList.size(); i++) { + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getUploadPeriod())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,上传周期必填且为正整数"); + return stringMap; + + } + if (!RegUtil.isNumOrLetter(busConfigDTOList.get(i).getDevcode())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号必填且为字母或数字"); + return stringMap; + } else {//校验设备编号是否在系统中存在 + Device device = iDeviceService.getDeviceByDevCode( + busConfigDTOList.get(i).getDevcode()); + if (null == device) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,设备编号在系统中不存在,请先导入设备"); + return stringMap; + } else { + busConfigDTOList.get(i).setDeviceId(device.getId()); + } + } + + if (!RegUtil.isInteger(busConfigDTOList.get(i).getRetryTimes())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,重传次数必填且为正整数"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getCollectInterval())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,采集间隔必填且为正整数"); + return stringMap; + } + + if (!RegUtil.isIp(busConfigDTOList.get(i).getIp())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,IP填写不合格"); + return stringMap; + } + if (!RegUtil.isPort(busConfigDTOList.get(i).getPort())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,端口号填写不合格"); + return stringMap; + } + if (!RegUtil.isInteger(busConfigDTOList.get(i).getAttemptsMax())) { + stringMap.put("success", false); + stringMap.put("msg", "第" + (i + 2) + "行,最大尝试次数必填且为正整数"); + return stringMap; + } + } + + } catch (Exception e) { + e.printStackTrace(); + stringMap.put("success", false); + stringMap.put("msg", "导入异常!"); + } + stringMap.put("success", true); + stringMap.put("msg", "导入成功"); + return stringMap; + } + + @Transactional + @Override + public SuccessResponseData imp(List busConfigDTOList) { + SuccessResponseData resultData = new SuccessResponseData(); + Map mapper = new HashMap<>(); + mapper.put("设备编号", "devcode"); + mapper.put("重传次数", "retryTimes"); + mapper.put("上传周期(分)", "uploadPeriod"); + mapper.put("采集间隔(分)", "collectInterval"); + mapper.put("IP地址", "ip"); + mapper.put("端口号", "port"); + mapper.put("最大尝试次数", "attemptsMax"); + try { + Map objectMap = this.validate(busConfigDTOList); + if ((Boolean) objectMap.get("success")) {//检验通过后写入 + this.addBatchConfig(busConfigDTOList); + resultData.setCode(200); + resultData.setMessage(objectMap.get("msg").toString()); + } else {//校验失败,返回 + resultData.setCode(400); + resultData.setMessage(objectMap.get("msg").toString()); + } + } catch (Exception e) { + e.printStackTrace(); + resultData.setCode(400); + resultData.setMessage("导入失败"); + } + return resultData; + } + + @Override + public void exp(List busConfigDTOList, HttpServletResponse response) { + FileInputStream fis = null; + try { + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", " attachment;filename=".concat(DeviceConfigConst.WELL_CONFIG_EXPORT_TEMP)); + if (CollectionUtil.isEmpty(busConfigDTOList)) { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.CONFIG_EXPORT_EMPTY_TEMP)); + } else { + fis = new FileInputStream(deviceServerProperties.getExportPath().concat(DeviceConfigConst.WELL_CONFIG_EXPORT_TEMP)); + } + Map var = new HashMap<>(); + var.put("list", new ArrayList() { + { + for (int i = 0; i < busConfigDTOList.size(); i++) { + BusConfigDTO busConfigDTO = busConfigDTOList.get(i); + add(new HashMap() { + { + put("设备编号", busConfigDTO.getDevcode()); + put("重传次数", busConfigDTO.getRetryTimes()); + put("采集间隔", busConfigDTO.getCollectInterval()); + put("上传周期", busConfigDTO.getUploadPeriod()); + put("IP地址", busConfigDTO.getIp()); + put("端口", busConfigDTO.getPort()); + put("最大尝试次数", busConfigDTO.getAttemptsMax()); + put("已尝试次数", busConfigDTO.getAttemptsCurrent()); + put("下发状态", "1".equals(busConfigDTO.getStatus()) ? "已下发" : "未下发"); + } + }); + } + } + }); + //输出模板 + exportService.exportExcel(response, BusConfigDTO.class, busConfigDTOList, "导出文件"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.getOutputStream().flush(); + response.getOutputStream().close(); + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java index f73d94f..1724edb 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/dto/BusConfigDTO.java @@ -152,7 +152,8 @@ sensorHashMap.put(DeviceTypeEnum.Dig.getIndex(), "000064"); sensorHashMap.put(DeviceTypeEnum.Noise.getIndex(), "000032"); sensorHashMap.put(DeviceTypeEnum.LG.getIndex(), "000065"); - sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "0000084"); + sensorHashMap.put(DeviceTypeEnum.H2s.getIndex(), "000084"); + sensorHashMap.put(DeviceTypeEnum.Well.getIndex(),"000085"); } // private String framecontent;//下发内容 diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AlarmRecords.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AlarmRecords.java index f022dc7..4738edf 100644 --- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AlarmRecords.java +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AlarmRecords.java @@ -81,7 +81,7 @@ * 工单编号 */ @TableField("JOB_ID") - private Integer jobId; + private Long jobId; @TableField(exist = false) private Integer jobStatus; @@ -184,11 +184,11 @@ this.status = status; } - public Integer getJobId() { + public Long getJobId() { return jobId; } - public void setJobId(Integer jobId) { + public void setJobId(Long jobId) { this.jobId = jobId; } diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java index 651b112..dd163ba 100644 --- a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "gwq"; + username = "admin"; // mysql // password = "1q2W3E4R"; //postgre diff --git a/casic-web/src/main/resources/config/application-postgre.yml b/casic-web/src/main/resources/config/application-postgre.yml index fe047a6..42d34b6 100644 --- a/casic-web/src/main/resources/config/application-postgre.yml +++ b/casic-web/src/main/resources/config/application-postgre.yml @@ -1,5 +1,5 @@ server: - port: 11309 + port: 11308 ################### spring配置 ################### spring: datasource: