Commit efa9935fed3477d5a023c462298657f32f9f3095
Exists in
master
Merge remote-tracking branch 'origin/master'
Showing
16 changed files
with
506 additions
and
66 deletions
Show diff stats
cloud/dahua/src/main/java/com/example/dahua/lib/CompressPic.java
... | ... | @@ -17,7 +17,7 @@ import java.io.InputStream; |
17 | 17 | public class CompressPic { |
18 | 18 | |
19 | 19 | public static String CompressPic(String srcPath, String targetPath, String studentcode) throws Exception { |
20 | - double cutPercent = 0.5; | |
20 | + double cutPercent = 0.2; | |
21 | 21 | File file = new File(srcPath.trim()); |
22 | 22 | FileInputStream fileInputStream = new FileInputStream(file); |
23 | 23 | BufferedImage bufferedImage = ImageIO.read(fileInputStream); | ... | ... |
cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java
... | ... | @@ -525,8 +525,8 @@ public class CMSServer implements ApplicationRunner { |
525 | 525 | * @Param picUrl 原图 |
526 | 526 | */ |
527 | 527 | public boolean sendInfo(String srcFile, String url, String card, String startTime, String endTime, int validTimeEnabled, String name, String deviceId, String userType, String employeeNo) { |
528 | - deleteCard(deviceId, card); | |
529 | - editCard(startTime, endTime, 0, name, card, deviceId, employeeNo); | |
528 | +// deleteCard(deviceId, card); | |
529 | +// editCard(startTime, endTime, 0, name, card, deviceId, employeeNo); | |
530 | 530 | editCard(startTime, endTime, 1, name, card, deviceId, employeeNo); |
531 | 531 | String strRequest = "/ISAPI/AccessControl/SetFaceParamCfg"; |
532 | 532 | String strConfigXML = "<SetFaceParamCfg version=\"2.0\" xmlns=\"http://www.isapi.org/ver20/XMLSchema\">\n" + |
... | ... | @@ -757,7 +757,7 @@ public class CMSServer implements ApplicationRunner { |
757 | 757 | if (type == 1) {//下发人脸 |
758 | 758 | if (!hCEhomeCMS.NET_ECMS_PostPTXMLConfig(map.get(deviceId), struISAPXML)) { |
759 | 759 | int iErr = hCEhomeCMS.NET_ECMS_GetLastError(); |
760 | - System.err.println(content + "失败,错误号:" + iErr); | |
760 | + System.err.println(content + "失败,错误号:" + iErr+"---"+strConfigXML+"\n"); | |
761 | 761 | sendRecoderUtils.sendFail(sendRecordDao, card, srcFile, deviceId, userDao, content + "失败,错误号:" + iErr, userType); |
762 | 762 | } else { |
763 | 763 | stringXMLOut.read(); | ... | ... |
cloud/haikangface/src/main/java/com/sincere/haikangface/async/SendUserAsync.java
... | ... | @@ -49,7 +49,7 @@ public class SendUserAsync { |
49 | 49 | } |
50 | 50 | //根据设备是5603 还是新设备 |
51 | 51 | String employeeNo = ""; |
52 | - if (deviceId.contains("ymzx")||deviceId.contains("5607")||deviceId.contains("5671")){ | |
52 | + if (deviceId.contains("ymzx")||deviceId.contains("5607")||deviceId.contains("5671")||deviceId.contains("5604")){ | |
53 | 53 | employeeNo = System.currentTimeMillis()+""; |
54 | 54 | cmsServer.SetCardWeekPlan(deviceId, HKXmlUtils.getInstance().SetCardTemplate(), "设置卡权限计划模板"); |
55 | 55 | cmsServer.SetCardWeekPlan(deviceId, HKXmlUtils.getInstance().SetCardWeekPlan(), "卡权限周计划"); | ... | ... |
cloud/haikangface/src/main/java/com/sincere/haikangface/dao/UserDao.java
... | ... | @@ -159,9 +159,9 @@ public interface UserDao { |
159 | 159 | @Param("userId") String userId, @Param("targetUrl") String targetUrl, @Param("clicks") int clicks, @Param("userList") String userList, @Param("isShare") int isShare, |
160 | 160 | @Param("charpId1") int charpId1, @Param("knowledgeId") int knowledgeId); |
161 | 161 | |
162 | - @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" + | |
163 | - " '840153105671', '840153165671', '840153835671') and time > '2019-12-10' )") | |
164 | - List<StudentBean> getAllStudentsWithSchoolId(@Param("school_id") String school_id); | |
162 | + @Select("select *\n" + | |
163 | + "from SZ_V_School_Student where name = #{name} and school_id = #{school_id}") | |
164 | + List<StudentBean> getAllStudentsWithSchoolId(@Param("school_id") String school_id,@Param("name")String name); | |
165 | 165 | |
166 | 166 | @Select("select * from SZ_V_School_Student where school_id = #{school_id} and student_type = 2") |
167 | 167 | List<StudentBean> getAllStuWithSchoolId(@Param("school_id") String school_id); | ... | ... |
cloud/haikangface/src/main/java/com/sincere/haikangface/utils/CompressPic.java
... | ... | @@ -16,13 +16,14 @@ import java.io.InputStream; |
16 | 16 | public class CompressPic { |
17 | 17 | |
18 | 18 | public static String CompressPic(String srcPath, String targetPath) throws Exception { |
19 | - double cutPercent = 0.5; | |
19 | + double cutPercent = 0.1; | |
20 | 20 | File file = new File(srcPath.trim()); |
21 | 21 | FileInputStream fileInputStreamSrc = new FileInputStream(file); |
22 | 22 | BufferedImage bufferedImage = ImageIO.read(fileInputStreamSrc); |
23 | 23 | int width = bufferedImage.getWidth(null); |
24 | 24 | int height = bufferedImage.getHeight(null); |
25 | 25 | long fileLength = file.length(); |
26 | + System.out.println("fileLength:"+fileLength); | |
26 | 27 | if ((fileLength / 1024) < 200) { |
27 | 28 | writeImgToFile(bufferedImage, width, height, targetPath); |
28 | 29 | } else | ... | ... |
cloud/haikangface/src/test/java/com/sincere/haikangface/HaikangfaceApplicationTests.java
... | ... | @@ -14,6 +14,7 @@ import com.sincere.haikangface.bean.xiaoan.CreditCardRecordsSS; |
14 | 14 | import com.sincere.haikangface.dao.DeviceDao; |
15 | 15 | import com.sincere.haikangface.dao.UserDao; |
16 | 16 | import com.sincere.haikangface.dao.ZuoYeDao; |
17 | +import com.sincere.haikangface.utils.ApiUtil; | |
17 | 18 | import com.sincere.haikangface.xiananDao.SendRecordDao; |
18 | 19 | import org.bouncycastle.asn1.cms.MetaData; |
19 | 20 | import org.hibernate.validator.constraints.LuhnCheck; |
... | ... | @@ -54,31 +55,6 @@ public class HaikangfaceApplicationTests { |
54 | 55 | @Test |
55 | 56 | public void contextLoads() { |
56 | 57 | |
57 | - /* | |
58 | - List<SendRecordBean> sendRecordBeanList = sendRecordDao.getSuccessAndFail(); | |
59 | - System.out.println("sendRecordBeanList:" + sendRecordBeanList.size()); | |
60 | - for (int i = 0; i < sendRecordBeanList.size(); i++) { | |
61 | - SendRecordBean sendRecordBean = sendRecordBeanList.get(i); | |
62 | - sendRecordDao.deleteFaceFail(sendRecordBean.getNum(), sendRecordBean.getDeviceID()); | |
63 | - } | |
64 | - //4278190095 最小值 | |
65 | - | |
66 | - for (long i = 694535; i <1048577 ; i++) { | |
67 | - | |
68 | - System.out.println("十六进制:FF"+splicingZero(Long.toHexString(i),5)+"F"); | |
69 | - String CardNum = "FF"+splicingZero(Long.toHexString(i),5)+"F"; | |
70 | - | |
71 | - long intCardNum = Long.parseLong(CardNum,16); | |
72 | - | |
73 | - System.out.println("intCardNum:"+intCardNum); | |
74 | - userDao.addVirtual_Card(intCardNum,0,CardNum); | |
75 | -// try { | |
76 | -// Thread.sleep(500); | |
77 | -// } catch (InterruptedException e) { | |
78 | -// e.printStackTrace(); | |
79 | -// } | |
80 | - | |
81 | - }*/ | |
82 | 58 | |
83 | 59 | } |
84 | 60 | |
... | ... | @@ -98,10 +74,11 @@ public class HaikangfaceApplicationTests { |
98 | 74 | /*RestTemplate restTemplate = new RestTemplate(); |
99 | 75 | //失败人脸补发 |
100 | 76 | int userType = 2; |
101 | - List<SendRecordBean> sendRecordBeanList = sendRecordDao.getSenFail("110",userType); | |
77 | + List<SendRecordBean> sendRecordBeanList = sendRecordDao.getSenFail("1066",userType); | |
102 | 78 | int idnex = 0; |
103 | 79 | for (int i = 0; i < sendRecordBeanList.size(); i++) { |
104 | 80 | SendRecordBean sendRecordBean = sendRecordBeanList.get(i); |
81 | + | |
105 | 82 | 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" |
106 | 83 | ,sendRecordBean.getNum(),sendRecordBean.getDeviceID(),"2023-10-01 10:00:00",sendRecordBean.getImgPath(),sendRecordBean.getName(),userType+"","1","2019-10-01 10:00:00"); |
107 | 84 | String result1 = restTemplate.getForObject(url, String.class); |
... | ... | @@ -109,19 +86,19 @@ public class HaikangfaceApplicationTests { |
109 | 86 | |
110 | 87 | }*/ |
111 | 88 | |
112 | - /*RestTemplate restTemplate = new RestTemplate(); | |
89 | + /* RestTemplate restTemplate = new RestTemplate(); | |
113 | 90 | //失败人脸补发 |
114 | 91 | int userType = 2; |
115 | - List<StudentBean> studentBeans = userDao.getAllStudentsWithSchoolId("1066"); | |
92 | + List<StudentBean> studentBeans = userDao.getAllStudentsWithSchoolId("1066","张文晶"); | |
116 | 93 | List<String> list = new ArrayList<>(); |
117 | -// list.add("840153205671"); | |
118 | -// list.add("840153965671"); | |
119 | -// list.add("840153485671"); | |
120 | -// list.add("840153325671"); | |
121 | -// list.add("840154005671"); | |
122 | -// list.add("840153105671"); | |
94 | + list.add("840153205671"); | |
95 | + list.add("840153965671"); | |
96 | + list.add("840153485671"); | |
97 | + list.add("840153325671"); | |
98 | + list.add("840154005671"); | |
99 | + list.add("840153105671"); | |
123 | 100 | list.add("840153165671"); |
124 | -// list.add("840153835671"); | |
101 | + list.add("840153835671"); | |
125 | 102 | int idnex = 0; |
126 | 103 | for (int i = 0; i < studentBeans.size(); i++) { |
127 | 104 | StudentBean sendRecordBean = studentBeans.get(i); |
... | ... | @@ -129,9 +106,12 @@ public class HaikangfaceApplicationTests { |
129 | 106 | // http://campus.myjxt.com//face17e50/School1066/Student/st20190101.png |
130 | 107 | for (int j = 0; j < list.size(); j++) { |
131 | 108 | String imgUrl = sendRecordBean.getPhoto().replace("http://campus.myjxt.com","E:\\wwwhtdocs\\smartcampus"); |
109 | +// imgUrl="E:\\wwwhtdocs\\smartcampus//face17e50/School1066/Student/st20170632.jpg"; | |
110 | + System.out.println("imgUrl:"+imgUrl); | |
132 | 111 | 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" |
133 | 112 | ,sendRecordBean.getStudent_num(),list.get(j),"2023-10-01 10:00:00",imgUrl,sendRecordBean.getName(),userType+"","1","2019-10-01 10:00:00"); |
134 | 113 | String result1 = restTemplate.getForObject(url, String.class); |
114 | + System.out.println("imgUrl:"+url); | |
135 | 115 | System.out.println("下发人脸:" + result1+" idnex:"+idnex++); |
136 | 116 | } |
137 | 117 | ... | ... |
cloud/mypulsar/pom.xml
... | ... | @@ -142,6 +142,15 @@ |
142 | 142 | <artifactId>spring-boot-maven-plugin</artifactId> |
143 | 143 | <configuration> |
144 | 144 | <includeSystemScope>true</includeSystemScope> |
145 | + <!-- | |
146 | + <layout>ZIP</layout> | |
147 | + <includes> | |
148 | + <include> | |
149 | + <!– 排除所有Jar –> | |
150 | + <groupId>nothing</groupId> | |
151 | + <artifactId>nothing</artifactId> | |
152 | + </include> | |
153 | + </includes>--> | |
145 | 154 | </configuration> |
146 | 155 | </plugin> |
147 | 156 | </plugins> | ... | ... |
cloud/mypulsar/src/main/java/com/example/mypulsar/MyRunnerableInt.java
1 | 1 | package com.example.mypulsar; |
2 | 2 | |
3 | 3 | import com.alibaba.fastjson.JSON; |
4 | +import com.example.mypulsar.bean.CalDevContrl; | |
4 | 5 | import com.example.mypulsar.bean.DeviceBean; |
5 | 6 | import com.example.mypulsar.bean.TuYaReceiverBean; |
6 | 7 | import com.example.mypulsar.bean.TuYaReceiverBeanStatus; |
... | ... | @@ -9,6 +10,7 @@ import com.example.mypulsar.message.MessageVO; |
9 | 10 | import com.example.mypulsar.mq.AESBase64Utils; |
10 | 11 | import com.example.mypulsar.mq.MessageHandlerTask; |
11 | 12 | import com.example.mypulsar.mq.MqConsumer; |
13 | +import com.example.mypulsar.utils.ControlUtils; | |
12 | 14 | import com.example.mypulsar.utils.PulsarConsumerPoolFactory; |
13 | 15 | import com.example.mypulsar.utils.ThreadPoolFactory; |
14 | 16 | import org.apache.pulsar.client.api.Consumer; |
... | ... | @@ -38,6 +40,11 @@ public class MyRunnerableInt implements ApplicationRunner { |
38 | 40 | @Override |
39 | 41 | public void run(ApplicationArguments args) throws Exception { |
40 | 42 | |
43 | +// DeviceBean deviceBean = new DeviceBean(); | |
44 | +// deviceBean.setValue("30"); | |
45 | +// deviceBean.setDevId("6c5c38c2e431d01eeei3to"); | |
46 | +// calOpenOrCloseDevWithtemper(deviceBean); | |
47 | + | |
41 | 48 | // System.out.println("running"); |
42 | 49 | // initPool(); |
43 | 50 | initMqConsumer(); |
... | ... | @@ -88,7 +95,7 @@ public class MyRunnerableInt implements ApplicationRunner { |
88 | 95 | * @param tuYaReceiverBean |
89 | 96 | */ |
90 | 97 | private void detealData(TuYaReceiverBean tuYaReceiverBean) { |
91 | - System.out.println("tuYaReceiverBean:" + tuYaReceiverBean.toString()); | |
98 | +// System.out.println("tuYaReceiverBean:" + tuYaReceiverBean.toString()); | |
92 | 99 | //数据对象 |
93 | 100 | DeviceBean deviceBean = new DeviceBean(); |
94 | 101 | deviceBean.setDataId(tuYaReceiverBean.getDataId()); |
... | ... | @@ -148,7 +155,7 @@ public class MyRunnerableInt implements ApplicationRunner { |
148 | 155 | |
149 | 156 | // String clintId = deviceDao.selectAttendance(devId); |
150 | 157 | // if (clintId.equals(devId)) { |
151 | - deviceDao.updateStatus(devId, isConnection); | |
158 | + deviceDao.updateStatus(devId, isConnection,new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); | |
152 | 159 | // } else { |
153 | 160 | // deviceDao.insert(devId, "-2", isConnection); |
154 | 161 | // } |
... | ... | @@ -156,7 +163,7 @@ public class MyRunnerableInt implements ApplicationRunner { |
156 | 163 | } |
157 | 164 | |
158 | 165 | private void updateDevStatus(DeviceBean deviceBean) { |
159 | - System.out.println("插入数据:" + deviceBean.toString()); | |
166 | +// System.out.println("插入数据:" + deviceBean.toString()); | |
160 | 167 | deviceBean.setDpId(""); |
161 | 168 | deviceBean.setName(""); |
162 | 169 | deviceBean.setUid(""); |
... | ... | @@ -165,7 +172,6 @@ public class MyRunnerableInt implements ApplicationRunner { |
165 | 172 | if (deviceBean.getDataId() == null) deviceBean.setDataId(""); |
166 | 173 | if (deviceBean.getCode() == null) deviceBean.setCode(""); |
167 | 174 | if (deviceBean.getProductKey() == null) deviceBean.setProductKey(""); |
168 | - | |
169 | 175 | int index = deviceDao.addDevice(deviceBean.getDataId(), deviceBean.getDevId(), deviceBean.getProductKey(), deviceBean.getCode(), deviceBean.getValue() |
170 | 176 | , deviceBean.getBizCode(), deviceBean.getTime(), deviceBean.getName(), deviceBean.getDpId(), deviceBean.getUid(), deviceBean.getDev_status(), deviceBean.getDev_type()); |
171 | 177 | updateStatus(deviceBean.getDevId(), "1"); |
... | ... | @@ -192,12 +198,16 @@ public class MyRunnerableInt implements ApplicationRunner { |
192 | 198 | deviceBean.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date)); |
193 | 199 | String value = statue.getValue(); |
194 | 200 | deviceBean.setValue(value); |
201 | + | |
202 | + System.out.println("插入数据:" +value); | |
195 | 203 | switch (code) { |
196 | 204 | case "va_temperature"://温度 |
205 | + deviceBean.setValue(Integer.parseInt(value)/100+""); | |
197 | 206 | calOpenOrCloseDevWithtemper(deviceBean);//计算开启或关闭设备 |
198 | 207 | log("温度:" + value); |
199 | 208 | break; |
200 | 209 | case "va_humidity"://湿度 |
210 | + deviceBean.setValue(Integer.parseInt(value)/100+""); | |
201 | 211 | log("湿度:" + value); |
202 | 212 | break; |
203 | 213 | case "temper_alarm"://防拆报警 |
... | ... | @@ -251,8 +261,9 @@ public class MyRunnerableInt implements ApplicationRunner { |
251 | 261 | |
252 | 262 | break; |
253 | 263 | case "pir"://人体感应 |
254 | - value = (value.equals("pir") ? "有人" : "无人"); | |
255 | 264 | log("人体感应:" + (value.equals("pir") ? "有人" : "无人")); |
265 | + value = (value.equals("pir") ? "有人" : "无人"); | |
266 | + deviceBean.setValue(value); | |
256 | 267 | calOpenOrCloseDevWithPir(deviceBean); |
257 | 268 | break; |
258 | 269 | case "cur_voltage"://当前电压 |
... | ... | @@ -273,22 +284,31 @@ public class MyRunnerableInt implements ApplicationRunner { |
273 | 284 | |
274 | 285 | /** |
275 | 286 | * 根据是否有人控制设备 |
287 | + * | |
276 | 288 | * @param deviceBean |
277 | 289 | */ |
278 | 290 | private void calOpenOrCloseDevWithPir(DeviceBean deviceBean) { |
279 | 291 | |
292 | + List<CalDevContrl> calDevContrls = deviceDao.getCalDevContrlWidthDevId(deviceBean.getDevId()); | |
293 | + if (null != calDevContrls && calDevContrls.size() > 0) { | |
294 | + if (deviceBean.getValue().equals("有人")) deviceBean.setValue("1"); | |
295 | + else deviceBean.setValue("0"); | |
280 | 296 | |
281 | - | |
297 | + ControlUtils.getInstance().conTemper(calDevContrls, deviceBean); | |
298 | + } | |
282 | 299 | } |
283 | 300 | |
284 | 301 | |
285 | 302 | /** |
286 | 303 | * 根据温度变化控制设备 |
304 | + * | |
287 | 305 | * @param deviceBean |
288 | 306 | */ |
289 | 307 | private void calOpenOrCloseDevWithtemper(DeviceBean deviceBean) { |
290 | 308 | |
291 | - | |
309 | + List<CalDevContrl> calDevContrls = deviceDao.getCalDevContrlWidthDevId(deviceBean.getDevId()); | |
310 | + if (null != calDevContrls && calDevContrls.size() > 0) | |
311 | + ControlUtils.getInstance().conTemper(calDevContrls, deviceBean); | |
292 | 312 | |
293 | 313 | } |
294 | 314 | ... | ... |
cloud/mypulsar/src/main/java/com/example/mypulsar/Test.java
... | ... | @@ -2,11 +2,23 @@ package com.example.mypulsar; |
2 | 2 | |
3 | 3 | import com.example.mypulsar.utils.HttpUtil; |
4 | 4 | |
5 | +import java.text.ParseException; | |
6 | +import java.text.SimpleDateFormat; | |
7 | +import java.util.Date; | |
8 | + | |
5 | 9 | public class Test { |
6 | 10 | |
7 | 11 | public static void main(String[] args){ |
8 | - | |
9 | - HttpUtil.controlDev("6cb748ca397c2f03b1nqbh","switch_1","false"); | |
12 | +// 3307102084f3eb3547e7 | |
13 | +// HttpUtil.controlDev("6cb748ca397c2f03b1nqbh","switch_1","false"); | |
14 | + /*HttpUtil.addAirCode("{\n" + | |
15 | + "\"remote_index\":\"null\",\n" + | |
16 | + "\"remote_id\":\"null\",\n" + | |
17 | + "\"power\":\"1\",\n" + | |
18 | + "\"mode\":\"null\",\n" + | |
19 | + "\"temp\":\"null\",\n" + | |
20 | + "\"wind\":\"null\"\n" + | |
21 | + "}\n","45424060b4e62d2183ec");*/ | |
10 | 22 | |
11 | 23 | } |
12 | 24 | ... | ... |
cloud/mypulsar/src/main/java/com/example/mypulsar/bean/CalDevContrl.java
0 → 100644
... | ... | @@ -0,0 +1,134 @@ |
1 | +package com.example.mypulsar.bean; | |
2 | + | |
3 | +import java.io.Serializable; | |
4 | + | |
5 | +public class CalDevContrl implements Serializable { | |
6 | + | |
7 | + private String Devid; | |
8 | + | |
9 | + private int ModelType; | |
10 | + | |
11 | + private int ComPre; | |
12 | + | |
13 | + private int CompreType; | |
14 | + | |
15 | + private String ThreValue; | |
16 | + | |
17 | + private String ConDevId; | |
18 | + | |
19 | + private String ConCode; | |
20 | + | |
21 | + private String ConValue; | |
22 | + | |
23 | + private String CreateTime; | |
24 | + | |
25 | + private String CreateUserId; | |
26 | + | |
27 | + private String InUseTime; | |
28 | + | |
29 | + public String getDevid() { | |
30 | + return Devid; | |
31 | + } | |
32 | + | |
33 | + public void setDevid(String devid) { | |
34 | + Devid = devid; | |
35 | + } | |
36 | + | |
37 | + public int getModelType() { | |
38 | + return ModelType; | |
39 | + } | |
40 | + | |
41 | + public void setModelType(int modelType) { | |
42 | + ModelType = modelType; | |
43 | + } | |
44 | + | |
45 | + public int getComPre() { | |
46 | + return ComPre; | |
47 | + } | |
48 | + | |
49 | + public void setComPre(int comPre) { | |
50 | + ComPre = comPre; | |
51 | + } | |
52 | + | |
53 | + public int getCompreType() { | |
54 | + return CompreType; | |
55 | + } | |
56 | + | |
57 | + public void setCompreType(int compreType) { | |
58 | + CompreType = compreType; | |
59 | + } | |
60 | + | |
61 | + public String getThresholdValue() { | |
62 | + return ThreValue; | |
63 | + } | |
64 | + | |
65 | + public void setThresholdValue(String thresholdValue) { | |
66 | + ThreValue = thresholdValue; | |
67 | + } | |
68 | + | |
69 | + public String getConDevId() { | |
70 | + return ConDevId; | |
71 | + } | |
72 | + | |
73 | + public void setConDevId(String conDevId) { | |
74 | + ConDevId = conDevId; | |
75 | + } | |
76 | + | |
77 | + public String getConCode() { | |
78 | + return ConCode; | |
79 | + } | |
80 | + | |
81 | + public void setConCode(String conCode) { | |
82 | + ConCode = conCode; | |
83 | + } | |
84 | + | |
85 | + public String getConValue() { | |
86 | + return ConValue; | |
87 | + } | |
88 | + | |
89 | + public void setConValue(String conValue) { | |
90 | + ConValue = conValue; | |
91 | + } | |
92 | + | |
93 | + public String getCreateTime() { | |
94 | + return CreateTime; | |
95 | + } | |
96 | + | |
97 | + public void setCreateTime(String createTime) { | |
98 | + CreateTime = createTime; | |
99 | + } | |
100 | + | |
101 | + public String getCreateUserId() { | |
102 | + return CreateUserId; | |
103 | + } | |
104 | + | |
105 | + public void setCreateUserId(String createUserId) { | |
106 | + CreateUserId = createUserId; | |
107 | + } | |
108 | + | |
109 | + public String getInUseTime() { | |
110 | + return InUseTime; | |
111 | + } | |
112 | + | |
113 | + public void setInUseTime(String inUseTime) { | |
114 | + InUseTime = inUseTime; | |
115 | + } | |
116 | + | |
117 | + | |
118 | + @Override | |
119 | + public String toString() { | |
120 | + return "CalDevContrl{" + | |
121 | + "Devid='" + Devid + '\'' + | |
122 | + ", ModelType=" + ModelType + | |
123 | + ", ComPre=" + ComPre + | |
124 | + ", CompreType=" + CompreType + | |
125 | + ", ThresholdValue='" + ThreValue + '\'' + | |
126 | + ", ConDevId='" + ConDevId + '\'' + | |
127 | + ", ConCode='" + ConCode + '\'' + | |
128 | + ", ConValue='" + ConValue + '\'' + | |
129 | + ", CreateTime='" + CreateTime + '\'' + | |
130 | + ", CreateUserId='" + CreateUserId + '\'' + | |
131 | + ", InUseTime='" + InUseTime + '\'' + | |
132 | + '}'; | |
133 | + } | |
134 | +} | ... | ... |
cloud/mypulsar/src/main/java/com/example/mypulsar/bean/Command.java
cloud/mypulsar/src/main/java/com/example/mypulsar/bean/TuYaAirCondition.java
0 → 100644
... | ... | @@ -0,0 +1,104 @@ |
1 | +package com.example.mypulsar.bean; | |
2 | + | |
3 | +import com.fasterxml.jackson.annotation.JsonInclude; | |
4 | +import io.swagger.annotations.ApiModel; | |
5 | +import io.swagger.annotations.ApiModelProperty; | |
6 | + | |
7 | +public class TuYaAirCondition { | |
8 | + | |
9 | + private String remote_index; | |
10 | + private String remote_id; | |
11 | + | |
12 | + /** | |
13 | + * 开关(1:开,0:关) | |
14 | + */ | |
15 | + private String power; | |
16 | + /** | |
17 | + * 模式(0:制冷,1:制热,2:自动,3:送风,4:除湿) | |
18 | + */ | |
19 | + private String mode; | |
20 | + | |
21 | + /** | |
22 | + * 温度(16-30) | |
23 | + */ | |
24 | + private String temp; | |
25 | + | |
26 | + /** | |
27 | + * 风速(0:自动,1:低,2:中,3:高) | |
28 | + */ | |
29 | + private String wind; | |
30 | + | |
31 | + public String getRemote_index() { | |
32 | + return remote_index; | |
33 | + } | |
34 | + | |
35 | + public void setRemote_index(String remote_index) { | |
36 | + this.remote_index = remote_index; | |
37 | + } | |
38 | + | |
39 | + public String getRemote_id() { | |
40 | + return remote_id; | |
41 | + } | |
42 | + | |
43 | + public void setRemote_id(String remote_id) { | |
44 | + this.remote_id = remote_id; | |
45 | + } | |
46 | + | |
47 | + public String getPower() { | |
48 | + return power; | |
49 | + } | |
50 | + | |
51 | + public void setPower(String power) { | |
52 | + this.power = power; | |
53 | + } | |
54 | + | |
55 | + public String getMode() { | |
56 | + return mode; | |
57 | + } | |
58 | + | |
59 | + public void setMode(String mode) { | |
60 | + this.mode = mode; | |
61 | + } | |
62 | + | |
63 | + public String getTemp() { | |
64 | + return temp; | |
65 | + } | |
66 | + | |
67 | + public void setTemp(String temp) { | |
68 | + this.temp = temp; | |
69 | + } | |
70 | + | |
71 | + public String getWind() { | |
72 | + return wind; | |
73 | + } | |
74 | + | |
75 | + public void setWind(String wind) { | |
76 | + this.wind = wind; | |
77 | + } | |
78 | + | |
79 | + public String getSwing() { | |
80 | + return swing; | |
81 | + } | |
82 | + | |
83 | + public void setSwing(String swing) { | |
84 | + this.swing = swing; | |
85 | + } | |
86 | + | |
87 | + /** | |
88 | + * 风向(暂时不支持) | |
89 | + */ | |
90 | + private String swing; | |
91 | + | |
92 | + @Override | |
93 | + public String toString() { | |
94 | + return "TuYaAirCondition{" + | |
95 | + "remote_index='" + remote_index + '\'' + | |
96 | + ", remote_id='" + remote_id + '\'' + | |
97 | + ", power='" + power + '\'' + | |
98 | + ", mode='" + mode + '\'' + | |
99 | + ", temp='" + temp + '\'' + | |
100 | + ", wind='" + wind + '\'' + | |
101 | + ", swing='" + swing + '\'' + | |
102 | + '}'; | |
103 | + } | |
104 | +} | ... | ... |
cloud/mypulsar/src/main/java/com/example/mypulsar/bean/TuYaCommand.java
cloud/mypulsar/src/main/java/com/example/mypulsar/dao/DeviceDao.java
1 | 1 | package com.example.mypulsar.dao; |
2 | 2 | |
3 | +import com.example.mypulsar.bean.CalDevContrl; | |
3 | 4 | import com.example.mypulsar.bean.DeviceBean; |
4 | 5 | import org.apache.ibatis.annotations.*; |
5 | 6 | import org.springframework.stereotype.Repository; |
... | ... | @@ -22,8 +23,8 @@ public interface DeviceDao { |
22 | 23 | int insert(@Param("clint_id")String clint_id,@Param("school_id")String school_id, |
23 | 24 | @Param("isConnection")String isConnection); |
24 | 25 | |
25 | - @Update("update WL_Attendance set isConnection = #{isConnection} where clint_id = #{clint_id}") | |
26 | - int updateStatus(@Param("clint_id")String clint_id,@Param("isConnection")String isConnection); | |
26 | + @Update("update WL_Attendance set isConnection = #{isConnection},OnlineTime = #{OnlineTime} where clint_id = #{clint_id}") | |
27 | + int updateStatus(@Param("clint_id")String clint_id,@Param("isConnection")String isConnection,@Param("OnlineTime")String OnlineTime); | |
27 | 28 | |
28 | 29 | |
29 | 30 | |
... | ... | @@ -35,6 +36,8 @@ public interface DeviceDao { |
35 | 36 | |
36 | 37 | //获取联动控制模板 |
37 | 38 | @Select("select * from CalDevContrl") |
38 | - List<String> getCalDevContrl(); | |
39 | + List<CalDevContrl> getCalDevContrl(); | |
39 | 40 | |
41 | + @Select("select * from CalDevContrl where Devid = #{Devid}") | |
42 | + List<CalDevContrl> getCalDevContrlWidthDevId(@Param("Devid") String devId); | |
40 | 43 | } | ... | ... |
cloud/mypulsar/src/main/java/com/example/mypulsar/utils/ControlUtils.java
1 | 1 | package com.example.mypulsar.utils; |
2 | 2 | |
3 | +import com.example.mypulsar.bean.CalDevContrl; | |
4 | +import com.example.mypulsar.bean.DeviceBean; | |
5 | + | |
6 | +import java.text.ParseException; | |
7 | +import java.text.SimpleDateFormat; | |
8 | +import java.util.Date; | |
9 | +import java.util.List; | |
10 | + | |
3 | 11 | public class ControlUtils { |
4 | 12 | |
13 | + private static ControlUtils controlUtils; | |
14 | + | |
15 | + public static ControlUtils getInstance(){ | |
16 | + if (null==controlUtils){ | |
17 | + synchronized (ControlUtils.class){ | |
18 | + if (null==controlUtils)controlUtils = new ControlUtils(); | |
19 | + } | |
20 | + } | |
21 | + return controlUtils; | |
22 | + } | |
23 | + | |
24 | + /** | |
25 | + * 根据温度变化操纵 | |
26 | + * @param calDevContrls 联动模板 | |
27 | + * @param deviceBean 温度传感器对象 | |
28 | + */ | |
29 | + public void conTemper(List<CalDevContrl> calDevContrls, DeviceBean deviceBean){ | |
30 | + | |
31 | + for (CalDevContrl cal : | |
32 | + calDevContrls) { | |
33 | + | |
34 | + String inUseTime = cal.getInUseTime();//联动的时间范围,8:00-18:00 | |
35 | + | |
36 | + String[] inUseTimes = inUseTime.split("-"); | |
37 | + | |
38 | + String startTime = inUseTimes[0]; | |
39 | + | |
40 | + String endTime = inUseTimes[1]; | |
41 | + | |
42 | + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm"); | |
43 | + | |
44 | + try { | |
45 | + | |
46 | + Date startDate = simpleDateFormat.parse(startTime); | |
47 | + Date endDate = simpleDateFormat.parse(endTime); | |
48 | + Date date = simpleDateFormat.parse(new Date().getHours()+":"+new Date().getMinutes()); | |
49 | + | |
50 | + long starTime = startDate.getTime(); | |
51 | + | |
52 | + if (date.getTime()<endDate.getTime()&&date.getTime()>starTime){ | |
53 | + //比较器类型 | |
54 | + int compreType = cal.getCompreType(); | |
55 | + | |
56 | + switch (compreType){ | |
57 | + case 1://固定值 | |
58 | + calCompre(cal,deviceBean); | |
59 | + break; | |
60 | + case 2://当天日期 | |
61 | + | |
62 | + break; | |
63 | + } | |
64 | + } | |
65 | + | |
66 | + } catch (ParseException e) { | |
67 | + e.printStackTrace(); | |
68 | + } | |
69 | + | |
70 | + | |
71 | + } | |
72 | + | |
73 | + } | |
74 | + | |
75 | + /** | |
76 | + * | |
77 | + * @param cal 联动模板 | |
78 | + * @param deviceBean 控制设备 | |
79 | + */ | |
80 | + private void calCompre(CalDevContrl cal, DeviceBean deviceBean) { | |
81 | + int thrsoldValue = Integer.parseInt(cal.getThresholdValue());//设定的阈值 | |
82 | + int value = Integer.parseInt(deviceBean.getValue());//实际的值 | |
83 | + System.out.println("thrsoldValue:"+thrsoldValue+" value:"+value+" cal:"+cal.toString()); | |
84 | + switch (cal.getComPre()){ | |
85 | + case 1://大于 | |
86 | + if (value>thrsoldValue)//启动触发条件 | |
87 | + startDevice(cal);//开启联动的设备 | |
88 | + break; | |
89 | + case 2://等于 | |
90 | + | |
91 | + if(value == thrsoldValue) | |
92 | + startDevice(cal);//开启联动的设备 | |
93 | + | |
94 | + break; | |
95 | + case 3://小于 | |
96 | + | |
97 | + if(value < thrsoldValue) | |
98 | + startDevice(cal);//开启联动的设备 | |
99 | + | |
100 | + break; | |
101 | + } | |
102 | + | |
103 | + } | |
104 | + | |
105 | + /** | |
106 | + * 执行计划 | |
107 | + * @param cal | |
108 | + */ | |
109 | + private void startDevice(CalDevContrl cal) { | |
110 | + | |
111 | + int modelType = cal.getModelType(); | |
112 | + String conDevId = cal.getConDevId();//被控制的设备id | |
113 | + String conValue =cal.getConValue(); | |
114 | + String conCode = cal.getConCode(); | |
115 | + switch (modelType){ | |
116 | + case 1://开关 | |
117 | + HttpUtil.controlDev(conDevId,conCode,conValue); | |
118 | + break; | |
119 | + case 2://插座 | |
120 | + HttpUtil.controlDev(conDevId,conCode,conValue); | |
121 | + break; | |
122 | + case 3://排插 | |
123 | + HttpUtil.controlDev(conDevId,conCode,conValue); | |
124 | + break; | |
125 | + case 7://空调伴侣 | |
126 | + HttpUtil.addAirCode(conValue,conDevId); | |
127 | + break; | |
128 | + case 10://开关 | |
129 | + HttpUtil.controlDev(conDevId,conCode,conValue); | |
130 | + break; | |
131 | + case 12://万能遥控器 | |
132 | + HttpUtil.addAirCode(conValue,conDevId); | |
133 | + break; | |
134 | + } | |
135 | + | |
136 | + | |
137 | + } | |
5 | 138 | |
6 | 139 | |
7 | 140 | } | ... | ... |
cloud/mypulsar/src/main/java/com/example/mypulsar/utils/HttpUtil.java
1 | 1 | package com.example.mypulsar.utils; |
2 | 2 | |
3 | -import com.alibaba.fastjson.JSONArray; | |
4 | -import com.alibaba.fastjson.JSONObject; | |
5 | 3 | import com.example.mypulsar.bean.Command; |
4 | +import com.example.mypulsar.bean.TuYaAirCondition; | |
6 | 5 | import com.example.mypulsar.bean.TuYaCommand; |
7 | 6 | import org.apache.pulsar.shade.com.google.gson.Gson; |
7 | +import org.springframework.boot.configurationprocessor.json.JSONException; | |
8 | +import org.springframework.boot.configurationprocessor.json.JSONObject; | |
8 | 9 | import org.springframework.core.io.FileSystemResource; |
9 | 10 | import org.springframework.http.HttpEntity; |
10 | 11 | import org.springframework.http.HttpHeaders; |
... | ... | @@ -92,9 +93,9 @@ public class HttpUtil { |
92 | 93 | return result; |
93 | 94 | } |
94 | 95 | |
95 | - public static boolean controlDev(String deviceId, String code,String value ){ | |
96 | + public static boolean controlDev(String deviceId, String code, String value) { | |
96 | 97 | |
97 | - String url = "http://120.26.116.253:5555/TuYa/sendDeviceCommandsFun?deviceId="+deviceId; | |
98 | + String url = "http://120.26.116.253:5555/TuYa/sendDeviceCommandsFun?deviceId=" + deviceId; | |
98 | 99 | |
99 | 100 | RestTemplate restTemplate = new RestTemplate(); |
100 | 101 | |
... | ... | @@ -110,25 +111,55 @@ public class HttpUtil { |
110 | 111 | |
111 | 112 | tuYaCommand.setCommands(commandList); |
112 | 113 | |
113 | - String responseEntity = restTemplate.postForObject(url,tuYaCommand, String.class); | |
114 | + String responseEntity = restTemplate.postForObject(url, tuYaCommand, String.class); | |
114 | 115 | |
115 | - System.out.println("responseEntity:"+responseEntity); | |
116 | + System.out.println("tuYaCommand:" + tuYaCommand.toString()); | |
117 | + System.out.println("responseEntity:" + responseEntity); | |
116 | 118 | return responseEntity.equals("1"); |
117 | 119 | } |
118 | 120 | |
119 | 121 | |
120 | - public static boolean IsDeviceOnline(String deviceId){ | |
122 | + public static boolean IsDeviceOnline(String deviceId) { | |
121 | 123 | |
122 | 124 | String url = "http://121.40.109.21:8089/file/getCard"; |
123 | 125 | |
124 | 126 | RestTemplate restTemplate = new RestTemplate(); |
125 | 127 | |
126 | - Map<String,Object> map = new HashMap<>(); | |
128 | + Map<String, Object> map = new HashMap<>(); | |
127 | 129 | |
128 | - map.put("deviceId",deviceId); | |
130 | + map.put("deviceId", deviceId); | |
129 | 131 | |
130 | - String res = restTemplate.getForObject(url,String.class,map); | |
132 | + String res = restTemplate.getForObject(url, String.class, map); | |
131 | 133 | return res.equals("1"); |
132 | 134 | } |
133 | 135 | |
136 | + | |
137 | + public static String addAirCode(String conValue, String conDevId) { | |
138 | + | |
139 | + | |
140 | + String url = String.format("http://120.26.116.253:5555/TuYa/%s/addAirCode", conDevId); | |
141 | + RestTemplate restTemplate = new RestTemplate(); | |
142 | + | |
143 | + TuYaAirCondition tuYaAirCondition = new TuYaAirCondition(); | |
144 | + try { | |
145 | + JSONObject jsonObject = new JSONObject(conValue); | |
146 | + tuYaAirCondition.setMode(jsonObject.getString("mode")); | |
147 | + tuYaAirCondition.setPower(jsonObject.getString("power")); | |
148 | + tuYaAirCondition.setRemote_id(jsonObject.getString("remote_index")); | |
149 | + tuYaAirCondition.setWind(jsonObject.getString("wind")); | |
150 | + tuYaAirCondition.setTemp(jsonObject.getString("temp")); | |
151 | + tuYaAirCondition.setRemote_index(jsonObject.getString("remote_index")); | |
152 | + | |
153 | + } catch (JSONException e) { | |
154 | + e.printStackTrace(); | |
155 | + } | |
156 | + | |
157 | + System.out.println("url-------------------------------:" + url+" conValue:"+tuYaAirCondition.toString()); | |
158 | + String response = restTemplate.postForObject(url, tuYaAirCondition, String.class); | |
159 | + | |
160 | + System.out.println("response----------------------------------:" + response); | |
161 | + return response; | |
162 | + | |
163 | + } | |
164 | + | |
134 | 165 | } | ... | ... |