server/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
@@ -19,7 +19,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * @author æ±è¹è¹ @@ -66,7 +70,20 @@ @PreventRepeat @ApiOperation("ãæµ·åº·ãé¨ç¦äºä»¶è®¢é æ¨é对æ¥å¤çæ¥å£") @PostMapping("/push/acs") public ApiResponse pushAcs(@RequestBody EventAcsRequest param, HttpServletResponse response) { public ApiResponse pushAcs( HttpServletRequest request,@RequestBody EventAcsRequest param, HttpServletResponse response) { try { BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(),"UTF-8")); String line = null; StringBuffer sb = new StringBuffer(); while (true) { if (!((line = br.readLine()) != null)) break; sb.append(line); } System.out.println(sb.toString()); } catch (IOException e) { throw new RuntimeException(e); } String result = hkSyncPushService.dealAcsEvent(param,response); return ApiResponse.success(result); } server/dmvisit_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
@@ -63,6 +63,7 @@ } else { throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"æªç»å½"); } // request.setAttribute("token", token); } return true; } server/dmvisit_service/src/main/java/com/doumee/config/mybatis/EasySqlInjector.java
@@ -10,8 +10,6 @@ import java.util.List; public class EasySqlInjector extends MPJSqlInjector { @Override public List<AbstractMethod> getMethodList(Class<?> mapperClass ) { // 注æï¼æ¤SQLæ³¨å ¥å¨ç»§æ¿äºDefaultSqlInjector(é»è®¤æ³¨å ¥å¨)ï¼è°ç¨äºDefaultSqlInjectorçgetMethodListæ¹æ³ï¼ä¿çäºmybatis-plusçèªå¸¦æ¹æ³ server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -7,6 +7,7 @@ @Data public class HKConstants { public static final String IMG_INDEX ="HKIMG=" ; private Logger logger = LoggerFactory.getLogger(HKConstants.class); //æµ·åº·å¹³å°æ ¹æ®ç°åºç¯å¢é ç½®httpè¿æ¯https public static final String RESPONSE_SUCCEE = "0"; server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/acs/EventDeviceDataRequest.java
@@ -1,37 +1,65 @@ package com.doumee.core.haikang.model.param.request.event.acs; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; @Data public class EventDeviceDataRequest { private ExtEventIdentityCardInfo ExtEventIdentityCardInfo;// 人å身份è¯ä¿¡æ¯ å¦ ä¸é private ExtEventIdentityCardInfo ExtEventCustomerNumInfo;// ééäºä»¶ä¿¡æ¯ å¦ ä¸é private Integer ExtAccessChannel ;//Number 人åééå· å¦ 32 private Integer ExtEventAlarmInID;// Number æ¥è¦è¾å ¥/é²åºéé å¦ 32 private Integer ExtEventAlarmOutID ;//Number æ¥è¦è¾åºéé å¦ 32 private String ExtEventCardNo;//String å¡å· å¦ 32 private Integer ExtEventCaseID ;//Number äºä»¶è¾å ¥éé å¦ 32 private Integer ExtEventCode;// Number äºä»¶ç±»å代ç å¦ 32 åè§éå½D.2.1.1 é¨ç¦äºä»¶ç±»å private Integer ExtEventDoorID;// Number é¨ç¼å· å¦ 32 private String ExtEventIDCardPictureURL;// String 身份è¯å¾çURL å¦ 200 private Integer ExtEventInOut;// Number è¿åºæ¹å å¦ 32 è¿åºç±»å1ï¼è¿0ï¼åº-1:æªç¥ è¦æ±ï¼è¿é¨è¯»å¡å¨æ¨ç 设置为1ï¼åºé¨è¯»å¡å¨æ¨ç 设置为2 private Integer ExtEventLocalControllerID;// Number 就尿§å¶å¨id å¦ 32 就尿§å¶å¨ç¼å·,0-é¨ç¦ä¸»æº,1-255ä»£è¡¨å°±å°æ§å¶å¨ private Integer ExtEventMainDevID;// Number ä¸»è®¾å¤æ¨ç å¦ 32 private String ExtEventPersonNo;// String 人åç¼å· å¦ 32 以人为ä¸å¿è®¾å¤ä¼ä¸æ¥ private String ExtEventPictureURL;// String å¾ççurl å¦ 32 private Integer ExtEventReaderID;// Number 读å¡å¨id å¦ 32 private Integer ExtEventReaderKind;// Number 读å¡å¨ç±»å« å¦ 32 0-æ æ1-IC读å¡å¨2-身份è¯è¯»å¡å¨3-äºç»´ç 读å¡å¨4-æçº¹å¤´ private Integer ExtEventReportChannel;// Number æ¥åä¸ä¼ éé å¦ 32 1-å¸é²ä¸ä¼ 2-ä¸å¿ç»1ä¸ä¼ 3-ä¸å¿ç»2ä¸ä¼ 0-æ æ private Integer ExtEventRoleID;// Number 群ç»ç¼å· å¦ 32 private Integer ExtEventSubDevID;// Number åæ§å¶å¨ç¡¬ä»¶ID å¦ 32 private Integer ExtEventSwipNum;// Number å·å¡æ¬¡æ° å¦ 32 private Integer ExtEventType;// Number äºä»¶ç±»å å¦ 32 äºä»¶ç±»åï¼å¦æ®éé¨ç¦äºä»¶ä¸º0,身份è¯ä¿¡æ¯äºä»¶ä¸º1ï¼å®¢æµéç»è®¡ä¸º2 private Integer ExtEventVerifyID;// Number å¤é认è¯åºå· å¦ 32 private Integer ExtEventWhiteListNo;// Number ç½åååå· å¦ 32 1-8ï¼ä¸º0æ æ private String ExtReceiveTime;// String äºä»¶ä¸æ¥é©±å¨çæ¶é´ æ¯ 32 ç¨äºç»è®¡äºä»¶ä¸æ¥å»¶æ¶ï¼Unixæ¶é´æ³ï¼ç²¾ç¡®å°å¾®ç§ï¼ä¾ï¼ "1558576265810000"代表 2019/5/23 9:51:5.000 private Integer Seq;// Number äºä»¶æµæ°´å· æ¯ 32 äºä»¶æµæ°´å·ï¼ä¸º0æ æ private String UserType;// Number ç¨æ·ç±»å å¦ 32 人åç±»åï¼0 æªç¥ï¼1 æ®éï¼2 æ¥å®¾ï¼3 é»ååï¼4 管çå @JsonProperty(value = "ExtEventIdentityCardInfo") private ExtEventIdentityCardInfo extEventIdentityCardInfo;// 人å身份è¯ä¿¡æ¯ å¦ ä¸é @JsonProperty(value = "ExtEventCustomerNumInfo") private ExtEventCustomerNumInfo extEventCustomerNumInfo;// ééäºä»¶ä¿¡æ¯ å¦ ä¸é @JsonProperty(value = "ExtAccessChannel") private Integer extAccessChannel ;//Number 人åééå· å¦ 32 @JsonProperty(value = "ExtEventAlarmInID") private Integer extEventAlarmInID;// Number æ¥è¦è¾å ¥/é²åºéé å¦ 32 @JsonProperty(value = "ExtEventAlarmOutID") private Integer extEventAlarmOutID ;//Number æ¥è¦è¾åºéé å¦ 32 @JsonProperty(value = "ExtEventCardNo") private String extEventCardNo;//String å¡å· å¦ 32 @JsonProperty(value = "ExtEventCaseID") private Integer extEventCaseID ;//Number äºä»¶è¾å ¥éé å¦ 32 @JsonProperty(value = "ExtEventCode") private Integer extEventCode;// Number äºä»¶ç±»å代ç å¦ 32 åè§éå½D.2.1.1 é¨ç¦äºä»¶ç±»å @JsonProperty(value = "ExtEventDoorID") private Integer extEventDoorID;// Number é¨ç¼å· å¦ 32 @JsonProperty(value = "ExtEventIDCardPictureURL") private String extEventIDCardPictureURL;// String 身份è¯å¾çURL å¦ 200 @JsonProperty(value = "ExtEventInOut") private Integer extEventInOut;// Number è¿åºæ¹å å¦ 32 è¿åºç±»å1ï¼è¿0ï¼åº-1:æªç¥ è¦æ±ï¼è¿é¨è¯»å¡å¨æ¨ç 设置为1ï¼åºé¨è¯»å¡å¨æ¨ç 设置为2 @JsonProperty(value = "ExtEventLocalControllerID") private Integer extEventLocalControllerID;// Number 就尿§å¶å¨id å¦ 32 就尿§å¶å¨ç¼å·,0-é¨ç¦ä¸»æº,1-255ä»£è¡¨å°±å°æ§å¶å¨ @JsonProperty(value = "ExtEventMainDevID") private Integer extEventMainDevID;// Number ä¸»è®¾å¤æ¨ç å¦ 32 @JsonProperty(value = "ExtEventPersonNo") private String extEventPersonNo;// String 人åç¼å· å¦ 32 以人为ä¸å¿è®¾å¤ä¼ä¸æ¥ @JsonProperty(value = "ExtEventPictureURL") private String extEventPictureURL;// String å¾ççurl å¦ 32 @JsonProperty(value = "ExtEventReaderID") private Integer extEventReaderID;// Number 读å¡å¨id å¦ 32 @JsonProperty(value = "ExtEventReaderKind") private Integer extEventReaderKind;// Number 读å¡å¨ç±»å« å¦ 32 0-æ æ1-IC读å¡å¨2-身份è¯è¯»å¡å¨3-äºç»´ç 读å¡å¨4-æçº¹å¤´ @JsonProperty(value = "ExtEventReportChannel") private Integer extEventReportChannel;// Number æ¥åä¸ä¼ éé å¦ 32 1-å¸é²ä¸ä¼ 2-ä¸å¿ç»1ä¸ä¼ 3-ä¸å¿ç»2ä¸ä¼ 0-æ æ @JsonProperty(value = "ExtEventRoleID") private Integer extEventRoleID;// Number 群ç»ç¼å· å¦ 32 @JsonProperty(value = "ExtEventSubDevID") private Integer extEventSubDevID;// Number åæ§å¶å¨ç¡¬ä»¶ID å¦ 32 @JsonProperty(value = "ExtEventSwipNum") private Integer extEventSwipNum;// Number å·å¡æ¬¡æ° å¦ 32 @JsonProperty(value = "ExtEventType") private Integer extEventType;// Number äºä»¶ç±»å å¦ 32 äºä»¶ç±»åï¼å¦æ®éé¨ç¦äºä»¶ä¸º0,身份è¯ä¿¡æ¯äºä»¶ä¸º1ï¼å®¢æµéç»è®¡ä¸º2 @JsonProperty(value = "ExtEventVerifyID") private Long extEventVerifyID;// Number å¤é认è¯åºå· å¦ 32 @JsonProperty(value = "ExtEventWhiteListNo") private Integer extEventWhiteListNo;// Number ç½åååå· å¦ 32 1-8ï¼ä¸º0æ æ @JsonProperty(value = "ExtReceiveTime") private String extReceiveTime;// String äºä»¶ä¸æ¥é©±å¨çæ¶é´ æ¯ 32 ç¨äºç»è®¡äºä»¶ä¸æ¥å»¶æ¶ï¼Unixæ¶é´æ³ï¼ç²¾ç¡®å°å¾®ç§ï¼ä¾ï¼ "1558576265810000"代表 2019/5/23 9:51:5.000 @JsonProperty(value = "Seq") private Integer seq;// Number äºä»¶æµæ°´å· æ¯ 32 äºä»¶æµæ°´å·ï¼ä¸º0æ æ @JsonProperty(value = "UserType") private Integer userType;// Number ç¨æ·ç±»å å¦ 32 人åç±»åï¼0 æªç¥ï¼1 æ®éï¼2 æ¥å®¾ï¼3 é»ååï¼4 管çå private String svrIndexCode ;//String å¾çæå¡å¨å¯ä¸ç¼ç å¦ 32 } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/acs/ExtEventCustomerNumInfo.java
@@ -1,13 +1,18 @@ package com.doumee.core.haikang.model.param.request.event.acs; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; @Data public class ExtEventCustomerNumInfo<T> { private Integer AccessChannel;// Number ééå· å¦ 32 private Integer EntryTimes ;//Number è¿äººæ° å¦ 32 private Integer ExitTimes ;//Number åºäººæ° å¦ 32 private Integer TotalTimes ;//Number æ»éè¡äººæ° å¦ 32 @JsonProperty(value = "AccessChannel") private Integer accessChannel;// Number ééå· å¦ 32 @JsonProperty(value = "EntryTimes") private Integer entryTimes ;//Number è¿äººæ° å¦ 32 @JsonProperty(value = "ExitTimes") private Integer exitTimes ;//Number åºäººæ° å¦ 32 @JsonProperty(value = "TotalTimes") private Integer totalTimes ;//Number æ»éè¡äººæ° å¦ 32 } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/acs/ExtEventIdentityCardInfo.java
@@ -1,18 +1,29 @@ package com.doumee.core.haikang.model.param.request.event.acs; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; @Data public class ExtEventIdentityCardInfo { private String Address;// String ä½å å¦ 512 private String Birth;// String åºçæ¥æ å¦ 32 ä¾ï¼ â1999-6-30â private String EndDate;// String æææ¥æç»ææ¶é´ å¦ 32 ä¾ï¼ â2028-10-12â private String IdNum ;//String 身份è¯id å¦ 32 private String IssuingAuthority;// String ç¾åæºå ³ å¦ 32 private String Name;// String å§å å¦ 32 private Integer Nation ;//Number å¦ 32 0-æªç¥ private Integer Sex;// Number æ§å« å¦ 32 æ§å«0-æªç¥1-ç·2-女 private String StartDate;// String æææ¥æå¼å§æ¶é´ å¦ 32 ä¾ï¼ â2018-10-12â private Integer TermOfValidity;// Number æ¯å¦é¿æææ å¦ 32 0-å¦ï¼æææªæ¢æ¥æææï¼ 1-æ¯ï¼æææªæ¢æ¥ææ æï¼ @JsonProperty(value = "Address") private String address;// String ä½å å¦ 512 @JsonProperty(value = "Birth") private String birth;// String åºçæ¥æ å¦ 32 ä¾ï¼ â1999-6-30â @JsonProperty(value = "EndDate") private String endDate;// String æææ¥æç»ææ¶é´ å¦ 32 ä¾ï¼ â2028-10-12â @JsonProperty(value = "IdNum") private String idNum ;//String 身份è¯id å¦ 32 @JsonProperty(value = "IssuingAuthority") private String issuingAuthority;// String ç¾åæºå ³ å¦ 32 @JsonProperty(value = "Name") private String name;// String å§å å¦ 32 @JsonProperty(value = "Nation") private Integer nation ;//Number å¦ 32 0-æªç¥ @JsonProperty(value = "Sex") private Integer sex;// Number æ§å« å¦ 32 æ§å«0-æªç¥1-ç·2-女 @JsonProperty(value = "StartDate") private String startDate;// String æææ¥æå¼å§æ¶é´ å¦ 32 ä¾ï¼ â2018-10-12â @JsonProperty(value = "TermOfValidity") private Integer termOfValidity;// Number æ¯å¦é¿æææ å¦ 32 0-å¦ï¼æææªæ¢æ¥æææï¼ 1-æ¯ï¼æææªæ¢æ¥ææ æï¼ } server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/RetentionQuery.java
@@ -1,5 +1,6 @@ package com.doumee.dao.admin.request; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -23,8 +24,8 @@ private String type; @ApiModelProperty(value = "å¼å§æ¶é´") private String startTime; private Date startTime; @ApiModelProperty(value = "ç»ææ¶é´") private String endTime; private Date endTime; } server/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceEventMapper.java
@@ -2,11 +2,14 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.doumee.dao.business.model.DeviceEvent; import com.doumee.dao.business.model.Parks; import java.util.List; /** * @author æ±è¹è¹ * @date 2023/11/30 15:33 */ public interface DeviceEventMapper extends BaseMapper<DeviceEvent> { void insertBatchSomeColumn(List<DeviceEvent> addList); } server/dmvisit_service/src/main/java/com/doumee/dao/business/RetentionMapper.java
@@ -3,10 +3,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.doumee.dao.business.model.Retention; import java.util.List; /** * @author æ±è¹è¹ * @date 2023/11/30 15:33 */ public interface RetentionMapper extends BaseMapper<Retention> { void insertBatchSomeColumn(List<Retention> retentionList); } server/dmvisit_service/src/main/java/com/doumee/dao/business/VisitEventMapper.java
@@ -3,10 +3,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.doumee.dao.business.model.VisitEvent; import java.util.List; /** * @author æ±è¹è¹ * @date 2023/11/30 15:33 */ public interface VisitEventMapper extends BaseMapper<VisitEvent> { void insertBatchSomeColumn(List<VisitEvent> list); } server/dmvisit_service/src/main/java/com/doumee/dao/business/join/VisitsJoinMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ package com.doumee.dao.business.join; import com.doumee.dao.business.model.MemberCard; import com.doumee.dao.business.model.Visits; import com.github.yulichang.base.mapper.MPJJoinMapper; /** * @author T14 */ //@Repository public interface VisitsJoinMapper extends MPJJoinMapper<Visits> { } server/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceEvent.java
@@ -188,7 +188,7 @@ @ApiModelProperty(value = "ç½åååå·") @ExcelColumn(name="ç½åååå·") @TableField("ext_event_white_list_no") private String extEventWhiteListNo; private Integer extEventWhiteListNo; @ApiModelProperty(value = "äºä»¶ä¸æ¥é©±å¨çæ¶é´") @ExcelColumn(name="äºä»¶ä¸æ¥é©±å¨çæ¶é´") server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Retention.java
@@ -96,7 +96,12 @@ @ApiModelProperty(value = "çæ¬¡") @ExcelColumn(name="çæ¬¡") private String classes; @ApiModelProperty(value = "海康é¨ç¦åç§°") @ExcelColumn(name="海康é¨ç¦åç§°") private String deviceName; @ApiModelProperty(value = "海康é¨ç¦ç¼ç ") @ExcelColumn(name="海康é¨ç¦ç¼ç ") private String deviceIndex; @ApiModelProperty(value = "å ¥åæ¶é´") @ExcelColumn(name="å ¥åæ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") @@ -115,13 +120,4 @@ @TableField(exist = false) public String companyName; @ApiModelProperty(value = "è®¿å®¢ç¨æ·ç±»å") @ExcelColumn(name="è®¿å®¢ç¨æ·ç±»å") @TableField(exist = false) private Integer memberType; @ApiModelProperty(value = "é¨ç¦åç§°") @ExcelColumn(name="é¨ç¦åç§°") @TableField(exist = false) private String srcName; } server/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java
@@ -69,7 +69,7 @@ @ApiModelProperty(value = "äºä»¶ç±»å") @ExcelColumn(name="äºä»¶ç±»å") private String eventType; private Integer eventType; @ApiModelProperty(value = "äºä»¶ç¶æ,0-ç¬æ¶1-å¼å§2-忢4-äºä»¶èå¨ç»ææ´æ°5-äºä»¶å¾ç弿¥ä¸ä¼ ", example = "1") @ExcelColumn(name="äºä»¶ç¶æ,0-ç¬æ¶1-å¼å§2-忢4-äºä»¶èå¨ç»ææ´æ°5-äºä»¶å¾ç弿¥ä¸ä¼ ") @@ -77,7 +77,7 @@ @ApiModelProperty(value = "èå²è¶ æ¶æ¶é´") @ExcelColumn(name="èå²è¶ æ¶æ¶é´") private String timeout; private Integer timeout; @ApiModelProperty(value = "äºä»¶åçæ¶é´ï¼è®¾å¤æ¶é´") @ExcelColumn(name="äºä»¶åçæ¶é´ï¼è®¾å¤æ¶é´") @@ -101,7 +101,7 @@ @ApiModelProperty(value = "è¯ä»¶ç±»å 111身份è¯") @ExcelColumn(name="è¯ä»¶ç±»å 111身份è¯") private String idType; private Integer idType; @ApiModelProperty(value = "è¯ä»¶å· ") @ExcelColumn(name="è¯ä»¶å· ") server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
@@ -113,6 +113,22 @@ @ApiModelProperty(value = "é¨ç¦ææææªæ¢") @ExcelColumn(name="é¨ç¦ææææªæ¢") private Date endtime; @ApiModelProperty(value = "è¿åæ¶é´") @ExcelColumn(name="è¿åæ¶é´") private Date inDate; @ApiModelProperty(value = "ç¦»åºæ¶é´") @ExcelColumn(name="ç¦»åºæ¶é´") private Date outDate; @ApiModelProperty(value = "ç¦»åºæ¹å¼ 0æ£å¸¸ç¾ç¦» 1管çåæå¨ç¾ç¦»") @ExcelColumn(name="ç¦»åºæ¹å¼ 0æ£å¸¸ç¾ç¦» 1管çåæå¨ç¾ç¦»") private Integer outType; @ApiModelProperty(value = "强å¶ç¾ç¦»ç®¡çåç¼ç ") @ExcelColumn(name="强å¶ç¾ç¦»ç®¡çåç¼ç ") private Integer outUserId; @ApiModelProperty(value = "ç¾ç¦»å¤æ³¨") @ExcelColumn(name="ç¾ç¦»å¤æ³¨") private String outInfo; @ApiModelProperty(value = "æ¥è®¿äºç±") @ExcelColumn(name="æ¥è®¿äºç±") @@ -202,6 +218,12 @@ @ApiModelProperty(value = "æ®é访客ç³è¯·é访人å") @TableField(exist = false) private List<Visits> withUserList; @ApiModelProperty(value = "çæ¬¡") private String memberClasses; @ApiModelProperty(value = "ç±»å 0å³å¡è®¿å®¢ 1æ®é访客 2å é¨äººå", example = "1") @TableField(exist = false) private Integer memberType; @ApiModelProperty(value = "å³å¡è®¿å®¢ç³è¯·é访人å") @TableField(exist = false) private List<Integer> lwWithUserList; server/dmvisit_service/src/main/java/com/doumee/service/business/impl/RetentionServiceImpl.java
@@ -209,11 +209,9 @@ Company::getName, pageWrap.getModel().getCompanyName()) .ge(Objects.nonNull(pageWrap.getModel().getStartTime()), Retention::getEventDate, pageWrap.getModel().getStartTime() == null?null:pageWrap.getModel().getStartTime()+" 00:00:00") Retention::getEventDate, pageWrap.getModel().getStartTime()) .le(Objects.nonNull(pageWrap.getModel().getEndTime()), Retention::getEventDate, pageWrap.getModel().getStartTime() == null?null:pageWrap.getModel().getEndTime()+" 23:59:59"); Retention::getEventDate, pageWrap.getModel().getEndTime()); queryWrapper.orderByDesc(Retention::getCreateDate); IPage<Retention> retentionIPage = retentionJoinMapper.selectJoinPage(page, Retention.class, queryWrapper); return PageData.from(retentionIPage); server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -1,20 +1,40 @@ package com.doumee.service.business.impl.hksync; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.doumee.config.SpringContextUtil; import com.doumee.core.haikang.model.HKConstants; import com.doumee.core.haikang.model.param.request.event.acs.EventAcsInfoRequest; import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest; import com.doumee.core.haikang.model.param.request.event.acs.EventDeviceDataRequest; import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest; import com.doumee.core.haikang.model.param.request.event.visit.EventVisitDataRequest; import com.doumee.core.haikang.model.param.request.event.visit.EventVisitInfoRequest; import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest; import com.doumee.dao.business.model.InterfaceLog; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DESUtil; import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.*; import com.doumee.dao.business.join.VisitsJoinMapper; import com.doumee.dao.business.model.*; import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.DeviceEventService; import com.doumee.service.business.InterfaceLogService; import com.doumee.service.business.MemberService; import com.github.yulichang.interfaces.MPJBaseJoin; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.hikvision.artemis.sdk.config.ArtemisConfig; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.checkerframework.checker.units.qual.C; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 访客æéç»ä¿¡æ¯è¡¨Serviceå®ç° @@ -26,7 +46,19 @@ public class HkSyncPushServiceImpl extends HkSyncBaseServiceImpl { @Autowired private InterfaceLogService interfaceLogService; private InterfaceLogMapper interfaceLogMapper; @Autowired private DeviceEventMapper deviceEventMapper; @Autowired private MemberMapper memberMapper; @Autowired private CarEventMapper carEventMapper; @Autowired private VisitEventMapper visitEventMapper; @Autowired private VisitsJoinMapper visitsMapper; @Autowired private RetentionMapper retentionMapper; /** * 海康é¨ç¦äºä»¶æ¨é * @param param @@ -38,10 +70,40 @@ log.info("ãæµ·åº·é¨ç¦äºä»¶æ¨éã========å¼å§=========ï¼\n"+JSONObject.toJSONString(param)); String result = null; try { if(param == null || param.getParams() == null || param.getParams().getEvents()==null){ return null; } //é¨ç¦äºä»¶éå List<EventAcsInfoRequest> events = param.getParams().getEvents(); List<DeviceEvent> list = new ArrayList<>(); List<Integer> delRetentionLis = new ArrayList<>(); List<Retention> retentionList = new ArrayList<>(); for(EventAcsInfoRequest request : events){ EventDeviceDataRequest model = request.getData(); if(model ==null){ continue; } //æ ¹æ®æ¨é人åç¼ç ï¼å¤çå¨åºã离åºäººåæ°æ®è®°å½ dealMemberDataByRequest(request,delRetentionLis,retentionList); //å°è£ é¨ç¦äºä»¶ä¿¡æ¯è¡¨å¯¹è±¡ list.add(getDeviceEventModelByRequest(request)); } if(list.size()>0){ //æå ¥é¨ç¦è®°å½ deviceEventMapper.insertBatchSomeColumn(list); } if(delRetentionLis.size()>0){ //å å é¤åæçå¨åºäººå(å é¨äººåï¼ retentionMapper.delete(new UpdateWrapper<Retention>().lambda() .eq(Retention::getType,Constants.memberType.internal) .in(Retention::getMemberId,delRetentionLis)); } if(retentionList.size()>0){ //åæå ¥ææ°çå¨å人å retentionMapper.insertBatchSomeColumn(retentionList); } log.error("ãæµ·åº·é¨ç¦äºä»¶æ¨éã========æå======="); }catch (Exception e) { log.error("ãæµ·åº·é¨ç¦äºä»¶æ¨éã========失败=======ï¼\n" + e.getMessage()); }finally { saveInterfaceLog(param,"/business/hksync/push/acs",result); @@ -49,6 +111,136 @@ return null; } /** * æ ¹æ®æ¨é人åç¼ç ï¼å¤çå¨åºã离åºäººåæ°æ®è®°å½ * @param request * @param delRetentionLis * @param retentionList */ private void dealMemberDataByRequest(EventAcsInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList) { //海康人åç¼ç String userNo = request.getData().getExtEventPersonNo(); if(StringUtils.isNotBlank(userNo)){ Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getHkId,userNo).last("limit 1")); if(member !=null){ //å¦æäººåä¿¡æ¯åå¨ï¼åå é¤ä¹åçææè¿åºæ°æ®ï¼æ è®ºæ¤æ¬¡æ¨éæ¯è¿åè¿æ¯åºåºæ¨éäºä»¶ï¼ delRetentionLis.add(member.getId()); if(Constants.formatIntegerNum(request.getData().getExtEventInOut()) == Constants.ONE){ //妿æ¯è¿é¨ï¼å½å ¥äººåçå¨åºæ°æ®è®°å½ retentionList.add(getRetentionModelByRequest(member,request)); } } } } public static String getHkImgUrl(String url){ if(StringUtils.isBlank(url)){ return null; } return HKConstants.IMG_INDEX+url; } /** *å°è£ é¨ç¦äºä»¶ä¿¡æ¯è¡¨å¯¹è±¡ */ private DeviceEvent getDeviceEventModelByRequest(EventAcsInfoRequest request) { DeviceEvent event = new DeviceEvent(); event.setIsdeleted(Constants.ZERO); event.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime())); event.setEventId(request.getEventId()); event.setEventType( request.getData().getExtEventType()!=null?request.getData().getExtEventType()+"":null); event.setAccessChannel(request.getData().getExtAccessChannel()); event.setUserType(request.getData().getUserType()); event.setSvrIndexCode(request.getData().getSvrIndexCode()); event.setStatus(request.getStatus()); event.setSrcType(request.getSrcType()); event.setSrcName(request.getSrcName()); event.setSrcIndex(request.getSrcIndex()); event.setSeq(request.getData().getSeq()); event.setTimeout(request.getTimeout()); event.setExtEventType(request.getData().getExtEventType()); event.setHappenTime(request.getHappenTime()); event.setExtReceiveTime(request.getData().getExtReceiveTime()); event.setExtEventWhiteListNo(request.getData().getExtEventWhiteListNo()); event.setExtEventWhiteListNo(request.getData().getExtEventWhiteListNo()); event.setExtEventVerifyID(request.getData().getExtEventVerifyID()); event.setExtEventRoleID(request.getData().getExtEventRoleID()); event.setExtEventReportChannel(request.getData().getExtEventReportChannel()); event.setExtEventReaderKind(request.getData().getExtEventReaderKind()); event.setExtEventReaderID(request.getData().getExtEventReaderID()); event.setExtEventPictureURL(getHkImgUrl(request.getData().getExtEventPictureURL())); event.setExtEventPersonNo(request.getData().getExtEventPersonNo()); event.setExtEventMainDevID(request.getData().getExtEventMainDevID()); event.setExtEventLocalControllerID(request.getData().getExtEventLocalControllerID()); event.setExtEventInOut(request.getData().getExtEventInOut()); event.setExtEventIDCardPictureURL(getHkImgUrl(request.getData().getExtEventIDCardPictureURL())); event.setExtEventEwipNum(request.getData().getExtEventSwipNum()); event.setExtEventEubDevID(request.getData().getExtEventMainDevID()); event.setExtEventDoorID(request.getData().getExtEventDoorID()); event.setExtEventCode(request.getData().getExtEventCode()); event.setExtEventCaseID(request.getData().getExtEventCaseID()); event.setExtEventCardNo(request.getData().getExtEventCardNo()); event.setExtEventAlarmOutID(request.getData().getExtEventAlarmOutID()); event.setExtEventAlarmInID(request.getData().getExtEventAlarmInID()); event.setExtAccessChannel(request.getData().getExtAccessChannel()); //ééäºä»¶ä¿¡æ¯ if(request.getData().getExtEventCustomerNumInfo() !=null){ event.setTotalTimes(request.getData().getExtEventCustomerNumInfo().getTotalTimes()); event.setEntryTimes(request.getData().getExtEventCustomerNumInfo().getEntryTimes()); event.setExitTimes(request.getData().getExtEventCustomerNumInfo().getExitTimes()); event.setAccessChannel(request.getData().getExtEventCustomerNumInfo().getAccessChannel()); } if(request.getData().getExtEventIdentityCardInfo() !=null){ //人å身份è¯ä»¶ä¿¡æ¯ event.setBirth(request.getData().getExtEventIdentityCardInfo().getBirth()); String idnum = request.getData().getExtEventIdentityCardInfo().getIdNum(); if(StringUtils.isNotBlank(idnum)){ //身份è¯å·åå¨å¯æ event.setIdNum(DESUtil.encrypt(Constants.EDS_PWD,idnum));//身份è¯å·å å¯ //è±æææºå·æ¾ç¤ºn event.setIdcardDecode(Constants.getTuominStr(idnum)); } event.setAddress(request.getData().getExtEventIdentityCardInfo().getAddress()); event.setSex(request.getData().getExtEventIdentityCardInfo().getSex()); event.setName(request.getData().getExtEventIdentityCardInfo().getName()); event.setEndDate(request.getData().getExtEventIdentityCardInfo().getEndDate()); event.setStartDate(request.getData().getExtEventIdentityCardInfo().getStartDate()); event.setTermOfValidity(request.getData().getExtEventIdentityCardInfo().getTermOfValidity()); } return event; } /** * è¿å对象å°è£ æå¨åºäººå * @param member * @param request * @return */ private Retention getRetentionModelByRequest(Member member, EventAcsInfoRequest request) { Retention retention = new Retention(); retention.setIsdeleted(Constants.ZERO); retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getData().getExtReceiveTime())); retention.setClasses(member.getClasses()); retention.setCode(member.getCode()); retention.setIdcardNo(member.getIdcardNo()); retention.setIdcardDecode(member.getIdcardDecode()); retention.setName(member.getName()); retention.setBirthday(member.getBirthday()); retention.setType(member.getType()); retention.setCompanyId(member.getCompanyId()); retention.setCompanyName(member.getCompanyName()); retention.setEventCode(request.getData().getExtEventCode()+""); retention.setEventDate(DateUtil.getISO8601DateByStr(request.getData().getExtReceiveTime())); retention.setFaceImg(member.getFaceImg()); retention.setImgurl(member.getImgurl()); retention.setPhone(member.getPhone()); retention.setMemberId(member.getId()); retention.setDeviceName(request.getSrcName()); retention.setDeviceIndex(request.getSrcIndex()); return retention; } /** * 海康访客äºä»¶æ¨é * @param param @@ -60,7 +252,40 @@ log.info("ãæµ·åº·è®¿å®¢äºä»¶æ¨éã==========å¼å§=======ï¼\n"+JSONObject.toJSONString(param)); String result = null; try { if(param == null || param.getParams() == null || param.getParams().getEvents()==null){ return null; } //é¨ç¦äºä»¶éå List<EventVisitInfoRequest> events = param.getParams().getEvents(); List<VisitEvent> list = new ArrayList<>(); List<Integer> delRetentionLis = new ArrayList<>(); List<Retention> retentionList = new ArrayList<>(); for(EventVisitInfoRequest request : events){ if(request.getData() ==null ||StringUtils.isBlank(request.getData().getVisitorId())){ continue; } //海康访客记å½ç¼ç if(StringUtils.isNotBlank(request.getData().getVisitorId())){ //æ ¹æ®è®¿å®¢æ¨é访客记å½ç¼ç ï¼å¤ç访客记å½ãå¨åºäººåçä¿¡æ¯ dealVisitDataByRequst(request,delRetentionLis,retentionList); } //å°è£ é¨ç¦äºä»¶ä¿¡æ¯è¡¨å¯¹è±¡ list.add(getVisitEventModelByRequest(request)); } if(list.size()>0){ //æå ¥é¨ç¦è®°å½ visitEventMapper.insertBatchSomeColumn(list); } if(delRetentionLis.size()>0){ //å å é¤åæçå¨åºäººå(æ®éè®¿å®¢ï¼ retentionMapper.delete(new UpdateWrapper<Retention>().lambda() .eq(Retention::getType,Constants.memberType.visitor) .in(Retention::getMemberId,delRetentionLis)); } if(retentionList.size()>0){ //åæå ¥ææ°çå¨å人å retentionMapper.insertBatchSomeColumn(retentionList); } log.error("ãæµ·åº·è®¿å®¢äºä»¶æ¨éã========æå======="); }catch (Exception e){ @@ -69,6 +294,98 @@ saveInterfaceLog(param,"/business/hksync/push/visit",result); return null; } /** * æ ¹æ®è®¿å®¢æ¨é访客记å½ç¼ç ï¼å¤ç访客记å½ãå¨åºäººåçä¿¡æ¯ */ private void dealVisitDataByRequst(EventVisitInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList) { EventVisitDataRequest model = request.getData(); MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(Visits.class); queryWrapper.eq(Visits::getHkId,model.getVisitorId() ); queryWrapper.last("limit 1"); Visits visits = visitsMapper.selectJoinOne(Visits.class,queryWrapper); if(visits !=null){ //å¦æäººåä¿¡æ¯åå¨ï¼åå é¤ä¹åçææè¿åºæ°æ®ï¼æ è®ºæ¤æ¬¡æ¨éæ¯è¿åè¿æ¯åºåºæ¨éäºä»¶ï¼ delRetentionLis.add(visits.getMemberId()); Visits updateVistis = new Visits(); updateVistis.setId(visits.getId()); if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_IN.getKey()){ //妿æ¯è®¿å®¢ç»è®°ï¼å½å ¥äººåçå¨åºæ°æ®è®°å½ retentionList.add(getRetentionModelByVisitRequest(visits,request)); //æ¥è®¿æ¶é´ updateVistis.setOutDate(DateUtil.getISO8601DateByStr(model.getStartTime())); }else { //妿æ¯è®¿å®¢ç¾ç¦»äºä»¶ updateVistis.setOutDate(DateUtil.getISO8601DateByStr(model.getEndTime())); updateVistis.setOutType(Constants.ZERO); updateVistis.setOutInfo("访客æ£å¸¸ç¾ç¦»"); } updateVistis.setEditDate(new Date()); //æ´æ°è®¿å®¢æ¥è®¿æè ç¾ç¦»æ¶é´ä¿¡æ¯ visitsMapper.updateById(updateVistis) ; } } private VisitEvent getVisitEventModelByRequest(EventVisitInfoRequest request) { VisitEvent event = new VisitEvent(); event.setIsdeleted(Constants.ZERO); event.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime())); event.setVisitorWorkUint(request.getData().getVisitorWorkUint()); event.setVisitorId(request.getData().getVisitorId()); event.setVisitorCode(request.getData().getVisitorCode()); event.setTimeout(request.getTimeout()); event.setSvrIndexCode(request.getData().getSvrIndexCode()); event.setStatus(request.getStatus()); event.setStartTime(request.getData().getStartTime()); event.setSrcType(request.getSrcType()); event.setSrcParentIndex(request.getSrcParentIndex()); event.setSrcName(request.getSrcName()); event.setSrcIndex(request.getSrcIndex()); event.setSignOrg(request.getData().getSignOrg()); event.setSex(request.getData().getSex()); event.setPurpose(request.getData().getPurpose()); event.setPhotoUrl(getHkImgUrl(request.getData().getPhotoUrl())); event.setPersonName(request.getData().getPersonName()); event.setIdType(request.getData().getIdType()); String idnum =request.getData().getIdNo(); if(StringUtils.isNotBlank(idnum)){ //身份è¯å·åå¨å¯æ event.setIdNo(DESUtil.encrypt(Constants.EDS_PWD,idnum));//身份è¯å·å å¯ //è±æææºå·æ¾ç¤ºn event.setIdcardDecode(Constants.getTuominStr(idnum)); } event.setEventType(request.getEventType()); event.setEventId(request.getEventId()); event.setHappenTime(event.getHappenTime()); return event; } private Retention getRetentionModelByVisitRequest(Visits visits, EventVisitInfoRequest request) { Retention retention = new Retention(); retention.setIsdeleted(Constants.ZERO); retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime())); retention.setClasses(visits.getMemberClasses()); retention.setCode(visits.getCode()); retention.setIdcardNo(visits.getIdcardNo()); retention.setIdcardDecode(visits.getIdcardDecode()); retention.setName(visits.getName()); retention.setBirthday(visits.getBirthday()); retention.setType(visits.getMemberType()); retention.setCompanyId(visits.getCompanyId()); retention.setCompanyName(visits.getCompanyName()); retention.setEventCode(request.getEventType()+""); retention.setEventDate(retention.getCreateDate()); retention.setFaceImg(visits.getFaceImg()); retention.setImgurl(visits.getImgurl()); retention.setPhone(visits.getPhone()); retention.setMemberId(visits.getMemberId()); retention.setDeviceName(request.getSrcName()); retention.setDeviceIndex(request.getSrcIndex()); return retention; } /** @@ -92,7 +409,6 @@ return null; } private void saveInterfaceLog(Object param, String path,String result) { InterfaceLog hkMonitoryLogDO=new InterfaceLog(); hkMonitoryLogDO.setType(1); @@ -104,7 +420,7 @@ hkMonitoryLogDO.setRepose(result); hkMonitoryLogDO.setName(path); hkMonitoryLogDO.setUrl(path); interfaceLogService.create(hkMonitoryLogDO); interfaceLogMapper.insert(hkMonitoryLogDO); }