Commit acd712a65d52689f4378d7958eeb83c874f6db8e
1 parent
a2a3d070
Exists in
master
增加网关负载
Showing
51 changed files
with
2386 additions
and
1073 deletions
Show diff stats
cloud/dahua/src/main/java/com/example/dahua/MyTask.java
1 | package com.example.dahua; | 1 | package com.example.dahua; |
2 | 2 | ||
3 | -import com.example.dahua.Gate.Gate; | ||
4 | -import com.example.dahua.alarmListen.AlarmListenModule; | ||
5 | import com.example.dahua.bean.CardBean; | 3 | import com.example.dahua.bean.CardBean; |
6 | import com.example.dahua.bean.DeviceInfoBean; | 4 | import com.example.dahua.bean.DeviceInfoBean; |
7 | import com.example.dahua.bean.TeacherBean; | 5 | import com.example.dahua.bean.TeacherBean; |
@@ -14,9 +12,7 @@ import com.example.dahua.module.AutoRegisterModule; | @@ -14,9 +12,7 @@ import com.example.dahua.module.AutoRegisterModule; | ||
14 | import com.example.dahua.module.GateModule; | 12 | import com.example.dahua.module.GateModule; |
15 | import com.example.dahua.module.LoginModule; | 13 | import com.example.dahua.module.LoginModule; |
16 | import com.example.dahua.service.AttendanceService; | 14 | import com.example.dahua.service.AttendanceService; |
17 | -import com.example.dahua.utils.FileUtils; | ||
18 | import com.example.dahua.xiananDao.SendRecordDao; | 15 | import com.example.dahua.xiananDao.SendRecordDao; |
19 | -import com.sun.jna.NativeLong; | ||
20 | import com.sun.jna.Pointer; | 16 | import com.sun.jna.Pointer; |
21 | import org.springframework.beans.factory.annotation.Autowired; | 17 | import org.springframework.beans.factory.annotation.Autowired; |
22 | import org.springframework.boot.ApplicationArguments; | 18 | import org.springframework.boot.ApplicationArguments; |
@@ -25,7 +21,6 @@ import org.springframework.stereotype.Component; | @@ -25,7 +21,6 @@ import org.springframework.stereotype.Component; | ||
25 | import org.springframework.util.StringUtils; | 21 | import org.springframework.util.StringUtils; |
26 | 22 | ||
27 | import javax.imageio.ImageIO; | 23 | import javax.imageio.ImageIO; |
28 | -import java.awt.*; | ||
29 | import java.awt.image.BufferedImage; | 24 | import java.awt.image.BufferedImage; |
30 | import java.io.ByteArrayInputStream; | 25 | import java.io.ByteArrayInputStream; |
31 | import java.io.File; | 26 | import java.io.File; |
cloud/dahua/src/main/java/com/example/dahua/async/MyScheduledTask.java
@@ -190,7 +190,7 @@ public class MyScheduledTask { | @@ -190,7 +190,7 @@ public class MyScheduledTask { | ||
190 | File file = new File(filePath); | 190 | File file = new File(filePath); |
191 | try { | 191 | try { |
192 | if (!file.exists()) { | 192 | if (!file.exists()) { |
193 | - System.out.println("文件不存在:" + filePath); | 193 | +// System.out.println("文件不存在:" + filePath); |
194 | return; | 194 | return; |
195 | } | 195 | } |
196 | FileInputStream fileInputStream = new FileInputStream(file); | 196 | FileInputStream fileInputStream = new FileInputStream(file); |
cloud/dahua/src/main/java/com/example/dahua/bean/PermissionBean.java
1 | package com.example.dahua.bean; | 1 | package com.example.dahua.bean; |
2 | 2 | ||
3 | +import io.swagger.annotations.ApiModelProperty; | ||
4 | + | ||
3 | import java.io.Serializable; | 5 | import java.io.Serializable; |
4 | import java.util.List; | 6 | import java.util.List; |
5 | 7 | ||
6 | public class PermissionBean implements Serializable { | 8 | public class PermissionBean implements Serializable { |
7 | 9 | ||
10 | + @ApiModelProperty(value = "设备id",required = true) | ||
8 | private List<String> deviceIds; | 11 | private List<String> deviceIds; |
9 | 12 | ||
10 | private List<WeekDay> weekDays; | 13 | private List<WeekDay> weekDays; |
11 | 14 | ||
15 | + @ApiModelProperty("用逗号隔开,1:通校生,2:住校生,3:全部") | ||
16 | + private String studentType; | ||
17 | + | ||
18 | + public String getStudentType() { | ||
19 | + return studentType; | ||
20 | + } | ||
21 | + | ||
22 | + public void setStudentType(String studentType) { | ||
23 | + this.studentType = studentType; | ||
24 | + } | ||
25 | + | ||
12 | public List<String> getDeviceIds() { | 26 | public List<String> getDeviceIds() { |
13 | return deviceIds; | 27 | return deviceIds; |
14 | } | 28 | } |
cloud/dahua/src/main/java/com/example/dahua/bean/PermissionFaceBean.java
0 → 100644
@@ -0,0 +1,108 @@ | @@ -0,0 +1,108 @@ | ||
1 | +package com.example.dahua.bean; | ||
2 | + | ||
3 | +import com.fasterxml.jackson.annotation.JsonInclude; | ||
4 | +import io.swagger.annotations.ApiModelProperty; | ||
5 | +import org.apache.ibatis.annotations.Result; | ||
6 | + | ||
7 | +import java.io.Serializable; | ||
8 | + | ||
9 | +/** | ||
10 | + * 人脸设备权限表 | ||
11 | + * create table PermissionFace ( | ||
12 | + * id int not null PRIMARY KEY , | ||
13 | + * permissionJSON varchar(max) not null , | ||
14 | + * schoolId int not null , | ||
15 | + * perrmissName varchar(50) not null , | ||
16 | + * createTime varchar(50) not null , | ||
17 | + * updateTime varchar(50) not null , | ||
18 | + * ) | ||
19 | + */ | ||
20 | +@JsonInclude(JsonInclude.Include.NON_EMPTY) | ||
21 | +public class PermissionFaceBean implements Serializable { | ||
22 | + | ||
23 | + @ApiModelProperty(value = "删除和编辑时需要传") | ||
24 | + private int id; | ||
25 | + | ||
26 | + @ApiModelProperty(required = true) | ||
27 | + private PermissionBean permissionBean; | ||
28 | + | ||
29 | + @ApiModelProperty(required = true) | ||
30 | + private int schoolId; | ||
31 | + | ||
32 | + @ApiModelProperty(value = "权限模板名称",required = true) | ||
33 | + private String perrmissName; | ||
34 | + | ||
35 | + private String createTime; | ||
36 | + | ||
37 | + private String updateTime; | ||
38 | + | ||
39 | + @ApiModelProperty(notes = "备用字段,不用传") | ||
40 | + private String permissionJson; | ||
41 | + | ||
42 | + @ApiModelProperty(value = "0-新增;1-编辑;2-删除",required = true) | ||
43 | + private int type; | ||
44 | + | ||
45 | + public int getType() { | ||
46 | + return type; | ||
47 | + } | ||
48 | + | ||
49 | + public void setType(int type) { | ||
50 | + this.type = type; | ||
51 | + } | ||
52 | + | ||
53 | + public int getId() { | ||
54 | + return id; | ||
55 | + } | ||
56 | + | ||
57 | + public void setId(int id) { | ||
58 | + this.id = id; | ||
59 | + } | ||
60 | + | ||
61 | + public PermissionBean getPermissionBean() { | ||
62 | + return permissionBean; | ||
63 | + } | ||
64 | + | ||
65 | + public void setPermissionBean(PermissionBean permissionBean) { | ||
66 | + this.permissionBean = permissionBean; | ||
67 | + } | ||
68 | + | ||
69 | + public int getSchoolId() { | ||
70 | + return schoolId; | ||
71 | + } | ||
72 | + | ||
73 | + public void setSchoolId(int schoolId) { | ||
74 | + this.schoolId = schoolId; | ||
75 | + } | ||
76 | + | ||
77 | + public String getPerrmissName() { | ||
78 | + return perrmissName; | ||
79 | + } | ||
80 | + | ||
81 | + public void setPerrmissName(String perrmissName) { | ||
82 | + this.perrmissName = perrmissName; | ||
83 | + } | ||
84 | + | ||
85 | + public String getCreateTime() { | ||
86 | + return createTime; | ||
87 | + } | ||
88 | + | ||
89 | + public void setCreateTime(String createTime) { | ||
90 | + this.createTime = createTime; | ||
91 | + } | ||
92 | + | ||
93 | + public String getUpdateTime() { | ||
94 | + return updateTime; | ||
95 | + } | ||
96 | + | ||
97 | + public void setUpdateTime(String updateTime) { | ||
98 | + this.updateTime = updateTime; | ||
99 | + } | ||
100 | + | ||
101 | + public String getPermissionJson() { | ||
102 | + return permissionJson; | ||
103 | + } | ||
104 | + | ||
105 | + public void setPermissionJson(String permissionJson) { | ||
106 | + this.permissionJson = permissionJson; | ||
107 | + } | ||
108 | +} |
cloud/dahua/src/main/java/com/example/dahua/bean/PermissionHKBean.java
0 → 100644
@@ -0,0 +1,48 @@ | @@ -0,0 +1,48 @@ | ||
1 | +package com.example.dahua.bean; | ||
2 | + | ||
3 | +import java.util.List; | ||
4 | + | ||
5 | +/** | ||
6 | + * 海康人脸请求参数 | ||
7 | + */ | ||
8 | +public class PermissionHKBean { | ||
9 | + private List<String> deviceIds; | ||
10 | + | ||
11 | + private String schoolId; | ||
12 | + | ||
13 | + private String userType;//学生类型 | ||
14 | + | ||
15 | + private List<WeekDay> weekDays; | ||
16 | + | ||
17 | + public List<String> getDeviceIds() { | ||
18 | + return deviceIds; | ||
19 | + } | ||
20 | + | ||
21 | + public void setDeviceIds(List<String> deviceIds) { | ||
22 | + this.deviceIds = deviceIds; | ||
23 | + } | ||
24 | + | ||
25 | + public String getSchoolId() { | ||
26 | + return schoolId; | ||
27 | + } | ||
28 | + | ||
29 | + public void setSchoolId(String schoolId) { | ||
30 | + this.schoolId = schoolId; | ||
31 | + } | ||
32 | + | ||
33 | + public String getUserType() { | ||
34 | + return userType; | ||
35 | + } | ||
36 | + | ||
37 | + public void setUserType(String userType) { | ||
38 | + this.userType = userType; | ||
39 | + } | ||
40 | + | ||
41 | + public List<WeekDay> getWeekDays() { | ||
42 | + return weekDays; | ||
43 | + } | ||
44 | + | ||
45 | + public void setWeekDays(List<WeekDay> weekDays) { | ||
46 | + this.weekDays = weekDays; | ||
47 | + } | ||
48 | +} |
cloud/dahua/src/main/java/com/example/dahua/bean/ResponseBean.java
0 → 100644
@@ -0,0 +1,34 @@ | @@ -0,0 +1,34 @@ | ||
1 | +package com.example.dahua.bean; | ||
2 | + | ||
3 | +public class ResponseBean<T> { | ||
4 | + | ||
5 | + private int status; | ||
6 | + | ||
7 | + private String message; | ||
8 | + | ||
9 | + private T data; | ||
10 | + | ||
11 | + public int getStatus() { | ||
12 | + return status; | ||
13 | + } | ||
14 | + | ||
15 | + public void setStatus(int status) { | ||
16 | + this.status = status; | ||
17 | + } | ||
18 | + | ||
19 | + public String getMessage() { | ||
20 | + return message; | ||
21 | + } | ||
22 | + | ||
23 | + public void setMessage(String message) { | ||
24 | + this.message = message; | ||
25 | + } | ||
26 | + | ||
27 | + public T getData() { | ||
28 | + return data; | ||
29 | + } | ||
30 | + | ||
31 | + public void setData(T data) { | ||
32 | + this.data = data; | ||
33 | + } | ||
34 | +} |
cloud/dahua/src/main/java/com/example/dahua/bean/ResponseBeanList.java
0 → 100644
@@ -0,0 +1,37 @@ | @@ -0,0 +1,37 @@ | ||
1 | +package com.example.dahua.bean; | ||
2 | + | ||
3 | +import java.io.Serializable; | ||
4 | +import java.util.List; | ||
5 | + | ||
6 | +public class ResponseBeanList<T> implements Serializable { | ||
7 | + | ||
8 | + private int status; | ||
9 | + | ||
10 | + private String message; | ||
11 | + | ||
12 | + private List<T> data; | ||
13 | + | ||
14 | + public int getStatus() { | ||
15 | + return status; | ||
16 | + } | ||
17 | + | ||
18 | + public void setStatus(int status) { | ||
19 | + this.status = status; | ||
20 | + } | ||
21 | + | ||
22 | + public String getMessage() { | ||
23 | + return message; | ||
24 | + } | ||
25 | + | ||
26 | + public void setMessage(String message) { | ||
27 | + this.message = message; | ||
28 | + } | ||
29 | + | ||
30 | + public List<T> getData() { | ||
31 | + return data; | ||
32 | + } | ||
33 | + | ||
34 | + public void setData(List<T> data) { | ||
35 | + this.data = data; | ||
36 | + } | ||
37 | +} |
cloud/dahua/src/main/java/com/example/dahua/bean/UserAndPermission.java
0 → 100644
@@ -0,0 +1,58 @@ | @@ -0,0 +1,58 @@ | ||
1 | +package com.example.dahua.bean; | ||
2 | + | ||
3 | +import java.io.Serializable; | ||
4 | +import java.util.List; | ||
5 | + | ||
6 | +public class UserAndPermission implements Serializable { | ||
7 | + | ||
8 | + private List<String> deviceIds; | ||
9 | + | ||
10 | + private int userType; | ||
11 | + | ||
12 | + private String userIds; | ||
13 | + | ||
14 | + private List<WeekDay> weekDays; | ||
15 | + | ||
16 | + private String schoolId; | ||
17 | + | ||
18 | + | ||
19 | + public List<String> getDeviceIds() { | ||
20 | + return deviceIds; | ||
21 | + } | ||
22 | + | ||
23 | + public void setDeviceIds(List<String> deviceIds) { | ||
24 | + this.deviceIds = deviceIds; | ||
25 | + } | ||
26 | + | ||
27 | + public int getUserType() { | ||
28 | + return userType; | ||
29 | + } | ||
30 | + | ||
31 | + public void setUserType(int userType) { | ||
32 | + this.userType = userType; | ||
33 | + } | ||
34 | + | ||
35 | + public String getUserIds() { | ||
36 | + return userIds; | ||
37 | + } | ||
38 | + | ||
39 | + public void setUserIds(String userIds) { | ||
40 | + this.userIds = userIds; | ||
41 | + } | ||
42 | + | ||
43 | + public List<WeekDay> getWeekDays() { | ||
44 | + return weekDays; | ||
45 | + } | ||
46 | + | ||
47 | + public void setWeekDays(List<WeekDay> weekDays) { | ||
48 | + this.weekDays = weekDays; | ||
49 | + } | ||
50 | + | ||
51 | + public String getSchoolId() { | ||
52 | + return schoolId; | ||
53 | + } | ||
54 | + | ||
55 | + public void setSchoolId(String schoolId) { | ||
56 | + this.schoolId = schoolId; | ||
57 | + } | ||
58 | +} |
cloud/dahua/src/main/java/com/example/dahua/bean/WeekDay.java
1 | package com.example.dahua.bean; | 1 | package com.example.dahua.bean; |
2 | 2 | ||
3 | +import io.swagger.annotations.ApiModelProperty; | ||
4 | + | ||
3 | import java.io.Serializable; | 5 | import java.io.Serializable; |
4 | import java.util.List; | 6 | import java.util.List; |
5 | 7 | ||
6 | public class WeekDay implements Serializable { | 8 | public class WeekDay implements Serializable { |
7 | 9 | ||
8 | - private int weekDay; | 10 | + @ApiModelProperty("用逗号隔开,1:男,2:女") |
11 | + private String sex; | ||
12 | + | ||
13 | + @ApiModelProperty("用逗号隔开,0-6表示周日到周六") | ||
14 | + private String weekDay; | ||
9 | 15 | ||
10 | private List<WeekTime> weekTimes; | 16 | private List<WeekTime> weekTimes; |
11 | 17 | ||
12 | - public int getWeekDay() { | 18 | + public String getSex() { |
19 | + return sex; | ||
20 | + } | ||
21 | + | ||
22 | + public void setSex(String sex) { | ||
23 | + this.sex = sex; | ||
24 | + } | ||
25 | + | ||
26 | + public String getWeekDay() { | ||
13 | return weekDay; | 27 | return weekDay; |
14 | } | 28 | } |
15 | 29 | ||
16 | - public void setWeekDay(int weekDay) { | 30 | + public void setWeekDay(String weekDay) { |
17 | this.weekDay = weekDay; | 31 | this.weekDay = weekDay; |
18 | } | 32 | } |
19 | 33 |
cloud/dahua/src/main/java/com/example/dahua/bean/WeekTime.java
1 | package com.example.dahua.bean; | 1 | package com.example.dahua.bean; |
2 | 2 | ||
3 | +import io.swagger.annotations.ApiModelProperty; | ||
4 | + | ||
3 | import java.io.Serializable; | 5 | import java.io.Serializable; |
4 | 6 | ||
5 | public class WeekTime implements Serializable { | 7 | public class WeekTime implements Serializable { |
6 | 8 | ||
9 | + @ApiModelProperty("例: 10:00:00") | ||
7 | private String startTime; | 10 | private String startTime; |
8 | 11 | ||
12 | + @ApiModelProperty("例: 10:00:00") | ||
9 | private String endTime; | 13 | private String endTime; |
10 | 14 | ||
11 | public String getStartTime() { | 15 | public String getStartTime() { |
cloud/dahua/src/main/java/com/example/dahua/control/FaceUnifyController.java
0 → 100644
@@ -0,0 +1,47 @@ | @@ -0,0 +1,47 @@ | ||
1 | +package com.example.dahua.control; | ||
2 | + | ||
3 | +import com.alibaba.fastjson.JSON; | ||
4 | +import com.example.dahua.bean.PermissionBean; | ||
5 | +import com.example.dahua.bean.PermissionFaceBean; | ||
6 | +import com.example.dahua.bean.ResponseBean; | ||
7 | +import com.example.dahua.bean.ResponseBeanList; | ||
8 | +import com.example.dahua.service.PermissFaceService; | ||
9 | +import io.swagger.annotations.Api; | ||
10 | +import io.swagger.annotations.ApiOperation; | ||
11 | +import lombok.extern.slf4j.Slf4j; | ||
12 | +import org.springframework.beans.factory.annotation.Autowired; | ||
13 | +import org.springframework.web.bind.annotation.*; | ||
14 | + | ||
15 | +import java.io.UnsupportedEncodingException; | ||
16 | + | ||
17 | +@Api(tags = "人脸统一处理接口") | ||
18 | +@RestController | ||
19 | +@RequestMapping(value = "faceUnify/*",produces = "text/plain;charset=UTF-8") | ||
20 | +@Slf4j | ||
21 | +public class FaceUnifyController { | ||
22 | + | ||
23 | + @Autowired | ||
24 | + PermissFaceService permissFaceService; | ||
25 | + | ||
26 | + @RequestMapping(value = "sendPermission",method = RequestMethod.POST) | ||
27 | + @ApiOperation("添加/编辑/删除权限") | ||
28 | + public String sendPermission(@RequestBody PermissionFaceBean permissionFaceBean) throws UnsupportedEncodingException { | ||
29 | + return JSON.toJSONString(permissFaceService.addPermissionFace(permissionFaceBean)); | ||
30 | + } | ||
31 | + | ||
32 | + | ||
33 | + @RequestMapping(value = "getPermissionDetail",method = RequestMethod.POST) | ||
34 | + @ApiOperation("获取权限详情") | ||
35 | + @ResponseBody | ||
36 | + public String getPermissionDetail(@RequestParam("permissionId")int permissionId) throws UnsupportedEncodingException { | ||
37 | + log.error("{}",JSON.toJSONString(permissFaceService.getPermissionDetail(permissionId))); | ||
38 | + return JSON.toJSONString(permissFaceService.getPermissionDetail(permissionId)); | ||
39 | + } | ||
40 | + | ||
41 | + @RequestMapping(value = "getPermissions",method = RequestMethod.POST) | ||
42 | + @ApiOperation("获取权限列表") | ||
43 | + public String getPermissions(@RequestParam("schoolId")int schoolId) throws UnsupportedEncodingException { | ||
44 | + return JSON.toJSONString(permissFaceService.getPermissions(schoolId)); | ||
45 | + } | ||
46 | + | ||
47 | +} |
cloud/dahua/src/main/java/com/example/dahua/control/FileControl.java
@@ -4,12 +4,14 @@ import com.example.dahua.MyTask; | @@ -4,12 +4,14 @@ import com.example.dahua.MyTask; | ||
4 | import com.example.dahua.async.SendUserInfoTask; | 4 | import com.example.dahua.async.SendUserInfoTask; |
5 | import com.example.dahua.attendance.Attendance; | 5 | import com.example.dahua.attendance.Attendance; |
6 | import com.example.dahua.bean.AttendanceBean; | 6 | import com.example.dahua.bean.AttendanceBean; |
7 | +import com.example.dahua.bean.PermissionBean; | ||
7 | import com.example.dahua.bean.TeacherBean; | 8 | import com.example.dahua.bean.TeacherBean; |
8 | import com.example.dahua.bean.UploadImg; | 9 | import com.example.dahua.bean.UploadImg; |
9 | import com.example.dahua.dao.UserDao; | 10 | import com.example.dahua.dao.UserDao; |
10 | import com.example.dahua.lib.ToolKits; | 11 | import com.example.dahua.lib.ToolKits; |
11 | import com.example.dahua.module.GateModule; | 12 | import com.example.dahua.module.GateModule; |
12 | import com.example.dahua.service.UserService; | 13 | import com.example.dahua.service.UserService; |
14 | +import com.example.dahua.utils.HttpUtils; | ||
13 | import com.sun.jna.Memory; | 15 | import com.sun.jna.Memory; |
14 | import io.swagger.annotations.Api; | 16 | import io.swagger.annotations.Api; |
15 | import io.swagger.annotations.ApiOperation; | 17 | import io.swagger.annotations.ApiOperation; |
@@ -63,6 +65,12 @@ public class FileControl { | @@ -63,6 +65,12 @@ public class FileControl { | ||
63 | return "0"; | 65 | return "0"; |
64 | } | 66 | } |
65 | 67 | ||
68 | + @RequestMapping(value = "sendPermission", method = RequestMethod.POST) | ||
69 | + @ApiOperation(value = "设置权限") | ||
70 | + public boolean sendPermission(@RequestBody PermissionBean permissionBean) { | ||
71 | + userService.sendPermission(permissionBean); | ||
72 | + return true; | ||
73 | + } | ||
66 | 74 | ||
67 | @RequestMapping(method = RequestMethod.POST, value = "uploadImgToDev") | 75 | @RequestMapping(method = RequestMethod.POST, value = "uploadImgToDev") |
68 | public String uploadImgToDev(@RequestParam("file") MultipartFile file, @RequestParam("schoolId") String schoolId, @RequestParam("studentCode") String studentCode, | 76 | public String uploadImgToDev(@RequestParam("file") MultipartFile file, @RequestParam("schoolId") String schoolId, @RequestParam("studentCode") String studentCode, |
cloud/dahua/src/main/java/com/example/dahua/control/UserControl.java
@@ -4,6 +4,7 @@ import com.example.dahua.MyTask; | @@ -4,6 +4,7 @@ import com.example.dahua.MyTask; | ||
4 | import com.example.dahua.async.ImageUtils; | 4 | import com.example.dahua.async.ImageUtils; |
5 | import com.example.dahua.async.SendUserInfoTask; | 5 | import com.example.dahua.async.SendUserInfoTask; |
6 | import com.example.dahua.bean.PermissionBean; | 6 | import com.example.dahua.bean.PermissionBean; |
7 | +import com.example.dahua.bean.UserAndPermission; | ||
7 | import com.example.dahua.lib.CompressPic; | 8 | import com.example.dahua.lib.CompressPic; |
8 | import com.example.dahua.service.UserService; | 9 | import com.example.dahua.service.UserService; |
9 | import com.example.dahua.utils.*; | 10 | import com.example.dahua.utils.*; |
@@ -22,6 +23,7 @@ import org.springframework.http.MediaType; | @@ -22,6 +23,7 @@ import org.springframework.http.MediaType; | ||
22 | import org.springframework.http.ResponseEntity; | 23 | import org.springframework.http.ResponseEntity; |
23 | import org.springframework.util.LinkedMultiValueMap; | 24 | import org.springframework.util.LinkedMultiValueMap; |
24 | import org.springframework.util.MultiValueMap; | 25 | import org.springframework.util.MultiValueMap; |
26 | +import org.springframework.util.StringUtils; | ||
25 | import org.springframework.web.bind.annotation.*; | 27 | import org.springframework.web.bind.annotation.*; |
26 | import org.springframework.web.client.RestTemplate; | 28 | import org.springframework.web.client.RestTemplate; |
27 | import org.springframework.web.multipart.MultipartFile; | 29 | import org.springframework.web.multipart.MultipartFile; |
@@ -60,11 +62,9 @@ public class UserControl { | @@ -60,11 +62,9 @@ public class UserControl { | ||
60 | @RequestMapping(value = "sendPermission", method = RequestMethod.POST) | 62 | @RequestMapping(value = "sendPermission", method = RequestMethod.POST) |
61 | @ApiOperation(value = "设置权限") | 63 | @ApiOperation(value = "设置权限") |
62 | public boolean sendPermission(@RequestBody PermissionBean permissionBean) { | 64 | public boolean sendPermission(@RequestBody PermissionBean permissionBean) { |
63 | - userService.sendPermission(permissionBean); | ||
64 | - return true; | 65 | + return HttpUtils.sendPermission(permissionBean); |
65 | } | 66 | } |
66 | 67 | ||
67 | - | ||
68 | @RequestMapping(value = "imgsSend", method = RequestMethod.GET) | 68 | @RequestMapping(value = "imgsSend", method = RequestMethod.GET) |
69 | @ApiOperation(value = "照片下放") | 69 | @ApiOperation(value = "照片下放") |
70 | public boolean imgsSend(@RequestParam("schoolId") String schoolId, @RequestParam("type") int type) { | 70 | public boolean imgsSend(@RequestParam("schoolId") String schoolId, @RequestParam("type") int type) { |
cloud/dahua/src/main/java/com/example/dahua/dao/PermissionFaceDao.java
0 → 100644
@@ -0,0 +1,26 @@ | @@ -0,0 +1,26 @@ | ||
1 | +package com.example.dahua.dao; | ||
2 | + | ||
3 | +import com.example.dahua.bean.PermissionFaceBean; | ||
4 | +import org.apache.ibatis.annotations.Mapper; | ||
5 | +import org.apache.ibatis.annotations.Param; | ||
6 | +import org.springframework.stereotype.Repository; | ||
7 | + | ||
8 | +import java.util.List; | ||
9 | + | ||
10 | +@Repository | ||
11 | +public interface PermissionFaceDao { | ||
12 | + | ||
13 | + | ||
14 | + public int addPermissionFace(PermissionFaceBean permissionFaceBean); | ||
15 | + | ||
16 | + public int updatePermissionFace(PermissionFaceBean permissionFaceBean); | ||
17 | + | ||
18 | + public int deletePermissionFace(PermissionFaceBean permissionFaceBean); | ||
19 | + | ||
20 | + public PermissionFaceBean getPerFaceWithId(@Param("id")int id); | ||
21 | + | ||
22 | + public List<PermissionFaceBean> getPermissFaces(@Param("schoolId") int schoolId); | ||
23 | + | ||
24 | + public List<PermissionFaceBean> getPermissionDetail(@Param("permissionId") int permissionId); | ||
25 | + | ||
26 | +} |
cloud/dahua/src/main/java/com/example/dahua/module/GateModule.java
1 | package com.example.dahua.module; | 1 | package com.example.dahua.module; |
2 | 2 | ||
3 | import java.io.UnsupportedEncodingException; | 3 | import java.io.UnsupportedEncodingException; |
4 | +import java.util.ArrayList; | ||
5 | +import java.util.HashMap; | ||
4 | import java.util.List; | 6 | import java.util.List; |
7 | +import java.util.Map; | ||
5 | 8 | ||
6 | import com.example.dahua.bean.PermissionBean; | 9 | import com.example.dahua.bean.PermissionBean; |
7 | import com.example.dahua.bean.WeekDay; | 10 | import com.example.dahua.bean.WeekDay; |
@@ -189,8 +192,8 @@ public class GateModule { | @@ -189,8 +192,8 @@ public class GateModule { | ||
189 | accessCardInfo.sznDoors[0] = 0; | 192 | accessCardInfo.sznDoors[0] = 0; |
190 | accessCardInfo.sznDoors[1] = 1; | 193 | accessCardInfo.sznDoors[1] = 1; |
191 | accessCardInfo.nTimeSectionNum = 2; // 与门数对应 | 194 | accessCardInfo.nTimeSectionNum = 2; // 与门数对应 |
192 | - accessCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效 | ||
193 | - accessCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效 | 195 | + accessCardInfo.sznTimeSectionNo[0] = 120; // 表示第一个门全天有效 |
196 | + accessCardInfo.sznTimeSectionNo[1] = 120; // 表示第二个门全天有效 | ||
194 | 197 | ||
195 | // 卡状态 | 198 | // 卡状态 |
196 | accessCardInfo.emStatus = cardStatus; | 199 | accessCardInfo.emStatus = cardStatus; |
@@ -254,61 +257,151 @@ public class GateModule { | @@ -254,61 +257,151 @@ public class GateModule { | ||
254 | * 门禁刷卡时间段设置 | 257 | * 门禁刷卡时间段设置 |
255 | */ | 258 | */ |
256 | public static void setAccessTimeSchedule(LLong lLong, PermissionBean permissionBean) { | 259 | public static void setAccessTimeSchedule(LLong lLong, PermissionBean permissionBean) { |
260 | + try { | ||
257 | 261 | ||
258 | - CFG_ACCESS_TIMESCHEDULE_INFO msg = new CFG_ACCESS_TIMESCHEDULE_INFO(); | ||
259 | - String strCmd = NetSDKLib.CFG_CMD_ACCESSTIMESCHEDULE; | ||
260 | - int nChannel = 120; // 通道号 | ||
261 | - | 262 | + CFG_ACCESS_TIMESCHEDULE_INFO msg = new CFG_ACCESS_TIMESCHEDULE_INFO(); |
263 | + String strCmd = NetSDKLib.CFG_CMD_ACCESSTIMESCHEDULE; | ||
264 | + int nChannel = 120; // 通道号 | ||
262 | // msg.stuTimeWeekDay[0].stuTimeSection[0].dwRecordMask | 265 | // msg.stuTimeWeekDay[0].stuTimeSection[0].dwRecordMask |
263 | - String name = "权限模板"; | ||
264 | - System.arraycopy(name.getBytes(), 0, msg.szName, 0, name.getBytes().length); | ||
265 | - | ||
266 | - List<WeekDay> weekDays = permissionBean.getWeekDays(); | ||
267 | - | ||
268 | - for (WeekDay weekDay : | ||
269 | - weekDays) { | ||
270 | - List<WeekTime> weekTimes = weekDay.getWeekTimes(); | ||
271 | - for (int i = 0; i < weekTimes.size(); i++) { | ||
272 | - WeekTime weekTime = weekTimes.get(i); | ||
273 | - String startTime = weekTime.getStartTime(); | ||
274 | - String endTime = weekTime.getEndTime(); | ||
275 | - msg.stuTimeWeekDay[weekDay.getWeekDay()].stuTimeSection[i].nBeginHour = Integer.parseInt(startTime.split(":")[0]); | ||
276 | - msg.stuTimeWeekDay[weekDay.getWeekDay()].stuTimeSection[i].nBeginMin = Integer.parseInt(startTime.split(":")[1]); | ||
277 | - msg.stuTimeWeekDay[weekDay.getWeekDay()].stuTimeSection[i].nBeginSec = 0; | ||
278 | - | ||
279 | - msg.stuTimeWeekDay[weekDay.getWeekDay()].stuTimeSection[i].nEndHour = Integer.parseInt(endTime.split(":")[0]); | ||
280 | - msg.stuTimeWeekDay[weekDay.getWeekDay()].stuTimeSection[i].nEndMin = Integer.parseInt(endTime.split(":")[1]); | ||
281 | - msg.stuTimeWeekDay[weekDay.getWeekDay()].stuTimeSection[i].nEndSec = 0; | ||
282 | - | 266 | + String name = "3"; |
267 | + System.arraycopy(name.getBytes(), 0, msg.szName, 0, name.getBytes().length); | ||
268 | + msg.bEnable = 1; | ||
269 | + | ||
270 | + List<WeekDay> weekDays = permissionBean.getWeekDays(); | ||
271 | + Map<Integer, List<WeekTime>> map = new HashMap<>(); | ||
272 | + | ||
273 | + for (WeekDay weekDay : | ||
274 | + weekDays) { | ||
275 | + //整理时间 | ||
276 | + initWeedayAndTimes(weekDay, map); | ||
277 | + //设置周计划信息 | ||
278 | + for (Map.Entry<Integer, List<WeekTime>> entry : | ||
279 | + map.entrySet()) { | ||
280 | + | ||
281 | + int weekDayIndex = entry.getKey(); | ||
282 | + | ||
283 | + List<WeekTime> weekTimes = entry.getValue(); | ||
284 | + | ||
285 | + for (int i = 0; i < weekTimes.size(); i++) { | ||
286 | + WeekTime weekTime = weekTimes.get(i); | ||
287 | + String startTime = weekTime.getStartTime(); | ||
288 | + String endTime = weekTime.getEndTime(); | ||
289 | + msg.stuTimeWeekDay[weekDayIndex].stuTimeSection[i].nBeginHour = Integer.parseInt(startTime.split(":")[0]); | ||
290 | + msg.stuTimeWeekDay[weekDayIndex].stuTimeSection[i].nBeginMin = Integer.parseInt(startTime.split(":")[1]); | ||
291 | + msg.stuTimeWeekDay[weekDayIndex].stuTimeSection[i].nBeginSec = 0; | ||
292 | + | ||
293 | + msg.stuTimeWeekDay[weekDayIndex].stuTimeSection[i].nEndHour = Integer.parseInt(endTime.split(":")[0]); | ||
294 | + msg.stuTimeWeekDay[weekDayIndex].stuTimeSection[i].nEndMin = Integer.parseInt(endTime.split(":")[1]); | ||
295 | + msg.stuTimeWeekDay[weekDayIndex].stuTimeSection[i].nEndSec = 0; | ||
296 | + } | ||
297 | + | ||
298 | + } | ||
283 | } | 299 | } |
284 | - } | 300 | + |
301 | + | ||
302 | + /* for (WeekDay weekDay : | ||
303 | + weekDays) { | ||
304 | + List<WeekTime> weekTimes = weekDay.getWeekTimes(); | ||
305 | + for (int i = 0; i < weekTimes.size(); i++) { | ||
306 | + WeekTime weekTime = weekTimes.get(i); | ||
307 | + String startTime = weekTime.getStartTime(); | ||
308 | + String endTime = weekTime.getEndTime(); | ||
309 | + msg.stuTimeWeekDay[weekDay.getWeekDay()].stuTimeSection[i].nBeginHour = Integer.parseInt(startTime.split(":")[0]); | ||
310 | + msg.stuTimeWeekDay[weekDay.getWeekDay()].stuTimeSection[i].nBeginMin = Integer.parseInt(startTime.split(":")[1]); | ||
311 | + msg.stuTimeWeekDay[weekDay.getWeekDay()].stuTimeSection[i].nBeginSec = 0; | ||
312 | + | ||
313 | + msg.stuTimeWeekDay[weekDay.getWeekDay()].stuTimeSection[i].nEndHour = Integer.parseInt(endTime.split(":")[0]); | ||
314 | + msg.stuTimeWeekDay[weekDay.getWeekDay()].stuTimeSection[i].nEndMin = Integer.parseInt(endTime.split(":")[1]); | ||
315 | + msg.stuTimeWeekDay[weekDay.getWeekDay()].stuTimeSection[i].nEndSec = 0; | ||
316 | + | ||
317 | + } | ||
318 | + }*/ | ||
285 | 319 | ||
286 | // 获取 | 320 | // 获取 |
287 | // if (ToolKits.GetDevConfig(lLong, nChannel, strCmd, msg)) { | 321 | // if (ToolKits.GetDevConfig(lLong, nChannel, strCmd, msg)) { |
288 | - System.out.println("Enable:" + msg.bEnable); | ||
289 | - try { | ||
290 | - System.out.println("自定义名称:" + new String(msg.szName, "UTF-8").trim()); | ||
291 | - } catch (UnsupportedEncodingException e) { | 322 | +// System.out.println("Enable:" + msg.bEnable); |
323 | +// try { | ||
324 | +// System.out.println("自定义名称:" + new String(msg.szName, "UTF-8").trim()); | ||
325 | +// } catch (UnsupportedEncodingException e) { | ||
326 | +// e.printStackTrace(); | ||
327 | +// } | ||
328 | +// for (int i = 0; i < 7; i++) { | ||
329 | +// for (int j = 0; j < 4; j++) { | ||
330 | +// System.out.println("dwRecordMask:" + msg.stuTimeWeekDay[i].stuTimeSection[j].dwRecordMask); | ||
331 | +// System.out.println(msg.stuTimeWeekDay[i].stuTimeSection[j].startTime() + "-" + msg.stuTimeWeekDay[i].stuTimeSection[j].endTime() + "\n"); | ||
332 | +// } | ||
333 | +// } | ||
334 | +// msg.write(); | ||
335 | + boolean set = ToolKits.SetDevConfig(lLong, nChannel, strCmd, msg); | ||
336 | +// msg.read(); | ||
337 | + // 设置 | ||
338 | + if (set) { | ||
339 | + System.out.println("Set AccessTimeSchedule Succeed!"); | ||
340 | + } else { | ||
341 | + System.err.println("Set AccessTimeSchedule Failed!" + ToolKits.getErrorCodePrint()); | ||
342 | + } | ||
343 | +// } else { | ||
344 | +// System.err.println("Get AccessTimeSchedule Failed!" + ToolKits.getErrorCodePrint()); | ||
345 | +// } | ||
346 | + } catch (Exception e) { | ||
292 | e.printStackTrace(); | 347 | e.printStackTrace(); |
293 | } | 348 | } |
294 | - for (int i = 0; i < 7; i++) { | ||
295 | - for (int j = 0; j < 4; j++) { | ||
296 | - System.out.println("dwRecordMask:" + msg.stuTimeWeekDay[i].stuTimeSection[j].dwRecordMask); | ||
297 | - System.out.println(msg.stuTimeWeekDay[i].stuTimeSection[j].startTime() + "-" + msg.stuTimeWeekDay[i].stuTimeSection[j].endTime() + "\n"); | 349 | + } |
350 | + | ||
351 | + private static void initWeedayAndTimes(WeekDay weekDay, Map<Integer, List<WeekTime>> map) { | ||
352 | + | ||
353 | + String weekDayStr = weekDay.getWeekDay(); | ||
354 | + String[] weekDays = weekDayStr.split(","); | ||
355 | + | ||
356 | + List<WeekTime> weekTimes = weekDay.getWeekTimes(); | ||
357 | + | ||
358 | + for (int i = 0; i < weekDays.length; i++) { | ||
359 | + int weekDayIndex = Integer.parseInt(weekDays[i]); | ||
360 | + if (map.containsKey(weekDayIndex)) {//周已经有时间段 | ||
361 | + List<WeekTime> weekTimeList = map.get(weekDayIndex); | ||
362 | + for (WeekTime wee : | ||
363 | + weekTimes) { | ||
364 | + weekTimeList.add(wee); | ||
365 | + } | ||
366 | + map.put(weekDayIndex, weekTimeList); | ||
367 | + } else { | ||
368 | + List<WeekTime> weekTimes1 = new ArrayList<>(); | ||
369 | + weekTimes1.addAll(weekTimes); | ||
370 | + map.put(weekDayIndex, weekTimes1); | ||
298 | } | 371 | } |
299 | } | 372 | } |
300 | - msg.write(); | ||
301 | - boolean set = ToolKits.SetDevConfig(lLong, nChannel, strCmd, msg); | ||
302 | - msg.read(); | ||
303 | - // 设置 | ||
304 | - if (set) { | ||
305 | - System.out.println("Set AccessTimeSchedule Succeed!"); | 373 | + |
374 | + } | ||
375 | + | ||
376 | + public static void getAccessTimeSchedule1(LLong lLong) { | ||
377 | + CFG_ACCESS_TIMESCHEDULE_INFO msg = new CFG_ACCESS_TIMESCHEDULE_INFO(); | ||
378 | + String strCmd = NetSDKLib.CFG_CMD_ACCESSTIMESCHEDULE; | ||
379 | + int nChannel = 120; // 通道号 | ||
380 | + | ||
381 | + // 获取 | ||
382 | + if (ToolKits.GetDevConfig(lLong, nChannel, strCmd, msg)) { | ||
383 | + System.out.println("Enable:" + msg.bEnable); | ||
384 | + try { | ||
385 | + System.out.println("自定义名称:" + new String(msg.szName, "utf-8").trim()); | ||
386 | + } catch (UnsupportedEncodingException e) { | ||
387 | + e.printStackTrace(); | ||
388 | + } | ||
389 | + for (int i = 0; i < 7; i++) { | ||
390 | + for (int j = 0; j < 4; j++) { | ||
391 | + System.out.println("dwRecordMask:" + msg.stuTimeWeekDay[i].stuTimeSection[j].dwRecordMask); | ||
392 | + System.out.println(msg.stuTimeWeekDay[i].stuTimeSection[j].startTime() + "-" + | ||
393 | + msg.stuTimeWeekDay[i].stuTimeSection[j].endTime() + "\n"); | ||
394 | + } | ||
395 | + } | ||
396 | + // 设置 | ||
397 | + if (ToolKits.SetDevConfig(lLong, nChannel, strCmd, msg)) { | ||
398 | + System.out.println("Set AccessTimeSchedule Succeed!"); | ||
399 | + } else { | ||
400 | + System.err.println("Set AccessTimeSchedule Failed!" + ToolKits.getErrorCodePrint()); | ||
401 | + } | ||
306 | } else { | 402 | } else { |
307 | - System.err.println("Set AccessTimeSchedule Failed!" + ToolKits.getErrorCodePrint()); | 403 | + System.err.println("Get AccessTimeSchedule Failed!" + ToolKits.getErrorCodePrint()); |
308 | } | 404 | } |
309 | -// } else { | ||
310 | -// System.err.println("Get AccessTimeSchedule Failed!" + ToolKits.getErrorCodePrint()); | ||
311 | -// } | ||
312 | } | 405 | } |
313 | 406 | ||
314 | /** | 407 | /** |
@@ -450,8 +543,8 @@ public class GateModule { | @@ -450,8 +543,8 @@ public class GateModule { | ||
450 | accessCardInfo.sznDoors[0] = 0; | 543 | accessCardInfo.sznDoors[0] = 0; |
451 | accessCardInfo.sznDoors[1] = 1; | 544 | accessCardInfo.sznDoors[1] = 1; |
452 | accessCardInfo.nTimeSectionNum = 2; // 与门数对应 | 545 | accessCardInfo.nTimeSectionNum = 2; // 与门数对应 |
453 | - accessCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效 | ||
454 | - accessCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效 | 546 | + accessCardInfo.sznTimeSectionNo[0] = 120; // 表示第一个门全天有效 |
547 | + accessCardInfo.sznTimeSectionNo[1] = 120; // 表示第二个门全天有效 | ||
455 | 548 | ||
456 | // 卡状态 | 549 | // 卡状态 |
457 | accessCardInfo.emStatus = cardStatus; | 550 | accessCardInfo.emStatus = cardStatus; |
cloud/dahua/src/main/java/com/example/dahua/service/AttendanceImp.java
@@ -1,70 +0,0 @@ | @@ -1,70 +0,0 @@ | ||
1 | -package com.example.dahua.service; | ||
2 | - | ||
3 | -import com.example.dahua.bean.AttendanceBean; | ||
4 | -import org.springframework.beans.factory.annotation.Autowired; | ||
5 | -import org.springframework.jdbc.core.BeanPropertyRowMapper; | ||
6 | -import org.springframework.jdbc.core.JdbcTemplate; | ||
7 | -import org.springframework.stereotype.Service; | ||
8 | - | ||
9 | -import java.util.List; | ||
10 | - | ||
11 | -@Service | ||
12 | -public class AttendanceImp implements AttendanceService { | ||
13 | - | ||
14 | - @Autowired | ||
15 | - JdbcTemplate jdbcTemplate; | ||
16 | - | ||
17 | - @Override | ||
18 | - public int insert(String clint_id, String clint_type, String ip, String port, String intime, String school_id, String state) { | ||
19 | - try { | ||
20 | - String selectSql = String.format("select * from SZ_Attendance where clint_id =\'%s\'", clint_id); | ||
21 | - List<AttendanceBean> attendanceBeans = jdbcTemplate.query(selectSql, new Object[]{}, new BeanPropertyRowMapper<AttendanceBean>(AttendanceBean.class)); | ||
22 | - if (attendanceBeans.size() == 0) {//设备不存在 | ||
23 | -// insert SZ_Attendance(clint_id, clint_type, ip, port, intime, school_id, state) | ||
24 | -// * values(@clint_id,@clint_type,@ip,@port,GETDATE(),-1,1) | ||
25 | - String insertSql = String.format("insert into SZ_Attendance(clint_id, clint_type, ip, port, intime, school_id, state,isConnection) values ('%s','%s','%s','%s','%s','%s','%s','%s')", clint_id, clint_type, ip, port, intime, school_id, state, 1); | ||
26 | - return jdbcTemplate.update(insertSql); | ||
27 | - } else {//设备 已经存在,更新在线状态 | ||
28 | - updateConnectStateWithDevid(1, clint_id); | ||
29 | - } | ||
30 | - } catch (Exception e) { | ||
31 | - e.printStackTrace(); | ||
32 | - } | ||
33 | - return 0; | ||
34 | - } | ||
35 | - | ||
36 | - /** | ||
37 | - * @param isConnection 连接状态 | ||
38 | - * @param ip | ||
39 | - * @param port | ||
40 | - * @return | ||
41 | - */ | ||
42 | - @Override | ||
43 | - public int updateConnectState(int isConnection, String ip, String port) { | ||
44 | - | ||
45 | - int index = 0; | ||
46 | - try { | ||
47 | - String updateSql = String.format(" update SZ_Attendance set isConnection = %d where ip = '%s' and port = '%s' ", isConnection, ip, port); | ||
48 | - index = jdbcTemplate.update(updateSql); | ||
49 | -// System.out.println("updateIndex:"+index+" isConnection:"+isConnection+"updateSql:"+updateSql); | ||
50 | - } catch (Exception e) { | ||
51 | - e.printStackTrace(); | ||
52 | - } | ||
53 | - | ||
54 | - return index; | ||
55 | - } | ||
56 | - | ||
57 | - @Override | ||
58 | - public int updateConnectStateWithDevid(int isConnection, String clint_id) { | ||
59 | - int index = 0; | ||
60 | - try { | ||
61 | - String updateSql = String.format(" update SZ_Attendance set isConnection = %d where clint_id = '%s' ", isConnection, clint_id); | ||
62 | - index = jdbcTemplate.update(updateSql); | ||
63 | -// System.out.println("updateIndex:"+index+" isConnection:"+isConnection+"updateSql:"+updateSql); | ||
64 | - } catch (Exception e) { | ||
65 | - e.printStackTrace(); | ||
66 | - } | ||
67 | - | ||
68 | - return index; | ||
69 | - } | ||
70 | -} |
cloud/dahua/src/main/java/com/example/dahua/service/DeviceServiceImp.java
@@ -1,23 +0,0 @@ | @@ -1,23 +0,0 @@ | ||
1 | -package com.example.dahua.service; | ||
2 | - | ||
3 | -import com.example.dahua.MyTask; | ||
4 | -import com.example.dahua.module.DeviceControlModule; | ||
5 | -import org.springframework.stereotype.Repository; | ||
6 | -import org.springframework.stereotype.Service; | ||
7 | - | ||
8 | -@Repository | ||
9 | -@Service | ||
10 | -public class DeviceServiceImp implements DeviceService { | ||
11 | - | ||
12 | - @Override | ||
13 | - public boolean restart(String deviceId) { | ||
14 | - return DeviceControlModule.reboot(MyTask.lLongMap.get(deviceId)); | ||
15 | - } | ||
16 | - | ||
17 | - @Override | ||
18 | - public boolean setDVRIPConfig(String deviceId, String ip, int port) { | ||
19 | - | ||
20 | - return DeviceControlModule.setDVRIPConfig(deviceId, ip, port); | ||
21 | - } | ||
22 | - | ||
23 | -} |
cloud/dahua/src/main/java/com/example/dahua/service/PermissFaceService.java
0 → 100644
@@ -0,0 +1,19 @@ | @@ -0,0 +1,19 @@ | ||
1 | +package com.example.dahua.service; | ||
2 | + | ||
3 | +import com.example.dahua.bean.PermissionFaceBean; | ||
4 | +import com.example.dahua.bean.ResponseBean; | ||
5 | +import com.example.dahua.bean.ResponseBeanList; | ||
6 | + | ||
7 | +import java.util.List; | ||
8 | + | ||
9 | +public interface PermissFaceService { | ||
10 | + | ||
11 | + | ||
12 | + public ResponseBean<PermissionFaceBean> addPermissionFace(PermissionFaceBean permissionFaceBean); | ||
13 | + | ||
14 | + public ResponseBeanList<PermissionFaceBean> getPermissions(int schoolId); | ||
15 | + | ||
16 | + public ResponseBeanList<PermissionFaceBean> getPermissionDetail(int permissionId); | ||
17 | + | ||
18 | + | ||
19 | +} |
cloud/dahua/src/main/java/com/example/dahua/service/UserServiceImp.java
@@ -1,117 +0,0 @@ | @@ -1,117 +0,0 @@ | ||
1 | -package com.example.dahua.service; | ||
2 | - | ||
3 | -import com.example.dahua.MyTask; | ||
4 | -import com.example.dahua.async.SendUserInfoTask; | ||
5 | -import com.example.dahua.bean.*; | ||
6 | -import com.example.dahua.dao.UserDao; | ||
7 | -import com.example.dahua.lib.NetSDKLib; | ||
8 | -import com.example.dahua.module.GateModule; | ||
9 | -import org.apache.commons.lang.StringUtils; | ||
10 | -import org.springframework.beans.factory.annotation.Autowired; | ||
11 | -import org.springframework.stereotype.Repository; | ||
12 | -import org.springframework.stereotype.Service; | ||
13 | - | ||
14 | -import java.util.List; | ||
15 | - | ||
16 | -@Repository | ||
17 | -@Service | ||
18 | -public class UserServiceImp implements UserService { | ||
19 | - | ||
20 | - @Autowired | ||
21 | - UserDao userDao; | ||
22 | - | ||
23 | - @Autowired | ||
24 | - SendUserInfoTask myTask; | ||
25 | - | ||
26 | - @Override | ||
27 | - public List<AttendanceBean> getAttendanceBeans(String schoolId, String clint_type, String devid) { | ||
28 | - | ||
29 | - if (!StringUtils.isEmpty(devid)) return userDao.getAttendanceBeanWithId(schoolId, clint_type, devid); | ||
30 | - | ||
31 | - return userDao.getAttendanceBeans(schoolId, clint_type); | ||
32 | - } | ||
33 | - | ||
34 | - @Override | ||
35 | - public UserInfoBean getUserInfo(String schoolId, String studentCode) { | ||
36 | - return userDao.getUserInfo(schoolId, studentCode); | ||
37 | - } | ||
38 | - | ||
39 | - /** | ||
40 | - * 单个用户信息下发 | ||
41 | - * | ||
42 | - * @param file | ||
43 | - * @param schoolId | ||
44 | - * @param studentCode | ||
45 | - * @param clint_type | ||
46 | - * @return | ||
47 | - */ | ||
48 | - @Override | ||
49 | - public boolean uploadImgAndUserInfo(String file, String schoolId, String studentCode, String clint_type, int userType, String devid) { | ||
50 | - List<AttendanceBean> attendanceBeans = getAttendanceBeans(schoolId, clint_type, devid);//获取学校下的大华设备 | ||
51 | - System.out.println("设备数量:" + attendanceBeans.size()); | ||
52 | - UserInfoBean userInfoBean = null; | ||
53 | - try { | ||
54 | - if (userType == 2) { | ||
55 | - //根据文件命名来判断学籍号 | ||
56 | - String studentCodes = file.split("\\.")[0]; | ||
57 | - String[] studentInfo = studentCodes.split("_"); | ||
58 | - | ||
59 | - if (studentInfo.length > 1) {//附属卡 | ||
60 | - | ||
61 | - String studentCodeF = studentInfo[0]; | ||
62 | - String CardType = studentInfo[1]; | ||
63 | - userInfoBean = getUserInfo(schoolId, studentCodeF); | ||
64 | - String cardNum = userDao.getCardNum(userInfoBean.getStudent_id(), CardType); | ||
65 | - userInfoBean.setStudent_num(cardNum); | ||
66 | - | ||
67 | - } else { | ||
68 | - | ||
69 | - userInfoBean = getUserInfo(schoolId, studentCode);//获取用户信息 | ||
70 | - | ||
71 | - } | ||
72 | - } else if (userType == 1) { | ||
73 | - TeacherBean teacher = userDao.getTeacher(schoolId, studentCode); | ||
74 | - if (null != teacher) { | ||
75 | - userInfoBean = new UserInfoBean(); | ||
76 | - userInfoBean.setStudent_num(teacher.getTeacher_num()); | ||
77 | - userInfoBean.setName(teacher.getName()); | ||
78 | - userInfoBean.setUser_id(teacher.getUser_id()); | ||
79 | - userInfoBean.setStudentcode(teacher.getNum()); | ||
80 | - userInfoBean.setStudent_id(teacher.getTeacher_id()); | ||
81 | - } | ||
82 | - } | ||
83 | - | ||
84 | - myTask.doTaskOne(file, attendanceBeans, userInfoBean, schoolId, -1, userType); | ||
85 | - } catch (Exception e) { | ||
86 | - e.printStackTrace(); | ||
87 | - } | ||
88 | - return true; | ||
89 | - } | ||
90 | - | ||
91 | - /** | ||
92 | - * 照片下放 | ||
93 | - * | ||
94 | - * @param schoolId | ||
95 | - * @param clint_type | ||
96 | - * @param type 0:主卡 1:副卡 | ||
97 | - */ | ||
98 | - @Override | ||
99 | - public void sendUserInfos(String schoolId, String clint_type, int type) { | ||
100 | - myTask.doTaskSendUserInfos(schoolId, clint_type, type, -1); | ||
101 | - } | ||
102 | - | ||
103 | - @Override | ||
104 | - public boolean sendPermission(PermissionBean permissionBean) { | ||
105 | - | ||
106 | - List<String> deviceIds = permissionBean.getDeviceIds(); | ||
107 | - for (String deviceId : | ||
108 | - deviceIds) { | ||
109 | - NetSDKLib.LLong loginHandleLong = MyTask.lLongMap.get(deviceId); | ||
110 | - GateModule.setAccessTimeSchedule(loginHandleLong,permissionBean); | ||
111 | - } | ||
112 | - | ||
113 | - | ||
114 | - return false; | ||
115 | - } | ||
116 | - | ||
117 | -} |
cloud/dahua/src/main/java/com/example/dahua/service/imp/AttendanceImp.java
0 → 100644
@@ -0,0 +1,71 @@ | @@ -0,0 +1,71 @@ | ||
1 | +package com.example.dahua.service.imp; | ||
2 | + | ||
3 | +import com.example.dahua.bean.AttendanceBean; | ||
4 | +import com.example.dahua.service.AttendanceService; | ||
5 | +import org.springframework.beans.factory.annotation.Autowired; | ||
6 | +import org.springframework.jdbc.core.BeanPropertyRowMapper; | ||
7 | +import org.springframework.jdbc.core.JdbcTemplate; | ||
8 | +import org.springframework.stereotype.Service; | ||
9 | + | ||
10 | +import java.util.List; | ||
11 | + | ||
12 | +@Service | ||
13 | +public class AttendanceImp implements AttendanceService { | ||
14 | + | ||
15 | + @Autowired | ||
16 | + JdbcTemplate jdbcTemplate; | ||
17 | + | ||
18 | + @Override | ||
19 | + public int insert(String clint_id, String clint_type, String ip, String port, String intime, String school_id, String state) { | ||
20 | + try { | ||
21 | + String selectSql = String.format("select * from SZ_Attendance where clint_id =\'%s\'", clint_id); | ||
22 | + List<AttendanceBean> attendanceBeans = jdbcTemplate.query(selectSql, new Object[]{}, new BeanPropertyRowMapper<AttendanceBean>(AttendanceBean.class)); | ||
23 | + if (attendanceBeans.size() == 0) {//设备不存在 | ||
24 | +// insert SZ_Attendance(clint_id, clint_type, ip, port, intime, school_id, state) | ||
25 | +// * values(@clint_id,@clint_type,@ip,@port,GETDATE(),-1,1) | ||
26 | + String insertSql = String.format("insert into SZ_Attendance(clint_id, clint_type, ip, port, intime, school_id, state,isConnection) values ('%s','%s','%s','%s','%s','%s','%s','%s')", clint_id, clint_type, ip, port, intime, school_id, state, 1); | ||
27 | + return jdbcTemplate.update(insertSql); | ||
28 | + } else {//设备 已经存在,更新在线状态 | ||
29 | + updateConnectStateWithDevid(1, clint_id); | ||
30 | + } | ||
31 | + } catch (Exception e) { | ||
32 | + e.printStackTrace(); | ||
33 | + } | ||
34 | + return 0; | ||
35 | + } | ||
36 | + | ||
37 | + /** | ||
38 | + * @param isConnection 连接状态 | ||
39 | + * @param ip | ||
40 | + * @param port | ||
41 | + * @return | ||
42 | + */ | ||
43 | + @Override | ||
44 | + public int updateConnectState(int isConnection, String ip, String port) { | ||
45 | + | ||
46 | + int index = 0; | ||
47 | + try { | ||
48 | + String updateSql = String.format(" update SZ_Attendance set isConnection = %d where ip = '%s' and port = '%s' ", isConnection, ip, port); | ||
49 | + index = jdbcTemplate.update(updateSql); | ||
50 | +// System.out.println("updateIndex:"+index+" isConnection:"+isConnection+"updateSql:"+updateSql); | ||
51 | + } catch (Exception e) { | ||
52 | + e.printStackTrace(); | ||
53 | + } | ||
54 | + | ||
55 | + return index; | ||
56 | + } | ||
57 | + | ||
58 | + @Override | ||
59 | + public int updateConnectStateWithDevid(int isConnection, String clint_id) { | ||
60 | + int index = 0; | ||
61 | + try { | ||
62 | + String updateSql = String.format(" update SZ_Attendance set isConnection = %d where clint_id = '%s' ", isConnection, clint_id); | ||
63 | + index = jdbcTemplate.update(updateSql); | ||
64 | +// System.out.println("updateIndex:"+index+" isConnection:"+isConnection+"updateSql:"+updateSql); | ||
65 | + } catch (Exception e) { | ||
66 | + e.printStackTrace(); | ||
67 | + } | ||
68 | + | ||
69 | + return index; | ||
70 | + } | ||
71 | +} |
cloud/dahua/src/main/java/com/example/dahua/service/imp/DeviceServiceImp.java
0 → 100644
@@ -0,0 +1,24 @@ | @@ -0,0 +1,24 @@ | ||
1 | +package com.example.dahua.service.imp; | ||
2 | + | ||
3 | +import com.example.dahua.MyTask; | ||
4 | +import com.example.dahua.module.DeviceControlModule; | ||
5 | +import com.example.dahua.service.DeviceService; | ||
6 | +import org.springframework.stereotype.Repository; | ||
7 | +import org.springframework.stereotype.Service; | ||
8 | + | ||
9 | +@Repository | ||
10 | +@Service | ||
11 | +public class DeviceServiceImp implements DeviceService { | ||
12 | + | ||
13 | + @Override | ||
14 | + public boolean restart(String deviceId) { | ||
15 | + return DeviceControlModule.reboot(MyTask.lLongMap.get(deviceId)); | ||
16 | + } | ||
17 | + | ||
18 | + @Override | ||
19 | + public boolean setDVRIPConfig(String deviceId, String ip, int port) { | ||
20 | + | ||
21 | + return DeviceControlModule.setDVRIPConfig(deviceId, ip, port); | ||
22 | + } | ||
23 | + | ||
24 | +} |
cloud/dahua/src/main/java/com/example/dahua/service/imp/PermissFaceServiceImp.java
0 → 100644
@@ -0,0 +1,152 @@ | @@ -0,0 +1,152 @@ | ||
1 | +package com.example.dahua.service.imp; | ||
2 | + | ||
3 | +import com.alibaba.fastjson.JSON; | ||
4 | +import com.example.dahua.bean.*; | ||
5 | +import com.example.dahua.dao.PermissionFaceDao; | ||
6 | +import com.example.dahua.dao.UserDao; | ||
7 | +import com.example.dahua.service.PermissFaceService; | ||
8 | +import com.example.dahua.utils.HttpUtils; | ||
9 | +import lombok.extern.slf4j.Slf4j; | ||
10 | +import org.springframework.beans.factory.annotation.Autowired; | ||
11 | +import org.springframework.stereotype.Service; | ||
12 | +import org.springframework.util.StringUtils; | ||
13 | + | ||
14 | +import java.util.List; | ||
15 | + | ||
16 | +@Slf4j | ||
17 | +@Service | ||
18 | +public class PermissFaceServiceImp implements PermissFaceService { | ||
19 | + | ||
20 | + @Autowired | ||
21 | + PermissionFaceDao permissionFaceDao; | ||
22 | + | ||
23 | + @Autowired | ||
24 | + UserDao userDao; | ||
25 | + | ||
26 | + @Override | ||
27 | + public ResponseBean<PermissionFaceBean> addPermissionFace(PermissionFaceBean permissionFaceBean) { | ||
28 | + ResponseBean<PermissionFaceBean> responseBean = new ResponseBean<>(); | ||
29 | + try { | ||
30 | + int id = permissionFaceBean.getId(); | ||
31 | + | ||
32 | + String permissName = permissionFaceBean.getPerrmissName(); | ||
33 | + | ||
34 | + int schoolId = permissionFaceBean.getSchoolId(); | ||
35 | + | ||
36 | + PermissionBean permissionBean = permissionFaceBean.getPermissionBean(); | ||
37 | + | ||
38 | + int type = permissionFaceBean.getType(); | ||
39 | + if (null != permissionBean) | ||
40 | + permissionFaceBean.setPermissionJson(JSON.toJSON(permissionBean).toString()); | ||
41 | + | ||
42 | + if ((type == 0 || type == 1) && (StringUtils.isEmpty(permissName) || schoolId == 0 || (null != permissionBean && permissionBean.getWeekDays().size() == 0))) { | ||
43 | + | ||
44 | + responseBean.setStatus(0); | ||
45 | + responseBean.setMessage("传入的参数错误"); | ||
46 | + responseBean.setData(null); | ||
47 | + return responseBean; | ||
48 | + } | ||
49 | + switch (type) { | ||
50 | + case 0://新增 | ||
51 | + permissionFaceDao.addPermissionFace(permissionFaceBean); | ||
52 | + responseBean.setMessage("添加权限模板成功"); | ||
53 | + responseBean.setData(null); | ||
54 | + sendPermiss2Dev(permissionFaceBean); | ||
55 | + responseBean.setStatus(1); | ||
56 | + break; | ||
57 | + case 1://编辑 | ||
58 | + if (null == permissionFaceDao.getPerFaceWithId(id)) { | ||
59 | + responseBean.setMessage("模板不存在"); | ||
60 | + } else { | ||
61 | + responseBean.setMessage("编辑权限模板成功"); | ||
62 | + permissionFaceDao.updatePermissionFace(permissionFaceBean); | ||
63 | + } | ||
64 | + responseBean.setData(null); | ||
65 | + sendPermiss2Dev(permissionFaceBean); | ||
66 | + responseBean.setStatus(1); | ||
67 | + break; | ||
68 | + case 2://删除 | ||
69 | + if (null == permissionFaceDao.getPerFaceWithId(id)) { | ||
70 | + responseBean.setMessage("模板不存在"); | ||
71 | + } else { | ||
72 | + permissionFaceDao.deletePermissionFace(permissionFaceBean); | ||
73 | + responseBean.setMessage("删除权限模板成功"); | ||
74 | + } | ||
75 | + responseBean.setData(null); | ||
76 | + responseBean.setStatus(1); | ||
77 | + break; | ||
78 | + } | ||
79 | + } catch (Exception e) { | ||
80 | + e.printStackTrace(); | ||
81 | + responseBean.setStatus(0); | ||
82 | + responseBean.setMessage(e.getMessage()); | ||
83 | + responseBean.setData(null); | ||
84 | + } | ||
85 | + return responseBean; | ||
86 | + } | ||
87 | + | ||
88 | + /** | ||
89 | + * 下发权限到设备 | ||
90 | + * | ||
91 | + * @param permissionFaceBean | ||
92 | + */ | ||
93 | + private void sendPermiss2Dev(PermissionFaceBean permissionFaceBean) { | ||
94 | + int schoolId = permissionFaceBean.getSchoolId(); | ||
95 | + | ||
96 | + PermissionBean permissionBean = permissionFaceBean.getPermissionBean(); | ||
97 | + | ||
98 | + //查询海康人脸权限一体机 | ||
99 | + List<AttendanceBean> attendanceBeanList = userDao.getAttendanceBeans(schoolId + "", "28"); | ||
100 | + | ||
101 | + //查询大华人脸权限一体机 | ||
102 | + List<AttendanceBean> attendanceBeanList1 = userDao.getAttendanceBeans(schoolId + "", "29"); | ||
103 | + | ||
104 | + if (null != attendanceBeanList && attendanceBeanList.size() > 0) { | ||
105 | + if (null != permissionBean) | ||
106 | + HttpUtils.sendPermission2HK(permissionFaceBean); | ||
107 | + } | ||
108 | + | ||
109 | + if (null != attendanceBeanList1 && attendanceBeanList1.size() > 0) { | ||
110 | + if (null != permissionBean) | ||
111 | + HttpUtils.sendPermission(permissionBean); | ||
112 | + } | ||
113 | + | ||
114 | + } | ||
115 | + | ||
116 | + | ||
117 | + | ||
118 | + | ||
119 | + @Override | ||
120 | + public ResponseBeanList<PermissionFaceBean> getPermissions(int schoolId) { | ||
121 | + ResponseBeanList responseBeanList = new ResponseBeanList(); | ||
122 | + try { | ||
123 | + | ||
124 | + List<PermissionFaceBean> permissionFaceBeans = permissionFaceDao.getPermissFaces(schoolId); | ||
125 | + | ||
126 | + responseBeanList.setData(permissionFaceBeans); | ||
127 | + | ||
128 | + responseBeanList.setMessage(""); | ||
129 | + responseBeanList.setStatus(1); | ||
130 | + } catch (Exception e) { | ||
131 | + e.printStackTrace(); | ||
132 | + } | ||
133 | + return responseBeanList; | ||
134 | + } | ||
135 | + | ||
136 | + @Override | ||
137 | + public ResponseBeanList<PermissionFaceBean> getPermissionDetail(int permissionId) { | ||
138 | + ResponseBeanList responseBeanList = new ResponseBeanList(); | ||
139 | + try { | ||
140 | + | ||
141 | + List<PermissionFaceBean> permissionFaceBeans = permissionFaceDao.getPermissionDetail(permissionId); | ||
142 | + | ||
143 | + responseBeanList.setData(permissionFaceBeans); | ||
144 | + | ||
145 | + responseBeanList.setMessage(""); | ||
146 | + responseBeanList.setStatus(1); | ||
147 | + } catch (Exception e) { | ||
148 | + e.printStackTrace(); | ||
149 | + } | ||
150 | + return responseBeanList; | ||
151 | + } | ||
152 | +} |
cloud/dahua/src/main/java/com/example/dahua/service/imp/UserServiceImp.java
0 → 100644
@@ -0,0 +1,120 @@ | @@ -0,0 +1,120 @@ | ||
1 | +package com.example.dahua.service.imp; | ||
2 | + | ||
3 | +import com.example.dahua.MyTask; | ||
4 | +import com.example.dahua.async.SendUserInfoTask; | ||
5 | +import com.example.dahua.bean.*; | ||
6 | +import com.example.dahua.dao.UserDao; | ||
7 | +import com.example.dahua.lib.NetSDKLib; | ||
8 | +import com.example.dahua.module.GateModule; | ||
9 | +import com.example.dahua.service.UserService; | ||
10 | +import org.apache.commons.lang.StringUtils; | ||
11 | +import org.springframework.beans.factory.annotation.Autowired; | ||
12 | +import org.springframework.stereotype.Repository; | ||
13 | +import org.springframework.stereotype.Service; | ||
14 | + | ||
15 | +import java.util.List; | ||
16 | + | ||
17 | +@Repository | ||
18 | +@Service | ||
19 | +public class UserServiceImp implements UserService { | ||
20 | + | ||
21 | + @Autowired | ||
22 | + UserDao userDao; | ||
23 | + | ||
24 | + @Autowired | ||
25 | + SendUserInfoTask myTask; | ||
26 | + | ||
27 | + @Override | ||
28 | + public List<AttendanceBean> getAttendanceBeans(String schoolId, String clint_type, String devid) { | ||
29 | + | ||
30 | + if (!StringUtils.isEmpty(devid)) return userDao.getAttendanceBeanWithId(schoolId, clint_type, devid); | ||
31 | + | ||
32 | + return userDao.getAttendanceBeans(schoolId, clint_type); | ||
33 | + } | ||
34 | + | ||
35 | + @Override | ||
36 | + public UserInfoBean getUserInfo(String schoolId, String studentCode) { | ||
37 | + return userDao.getUserInfo(schoolId, studentCode); | ||
38 | + } | ||
39 | + | ||
40 | + /** | ||
41 | + * 单个用户信息下发 | ||
42 | + * | ||
43 | + * @param file | ||
44 | + * @param schoolId | ||
45 | + * @param studentCode | ||
46 | + * @param clint_type | ||
47 | + * @return | ||
48 | + */ | ||
49 | + @Override | ||
50 | + public boolean uploadImgAndUserInfo(String file, String schoolId, String studentCode, String clint_type, int userType, String devid) { | ||
51 | + List<AttendanceBean> attendanceBeans = getAttendanceBeans(schoolId, clint_type, devid);//获取学校下的大华设备 | ||
52 | + System.out.println("设备数量:" + attendanceBeans.size()); | ||
53 | + UserInfoBean userInfoBean = null; | ||
54 | + try { | ||
55 | + if (userType == 2) { | ||
56 | + //根据文件命名来判断学籍号 | ||
57 | + String studentCodes = file.split("\\.")[0]; | ||
58 | + String[] studentInfo = studentCodes.split("_"); | ||
59 | + | ||
60 | + if (studentInfo.length > 1) {//附属卡 | ||
61 | + | ||
62 | + String studentCodeF = studentInfo[0]; | ||
63 | + String CardType = studentInfo[1]; | ||
64 | + userInfoBean = getUserInfo(schoolId, studentCodeF); | ||
65 | + String cardNum = userDao.getCardNum(userInfoBean.getStudent_id(), CardType); | ||
66 | + userInfoBean.setStudent_num(cardNum); | ||
67 | + | ||
68 | + } else { | ||
69 | + | ||
70 | + userInfoBean = getUserInfo(schoolId, studentCode);//获取用户信息 | ||
71 | + | ||
72 | + } | ||
73 | + } else if (userType == 1) { | ||
74 | + TeacherBean teacher = userDao.getTeacher(schoolId, studentCode); | ||
75 | + if (null != teacher) { | ||
76 | + userInfoBean = new UserInfoBean(); | ||
77 | + userInfoBean.setStudent_num(teacher.getTeacher_num()); | ||
78 | + userInfoBean.setName(teacher.getName()); | ||
79 | + userInfoBean.setUser_id(teacher.getUser_id()); | ||
80 | + userInfoBean.setStudentcode(teacher.getNum()); | ||
81 | + userInfoBean.setStudent_id(teacher.getTeacher_id()); | ||
82 | + } | ||
83 | + } | ||
84 | + | ||
85 | + myTask.doTaskOne(file, attendanceBeans, userInfoBean, schoolId, -1, userType); | ||
86 | + } catch (Exception e) { | ||
87 | + e.printStackTrace(); | ||
88 | + } | ||
89 | + return true; | ||
90 | + } | ||
91 | + | ||
92 | + /** | ||
93 | + * 照片下放 | ||
94 | + * | ||
95 | + * @param schoolId | ||
96 | + * @param clint_type | ||
97 | + * @param type 0:主卡 1:副卡 | ||
98 | + */ | ||
99 | + @Override | ||
100 | + public void sendUserInfos(String schoolId, String clint_type, int type) { | ||
101 | + myTask.doTaskSendUserInfos(schoolId, clint_type, type, -1); | ||
102 | + } | ||
103 | + | ||
104 | + @Override | ||
105 | + public boolean sendPermission(PermissionBean permissionBean) { | ||
106 | + | ||
107 | + List<String> deviceIds = permissionBean.getDeviceIds(); | ||
108 | + if (null != deviceIds) | ||
109 | + for (String deviceId : | ||
110 | + deviceIds) { | ||
111 | + NetSDKLib.LLong loginHandleLong = MyTask.lLongMap.get(deviceId); | ||
112 | + GateModule.setAccessTimeSchedule(loginHandleLong, permissionBean); | ||
113 | + GateModule.getAccessTimeSchedule1(loginHandleLong); | ||
114 | + } | ||
115 | + | ||
116 | + | ||
117 | + return false; | ||
118 | + } | ||
119 | + | ||
120 | +} |
cloud/dahua/src/main/java/com/example/dahua/utils/HttpUtils.java
1 | package com.example.dahua.utils; | 1 | package com.example.dahua.utils; |
2 | 2 | ||
3 | +import com.example.dahua.bean.PermissionBean; | ||
4 | +import com.example.dahua.bean.PermissionFaceBean; | ||
5 | +import com.example.dahua.bean.PermissionHKBean; | ||
3 | import com.example.dahua.lib.CompressPic; | 6 | import com.example.dahua.lib.CompressPic; |
4 | import com.example.dahua.lib.FilePath; | 7 | import com.example.dahua.lib.FilePath; |
5 | import org.springframework.core.io.FileSystemResource; | 8 | import org.springframework.core.io.FileSystemResource; |
@@ -69,4 +72,52 @@ public class HttpUtils { | @@ -69,4 +72,52 @@ public class HttpUtils { | ||
69 | } | 72 | } |
70 | 73 | ||
71 | 74 | ||
75 | + public static boolean sendPermission(PermissionBean permissionBean) { | ||
76 | + String url = "http://121.40.109.21:8991/file/sendPermission"; | ||
77 | + RestTemplate restTemplate = new RestTemplate(); | ||
78 | + | ||
79 | + HttpHeaders headers = new HttpHeaders(); | ||
80 | + | ||
81 | + MediaType mediaType = MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE); | ||
82 | + | ||
83 | + headers.setContentType(mediaType); | ||
84 | + | ||
85 | + HttpEntity<PermissionBean> httpEntity = new HttpEntity<>(permissionBean, headers); | ||
86 | + | ||
87 | + ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, httpEntity, String.class); | ||
88 | + | ||
89 | + System.out.println("大华设备下发权限:" + responseEntity.getBody()); | ||
90 | + return responseEntity.getBody().equals("1"); | ||
91 | + } | ||
92 | + | ||
93 | + public static void sendPermission2HK(PermissionFaceBean permissionFaceBean) { | ||
94 | + String url = "http://114.55.30.100:8089/facereco/sendPermiss"; | ||
95 | + PermissionBean permissionBean = permissionFaceBean.getPermissionBean(); | ||
96 | + | ||
97 | + if (null!=permissionBean){ | ||
98 | + | ||
99 | + PermissionHKBean permissionHKBean = new PermissionHKBean(); | ||
100 | + | ||
101 | + permissionHKBean.setDeviceIds(permissionBean.getDeviceIds()); | ||
102 | + permissionHKBean.setSchoolId(permissionFaceBean.getSchoolId()+""); | ||
103 | + permissionHKBean.setUserType("2"); | ||
104 | + permissionHKBean.setWeekDays(permissionBean.getWeekDays()); | ||
105 | + | ||
106 | + RestTemplate restTemplate = new RestTemplate(); | ||
107 | + | ||
108 | + HttpHeaders headers = new HttpHeaders(); | ||
109 | + | ||
110 | + MediaType mediaType = MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE); | ||
111 | + | ||
112 | + headers.setContentType(mediaType); | ||
113 | + | ||
114 | + HttpEntity<PermissionHKBean> httpEntity = new HttpEntity<>(permissionHKBean, headers); | ||
115 | + | ||
116 | + ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, httpEntity, String.class); | ||
117 | + | ||
118 | + System.out.println("海康设备下发权限:" + responseEntity.getBody()); | ||
119 | + | ||
120 | + } | ||
121 | + | ||
122 | + } | ||
72 | } | 123 | } |
cloud/dahua/src/main/resources/application.yml
@@ -14,10 +14,10 @@ spring: | @@ -14,10 +14,10 @@ spring: | ||
14 | password: RQminVCJota3H1u8bBYH | 14 | password: RQminVCJota3H1u8bBYH |
15 | jdbc-url: jdbc:sqlserver://116.62.155.137:33419;database=SmartCampus | 15 | jdbc-url: jdbc:sqlserver://116.62.155.137:33419;database=SmartCampus |
16 | driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver | 16 | driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver |
17 | - # username: SZJXTUSER | ||
18 | - # password: xst200919 | ||
19 | - # jdbc-url: jdbc:sqlserver://60.190.202.57:14333;database=SmartCampusSZ | ||
20 | - # driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver | 17 | +# username: SZJXTUSER |
18 | +# password: xst200919 | ||
19 | +# jdbc-url: jdbc:sqlserver://60.190.202.57:14333;database=SmartCampusSZ | ||
20 | +# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver | ||
21 | xiaoan: | 21 | xiaoan: |
22 | jdbc-url: jdbc:sqlserver://116.62.241.27:33419;database=xiaoanhxy | 22 | jdbc-url: jdbc:sqlserver://116.62.241.27:33419;database=xiaoanhxy |
23 | username: szjxtuser | 23 | username: szjxtuser |
cloud/dahua/src/main/resources/mapper/PermissionFaceMapper.xml
0 → 100644
@@ -0,0 +1,55 @@ | @@ -0,0 +1,55 @@ | ||
1 | +<?xml version="1.0" encoding="UTF-8" ?> | ||
2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > | ||
3 | +<mapper namespace="com.example.dahua.dao.PermissionFaceDao"> | ||
4 | + | ||
5 | +<!-- create table PermissionFace (--> | ||
6 | +<!-- id int not null PRIMARY KEY ,--> | ||
7 | +<!-- permissionJSON varchar(max) not null ,--> | ||
8 | +<!-- schoolId int not null ,--> | ||
9 | +<!-- perrmissName varchar(50) not null ,--> | ||
10 | +<!-- createTime varchar(50) not null ,--> | ||
11 | +<!-- updateTime varchar(50) not null ,--> | ||
12 | +<!-- )--> | ||
13 | + <resultMap id="permissFaceBase" type="com.example.dahua.bean.PermissionFaceBean"> | ||
14 | + | ||
15 | + <result column="id" property="id"/> | ||
16 | + <result column="permissionJSON" property="permissionJson"/> | ||
17 | + <result column="schoolId" property="schoolId"/> | ||
18 | + <result column="perrmissName" property="perrmissName"/> | ||
19 | + <result column="createTime" property="createTime"/> | ||
20 | + <result column="updateTime" property="updateTime"/> | ||
21 | + | ||
22 | + </resultMap> | ||
23 | + | ||
24 | + <insert id="addPermissionFace" parameterType="com.example.dahua.bean.PermissionFaceBean"> | ||
25 | + | ||
26 | + insert into PermissionFace values (#{permissionJson},#{schoolId},#{perrmissName},#{createTime},#{updateTime}) | ||
27 | + | ||
28 | + </insert> | ||
29 | + | ||
30 | + | ||
31 | + <select id="getPermissFaces" parameterType="java.lang.Integer" resultMap="permissFaceBase"> | ||
32 | + | ||
33 | + select * from PermissionFace where schoolId = #{schoolId}; | ||
34 | + | ||
35 | + </select> | ||
36 | + <select id="getPermissionDetail" parameterType="java.lang.Integer" resultMap="permissFaceBase"> | ||
37 | + | ||
38 | + select * from PermissionFace where id = #{permissionId}; | ||
39 | + | ||
40 | + </select> | ||
41 | + <update id="updatePermissionFace" parameterType="com.example.dahua.bean.PermissionFaceBean"> | ||
42 | + | ||
43 | + update PermissionFace set permissionJson = #{permissionJson},updateTime=#{updateTime},perrmissName=#{perrmissName} where id = #{id} | ||
44 | + | ||
45 | + </update> | ||
46 | + | ||
47 | + <delete id="deletePermissionFace" parameterType="java.lang.Integer"> | ||
48 | + delete from PermissionFace where id = #{id} | ||
49 | + </delete> | ||
50 | + | ||
51 | + <select id="getPerFaceWithId" parameterType="java.lang.Integer" resultType="com.example.dahua.bean.PermissionFaceBean"> | ||
52 | + select * from PermissionFace where id =#{id}; | ||
53 | + </select> | ||
54 | + | ||
55 | +</mapper> | ||
0 | \ No newline at end of file | 56 | \ No newline at end of file |
cloud/dahua/src/main/resources/mapper/usermapper.xml
1 | <?xml version="1.0" encoding="UTF-8" ?> | 1 | <?xml version="1.0" encoding="UTF-8" ?> |
2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > | 2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
3 | -<mapper namespace="com.example.dahua.dao"> | 3 | +<mapper namespace="com.example.dahua.dao.UserDao"> |
4 | 4 | ||
5 | <!--<select id="getStudentNum" resultType="String" parameterType="String">--> | 5 | <!--<select id="getStudentNum" resultType="String" parameterType="String">--> |
6 | <!--select student_num--> | 6 | <!--select student_num--> |
@@ -9,4 +9,14 @@ | @@ -9,4 +9,14 @@ | ||
9 | <!--and studentcode = #{studentcode}--> | 9 | <!--and studentcode = #{studentcode}--> |
10 | <!--</select>--> | 10 | <!--</select>--> |
11 | 11 | ||
12 | + <select id="getStudentWiSidAndSex" resultType="java.lang.String"> | ||
13 | + | ||
14 | + select student_num from SZ_V_School_Student where school_id = #{schoolId} and sex in | ||
15 | + <foreach collection="sexs" item="sex" index="index" open="(" separator="," close=")"> | ||
16 | + #{sex} | ||
17 | + </foreach> | ||
18 | + | ||
19 | + </select> | ||
20 | + | ||
21 | + | ||
12 | </mapper> | 22 | </mapper> |
13 | \ No newline at end of file | 23 | \ No newline at end of file |
cloud/fIle-center/src/main/java/com/sincere/file/config/AllowOriginFilter.java
0 → 100644
@@ -0,0 +1,37 @@ | @@ -0,0 +1,37 @@ | ||
1 | +package com.sincere.file.config; | ||
2 | + | ||
3 | +import org.springframework.stereotype.Component; | ||
4 | + | ||
5 | +import javax.servlet.*; | ||
6 | +import javax.servlet.annotation.WebFilter; | ||
7 | +import javax.servlet.http.HttpServletResponse; | ||
8 | +import java.io.IOException; | ||
9 | + | ||
10 | +/** | ||
11 | + * 用于解决跨域问题 | ||
12 | + * | ||
13 | + * @author chen | ||
14 | + * @version 1.0 | ||
15 | + * @date 2019/10/11 0011 10:17 | ||
16 | + */ | ||
17 | +@Component | ||
18 | +@WebFilter(urlPatterns = "/*", filterName = "authFilter") | ||
19 | +public class AllowOriginFilter implements Filter { | ||
20 | + | ||
21 | + @Override | ||
22 | + public void init(FilterConfig filterConfig) throws ServletException { | ||
23 | + } | ||
24 | + | ||
25 | + public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { | ||
26 | + HttpServletResponse response = (HttpServletResponse) res; | ||
27 | + response.setHeader("Access-Control-Allow-Origin", "*"); | ||
28 | + response.setHeader("Access-Control-Allow-Methods", "*"); | ||
29 | + response.setHeader("Access-Control-Allow-Credentials", "true"); | ||
30 | + response.setHeader("Access-Control-Allow-Headers", "*"); | ||
31 | + chain.doFilter(req, res); | ||
32 | + } | ||
33 | + | ||
34 | + @Override | ||
35 | + public void destroy() { | ||
36 | + } | ||
37 | +} |
cloud/getaway/src/main/resources/application.yml
@@ -69,6 +69,12 @@ spring: | @@ -69,6 +69,12 @@ spring: | ||
69 | - Path=/haikang/** | 69 | - Path=/haikang/** |
70 | filters: | 70 | filters: |
71 | - StripPrefix=1 | 71 | - StripPrefix=1 |
72 | + - id: haikangface | ||
73 | + uri: http://120.26.116.253:8089 | ||
74 | + predicates: | ||
75 | + - Path=/haikangface/** | ||
76 | + filters: | ||
77 | + - StripPrefix=1 | ||
72 | # default-filters: | 78 | # default-filters: |
73 | # - DedupeResponseHeader=Access-Control-Allow-Origin, RETAIN_UNIQUE | 79 | # - DedupeResponseHeader=Access-Control-Allow-Origin, RETAIN_UNIQUE |
74 | # discovery: | 80 | # discovery: |
@@ -92,4 +98,4 @@ ribbon: | @@ -92,4 +98,4 @@ ribbon: | ||
92 | 98 | ||
93 | 99 | ||
94 | url: | 100 | url: |
95 | - ignored: /SmartCampusWebApi/**,/authserver/**,/NewSmartCampus/**,/file-center/**,/dahua/**,/haikang/** | ||
96 | \ No newline at end of file | 101 | \ No newline at end of file |
102 | + ignored: /SmartCampusWebApi/**,/authserver/**,/NewSmartCampus/**,/file-center/**,/dahua/**,/haikang/**,/haikangface/** | ||
97 | \ No newline at end of file | 103 | \ No newline at end of file |
cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java
@@ -19,8 +19,10 @@ import org.springframework.beans.factory.annotation.Autowired; | @@ -19,8 +19,10 @@ import org.springframework.beans.factory.annotation.Autowired; | ||
19 | import org.springframework.beans.factory.annotation.Value; | 19 | import org.springframework.beans.factory.annotation.Value; |
20 | import org.springframework.boot.ApplicationArguments; | 20 | import org.springframework.boot.ApplicationArguments; |
21 | import org.springframework.boot.ApplicationRunner; | 21 | import org.springframework.boot.ApplicationRunner; |
22 | +import org.springframework.http.ResponseEntity; | ||
22 | import org.springframework.stereotype.Component; | 23 | import org.springframework.stereotype.Component; |
23 | import org.springframework.util.StringUtils; | 24 | import org.springframework.util.StringUtils; |
25 | +import org.springframework.web.client.RestTemplate; | ||
24 | 26 | ||
25 | import java.io.*; | 27 | import java.io.*; |
26 | import java.net.InetAddress; | 28 | import java.net.InetAddress; |
@@ -29,6 +31,7 @@ import java.nio.ByteBuffer; | @@ -29,6 +31,7 @@ import java.nio.ByteBuffer; | ||
29 | import java.text.SimpleDateFormat; | 31 | import java.text.SimpleDateFormat; |
30 | import java.util.Date; | 32 | import java.util.Date; |
31 | import java.util.HashMap; | 33 | import java.util.HashMap; |
34 | +import java.util.List; | ||
32 | import java.util.Map; | 35 | import java.util.Map; |
33 | import java.util.regex.Pattern; | 36 | import java.util.regex.Pattern; |
34 | 37 | ||
@@ -48,7 +51,8 @@ public class CMSServer implements ApplicationRunner { | @@ -48,7 +51,8 @@ public class CMSServer implements ApplicationRunner { | ||
48 | //114.55.30.100 | 51 | //114.55.30.100 |
49 | //120.26.116.253 | 52 | //120.26.116.253 |
50 | private String ip_cloud = "120.26.116.253"; | 53 | private String ip_cloud = "120.26.116.253"; |
51 | - // private String ip_cloud = "114.55.30.100"; | 54 | + // private String ip_cloud = "172.16.2.56"; |
55 | +// private String ip_cloud = "114.55.30.100"; | ||
52 | private String ip; | 56 | private String ip; |
53 | 57 | ||
54 | { | 58 | { |
@@ -122,7 +126,7 @@ public class CMSServer implements ApplicationRunner { | @@ -122,7 +126,7 @@ public class CMSServer implements ApplicationRunner { | ||
122 | public class FRegisterCallBack implements HCEHomeCMS.DEVICE_REGISTER_CB { | 126 | public class FRegisterCallBack implements HCEHomeCMS.DEVICE_REGISTER_CB { |
123 | public boolean invoke(NativeLong lUserID, int dwDataType, Pointer pOutBuffer, int dwOutLen, HCEHomeCMS.NET_EHOME_SERVER_INFO pInBuffer, int dwInLen, Pointer pUser) { | 127 | public boolean invoke(NativeLong lUserID, int dwDataType, Pointer pOutBuffer, int dwOutLen, HCEHomeCMS.NET_EHOME_SERVER_INFO pInBuffer, int dwInLen, Pointer pUser) { |
124 | String deviceId = ""; | 128 | String deviceId = ""; |
125 | - System.out.println("dwDataType:" + dwDataType); | 129 | +// System.out.println("dwDataType:" + dwDataType); |
126 | if (dwDataType == 0) { | 130 | if (dwDataType == 0) { |
127 | HCEHomeCMS.NET_EHOME_DEV_REG_INFO strDevRegInfo = new HCEHomeCMS.NET_EHOME_DEV_REG_INFO(); | 131 | HCEHomeCMS.NET_EHOME_DEV_REG_INFO strDevRegInfo = new HCEHomeCMS.NET_EHOME_DEV_REG_INFO(); |
128 | strDevRegInfo.write(); | 132 | strDevRegInfo.write(); |
@@ -137,7 +141,10 @@ public class CMSServer implements ApplicationRunner { | @@ -137,7 +141,10 @@ public class CMSServer implements ApplicationRunner { | ||
137 | pInBuffer.dwSize = pInBuffer.size(); | 141 | pInBuffer.dwSize = pInBuffer.size(); |
138 | AttendanceBean attendanceBean = new AttendanceBean(); | 142 | AttendanceBean attendanceBean = new AttendanceBean(); |
139 | attendanceBean.setClint_id(deviceId); | 143 | attendanceBean.setClint_id(deviceId); |
140 | - attendanceBean.setClint_type("18"); | 144 | + if (deviceId.startsWith("ytj")) |
145 | + attendanceBean.setClint_type("28"); | ||
146 | + else | ||
147 | + attendanceBean.setClint_type("18"); | ||
141 | attendanceBean.setIntime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); | 148 | attendanceBean.setIntime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); |
142 | attendanceBean.setIsConnection(1); | 149 | attendanceBean.setIsConnection(1); |
143 | attendanceBean.setSchool_id("-1"); | 150 | attendanceBean.setSchool_id("-1"); |
@@ -280,7 +287,7 @@ public class CMSServer implements ApplicationRunner { | @@ -280,7 +287,7 @@ public class CMSServer implements ApplicationRunner { | ||
280 | 287 | ||
281 | public boolean invoke(NativeLong iHandle, String pFileName, Pointer pFileBuf, int dwFileLen, Pointer pFilePath, Pointer pUser) { | 288 | public boolean invoke(NativeLong iHandle, String pFileName, Pointer pFileBuf, int dwFileLen, Pointer pFilePath, Pointer pUser) { |
282 | String strPath = "C://EhomePicServer/"; | 289 | String strPath = "C://EhomePicServer/"; |
283 | - System.out.println("pFileName:" + pFileName); | 290 | +// System.out.println("pFileName:" + pFileName); |
284 | pFileName = pFileName.replace("_", ""); | 291 | pFileName = pFileName.replace("_", ""); |
285 | boolean isZhuaPai = false; | 292 | boolean isZhuaPai = false; |
286 | if (pFileName.contains("-")) {//人脸抓拍机抓拍到的图片 | 293 | if (pFileName.contains("-")) {//人脸抓拍机抓拍到的图片 |
@@ -405,7 +412,7 @@ public class CMSServer implements ApplicationRunner { | @@ -405,7 +412,7 @@ public class CMSServer implements ApplicationRunner { | ||
405 | strXMLData.read(); | 412 | strXMLData.read(); |
406 | 413 | ||
407 | String strXML = new String(strXMLData.byValue); | 414 | String strXML = new String(strXMLData.byValue); |
408 | - System.out.println(strXML); | 415 | +// System.out.println(strXML); |
409 | 416 | ||
410 | if (null == alarmUtils) { | 417 | if (null == alarmUtils) { |
411 | alarmUtils = new AlarmUtils(deviceDao); | 418 | alarmUtils = new AlarmUtils(deviceDao); |
@@ -439,7 +446,7 @@ public class CMSServer implements ApplicationRunner { | @@ -439,7 +446,7 @@ public class CMSServer implements ApplicationRunner { | ||
439 | } | 446 | } |
440 | 447 | ||
441 | } | 448 | } |
442 | - System.out.println("监听回调"); | 449 | +// System.out.println("监听回调"); |
443 | return true; | 450 | return true; |
444 | } | 451 | } |
445 | } | 452 | } |
@@ -484,8 +491,11 @@ public class CMSServer implements ApplicationRunner { | @@ -484,8 +491,11 @@ public class CMSServer implements ApplicationRunner { | ||
484 | face_recoder.getImgurl(), face_recoder.getInOrOut(), face_recoder.getTime(), face_recoder.getCardNum(), currTemperature); | 491 | face_recoder.getImgurl(), face_recoder.getInOrOut(), face_recoder.getTime(), face_recoder.getCardNum(), currTemperature); |
485 | } | 492 | } |
486 | } else { | 493 | } else { |
494 | + //教师点名 | ||
495 | + isTeacher(cardNo, deviceID); | ||
487 | FileUtils.getInstance().writeLogs("card:" + card, FileUtils.faceSuccess); | 496 | FileUtils.getInstance().writeLogs("card:" + card, FileUtils.faceSuccess); |
488 | } | 497 | } |
498 | + | ||
489 | } | 499 | } |
490 | 500 | ||
491 | } catch (Exception e) { | 501 | } catch (Exception e) { |
@@ -493,6 +503,29 @@ public class CMSServer implements ApplicationRunner { | @@ -493,6 +503,29 @@ public class CMSServer implements ApplicationRunner { | ||
493 | } | 503 | } |
494 | } | 504 | } |
495 | 505 | ||
506 | + public void isTeacher(String cardNo, String deviceID) { | ||
507 | + | ||
508 | + | ||
509 | + List<String> devLists = userDao.getDeviceRoomRelation(deviceID); | ||
510 | + | ||
511 | + if (null != devLists && devLists.size() > 0) { | ||
512 | + | ||
513 | + StudentBean teacher = userDao.getTeacherWithCard(cardNo); | ||
514 | + if (null != teacher) { | ||
515 | + String url = String.format("http://60.190.202.57:1000/api/RollCall/AddRollCallPersonnelRecord?userId=%s&deviceId=%s", teacher.getUser_id(), deviceID); | ||
516 | + | ||
517 | + RestTemplate restTemplate = new RestTemplate(); | ||
518 | + | ||
519 | + | ||
520 | + String res = restTemplate.getForObject(url, String.class); | ||
521 | + | ||
522 | + System.out.println("result:" + res + "------url:" + url); | ||
523 | + | ||
524 | + } | ||
525 | + } | ||
526 | + | ||
527 | + } | ||
528 | + | ||
496 | /** | 529 | /** |
497 | * 生成图片服务路径 | 530 | * 生成图片服务路径 |
498 | * | 531 | * |
@@ -602,17 +635,17 @@ public class CMSServer implements ApplicationRunner { | @@ -602,17 +635,17 @@ public class CMSServer implements ApplicationRunner { | ||
602 | "<password>MTIzNDU2</password>\r\n" + | 635 | "<password>MTIzNDU2</password>\r\n" + |
603 | "<maxSwipeTime></maxSwipeTime>\r\n" + | 636 | "<maxSwipeTime></maxSwipeTime>\r\n" + |
604 | "<swipeTime></swipeTime>\r\n" + | 637 | "<swipeTime></swipeTime>\r\n" + |
605 | - "<groupNo></groupNo>\r\n" + | ||
606 | - "<employeeNo>" + employeeNo + "</employeeNo>\r\n" + | 638 | + "<groupNo>5</groupNo>\r\n" + |
607 | "<name>"; | 639 | "<name>"; |
608 | String nameAfter = "</name>\r\n" + | 640 | String nameAfter = "</name>\r\n" + |
609 | - "<departmentNo></departmentNo>\r\n" + | 641 | + "<employeeNo>" + employeeNo + "</employeeNo>\r\n" + |
642 | + "<departmentNo>3</departmentNo>\r\n" + | ||
610 | "<schedulePlanNo></schedulePlanNo>\r\n" + | 643 | "<schedulePlanNo></schedulePlanNo>\r\n" + |
611 | "<schedulePlanType></schedulePlanType>\r\n" + | 644 | "<schedulePlanType></schedulePlanType>\r\n" + |
612 | "</CardCfg>\r\n" + | 645 | "</CardCfg>\r\n" + |
613 | "</ConfigXML>\r\n" + | 646 | "</ConfigXML>\r\n" + |
614 | "</Params>"; | 647 | "</Params>"; |
615 | -// System.out.println("strConfigXMLCard:" + strConfigXMLCard + name + nameAfter); | 648 | + System.out.println("strConfigXMLCard:" + strConfigXMLCard + name + nameAfter); |
616 | byte[] nameBeforBy = null; | 649 | byte[] nameBeforBy = null; |
617 | byte[] resultBy = null; | 650 | byte[] resultBy = null; |
618 | try { | 651 | try { |
@@ -676,50 +709,50 @@ public class CMSServer implements ApplicationRunner { | @@ -676,50 +709,50 @@ public class CMSServer implements ApplicationRunner { | ||
676 | public void SetCardWeekPlan(String clint_id, String card, String userType, String strConfigXMLCard, String content) { | 709 | public void SetCardWeekPlan(String clint_id, String card, String userType, String strConfigXMLCard, String content) { |
677 | try { | 710 | try { |
678 | 711 | ||
679 | - HCEHomeCMS.NET_EHOME_XML_CFG struXMLCard = new HCEHomeCMS.NET_EHOME_XML_CFG(); | ||
680 | - | ||
681 | - HCEHomeCMS.NET_DVR_STRING_POINTER stringRequestCard = new HCEHomeCMS.NET_DVR_STRING_POINTER(); | ||
682 | - stringRequestCard.read(); | ||
683 | - String strRequestCard = "SETDEVICECONFIG"; | ||
684 | - stringRequestCard.byString = strRequestCard.getBytes(); | ||
685 | - stringRequestCard.write(); | ||
686 | - | ||
687 | - struXMLCard.pCmdBuf = stringRequestCard.getPointer(); | ||
688 | - struXMLCard.dwCmdLen = stringRequestCard.byString.length; | ||
689 | - struXMLCard.write(); | ||
690 | - | ||
691 | - HCEHomeCMS.NET_DVR_STRING_POINTER struConfigXMLCard = new HCEHomeCMS.NET_DVR_STRING_POINTER(); | ||
692 | - struConfigXMLCard.read(); | ||
693 | - struConfigXMLCard.byString = strConfigXMLCard.getBytes(); | ||
694 | - struConfigXMLCard.write(); | ||
695 | - | ||
696 | - struXMLCard.pInBuf = struConfigXMLCard.getPointer(); | ||
697 | - struXMLCard.dwInSize = struConfigXMLCard.byString.length; | ||
698 | - struXMLCard.dwRecvTimeOut = 5000; | ||
699 | - struXMLCard.dwSendTimeOut = 5000; | ||
700 | - struXMLCard.write(); | ||
701 | - | ||
702 | - HCEHomeCMS.NET_DVR_STRING_POINTER stringOutCard = new HCEHomeCMS.NET_DVR_STRING_POINTER(); | ||
703 | - stringOutCard.write(); | ||
704 | - struXMLCard.pOutBuf = stringOutCard.getPointer(); | ||
705 | - struXMLCard.dwOutSize = stringOutCard.size(); | ||
706 | - struXMLCard.write(); | ||
707 | - | ||
708 | - HCEHomeCMS.NET_DVR_STRING_POINTER stringStatusCard = new HCEHomeCMS.NET_DVR_STRING_POINTER(); | ||
709 | - stringStatusCard.write(); | ||
710 | - struXMLCard.pStatusBuf = stringStatusCard.getPointer(); | ||
711 | - struXMLCard.dwStatusSize = stringStatusCard.size(); | ||
712 | - struXMLCard.write(); | ||
713 | - | ||
714 | - int i = struXMLCard.size(); | ||
715 | - if (!hCEhomeCMS.NET_ECMS_XMLConfig(map.get(clint_id), struXMLCard, struXMLCard.size())) { | ||
716 | - int iErr = hCEhomeCMS.NET_ECMS_GetLastError(); | ||
717 | - System.err.println(content + "失败:" + iErr); | ||
718 | - sendRecoderUtils.sendFail(sendRecordDao, card, "", clint_id, userDao, content + "失败:" + iErr, userType); | ||
719 | - } else { | ||
720 | - System.out.println(content + "成功"); | ||
721 | - } | ||
722 | - }catch (Exception e){ | 712 | + HCEHomeCMS.NET_EHOME_XML_CFG struXMLCard = new HCEHomeCMS.NET_EHOME_XML_CFG(); |
713 | + | ||
714 | + HCEHomeCMS.NET_DVR_STRING_POINTER stringRequestCard = new HCEHomeCMS.NET_DVR_STRING_POINTER(); | ||
715 | + stringRequestCard.read(); | ||
716 | + String strRequestCard = "SETDEVICECONFIG"; | ||
717 | + stringRequestCard.byString = strRequestCard.getBytes(); | ||
718 | + stringRequestCard.write(); | ||
719 | + | ||
720 | + struXMLCard.pCmdBuf = stringRequestCard.getPointer(); | ||
721 | + struXMLCard.dwCmdLen = stringRequestCard.byString.length; | ||
722 | + struXMLCard.write(); | ||
723 | + | ||
724 | + HCEHomeCMS.NET_DVR_STRING_POINTER struConfigXMLCard = new HCEHomeCMS.NET_DVR_STRING_POINTER(); | ||
725 | + struConfigXMLCard.read(); | ||
726 | + struConfigXMLCard.byString = strConfigXMLCard.getBytes(); | ||
727 | + struConfigXMLCard.write(); | ||
728 | + | ||
729 | + struXMLCard.pInBuf = struConfigXMLCard.getPointer(); | ||
730 | + struXMLCard.dwInSize = struConfigXMLCard.byString.length; | ||
731 | + struXMLCard.dwRecvTimeOut = 5000; | ||
732 | + struXMLCard.dwSendTimeOut = 5000; | ||
733 | + struXMLCard.write(); | ||
734 | + | ||
735 | + HCEHomeCMS.NET_DVR_STRING_POINTER stringOutCard = new HCEHomeCMS.NET_DVR_STRING_POINTER(); | ||
736 | + stringOutCard.write(); | ||
737 | + struXMLCard.pOutBuf = stringOutCard.getPointer(); | ||
738 | + struXMLCard.dwOutSize = stringOutCard.size(); | ||
739 | + struXMLCard.write(); | ||
740 | + | ||
741 | + HCEHomeCMS.NET_DVR_STRING_POINTER stringStatusCard = new HCEHomeCMS.NET_DVR_STRING_POINTER(); | ||
742 | + stringStatusCard.write(); | ||
743 | + struXMLCard.pStatusBuf = stringStatusCard.getPointer(); | ||
744 | + struXMLCard.dwStatusSize = stringStatusCard.size(); | ||
745 | + struXMLCard.write(); | ||
746 | + | ||
747 | + int i = struXMLCard.size(); | ||
748 | + if (!hCEhomeCMS.NET_ECMS_XMLConfig(map.get(clint_id), struXMLCard, struXMLCard.size())) { | ||
749 | + int iErr = hCEhomeCMS.NET_ECMS_GetLastError(); | ||
750 | + System.err.println(content + "失败:" + iErr); | ||
751 | + sendRecoderUtils.sendFail(sendRecordDao, card, "", clint_id, userDao, content + "失败:" + iErr, userType); | ||
752 | + } else { | ||
753 | + System.out.println(content + "成功"); | ||
754 | + } | ||
755 | + } catch (Exception e) { | ||
723 | e.printStackTrace(); | 756 | e.printStackTrace(); |
724 | } | 757 | } |
725 | } | 758 | } |
cloud/haikangface/src/main/java/com/sincere/haikangface/async/SendUserAsync.java
1 | package com.sincere.haikangface.async; | 1 | package com.sincere.haikangface.async; |
2 | 2 | ||
3 | 3 | ||
4 | +import com.alibaba.fastjson.JSON; | ||
4 | import com.sincere.haikangface.CMSServer; | 5 | import com.sincere.haikangface.CMSServer; |
6 | +import com.sincere.haikangface.bean.StudentBean; | ||
7 | +import com.sincere.haikangface.bean.TeacherBean; | ||
5 | import com.sincere.haikangface.bean.face.PermissionBean; | 8 | import com.sincere.haikangface.bean.face.PermissionBean; |
6 | import com.sincere.haikangface.bean.face.WeekDay; | 9 | import com.sincere.haikangface.bean.face.WeekDay; |
7 | import com.sincere.haikangface.bean.face.WeekTime; | 10 | import com.sincere.haikangface.bean.face.WeekTime; |
@@ -10,18 +13,11 @@ import com.sincere.haikangface.dao.UserDao; | @@ -10,18 +13,11 @@ import com.sincere.haikangface.dao.UserDao; | ||
10 | import com.sincere.haikangface.utils.*; | 13 | import com.sincere.haikangface.utils.*; |
11 | import com.sincere.haikangface.xiananDao.SendRecordDao; | 14 | import com.sincere.haikangface.xiananDao.SendRecordDao; |
12 | import lombok.extern.slf4j.Slf4j; | 15 | import lombok.extern.slf4j.Slf4j; |
13 | -import org.apache.poi.ss.formula.functions.WeekdayFunc; | ||
14 | -import org.json.JSONArray; | ||
15 | -import org.json.JSONObject; | ||
16 | import org.springframework.beans.factory.annotation.Autowired; | 16 | import org.springframework.beans.factory.annotation.Autowired; |
17 | import org.springframework.scheduling.annotation.Async; | 17 | import org.springframework.scheduling.annotation.Async; |
18 | import org.springframework.stereotype.Component; | 18 | import org.springframework.stereotype.Component; |
19 | -import org.springframework.web.bind.annotation.RequestParam; | 19 | +import org.springframework.util.StringUtils; |
20 | 20 | ||
21 | -import javax.imageio.stream.FileImageInputStream; | ||
22 | -import java.io.*; | ||
23 | -import java.net.HttpURLConnection; | ||
24 | -import java.net.URL; | ||
25 | import java.util.*; | 21 | import java.util.*; |
26 | 22 | ||
27 | @Component | 23 | @Component |
@@ -53,13 +49,30 @@ public class SendUserAsync { | @@ -53,13 +49,30 @@ public class SendUserAsync { | ||
53 | //根据设备是5603 还是新设备 | 49 | //根据设备是5603 还是新设备 |
54 | String employeeNo = ""; | 50 | String employeeNo = ""; |
55 | if (deviceId.contains("ymzx") || deviceId.contains("5607") || deviceId.contains("5671") || deviceId.contains("5604")) { | 51 | if (deviceId.contains("ymzx") || deviceId.contains("5607") || deviceId.contains("5671") || deviceId.contains("5604")) { |
56 | - employeeNo = System.currentTimeMillis() + ""; | ||
57 | - cmsServer.SetCardWeekPlan(deviceId, card, userType, HKXmlUtils.getInstance().SetCardTemplate(), "设置卡权限计划模板"); | ||
58 | - cmsServer.SetCardWeekPlan(deviceId, card, userType, HKXmlUtils.getInstance().SetCardWeekPlan(), "卡权限周计划"); | ||
59 | - for (int i = 0; i < 7; i++) { | ||
60 | - cmsServer.SetCardWeekPlan(deviceId, card, userType, HKXmlUtils.getInstance().SetCardWeekPlanTime(HKXmlUtils.getInstance().SetCardWeekPlanTimes("00:00:00", "23:00:00"), "" + i), "设置卡权限周计划时间"); | 52 | + long lon = Long.parseLong(card); |
53 | + //十六进制卡号 | ||
54 | + String resultCard = getCard(String.format("%08x", lon)).toUpperCase(); | ||
55 | + String time = System.currentTimeMillis() + ""; | ||
56 | + if (userType.equals("1")) { | ||
57 | + StudentBean studentBean = userDao.getTeacherWithCard(resultCard); | ||
58 | + log.error("studentBean:{}", studentBean == null ? "-------" : studentBean.toString()); | ||
59 | + if (null == studentBean) { | ||
60 | + employeeNo = time.substring(time.length() - 6, time.length()); | ||
61 | + } else | ||
62 | + employeeNo = studentBean.getTeacher_id(); | ||
63 | + } else if (userType.equals("2")) { | ||
64 | + StudentBean studentBean = userDao.getStudentWithCard(resultCard); | ||
65 | + if (null == studentBean) { | ||
66 | + employeeNo = time.substring(time.length() - 6, time.length()); | ||
67 | + } else | ||
68 | + employeeNo = studentBean.getStudent_id(); | ||
61 | } | 69 | } |
62 | - cmsServer.SetCardWeekPlan(deviceId, card, userType, HKXmlUtils.getInstance().SetCardRightCfg(card), "设置卡权限"); | 70 | +// cmsServer.SetCardWeekPlan(deviceId, card, userType, HKXmlUtils.getInstance().SetCardTemplate(), "设置卡权限计划模板"); |
71 | +// cmsServer.SetCardWeekPlan(deviceId, card, userType, HKXmlUtils.getInstance().SetCardWeekPlan(), "卡权限周计划"); | ||
72 | +// for (int i = 0; i < 7; i++) { | ||
73 | +// cmsServer.SetCardWeekPlan(deviceId, card, userType, HKXmlUtils.getInstance().SetCardWeekPlanTime(HKXmlUtils.getInstance().SetCardWeekPlanTimes("00:00:00", "23:00:00"), "" + i), "设置卡权限周计划时间"); | ||
74 | +// } | ||
75 | +// cmsServer.SetCardWeekPlan(deviceId, card, userType, HKXmlUtils.getInstance().SetCardRightCfg(card), "设置卡权限"); | ||
63 | } | 76 | } |
64 | 77 | ||
65 | boolean result = cmsServer.createImgPath(srcFile, picUrl, card, startTime, endTime, validTimeEnabled, name, deviceId, userType, employeeNo); | 78 | boolean result = cmsServer.createImgPath(srcFile, picUrl, card, startTime, endTime, validTimeEnabled, name, deviceId, userType, employeeNo); |
@@ -72,52 +85,202 @@ public class SendUserAsync { | @@ -72,52 +85,202 @@ public class SendUserAsync { | ||
72 | 85 | ||
73 | /** | 86 | /** |
74 | * 下发权限 | 87 | * 下发权限 |
88 | + * | ||
75 | * @param permissionBean | 89 | * @param permissionBean |
90 | + * @param i 1:不需要重新下发,0需要重新下发 | ||
76 | */ | 91 | */ |
77 | - public boolean sendPermiss(PermissionBean permissionBean) { | 92 | + @Async("taskExecutor") |
93 | + public boolean sendPermiss(PermissionBean permissionBean, int i) { | ||
94 | + | ||
95 | + String userType = permissionBean.getUserType(); | ||
96 | + | ||
97 | + List<WeekDay> weekDays = permissionBean.getWeekDays(); | ||
98 | + | ||
99 | + Map<Integer, List<WeekTime>> map = new HashMap<>(); | ||
100 | + | ||
101 | + String schoolId = permissionBean.getSchoolId(); | ||
102 | + | ||
103 | + for (WeekDay weekDay : | ||
104 | + weekDays) { | ||
105 | + if (weekDay.getDeviceIds() != null && weekDay.getDeviceIds().size() > 0) { | ||
106 | + permissionBean.setDeviceIds(weekDay.getDeviceIds()); | ||
107 | + } | ||
108 | + List<String> deviceIds = permissionBean.getDeviceIds(); | ||
109 | + List<String> cardNumList = new ArrayList<>(); | ||
110 | + String sex = weekDay.getSex(); | ||
111 | + if (userType.equals("1")) { | ||
112 | + List<String> cardList = getUserCard(weekDay.getUserIds(), 1); | ||
113 | + cardNumList.addAll(cardList); | ||
114 | + } else if (userType.equals("2")) { | ||
115 | + cardNumList = getCards(sex, userType, schoolId); | ||
116 | + } | ||
117 | + //整理周和时间段 | ||
118 | + initWeedayAndTimes(weekDay, map); | ||
119 | + senPsermiss(permissionBean, map, deviceIds, cardNumList, i); | ||
120 | + } | ||
121 | + log.error("map{}", JSON.toJSONString(map)); | ||
122 | + return true; | ||
123 | + } | ||
124 | + | ||
125 | + private List<String> getUserCard(String userIds, int userType) { | ||
126 | + List<String> cards = new ArrayList<>(); | ||
127 | + try { | ||
128 | + | ||
129 | + String[] userIdsStr = userIds.split(","); | ||
130 | + | ||
131 | + for (String userId : | ||
132 | + userIdsStr) { | ||
133 | + TeacherBean teacherBean = null; | ||
134 | + if (userType == 1) {//教师 | ||
135 | + teacherBean = userDao.getTeacherWithUserId(userId); | ||
136 | + if (null != teacherBean) { | ||
137 | + String card = teacherBean.getTeacer_num(); | ||
138 | + if (!StringUtils.isEmpty(card)) { | ||
139 | + cards.add(card); | ||
140 | + } | ||
141 | + } else { | ||
142 | + log.error("教师用户不存在"); | ||
143 | + } | ||
144 | + } | ||
145 | + } | ||
146 | + | ||
147 | + } catch (Exception e) { | ||
148 | + e.printStackTrace(); | ||
149 | + } | ||
150 | + | ||
151 | + return cards; | ||
152 | + } | ||
153 | + | ||
154 | + /** | ||
155 | + * 把卡号和权限下发到对应的设备 | ||
156 | + * | ||
157 | + * @param permissionBean | ||
158 | + * @param map | ||
159 | + * @param deviceIds | ||
160 | + * @param cardNumList | ||
161 | + * @param i | ||
162 | + * @return | ||
163 | + */ | ||
164 | + private boolean senPsermiss(PermissionBean permissionBean, Map<Integer, List<WeekTime>> map, List<String> deviceIds, List<String> cardNumList, int i) { | ||
165 | + String userType = permissionBean.getUserType(); | ||
166 | + | ||
167 | + if (deviceIds == null || deviceIds.size() == 0) { | ||
168 | + log.error("设备不存在"); | ||
169 | + return false; | ||
170 | + } | ||
78 | 171 | ||
79 | - String cardNum = permissionBean.getCardNum(); | ||
80 | - List<String> deviceIds = permissionBean.getDeviceIds(); | ||
81 | - String userType = permissionBean.getUserType(); | ||
82 | - List<WeekDay> weekDays = permissionBean.getWeekDays(); | 172 | + if (null == cardNumList || cardNumList.size() == 0) { |
173 | + log.error("卡号为空"); | ||
174 | + return false; | ||
175 | + } | ||
83 | 176 | ||
84 | for (String deviceId : | 177 | for (String deviceId : |
85 | deviceIds) { | 178 | deviceIds) { |
86 | - if (!cmsServer.getIsDeviceOnline(deviceId)){//设备在线 | ||
87 | - cmsServer.SetCardWeekPlan(deviceId, cardNum, userType, HKXmlUtils.getInstance().SetCardTemplate(), "设置卡权限计划模板"); | ||
88 | - cmsServer.SetCardWeekPlan(deviceId, cardNum, userType, HKXmlUtils.getInstance().SetCardWeekPlan(), "卡权限周计划"); | 179 | + if (cmsServer.getIsDeviceOnline(deviceId)) {//设备在线 |
180 | + | ||
181 | + for (String cardNum : | ||
182 | + cardNumList) { | ||
89 | 183 | ||
90 | - for (WeekDay weekDay: | ||
91 | - weekDays) { | 184 | + if (!StringUtils.isEmpty(cardNum)) { |
185 | + cardNum = Long.parseLong(getCard(cardNum), 16) + ""; | ||
92 | 186 | ||
93 | - List<WeekTime> weekTimes = weekDay.getWeekTimes(); | ||
94 | - int weekdayIndex = weekDay.getWeekDay(); | 187 | + cmsServer.SetCardWeekPlan(deviceId, cardNum, userType, HKXmlUtils.getInstance().SetCardTemplate(), "设置卡权限计划模板"); |
188 | + cmsServer.SetCardWeekPlan(deviceId, cardNum, userType, HKXmlUtils.getInstance().SetCardWeekPlan(), "卡权限周计划"); | ||
95 | 189 | ||
96 | - StringBuffer stringBuffer = new StringBuffer();//添加时间集 | 190 | + for (Map.Entry<Integer, List<WeekTime>> weeKdayMap : |
191 | + map.entrySet()) { | ||
97 | 192 | ||
98 | - for (WeekTime weetTime : | ||
99 | - weekTimes) { | 193 | + int week = weeKdayMap.getKey(); |
194 | + List<WeekTime> weekTimes = weeKdayMap.getValue(); | ||
100 | 195 | ||
101 | - String weekPlanTimes = HKXmlUtils.getInstance().SetCardWeekPlanTimes(weetTime.getStartTime(),weetTime.getEndTime()); | ||
102 | - log.error("weekPlanTimes:{}",weekPlanTimes); | ||
103 | - stringBuffer.append(weekPlanTimes); | 196 | + StringBuffer stringBuffer = new StringBuffer();//添加时间集 |
197 | + for (WeekTime weekTime : | ||
198 | + weekTimes) { | ||
199 | + String weekPlanTimes = HKXmlUtils.getInstance().SetCardWeekPlanTimes(weekTime.getStartTime(), weekTime.getEndTime()); | ||
200 | +// log.error("weekPlanTimes:{}", weekPlanTimes); | ||
201 | + stringBuffer.append(weekPlanTimes); | ||
202 | + } | ||
104 | 203 | ||
204 | + String weekPlanTime = HKXmlUtils.getInstance().SetCardWeekPlanTime(stringBuffer.toString(), "" + week); | ||
205 | + String serCardRightCfg = HKXmlUtils.getInstance().SetCardRightCfg(cardNum); | ||
206 | +// log.error("serCardRightCfg:{}", serCardRightCfg); | ||
207 | + FileUtils.getInstance().writeLogs(weekPlanTime,"设置卡权限周计划时间.txt"); | ||
208 | + cmsServer.SetCardWeekPlan(deviceId, cardNum, userType, weekPlanTime, "设置卡权限周计划时间"); | ||
209 | + cmsServer.SetCardWeekPlan(deviceId, cardNum, userType, serCardRightCfg, "设置卡权限"); | ||
210 | + | ||
211 | + } | ||
105 | } | 212 | } |
106 | - String weekPlanTime = HKXmlUtils.getInstance().SetCardWeekPlanTime(stringBuffer.toString(), "" + weekdayIndex); | ||
107 | - log.error("weekPlanTime:{}",weekPlanTime); | ||
108 | - cmsServer.SetCardWeekPlan(deviceId, cardNum, userType, weekPlanTime, "设置卡权限周计划时间"); | ||
109 | - cmsServer.SetCardWeekPlan(deviceId, cardNum, userType, HKXmlUtils.getInstance().SetCardRightCfg(cardNum), "设置卡权限"); | 213 | + |
110 | } | 214 | } |
111 | - }else {//设备不在线 | ||
112 | - log.error("deviceId:{}",deviceId+"不在线"); | 215 | + } else {//设备不在线 |
216 | + if (i == 0) | ||
217 | + HttpUtil.sendPermission2HK(permissionBean); | ||
218 | + log.error("deviceId:{}", deviceId + "不在线"); | ||
113 | } | 219 | } |
114 | 220 | ||
115 | } | 221 | } |
116 | - | ||
117 | return true; | 222 | return true; |
118 | } | 223 | } |
119 | 224 | ||
120 | 225 | ||
226 | + private List<String> getCards(String sex, String userType, String schoolId) { | ||
227 | + | ||
228 | + List<String> cardList = new ArrayList<>(); | ||
229 | + | ||
230 | + switch (userType) { | ||
231 | + case "2"://学生 | ||
232 | + String[] sexs = sex.split(","); | ||
233 | + List<String> sexList = new ArrayList<>(); | ||
234 | + for (int i = 0; i < sexs.length; i++) { | ||
235 | + sexList.add(sexs[i]); | ||
236 | + } | ||
237 | + cardList = userDao.getStudentWiSidAndSex(schoolId, sexList); | ||
238 | + break; | ||
239 | + } | ||
240 | + | ||
241 | + return cardList; | ||
242 | + } | ||
243 | + | ||
244 | + | ||
245 | + private void initWeedayAndTimes(WeekDay weekDay, Map<Integer, List<WeekTime>> map) { | ||
246 | + | ||
247 | + String weekDayStr = weekDay.getWeekDay(); | ||
248 | + String[] weekDays = weekDayStr.split(","); | ||
249 | + | ||
250 | + List<WeekTime> weekTimes = weekDay.getWeekTimes(); | ||
251 | + | ||
252 | + for (int i = 0; i < weekDays.length; i++) { | ||
253 | + int weekDayIndex = Integer.parseInt(weekDays[i]); | ||
254 | + if (map.containsKey(weekDayIndex)) {//周已经有时间段 | ||
255 | + List<WeekTime> weekTimeList = map.get(weekDayIndex); | ||
256 | + for (WeekTime wee : | ||
257 | + weekTimes) { | ||
258 | + weekTimeList.add(wee); | ||
259 | + } | ||
260 | + map.put(weekDayIndex, weekTimeList); | ||
261 | + } else { | ||
262 | + List<WeekTime> weekTimes1 = new ArrayList<>(); | ||
263 | + weekTimes1.addAll(weekTimes); | ||
264 | + map.put(weekDayIndex, weekTimes1); | ||
265 | + } | ||
266 | + } | ||
267 | + | ||
268 | + } | ||
269 | + | ||
270 | + private String getCard(String card) { | ||
271 | + | ||
272 | + if (card.length() == 8) { | ||
273 | + int length = card.length(); | ||
274 | + String result = card.substring(length - 2, length) + card.substring(length - 4, length - 2) + card.substring(length - 6, length - 4) | ||
275 | + + card.substring(length - 8, length - 6); | ||
276 | + return result; | ||
277 | + | ||
278 | + } else { | ||
279 | + System.out.println("卡号位数不对:" + card); | ||
280 | + return ""; | ||
281 | + } | ||
282 | + | ||
283 | + } | ||
121 | 284 | ||
122 | /** | 285 | /** |
123 | * 调用传图片接口 | 286 | * 调用传图片接口 |
cloud/haikangface/src/main/java/com/sincere/haikangface/bean/TeacherBean.java
0 → 100644
@@ -0,0 +1,36 @@ | @@ -0,0 +1,36 @@ | ||
1 | +package com.sincere.haikangface.bean; | ||
2 | + | ||
3 | +import java.io.Serializable; | ||
4 | + | ||
5 | +public class TeacherBean implements Serializable { | ||
6 | + | ||
7 | + private String name; | ||
8 | + | ||
9 | + private String teacher_num; | ||
10 | + | ||
11 | + private String num; | ||
12 | + | ||
13 | + public String getNum() { | ||
14 | + return num; | ||
15 | + } | ||
16 | + | ||
17 | + public void setNum(String num) { | ||
18 | + this.num = num; | ||
19 | + } | ||
20 | + | ||
21 | + public String getName() { | ||
22 | + return name; | ||
23 | + } | ||
24 | + | ||
25 | + public void setName(String name) { | ||
26 | + this.name = name; | ||
27 | + } | ||
28 | + | ||
29 | + public String getTeacer_num() { | ||
30 | + return teacher_num; | ||
31 | + } | ||
32 | + | ||
33 | + public void setTeacer_num(String teacer_num) { | ||
34 | + this.teacher_num = teacer_num; | ||
35 | + } | ||
36 | +} |
cloud/haikangface/src/main/java/com/sincere/haikangface/bean/face/PermissionBean.java
1 | package com.sincere.haikangface.bean.face; | 1 | package com.sincere.haikangface.bean.face; |
2 | 2 | ||
3 | +import io.swagger.annotations.ApiModelProperty; | ||
4 | + | ||
3 | import java.io.Serializable; | 5 | import java.io.Serializable; |
4 | import java.util.List; | 6 | import java.util.List; |
5 | 7 | ||
@@ -7,10 +9,13 @@ public class PermissionBean implements Serializable { | @@ -7,10 +9,13 @@ public class PermissionBean implements Serializable { | ||
7 | 9 | ||
8 | private List<String> deviceIds; | 10 | private List<String> deviceIds; |
9 | 11 | ||
10 | - private String cardNum; | 12 | + private String schoolId; |
11 | 13 | ||
12 | private String userType;//学生类型 | 14 | private String userType;//学生类型 |
13 | 15 | ||
16 | +// @ApiModelProperty("用逗号隔开,1:男,2:女") | ||
17 | +// private String sex; | ||
18 | + | ||
14 | private List<WeekDay> weekDays; | 19 | private List<WeekDay> weekDays; |
15 | 20 | ||
16 | public List<String> getDeviceIds() { | 21 | public List<String> getDeviceIds() { |
@@ -21,12 +26,12 @@ public class PermissionBean implements Serializable { | @@ -21,12 +26,12 @@ public class PermissionBean implements Serializable { | ||
21 | this.deviceIds = deviceIds; | 26 | this.deviceIds = deviceIds; |
22 | } | 27 | } |
23 | 28 | ||
24 | - public String getCardNum() { | ||
25 | - return cardNum; | 29 | + public String getSchoolId() { |
30 | + return schoolId; | ||
26 | } | 31 | } |
27 | 32 | ||
28 | - public void setCardNum(String cardNum) { | ||
29 | - this.cardNum = cardNum; | 33 | + public void setSchoolId(String schoolId) { |
34 | + this.schoolId = schoolId; | ||
30 | } | 35 | } |
31 | 36 | ||
32 | public String getUserType() { | 37 | public String getUserType() { |
cloud/haikangface/src/main/java/com/sincere/haikangface/bean/face/UserAndPermission.java
0 → 100644
@@ -0,0 +1,38 @@ | @@ -0,0 +1,38 @@ | ||
1 | +package com.sincere.haikangface.bean.face; | ||
2 | + | ||
3 | +import java.io.Serializable; | ||
4 | +import java.util.List; | ||
5 | + | ||
6 | +public class UserAndPermission implements Serializable { | ||
7 | + | ||
8 | + private int userType; | ||
9 | + | ||
10 | + private List<WeekDay> weekDays; | ||
11 | + | ||
12 | + private String schoolId; | ||
13 | + | ||
14 | + | ||
15 | + public int getUserType() { | ||
16 | + return userType; | ||
17 | + } | ||
18 | + | ||
19 | + public void setUserType(int userType) { | ||
20 | + this.userType = userType; | ||
21 | + } | ||
22 | + | ||
23 | + public List<WeekDay> getWeekDays() { | ||
24 | + return weekDays; | ||
25 | + } | ||
26 | + | ||
27 | + public void setWeekDays(List<WeekDay> weekDays) { | ||
28 | + this.weekDays = weekDays; | ||
29 | + } | ||
30 | + | ||
31 | + public String getSchoolId() { | ||
32 | + return schoolId; | ||
33 | + } | ||
34 | + | ||
35 | + public void setSchoolId(String schoolId) { | ||
36 | + this.schoolId = schoolId; | ||
37 | + } | ||
38 | +} |
cloud/haikangface/src/main/java/com/sincere/haikangface/bean/face/WeekDay.java
1 | package com.sincere.haikangface.bean.face; | 1 | package com.sincere.haikangface.bean.face; |
2 | 2 | ||
3 | +import io.swagger.annotations.ApiModelProperty; | ||
4 | + | ||
3 | import java.io.Serializable; | 5 | import java.io.Serializable; |
4 | import java.util.List; | 6 | import java.util.List; |
5 | 7 | ||
6 | public class WeekDay implements Serializable { | 8 | public class WeekDay implements Serializable { |
7 | 9 | ||
10 | + @ApiModelProperty("用逗号隔开,1:男,2:女") | ||
11 | + private String sex; | ||
8 | 12 | ||
9 | - private int weekDay; | 13 | + @ApiModelProperty("用逗号隔开,0-6表示周日到周六") |
14 | + private String weekDay; | ||
10 | 15 | ||
11 | private List<WeekTime> weekTimes; | 16 | private List<WeekTime> weekTimes; |
12 | 17 | ||
13 | - public int getWeekDay() { | 18 | + @ApiModelProperty("教师点名专用") |
19 | + private String userIds; | ||
20 | + | ||
21 | + private List<String> deviceIds; | ||
22 | + public List<String> getDeviceIds() { | ||
23 | + return deviceIds; | ||
24 | + } | ||
25 | + | ||
26 | + public void setDeviceIds(List<String> deviceIds) { | ||
27 | + this.deviceIds = deviceIds; | ||
28 | + } | ||
29 | + | ||
30 | + public String getUserIds() { | ||
31 | + return userIds; | ||
32 | + } | ||
33 | + | ||
34 | + public void setUserIds(String userIds) { | ||
35 | + this.userIds = userIds; | ||
36 | + } | ||
37 | + | ||
38 | + public String getWeekDay() { | ||
14 | return weekDay; | 39 | return weekDay; |
15 | } | 40 | } |
16 | 41 | ||
17 | - public void setWeekDay(int weekDay) { | 42 | + public void setWeekDay(String weekDay) { |
18 | this.weekDay = weekDay; | 43 | this.weekDay = weekDay; |
19 | } | 44 | } |
20 | 45 | ||
@@ -25,4 +50,12 @@ public class WeekDay implements Serializable { | @@ -25,4 +50,12 @@ public class WeekDay implements Serializable { | ||
25 | public void setWeekTimes(List<WeekTime> weekTimes) { | 50 | public void setWeekTimes(List<WeekTime> weekTimes) { |
26 | this.weekTimes = weekTimes; | 51 | this.weekTimes = weekTimes; |
27 | } | 52 | } |
53 | + | ||
54 | + public String getSex() { | ||
55 | + return sex; | ||
56 | + } | ||
57 | + | ||
58 | + public void setSex(String sex) { | ||
59 | + this.sex = sex; | ||
60 | + } | ||
28 | } | 61 | } |
cloud/haikangface/src/main/java/com/sincere/haikangface/control/FileControl.java
1 | package com.sincere.haikangface.control; | 1 | package com.sincere.haikangface.control; |
2 | 2 | ||
3 | +import com.alibaba.fastjson.JSON; | ||
3 | import com.sincere.haikangface.CMSServer; | 4 | import com.sincere.haikangface.CMSServer; |
4 | import com.sincere.haikangface.async.SendUserAsync; | 5 | import com.sincere.haikangface.async.SendUserAsync; |
5 | import com.sincere.haikangface.bean.Images2Ddevices; | 6 | import com.sincere.haikangface.bean.Images2Ddevices; |
6 | import com.sincere.haikangface.bean.StudentBean; | 7 | import com.sincere.haikangface.bean.StudentBean; |
7 | import com.sincere.haikangface.bean.UploadBean; | 8 | import com.sincere.haikangface.bean.UploadBean; |
9 | +import com.sincere.haikangface.bean.face.PermissionBean; | ||
8 | import com.sincere.haikangface.dao.UserDao; | 10 | import com.sincere.haikangface.dao.UserDao; |
9 | import com.sincere.haikangface.utils.CompressPic; | 11 | import com.sincere.haikangface.utils.CompressPic; |
10 | import com.sincere.haikangface.utils.FileUtils; | 12 | import com.sincere.haikangface.utils.FileUtils; |
@@ -12,9 +14,11 @@ import com.sincere.haikangface.utils.SendRecoderUtils; | @@ -12,9 +14,11 @@ import com.sincere.haikangface.utils.SendRecoderUtils; | ||
12 | import com.sincere.haikangface.xiananDao.SendRecordDao; | 14 | import com.sincere.haikangface.xiananDao.SendRecordDao; |
13 | import io.swagger.annotations.Api; | 15 | import io.swagger.annotations.Api; |
14 | import io.swagger.annotations.ApiOperation; | 16 | import io.swagger.annotations.ApiOperation; |
17 | +import lombok.extern.slf4j.Slf4j; | ||
15 | import org.slf4j.Logger; | 18 | import org.slf4j.Logger; |
16 | import org.slf4j.LoggerFactory; | 19 | import org.slf4j.LoggerFactory; |
17 | import org.springframework.beans.factory.annotation.Autowired; | 20 | import org.springframework.beans.factory.annotation.Autowired; |
21 | +import org.springframework.util.StringUtils; | ||
18 | import org.springframework.web.bind.annotation.*; | 22 | import org.springframework.web.bind.annotation.*; |
19 | import org.springframework.web.multipart.MultipartFile; | 23 | import org.springframework.web.multipart.MultipartFile; |
20 | 24 | ||
@@ -26,6 +30,7 @@ import java.util.*; | @@ -26,6 +30,7 @@ import java.util.*; | ||
26 | @RestController | 30 | @RestController |
27 | @Api("文件管理器") | 31 | @Api("文件管理器") |
28 | @RequestMapping("file/*") | 32 | @RequestMapping("file/*") |
33 | +@Slf4j | ||
29 | public class FileControl { | 34 | public class FileControl { |
30 | 35 | ||
31 | @Autowired | 36 | @Autowired |
@@ -44,6 +49,16 @@ public class FileControl { | @@ -44,6 +49,16 @@ public class FileControl { | ||
44 | 49 | ||
45 | Queue<UploadBean> uploadBeanQueue = new LinkedList<>(); | 50 | Queue<UploadBean> uploadBeanQueue = new LinkedList<>(); |
46 | 51 | ||
52 | + @RequestMapping(value = "sendPermiss", method = RequestMethod.POST) | ||
53 | + @ApiOperation("下发权限给设备") | ||
54 | + public boolean sendPermiss(@RequestBody PermissionBean permissionBean) { | ||
55 | + log.error("permissionBean:{}", JSON.toJSONString(permissionBean)); | ||
56 | + if (!StringUtils.isEmpty(permissionBean)) { | ||
57 | + return sendUserAsync.sendPermiss(permissionBean,1); | ||
58 | + } | ||
59 | + return false; | ||
60 | + } | ||
61 | + | ||
47 | @RequestMapping(method = RequestMethod.POST, value = "uploadImg") | 62 | @RequestMapping(method = RequestMethod.POST, value = "uploadImg") |
48 | public String uploadImg(@RequestParam("file") MultipartFile file, @RequestParam("card") String card | 63 | public String uploadImg(@RequestParam("file") MultipartFile file, @RequestParam("card") String card |
49 | , @RequestParam("name") String name, @RequestParam("deviceId") String deviceId, @RequestParam("startTime") String startTime, | 64 | , @RequestParam("name") String name, @RequestParam("deviceId") String deviceId, @RequestParam("startTime") String startTime, |
cloud/haikangface/src/main/java/com/sincere/haikangface/control/UserControl.java
@@ -2,13 +2,16 @@ package com.sincere.haikangface.control; | @@ -2,13 +2,16 @@ package com.sincere.haikangface.control; | ||
2 | 2 | ||
3 | //import com.sincere.common.dto.smartCampus.SZ_AttendanceDto; | 3 | //import com.sincere.common.dto.smartCampus.SZ_AttendanceDto; |
4 | 4 | ||
5 | +import com.alibaba.fastjson.JSON; | ||
5 | import com.sincere.haikangface.bean.Images2Ddevices; | 6 | import com.sincere.haikangface.bean.Images2Ddevices; |
6 | //import com.sincere.haikangface.utils.BaiduApiUtiols; | 7 | //import com.sincere.haikangface.utils.BaiduApiUtiols; |
7 | import com.sincere.haikangface.CMSServer; | 8 | import com.sincere.haikangface.CMSServer; |
8 | import com.sincere.haikangface.async.SendUserAsync; | 9 | import com.sincere.haikangface.async.SendUserAsync; |
9 | import com.sincere.haikangface.bean.StudentBean; | 10 | import com.sincere.haikangface.bean.StudentBean; |
10 | import com.sincere.haikangface.bean.StudentInfo; | 11 | import com.sincere.haikangface.bean.StudentInfo; |
12 | +import com.sincere.haikangface.bean.TeacherBean; | ||
11 | import com.sincere.haikangface.bean.face.PermissionBean; | 13 | import com.sincere.haikangface.bean.face.PermissionBean; |
14 | +import com.sincere.haikangface.bean.face.UserAndPermission; | ||
12 | import com.sincere.haikangface.dao.UserDao; | 15 | import com.sincere.haikangface.dao.UserDao; |
13 | import com.sincere.haikangface.fegin.HaikangfaceFegin; | 16 | import com.sincere.haikangface.fegin.HaikangfaceFegin; |
14 | import com.sincere.haikangface.utils.*; | 17 | import com.sincere.haikangface.utils.*; |
@@ -17,16 +20,20 @@ import io.swagger.annotations.Api; | @@ -17,16 +20,20 @@ import io.swagger.annotations.Api; | ||
17 | import io.swagger.annotations.ApiImplicitParam; | 20 | import io.swagger.annotations.ApiImplicitParam; |
18 | import io.swagger.annotations.ApiImplicitParams; | 21 | import io.swagger.annotations.ApiImplicitParams; |
19 | import io.swagger.annotations.ApiOperation; | 22 | import io.swagger.annotations.ApiOperation; |
23 | +import lombok.extern.slf4j.Slf4j; | ||
24 | +import org.apache.poi.util.StringUtil; | ||
20 | import org.slf4j.Logger; | 25 | import org.slf4j.Logger; |
21 | import org.slf4j.LoggerFactory; | 26 | import org.slf4j.LoggerFactory; |
22 | import org.springframework.beans.factory.annotation.Autowired; | 27 | import org.springframework.beans.factory.annotation.Autowired; |
23 | import org.springframework.http.MediaType; | 28 | import org.springframework.http.MediaType; |
24 | import org.springframework.util.StringUtils; | 29 | import org.springframework.util.StringUtils; |
25 | import org.springframework.web.bind.annotation.*; | 30 | import org.springframework.web.bind.annotation.*; |
31 | +import org.springframework.web.client.RestTemplate; | ||
26 | import org.springframework.web.multipart.MultipartFile; | 32 | import org.springframework.web.multipart.MultipartFile; |
27 | 33 | ||
28 | import java.io.*; | 34 | import java.io.*; |
29 | import java.text.SimpleDateFormat; | 35 | import java.text.SimpleDateFormat; |
36 | +import java.util.ArrayList; | ||
30 | import java.util.Calendar; | 37 | import java.util.Calendar; |
31 | import java.util.Date; | 38 | import java.util.Date; |
32 | import java.util.List; | 39 | import java.util.List; |
@@ -34,6 +41,7 @@ import java.util.List; | @@ -34,6 +41,7 @@ import java.util.List; | ||
34 | @RestController | 41 | @RestController |
35 | @RequestMapping(value = "/facereco/*", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) | 42 | @RequestMapping(value = "/facereco/*", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) |
36 | @Api("用户控制") | 43 | @Api("用户控制") |
44 | +@Slf4j | ||
37 | public class UserControl { | 45 | public class UserControl { |
38 | 46 | ||
39 | @Autowired | 47 | @Autowired |
@@ -58,20 +66,47 @@ public class UserControl { | @@ -58,20 +66,47 @@ public class UserControl { | ||
58 | @RequestMapping(value = "sendPermiss", method = RequestMethod.POST) | 66 | @RequestMapping(value = "sendPermiss", method = RequestMethod.POST) |
59 | @ApiOperation("下发权限给设备") | 67 | @ApiOperation("下发权限给设备") |
60 | public boolean sendPermiss(@RequestBody PermissionBean permissionBean) { | 68 | public boolean sendPermiss(@RequestBody PermissionBean permissionBean) { |
61 | - | ||
62 | - if (!StringUtils.isEmpty(permissionBean)) { | ||
63 | - return sendUserAsync.sendPermiss(permissionBean); | 69 | + log.error("permissionBean:{}", JSON.toJSONString(permissionBean)); |
70 | + if (!StringUtils.isEmpty(permissionBean.getDeviceIds())) { | ||
71 | +// List<String> cardNumList = userDao.getStudentCardsWidthSchoolId(permissionBean.getSchoolId()); | ||
72 | + return sendUserAsync.sendPermiss(permissionBean, 0); | ||
64 | } | 73 | } |
65 | return false; | 74 | return false; |
66 | } | 75 | } |
67 | 76 | ||
77 | + @RequestMapping(value = "sendUsersAndPermiss", method = RequestMethod.POST) | ||
78 | + @ApiOperation("下发指定教师用户权限给设备") | ||
79 | + public boolean sendUsersAndPermiss(@RequestBody UserAndPermission userAndPermission) { | ||
80 | + log.error("sendUsersAndPermiss:{}", JSON.toJSONString(userAndPermission)); | ||
81 | + FileUtils.getInstance().writeLogs(JSON.toJSONString(userAndPermission),"下发指定教师用户权限给设备.txt"); | ||
82 | + PermissionBean permissionBean = new PermissionBean(); | ||
83 | + permissionBean.setSchoolId(userAndPermission.getSchoolId()); | ||
84 | + permissionBean.setUserType(String.valueOf(userAndPermission.getUserType())); | ||
85 | + permissionBean.setWeekDays(userAndPermission.getWeekDays()); | ||
86 | + return sendUserAsync.sendPermiss(permissionBean, 0); | ||
87 | + } | ||
88 | + | ||
89 | + | ||
90 | + @RequestMapping(value = "isTeacher", method = RequestMethod.GET) | ||
91 | + @ApiOperation("测试教师点名") | ||
92 | + public void isTeacher(@RequestParam("deviceId") String deviceId, @RequestParam("cardNo") String cardNo) { | ||
93 | + try { | ||
94 | + cmsServer.isTeacher(cardNo,deviceId); | ||
95 | + }catch (Exception e){ | ||
96 | + e.printStackTrace(); | ||
97 | + } | ||
98 | + } | ||
99 | + | ||
68 | 100 | ||
69 | @RequestMapping(value = "sendStuCardAndImg", method = RequestMethod.GET) | 101 | @RequestMapping(value = "sendStuCardAndImg", method = RequestMethod.GET) |
70 | @ApiOperation("下发人脸给设备") | 102 | @ApiOperation("下发人脸给设备") |
71 | public boolean sendCardAndImg(@RequestParam("filePath") String filePath, @RequestParam("card") String card | 103 | public boolean sendCardAndImg(@RequestParam("filePath") String filePath, @RequestParam("card") String card |
72 | , @RequestParam("name") String name, @RequestParam("deviceId") String deviceId, @RequestParam("startTime") String startTime, | 104 | , @RequestParam("name") String name, @RequestParam("deviceId") String deviceId, @RequestParam("startTime") String startTime, |
73 | @RequestParam("endTime") String endTime, @RequestParam("validTimeEnabled") int validTimeEnabled, @RequestParam("userType") String userType) { | 105 | @RequestParam("endTime") String endTime, @RequestParam("validTimeEnabled") int validTimeEnabled, @RequestParam("userType") String userType) { |
106 | + return sendImg2Device(filePath, card, name, deviceId, userType); | ||
107 | + } | ||
74 | 108 | ||
109 | + private boolean sendImg2Device(String filePath, String card, String name, String deviceId, String userType) { | ||
75 | try { | 110 | try { |
76 | 111 | ||
77 | if (filePath.contains(".jpg")) filePath = filePath.replace(".jpg", ".png"); | 112 | if (filePath.contains(".jpg")) filePath = filePath.replace(".jpg", ".png"); |
cloud/haikangface/src/main/java/com/sincere/haikangface/dao/UserDao.java
@@ -222,4 +222,28 @@ public interface UserDao { | @@ -222,4 +222,28 @@ public interface UserDao { | ||
222 | @Insert("insert into CW_StuTemperatureReocrd values (#{UserId},#{StudentId},#{Name},#{ClassId},#{ClassName},#{Temperature},#{Type},#{SchoolId},#{Intime})") | 222 | @Insert("insert into CW_StuTemperatureReocrd values (#{UserId},#{StudentId},#{Name},#{ClassId},#{ClassName},#{Temperature},#{Type},#{SchoolId},#{Intime})") |
223 | void addWGTem(@Param("UserId") String UserId, @Param("StudentId") String StudentId, @Param("Name") String Name, @Param("ClassId") String ClassId, | 223 | void addWGTem(@Param("UserId") String UserId, @Param("StudentId") String StudentId, @Param("Name") String Name, @Param("ClassId") String ClassId, |
224 | @Param("ClassName") String ClassName, @Param("Temperature") String Temperature, @Param("Type") String Type, @Param("SchoolId") String SchoolId, @Param("Intime") String Intime); | 224 | @Param("ClassName") String ClassName, @Param("Temperature") String Temperature, @Param("Type") String Type, @Param("SchoolId") String SchoolId, @Param("Intime") String Intime); |
225 | + | ||
226 | + @Select("select student_num from SZ_V_School_Student where school_id = #{schoolId} and student_num<>''") | ||
227 | + List<String> getStudentCardsWidthSchoolId(@Param("schoolId") String schoolId); | ||
228 | + | ||
229 | + @Select("select student_num from SZ_V_School_Teacher where school_id = #{schoolId} and student_num<>''") | ||
230 | + List<String> getTeaCardsWidthSchoolId(@Param("schoolId") String schoolId); | ||
231 | + | ||
232 | + @Select("select Top(1) teacher_num from SZ_V_School_Teacher where user_id = #{userId}") | ||
233 | + String getTeaCardWithUserId(@Param("userId") String userId); | ||
234 | + | ||
235 | + | ||
236 | + @Select("select student_num from SZ_V_School_Student where user_id = #{userId}") | ||
237 | + String getStudentCardWithUserId(@Param("userId") String userId); | ||
238 | + | ||
239 | + @Select("select Top(1) * from SZ_V_School_Teacher where user_id = #{userId} and teacher_num<>''") | ||
240 | + TeacherBean getTeacherWithUserId(@Param("userId") String userId); | ||
241 | + | ||
242 | + | ||
243 | + List<String> getStudentWiSidAndSex(@Param("schoolId")String schoolId , @Param("sexs")List<String> sexs); | ||
244 | + | ||
245 | + | ||
246 | + List<String> getDeviceRoomRelation(@Param("clint_id")String clint_id); | ||
247 | + | ||
248 | + | ||
225 | } | 249 | } |
cloud/haikangface/src/main/java/com/sincere/haikangface/utils/AlarmUtils.java
@@ -118,7 +118,7 @@ public class AlarmUtils { | @@ -118,7 +118,7 @@ public class AlarmUtils { | ||
118 | */ | 118 | */ |
119 | private void shijian(String minorType, String deviceID, String cardNo, String time, String picDataUrl, String currTemperature) { | 119 | private void shijian(String minorType, String deviceID, String cardNo, String time, String picDataUrl, String currTemperature) { |
120 | String content = ""; | 120 | String content = ""; |
121 | - System.out.println("=-=============================minorType:" + minorType); | 121 | +// System.out.println("=-=============================minorType:" + minorType); |
122 | switch (minorType) { | 122 | switch (minorType) { |
123 | case "0x01"://合法卡认证通过 | 123 | case "0x01"://合法卡认证通过 |
124 | content = "合法卡认证通过"; | 124 | content = "合法卡认证通过"; |
cloud/haikangface/src/main/java/com/sincere/haikangface/utils/CompressPic.java
@@ -54,6 +54,13 @@ public class CompressPic { | @@ -54,6 +54,13 @@ public class CompressPic { | ||
54 | try { | 54 | try { |
55 | File targetFile = new File(targetPath); | 55 | File targetFile = new File(targetPath); |
56 | if (!targetFile.exists()) targetFile.createNewFile(); | 56 | if (!targetFile.exists()) targetFile.createNewFile(); |
57 | + | ||
58 | + if (width>height){ | ||
59 | + int width1 = width; | ||
60 | + width = height; | ||
61 | + height = width1; | ||
62 | + } | ||
63 | + | ||
57 | BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); | 64 | BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); |
58 | tag.getGraphics().drawImage(bufferedImage, 0, 0, width, height, null); // 绘制缩小后的图 | 65 | tag.getGraphics().drawImage(bufferedImage, 0, 0, width, height, null); // 绘制缩小后的图 |
59 | FileOutputStream deskImage = new FileOutputStream(targetPath); // 输出到文件流 | 66 | FileOutputStream deskImage = new FileOutputStream(targetPath); // 输出到文件流 |
cloud/haikangface/src/main/java/com/sincere/haikangface/utils/HKXmlUtils.java
@@ -151,7 +151,7 @@ public class HKXmlUtils { | @@ -151,7 +151,7 @@ public class HKXmlUtils { | ||
151 | * @return | 151 | * @return |
152 | */ | 152 | */ |
153 | public String SetCardWeekPlanTimes(String startTime, String endTime) { | 153 | public String SetCardWeekPlanTimes(String startTime, String endTime) { |
154 | - return "<startTime>" + startTime + "</startTime>\n" + | ||
155 | - "<endTime>" + endTime + "</endTime>\n"; | 154 | + return "<startTime>" + startTime.trim() + "</startTime>\n" + |
155 | + "<endTime>" + endTime.trim() + "</endTime>\n"; | ||
156 | } | 156 | } |
157 | } | 157 | } |
cloud/haikangface/src/main/java/com/sincere/haikangface/utils/HttpUtil.java
1 | package com.sincere.haikangface.utils; | 1 | package com.sincere.haikangface.utils; |
2 | 2 | ||
3 | +import com.alibaba.fastjson.JSON; | ||
4 | +import com.sincere.haikangface.bean.face.PermissionBean; | ||
3 | import org.springframework.core.io.FileSystemResource; | 5 | import org.springframework.core.io.FileSystemResource; |
4 | import org.springframework.http.HttpEntity; | 6 | import org.springframework.http.HttpEntity; |
5 | import org.springframework.http.HttpHeaders; | 7 | import org.springframework.http.HttpHeaders; |
@@ -162,4 +164,34 @@ public class HttpUtil { | @@ -162,4 +164,34 @@ public class HttpUtil { | ||
162 | return restTemplate.getForObject(url, String.class).equals("1"); | 164 | return restTemplate.getForObject(url, String.class).equals("1"); |
163 | } | 165 | } |
164 | 166 | ||
167 | + | ||
168 | + public static void sendPermission2HK(PermissionBean permissionBean) { | ||
169 | + try { | ||
170 | + | ||
171 | + String url = "http://120.26.116.253:8089/file/sendPermiss"; | ||
172 | + | ||
173 | + if (null != permissionBean) { | ||
174 | + | ||
175 | + RestTemplate restTemplate = new RestTemplate(); | ||
176 | + | ||
177 | + HttpHeaders headers = new HttpHeaders(); | ||
178 | + | ||
179 | + MediaType mediaType = MediaType.parseMediaType(MediaType.APPLICATION_JSON_UTF8_VALUE); | ||
180 | + | ||
181 | + headers.setContentType(mediaType); | ||
182 | + | ||
183 | + HttpEntity<PermissionBean> httpEntity = new HttpEntity<>(permissionBean, headers); | ||
184 | + | ||
185 | + System.out.println("PermissionBean:"+JSON.toJSONString(permissionBean)); | ||
186 | + | ||
187 | + ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, httpEntity, String.class); | ||
188 | + | ||
189 | + System.out.println("responseEntity:" + responseEntity.getBody()); | ||
190 | + | ||
191 | + } | ||
192 | + } catch (Exception e) { | ||
193 | + e.printStackTrace(); | ||
194 | + } | ||
195 | + } | ||
196 | + | ||
165 | } | 197 | } |
cloud/haikangface/src/main/resources/application.yaml
@@ -10,10 +10,10 @@ spring: | @@ -10,10 +10,10 @@ spring: | ||
10 | password: RQminVCJota3H1u8bBYH | 10 | password: RQminVCJota3H1u8bBYH |
11 | jdbc-url: jdbc:sqlserver://116.62.155.137:33419;database=SmartCampus | 11 | jdbc-url: jdbc:sqlserver://116.62.155.137:33419;database=SmartCampus |
12 | driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver | 12 | driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver |
13 | - # username: SZJXTUSER | ||
14 | - # password: xst200919 | ||
15 | - # jdbc-url: jdbc:sqlserver://60.190.202.57:14333;database=SmartCampusSZ | ||
16 | - # driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver | 13 | +# username: SZJXTUSER |
14 | +# password: xst200919 | ||
15 | +# jdbc-url: jdbc:sqlserver://60.190.202.57:14333;database=SmartCampusSZ | ||
16 | +# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver | ||
17 | xiaoan: | 17 | xiaoan: |
18 | jdbc-url: jdbc:sqlserver://116.62.241.27:33419;database=xiaoanhxy | 18 | jdbc-url: jdbc:sqlserver://116.62.241.27:33419;database=xiaoanhxy |
19 | username: szjxtuser | 19 | username: szjxtuser |
cloud/haikangface/src/main/resources/mapper/usermapper.xml
@@ -9,4 +9,17 @@ | @@ -9,4 +9,17 @@ | ||
9 | <!--and studentcode = #{studentcode}--> | 9 | <!--and studentcode = #{studentcode}--> |
10 | <!--</select>--> | 10 | <!--</select>--> |
11 | 11 | ||
12 | + <select id="getStudentWiSidAndSex" resultType="java.lang.String"> | ||
13 | + | ||
14 | + select student_num from SZ_V_School_Student where school_id = #{schoolId} and sex in | ||
15 | + <foreach collection="sexs" item="sex" index="index" open="(" separator="," close=")"> | ||
16 | + #{sex} | ||
17 | + </foreach> | ||
18 | + | ||
19 | + </select> | ||
20 | + | ||
21 | + <select id="getDeviceRoomRelation" resultType="java.lang.String"> | ||
22 | + select clint_id from SZ_DeviceRoomRelation where clint_id = #{clint_id}; | ||
23 | + </select> | ||
24 | + | ||
12 | </mapper> | 25 | </mapper> |
cloud/pom.xml
@@ -40,7 +40,7 @@ | @@ -40,7 +40,7 @@ | ||
40 | <!-- <module>mypulsar</module>--> | 40 | <!-- <module>mypulsar</module>--> |
41 | <!-- <module>weigeng</module>--> | 41 | <!-- <module>weigeng</module>--> |
42 | <!-- <module>independence</module>--> | 42 | <!-- <module>independence</module>--> |
43 | - <!-- <module>quartz</module>--> | 43 | + <module>quartz</module> |
44 | <!-- <module>zkAttendance</module>--> | 44 | <!-- <module>zkAttendance</module>--> |
45 | <module>user_search</module> | 45 | <module>user_search</module> |
46 | <module>fIle-center</module> | 46 | <module>fIle-center</module> |
cloud/quartz/src/main/java/com/sincere/quartz/Swagger2.java
0 → 100644
@@ -0,0 +1,36 @@ | @@ -0,0 +1,36 @@ | ||
1 | +package com.sincere.quartz; | ||
2 | + | ||
3 | +import org.springframework.context.annotation.Bean; | ||
4 | +import org.springframework.context.annotation.Configuration; | ||
5 | +import springfox.documentation.builders.ApiInfoBuilder; | ||
6 | +import springfox.documentation.builders.PathSelectors; | ||
7 | +import springfox.documentation.builders.RequestHandlerSelectors; | ||
8 | +import springfox.documentation.service.ApiInfo; | ||
9 | +import springfox.documentation.spi.DocumentationType; | ||
10 | +import springfox.documentation.spring.web.plugins.Docket; | ||
11 | +import springfox.documentation.swagger2.annotations.EnableSwagger2; | ||
12 | + | ||
13 | +@Configuration | ||
14 | +@EnableSwagger2 | ||
15 | +public class Swagger2 { | ||
16 | + | ||
17 | + @Bean | ||
18 | + public Docket createRestApi() { | ||
19 | + return new Docket(DocumentationType.SWAGGER_2) | ||
20 | + .apiInfo(apiInfo()) | ||
21 | + .select() | ||
22 | + .apis(RequestHandlerSelectors.basePackage("com.sincere.quartz.control")) | ||
23 | + .paths(PathSelectors.any()) | ||
24 | + .build(); | ||
25 | + } | ||
26 | + | ||
27 | + private ApiInfo apiInfo() { | ||
28 | + return new ApiInfoBuilder() | ||
29 | + .title("大华人脸接口") | ||
30 | + .description("") | ||
31 | + .termsOfServiceUrl("") | ||
32 | + .version("1.0") | ||
33 | + .build(); | ||
34 | + } | ||
35 | + | ||
36 | +} |
cloud/quartz/src/main/java/com/sincere/quartz/control/FaceUnifyController.java
0 → 100644
@@ -0,0 +1,22 @@ | @@ -0,0 +1,22 @@ | ||
1 | +package com.sincere.quartz.control; | ||
2 | + | ||
3 | +import io.swagger.annotations.ApiOperation; | ||
4 | +import lombok.extern.slf4j.Slf4j; | ||
5 | +import org.springframework.web.bind.annotation.RequestMapping; | ||
6 | +import org.springframework.web.bind.annotation.RequestMethod; | ||
7 | +import org.springframework.web.bind.annotation.RestController; | ||
8 | + | ||
9 | +@RestController | ||
10 | +@RequestMapping("faceUnify/*") | ||
11 | +@Slf4j | ||
12 | +public class FaceUnifyController { | ||
13 | + | ||
14 | + | ||
15 | + @RequestMapping(value = "sendPermission",method = RequestMethod.GET) | ||
16 | + @ApiOperation("添加/编辑/删除权限") | ||
17 | + public void sendPermission(){ | ||
18 | + log.error("ssssssssssssssssssssssssssssssssssssssssss:{}","2222222222222"); | ||
19 | + } | ||
20 | + | ||
21 | + | ||
22 | +} |
cloud/quartz/src/main/java/com/sincere/quartz/job/BindPushJob.java
1 | -package com.sincere.quartz.job; | ||
2 | - | ||
3 | -import com.sincere.common.dto.smartCampus.BindPushDto; | ||
4 | -import com.sincere.common.dto.smartCampus.ParentDto; | ||
5 | -import com.sincere.common.enums.PushTypeEnums; | ||
6 | -import com.sincere.common.util.DateUtils; | ||
7 | -import com.sincere.quartz.feign.ScFeign; | ||
8 | -import com.sincere.quartz.model.ShortMsg; | ||
9 | -import com.sincere.quartz.service.SmsService; | ||
10 | -import org.apache.commons.lang3.StringUtils; | ||
11 | -import org.slf4j.Logger; | ||
12 | -import org.slf4j.LoggerFactory; | ||
13 | -import org.springframework.beans.factory.annotation.Autowired; | ||
14 | -import org.springframework.scheduling.annotation.Scheduled; | ||
15 | -import org.springframework.stereotype.Service; | ||
16 | - | ||
17 | -import java.util.Date; | ||
18 | -import java.util.HashMap; | ||
19 | -import java.util.List; | ||
20 | -import java.util.Map; | ||
21 | - | ||
22 | -/** | ||
23 | - * 用户注册激活提醒 | ||
24 | - * | ||
25 | - * @author chen | ||
26 | - * @version 1.0 | ||
27 | - * @date 2019/12/10 0010 8:31 | ||
28 | - */ | ||
29 | -@Service | ||
30 | -public class BindPushJob { | ||
31 | - | ||
32 | - private Logger logger = LoggerFactory.getLogger(BindPushJob.class); | ||
33 | - | ||
34 | - | ||
35 | - @Autowired | ||
36 | - ScFeign scFeign; | ||
37 | - | ||
38 | - @Autowired | ||
39 | - SmsService smsService; | ||
40 | - | ||
41 | - private static Map<String, String> intervalDaysMap = new HashMap<>(); //redis 持久化 替换 可避免重启导致间隔的错误 | ||
42 | - | ||
43 | - @Scheduled(cron = "0 0-59 * * * ? ") | ||
44 | - public void bindPush() { | ||
45 | - Date nowDate = new Date(); | ||
46 | - List<BindPushDto> schoolList = scFeign.selectBindPushSchool(); | ||
47 | - for (BindPushDto school : schoolList) { | ||
48 | - if (school.getBeginDate().compareTo(nowDate) <= 0 && school.getEndDate().compareTo(nowDate) >= 0) { | ||
49 | - String lastDate = intervalDaysMap.get(school.getSchoolId() + "_" + school.getType()); | ||
50 | - if (StringUtils.isBlank(lastDate)) { | ||
51 | - //下发推送 | ||
52 | - bindPush(school, nowDate); | ||
53 | - } else { | ||
54 | - int day = DateUtils.getDateDifference(nowDate, DateUtils.string2Date(lastDate, DateUtils.format1), "day"); | ||
55 | - if (day == school.getIntervalDays() + 1) { | ||
56 | - //下发推送 | ||
57 | - bindPush(school, nowDate); | ||
58 | - } | ||
59 | - } | ||
60 | - } | ||
61 | - } | ||
62 | - } | ||
63 | - | ||
64 | - private void bindPush(BindPushDto bindPushDto, Date nowDate) { | ||
65 | - if (bindPushDto.getPushTime().equals(DateUtils.date2String(nowDate, DateUtils.format4))) { | ||
66 | - intervalDaysMap.put(bindPushDto.getSchoolId() + "_" + bindPushDto.getType(), DateUtils.date2String(nowDate, DateUtils.format1)); | ||
67 | - //未关注 | ||
68 | - List<ParentDto> unFollowList = scFeign.selectNotFollow(bindPushDto.getSchoolId()); | ||
69 | - logger.info(bindPushDto.getSchoolName() + "未关注人数" + unFollowList.size()); | ||
70 | - for (ParentDto parentDto : unFollowList) { | ||
71 | - sendMessage(parentDto, bindPushDto.getMsg()); | ||
72 | - } | ||
73 | - //未绑定 | ||
74 | - List<ParentDto> unBindList = scFeign.selectNotBind(bindPushDto.getSchoolId(), getThirdType(bindPushDto.getType())); | ||
75 | - logger.info(bindPushDto.getSchoolName() + "未绑定人数" + unBindList.size()); | ||
76 | - for (ParentDto parentDto : unBindList) { | ||
77 | - sendMessage(parentDto, bindPushDto.getMsg()); | ||
78 | - } | ||
79 | - } | ||
80 | - } | ||
81 | - | ||
82 | - private void sendMessage(ParentDto parentDto, String message) { | ||
83 | - //手机号为空 | ||
84 | - if (StringUtils.isNotBlank(parentDto.getMobile())) { | ||
85 | - String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); | ||
86 | - ShortMsg shortMsg = new ShortMsg(); | ||
87 | - shortMsg.setTableName("smsNew" + tableSuffix); | ||
88 | - shortMsg.setSchoolId(parentDto.getSchoolId()); | ||
89 | - shortMsg.setMobile(parentDto.getMobile()); | ||
90 | - shortMsg.setMsg(message); | ||
91 | - smsService.insertSMS(shortMsg); | ||
92 | - logger.info("----学校Id---" + parentDto.getSchoolId() + "----手机号----" + parentDto.getMobile() + "---" + message); | ||
93 | - } | ||
94 | - } | ||
95 | - | ||
96 | - // 0是企业号,1是钉钉 | ||
97 | - private int getThirdType(int type) { | ||
98 | - if (type == 0) { | ||
99 | - return PushTypeEnums.QIYEHAO.getType(); | ||
100 | - } else { | ||
101 | - return PushTypeEnums.DING.getType(); | ||
102 | - } | ||
103 | - } | ||
104 | - | ||
105 | -} | 1 | +//package com.sincere.quartz.job; |
2 | +// | ||
3 | +//import com.sincere.common.dto.smartCampus.BindPushDto; | ||
4 | +//import com.sincere.common.dto.smartCampus.ParentDto; | ||
5 | +//import com.sincere.common.enums.PushTypeEnums; | ||
6 | +//import com.sincere.common.util.DateUtils; | ||
7 | +//import com.sincere.quartz.feign.ScFeign; | ||
8 | +//import com.sincere.quartz.model.ShortMsg; | ||
9 | +//import com.sincere.quartz.service.SmsService; | ||
10 | +//import org.apache.commons.lang3.StringUtils; | ||
11 | +//import org.slf4j.Logger; | ||
12 | +//import org.slf4j.LoggerFactory; | ||
13 | +//import org.springframework.beans.factory.annotation.Autowired; | ||
14 | +//import org.springframework.scheduling.annotation.Scheduled; | ||
15 | +//import org.springframework.stereotype.Service; | ||
16 | +// | ||
17 | +//import java.util.Date; | ||
18 | +//import java.util.HashMap; | ||
19 | +//import java.util.List; | ||
20 | +//import java.util.Map; | ||
21 | +// | ||
22 | +///** | ||
23 | +// * 用户注册激活提醒 | ||
24 | +// * | ||
25 | +// * @author chen | ||
26 | +// * @version 1.0 | ||
27 | +// * @date 2019/12/10 0010 8:31 | ||
28 | +// */ | ||
29 | +//@Service | ||
30 | +//public class BindPushJob { | ||
31 | +// | ||
32 | +// private Logger logger = LoggerFactory.getLogger(BindPushJob.class); | ||
33 | +// | ||
34 | +// | ||
35 | +// @Autowired | ||
36 | +// ScFeign scFeign; | ||
37 | +// | ||
38 | +// @Autowired | ||
39 | +// SmsService smsService; | ||
40 | +// | ||
41 | +// private static Map<String, String> intervalDaysMap = new HashMap<>(); //redis 持久化 替换 可避免重启导致间隔的错误 | ||
42 | +// | ||
43 | +// @Scheduled(cron = "0 0-59 * * * ? ") | ||
44 | +// public void bindPush() { | ||
45 | +// Date nowDate = new Date(); | ||
46 | +// List<BindPushDto> schoolList = scFeign.selectBindPushSchool(); | ||
47 | +// for (BindPushDto school : schoolList) { | ||
48 | +// if (school.getBeginDate().compareTo(nowDate) <= 0 && school.getEndDate().compareTo(nowDate) >= 0) { | ||
49 | +// String lastDate = intervalDaysMap.get(school.getSchoolId() + "_" + school.getType()); | ||
50 | +// if (StringUtils.isBlank(lastDate)) { | ||
51 | +// //下发推送 | ||
52 | +// bindPush(school, nowDate); | ||
53 | +// } else { | ||
54 | +// int day = DateUtils.getDateDifference(nowDate, DateUtils.string2Date(lastDate, DateUtils.format1), "day"); | ||
55 | +// if (day == school.getIntervalDays() + 1) { | ||
56 | +// //下发推送 | ||
57 | +// bindPush(school, nowDate); | ||
58 | +// } | ||
59 | +// } | ||
60 | +// } | ||
61 | +// } | ||
62 | +// } | ||
63 | +// | ||
64 | +// private void bindPush(BindPushDto bindPushDto, Date nowDate) { | ||
65 | +// if (bindPushDto.getPushTime().equals(DateUtils.date2String(nowDate, DateUtils.format4))) { | ||
66 | +// intervalDaysMap.put(bindPushDto.getSchoolId() + "_" + bindPushDto.getType(), DateUtils.date2String(nowDate, DateUtils.format1)); | ||
67 | +// //未关注 | ||
68 | +// List<ParentDto> unFollowList = scFeign.selectNotFollow(bindPushDto.getSchoolId()); | ||
69 | +// logger.info(bindPushDto.getSchoolName() + "未关注人数" + unFollowList.size()); | ||
70 | +// for (ParentDto parentDto : unFollowList) { | ||
71 | +// sendMessage(parentDto, bindPushDto.getMsg()); | ||
72 | +// } | ||
73 | +// //未绑定 | ||
74 | +// List<ParentDto> unBindList = scFeign.selectNotBind(bindPushDto.getSchoolId(), getThirdType(bindPushDto.getType())); | ||
75 | +// logger.info(bindPushDto.getSchoolName() + "未绑定人数" + unBindList.size()); | ||
76 | +// for (ParentDto parentDto : unBindList) { | ||
77 | +// sendMessage(parentDto, bindPushDto.getMsg()); | ||
78 | +// } | ||
79 | +// } | ||
80 | +// } | ||
81 | +// | ||
82 | +// private void sendMessage(ParentDto parentDto, String message) { | ||
83 | +// //手机号为空 | ||
84 | +// if (StringUtils.isNotBlank(parentDto.getMobile())) { | ||
85 | +// String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); | ||
86 | +// ShortMsg shortMsg = new ShortMsg(); | ||
87 | +// shortMsg.setTableName("smsNew" + tableSuffix); | ||
88 | +// shortMsg.setSchoolId(parentDto.getSchoolId()); | ||
89 | +// shortMsg.setMobile(parentDto.getMobile()); | ||
90 | +// shortMsg.setMsg(message); | ||
91 | +// smsService.insertSMS(shortMsg); | ||
92 | +// logger.info("----学校Id---" + parentDto.getSchoolId() + "----手机号----" + parentDto.getMobile() + "---" + message); | ||
93 | +// } | ||
94 | +// } | ||
95 | +// | ||
96 | +// // 0是企业号,1是钉钉 | ||
97 | +// private int getThirdType(int type) { | ||
98 | +// if (type == 0) { | ||
99 | +// return PushTypeEnums.QIYEHAO.getType(); | ||
100 | +// } else { | ||
101 | +// return PushTypeEnums.DING.getType(); | ||
102 | +// } | ||
103 | +// } | ||
104 | +// | ||
105 | +//} |
cloud/quartz/src/main/java/com/sincere/quartz/job/KQJob.java
1 | -package com.sincere.quartz.job; | ||
2 | - | ||
3 | -import com.alibaba.fastjson.JSONArray; | ||
4 | -import com.alibaba.fastjson.JSONObject; | ||
5 | -import com.sincere.common.dto.smartCampus.*; | ||
6 | -import com.sincere.common.enums.PushTypeEnums; | ||
7 | -import com.sincere.common.util.DateUtils; | ||
8 | -import com.sincere.common.util.HttpClientUtils; | ||
9 | -import com.sincere.quartz.enums.KqTypeEnums; | ||
10 | -import com.sincere.quartz.enums.TypeEnums; | ||
11 | -import com.sincere.quartz.feign.ScFeign; | ||
12 | -import com.sincere.quartz.model.DingSms; | ||
13 | -import com.sincere.quartz.model.ShortMsg; | ||
14 | -import com.sincere.quartz.model.WeChatSms; | ||
15 | -import com.sincere.quartz.service.ManagerService; | ||
16 | -import com.sincere.quartz.service.SmsService; | ||
17 | -import org.apache.commons.lang3.StringUtils; | ||
18 | -import org.slf4j.Logger; | ||
19 | -import org.slf4j.LoggerFactory; | ||
20 | -import org.springframework.beans.factory.annotation.Autowired; | ||
21 | -import org.springframework.scheduling.annotation.Scheduled; | ||
22 | -import org.springframework.stereotype.Service; | ||
23 | - | ||
24 | -import java.math.BigDecimal; | ||
25 | -import java.util.*; | ||
26 | - | ||
27 | -/** | ||
28 | - * 考勤任务推送调用 | ||
29 | - * 主要推送盯盯以及企业号 | ||
30 | - * | ||
31 | - * @author chen | ||
32 | - * @version 1.0 | ||
33 | - * @date 2019/11/27 0027 17:05 | ||
34 | - */ | ||
35 | -@Service | ||
36 | -public class KQJob { | ||
37 | - | ||
38 | - private Logger logger = LoggerFactory.getLogger(KQJob.class); | ||
39 | - | ||
40 | - @Autowired | ||
41 | - ScFeign scFeign; | ||
42 | - | ||
43 | - @Autowired | ||
44 | - SmsService smsService; | ||
45 | - | ||
46 | - @Autowired | ||
47 | - ManagerService managerService; | ||
48 | - | ||
49 | - private static String iotUrl = "http://60.190.202.57:8035"; | ||
50 | - | ||
51 | - private static String date; | ||
52 | - private static Map<String, String> map = new HashMap<>(); //学校 考勤推送map | ||
53 | - | ||
54 | - private static String alarmDate; | ||
55 | - private static Map<String, String> alarmMap = new HashMap<>(); //考勤告警推送map | ||
56 | - private static Map<String, BigDecimal> templateMap = new HashMap<>(); // 考勤比例 | ||
57 | - | ||
58 | - private static List<String> opexList; | ||
59 | - private static String integration; | ||
60 | - | ||
61 | - static { | ||
62 | - opexList = new ArrayList<>(); | ||
63 | - opexList.add("15857566147"); //王汉栋 | ||
64 | - opexList.add("13858485977"); //王楠彬 | ||
65 | - | ||
66 | - integration = "18767117554"; //林炜 | ||
67 | - } | ||
68 | - | ||
69 | - @Scheduled(cron = "0 0-59 * * * ? ") | ||
70 | - public void kaoQing() { | ||
71 | - String now = DateUtils.date2String(new Date(), DateUtils.format1); | ||
72 | - if (StringUtils.isBlank(date)) { | ||
73 | - initMap(); | ||
74 | - date = now; | ||
75 | - } | ||
76 | - if (!DateUtils.date2String(new Date(), DateUtils.format1).equals(date)) { | ||
77 | - initMap(); | ||
78 | - date = DateUtils.date2String(new Date(), DateUtils.format1); | ||
79 | - } | ||
80 | - //开始过滤数据 推送 | ||
81 | - List<String> keyList = new ArrayList<>(); | ||
82 | - for (Map.Entry<String, String> entity : map.entrySet()) { | ||
83 | - String endTime = entity.getValue().split("_")[1]; | ||
84 | - if (DateUtils.getDateDifference(new Date(), DateUtils.string2Date(now + " " + endTime + ":00", DateUtils.format2), "m") >= 2 | ||
85 | - && DateUtils.getDateDifference(new Date(), DateUtils.string2Date(now + " " + endTime + ":00", DateUtils.format2), "m") < 5) { | ||
86 | - String key = entity.getKey(); | ||
87 | - String[] messageArray = key.split("_"); | ||
88 | - if (messageArray[2].contains(PushTypeEnums.QIYEHAO.getType() + "")) { | ||
89 | - logger.info("企业号推送:" + messageArray[0] + "__" + messageArray[1]); | ||
90 | - weChatBatchPush(messageArray[0], Integer.valueOf(messageArray[1]), entity.getValue()); | ||
91 | - } | ||
92 | - if (messageArray[2].contains(PushTypeEnums.DING.getType() + "")) { | ||
93 | - logger.info(("盯盯推送:" + messageArray[0] + "__" + messageArray[1])); | ||
94 | - dingBatchPush(messageArray[0], Integer.valueOf(messageArray[1]), entity.getValue()); | ||
95 | - } | ||
96 | - keyList.add(key); | ||
97 | - } | ||
98 | - } | ||
99 | - for (String key : keyList) { | ||
100 | - map.remove(key); | ||
101 | - } | ||
102 | - } | ||
103 | - | ||
104 | - @Scheduled(cron = "0 0-59 * * * ? ") | ||
105 | - public void alarmKaoQing() { | ||
106 | - String now = DateUtils.date2String(new Date(), DateUtils.format1); | ||
107 | - if (StringUtils.isBlank(alarmDate)) { | ||
108 | - initAlarmMap(); | ||
109 | - alarmDate = now; | ||
110 | - } | ||
111 | - if (!DateUtils.date2String(new Date(), DateUtils.format1).equals(alarmDate)) { | ||
112 | - initAlarmMap(); | ||
113 | - alarmDate = DateUtils.date2String(new Date(), DateUtils.format1); | ||
114 | - } | ||
115 | - //开始过滤数据 推送 | ||
116 | - List<String> keyList = new ArrayList<>(); | ||
117 | - for (Map.Entry<String, String> entity : alarmMap.entrySet()) { | ||
118 | - String endTime = entity.getValue().split("_")[1]; | ||
119 | - if (DateUtils.getDateDifference(new Date(), DateUtils.string2Date(now + " " + endTime + ":00", DateUtils.format2), "m") >= 2 | ||
120 | - ) { | ||
121 | - String key = entity.getKey(); | ||
122 | - keyList.add(key); | ||
123 | - //alarm(entity); //告警 | ||
124 | - //insertIOT(entity); //iot | ||
125 | - } | ||
126 | - } | ||
127 | - for (String key : keyList) { | ||
128 | - map.remove(key); | ||
129 | - } | ||
130 | - } | ||
131 | - | ||
132 | - private void initAlarmMap() { | ||
133 | - alarmMap = new HashMap<>(); | ||
134 | - List<TemplateDto> list = scFeign.getAllTemplateAlarm(); | ||
135 | - logger.info(("------考勤告警模板------")); | ||
136 | - for (TemplateDto templateDto : list) { | ||
137 | - String config = templateDto.getConfig(); | ||
138 | - String[] array = config.split("<Template"); | ||
139 | - for (int i = 1; i < array.length; i++) { | ||
140 | - try { | ||
141 | - String msg = array[i]; | ||
142 | - String beginTime = msg.substring(msg.indexOf("BeginTime") + 11, msg.indexOf("BeginTime") + 16); | ||
143 | - String endTime = msg.substring(msg.indexOf("EndTime") + 9, msg.indexOf("EndTime") + 14); | ||
144 | - String templateId = msg.substring(msg.indexOf("TemplateID") + 12, msg.indexOf("TemplateID") + 22); | ||
145 | - String Week = msg.substring(msg.indexOf("Week") + 6, msg.indexOf("Week") + 19); | ||
146 | - String type = msg.substring(msg.indexOf("Type") + 6, msg.indexOf("Type") + 8); | ||
147 | - type = type.replace("\"", ""); | ||
148 | - int nowWeek = DateUtils.getWeek(); | ||
149 | - if (Week.contains(nowWeek + "") && nowWeek != 6 && nowWeek != 0) { //周末不告警 | ||
150 | - logger.info((templateId + "_" + templateDto.getSchoolId() + "------" + beginTime + "_" + endTime)); | ||
151 | - alarmMap.put(templateId + "_" + templateDto.getSchoolId() + "_" + templateDto.getTitle(), beginTime + "_" + endTime + "_" + type + "_" + templateDto.getId()); | ||
152 | - } | ||
153 | - } catch (Exception e) { | ||
154 | - e.printStackTrace(); | ||
155 | - } | ||
156 | - } | ||
157 | - } | ||
158 | - } | ||
159 | - | ||
160 | - //告警推送 | ||
161 | - private void alarm(Map.Entry<String, String> entry) { | ||
162 | - String templateId = entry.getKey().split("_")[0]; | ||
163 | - String schoolId = entry.getKey().split("_")[1]; | ||
164 | - String id = entry.getValue().split("_")[3]; | ||
165 | - String type = entry.getValue().split("_")[2]; | ||
166 | - | ||
167 | - if (DateUtils.getWeek() == 2 || DateUtils.getWeek() == 5) { | ||
168 | - //可以相差40% | ||
169 | - BigDecimal percent = getAlarmCensus(Integer.valueOf(id), templateId, Integer.valueOf(schoolId), Integer.valueOf(type)); | ||
170 | - if (templateMap.get(templateId) != null) { | ||
171 | - if (percent.subtract(templateMap.get(templateId)).compareTo(new BigDecimal(0.4)) > 0 | ||
172 | - || templateMap.get(templateId).subtract(percent).compareTo(new BigDecimal(0.4)) > 0) { | ||
173 | - alarmPush(Integer.valueOf(schoolId)); | ||
174 | - } | ||
175 | - } | ||
176 | - templateMap.put(templateId, percent); | ||
177 | - } else { | ||
178 | - //相差30% | ||
179 | - BigDecimal percent = getAlarmCensus(Integer.valueOf(id), templateId, Integer.valueOf(schoolId), Integer.valueOf(type)); | ||
180 | - if (templateMap.get(templateId) != null) { | ||
181 | - if (percent.subtract(templateMap.get(templateId)).compareTo(new BigDecimal(0.3)) > 0 | ||
182 | - || templateMap.get(templateId).subtract(percent).compareTo(new BigDecimal(0.3)) > 0) { | ||
183 | - alarmPush(Integer.valueOf(schoolId)); | ||
184 | - } | ||
185 | - } | ||
186 | - templateMap.put(templateId, percent); | ||
187 | - } | ||
188 | - } | ||
189 | - | ||
190 | - private void insertIOT(Map.Entry<String, String> entry) { | ||
191 | - String templateId = entry.getKey().split("_")[0]; | ||
192 | - String schoolId = entry.getKey().split("_")[1]; | ||
193 | - String title = entry.getKey().split("_")[2]; | ||
194 | - String id = entry.getValue().split("_")[3]; | ||
195 | - String type = entry.getValue().split("_")[2]; | ||
196 | - String beginTime = entry.getValue().split("_")[0]; | ||
197 | - String endTime = entry.getValue().split("_")[1]; | ||
198 | - | ||
199 | - List<Integer> list = getIOTCensus(Integer.valueOf(id), templateId, Integer.valueOf(schoolId), Integer.valueOf(type)); | ||
200 | - JSONObject object = new JSONObject(); | ||
201 | - object.put("strTime", beginTime); | ||
202 | - object.put("endTime", endTime); | ||
203 | - object.put("inTime", DateUtils.date2String(new Date(), DateUtils.format1)); | ||
204 | - object.put("noAttendanceCount", list.get(1)); | ||
205 | - object.put("attendanceCount", list.get(0)); | ||
206 | - object.put("leaveCount", list.get(2)); | ||
207 | - object.put("templateName", title); | ||
208 | - object.put("qianDaoIdId", id); | ||
209 | - object.put("schoolId", schoolId); | ||
210 | - object.put("templateId", templateId); | ||
211 | - HttpClientUtils.httpPostJson(iotUrl + "/api/Association/addIntelligenceAttendance", object.toJSONString()); | ||
212 | - } | ||
213 | - | ||
214 | - //初始化要推送的模板 | ||
215 | - private void initMap() { | ||
216 | - map = new HashMap<>(); | ||
217 | - List<TemplateDto> list = scFeign.getAllTemplate(); | ||
218 | - logger.info(("------需要推送的考勤模板------")); | ||
219 | - for (TemplateDto templateDto : list) { | ||
220 | - String config = templateDto.getConfig(); | ||
221 | - String[] array = config.split("<Template"); | ||
222 | - for (int i = 1; i < array.length; i++) { | ||
223 | - try { | ||
224 | - String msg = array[i]; | ||
225 | - String beginTime = msg.substring(msg.indexOf("BeginTime") + 11, msg.indexOf("BeginTime") + 16); | ||
226 | - String endTime = msg.substring(msg.indexOf("EndTime") + 9, msg.indexOf("EndTime") + 14); | ||
227 | - String templateId = msg.substring(msg.indexOf("TemplateID") + 12, msg.indexOf("TemplateID") + 22); | ||
228 | - String Week = msg.substring(msg.indexOf("Week") + 6, msg.indexOf("Week") + 19); | ||
229 | - String type = msg.substring(msg.indexOf("Type") + 6, msg.indexOf("Type") + 8); | ||
230 | - type = type.replace("\"", ""); | ||
231 | - int nowWeek = DateUtils.getWeek(); | ||
232 | - if (Week.contains(nowWeek + "")) { | ||
233 | - logger.info((templateId + "_" + templateDto.getSchoolId() + "_" + templateDto.getType() + "------" + beginTime + "_" + endTime)); | ||
234 | - map.put(templateId + "_" + templateDto.getSchoolId() + "_" + templateDto.getType(), beginTime + "_" + endTime + "_" + type + "_" + templateDto.getId()); | ||
235 | - } | ||
236 | - } catch (Exception e) { | ||
237 | - e.printStackTrace(); | ||
238 | - } | ||
239 | - } | ||
240 | - } | ||
241 | - } | ||
242 | - | ||
243 | - //盯盯批量推送 | ||
244 | - private void dingBatchPush(String templateId, int schoolId, String key) { | ||
245 | - String[] times = key.split("_"); | ||
246 | - AppDto appDto = scFeign.getApp(schoolId, 1); | ||
247 | - if (Integer.valueOf(times[2]) < 7) { | ||
248 | - //出入校 推班主任 | ||
249 | - List<KqTeacherDto> list = scFeign.getTeacherList(schoolId); | ||
250 | - for (KqTeacherDto teacher : list) { | ||
251 | - dingSchoolPush(templateId, teacher, key, appDto, 0); | ||
252 | - } | ||
253 | - } else { | ||
254 | - //出入寝 推班主任 | ||
255 | - List<KqTeacherDto> list = scFeign.getTeacherList(schoolId); | ||
256 | - for (KqTeacherDto teacher : list) { | ||
257 | - dingSchoolPush(templateId, teacher, key, appDto, 1); | ||
258 | - } | ||
259 | - //推宿管 | ||
260 | - List<KqTeacherDto> chamberList = scFeign.selectChamberTeacher(schoolId); | ||
261 | - for (KqTeacherDto teacher : chamberList) { | ||
262 | - dingChamberPush(templateId, teacher, key, appDto); | ||
263 | - } | ||
264 | - } | ||
265 | - } | ||
266 | - | ||
267 | - //企业号批量推送 | ||
268 | - private void weChatBatchPush(String templateId, int schoolId, String key) { | ||
269 | - String[] times = key.split("_"); | ||
270 | - AppDto appDto = scFeign.getApp(schoolId, 0); | ||
271 | - if (Integer.valueOf(times[2]) < 7) { | ||
272 | - //出入校 推班主任 | ||
273 | - List<KqTeacherDto> list = scFeign.getTeacherList(schoolId); | ||
274 | - for (KqTeacherDto teacher : list) { | ||
275 | - weChatSchoolPush(templateId, teacher, key, appDto, 0); | ||
276 | - } | ||
277 | - } else { | ||
278 | - //出入寝 推班主任 | ||
279 | - List<KqTeacherDto> list = scFeign.getTeacherList(schoolId); | ||
280 | - for (KqTeacherDto teacher : list) { | ||
281 | - weChatSchoolPush(templateId, teacher, key, appDto, 1); | ||
282 | - } | ||
283 | - //推宿管 | ||
284 | - List<KqTeacherDto> chamberList = scFeign.selectChamberTeacher(schoolId); | ||
285 | - for (KqTeacherDto teacher : chamberList) { | ||
286 | - weChatChamberPush(templateId, teacher, key, appDto); | ||
287 | - } | ||
288 | - } | ||
289 | - } | ||
290 | - | ||
291 | - //盯盯推送班主任 | ||
292 | - private void dingSchoolPush(String templateId, KqTeacherDto teacher, String key, AppDto appDto, int type) { | ||
293 | - String[] times = key.split("_"); | ||
294 | - String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); | ||
295 | - String thirdOpenId = scFeign.getThirdId(teacher.getUserId(), 0); | ||
296 | - if (StringUtils.isNotBlank(thirdOpenId)) { | ||
297 | - List<CensusKqDto> censusKqDtos = getCensus(Integer.valueOf(times[3]), templateId, teacher.getSchoolId(), teacher.getUserId(), type); | ||
298 | - if (censusKqDtos != null && censusKqDtos.size() > 0) { | ||
299 | - String message = ""; | ||
300 | - for (CensusKqDto censusKqDto : censusKqDtos) { | ||
301 | - message += "[" + censusKqDto.getTargetName() + "]未考勤" + censusKqDto.getNotAttendCount() + "人,请假" + censusKqDto.getLeaveCount() + "人;"; | ||
302 | - } | ||
303 | - DingSms dingSms = new DingSms(); | ||
304 | - dingSms.setName(teacher.getName()); | ||
305 | - dingSms.setTableName("DingSmsNew" + tableSuffix); | ||
306 | - dingSms.setMsg("报告类型:" + KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - " + | ||
307 | - "签到日期:" + DateUtils.date2String(new Date(), DateUtils.format1) + "(" + DateUtils.getWeekName() + ") \n - " + | ||
308 | - "签到时间:" + times[0] + "-" + times[1] + " \n - " + | ||
309 | - "整体数据:" + message); | ||
310 | - String wapUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" + | ||
311 | - "schoolid=" + teacher.getSchoolId() + "&userId=" + teacher.getUserId() + "&name=" + teacher.getName() + "&TemplateId=" + templateId + | ||
312 | - "&data=" + thirdOpenId + "&type=1&stype=4&mobile=" + teacher.getMobile() + "&pass=" + teacher.getPass() + | ||
313 | - "&face=&sourcetype=16&soutype=3×tamp=" + DateUtils.getDate() + "&time=" + DateUtils.date2String(new Date(), DateUtils.format1); | ||
314 | - dingSms.setSchoolId(teacher.getSchoolId()); | ||
315 | - dingSms.setDingUserId(thirdOpenId); | ||
316 | - dingSms.setAgentId(appDto.getAgentId()); | ||
317 | - dingSms.setWapUrl(wapUrl); | ||
318 | - dingSms.setReceiveUserId(teacher.getUserId()); | ||
319 | - dingSms.setTdType(TypeEnums.kaoqing.getType()); | ||
320 | - this.insertDing(dingSms); | ||
321 | - logger.info("盯盯推送班主任—————" + templateId + "--------" + teacher.getName()); | ||
322 | - } | ||
323 | - } | ||
324 | - } | ||
325 | - | ||
326 | - //盯盯推送宿管 | ||
327 | - private void dingChamberPush(String templateId, KqTeacherDto teacher, String key, AppDto appDto) { | ||
328 | - String[] times = key.split("_"); | ||
329 | - String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); | ||
330 | - String thirdOpenId = scFeign.getThirdId(teacher.getUserId(), 0); | ||
331 | - if (StringUtils.isNotBlank(thirdOpenId)) { | ||
332 | - List<CensusKqDto> censusKqDtos = getCensus(Integer.valueOf(times[3]), templateId, teacher.getSchoolId(), teacher.getUserId(), 1); | ||
333 | - if (censusKqDtos != null && censusKqDtos.size() > 0) { | ||
334 | - String message = ""; | ||
335 | - for (CensusKqDto censusKqDto : censusKqDtos) { | ||
336 | - message += "[" + censusKqDto.getTargetName() + "]未考勤" + censusKqDto.getNotAttendCount() + "人,请假" + censusKqDto.getLeaveCount() + "人;"; | ||
337 | - } | ||
338 | - DingSms dingSms = new DingSms(); | ||
339 | - dingSms.setName(teacher.getName()); | ||
340 | - dingSms.setTableName("DingSmsNew" + tableSuffix); | ||
341 | - dingSms.setMsg("报告类型:" + KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - " + | ||
342 | - "签到日期:" + DateUtils.date2String(new Date(), DateUtils.format1) + "(" + DateUtils.getWeekName() + ") \n - " + | ||
343 | - "签到时间:" + times[0] + "-" + times[1] + " \n - " + | ||
344 | - "整体数据:" + message); | ||
345 | - String msgUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" + | ||
346 | - "schoolid=" + teacher.getSchoolId() + "&userId=" + teacher.getUserId() + "&name=" + teacher.getName() + "&TemplateId=" + templateId + | ||
347 | - "&pass=" + teacher.getPass() + "&type=4&soutype=3&time=" + DateUtils.date2String(new Date(), DateUtils.format1); | ||
348 | - dingSms.setSchoolId(teacher.getSchoolId()); | ||
349 | - dingSms.setDingUserId(thirdOpenId); | ||
350 | - dingSms.setAgentId(appDto.getAgentId()); | ||
351 | - dingSms.setWapUrl(msgUrl); | ||
352 | - dingSms.setReceiveUserId(teacher.getUserId()); | ||
353 | - dingSms.setTdType(TypeEnums.kaoqing.getType()); | ||
354 | - this.insertDing(dingSms); | ||
355 | - logger.info("盯盯推送宿管—————" + templateId + "--------" + teacher.getName()); | ||
356 | - } | ||
357 | - } | ||
358 | - } | ||
359 | - | ||
360 | - //企业号推送班主任 | ||
361 | - private void weChatSchoolPush(String templateId, KqTeacherDto teacher, String key, AppDto appDto, int type) { | ||
362 | - String[] times = key.split("_"); | ||
363 | - String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); | ||
364 | - String thirdOpenId = scFeign.getThirdId(teacher.getUserId(), 1); | ||
365 | - if (StringUtils.isNotBlank(thirdOpenId)) { | ||
366 | - List<CensusKqDto> censusKqDtos = getCensus(Integer.valueOf(times[3]), templateId, teacher.getSchoolId(), teacher.getUserId(), type); | ||
367 | - if (censusKqDtos != null && censusKqDtos.size() > 0) { | ||
368 | - String message = ""; | ||
369 | - for (CensusKqDto censusKqDto : censusKqDtos) { | ||
370 | - message += "[" + censusKqDto.getTargetName() + "]未考勤" + censusKqDto.getNotAttendCount() + "人,请假" + censusKqDto.getLeaveCount() + "人;"; | ||
371 | - } | ||
372 | - WeChatSms weChatSms = new WeChatSms(); | ||
373 | - weChatSms.setTableName("qyhSmsNew" + tableSuffix); | ||
374 | - weChatSms.setMsg("报告类型:" + KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - " + | ||
375 | - "签到日期:" + DateUtils.date2String(new Date(), DateUtils.format1) + "(" + DateUtils.getWeekName() + ") \n - " + | ||
376 | - "签到时间:" + times[0] + "-" + times[1] + " \n - " + | ||
377 | - "整体数据:" + message); | ||
378 | - weChatSms.setSchoolId(teacher.getSchoolId()); | ||
379 | - weChatSms.setName(teacher.getName()); | ||
380 | - weChatSms.setQiYeHaoUserId(thirdOpenId); | ||
381 | - weChatSms.setReceiveUserId(teacher.getUserId()); | ||
382 | - weChatSms.setAppId(appDto.getAgentId()); | ||
383 | - weChatSms.setSecret(appDto.getAgentSecret()); | ||
384 | - String msgUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" + | ||
385 | - "schoolid=" + teacher.getSchoolId() + "&userId=" + teacher.getUserId() + "&name=" + teacher.getName() + "&TemplateId=" + templateId + | ||
386 | - "&data=" + thirdOpenId + "&type=1&stype=3&mobile=" + teacher.getMobile() + "&pass=" + teacher.getPass() + | ||
387 | - "&face=" + teacher.getFace() + "&sourcetype=16&soutype=2×tamp=" + DateUtils.getDate() + "&time=" + DateUtils.date2String(new Date(), DateUtils.format1) + "&"; | ||
388 | - weChatSms.setMsgUrl(msgUrl); | ||
389 | - weChatSms.setTdType(TypeEnums.kaoqing.getType()); | ||
390 | - this.insertQYH(weChatSms); | ||
391 | - logger.info("企业号推送班主任—————" + templateId + "--------" + teacher.getName()); | ||
392 | - } | ||
393 | - } | ||
394 | - } | ||
395 | - | ||
396 | - //企业号推送宿管 | ||
397 | - private void weChatChamberPush(String templateId, KqTeacherDto teacher, String key, AppDto appDto) { | ||
398 | - String[] times = key.split("_"); | ||
399 | - String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); | ||
400 | - String thirdOpenId = scFeign.getThirdId(teacher.getUserId(), 1); | ||
401 | - if (StringUtils.isNotBlank(thirdOpenId)) { | ||
402 | - List<CensusKqDto> censusKqDtos = getCensus(Integer.valueOf(times[3]), templateId, teacher.getSchoolId(), teacher.getUserId(), 1); | ||
403 | - if (censusKqDtos != null && censusKqDtos.size() > 0) { | ||
404 | - String message = ""; | ||
405 | - for (CensusKqDto censusKqDto : censusKqDtos) { | ||
406 | - message += "[" + censusKqDto.getTargetName() + "]未考勤" + censusKqDto.getNotAttendCount() + "人,请假" + censusKqDto.getLeaveCount() + "人;"; | ||
407 | - } | ||
408 | - WeChatSms weChatSms = new WeChatSms(); | ||
409 | - weChatSms.setTableName("qyhSmsNew" + tableSuffix); | ||
410 | - weChatSms.setMsg("报告类型:" + KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - " + | ||
411 | - "签到日期:" + DateUtils.date2String(new Date(), DateUtils.format1) + "(" + DateUtils.getWeekName() + ") \n - " + | ||
412 | - "签到时间:" + times[0] + "-" + times[1] + " \n - " + | ||
413 | - "整体数据:" + message); | ||
414 | - weChatSms.setSchoolId(teacher.getSchoolId()); | ||
415 | - weChatSms.setName(teacher.getName()); | ||
416 | - weChatSms.setQiYeHaoUserId(thirdOpenId); | ||
417 | - weChatSms.setReceiveUserId(teacher.getUserId()); | ||
418 | - weChatSms.setAppId(appDto.getAgentId()); | ||
419 | - weChatSms.setSecret(appDto.getAgentSecret()); | ||
420 | - String msgUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" + | ||
421 | - "schoolid=" + teacher.getSchoolId() + "&userId=" + teacher.getUserId() + "&name=" + teacher.getName() + "&TemplateId=" + templateId + | ||
422 | - "&pass=" + teacher.getPass() + "&type=4&soutype=2&time=" + DateUtils.date2String(new Date(), DateUtils.format1) + "&"; | ||
423 | - weChatSms.setMsgUrl(msgUrl); | ||
424 | - weChatSms.setTdType(TypeEnums.kaoqing.getType()); | ||
425 | - this.insertQYH(weChatSms); | ||
426 | - logger.info("企业号推送宿管—————" + templateId + "--------" + teacher.getName()); | ||
427 | - } | ||
428 | - } | ||
429 | - } | ||
430 | - | ||
431 | - //type 0 出入校 1 出入寝 | ||
432 | - private List<CensusKqDto> getCensus(int id, String templateId, int schoolId, String userId, int type) { | ||
433 | - List<CensusKqDto> list = new ArrayList<>(); | ||
434 | - String url = "http://campus.myjxt.com/api/EasyN/GeAttendDetailNew?schoolId=" + schoolId + | ||
435 | - "&id=" + id + "&templateID=" + templateId + "&type=" + type + "&userId=" + userId + "&time=" + DateUtils.date2String(new Date(), DateUtils.format1); | ||
436 | - JSONObject jsonObject = HttpClientUtils.httpGet(url); | ||
437 | - try { | ||
438 | - JSONArray data = (JSONArray) jsonObject.get("data"); | ||
439 | - for (int i = 0; i < data.size(); i++) { | ||
440 | - CensusKqDto censusKqDto = new CensusKqDto(); | ||
441 | - JSONObject object = data.getJSONObject(i); | ||
442 | - censusKqDto.setLeaveCount((Integer) object.get("leaveCount")); | ||
443 | - censusKqDto.setNotAttendCount((Integer) object.get("noAttendCount")); | ||
444 | - censusKqDto.setTargetName((String) object.get("name")); | ||
445 | - list.add(censusKqDto); | ||
446 | - } | ||
447 | - } catch (Exception e) { | ||
448 | - | ||
449 | - } | ||
450 | - return list; | ||
451 | - } | ||
452 | - | ||
453 | - private BigDecimal getAlarmCensus(int id, String templateId, int schoolId, int type) { | ||
454 | - int allNumber = 0, attendNumber = 0; | ||
455 | - List<Integer> list = scFeign.selectClassBySchoolId(schoolId); | ||
456 | - for (Integer classId : list) { | ||
457 | - String url = "http://campus.myjxt.com/api/EasyN/GeAttendDetail?classId=" + classId + | ||
458 | - "&id=" + id + "&templateID=" + templateId + "&type=" + type + "&time=" + DateUtils.date2String(new Date(), DateUtils.format1); | ||
459 | - JSONObject jsonObject = HttpClientUtils.httpGet(url); | ||
460 | - try { | ||
461 | - JSONObject data = (JSONObject) jsonObject.get("data"); | ||
462 | - attendNumber = attendNumber + (Integer) data.get("stuAttendCount"); | ||
463 | - allNumber = allNumber + (Integer) data.get("stuCount"); | ||
464 | - } catch (Exception e) { | ||
465 | - e.printStackTrace(); | ||
466 | - } | ||
467 | - } | ||
468 | - if (allNumber != 0) { | ||
469 | - BigDecimal pecrent = new BigDecimal(attendNumber).divide(new BigDecimal(allNumber), 10, BigDecimal.ROUND_HALF_DOWN); | ||
470 | - return pecrent; | ||
471 | - } else { | ||
472 | - return BigDecimal.ZERO; | ||
473 | - } | ||
474 | - | ||
475 | - } | ||
476 | - | ||
477 | - /** | ||
478 | - * @param id | ||
479 | - * @param templateId | ||
480 | - * @param schoolId | ||
481 | - * @param type | ||
482 | - * @return list(0) 出勤 list(1) 未出勤 List(2) 请假 | ||
483 | - */ | ||
484 | - private List<Integer> getIOTCensus(int id, String templateId, int schoolId, int type) { | ||
485 | - List<Integer> result = new ArrayList<>(); | ||
486 | - int attend = 0, unattend = 0, leave = 0; | ||
487 | - List<Integer> list = scFeign.selectClassBySchoolId(schoolId); | ||
488 | - for (Integer classId : list) { | ||
489 | - String url = "http://campus.myjxt.com/api/EasyN/GeAttendDetail?classId=" + classId + | ||
490 | - "&id=" + id + "&templateID=" + templateId + "&type=" + type + "&time=" + DateUtils.date2String(new Date(), DateUtils.format1); | ||
491 | - JSONObject jsonObject = HttpClientUtils.httpGet(url); | ||
492 | - try { | ||
493 | - JSONObject data = (JSONObject) jsonObject.get("data"); | ||
494 | - attend = attend + (Integer) data.get("stuAttendCount"); | ||
495 | - unattend = unattend + (Integer) data.get("noAttendCount"); | ||
496 | - leave = leave + (Integer) data.get("leaveCount"); | ||
497 | - } catch (Exception e) { | ||
498 | - e.printStackTrace(); | ||
499 | - } | ||
500 | - } | ||
501 | - result.add(attend); | ||
502 | - result.add(unattend); | ||
503 | - result.add(leave); | ||
504 | - return result; | ||
505 | - } | ||
506 | - | ||
507 | - | ||
508 | - private void insertDing(DingSms dingSms) { | ||
509 | - try { | ||
510 | - smsService.insertDing(dingSms); | ||
511 | - } catch (Exception e) { | ||
512 | - logger.info(e.toString()); | ||
513 | - } | ||
514 | - } | ||
515 | - | ||
516 | - private void insertQYH(WeChatSms weChatSms) { | ||
517 | - try { | ||
518 | - smsService.insertWeChat(weChatSms); | ||
519 | - } catch (Exception e) { | ||
520 | - logger.info(e.toString()); | ||
521 | - } | ||
522 | - } | ||
523 | - | ||
524 | - private void alarmPush(int schoolId) { | ||
525 | - String msg = "【考勤异动】"; | ||
526 | - try { | ||
527 | - SchoolDto schoolDto = scFeign.selectSchoolBySchoolId(schoolId); | ||
528 | - msg += schoolDto.getSchoolName() + "考勤有异动,请关注!"; | ||
529 | - sendMessage(schoolDto.getSchoolId(), opexList.get(0), msg); | ||
530 | - sendMessage(schoolDto.getSchoolId(), opexList.get(1), msg); | ||
531 | - sendMessage(schoolDto.getSchoolId(), integration, msg); | ||
532 | - String managerPhone = managerService.selectManagerById(schoolDto.getManagerUserId()); | ||
533 | - if (StringUtils.isNotBlank(managerPhone)) { | ||
534 | - sendMessage(schoolDto.getSchoolId(), managerPhone, msg); | ||
535 | - } | ||
536 | - } catch (Exception e) { | ||
537 | - e.printStackTrace(); | ||
538 | - } | ||
539 | - | ||
540 | - } | ||
541 | - | ||
542 | - private void sendMessage(int schoolId, String mobile, String msg) { | ||
543 | - String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); | ||
544 | - ShortMsg shortMsg = new ShortMsg(); | ||
545 | - shortMsg.setTableName("smsNew" + tableSuffix); | ||
546 | - shortMsg.setSchoolId(schoolId); | ||
547 | - shortMsg.setMobile(mobile); | ||
548 | - shortMsg.setMsg(msg); | ||
549 | - smsService.insertSMS(shortMsg); | ||
550 | - } | ||
551 | -} | 1 | +//package com.sincere.quartz.job; |
2 | +// | ||
3 | +//import com.alibaba.fastjson.JSONArray; | ||
4 | +//import com.alibaba.fastjson.JSONObject; | ||
5 | +//import com.sincere.common.dto.smartCampus.*; | ||
6 | +//import com.sincere.common.enums.PushTypeEnums; | ||
7 | +//import com.sincere.common.util.DateUtils; | ||
8 | +//import com.sincere.common.util.HttpClientUtils; | ||
9 | +//import com.sincere.quartz.enums.KqTypeEnums; | ||
10 | +//import com.sincere.quartz.enums.TypeEnums; | ||
11 | +//import com.sincere.quartz.feign.ScFeign; | ||
12 | +//import com.sincere.quartz.model.DingSms; | ||
13 | +//import com.sincere.quartz.model.ShortMsg; | ||
14 | +//import com.sincere.quartz.model.WeChatSms; | ||
15 | +//import com.sincere.quartz.service.ManagerService; | ||
16 | +//import com.sincere.quartz.service.SmsService; | ||
17 | +//import org.apache.commons.lang3.StringUtils; | ||
18 | +//import org.slf4j.Logger; | ||
19 | +//import org.slf4j.LoggerFactory; | ||
20 | +//import org.springframework.beans.factory.annotation.Autowired; | ||
21 | +//import org.springframework.scheduling.annotation.Scheduled; | ||
22 | +//import org.springframework.stereotype.Service; | ||
23 | +// | ||
24 | +//import java.math.BigDecimal; | ||
25 | +//import java.util.*; | ||
26 | +// | ||
27 | +///** | ||
28 | +// * 考勤任务推送调用 | ||
29 | +// * 主要推送盯盯以及企业号 | ||
30 | +// * | ||
31 | +// * @author chen | ||
32 | +// * @version 1.0 | ||
33 | +// * @date 2019/11/27 0027 17:05 | ||
34 | +// */ | ||
35 | +//@Service | ||
36 | +//public class KQJob { | ||
37 | +// | ||
38 | +// private Logger logger = LoggerFactory.getLogger(KQJob.class); | ||
39 | +// | ||
40 | +// @Autowired | ||
41 | +// ScFeign scFeign; | ||
42 | +// | ||
43 | +// @Autowired | ||
44 | +// SmsService smsService; | ||
45 | +// | ||
46 | +// @Autowired | ||
47 | +// ManagerService managerService; | ||
48 | +// | ||
49 | +// private static String iotUrl = "http://60.190.202.57:8035"; | ||
50 | +// | ||
51 | +// private static String date; | ||
52 | +// private static Map<String, String> map = new HashMap<>(); //学校 考勤推送map | ||
53 | +// | ||
54 | +// private static String alarmDate; | ||
55 | +// private static Map<String, String> alarmMap = new HashMap<>(); //考勤告警推送map | ||
56 | +// private static Map<String, BigDecimal> templateMap = new HashMap<>(); // 考勤比例 | ||
57 | +// | ||
58 | +// private static List<String> opexList; | ||
59 | +// private static String integration; | ||
60 | +// | ||
61 | +// static { | ||
62 | +// opexList = new ArrayList<>(); | ||
63 | +// opexList.add("15857566147"); //王汉栋 | ||
64 | +// opexList.add("13858485977"); //王楠彬 | ||
65 | +// | ||
66 | +// integration = "18767117554"; //林炜 | ||
67 | +// } | ||
68 | +// | ||
69 | +// @Scheduled(cron = "0 0-59 * * * ? ") | ||
70 | +// public void kaoQing() { | ||
71 | +// String now = DateUtils.date2String(new Date(), DateUtils.format1); | ||
72 | +// if (StringUtils.isBlank(date)) { | ||
73 | +// initMap(); | ||
74 | +// date = now; | ||
75 | +// } | ||
76 | +// if (!DateUtils.date2String(new Date(), DateUtils.format1).equals(date)) { | ||
77 | +// initMap(); | ||
78 | +// date = DateUtils.date2String(new Date(), DateUtils.format1); | ||
79 | +// } | ||
80 | +// //开始过滤数据 推送 | ||
81 | +// List<String> keyList = new ArrayList<>(); | ||
82 | +// for (Map.Entry<String, String> entity : map.entrySet()) { | ||
83 | +// String endTime = entity.getValue().split("_")[1]; | ||
84 | +// if (DateUtils.getDateDifference(new Date(), DateUtils.string2Date(now + " " + endTime + ":00", DateUtils.format2), "m") >= 2 | ||
85 | +// && DateUtils.getDateDifference(new Date(), DateUtils.string2Date(now + " " + endTime + ":00", DateUtils.format2), "m") < 5) { | ||
86 | +// String key = entity.getKey(); | ||
87 | +// String[] messageArray = key.split("_"); | ||
88 | +// if (messageArray[2].contains(PushTypeEnums.QIYEHAO.getType() + "")) { | ||
89 | +// logger.info("企业号推送:" + messageArray[0] + "__" + messageArray[1]); | ||
90 | +// weChatBatchPush(messageArray[0], Integer.valueOf(messageArray[1]), entity.getValue()); | ||
91 | +// } | ||
92 | +// if (messageArray[2].contains(PushTypeEnums.DING.getType() + "")) { | ||
93 | +// logger.info(("盯盯推送:" + messageArray[0] + "__" + messageArray[1])); | ||
94 | +// dingBatchPush(messageArray[0], Integer.valueOf(messageArray[1]), entity.getValue()); | ||
95 | +// } | ||
96 | +// keyList.add(key); | ||
97 | +// } | ||
98 | +// } | ||
99 | +// for (String key : keyList) { | ||
100 | +// map.remove(key); | ||
101 | +// } | ||
102 | +// } | ||
103 | +// | ||
104 | +// @Scheduled(cron = "0 0-59 * * * ? ") | ||
105 | +// public void alarmKaoQing() { | ||
106 | +// String now = DateUtils.date2String(new Date(), DateUtils.format1); | ||
107 | +// if (StringUtils.isBlank(alarmDate)) { | ||
108 | +// initAlarmMap(); | ||
109 | +// alarmDate = now; | ||
110 | +// } | ||
111 | +// if (!DateUtils.date2String(new Date(), DateUtils.format1).equals(alarmDate)) { | ||
112 | +// initAlarmMap(); | ||
113 | +// alarmDate = DateUtils.date2String(new Date(), DateUtils.format1); | ||
114 | +// } | ||
115 | +// //开始过滤数据 推送 | ||
116 | +// List<String> keyList = new ArrayList<>(); | ||
117 | +// for (Map.Entry<String, String> entity : alarmMap.entrySet()) { | ||
118 | +// String endTime = entity.getValue().split("_")[1]; | ||
119 | +// if (DateUtils.getDateDifference(new Date(), DateUtils.string2Date(now + " " + endTime + ":00", DateUtils.format2), "m") >= 2 | ||
120 | +// ) { | ||
121 | +// String key = entity.getKey(); | ||
122 | +// keyList.add(key); | ||
123 | +// //alarm(entity); //告警 | ||
124 | +// //insertIOT(entity); //iot | ||
125 | +// } | ||
126 | +// } | ||
127 | +// for (String key : keyList) { | ||
128 | +// map.remove(key); | ||
129 | +// } | ||
130 | +// } | ||
131 | +// | ||
132 | +// private void initAlarmMap() { | ||
133 | +// alarmMap = new HashMap<>(); | ||
134 | +// List<TemplateDto> list = scFeign.getAllTemplateAlarm(); | ||
135 | +// logger.info(("------考勤告警模板------")); | ||
136 | +// for (TemplateDto templateDto : list) { | ||
137 | +// String config = templateDto.getConfig(); | ||
138 | +// String[] array = config.split("<Template"); | ||
139 | +// for (int i = 1; i < array.length; i++) { | ||
140 | +// try { | ||
141 | +// String msg = array[i]; | ||
142 | +// String beginTime = msg.substring(msg.indexOf("BeginTime") + 11, msg.indexOf("BeginTime") + 16); | ||
143 | +// String endTime = msg.substring(msg.indexOf("EndTime") + 9, msg.indexOf("EndTime") + 14); | ||
144 | +// String templateId = msg.substring(msg.indexOf("TemplateID") + 12, msg.indexOf("TemplateID") + 22); | ||
145 | +// String Week = msg.substring(msg.indexOf("Week") + 6, msg.indexOf("Week") + 19); | ||
146 | +// String type = msg.substring(msg.indexOf("Type") + 6, msg.indexOf("Type") + 8); | ||
147 | +// type = type.replace("\"", ""); | ||
148 | +// int nowWeek = DateUtils.getWeek(); | ||
149 | +// if (Week.contains(nowWeek + "") && nowWeek != 6 && nowWeek != 0) { //周末不告警 | ||
150 | +// logger.info((templateId + "_" + templateDto.getSchoolId() + "------" + beginTime + "_" + endTime)); | ||
151 | +// alarmMap.put(templateId + "_" + templateDto.getSchoolId() + "_" + templateDto.getTitle(), beginTime + "_" + endTime + "_" + type + "_" + templateDto.getId()); | ||
152 | +// } | ||
153 | +// } catch (Exception e) { | ||
154 | +// e.printStackTrace(); | ||
155 | +// } | ||
156 | +// } | ||
157 | +// } | ||
158 | +// } | ||
159 | +// | ||
160 | +// //告警推送 | ||
161 | +// private void alarm(Map.Entry<String, String> entry) { | ||
162 | +// String templateId = entry.getKey().split("_")[0]; | ||
163 | +// String schoolId = entry.getKey().split("_")[1]; | ||
164 | +// String id = entry.getValue().split("_")[3]; | ||
165 | +// String type = entry.getValue().split("_")[2]; | ||
166 | +// | ||
167 | +// if (DateUtils.getWeek() == 2 || DateUtils.getWeek() == 5) { | ||
168 | +// //可以相差40% | ||
169 | +// BigDecimal percent = getAlarmCensus(Integer.valueOf(id), templateId, Integer.valueOf(schoolId), Integer.valueOf(type)); | ||
170 | +// if (templateMap.get(templateId) != null) { | ||
171 | +// if (percent.subtract(templateMap.get(templateId)).compareTo(new BigDecimal(0.4)) > 0 | ||
172 | +// || templateMap.get(templateId).subtract(percent).compareTo(new BigDecimal(0.4)) > 0) { | ||
173 | +// alarmPush(Integer.valueOf(schoolId)); | ||
174 | +// } | ||
175 | +// } | ||
176 | +// templateMap.put(templateId, percent); | ||
177 | +// } else { | ||
178 | +// //相差30% | ||
179 | +// BigDecimal percent = getAlarmCensus(Integer.valueOf(id), templateId, Integer.valueOf(schoolId), Integer.valueOf(type)); | ||
180 | +// if (templateMap.get(templateId) != null) { | ||
181 | +// if (percent.subtract(templateMap.get(templateId)).compareTo(new BigDecimal(0.3)) > 0 | ||
182 | +// || templateMap.get(templateId).subtract(percent).compareTo(new BigDecimal(0.3)) > 0) { | ||
183 | +// alarmPush(Integer.valueOf(schoolId)); | ||
184 | +// } | ||
185 | +// } | ||
186 | +// templateMap.put(templateId, percent); | ||
187 | +// } | ||
188 | +// } | ||
189 | +// | ||
190 | +// private void insertIOT(Map.Entry<String, String> entry) { | ||
191 | +// String templateId = entry.getKey().split("_")[0]; | ||
192 | +// String schoolId = entry.getKey().split("_")[1]; | ||
193 | +// String title = entry.getKey().split("_")[2]; | ||
194 | +// String id = entry.getValue().split("_")[3]; | ||
195 | +// String type = entry.getValue().split("_")[2]; | ||
196 | +// String beginTime = entry.getValue().split("_")[0]; | ||
197 | +// String endTime = entry.getValue().split("_")[1]; | ||
198 | +// | ||
199 | +// List<Integer> list = getIOTCensus(Integer.valueOf(id), templateId, Integer.valueOf(schoolId), Integer.valueOf(type)); | ||
200 | +// JSONObject object = new JSONObject(); | ||
201 | +// object.put("strTime", beginTime); | ||
202 | +// object.put("endTime", endTime); | ||
203 | +// object.put("inTime", DateUtils.date2String(new Date(), DateUtils.format1)); | ||
204 | +// object.put("noAttendanceCount", list.get(1)); | ||
205 | +// object.put("attendanceCount", list.get(0)); | ||
206 | +// object.put("leaveCount", list.get(2)); | ||
207 | +// object.put("templateName", title); | ||
208 | +// object.put("qianDaoIdId", id); | ||
209 | +// object.put("schoolId", schoolId); | ||
210 | +// object.put("templateId", templateId); | ||
211 | +// HttpClientUtils.httpPostJson(iotUrl + "/api/Association/addIntelligenceAttendance", object.toJSONString()); | ||
212 | +// } | ||
213 | +// | ||
214 | +// //初始化要推送的模板 | ||
215 | +// private void initMap() { | ||
216 | +// map = new HashMap<>(); | ||
217 | +// List<TemplateDto> list = scFeign.getAllTemplate(); | ||
218 | +// logger.info(("------需要推送的考勤模板------")); | ||
219 | +// for (TemplateDto templateDto : list) { | ||
220 | +// String config = templateDto.getConfig(); | ||
221 | +// String[] array = config.split("<Template"); | ||
222 | +// for (int i = 1; i < array.length; i++) { | ||
223 | +// try { | ||
224 | +// String msg = array[i]; | ||
225 | +// String beginTime = msg.substring(msg.indexOf("BeginTime") + 11, msg.indexOf("BeginTime") + 16); | ||
226 | +// String endTime = msg.substring(msg.indexOf("EndTime") + 9, msg.indexOf("EndTime") + 14); | ||
227 | +// String templateId = msg.substring(msg.indexOf("TemplateID") + 12, msg.indexOf("TemplateID") + 22); | ||
228 | +// String Week = msg.substring(msg.indexOf("Week") + 6, msg.indexOf("Week") + 19); | ||
229 | +// String type = msg.substring(msg.indexOf("Type") + 6, msg.indexOf("Type") + 8); | ||
230 | +// type = type.replace("\"", ""); | ||
231 | +// int nowWeek = DateUtils.getWeek(); | ||
232 | +// if (Week.contains(nowWeek + "")) { | ||
233 | +// logger.info((templateId + "_" + templateDto.getSchoolId() + "_" + templateDto.getType() + "------" + beginTime + "_" + endTime)); | ||
234 | +// map.put(templateId + "_" + templateDto.getSchoolId() + "_" + templateDto.getType(), beginTime + "_" + endTime + "_" + type + "_" + templateDto.getId()); | ||
235 | +// } | ||
236 | +// } catch (Exception e) { | ||
237 | +// e.printStackTrace(); | ||
238 | +// } | ||
239 | +// } | ||
240 | +// } | ||
241 | +// } | ||
242 | +// | ||
243 | +// //盯盯批量推送 | ||
244 | +// private void dingBatchPush(String templateId, int schoolId, String key) { | ||
245 | +// String[] times = key.split("_"); | ||
246 | +// AppDto appDto = scFeign.getApp(schoolId, 1); | ||
247 | +// if (Integer.valueOf(times[2]) < 7) { | ||
248 | +// //出入校 推班主任 | ||
249 | +// List<KqTeacherDto> list = scFeign.getTeacherList(schoolId); | ||
250 | +// for (KqTeacherDto teacher : list) { | ||
251 | +// dingSchoolPush(templateId, teacher, key, appDto, 0); | ||
252 | +// } | ||
253 | +// } else { | ||
254 | +// //出入寝 推班主任 | ||
255 | +// List<KqTeacherDto> list = scFeign.getTeacherList(schoolId); | ||
256 | +// for (KqTeacherDto teacher : list) { | ||
257 | +// dingSchoolPush(templateId, teacher, key, appDto, 1); | ||
258 | +// } | ||
259 | +// //推宿管 | ||
260 | +// List<KqTeacherDto> chamberList = scFeign.selectChamberTeacher(schoolId); | ||
261 | +// for (KqTeacherDto teacher : chamberList) { | ||
262 | +// dingChamberPush(templateId, teacher, key, appDto); | ||
263 | +// } | ||
264 | +// } | ||
265 | +// } | ||
266 | +// | ||
267 | +// //企业号批量推送 | ||
268 | +// private void weChatBatchPush(String templateId, int schoolId, String key) { | ||
269 | +// String[] times = key.split("_"); | ||
270 | +// AppDto appDto = scFeign.getApp(schoolId, 0); | ||
271 | +// if (Integer.valueOf(times[2]) < 7) { | ||
272 | +// //出入校 推班主任 | ||
273 | +// List<KqTeacherDto> list = scFeign.getTeacherList(schoolId); | ||
274 | +// for (KqTeacherDto teacher : list) { | ||
275 | +// weChatSchoolPush(templateId, teacher, key, appDto, 0); | ||
276 | +// } | ||
277 | +// } else { | ||
278 | +// //出入寝 推班主任 | ||
279 | +// List<KqTeacherDto> list = scFeign.getTeacherList(schoolId); | ||
280 | +// for (KqTeacherDto teacher : list) { | ||
281 | +// weChatSchoolPush(templateId, teacher, key, appDto, 1); | ||
282 | +// } | ||
283 | +// //推宿管 | ||
284 | +// List<KqTeacherDto> chamberList = scFeign.selectChamberTeacher(schoolId); | ||
285 | +// for (KqTeacherDto teacher : chamberList) { | ||
286 | +// weChatChamberPush(templateId, teacher, key, appDto); | ||
287 | +// } | ||
288 | +// } | ||
289 | +// } | ||
290 | +// | ||
291 | +// //盯盯推送班主任 | ||
292 | +// private void dingSchoolPush(String templateId, KqTeacherDto teacher, String key, AppDto appDto, int type) { | ||
293 | +// String[] times = key.split("_"); | ||
294 | +// String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); | ||
295 | +// String thirdOpenId = scFeign.getThirdId(teacher.getUserId(), 0); | ||
296 | +// if (StringUtils.isNotBlank(thirdOpenId)) { | ||
297 | +// List<CensusKqDto> censusKqDtos = getCensus(Integer.valueOf(times[3]), templateId, teacher.getSchoolId(), teacher.getUserId(), type); | ||
298 | +// if (censusKqDtos != null && censusKqDtos.size() > 0) { | ||
299 | +// String message = ""; | ||
300 | +// for (CensusKqDto censusKqDto : censusKqDtos) { | ||
301 | +// message += "[" + censusKqDto.getTargetName() + "]未考勤" + censusKqDto.getNotAttendCount() + "人,请假" + censusKqDto.getLeaveCount() + "人;"; | ||
302 | +// } | ||
303 | +// DingSms dingSms = new DingSms(); | ||
304 | +// dingSms.setName(teacher.getName()); | ||
305 | +// dingSms.setTableName("DingSmsNew" + tableSuffix); | ||
306 | +// dingSms.setMsg("报告类型:" + KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - " + | ||
307 | +// "签到日期:" + DateUtils.date2String(new Date(), DateUtils.format1) + "(" + DateUtils.getWeekName() + ") \n - " + | ||
308 | +// "签到时间:" + times[0] + "-" + times[1] + " \n - " + | ||
309 | +// "整体数据:" + message); | ||
310 | +// String wapUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" + | ||
311 | +// "schoolid=" + teacher.getSchoolId() + "&userId=" + teacher.getUserId() + "&name=" + teacher.getName() + "&TemplateId=" + templateId + | ||
312 | +// "&data=" + thirdOpenId + "&type=1&stype=4&mobile=" + teacher.getMobile() + "&pass=" + teacher.getPass() + | ||
313 | +// "&face=&sourcetype=16&soutype=3×tamp=" + DateUtils.getDate() + "&time=" + DateUtils.date2String(new Date(), DateUtils.format1); | ||
314 | +// dingSms.setSchoolId(teacher.getSchoolId()); | ||
315 | +// dingSms.setDingUserId(thirdOpenId); | ||
316 | +// dingSms.setAgentId(appDto.getAgentId()); | ||
317 | +// dingSms.setWapUrl(wapUrl); | ||
318 | +// dingSms.setReceiveUserId(teacher.getUserId()); | ||
319 | +// dingSms.setTdType(TypeEnums.kaoqing.getType()); | ||
320 | +// this.insertDing(dingSms); | ||
321 | +// logger.info("盯盯推送班主任—————" + templateId + "--------" + teacher.getName()); | ||
322 | +// } | ||
323 | +// } | ||
324 | +// } | ||
325 | +// | ||
326 | +// //盯盯推送宿管 | ||
327 | +// private void dingChamberPush(String templateId, KqTeacherDto teacher, String key, AppDto appDto) { | ||
328 | +// String[] times = key.split("_"); | ||
329 | +// String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); | ||
330 | +// String thirdOpenId = scFeign.getThirdId(teacher.getUserId(), 0); | ||
331 | +// if (StringUtils.isNotBlank(thirdOpenId)) { | ||
332 | +// List<CensusKqDto> censusKqDtos = getCensus(Integer.valueOf(times[3]), templateId, teacher.getSchoolId(), teacher.getUserId(), 1); | ||
333 | +// if (censusKqDtos != null && censusKqDtos.size() > 0) { | ||
334 | +// String message = ""; | ||
335 | +// for (CensusKqDto censusKqDto : censusKqDtos) { | ||
336 | +// message += "[" + censusKqDto.getTargetName() + "]未考勤" + censusKqDto.getNotAttendCount() + "人,请假" + censusKqDto.getLeaveCount() + "人;"; | ||
337 | +// } | ||
338 | +// DingSms dingSms = new DingSms(); | ||
339 | +// dingSms.setName(teacher.getName()); | ||
340 | +// dingSms.setTableName("DingSmsNew" + tableSuffix); | ||
341 | +// dingSms.setMsg("报告类型:" + KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - " + | ||
342 | +// "签到日期:" + DateUtils.date2String(new Date(), DateUtils.format1) + "(" + DateUtils.getWeekName() + ") \n - " + | ||
343 | +// "签到时间:" + times[0] + "-" + times[1] + " \n - " + | ||
344 | +// "整体数据:" + message); | ||
345 | +// String msgUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" + | ||
346 | +// "schoolid=" + teacher.getSchoolId() + "&userId=" + teacher.getUserId() + "&name=" + teacher.getName() + "&TemplateId=" + templateId + | ||
347 | +// "&pass=" + teacher.getPass() + "&type=4&soutype=3&time=" + DateUtils.date2String(new Date(), DateUtils.format1); | ||
348 | +// dingSms.setSchoolId(teacher.getSchoolId()); | ||
349 | +// dingSms.setDingUserId(thirdOpenId); | ||
350 | +// dingSms.setAgentId(appDto.getAgentId()); | ||
351 | +// dingSms.setWapUrl(msgUrl); | ||
352 | +// dingSms.setReceiveUserId(teacher.getUserId()); | ||
353 | +// dingSms.setTdType(TypeEnums.kaoqing.getType()); | ||
354 | +// this.insertDing(dingSms); | ||
355 | +// logger.info("盯盯推送宿管—————" + templateId + "--------" + teacher.getName()); | ||
356 | +// } | ||
357 | +// } | ||
358 | +// } | ||
359 | +// | ||
360 | +// //企业号推送班主任 | ||
361 | +// private void weChatSchoolPush(String templateId, KqTeacherDto teacher, String key, AppDto appDto, int type) { | ||
362 | +// String[] times = key.split("_"); | ||
363 | +// String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); | ||
364 | +// String thirdOpenId = scFeign.getThirdId(teacher.getUserId(), 1); | ||
365 | +// if (StringUtils.isNotBlank(thirdOpenId)) { | ||
366 | +// List<CensusKqDto> censusKqDtos = getCensus(Integer.valueOf(times[3]), templateId, teacher.getSchoolId(), teacher.getUserId(), type); | ||
367 | +// if (censusKqDtos != null && censusKqDtos.size() > 0) { | ||
368 | +// String message = ""; | ||
369 | +// for (CensusKqDto censusKqDto : censusKqDtos) { | ||
370 | +// message += "[" + censusKqDto.getTargetName() + "]未考勤" + censusKqDto.getNotAttendCount() + "人,请假" + censusKqDto.getLeaveCount() + "人;"; | ||
371 | +// } | ||
372 | +// WeChatSms weChatSms = new WeChatSms(); | ||
373 | +// weChatSms.setTableName("qyhSmsNew" + tableSuffix); | ||
374 | +// weChatSms.setMsg("报告类型:" + KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - " + | ||
375 | +// "签到日期:" + DateUtils.date2String(new Date(), DateUtils.format1) + "(" + DateUtils.getWeekName() + ") \n - " + | ||
376 | +// "签到时间:" + times[0] + "-" + times[1] + " \n - " + | ||
377 | +// "整体数据:" + message); | ||
378 | +// weChatSms.setSchoolId(teacher.getSchoolId()); | ||
379 | +// weChatSms.setName(teacher.getName()); | ||
380 | +// weChatSms.setQiYeHaoUserId(thirdOpenId); | ||
381 | +// weChatSms.setReceiveUserId(teacher.getUserId()); | ||
382 | +// weChatSms.setAppId(appDto.getAgentId()); | ||
383 | +// weChatSms.setSecret(appDto.getAgentSecret()); | ||
384 | +// String msgUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" + | ||
385 | +// "schoolid=" + teacher.getSchoolId() + "&userId=" + teacher.getUserId() + "&name=" + teacher.getName() + "&TemplateId=" + templateId + | ||
386 | +// "&data=" + thirdOpenId + "&type=1&stype=3&mobile=" + teacher.getMobile() + "&pass=" + teacher.getPass() + | ||
387 | +// "&face=" + teacher.getFace() + "&sourcetype=16&soutype=2×tamp=" + DateUtils.getDate() + "&time=" + DateUtils.date2String(new Date(), DateUtils.format1) + "&"; | ||
388 | +// weChatSms.setMsgUrl(msgUrl); | ||
389 | +// weChatSms.setTdType(TypeEnums.kaoqing.getType()); | ||
390 | +// this.insertQYH(weChatSms); | ||
391 | +// logger.info("企业号推送班主任—————" + templateId + "--------" + teacher.getName()); | ||
392 | +// } | ||
393 | +// } | ||
394 | +// } | ||
395 | +// | ||
396 | +// //企业号推送宿管 | ||
397 | +// private void weChatChamberPush(String templateId, KqTeacherDto teacher, String key, AppDto appDto) { | ||
398 | +// String[] times = key.split("_"); | ||
399 | +// String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); | ||
400 | +// String thirdOpenId = scFeign.getThirdId(teacher.getUserId(), 1); | ||
401 | +// if (StringUtils.isNotBlank(thirdOpenId)) { | ||
402 | +// List<CensusKqDto> censusKqDtos = getCensus(Integer.valueOf(times[3]), templateId, teacher.getSchoolId(), teacher.getUserId(), 1); | ||
403 | +// if (censusKqDtos != null && censusKqDtos.size() > 0) { | ||
404 | +// String message = ""; | ||
405 | +// for (CensusKqDto censusKqDto : censusKqDtos) { | ||
406 | +// message += "[" + censusKqDto.getTargetName() + "]未考勤" + censusKqDto.getNotAttendCount() + "人,请假" + censusKqDto.getLeaveCount() + "人;"; | ||
407 | +// } | ||
408 | +// WeChatSms weChatSms = new WeChatSms(); | ||
409 | +// weChatSms.setTableName("qyhSmsNew" + tableSuffix); | ||
410 | +// weChatSms.setMsg("报告类型:" + KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - " + | ||
411 | +// "签到日期:" + DateUtils.date2String(new Date(), DateUtils.format1) + "(" + DateUtils.getWeekName() + ") \n - " + | ||
412 | +// "签到时间:" + times[0] + "-" + times[1] + " \n - " + | ||
413 | +// "整体数据:" + message); | ||
414 | +// weChatSms.setSchoolId(teacher.getSchoolId()); | ||
415 | +// weChatSms.setName(teacher.getName()); | ||
416 | +// weChatSms.setQiYeHaoUserId(thirdOpenId); | ||
417 | +// weChatSms.setReceiveUserId(teacher.getUserId()); | ||
418 | +// weChatSms.setAppId(appDto.getAgentId()); | ||
419 | +// weChatSms.setSecret(appDto.getAgentSecret()); | ||
420 | +// String msgUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" + | ||
421 | +// "schoolid=" + teacher.getSchoolId() + "&userId=" + teacher.getUserId() + "&name=" + teacher.getName() + "&TemplateId=" + templateId + | ||
422 | +// "&pass=" + teacher.getPass() + "&type=4&soutype=2&time=" + DateUtils.date2String(new Date(), DateUtils.format1) + "&"; | ||
423 | +// weChatSms.setMsgUrl(msgUrl); | ||
424 | +// weChatSms.setTdType(TypeEnums.kaoqing.getType()); | ||
425 | +// this.insertQYH(weChatSms); | ||
426 | +// logger.info("企业号推送宿管—————" + templateId + "--------" + teacher.getName()); | ||
427 | +// } | ||
428 | +// } | ||
429 | +// } | ||
430 | +// | ||
431 | +// //type 0 出入校 1 出入寝 | ||
432 | +// private List<CensusKqDto> getCensus(int id, String templateId, int schoolId, String userId, int type) { | ||
433 | +// List<CensusKqDto> list = new ArrayList<>(); | ||
434 | +// String url = "http://campus.myjxt.com/api/EasyN/GeAttendDetailNew?schoolId=" + schoolId + | ||
435 | +// "&id=" + id + "&templateID=" + templateId + "&type=" + type + "&userId=" + userId + "&time=" + DateUtils.date2String(new Date(), DateUtils.format1); | ||
436 | +// JSONObject jsonObject = HttpClientUtils.httpGet(url); | ||
437 | +// try { | ||
438 | +// JSONArray data = (JSONArray) jsonObject.get("data"); | ||
439 | +// for (int i = 0; i < data.size(); i++) { | ||
440 | +// CensusKqDto censusKqDto = new CensusKqDto(); | ||
441 | +// JSONObject object = data.getJSONObject(i); | ||
442 | +// censusKqDto.setLeaveCount((Integer) object.get("leaveCount")); | ||
443 | +// censusKqDto.setNotAttendCount((Integer) object.get("noAttendCount")); | ||
444 | +// censusKqDto.setTargetName((String) object.get("name")); | ||
445 | +// list.add(censusKqDto); | ||
446 | +// } | ||
447 | +// } catch (Exception e) { | ||
448 | +// | ||
449 | +// } | ||
450 | +// return list; | ||
451 | +// } | ||
452 | +// | ||
453 | +// private BigDecimal getAlarmCensus(int id, String templateId, int schoolId, int type) { | ||
454 | +// int allNumber = 0, attendNumber = 0; | ||
455 | +// List<Integer> list = scFeign.selectClassBySchoolId(schoolId); | ||
456 | +// for (Integer classId : list) { | ||
457 | +// String url = "http://campus.myjxt.com/api/EasyN/GeAttendDetail?classId=" + classId + | ||
458 | +// "&id=" + id + "&templateID=" + templateId + "&type=" + type + "&time=" + DateUtils.date2String(new Date(), DateUtils.format1); | ||
459 | +// JSONObject jsonObject = HttpClientUtils.httpGet(url); | ||
460 | +// try { | ||
461 | +// JSONObject data = (JSONObject) jsonObject.get("data"); | ||
462 | +// attendNumber = attendNumber + (Integer) data.get("stuAttendCount"); | ||
463 | +// allNumber = allNumber + (Integer) data.get("stuCount"); | ||
464 | +// } catch (Exception e) { | ||
465 | +// e.printStackTrace(); | ||
466 | +// } | ||
467 | +// } | ||
468 | +// if (allNumber != 0) { | ||
469 | +// BigDecimal pecrent = new BigDecimal(attendNumber).divide(new BigDecimal(allNumber), 10, BigDecimal.ROUND_HALF_DOWN); | ||
470 | +// return pecrent; | ||
471 | +// } else { | ||
472 | +// return BigDecimal.ZERO; | ||
473 | +// } | ||
474 | +// | ||
475 | +// } | ||
476 | +// | ||
477 | +// /** | ||
478 | +// * @param id | ||
479 | +// * @param templateId | ||
480 | +// * @param schoolId | ||
481 | +// * @param type | ||
482 | +// * @return list(0) 出勤 list(1) 未出勤 List(2) 请假 | ||
483 | +// */ | ||
484 | +// private List<Integer> getIOTCensus(int id, String templateId, int schoolId, int type) { | ||
485 | +// List<Integer> result = new ArrayList<>(); | ||
486 | +// int attend = 0, unattend = 0, leave = 0; | ||
487 | +// List<Integer> list = scFeign.selectClassBySchoolId(schoolId); | ||
488 | +// for (Integer classId : list) { | ||
489 | +// String url = "http://campus.myjxt.com/api/EasyN/GeAttendDetail?classId=" + classId + | ||
490 | +// "&id=" + id + "&templateID=" + templateId + "&type=" + type + "&time=" + DateUtils.date2String(new Date(), DateUtils.format1); | ||
491 | +// JSONObject jsonObject = HttpClientUtils.httpGet(url); | ||
492 | +// try { | ||
493 | +// JSONObject data = (JSONObject) jsonObject.get("data"); | ||
494 | +// attend = attend + (Integer) data.get("stuAttendCount"); | ||
495 | +// unattend = unattend + (Integer) data.get("noAttendCount"); | ||
496 | +// leave = leave + (Integer) data.get("leaveCount"); | ||
497 | +// } catch (Exception e) { | ||
498 | +// e.printStackTrace(); | ||
499 | +// } | ||
500 | +// } | ||
501 | +// result.add(attend); | ||
502 | +// result.add(unattend); | ||
503 | +// result.add(leave); | ||
504 | +// return result; | ||
505 | +// } | ||
506 | +// | ||
507 | +// | ||
508 | +// private void insertDing(DingSms dingSms) { | ||
509 | +// try { | ||
510 | +// smsService.insertDing(dingSms); | ||
511 | +// } catch (Exception e) { | ||
512 | +// logger.info(e.toString()); | ||
513 | +// } | ||
514 | +// } | ||
515 | +// | ||
516 | +// private void insertQYH(WeChatSms weChatSms) { | ||
517 | +// try { | ||
518 | +// smsService.insertWeChat(weChatSms); | ||
519 | +// } catch (Exception e) { | ||
520 | +// logger.info(e.toString()); | ||
521 | +// } | ||
522 | +// } | ||
523 | +// | ||
524 | +// private void alarmPush(int schoolId) { | ||
525 | +// String msg = "【考勤异动】"; | ||
526 | +// try { | ||
527 | +// SchoolDto schoolDto = scFeign.selectSchoolBySchoolId(schoolId); | ||
528 | +// msg += schoolDto.getSchoolName() + "考勤有异动,请关注!"; | ||
529 | +// sendMessage(schoolDto.getSchoolId(), opexList.get(0), msg); | ||
530 | +// sendMessage(schoolDto.getSchoolId(), opexList.get(1), msg); | ||
531 | +// sendMessage(schoolDto.getSchoolId(), integration, msg); | ||
532 | +// String managerPhone = managerService.selectManagerById(schoolDto.getManagerUserId()); | ||
533 | +// if (StringUtils.isNotBlank(managerPhone)) { | ||
534 | +// sendMessage(schoolDto.getSchoolId(), managerPhone, msg); | ||
535 | +// } | ||
536 | +// } catch (Exception e) { | ||
537 | +// e.printStackTrace(); | ||
538 | +// } | ||
539 | +// | ||
540 | +// } | ||
541 | +// | ||
542 | +// private void sendMessage(int schoolId, String mobile, String msg) { | ||
543 | +// String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); | ||
544 | +// ShortMsg shortMsg = new ShortMsg(); | ||
545 | +// shortMsg.setTableName("smsNew" + tableSuffix); | ||
546 | +// shortMsg.setSchoolId(schoolId); | ||
547 | +// shortMsg.setMobile(mobile); | ||
548 | +// shortMsg.setMsg(msg); | ||
549 | +// smsService.insertSMS(shortMsg); | ||
550 | +// } | ||
551 | +//} |
cloud/quartz/src/main/java/com/sincere/quartz/job/SyncJob.java
1 | -package com.sincere.quartz.job; | ||
2 | - | ||
3 | -import com.sincere.quartz.third.yixueyun.YXYReadService; | ||
4 | -import com.sincere.quartz.third.yixueyun.YXYWriteService; | ||
5 | -import org.springframework.beans.factory.annotation.Autowired; | ||
6 | -import org.springframework.scheduling.annotation.Scheduled; | ||
7 | -import org.springframework.stereotype.Service; | ||
8 | - | ||
9 | -/** | ||
10 | - * @author chen | ||
11 | - * @version 1.0 | ||
12 | - * @date 2019/12/24 0024 10:54 | ||
13 | - */ | ||
14 | -@Service | ||
15 | -public class SyncJob { | ||
16 | - | ||
17 | - @Autowired | ||
18 | - YXYWriteService yxyWriteService; | ||
19 | - | ||
20 | - @Autowired | ||
21 | - YXYReadService yxyReadService; | ||
22 | - | ||
23 | - @Scheduled(cron = "30 1 22 * * ? ") | ||
24 | - public void Sync(){ | ||
25 | - //翼校通的同步 之后还有钉钉的同步等等 | ||
26 | - yxyReadService.sync(); | ||
27 | - yxyWriteService.sync(); | ||
28 | - } | ||
29 | -} | 1 | +//package com.sincere.quartz.job; |
2 | +// | ||
3 | +//import com.sincere.quartz.third.yixueyun.YXYReadService; | ||
4 | +//import com.sincere.quartz.third.yixueyun.YXYWriteService; | ||
5 | +//import org.springframework.beans.factory.annotation.Autowired; | ||
6 | +//import org.springframework.scheduling.annotation.Scheduled; | ||
7 | +//import org.springframework.stereotype.Service; | ||
8 | +// | ||
9 | +///** | ||
10 | +// * @author chen | ||
11 | +// * @version 1.0 | ||
12 | +// * @date 2019/12/24 0024 10:54 | ||
13 | +// */ | ||
14 | +//@Service | ||
15 | +//public class SyncJob { | ||
16 | +// | ||
17 | +// @Autowired | ||
18 | +// YXYWriteService yxyWriteService; | ||
19 | +// | ||
20 | +// @Autowired | ||
21 | +// YXYReadService yxyReadService; | ||
22 | +// | ||
23 | +// @Scheduled(cron = "30 1 22 * * ? ") | ||
24 | +// public void Sync(){ | ||
25 | +// //翼校通的同步 之后还有钉钉的同步等等 | ||
26 | +// yxyReadService.sync(); | ||
27 | +// yxyWriteService.sync(); | ||
28 | +// } | ||
29 | +//} |