Commit 84e52044ac349d95b21f298d6df8b591e93403ab

Authored by 徐泉
1 parent 0a43b0af
Exists in master

下发权限修改

cloud/dahua/src/main/java/com/example/dahua/async/SendUserInfoTask.java
@@ -4,10 +4,7 @@ package com.example.dahua.async; @@ -4,10 +4,7 @@ package com.example.dahua.async;
4 4
5 import com.alibaba.fastjson.JSON; 5 import com.alibaba.fastjson.JSON;
6 import com.example.dahua.MyTask; 6 import com.example.dahua.MyTask;
7 -import com.example.dahua.bean.AttendanceBean;  
8 -import com.example.dahua.bean.SendRecordBean;  
9 -import com.example.dahua.bean.TeacherBean;  
10 -import com.example.dahua.bean.UserInfoBean; 7 +import com.example.dahua.bean.*;
11 import com.example.dahua.common.Res; 8 import com.example.dahua.common.Res;
12 import com.example.dahua.dao.UserDao; 9 import com.example.dahua.dao.UserDao;
13 import com.example.dahua.enums.*; 10 import com.example.dahua.enums.*;
@@ -16,10 +13,13 @@ import com.example.dahua.lib.FilePath; @@ -16,10 +13,13 @@ import com.example.dahua.lib.FilePath;
16 import com.example.dahua.lib.NetSDKLib; 13 import com.example.dahua.lib.NetSDKLib;
17 import com.example.dahua.lib.ToolKits; 14 import com.example.dahua.lib.ToolKits;
18 import com.example.dahua.module.GateModule; 15 import com.example.dahua.module.GateModule;
  16 +import com.example.dahua.service.PermissFaceService;
19 import com.example.dahua.utils.FileUtils; 17 import com.example.dahua.utils.FileUtils;
20 import com.example.dahua.utils.HttpUtils; 18 import com.example.dahua.utils.HttpUtils;
  19 +import com.example.dahua.utils.JsonUtils;
21 import com.example.dahua.xiananDao.SendRecordDao; 20 import com.example.dahua.xiananDao.SendRecordDao;
22 import com.sun.jna.Memory; 21 import com.sun.jna.Memory;
  22 +import io.swagger.models.auth.In;
