diff --git a/cloud/dahua/src/main/java/com/example/dahua/lib/CompressPic.java b/cloud/dahua/src/main/java/com/example/dahua/lib/CompressPic.java index 6b54e23..f7e5db3 100644 --- a/cloud/dahua/src/main/java/com/example/dahua/lib/CompressPic.java +++ b/cloud/dahua/src/main/java/com/example/dahua/lib/CompressPic.java @@ -17,7 +17,7 @@ import java.io.InputStream; public class CompressPic { public static String CompressPic(String srcPath, String targetPath, String studentcode) throws Exception { - double cutPercent = 0.5; + double cutPercent = 0.2; File file = new File(srcPath.trim()); FileInputStream fileInputStream = new FileInputStream(file); BufferedImage bufferedImage = ImageIO.read(fileInputStream); diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java index 58b4cf9..b2ba3ee 100644 --- a/cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java +++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java @@ -525,8 +525,8 @@ public class CMSServer implements ApplicationRunner { * @Param picUrl 原图 */ public boolean sendInfo(String srcFile, String url, String card, String startTime, String endTime, int validTimeEnabled, String name, String deviceId, String userType, String employeeNo) { - deleteCard(deviceId, card); - editCard(startTime, endTime, 0, name, card, deviceId, employeeNo); +// deleteCard(deviceId, card); +// editCard(startTime, endTime, 0, name, card, deviceId, employeeNo); editCard(startTime, endTime, 1, name, card, deviceId, employeeNo); String strRequest = "/ISAPI/AccessControl/SetFaceParamCfg"; String strConfigXML = "\n" + @@ -757,7 +757,7 @@ public class CMSServer implements ApplicationRunner { if (type == 1) {//下发人脸 if (!hCEhomeCMS.NET_ECMS_PostPTXMLConfig(map.get(deviceId), struISAPXML)) { int iErr = hCEhomeCMS.NET_ECMS_GetLastError(); - System.err.println(content + "失败,错误号:" + iErr); + System.err.println(content + "失败,错误号:" + iErr+"---"+strConfigXML+"\n"); sendRecoderUtils.sendFail(sendRecordDao, card, srcFile, deviceId, userDao, content + "失败,错误号:" + iErr, userType); } else { stringXMLOut.read(); diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/async/SendUserAsync.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/async/SendUserAsync.java index df2d748..5dfd73b 100644 --- a/cloud/haikangface/src/main/java/com/sincere/haikangface/async/SendUserAsync.java +++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/async/SendUserAsync.java @@ -49,7 +49,7 @@ public class SendUserAsync { } //根据设备是5603 还是新设备 String employeeNo = ""; - if (deviceId.contains("ymzx")||deviceId.contains("5607")||deviceId.contains("5671")){ + if (deviceId.contains("ymzx")||deviceId.contains("5607")||deviceId.contains("5671")||deviceId.contains("5604")){ employeeNo = System.currentTimeMillis()+""; cmsServer.SetCardWeekPlan(deviceId, HKXmlUtils.getInstance().SetCardTemplate(), "设置卡权限计划模板"); cmsServer.SetCardWeekPlan(deviceId, HKXmlUtils.getInstance().SetCardWeekPlan(), "卡权限周计划"); diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/dao/UserDao.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/dao/UserDao.java index e4101cb..216c32f 100644 --- a/cloud/haikangface/src/main/java/com/sincere/haikangface/dao/UserDao.java +++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/dao/UserDao.java @@ -159,9 +159,9 @@ public interface UserDao { @Param("userId") String userId, @Param("targetUrl") String targetUrl, @Param("clicks") int clicks, @Param("userList") String userList, @Param("isShare") int isShare, @Param("charpId1") int charpId1, @Param("knowledgeId") int knowledgeId); - @Select("select * from SZ_V_School_Student where school_id = 1066 and student_type = 1 and user_id not in (select DISTINCT user_id from DBlan27.xiaoanhxy.dbo.Face_Recoder where deviceId in ('840153205671', '840153965671', '840153485671', '840153325671', '840154005671',\n" + - " '840153105671', '840153165671', '840153835671') and time > '2019-12-10' )") - List getAllStudentsWithSchoolId(@Param("school_id") String school_id); + @Select("select *\n" + + "from SZ_V_School_Student where name = #{name} and school_id = #{school_id}") + List getAllStudentsWithSchoolId(@Param("school_id") String school_id,@Param("name")String name); @Select("select * from SZ_V_School_Student where school_id = #{school_id} and student_type = 2") List getAllStuWithSchoolId(@Param("school_id") String school_id); diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/utils/CompressPic.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/utils/CompressPic.java index 1fe7591..0dd07b7 100644 --- a/cloud/haikangface/src/main/java/com/sincere/haikangface/utils/CompressPic.java +++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/utils/CompressPic.java @@ -16,13 +16,14 @@ import java.io.InputStream; public class CompressPic { public static String CompressPic(String srcPath, String targetPath) throws Exception { - double cutPercent = 0.5; + double cutPercent = 0.1; File file = new File(srcPath.trim()); FileInputStream fileInputStreamSrc = new FileInputStream(file); BufferedImage bufferedImage = ImageIO.read(fileInputStreamSrc); int width = bufferedImage.getWidth(null); int height = bufferedImage.getHeight(null); long fileLength = file.length(); + System.out.println("fileLength:"+fileLength); if ((fileLength / 1024) < 200) { writeImgToFile(bufferedImage, width, height, targetPath); } else diff --git a/cloud/haikangface/src/test/java/com/sincere/haikangface/HaikangfaceApplicationTests.java b/cloud/haikangface/src/test/java/com/sincere/haikangface/HaikangfaceApplicationTests.java index 8c8a702..91ea164 100644 --- a/cloud/haikangface/src/test/java/com/sincere/haikangface/HaikangfaceApplicationTests.java +++ b/cloud/haikangface/src/test/java/com/sincere/haikangface/HaikangfaceApplicationTests.java @@ -14,6 +14,7 @@ import com.sincere.haikangface.bean.xiaoan.CreditCardRecordsSS; import com.sincere.haikangface.dao.DeviceDao; import com.sincere.haikangface.dao.UserDao; import com.sincere.haikangface.dao.ZuoYeDao; +import com.sincere.haikangface.utils.ApiUtil; import com.sincere.haikangface.xiananDao.SendRecordDao; import org.bouncycastle.asn1.cms.MetaData; import org.hibernate.validator.constraints.LuhnCheck; @@ -54,31 +55,6 @@ public class HaikangfaceApplicationTests { @Test public void contextLoads() { - /* - List sendRecordBeanList = sendRecordDao.getSuccessAndFail(); - System.out.println("sendRecordBeanList:" + sendRecordBeanList.size()); - for (int i = 0; i < sendRecordBeanList.size(); i++) { - SendRecordBean sendRecordBean = sendRecordBeanList.get(i); - sendRecordDao.deleteFaceFail(sendRecordBean.getNum(), sendRecordBean.getDeviceID()); - } - //4278190095 最小值 - - for (long i = 694535; i <1048577 ; i++) { - - System.out.println("十六进制:FF"+splicingZero(Long.toHexString(i),5)+"F"); - String CardNum = "FF"+splicingZero(Long.toHexString(i),5)+"F"; - - long intCardNum = Long.parseLong(CardNum,16); - - System.out.println("intCardNum:"+intCardNum); - userDao.addVirtual_Card(intCardNum,0,CardNum); -// try { -// Thread.sleep(500); -// } catch (InterruptedException e) { -// e.printStackTrace(); -// } - - }*/ } @@ -98,10 +74,11 @@ public class HaikangfaceApplicationTests { /*RestTemplate restTemplate = new RestTemplate(); //失败人脸补发 int userType = 2; - List sendRecordBeanList = sendRecordDao.getSenFail("110",userType); + List sendRecordBeanList = sendRecordDao.getSenFail("1066",userType); int idnex = 0; for (int i = 0; i < sendRecordBeanList.size(); i++) { SendRecordBean sendRecordBean = sendRecordBeanList.get(i); + String url =String.format( "http://114.55.30.100:8089/facereco/sendStuCardAndImg?card=%s&deviceId=%s&endTime=%s&filePath=%s&name=%s&userType=%s&validTimeEnabled=%s&startTime=%s" ,sendRecordBean.getNum(),sendRecordBean.getDeviceID(),"2023-10-01 10:00:00",sendRecordBean.getImgPath(),sendRecordBean.getName(),userType+"","1","2019-10-01 10:00:00"); String result1 = restTemplate.getForObject(url, String.class); @@ -109,19 +86,19 @@ public class HaikangfaceApplicationTests { }*/ - /*RestTemplate restTemplate = new RestTemplate(); + /* RestTemplate restTemplate = new RestTemplate(); //失败人脸补发 int userType = 2; - List studentBeans = userDao.getAllStudentsWithSchoolId("1066"); + List studentBeans = userDao.getAllStudentsWithSchoolId("1066","张文晶"); List list = new ArrayList<>(); -// list.add("840153205671"); -// list.add("840153965671"); -// list.add("840153485671"); -// list.add("840153325671"); -// list.add("840154005671"); -// list.add("840153105671"); + list.add("840153205671"); + list.add("840153965671"); + list.add("840153485671"); + list.add("840153325671"); + list.add("840154005671"); + list.add("840153105671"); list.add("840153165671"); -// list.add("840153835671"); + list.add("840153835671"); int idnex = 0; for (int i = 0; i < studentBeans.size(); i++) { StudentBean sendRecordBean = studentBeans.get(i); @@ -129,9 +106,12 @@ public class HaikangfaceApplicationTests { // http://campus.myjxt.com//face17e50/School1066/Student/st20190101.png for (int j = 0; j < list.size(); j++) { String imgUrl = sendRecordBean.getPhoto().replace("http://campus.myjxt.com","E:\\wwwhtdocs\\smartcampus"); +// imgUrl="E:\\wwwhtdocs\\smartcampus//face17e50/School1066/Student/st20170632.jpg"; + System.out.println("imgUrl:"+imgUrl); String url =String.format( "http://114.55.30.100:8089/facereco/sendStuCardAndImg?card=%s&deviceId=%s&endTime=%s&filePath=%s&name=%s&userType=%s&validTimeEnabled=%s&startTime=%s" ,sendRecordBean.getStudent_num(),list.get(j),"2023-10-01 10:00:00",imgUrl,sendRecordBean.getName(),userType+"","1","2019-10-01 10:00:00"); String result1 = restTemplate.getForObject(url, String.class); + System.out.println("imgUrl:"+url); System.out.println("下发人脸:" + result1+" idnex:"+idnex++); } diff --git a/cloud/mypulsar/pom.xml b/cloud/mypulsar/pom.xml index d40c204..200d2bc 100644 --- a/cloud/mypulsar/pom.xml +++ b/cloud/mypulsar/pom.xml @@ -142,6 +142,15 @@ spring-boot-maven-plugin true + diff --git a/cloud/mypulsar/src/main/java/com/example/mypulsar/MyRunnerableInt.java b/cloud/mypulsar/src/main/java/com/example/mypulsar/MyRunnerableInt.java index ec9e021..779b181 100644 --- a/cloud/mypulsar/src/main/java/com/example/mypulsar/MyRunnerableInt.java +++ b/cloud/mypulsar/src/main/java/com/example/mypulsar/MyRunnerableInt.java @@ -1,6 +1,7 @@ package com.example.mypulsar; import com.alibaba.fastjson.JSON; +import com.example.mypulsar.bean.CalDevContrl; import com.example.mypulsar.bean.DeviceBean; import com.example.mypulsar.bean.TuYaReceiverBean; import com.example.mypulsar.bean.TuYaReceiverBeanStatus; @@ -9,6 +10,7 @@ import com.example.mypulsar.message.MessageVO; import com.example.mypulsar.mq.AESBase64Utils; import com.example.mypulsar.mq.MessageHandlerTask; import com.example.mypulsar.mq.MqConsumer; +import com.example.mypulsar.utils.ControlUtils; import com.example.mypulsar.utils.PulsarConsumerPoolFactory; import com.example.mypulsar.utils.ThreadPoolFactory; import org.apache.pulsar.client.api.Consumer; @@ -38,6 +40,11 @@ public class MyRunnerableInt implements ApplicationRunner { @Override public void run(ApplicationArguments args) throws Exception { +// DeviceBean deviceBean = new DeviceBean(); +// deviceBean.setValue("30"); +// deviceBean.setDevId("6c5c38c2e431d01eeei3to"); +// calOpenOrCloseDevWithtemper(deviceBean); + // System.out.println("running"); // initPool(); initMqConsumer(); @@ -88,7 +95,7 @@ public class MyRunnerableInt implements ApplicationRunner { * @param tuYaReceiverBean */ private void detealData(TuYaReceiverBean tuYaReceiverBean) { - System.out.println("tuYaReceiverBean:" + tuYaReceiverBean.toString()); +// System.out.println("tuYaReceiverBean:" + tuYaReceiverBean.toString()); //数据对象 DeviceBean deviceBean = new DeviceBean(); deviceBean.setDataId(tuYaReceiverBean.getDataId()); @@ -148,7 +155,7 @@ public class MyRunnerableInt implements ApplicationRunner { // String clintId = deviceDao.selectAttendance(devId); // if (clintId.equals(devId)) { - deviceDao.updateStatus(devId, isConnection); + deviceDao.updateStatus(devId, isConnection,new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); // } else { // deviceDao.insert(devId, "-2", isConnection); // } @@ -156,7 +163,7 @@ public class MyRunnerableInt implements ApplicationRunner { } private void updateDevStatus(DeviceBean deviceBean) { - System.out.println("插入数据:" + deviceBean.toString()); +// System.out.println("插入数据:" + deviceBean.toString()); deviceBean.setDpId(""); deviceBean.setName(""); deviceBean.setUid(""); @@ -165,7 +172,6 @@ public class MyRunnerableInt implements ApplicationRunner { if (deviceBean.getDataId() == null) deviceBean.setDataId(""); if (deviceBean.getCode() == null) deviceBean.setCode(""); if (deviceBean.getProductKey() == null) deviceBean.setProductKey(""); - int index = deviceDao.addDevice(deviceBean.getDataId(), deviceBean.getDevId(), deviceBean.getProductKey(), deviceBean.getCode(), deviceBean.getValue() , deviceBean.getBizCode(), deviceBean.getTime(), deviceBean.getName(), deviceBean.getDpId(), deviceBean.getUid(), deviceBean.getDev_status(), deviceBean.getDev_type()); updateStatus(deviceBean.getDevId(), "1"); @@ -192,12 +198,16 @@ public class MyRunnerableInt implements ApplicationRunner { deviceBean.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date)); String value = statue.getValue(); deviceBean.setValue(value); + + System.out.println("插入数据:" +value); switch (code) { case "va_temperature"://温度 + deviceBean.setValue(Integer.parseInt(value)/100+""); calOpenOrCloseDevWithtemper(deviceBean);//计算开启或关闭设备 log("温度:" + value); break; case "va_humidity"://湿度 + deviceBean.setValue(Integer.parseInt(value)/100+""); log("湿度:" + value); break; case "temper_alarm"://防拆报警 @@ -251,8 +261,9 @@ public class MyRunnerableInt implements ApplicationRunner { break; case "pir"://人体感应 - value = (value.equals("pir") ? "有人" : "无人"); log("人体感应:" + (value.equals("pir") ? "有人" : "无人")); + value = (value.equals("pir") ? "有人" : "无人"); + deviceBean.setValue(value); calOpenOrCloseDevWithPir(deviceBean); break; case "cur_voltage"://当前电压 @@ -273,22 +284,31 @@ public class MyRunnerableInt implements ApplicationRunner { /** * 根据是否有人控制设备 + * * @param deviceBean */ private void calOpenOrCloseDevWithPir(DeviceBean deviceBean) { + List calDevContrls = deviceDao.getCalDevContrlWidthDevId(deviceBean.getDevId()); + if (null != calDevContrls && calDevContrls.size() > 0) { + if (deviceBean.getValue().equals("有人")) deviceBean.setValue("1"); + else deviceBean.setValue("0"); - + ControlUtils.getInstance().conTemper(calDevContrls, deviceBean); + } } /** * 根据温度变化控制设备 + * * @param deviceBean */ private void calOpenOrCloseDevWithtemper(DeviceBean deviceBean) { - + List calDevContrls = deviceDao.getCalDevContrlWidthDevId(deviceBean.getDevId()); + if (null != calDevContrls && calDevContrls.size() > 0) + ControlUtils.getInstance().conTemper(calDevContrls, deviceBean); } diff --git a/cloud/mypulsar/src/main/java/com/example/mypulsar/Test.java b/cloud/mypulsar/src/main/java/com/example/mypulsar/Test.java index c53bbb3..8aa1603 100644 --- a/cloud/mypulsar/src/main/java/com/example/mypulsar/Test.java +++ b/cloud/mypulsar/src/main/java/com/example/mypulsar/Test.java @@ -2,11 +2,23 @@ package com.example.mypulsar; import com.example.mypulsar.utils.HttpUtil; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + public class Test { public static void main(String[] args){ - - HttpUtil.controlDev("6cb748ca397c2f03b1nqbh","switch_1","false"); +// 3307102084f3eb3547e7 +// HttpUtil.controlDev("6cb748ca397c2f03b1nqbh","switch_1","false"); + /*HttpUtil.addAirCode("{\n" + + "\"remote_index\":\"null\",\n" + + "\"remote_id\":\"null\",\n" + + "\"power\":\"1\",\n" + + "\"mode\":\"null\",\n" + + "\"temp\":\"null\",\n" + + "\"wind\":\"null\"\n" + + "}\n","45424060b4e62d2183ec");*/ } diff --git a/cloud/mypulsar/src/main/java/com/example/mypulsar/bean/CalDevContrl.java b/cloud/mypulsar/src/main/java/com/example/mypulsar/bean/CalDevContrl.java new file mode 100644 index 0000000..abe953d --- /dev/null +++ b/cloud/mypulsar/src/main/java/com/example/mypulsar/bean/CalDevContrl.java @@ -0,0 +1,134 @@ +package com.example.mypulsar.bean; + +import java.io.Serializable; + +public class CalDevContrl implements Serializable { + + private String Devid; + + private int ModelType; + + private int ComPre; + + private int CompreType; + + private String ThreValue; + + private String ConDevId; + + private String ConCode; + + private String ConValue; + + private String CreateTime; + + private String CreateUserId; + + private String InUseTime; + + public String getDevid() { + return Devid; + } + + public void setDevid(String devid) { + Devid = devid; + } + + public int getModelType() { + return ModelType; + } + + public void setModelType(int modelType) { + ModelType = modelType; + } + + public int getComPre() { + return ComPre; + } + + public void setComPre(int comPre) { + ComPre = comPre; + } + + public int getCompreType() { + return CompreType; + } + + public void setCompreType(int compreType) { + CompreType = compreType; + } + + public String getThresholdValue() { + return ThreValue; + } + + public void setThresholdValue(String thresholdValue) { + ThreValue = thresholdValue; + } + + public String getConDevId() { + return ConDevId; + } + + public void setConDevId(String conDevId) { + ConDevId = conDevId; + } + + public String getConCode() { + return ConCode; + } + + public void setConCode(String conCode) { + ConCode = conCode; + } + + public String getConValue() { + return ConValue; + } + + public void setConValue(String conValue) { + ConValue = conValue; + } + + public String getCreateTime() { + return CreateTime; + } + + public void setCreateTime(String createTime) { + CreateTime = createTime; + } + + public String getCreateUserId() { + return CreateUserId; + } + + public void setCreateUserId(String createUserId) { + CreateUserId = createUserId; + } + + public String getInUseTime() { + return InUseTime; + } + + public void setInUseTime(String inUseTime) { + InUseTime = inUseTime; + } + + + @Override + public String toString() { + return "CalDevContrl{" + + "Devid='" + Devid + '\'' + + ", ModelType=" + ModelType + + ", ComPre=" + ComPre + + ", CompreType=" + CompreType + + ", ThresholdValue='" + ThreValue + '\'' + + ", ConDevId='" + ConDevId + '\'' + + ", ConCode='" + ConCode + '\'' + + ", ConValue='" + ConValue + '\'' + + ", CreateTime='" + CreateTime + '\'' + + ", CreateUserId='" + CreateUserId + '\'' + + ", InUseTime='" + InUseTime + '\'' + + '}'; + } +} diff --git a/cloud/mypulsar/src/main/java/com/example/mypulsar/bean/Command.java b/cloud/mypulsar/src/main/java/com/example/mypulsar/bean/Command.java index b3da645..8ee7e63 100644 --- a/cloud/mypulsar/src/main/java/com/example/mypulsar/bean/Command.java +++ b/cloud/mypulsar/src/main/java/com/example/mypulsar/bean/Command.java @@ -21,4 +21,11 @@ public class Command{ private String value; + @Override + public String toString() { + return "Command{" + + "code='" + code + '\'' + + ", value='" + value + '\'' + + '}'; + } } diff --git a/cloud/mypulsar/src/main/java/com/example/mypulsar/bean/TuYaAirCondition.java b/cloud/mypulsar/src/main/java/com/example/mypulsar/bean/TuYaAirCondition.java new file mode 100644 index 0000000..fd1ea81 --- /dev/null +++ b/cloud/mypulsar/src/main/java/com/example/mypulsar/bean/TuYaAirCondition.java @@ -0,0 +1,104 @@ +package com.example.mypulsar.bean; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +public class TuYaAirCondition { + + private String remote_index; + private String remote_id; + + /** + * 开关(1:开,0:关) + */ + private String power; + /** + * 模式(0:制冷,1:制热,2:自动,3:送风,4:除湿) + */ + private String mode; + + /** + * 温度(16-30) + */ + private String temp; + + /** + * 风速(0:自动,1:低,2:中,3:高) + */ + private String wind; + + public String getRemote_index() { + return remote_index; + } + + public void setRemote_index(String remote_index) { + this.remote_index = remote_index; + } + + public String getRemote_id() { + return remote_id; + } + + public void setRemote_id(String remote_id) { + this.remote_id = remote_id; + } + + public String getPower() { + return power; + } + + public void setPower(String power) { + this.power = power; + } + + public String getMode() { + return mode; + } + + public void setMode(String mode) { + this.mode = mode; + } + + public String getTemp() { + return temp; + } + + public void setTemp(String temp) { + this.temp = temp; + } + + public String getWind() { + return wind; + } + + public void setWind(String wind) { + this.wind = wind; + } + + public String getSwing() { + return swing; + } + + public void setSwing(String swing) { + this.swing = swing; + } + + /** + * 风向(暂时不支持) + */ + private String swing; + + @Override + public String toString() { + return "TuYaAirCondition{" + + "remote_index='" + remote_index + '\'' + + ", remote_id='" + remote_id + '\'' + + ", power='" + power + '\'' + + ", mode='" + mode + '\'' + + ", temp='" + temp + '\'' + + ", wind='" + wind + '\'' + + ", swing='" + swing + '\'' + + '}'; + } +} diff --git a/cloud/mypulsar/src/main/java/com/example/mypulsar/bean/TuYaCommand.java b/cloud/mypulsar/src/main/java/com/example/mypulsar/bean/TuYaCommand.java index 0e0a6f0..5b56c0d 100644 --- a/cloud/mypulsar/src/main/java/com/example/mypulsar/bean/TuYaCommand.java +++ b/cloud/mypulsar/src/main/java/com/example/mypulsar/bean/TuYaCommand.java @@ -17,5 +17,11 @@ public class TuYaCommand { private List commands; + @Override + public String toString() { + return "TuYaCommand{" + + "commands=" + commands + + '}'; + } } diff --git a/cloud/mypulsar/src/main/java/com/example/mypulsar/dao/DeviceDao.java b/cloud/mypulsar/src/main/java/com/example/mypulsar/dao/DeviceDao.java index 41ac98c..bedf9d1 100644 --- a/cloud/mypulsar/src/main/java/com/example/mypulsar/dao/DeviceDao.java +++ b/cloud/mypulsar/src/main/java/com/example/mypulsar/dao/DeviceDao.java @@ -1,5 +1,6 @@ package com.example.mypulsar.dao; +import com.example.mypulsar.bean.CalDevContrl; import com.example.mypulsar.bean.DeviceBean; import org.apache.ibatis.annotations.*; import org.springframework.stereotype.Repository; @@ -22,8 +23,8 @@ public interface DeviceDao { int insert(@Param("clint_id")String clint_id,@Param("school_id")String school_id, @Param("isConnection")String isConnection); - @Update("update WL_Attendance set isConnection = #{isConnection} where clint_id = #{clint_id}") - int updateStatus(@Param("clint_id")String clint_id,@Param("isConnection")String isConnection); + @Update("update WL_Attendance set isConnection = #{isConnection},OnlineTime = #{OnlineTime} where clint_id = #{clint_id}") + int updateStatus(@Param("clint_id")String clint_id,@Param("isConnection")String isConnection,@Param("OnlineTime")String OnlineTime); @@ -35,6 +36,8 @@ public interface DeviceDao { //获取联动控制模板 @Select("select * from CalDevContrl") - List getCalDevContrl(); + List getCalDevContrl(); + @Select("select * from CalDevContrl where Devid = #{Devid}") + List getCalDevContrlWidthDevId(@Param("Devid") String devId); } diff --git a/cloud/mypulsar/src/main/java/com/example/mypulsar/utils/ControlUtils.java b/cloud/mypulsar/src/main/java/com/example/mypulsar/utils/ControlUtils.java index 8bfadcd..bd9298a 100644 --- a/cloud/mypulsar/src/main/java/com/example/mypulsar/utils/ControlUtils.java +++ b/cloud/mypulsar/src/main/java/com/example/mypulsar/utils/ControlUtils.java @@ -1,7 +1,140 @@ package com.example.mypulsar.utils; +import com.example.mypulsar.bean.CalDevContrl; +import com.example.mypulsar.bean.DeviceBean; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + public class ControlUtils { + private static ControlUtils controlUtils; + + public static ControlUtils getInstance(){ + if (null==controlUtils){ + synchronized (ControlUtils.class){ + if (null==controlUtils)controlUtils = new ControlUtils(); + } + } + return controlUtils; + } + + /** + * 根据温度变化操纵 + * @param calDevContrls 联动模板 + * @param deviceBean 温度传感器对象 + */ + public void conTemper(List calDevContrls, DeviceBean deviceBean){ + + for (CalDevContrl cal : + calDevContrls) { + + String inUseTime = cal.getInUseTime();//联动的时间范围,8:00-18:00 + + String[] inUseTimes = inUseTime.split("-"); + + String startTime = inUseTimes[0]; + + String endTime = inUseTimes[1]; + + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm"); + + try { + + Date startDate = simpleDateFormat.parse(startTime); + Date endDate = simpleDateFormat.parse(endTime); + Date date = simpleDateFormat.parse(new Date().getHours()+":"+new Date().getMinutes()); + + long starTime = startDate.getTime(); + + if (date.getTime()starTime){ + //比较器类型 + int compreType = cal.getCompreType(); + + switch (compreType){ + case 1://固定值 + calCompre(cal,deviceBean); + break; + case 2://当天日期 + + break; + } + } + + } catch (ParseException e) { + e.printStackTrace(); + } + + + } + + } + + /** + * + * @param cal 联动模板 + * @param deviceBean 控制设备 + */ + private void calCompre(CalDevContrl cal, DeviceBean deviceBean) { + int thrsoldValue = Integer.parseInt(cal.getThresholdValue());//设定的阈值 + int value = Integer.parseInt(deviceBean.getValue());//实际的值 + System.out.println("thrsoldValue:"+thrsoldValue+" value:"+value+" cal:"+cal.toString()); + switch (cal.getComPre()){ + case 1://大于 + if (value>thrsoldValue)//启动触发条件 + startDevice(cal);//开启联动的设备 + break; + case 2://等于 + + if(value == thrsoldValue) + startDevice(cal);//开启联动的设备 + + break; + case 3://小于 + + if(value < thrsoldValue) + startDevice(cal);//开启联动的设备 + + break; + } + + } + + /** + * 执行计划 + * @param cal + */ + private void startDevice(CalDevContrl cal) { + + int modelType = cal.getModelType(); + String conDevId = cal.getConDevId();//被控制的设备id + String conValue =cal.getConValue(); + String conCode = cal.getConCode(); + switch (modelType){ + case 1://开关 + HttpUtil.controlDev(conDevId,conCode,conValue); + break; + case 2://插座 + HttpUtil.controlDev(conDevId,conCode,conValue); + break; + case 3://排插 + HttpUtil.controlDev(conDevId,conCode,conValue); + break; + case 7://空调伴侣 + HttpUtil.addAirCode(conValue,conDevId); + break; + case 10://开关 + HttpUtil.controlDev(conDevId,conCode,conValue); + break; + case 12://万能遥控器 + HttpUtil.addAirCode(conValue,conDevId); + break; + } + + + } } diff --git a/cloud/mypulsar/src/main/java/com/example/mypulsar/utils/HttpUtil.java b/cloud/mypulsar/src/main/java/com/example/mypulsar/utils/HttpUtil.java index 7589b5c..ac9bb19 100644 --- a/cloud/mypulsar/src/main/java/com/example/mypulsar/utils/HttpUtil.java +++ b/cloud/mypulsar/src/main/java/com/example/mypulsar/utils/HttpUtil.java @@ -1,10 +1,11 @@ package com.example.mypulsar.utils; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; import com.example.mypulsar.bean.Command; +import com.example.mypulsar.bean.TuYaAirCondition; import com.example.mypulsar.bean.TuYaCommand; import org.apache.pulsar.shade.com.google.gson.Gson; +import org.springframework.boot.configurationprocessor.json.JSONException; +import org.springframework.boot.configurationprocessor.json.JSONObject; import org.springframework.core.io.FileSystemResource; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -92,9 +93,9 @@ public class HttpUtil { return result; } - public static boolean controlDev(String deviceId, String code,String value ){ + public static boolean controlDev(String deviceId, String code, String value) { - String url = "http://120.26.116.253:5555/TuYa/sendDeviceCommandsFun?deviceId="+deviceId; + String url = "http://120.26.116.253:5555/TuYa/sendDeviceCommandsFun?deviceId=" + deviceId; RestTemplate restTemplate = new RestTemplate(); @@ -110,25 +111,55 @@ public class HttpUtil { tuYaCommand.setCommands(commandList); - String responseEntity = restTemplate.postForObject(url,tuYaCommand, String.class); + String responseEntity = restTemplate.postForObject(url, tuYaCommand, String.class); - System.out.println("responseEntity:"+responseEntity); + System.out.println("tuYaCommand:" + tuYaCommand.toString()); + System.out.println("responseEntity:" + responseEntity); return responseEntity.equals("1"); } - public static boolean IsDeviceOnline(String deviceId){ + public static boolean IsDeviceOnline(String deviceId) { String url = "http://121.40.109.21:8089/file/getCard"; RestTemplate restTemplate = new RestTemplate(); - Map map = new HashMap<>(); + Map map = new HashMap<>(); - map.put("deviceId",deviceId); + map.put("deviceId", deviceId); - String res = restTemplate.getForObject(url,String.class,map); + String res = restTemplate.getForObject(url, String.class, map); return res.equals("1"); } + + public static String addAirCode(String conValue, String conDevId) { + + + String url = String.format("http://120.26.116.253:5555/TuYa/%s/addAirCode", conDevId); + RestTemplate restTemplate = new RestTemplate(); + + TuYaAirCondition tuYaAirCondition = new TuYaAirCondition(); + try { + JSONObject jsonObject = new JSONObject(conValue); + tuYaAirCondition.setMode(jsonObject.getString("mode")); + tuYaAirCondition.setPower(jsonObject.getString("power")); + tuYaAirCondition.setRemote_id(jsonObject.getString("remote_index")); + tuYaAirCondition.setWind(jsonObject.getString("wind")); + tuYaAirCondition.setTemp(jsonObject.getString("temp")); + tuYaAirCondition.setRemote_index(jsonObject.getString("remote_index")); + + } catch (JSONException e) { + e.printStackTrace(); + } + + System.out.println("url-------------------------------:" + url+" conValue:"+tuYaAirCondition.toString()); + String response = restTemplate.postForObject(url, tuYaAirCondition, String.class); + + System.out.println("response----------------------------------:" + response); + return response; + + } + } -- libgit2 0.21.0