23 import lombok.extern.slf4j.Slf4j; 23 import lombok.extern.slf4j.Slf4j;
24 import org.springframework.beans.factory.annotation.Autowired; 24 import org.springframework.beans.factory.annotation.Autowired;
25 import org.springframework.http.ResponseEntity; 25 import org.springframework.http.ResponseEntity;
@@ -44,6 +44,8 @@ public class SendUserInfoTask { @@ -44,6 +44,8 @@ public class SendUserInfoTask {
44 44
45 @Autowired 45 @Autowired
46 SendRecordDao sendRecordDao; 46 SendRecordDao sendRecordDao;
  47 + @Autowired
  48 + PermissFaceService permissFaceService;
47 49
48 /** 50 /**
49 * 下发单个用户人脸任务 51 * 下发单个用户人脸任务
@@ -301,6 +303,7 @@ public class SendUserInfoTask { @@ -301,6 +303,7 @@ public class SendUserInfoTask {
301 } 303 }
302 } 304 }
303 305
  306 +
304 /** 307 /**
305 * 下发人脸/卡信息 308 * 下发人脸/卡信息
306 * @param attendanceBean 309 * @param attendanceBean
@@ -323,6 +326,10 @@ public class SendUserInfoTask { @@ -323,6 +326,10 @@ public class SendUserInfoTask {
323 calendar.add(Calendar.YEAR, 4); 326 calendar.add(Calendar.YEAR, 4);
324 String endTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime()); 327 String endTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime());
325 328
  329 + String studentType = userDao.getStudentType(attendanceBean.getSchool_id(),sendRecordBean.getCustomerid());
  330 + //通道号
  331 + int channel = analysisPermission(Integer.parseInt(attendanceBean.getSchool_id()),studentType);
  332 +
326 /** 333 /**
327 * 注:用户下发逻辑 334 * 注:用户下发逻辑
328 * 下发时,先从下发记录表:SZ_Student_RecoderNo 获取当前用户下发记录集编号,存在于设备的,新增卡号时返回, 335 * 下发时,先从下发记录表:SZ_Student_RecoderNo 获取当前用户下发记录集编号,存在于设备的,新增卡号时返回,
@@ -371,7 +378,7 @@ public class SendUserInfoTask { @@ -371,7 +378,7 @@ public class SendUserInfoTask {
371 if (bCardFlags) { 378 if (bCardFlags) {
372 //修改设备卡信息 379 //修改设备卡信息
373 boolean isEditCard = GateModule.modifyCard(Integer.parseInt(recordNo),cardNum, user_id, name, "123456", Res.string().getCardStatusInt(1), 380 boolean isEditCard = GateModule.modifyCard(Integer.parseInt(recordNo),cardNum, user_id, name, "123456", Res.string().getCardStatusInt(1),
374 - Res.string().getCardTypeInt(1), 0, 0, 1, startTime, endTime, loginHandleLong, userType,cardErrNum); 381 + Res.string().getCardTypeInt(1), 0, 0, 1, startTime, endTime, loginHandleLong, userType,cardErrNum,channel);
375 382
376 if (isEditCard) { 383 if (isEditCard) {
377 //修改卡成功, 更新下发记录集编号表 384 //修改卡成功, 更新下发记录集编号表
@@ -387,7 +394,7 @@ public class SendUserInfoTask { @@ -387,7 +394,7 @@ public class SendUserInfoTask {
387 userDao.deleteRecordNo(user_id, Integer.parseInt(recordNo)); 394 userDao.deleteRecordNo(user_id, Integer.parseInt(recordNo));
388 //重新下发卡号至设备 395 //重新下发卡号至设备
389 newRecordNo = GateModule.insertCard(cardNum, user_id, name, "123456", Res.string().getCardStatusInt(1), 396 newRecordNo = GateModule.insertCard(cardNum, user_id, name, "123456", Res.string().getCardStatusInt(1),
390 - Res.string().getCardTypeInt(1), 0, 1, 1, startTime, endTime, loginHandleLong,userType,cardErrNum); 397 + Res.string().getCardTypeInt(1), 0, 1, 1, startTime, endTime, loginHandleLong,userType,cardErrNum,channel);
391 398
392 //下发卡至设备,返回值不为-1为下发成功,保存下发记录集编号表 399 //下发卡至设备,返回值不为-1为下发成功,保存下发记录集编号表
393 if (newRecordNo != -1) { 400 if (newRecordNo != -1) {
@@ -401,7 +408,7 @@ public class SendUserInfoTask { @@ -401,7 +408,7 @@ public class SendUserInfoTask {
401 //新增卡信息, 新增人脸信息至设备 408 //新增卡信息, 新增人脸信息至设备
402 newRecordNo = GateModule.insertCard(cardNum, user_id, name, "123456" 409 newRecordNo = GateModule.insertCard(cardNum, user_id, name, "123456"
403 , Res.string().getCardStatusInt(1), Res.string().getCardTypeInt(1), 0, 1 410 , Res.string().getCardStatusInt(1), Res.string().getCardTypeInt(1), 0, 1
404 - , 1, startTime, endTime, loginHandleLong,userType,cardErrNum); 411 + , 1, startTime, endTime, loginHandleLong,userType,cardErrNum,channel);
405 412
406 //下发卡至设备,返回值不为-1为下发成功,保存下发记录集编号表 413 //下发卡至设备,返回值不为-1为下发成功,保存下发记录集编号表
407 if (newRecordNo != -1) { 414 if (newRecordNo != -1) {
@@ -419,7 +426,7 @@ public class SendUserInfoTask { @@ -419,7 +426,7 @@ public class SendUserInfoTask {
419 log.info("下发人脸和卡号成功, sendRecordBean: "+ JSON.toJSONString(sendRecordBean)); 426 log.info("下发人脸和卡号成功, sendRecordBean: "+ JSON.toJSONString(sendRecordBean));
420 427
421 //人脸下发成功记录, 先判断是否已经存在了 428 //人脸下发成功记录, 先判断是否已经存在了
422 - List<SendRecordBean> sendRecordBeanList = sendRecordDao.getFaceSucceIsexit(sendRecordBean.getDeviceID(), String.valueOf(sendRecordBean.getSchoolId()), sendRecordBean.getCustomerid()); 429 + List<SendRecordBean> sendRecordBeanList = sendRecordDao.getFaceSucceIsexit(sendRecordBean.getDeviceID(), String.valueOf(sendRecordBean.getSchoolId()), sendRecordBean.getNum());
423 if (sendRecordBeanList.size() > 0) { 430 if (sendRecordBeanList.size() > 0) {
424 //删除重复数据 431 //删除重复数据
425 for (int i = 0; i < sendRecordBeanList.size(); i++) { 432 for (int i = 0; i < sendRecordBeanList.size(); i++) {
@@ -475,6 +482,41 @@ public class SendUserInfoTask { @@ -475,6 +482,41 @@ public class SendUserInfoTask {
475 } 482 }
476 } 483 }
477 484
  485 + private static JsonUtils objectMapper = JsonUtils.nonEmptyMapper();
  486 +
  487 + /**
  488 + * 解析权限模板、获取下发通道号
  489 + * @param schoolId
  490 + * @param studentType
  491 + * @return
  492 + */
  493 + private int analysisPermission(int schoolId, String studentType){
  494 + List<PermissionFaceBean> permissionFaceBeans = permissFaceService.getPermissionList(schoolId);
  495 + String channel ="";
  496 + if(permissionFaceBeans.size()>0){
  497 + for(PermissionFaceBean permissionFaceBean : permissionFaceBeans){
  498 + String json = permissionFaceBean.getPermissionJson();
  499 + PermissionBean permissionBean = objectMapper.fromJson(json,PermissionBean.class);
  500 + //学生考勤类型 1:通校生,2:住校生,3:全部
  501 + String studentTypeStr = permissionBean.getStudentType();
  502 + if(studentTypeStr.indexOf(studentType)!=-1){
  503 + channel= permissionFaceBean.getChannel();
  504 + }
  505 + }
  506 + }
  507 + return Integer.parseInt(channel);
  508 + }
  509 +
  510 +
  511 + public static void main(String[] args) {
  512 + String json ="{\"studentType\":\"1,2\",\"deviceIds\":[\"aaa\"],\"weekDays\":[{\"weekTimes\":[{\"startTime\":\"12:00\",\"endTime\":\"06:00\"}],\"sex\":\"1,2\",\"weekDay\":\"0,1,2\"}]}";
  513 + PermissionBean permissionBean = objectMapper.fromJson(json,PermissionBean.class);
  514 + String studentType = permissionBean.getStudentType();
  515 + if(studentType.indexOf("1")!=-1){
  516 + System.out.println(true);
  517 + }
  518 + }
  519 +
478 /** 520 /**
479 * 解析下发异常信息 521 * 解析下发异常信息
480 * @param cardErrNum 522 * @param cardErrNum
@@ -506,9 +548,6 @@ public class SendUserInfoTask { @@ -506,9 +548,6 @@ public class SendUserInfoTask {
506 return sb.toString(); 548 return sb.toString();
507 } 549 }
508 550
509 - public static void main(String[] args) {  
510 - System.out.println(new SendUserInfoTask().analysisErrorMsg("",""));  
511 - }  
512 551
513 /** 552 /**
514 * 添加人脸下发失败记录 553 * 添加人脸下发失败记录
cloud/dahua/src/main/java/com/example/dahua/bean/PermissionBean.java
@@ -15,6 +15,12 @@ public class PermissionBean implements Serializable { @@ -15,6 +15,12 @@ public class PermissionBean implements Serializable {
15 @ApiModelProperty("用逗号隔开,1:通校生,2:住校生,3:全部") 15 @ApiModelProperty("用逗号隔开,1:通校生,2:住校生,3:全部")
16 private String studentType; 16 private String studentType;
17 17
  18 + @ApiModelProperty("权限通道号")
  19 + private String channel;
  20 +
  21 + @ApiModelProperty("权限自定义名成")
  22 + private String customName;
  23 +
18 public String getStudentType() { 24 public String getStudentType() {
19 return studentType; 25 return studentType;
20 } 26 }
@@ -38,4 +44,20 @@ public class PermissionBean implements Serializable { @@ -38,4 +44,20 @@ public class PermissionBean implements Serializable {
38 public void setWeekDays(List<WeekDay> weekDays) { 44 public void setWeekDays(List<WeekDay> weekDays) {
39 this.weekDays = weekDays; 45 this.weekDays = weekDays;
40 } 46 }
  47 +
  48 + public String getChannel() {
  49 + return channel;
  50 + }
  51 +
  52 + public void setChannel(String channel) {
  53 + this.channel = channel;
  54 + }
  55 +
  56 + public String getCustomName() {
  57 + return customName;
  58 + }
  59 +
  60 + public void setCustomName(String customName) {
  61 + this.customName = customName;
  62 + }
41 } 63 }
cloud/dahua/src/main/java/com/example/dahua/bean/PermissionFaceBean.java
@@ -42,6 +42,11 @@ public class PermissionFaceBean implements Serializable { @@ -42,6 +42,11 @@ public class PermissionFaceBean implements Serializable {
42 @ApiModelProperty(value = "0-新增;1-编辑;2-删除",required = true) 42 @ApiModelProperty(value = "0-新增;1-编辑;2-删除",required = true)
43 private int type; 43 private int type;
44 44
  45 + @ApiModelProperty("权限通道号")
  46 + private String channel;
  47 + @ApiModelProperty("权限自定义名成")
  48 + private String customName;
  49 +
45 public int getType() { 50 public int getType() {
46 return type; 51 return type;
47 } 52 }
@@ -105,4 +110,20 @@ public class PermissionFaceBean implements Serializable { @@ -105,4 +110,20 @@ public class PermissionFaceBean implements Serializable {
105 public void setPermissionJson(String permissionJson) { 110 public void setPermissionJson(String permissionJson) {
106 this.permissionJson = permissionJson; 111 this.permissionJson = permissionJson;
107 } 112 }
  113 +
  114 + public String getChannel() {
  115 + return channel;
  116 + }
  117 +
  118 + public void setChannel(String channel) {
  119 + this.channel = channel;
  120 + }
  121 +
  122 + public String getCustomName() {
  123 + return customName;
  124 + }
  125 +
  126 + public void setCustomName(String customName) {
  127 + this.customName = customName;
  128 + }
108 } 129 }
cloud/dahua/src/main/java/com/example/dahua/dao/UserDao.java
@@ -44,6 +44,15 @@ public interface UserDao { @@ -44,6 +44,15 @@ public interface UserDao {
44 @Select("select top 1 recordNo from SZ_Student_RecoderNo where user_id = #{user_id} and deviceId = #{deviceId}") 44 @Select("select top 1 recordNo from SZ_Student_RecoderNo where user_id = #{user_id} and deviceId = #{deviceId}")
45 String getRecordNo(@Param("user_id") String user_id, @Param("deviceId") String deviceId); 45 String getRecordNo(@Param("user_id") String user_id, @Param("deviceId") String deviceId);
46 46
  47 + /**
  48 + * 获取学生考勤类型
  49 + * @param school_id
  50 + * @param customerid
  51 + * @return
  52 + */
  53 + @Select(" select Top(1)* student_type from SZ_V_School_Student where school_id = #{school_id} and student_id = #{customerid}")
  54 + String getStudentType(@Param("school_id") String school_id, @Param("customerid") String customerid);
  55 +
47 @Insert("insert into SZ_Student_RecoderNo values(#{user_id},#{recordNo},#{student_name},#{deviceId})") 56 @Insert("insert into SZ_Student_RecoderNo values(#{user_id},#{recordNo},#{student_name},#{deviceId})")
48 int saveRecordNo(@Param("user_id") String user_id, @Param("recordNo") int recordNo, @Param("student_name") String student_name, @Param("deviceId") String deviceId); 57 int saveRecordNo(@Param("user_id") String user_id, @Param("recordNo") int recordNo, @Param("student_name") String student_name, @Param("deviceId") String deviceId);
49 58
@@ -104,7 +113,7 @@ public interface UserDao { @@ -104,7 +113,7 @@ public interface UserDao {
104 @Select("select StudentId from SS_RoomNumber where Pid in (select id from SS_Room where SchoolId = 479)") 113 @Select("select StudentId from SS_RoomNumber where Pid in (select id from SS_Room where SchoolId = 479)")
105 List<String> getStudentIds(); 114 List<String> getStudentIds();
106 115
107 - @Select("select * from SZ_V_Card where num=#{num}") 116 + @Select("select Top(1) * from SZ_V_Card where num=#{num}")
108 CardBean getCards(@Param("num") String num); 117 CardBean getCards(@Param("num") String num);
109 118
110 @Select("select clint_id from SZ_Attendance where school_id = #{schoolId} and (clint_type = 8 or clint_type = 9 or clint_type = 10)") 119 @Select("select clint_id from SZ_Attendance where school_id = #{schoolId} and (clint_type = 8 or clint_type = 9 or clint_type = 10)")
cloud/dahua/src/main/java/com/example/dahua/enums/EnumSzBusinessType.java
@@ -29,21 +29,22 @@ public interface EnumSzBusinessType { @@ -29,21 +29,22 @@ public interface EnumSzBusinessType {
29 } 29 }
30 } 30 }
31 31
32 -// public enum EnumCardType {  
33 -//  
34 -// STUDENT(1, "student","学生"),  
35 -// TEACHER(2, "teacher","老师");  
36 -//// PARENT(3, "parent","家长");  
37 -//  
38 -// public final int code;  
39 -// public final String enName;  
40 -// public final String cnName;  
41 -//  
42 -// EnumUserType(int code, String enName,String cnName) {  
43 -// this.code = code;  
44 -// this.enName = enName;  
45 -// this.cnName = cnName;  
46 -// }  
47 -// } 32 + /**
  33 + * 学生出入类型
  34 + */
  35 + public enum EnumStudentType {
  36 +
  37 + GO_OUT(1, "通校"),
  38 + LIVING(2, "住校"),
  39 + ALL(3, "全部");
  40 +
  41 + public final int code;
  42 + public final String name;
  43 +
  44 + EnumStudentType(int code, String name) {
  45 + this.code = code;
  46 + this.name = name;
  47 + }
  48 + }
48 49
49 } 50 }
cloud/dahua/src/main/java/com/example/dahua/module/GateModule.java
@@ -5,6 +5,7 @@ import com.example.dahua.bean.WeekDay; @@ -5,6 +5,7 @@ import com.example.dahua.bean.WeekDay;
5 import com.example.dahua.bean.WeekTime; 5 import com.example.dahua.bean.WeekTime;
6 import com.example.dahua.enums.EnumSendCardErrorType; 6 import com.example.dahua.enums.EnumSendCardErrorType;
7 import com.example.dahua.enums.EnumSendFaceErrorType; 7 import com.example.dahua.enums.EnumSendFaceErrorType;
  8 +import com.example.dahua.enums.EnumSzBusinessType;
8 import com.example.dahua.lib.NetSDKLib; 9 import com.example.dahua.lib.NetSDKLib;
9 import com.example.dahua.lib.NetSDKLib.*; 10 import com.example.dahua.lib.NetSDKLib.*;
10 import com.example.dahua.lib.ToolKits; 11 import com.example.dahua.lib.ToolKits;
@@ -203,7 +204,7 @@ public class GateModule { @@ -203,7 +204,7 @@ public class GateModule {
203 public static synchronized int insertCard(String cardNo, String userId, String cardName, String cardPwd, 204 public static synchronized int insertCard(String cardNo, String userId, String cardName, String cardPwd,
204 int cardStatus, int cardType, int useTimes, int isFirstEnter, 205 int cardStatus, int cardType, int useTimes, int isFirstEnter,
205 int isValid, String startValidTime, String endValidTime, LLong lLong, 206 int isValid, String startValidTime, String endValidTime, LLong lLong,
206 - String userType,String cardErrNum) { 207 + String userType,String cardErrNum,int channel) {
207 /** 208 /**
208 * 门禁卡记录集信息 209 * 门禁卡记录集信息
209 */ 210 */
@@ -230,13 +231,13 @@ public class GateModule { @@ -230,13 +231,13 @@ public class GateModule {
230 accessCardInfo.sznDoors[0] = 0; 231 accessCardInfo.sznDoors[0] = 0;
231 accessCardInfo.sznDoors[1] = 1; 232 accessCardInfo.sznDoors[1] = 1;
232 accessCardInfo.nTimeSectionNum = 2; // 与门数对应 233 accessCardInfo.nTimeSectionNum = 2; // 与门数对应
233 -// if (userType.equals("1")){ 234 + if (userType.equals("1")){
234 accessCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效 235 accessCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效
235 accessCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效 236 accessCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效
236 -// }else {  
237 -// accessCardInfo.sznTimeSectionNo[0] = 120; // 表示第一个门全天有效  
238 -// accessCardInfo.sznTimeSectionNo[1] = 120; // 表示第二个门全天有效  
239 -// } 237 + }else {
  238 + accessCardInfo.sznTimeSectionNo[0] = channel; // 表示第一个门全天有效
  239 + accessCardInfo.sznTimeSectionNo[1] = channel; // 表示第二个门全天有效
  240 + }
240 241
241 // 卡状态 242 // 卡状态
242 accessCardInfo.emStatus = cardStatus; 243 accessCardInfo.emStatus = cardStatus;
@@ -291,14 +292,13 @@ public class GateModule { @@ -291,14 +292,13 @@ public class GateModule {
291 log.info("添加卡信息失败,错误信息:{} ,错误码:{} ",ret,number); 292 log.info("添加卡信息失败,错误信息:{} ,错误码:{} ",ret,number);
292 cardErrNum = number; 293 cardErrNum = number;
293 //146用户已存在,21对返回数据的校验出错,1162未知错误 294 //146用户已存在,21对返回数据的校验出错,1162未知错误
294 - if(number.equals(EnumSendCardErrorType.CHECK_DATA_ERR_21.code)|| number.equals(EnumSendCardErrorType.EXIST_USER_146.code)||  
295 - number.equals(EnumSendCardErrorType.UNKNOWN_1162.code)) { 295 + if(number.equals(EnumSendCardErrorType.CHECK_DATA_ERR_21.code)||number.equals(EnumSendCardErrorType.EXIST_USER_146.code)) {
296 //用户已存在/返回数据校验出错时,执行删除用户 296 //用户已存在/返回数据校验出错时,执行删除用户
297 deleteUser( userId, lLong); 297 deleteUser( userId, lLong);
298 //重新下发卡至设备 298 //重新下发卡至设备
299 cardErrNum = ""; 299 cardErrNum = "";
300 return insertCard(cardNo, userId, cardName, cardPwd, cardStatus, cardType, useTimes, isFirstEnter, 300 return insertCard(cardNo, userId, cardName, cardPwd, cardStatus, cardType, useTimes, isFirstEnter,
301 - isValid, startValidTime, endValidTime, lLong, userType,cardErrNum); 301 + isValid, startValidTime, endValidTime, lLong, userType,cardErrNum,channel);
302 } 302 }
303 //新增卡失败,错误码,返回-1 303 //新增卡失败,错误码,返回-1
304 return -1; 304 return -1;
@@ -414,10 +414,12 @@ public class GateModule { @@ -414,10 +414,12 @@ public class GateModule {
414 CFG_ACCESS_TIMESCHEDULE_INFO msg = new CFG_ACCESS_TIMESCHEDULE_INFO(); 414 CFG_ACCESS_TIMESCHEDULE_INFO msg = new CFG_ACCESS_TIMESCHEDULE_INFO();
415 String strCmd = NetSDKLib.CFG_CMD_ACCESSTIMESCHEDULE; 415 String strCmd = NetSDKLib.CFG_CMD_ACCESSTIMESCHEDULE;
416 // 通道号 416 // 通道号
417 - int nChannel = 120; 417 + int nChannel = Integer.parseInt(permissionBean.getChannel());
418 // msg.stuTimeWeekDay[0].stuTimeSection[0].dwRecordMask 418 // msg.stuTimeWeekDay[0].stuTimeSection[0].dwRecordMask
419 - String name = "3"; 419 + //自定义名称
  420 + String name = permissionBean.getCustomName();
420 System.arraycopy(name.getBytes(), 0, msg.szName, 0, name.getBytes().length); 421 System.arraycopy(name.getBytes(), 0, msg.szName, 0, name.getBytes().length);
  422 + //时间段使能开关, 1-true; 0-false
421 msg.bEnable = 1; 423 msg.bEnable = 1;
422 424
423 List<WeekDay> weekDays = permissionBean.getWeekDays(); 425 List<WeekDay> weekDays = permissionBean.getWeekDays();
@@ -525,10 +527,11 @@ public class GateModule { @@ -525,10 +527,11 @@ public class GateModule {
525 527
526 } 528 }
527 529
528 - public static void getAccessTimeSchedule1(LLong lLong) { 530 + public static void getAccessTimeSchedule1(LLong lLong,String channel) {
529 CFG_ACCESS_TIMESCHEDULE_INFO msg = new CFG_ACCESS_TIMESCHEDULE_INFO(); 531 CFG_ACCESS_TIMESCHEDULE_INFO msg = new CFG_ACCESS_TIMESCHEDULE_INFO();
530 String strCmd = NetSDKLib.CFG_CMD_ACCESSTIMESCHEDULE; 532 String strCmd = NetSDKLib.CFG_CMD_ACCESSTIMESCHEDULE;
531 - int nChannel = 120; // 通道号 533 + // 通道号
  534 + int nChannel = Integer.parseInt(channel);
532 535
533 // 获取 536 // 获取
534 if (ToolKits.GetDevConfig(lLong, nChannel, strCmd, msg)) { 537 if (ToolKits.GetDevConfig(lLong, nChannel, strCmd, msg)) {
@@ -687,7 +690,7 @@ public class GateModule { @@ -687,7 +690,7 @@ public class GateModule {
687 public static boolean modifyCard(int recordNo, String cardNo, String userId, String cardName, String cardPwd, 690 public static boolean modifyCard(int recordNo, String cardNo, String userId, String cardName, String cardPwd,
688 int cardStatus, int cardType, int useTimes, int isFirstEnter, 691 int cardStatus, int cardType, int useTimes, int isFirstEnter,
689 int isValid, String startValidTime, String endValidTime, LLong lLong, 692 int isValid, String startValidTime, String endValidTime, LLong lLong,
690 - String userType,String cardErrNum) { 693 + String userType,String cardErrNum,int channel) {
691 /** 694 /**
692 * 门禁卡记录集信息 695 * 门禁卡记录集信息
693 */ 696 */
@@ -715,13 +718,14 @@ public class GateModule { @@ -715,13 +718,14 @@ public class GateModule {
715 accessCardInfo.nDoorNum = 2; 718 accessCardInfo.nDoorNum = 2;
716 accessCardInfo.sznDoors[0] = 0; 719 accessCardInfo.sznDoors[0] = 0;
717 accessCardInfo.sznDoors[1] = 1; 720 accessCardInfo.sznDoors[1] = 1;
718 - accessCardInfo.nTimeSectionNum = 2; // 与门数对应  
719 - if (userType.equals("1")){ 721 + // 有效的的开门时间段数目 ,与设备门数保持一至
  722 + accessCardInfo.nTimeSectionNum = 2;
  723 + if (userType.equals(EnumSzBusinessType.EnumUserType.TEACHER.code)){
720 accessCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效 724 accessCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效
721 accessCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效 725 accessCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效
722 }else { 726 }else {
723 - accessCardInfo.sznTimeSectionNo[0] = 120; // 表示第一个门全天有效  
724 - accessCardInfo.sznTimeSectionNo[1] = 120; // 表示第二个门全天有效 727 + accessCardInfo.sznTimeSectionNo[0] = channel; // 表示第一个门全天有效
  728 + accessCardInfo.sznTimeSectionNo[1] = channel; // 表示第二个门全天有效
725 } 729 }
726 730
727 // 卡状态 731 // 卡状态
cloud/dahua/src/main/java/com/example/dahua/service/PermissFaceService.java
@@ -17,4 +17,6 @@ public interface PermissFaceService { @@ -17,4 +17,6 @@ public interface PermissFaceService {
17 17
18 18
19 ResponseBean<String> addFace(String imgUrl, String userId); 19 ResponseBean<String> addFace(String imgUrl, String userId);
  20 +
  21 + public List<PermissionFaceBean> getPermissionList(int schoolId);
20 } 22 }
cloud/dahua/src/main/java/com/example/dahua/service/imp/PermissFaceServiceImp.java
@@ -41,7 +41,14 @@ public class PermissFaceServiceImp implements PermissFaceService { @@ -41,7 +41,14 @@ public class PermissFaceServiceImp implements PermissFaceService {
41 41
42 int schoolId = permissionFaceBean.getSchoolId(); 42 int schoolId = permissionFaceBean.getSchoolId();
43 43
  44 + //编辑设置
44 PermissionBean permissionBean = permissionFaceBean.getPermissionBean(); 45 PermissionBean permissionBean = permissionFaceBean.getPermissionBean();
  46 + if(!StringUtils.isEmpty(permissionFaceBean.getChannel())){
  47 + permissionBean.setChannel(permissionFaceBean.getChannel());
  48 + }
  49 + if(!StringUtils.isEmpty(permissionFaceBean.getCustomName())){
  50 + permissionBean.setChannel(permissionFaceBean.getCustomName());
  51 + }
45 52
46 int type = permissionFaceBean.getType(); 53 int type = permissionFaceBean.getType();
47 if (null != permissionBean) 54 if (null != permissionBean)
@@ -56,9 +63,19 @@ public class PermissFaceServiceImp implements PermissFaceService { @@ -56,9 +63,19 @@ public class PermissFaceServiceImp implements PermissFaceService {
56 } 63 }
57 switch (type) { 64 switch (type) {
58 case 0://新增 65 case 0://新增
  66 + /**通道号**/
  67 + String channel = Rand();
  68 + /**通道自定义名称**/
  69 + String customName = Rand();
  70 + permissionBean.setChannel(channel);
  71 + permissionBean.setCustomName(customName);
  72 + permissionFaceBean.setChannel(channel);
  73 + permissionFaceBean.setCustomName(customName);
  74 +
59 permissionFaceDao.addPermissionFace(permissionFaceBean); 75 permissionFaceDao.addPermissionFace(permissionFaceBean);
60 responseBean.setMessage("添加权限模板成功"); 76 responseBean.setMessage("添加权限模板成功");
61 responseBean.setData(null); 77 responseBean.setData(null);
  78 + //下发权限
62 sendPermiss2Dev(permissionFaceBean); 79 sendPermiss2Dev(permissionFaceBean);
63 responseBean.setStatus(1); 80 responseBean.setStatus(1);
64 break; 81 break;
@@ -94,6 +111,16 @@ public class PermissFaceServiceImp implements PermissFaceService { @@ -94,6 +111,16 @@ public class PermissFaceServiceImp implements PermissFaceService {
94 } 111 }
95 112
96 /** 113 /**
  114 + * 取100以内随机数
  115 + * @return
  116 + */
  117 + public static String Rand() {
  118 + int rand = (int) (Math.random() * 100000) % 100;
  119 + return String.valueOf(rand);
  120 + }
  121 +
  122 +
  123 + /**
97 * 下发权限到设备 124 * 下发权限到设备
98 * 125 *
99 * @param permissionFaceBean 126 * @param permissionFaceBean
@@ -140,6 +167,12 @@ public class PermissFaceServiceImp implements PermissFaceService { @@ -140,6 +167,12 @@ public class PermissFaceServiceImp implements PermissFaceService {
140 } 167 }
141 168
142 @Override 169 @Override
  170 + public List<PermissionFaceBean> getPermissionList(int schoolId) {
  171 + List<PermissionFaceBean> permissionFaceBeans = permissionFaceDao.getPermissFaces(schoolId);
  172 + return permissionFaceBeans;
  173 + }
  174 +
  175 + @Override
143 public ResponseBeanList<PermissionFaceBean> getPermissionDetail(int permissionId) { 176 public ResponseBeanList<PermissionFaceBean> getPermissionDetail(int permissionId) {
144 ResponseBeanList responseBeanList = new ResponseBeanList(); 177 ResponseBeanList responseBeanList = new ResponseBeanList();
145 try { 178 try {
cloud/dahua/src/main/java/com/example/dahua/service/imp/UserServiceImp.java
@@ -129,7 +129,7 @@ public class UserServiceImp implements UserService { @@ -129,7 +129,7 @@ public class UserServiceImp implements UserService {
129 NetSDKLib.LLong loginHandleLong = MyTask.lLongMap.get(deviceId); 129 NetSDKLib.LLong loginHandleLong = MyTask.lLongMap.get(deviceId);
130 //下发权限 130 //下发权限
131 GateModule.setAccessTimeSchedule(loginHandleLong, permissionBean); 131 GateModule.setAccessTimeSchedule(loginHandleLong, permissionBean);
132 - GateModule.getAccessTimeSchedule1(loginHandleLong); 132 + GateModule.getAccessTimeSchedule1(loginHandleLong,permissionBean.getChannel());
133 } 133 }
134 134
135 135
cloud/dahua/src/main/resources/mapper/PermissionFaceMapper.xml
@@ -23,7 +23,7 @@ @@ -23,7 +23,7 @@
23 23
24 <insert id="addPermissionFace" parameterType="com.example.dahua.bean.PermissionFaceBean"> 24 <insert id="addPermissionFace" parameterType="com.example.dahua.bean.PermissionFaceBean">
25 25
26 - insert into PermissionFace values (#{permissionJson},#{schoolId},#{perrmissName},#{createTime},#{updateTime}) 26 + insert into PermissionFace values (#{permissionJson},#{schoolId},#{perrmissName},#{createTime},#{updateTime},#{channel},#{customName})
27 27
28 </insert> 28 </insert>
29 29
cloud/dahua/src/test/java/com/example/dahua/mapper/SearchMapperTest.java
@@ -5,6 +5,7 @@ import com.example.dahua.Tester; @@ -5,6 +5,7 @@ import com.example.dahua.Tester;
5 import com.example.dahua.bean.CheckIn; 5 import com.example.dahua.bean.CheckIn;
6 import com.example.dahua.bean.ShortMsg; 6 import com.example.dahua.bean.ShortMsg;
7 import com.example.dahua.dao.UserDao; 7 import com.example.dahua.dao.UserDao;
  8 +import com.example.dahua.service.UserService;
8 import com.example.dahua.utils.DateUtils; 9 import com.example.dahua.utils.DateUtils;
9 import com.example.dahua.xiananDao.SearchMapper; 10 import com.example.dahua.xiananDao.SearchMapper;
10 import org.junit.Test; 11 import org.junit.Test;
@@ -27,6 +28,9 @@ public class SearchMapperTest extends Tester { @@ -27,6 +28,9 @@ public class SearchMapperTest extends Tester {
27 @Autowired 28 @Autowired
28 private UserDao userDao; 29 private UserDao userDao;
29 30
  31 + @Autowired
  32 + private UserService userService;
  33 +
30 @Test 34 @Test
31 public void test(){ 35 public void test(){
32 //有效刷卡调考勤存储过程 36 //有效刷卡调考勤存储过程
@@ -61,4 +65,6 @@ public class SearchMapperTest extends Tester { @@ -61,4 +65,6 @@ public class SearchMapperTest extends Tester {
61 // System.out.println(JSON.toJSON(userDao.checkLeave("234232"))); 65 // System.out.println(JSON.toJSON(userDao.checkLeave("234232")));
62 66
63 } 67 }
  68 +
  69 +// boolean uploadImgAndUserInfo(String file, String schoolId, String studentCode, String clint_type, int userType, String devid);
64 } 70 }