server/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
@@ -1,29 +1,24 @@ package com.doumee.api.business; import com.doumee.api.BaseController; import com.doumee.core.annotation.excel.ExcelExporter; import com.doumee.core.annotation.pr.PreventRepeat; import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest; import com.doumee.core.haikang.model.param.request.ParkListRequest; import com.doumee.core.haikang.service.HKService; import com.doumee.core.haikang.model.param.request.PrivilegeGroupRequest; import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest; import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest; import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest; import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.Device; import com.doumee.service.business.DeviceService; import com.doumee.service.business.HkSyncService; import com.doumee.service.business.impl.hksync.HkSyncDeviceServiceImpl; import com.doumee.service.business.impl.hksync.HkSyncParkServiceImpl; import com.doumee.service.business.impl.hksync.HkSyncPrivilegeServiceImpl; import com.doumee.service.business.impl.hksync.HkSyncPushServiceImpl; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; /** * @author æ±è¹è¹ @@ -40,6 +35,8 @@ private HkSyncParkServiceImpl hkSyncParkService; @Autowired private HkSyncPrivilegeServiceImpl hkSyncPrivilegeService; @Autowired private HkSyncPushServiceImpl hkSyncPushService; @PreventRepeat @ApiOperation("ãæµ·åº·ãå ¨é忥é¨ç¦è®¾å¤æ¥å£") @@ -58,19 +55,32 @@ return ApiResponse.success(result); } @PreventRepeat @ApiOperation("ãæµ·åº·ãå ¨é忥åè½¦åºæ¥å£") @ApiOperation("ãæµ·åº·ãå ¨éåæ¥è®¿å®¢æéç»æ¥å£") @PostMapping("/getPrivilege") // @RequiresPermissions("business:hksync:privilege") public ApiResponse getPrivilege(@RequestBody ParkListRequest param) { String result = hkSyncPrivilegeService.syncHkParks(param); public ApiResponse getPrivilege(@RequestBody PrivilegeGroupRequest param) { String result = hkSyncPrivilegeService.syncPrivilege(param); return ApiResponse.success(result); } @PreventRepeat @ApiOperation("ãæµ·åº·ãäºä»¶è®¢é æ¨é对æ¥å¤çæ¥å£") @PostMapping("/push") // @RequiresPermissions("business:hksync:privilege") public ApiResponse push(@RequestBody ParkListRequest param) { String result = hkSyncPrivilegeService.syncHkParks(param); @ApiOperation("ãæµ·åº·ãé¨ç¦äºä»¶è®¢é æ¨é对æ¥å¤çæ¥å£") @PostMapping("/push/acs") public ApiResponse pushAcs(@RequestBody EventAcsRequest param, HttpServletResponse response) { String result = hkSyncPushService.dealAcsEvent(param,response); return ApiResponse.success(result); } @PreventRepeat @ApiOperation("ãæµ·åº·ã访客äºä»¶è®¢é æ¨é对æ¥å¤çæ¥å£") @PostMapping("/push/visit") public ApiResponse pushVisit(@RequestBody EventVisitRequest param, HttpServletResponse response) { String result = hkSyncPushService.dealVisitEvent(param,response); return ApiResponse.success(result); } @PreventRepeat @ApiOperation("ãæµ·åº·ãå车åºäºä»¶è®¢é æ¨é对æ¥å¤çæ¥å£") @PostMapping("/push/parks") public ApiResponse pushParks(@RequestBody EventParkRequest param, HttpServletResponse response) { String result = hkSyncPushService.dealParkEvent(param,response); return ApiResponse.success(result); } } server/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java
@@ -4,6 +4,7 @@ import org.apache.shiro.session.mgt.SessionManager; import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor; import org.apache.shiro.spring.web.ShiroFilterFactoryBean; import org.apache.shiro.util.ThreadContext; import org.apache.shiro.web.mgt.DefaultWebSecurityManager; import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator; import org.springframework.beans.factory.annotation.Autowired; @@ -77,6 +78,7 @@ @Bean public SecurityManager securityManager() { DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); ThreadContext.bind(securityManager);//å ä¸è¿å¥ä»£ç æå¨ç»å® securityManager.setRealm(shiroRealm); securityManager.setSessionManager(this.sessionManager()); securityManager.setCacheManager(shiroCacheManager); @@ -98,6 +100,7 @@ map.put("/system/logout", "anon"); map.put("/common/captcha", "anon"); map.put("/statistics/**", "anon"); map.put("/business/hksync/push/**", "anon"); map.put("/dingding/push", "anon"); // map.put("/ext/workorderExt/freshStatistics", "anon"); map.put("/dingding/jsapiTicket", "anon"); server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -49,6 +49,7 @@ String facePicture= "/api/resource/v1/person/picture";//æåç¨æ·äººè¸ç §ç String privilegeGroup= "/api/visitor/v1/privilege/group";//æ¥è¯¢è®¿å®¢æéç» String eventSub= "/api/eventService/v1/eventSubscriptionByEventTypes";//äºä»¶è®¢é String doorSearch= "/api/resource/v2/door/search";//æ¥è¯¢é¨ç¦ç¹å表v2 } /** server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -13,8 +13,14 @@ import org.apache.tomcat.util.bcel.Const; import org.yaml.snakeyaml.scanner.Constant; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.InetSocketAddress; import java.net.Proxy; import java.net.URL; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -26,7 +32,23 @@ // private static final Logger logger = LoggerFactory.getLogger(HKUtil.class); public static void main(String[] args) throws ParseException { public static void main(String[] args) throws Exception { // Proxy proxy = new Proxy(Proxy.Type.DIRECT, new InetSocketAddress("127.0.0.1",Integer.valueOf("1080"))); URL realUrl = new URL("https://10.50.60.253/artemis/api/eventService/v1/eventSubscriptionByEventTypes"); HttpURLConnection con = (HttpURLConnection) realUrl.openConnection(); con.setRequestMethod("GET"); // con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) ;Gecko/20100101 Firefox/57.0"); BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer content = new StringBuffer(); while ((inputLine = in.readLine()) != null) { content.append(inputLine); } in.close(); con.disconnect(); System.out.println(content.toString()); } private static void saveInterfaceLog(String s, String result,Map<String, String> path) { @@ -37,7 +59,7 @@ hkMonitoryLogDO.setCreateDate(new Date()); hkMonitoryLogDO.setIsdeleted(0); hkMonitoryLogDO.setRequest(s); hkMonitoryLogDO.setRemark(result); hkMonitoryLogDO.setRepose(result); hkMonitoryLogDO.setName(path.get(HKConstants.https)); hkMonitoryLogDO.setUrl(HKConstants.https + ArtemisConfig.host+path.get(HKConstants.https)); bean.create(hkMonitoryLogDO); @@ -269,6 +291,17 @@ } } /** * è·åé¨ç¦ç¹å表 * @param body * @return */ public static String doorSearch(String body) { Map<String, String> path = getPath(HKConstants.InterfacePath.doorSearch); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请æ±application/jsonç±»ååæ° saveInterfaceLog(body,result,path); return result; } /** * è·åé¨ç¦è®¾å¤å表 * @param body * @return @@ -360,18 +393,5 @@ /** * ä¼ å ¥Dataç±»åæ¥æï¼è¿ååç¬¦ä¸²ç±»åæ¶é´ï¼ISO8601æ åæ¶é´ï¼ * @param date * @return */ public static String getISO8601Timestamp(Date date){ TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai"); //TimeZone tz = TimeZone.getTimeZone("GMT-01"); DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); df.setTimeZone(tz); String nowAsISO = df.format(date); return nowAsISO; } } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/DoorsListRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.doumee.core.haikang.model.param.request; import lombok.Data; @Data public class DoorsListRequest { private String name ;//string False åç§°ï¼æ¨¡ç³æç´¢ï¼æå¤§é¿åº¦32ï¼è¥å å«ä¸æï¼æå¤§é¿åº¦æä¸è¶ è¿æç §æå®ç¼ç çåèé¿åº¦ï¼å³getBytes(âutf-8â).length private String[] regionIndexCodes ;//string[] False åºåç¼å·,å¯ä»¥ä¸ºç©º; String[]ï¼æ¯ææ ¹æ®åºåæ¹éæ¥è¯¢ï¼åºåç¼å·ä¸ªæ°<=1000个ï¼å个é¿åº¦<=64Byteï¼ï¼å¯ä»æ¥è¯¢åºåå表v2æ¥å£è·åè¿ååæ°indexCode private Boolean isSubRegion;// boolean False trueæ¶ï¼æç´¢regionIndexCodesåå ¶åååºåçèµæºï¼ falseæ¶ï¼åªæç´¢ regionIndexCodesçèµæº private Integer pageNo ;//integer True å½å页ç private Integer pageSize;// integer True åé¡µå¤§å° private String[] authCodes ;//string[] False æéç éåï¼è¯¦è§éå½A.3 èµæºæéç ä¸é¨ç¦è®¾å¤å¯¹åºçèµæºæéç private Integer orderBy ;//string False æåºå段,注æï¼æåºåæ®µå¿ é¡»æ¯æ¥è¯¢æ¡ä»¶ï¼å¦åè¿ååæ°é误 private Integer orderType;// string False éåºååº,éåºï¼desc ååºï¼asc } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/EventParkInResultRequest.java
ÎļþÒÑɾ³ý server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/EventParkRlsRequest.java
ÎļþÒÑɾ³ý server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/EventPushRequest.java
ÎļþÒÑɾ³ý server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/EventVisitDataRequest.java
ÎļþÒÑɾ³ý server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/acs/EventAcsInfoRequest.java
ÎļþÃû´Ó server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/EventPushInfoRequest.java ÐÞ¸Ä @@ -1,10 +1,9 @@ package com.doumee.core.haikang.model.param.request.event; package com.doumee.core.haikang.model.param.request.event.acs; import lombok.Data; @Data public class EventPushInfoRequest { public class EventAcsInfoRequest { private String eventId;// String äºä»¶å¯ä¸æ è¯ æ¯ 64 private String srcIndex;// String äºä»¶æºç¼å·ï¼ç©çè®¾å¤æ¯èµæºç¼å· æ¯ 64 private String srcType;// String äºä»¶æºç±»å æ¯ 16 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/acs/EventAcsParamRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ package com.doumee.core.haikang.model.param.request.event.acs; import lombok.Data; import java.util.List; @Data public class EventAcsParamRequest { private String sendTime;// P String äºä»¶ä»æ¥æ¶è ï¼ç¨åºå¤çåï¼ååºçæ¶é´ æ¯ 32 äºä»¶åéæ¶é´ private String ability;// P String äºä»¶ç±»å« æ¯ 64 æ è¯å车åºäºä»¶ private List<EventAcsInfoRequest> events;// P Events[] äºä»¶ä¿¡æ¯ æ¯ ä¸é } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/acs/EventAcsRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.doumee.core.haikang.model.param.request.event.acs; import lombok.Data; @Data public class EventAcsRequest { // private String parkIndexCodes ;// string False å车åºå¯ä¸æ è¯éå å¤ä¸ªå¼ä½¿ç¨è±æéå·åéï¼ä¸è¶ è¿1000个 private String method ;// String æ¹æ³åï¼ç¨äºæ è¯æ¥æç¨é æ¯ 16 äºä»¶åºå®OnEventNotify private EventAcsParamRequest params ;// Params äºä»¶åæ°ä¿¡æ¯ æ¯ ä¸é å ·ä½åæ°ä¿¡æ¯ } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/acs/EventDeviceDataRequest.java
ÎļþÃû´Ó server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/EventDeviceDataRequest.java ÐÞ¸Ä @@ -1,11 +1,11 @@ package com.doumee.core.haikang.model.param.request.event; package com.doumee.core.haikang.model.param.request.event.acs; import lombok.Data; @Data public class EventDeviceDataRequest<T> { public class EventDeviceDataRequest { private ExtEventIdentityCardInfo ExtEventIdentityCardInfo;// 人å身份è¯ä¿¡æ¯ å¦ ä¸é private ExtEventIdentityCardInfo ExtEventIdentityCardInfo;// 人å身份è¯ä¿¡æ¯ å¦ ä¸é private ExtEventIdentityCardInfo ExtEventCustomerNumInfo;// ééäºä»¶ä¿¡æ¯ å¦ ä¸é private Integer ExtAccessChannel ;//Number 人åééå· å¦ 32 private Integer ExtEventAlarmInID;// Number æ¥è¦è¾å ¥/é²åºéé å¦ 32 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/acs/ExtEventCustomerNumInfo.java
ÎļþÃû´Ó server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/ExtEventCustomerNumInfo.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.doumee.core.haikang.model.param.request.event; package com.doumee.core.haikang.model.param.request.event.acs; import lombok.Data; server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/acs/ExtEventIdentityCardInfo.java
ÎļþÃû´Ó server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/ExtEventIdentityCardInfo.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.doumee.core.haikang.model.param.request.event; package com.doumee.core.haikang.model.param.request.event.acs; import lombok.Data; server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventParkDataRequest.java
ÎļþÃû´Ó server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/EventParkDataRequest.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.doumee.core.haikang.model.param.request.event; package com.doumee.core.haikang.model.param.request.event.parks; import lombok.Data; @@ -14,7 +14,7 @@ private Integer mainLogo;// Number 车è¾ä¸»åç å¦ private String parkIndex ;// String å车åºç¼å· æ¯ 64 private String parkName ;// String å车åºåç§° æ¯ 64 private EventParkPicRequest picUrl ;//Object å¦ private EventParkPicRequest picUrl ;//Object å¦ private String svrIndex;// String å¾çæå¡å¨ç¼å· å¦ 32 private Integer plateBelieve ;//Number 车ç置信度 æ¯ åå¼èå´ï¼0â100 private Integer plateColor ;//Number 车çé¢è² æ¯ åè§éå½A.15 车çé¢è² server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventParkInResultRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,9 @@ package com.doumee.core.haikang.model.param.request.event.parks; import lombok.Data; @Data public class EventParkInResultRequest { private EventParkParamRequest.EventParkRlsRequest rlsResult ;// æ¾è¡ç»ææ°æ® æ¯ } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventParkInfoRequest.javacopy from server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/EventPushInfoRequest.java copy to server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventParkInfoRequest.java
Îļþ´Ó server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/EventPushInfoRequest.java ¸´ÖÆ @@ -1,10 +1,10 @@ package com.doumee.core.haikang.model.param.request.event; package com.doumee.core.haikang.model.param.request.event.parks; import com.doumee.core.haikang.model.param.request.event.acs.EventDeviceDataRequest; import lombok.Data; @Data public class EventPushInfoRequest { public class EventParkInfoRequest { private String eventId;// String äºä»¶å¯ä¸æ è¯ æ¯ 64 private String srcIndex;// String äºä»¶æºç¼å·ï¼ç©çè®¾å¤æ¯èµæºç¼å· æ¯ 64 private String srcType;// String äºä»¶æºç±»å æ¯ 16 @@ -14,5 +14,5 @@ private Integer timeout ;//Number èå²è¶ æ¶æ¶é´ æ¯ åä½ï¼ç§ private String happenTime ;//String äºä»¶åçæ¶é´ï¼è®¾å¤æ¶é´ï¼ æ¯ 64 private String srcParentIndex ;//String äºä»¶åççäºä»¶æºç¶è®¾å¤ç¼å· å¦ 64 private EventDeviceDataRequest data; private EventParkDataRequest data; } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventParkParamRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.doumee.core.haikang.model.param.request.event.parks; import lombok.Data; import java.util.List; @Data public class EventParkParamRequest { private String sendTime;// P String äºä»¶ä»æ¥æ¶è ï¼ç¨åºå¤çåï¼ååºçæ¶é´ æ¯ 32 äºä»¶åéæ¶é´ private String ability;// P String äºä»¶ç±»å« æ¯ 64 æ è¯å车åºäºä»¶ private List<EventParkInfoRequest> events;// P Events[] äºä»¶ä¿¡æ¯ æ¯ ä¸é @Data public static class EventParkRlsRequest { private Integer releaseAuth ;// Number æ¾è¡æé æ¯ 64 åè§éå½A.65 æ¾è¡æé private Integer releaseReason ;// Number æ¾è¡åå æ¯ 64 åè§åè§éå½A.67 æ¾è¡åå private Integer releaseResult ;// Number æ¾è¡ç»æ æ¯ 64 åè§éå½A.66 æ¾è¡ç»æ private Integer releaseResultEx ;//Number æ°ä½ç³»æ¾è¡ç»æ æ¯ 64 åè§éå½A.68 æ°ä½ç³»æ¾è¡ç»æ private Integer releaseWay ;// Number æ¾è¡æ¹å¼ æ¯ 64 åè§éå½A.69 æ¾è¡æ¹å¼ } } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventParkPicRequest.java
ÎļþÃû´Ó server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/EventParkPicRequest.java ÐÞ¸Ä @@ -1,11 +1,9 @@ package com.doumee.core.haikang.model.param.request.event; package com.doumee.core.haikang.model.param.request.event.parks; import lombok.Data; @Data public class EventParkPicRequest { private String platePicUrl;// String 车çå¾ç å¦ 256 private String vehiclePicUrl;// String 车è¾å¾ç å¦ 256 } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventParkRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.doumee.core.haikang.model.param.request.event.parks; import lombok.Data; @Data public class EventParkRequest { // private String parkIndexCodes ;// string False å车åºå¯ä¸æ è¯éå å¤ä¸ªå¼ä½¿ç¨è±æéå·åéï¼ä¸è¶ è¿1000个 private String method ;// String æ¹æ³åï¼ç¨äºæ è¯æ¥æç¨é æ¯ 16 äºä»¶åºå®OnEventNotify private EventParkParamRequest params ;// Params äºä»¶åæ°ä¿¡æ¯ æ¯ ä¸é å ·ä½åæ°ä¿¡æ¯ } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitDataRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,31 @@ package com.doumee.core.haikang.model.param.request.event.visit; import lombok.Data; import java.util.List; @Data public class EventVisitDataRequest { private String visitorId ;//String 访客id æ¯ 64 对åºè®¿å®¢æ¥è®¿è®°å½ä¸çorderIdåæ®µ private String personName;// String å§å æ¯ 32 private Integer sex;// Number æ§å« æ¯ 1-ç·2-女 private Integer idType;// Number è¯ä»¶ç±»å å¦ 111ï¼èº«ä»½è¯ private String idNo;// String è¯ä»¶å·ç å¦ 64 private String beVisitedPersonName;// String 被访é®äººå§å æ¯ 64 private String beVisitedPersonOrg ;//String 被访é®äººæå±ç»ç» æ¯ 64 private String visitorWorkUint;// String æ¥è®¿åä½ å¦ 64 private String visitorCode;// String 访客éªè¯ç å¦ 64 private String purpose;// String æ¥è®¿äºç± å¦ 64 private String signOrg;// String è¯ä»¶ç¾åæºå ³ å¦ 64 private String startTime ;//String æ¥è®¿æ¶é´ å¦ ISO8601æ ¼å¼ï¼yyyy-MM-ddTHH:mm:ss+å½åæ¶åº ä¾å¦å京æ¶é´ï¼ 2018-07-26T15:00:00+08:00 private String endTime;// String ç¦»å¼æ¶é´ å¦ ISO8601æ ¼å¼ï¼yyyy-MM-ddTHH:mm:ss+å½åæ¶åº ä¾å¦å京æ¶é´ï¼ 2018-07-26T15:00:00+08:00 private String phone;// String ææºå·ç æ¯ 64 private String carNo;// String 车çå· å¦ private String photoUrl;// String ç §çuri å¦ private String captureUrl;// String ææå¾çuri å¦ private String svrIndexCode;// String å¾çå卿å¡å¨å¯ä¸æ è¯ å¦ private String beVisitedPersonId;// String 被访é®äººId æ¯ private String beVisitedPersonOrgId;// String 被访é®äººæå±ç»ç»Id æ¯ } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitInfoRequest.javacopy from server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/EventPushInfoRequest.java copy to server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitInfoRequest.java
Îļþ´Ó server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/EventPushInfoRequest.java ¸´ÖÆ @@ -1,10 +1,10 @@ package com.doumee.core.haikang.model.param.request.event; package com.doumee.core.haikang.model.param.request.event.visit; import com.doumee.core.haikang.model.param.request.event.acs.EventDeviceDataRequest; import lombok.Data; @Data public class EventPushInfoRequest { public class EventVisitInfoRequest { private String eventId;// String äºä»¶å¯ä¸æ è¯ æ¯ 64 private String srcIndex;// String äºä»¶æºç¼å·ï¼ç©çè®¾å¤æ¯èµæºç¼å· æ¯ 64 private String srcType;// String äºä»¶æºç±»å æ¯ 16 @@ -14,5 +14,5 @@ private Integer timeout ;//Number èå²è¶ æ¶æ¶é´ æ¯ åä½ï¼ç§ private String happenTime ;//String äºä»¶åçæ¶é´ï¼è®¾å¤æ¶é´ï¼ æ¯ 64 private String srcParentIndex ;//String äºä»¶åççäºä»¶æºç¶è®¾å¤ç¼å· å¦ 64 private EventDeviceDataRequest data; private EventVisitDataRequest data; } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitParamRequest.java
ÎļþÃû´Ó server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/EventPushParamRequest.java ÐÞ¸Ä @@ -1,17 +1,17 @@ package com.doumee.core.haikang.model.param.request.event; package com.doumee.core.haikang.model.param.request.event.visit; import lombok.Data; import java.util.List; @Data public class EventPushParamRequest { public class EventVisitParamRequest { private String sendTime;// P String äºä»¶ä»æ¥æ¶è ï¼ç¨åºå¤çåï¼ååºçæ¶é´ æ¯ 32 äºä»¶åéæ¶é´ private String ability;// P String äºä»¶ç±»å« æ¯ 64 æ è¯å车åºäºä»¶ private String[] uids;// String[] ç¨æ·id å¦ ä¸é private String[] clients ;//String[] ç»ä»¶æ è¯ å¦ ä¸é private List<EventPushInfoRequest> events;// P Events[] äºä»¶ä¿¡æ¯ æ¯ ä¸é private List<EventVisitInfoRequest> events;// P Events[] äºä»¶ä¿¡æ¯ æ¯ ä¸é } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.doumee.core.haikang.model.param.request.event.visit; import lombok.Data; @Data public class EventVisitRequest { // private String parkIndexCodes ;// string False å车åºå¯ä¸æ è¯éå å¤ä¸ªå¼ä½¿ç¨è±æéå·åéï¼ä¸è¶ è¿1000个 private String method ;// String æ¹æ³åï¼ç¨äºæ è¯æ¥æç¨é æ¯ 16 äºä»¶åºå®OnEventNotify private EventVisitParamRequest params ;// Params äºä»¶åæ°ä¿¡æ¯ æ¯ ä¸é å ·ä½åæ°ä¿¡æ¯ } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AcsDeviceInfoResponse.java
@@ -8,7 +8,7 @@ @Data public class AcsDeviceInfoResponse { private String indexCode ;//string False èµæºå¯ä¸ç¼ç private String indexCode ;//string False èµæºå¯ä¸ç¼ç private String resourceType;// string False èµæºç±»åï¼è¯¦è§éå½A.2 èµæºç±»å private String name;// string False èµæºåç§° private String parentIndexCode;// string False ç¶çº§èµæºç¼å· server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/DoorsInfoResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,31 @@ package com.doumee.core.haikang.model.param.respose; import lombok.Data; @Data public class DoorsInfoResponse { private String indexCode ;//string False èµæºå¯ä¸ç¼ç private String resourceType ;//string False èµæºç±»åï¼è¯¦è§éå½A.2 èµæºç±»å private String name;// string False èµæºåç§° private String doorNo;// string False é¨ç¦ç¹ç¼å· private String channelNo ;//string False ééå· private String parentIndexCode ;//string False ç¶çº§èµæºç¼å· private String controlOneId ;//string False ä¸çº§æ§å¶å¨id private String controlTwoId;// string False äºçº§æ§å¶å¨id private String readerInId ;//string False 读å¡å¨1 private String readerOutId ;//string False 读å¡å¨2 private String treatyType ;//string False æ¥å ¥åè®®ï¼è¯¦è§éå½A.6 ç¼ç è®¾å¤æ¥å ¥åè®® private String doorSerial ;//number False é¨åºå· private String regionIndexCode;// string False æå±åºå private String regionPath ;//string False æå±åºåè·¯å¾,以@符å·åå²ï¼å 嫿¬èç¹ private String createTime ;//string False å建æ¶é´ private String updateTime;// string False æ´æ°æ¶é´ private String description;// string False æè¿° private String channelType;// string False ééç±»åï¼doorï¼é¨ç¦ç¹ private String regionName ;//string False åºååç§° private String regionPathName ;//string False æå±åºåè·¯å¾åï¼ç¬¦å·"/"è¿è¡åé private String installLocation;// string False å®è£ ä½ç½®ï¼è¯¦è§éå½éå½A.81 å®è£ ä½ç½® } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/DoorsListResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ package com.doumee.core.haikang.model.param.respose; import lombok.Data; import java.util.List; @Data public class DoorsListResponse { private int total;// number False æ¥è¯¢æ°æ®è®°å½æ»æ° private int pageSize;// number False æ¯é¡µè®°å½æ»æ° private int pageNo ;// number False å½å页ç private List<DoorsInfoResponse> list ;// object[] False } server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -34,7 +34,7 @@ * @return */ public static BaseResponse<OrgListResponse> getRootOrg(BaseRequst param){ log.error("ãæµ·åº·è·åæ ¹ç»ç»ã================å¼å§===="); log.info("ãæµ·åº·è·åæ ¹ç»ç»ã================å¼å§===="); try { String res = HKTools.getRootOrg (); TypeReference typeReference = @@ -52,7 +52,7 @@ * @return */ public static BaseResponse editOrg(OrgEditRequest param){ log.error("ãæµ·åº·ä¿®æ¹ç»ç»ã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·ä¿®æ¹ç»ç»ã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.editOrg(JSONObject.toJSONString(param)); @@ -71,7 +71,7 @@ * @return */ public static BaseResponse<OrgOrUserAddResponse> addBatchOrg(List<OrgAddRequest> param){ log.error("ãæµ·åº·æ°å¢ç»ç»ã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·æ°å¢ç»ç»ã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.addBatchOrg(JSONObject.toJSONString(param)); @@ -90,7 +90,7 @@ * @return */ public static BaseResponse delBatchOrg(OrgDelRequest param){ log.error("ãæµ·åº·å é¤ç»ç»ã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·å é¤ç»ç»ã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.delOrg(JSONObject.toJSONString(param)); @@ -109,7 +109,7 @@ * @return */ public static BaseResponse<UserAddResponse> addUser(UserAddRequest param){ log.error("ãæµ·åº·æ°å¢äººåã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·æ°å¢äººåã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.addUser(JSONObject.toJSONString(param)); TypeReference typeReference = @@ -127,7 +127,7 @@ * @return */ public static BaseResponse editUser(UserAddRequest param){ log.error("ãæµ·åº·ä¿®æ¹äººåã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·ä¿®æ¹äººåã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.editUser(JSONObject.toJSONString(param)); TypeReference typeReference = @@ -145,7 +145,7 @@ * @return */ public static BaseResponse<OrgOrUserAddResponse> addBatchUser(List<UserAddRequest> param){ log.error("ãæµ·åº·æ¹éæ°å¢äººåã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·æ¹éæ°å¢äººåã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.addBatchUser(JSONObject.toJSONString(param)); TypeReference typeReference = @@ -163,7 +163,7 @@ * @return */ public static BaseResponse<OrgOrUserAddFailureResponse> delBatchUser(List<UserAddRequest> param){ log.error("ãæµ·åº·æ¹éæ°å¢äººåã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·æ¹éæ°å¢äººåã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.delBatchUser(JSONObject.toJSONString(param)); TypeReference typeReference = @@ -181,7 +181,7 @@ * @return */ public static BaseResponse<FaceAddOrEditesponse> addFace(List<FaceAddRequest> param){ log.error("ãæµ·åº·æ·»å 人è¸ä¿¡æ¯ã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·æ·»å 人è¸ä¿¡æ¯ã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.addFace(JSONObject.toJSONString(param)); TypeReference typeReference = @@ -199,7 +199,7 @@ * @return */ public static BaseResponse<FaceAddOrEditesponse> editFace(List<FaceEditRequest> param){ log.error("ãæµ·åº·ç¼è¾äººè¸ä¿¡æ¯ã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·ç¼è¾äººè¸ä¿¡æ¯ã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.editFace(JSONObject.toJSONString(param)); TypeReference typeReference = @@ -217,7 +217,7 @@ * @return */ public static BaseResponse delFace(List<FaceEditRequest> param){ log.error("ãæµ·åº·å é¤äººè¸ä¿¡æ¯ã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·å é¤äººè¸ä¿¡æ¯ã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.editFace(JSONObject.toJSONString(param)); TypeReference typeReference = @@ -235,7 +235,7 @@ * @return */ public static InputStream getFaceInputStream(FacePictureRequest param) { log.error("ãæµ·åº·äººè¸è®¿é®å¾çæµã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·äººè¸è®¿é®å¾çæµã================å¼å§===="+JSONObject.toJSONString(param)); try { InputStream res = HKTools.getFaceInputStream(JSONObject.toJSONString(param)); log.error("ãæµ·åº·äººè¸è®¿é®å¾çæµã================æå====\n"); @@ -251,7 +251,7 @@ * @return */ public static BaseResponse<List<ParkListResponse>> parkList(ParkListRequest param){ log.error("ãæµ·è·å车åºåè¡¨æ°æ®ã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·è·å车åºåè¡¨æ°æ®ã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.parkList(JSONObject.toJSONString(param)); TypeReference typeReference = @@ -269,7 +269,7 @@ * @return */ public static BaseResponse<List<EntranceListResponse>> entranceList(EntranceListRequest param){ log.error("ãæµ·è·å车åºåè¡¨æ°æ®ã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·è·å车åºåè¡¨æ°æ®ã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.entranceList(JSONObject.toJSONString(param)); TypeReference typeReference = @@ -287,7 +287,7 @@ * @return */ public static BaseResponse carChargeAddtion(CarChargeAddRequest param){ log.error("ãæµ·åº·åºå®è½¦è¾å å¼ã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·åºå®è½¦è¾å å¼ã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.carChargeAddtion(JSONObject.toJSONString(param)); TypeReference typeReference = @@ -305,7 +305,7 @@ * @return */ public static BaseResponse carChargeDeletion(CarChargeDelRequest param){ log.error("ãæµ·åº·åºå®è½¦è¾åæ¶å æã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·åºå®è½¦è¾åæ¶å æã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.carChargeDeletion(JSONObject.toJSONString(param)); TypeReference typeReference = @@ -323,7 +323,7 @@ * @return */ public static BaseResponse<ParkReservationAddResponse> parkReservationAddition(ParkReservationAddRequest param){ log.error("ãæµ·åº·è½¦ä½é¢çº¦ã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·è½¦ä½é¢çº¦ã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.parkAddition(JSONObject.toJSONString(param)); TypeReference typeReference = @@ -341,7 +341,7 @@ * @return */ public static BaseResponse parkReservationDeletion(ParkReservationDelRequest param){ log.error("ãæµ·åº·è½¦ä½åæ¶é¢çº¦ã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·è½¦ä½åæ¶é¢çº¦ã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.carChargeDeletion(JSONObject.toJSONString(param)); TypeReference typeReference = @@ -359,7 +359,7 @@ * @return */ public static BaseResponse<VisitAppointmentResponse> visitAppiontment(VisitAppointmentRequest param){ log.error("ãæµ·åº·è®¿å®¢é¢çº¦ã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·è®¿å®¢é¢çº¦ã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.visitAppiontment(JSONObject.toJSONString(param)); TypeReference typeReference = @@ -377,7 +377,7 @@ * @return */ public static BaseResponse cancelVisitAppiontment(VisitAppointmentCancelRequest param){ log.error("ãæµ·åº·è®¿å®¢é¢çº¦åæ¶ã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·è®¿å®¢é¢çº¦åæ¶ã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.visitCancel(JSONObject.toJSONString(param)); TypeReference typeReference = @@ -395,7 +395,7 @@ * @return */ public static BaseResponse outVisitAppiontment(VisitAppointmentOutRequest param){ log.error("ãæµ·åº·è®¿å®¢é¢çº¦ç¾ç¦»ã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·è®¿å®¢é¢çº¦ç¾ç¦»ã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.visitOut(JSONObject.toJSONString(param)); TypeReference typeReference = @@ -413,7 +413,7 @@ * @return */ public static BaseResponse<VisitAppointmentVistorResponse> visitAppiontmentMDJ(VisitAppointmentMDJRequest param){ log.error("ãæµ·åº·è®¿å®¢å ç»è®°é¢çº¦ã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·è®¿å®¢å ç»è®°é¢çº¦ã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.visitAppiontmentMDJ(JSONObject.toJSONString(param)); TypeReference typeReference = @@ -431,7 +431,7 @@ * @return */ public static BaseResponse<PrivilegeGroupListResponse> privilegeGroup(PrivilegeGroupRequest param){ log.error("ãæµ·åº·è®¿å®¢æéç»å表æ¥è¯¢ã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·è®¿å®¢æéç»å表æ¥è¯¢ã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.privilegeGroup(JSONObject.toJSONString(param)); TypeReference typeReference = @@ -445,11 +445,29 @@ return null; } /** *海康é¨ç¦ç¹æ¥è¯¢ï¼åé¡µï¼ * @return */ public static BaseResponse<DoorsListResponse> doorSearch(DoorsListRequest param){ log.info("ãæµ·åº·é¨ç¦ç¹æ¥è¯¢ã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.doorSearch(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse<DoorsListResponse> >(){}; BaseResponse<DoorsListResponse> result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康é¨ç¦ç¹æ¥è¯¢"); return result; }catch (Exception e){ log.error("ãæµ·åº·é¨ç¦ç¹æ¥è¯¢ã================失败====ï¼\n"+ e.getMessage()); } return null; } /** *é¨ç¦è®¾å¤æ¥è¯¢ï¼åé¡µï¼ * @return */ public static BaseResponse<AcsDeviceListResponse> acsDeviceList(AcsDeviceListRequest param){ log.error("ãæµ·åº·é¨ç¦è®¾å¤æ¥è¯¢ã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·é¨ç¦è®¾å¤æ¥è¯¢ã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.acsDeviceList(JSONObject.toJSONString(param)); TypeReference typeReference = @@ -467,7 +485,7 @@ * @return */ public static BaseResponse eventSub(EventSubRequest param){ log.error("ãæµ·åº·äºä»¶è®¢é ã================å¼å§===="+JSONObject.toJSONString(param)); log.info("ãæµ·åº·äºä»¶è®¢é ã================å¼å§===="+JSONObject.toJSONString(param)); String res = null; try { res = HKTools.eventSub(JSONObject.toJSONString(param)); server/dmvisit_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -41,6 +41,43 @@ public DateUtil() { } /** * ä¼ å ¥Dataç±»åæ¥æï¼è¿ååç¬¦ä¸²ç±»åæ¶é´ï¼ISO8601æ åæ¶é´ï¼ * @param date * @return */ public static String getISO8601Timestamp(Date date){ try { TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai"); //TimeZone tz = TimeZone.getTimeZone("GMT-01"); DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'+'z"); df.setTimeZone(tz); String nowAsISO = df.format(date); return nowAsISO; }catch (Exception e){ } return null; } public static Date getISO8601DateByStr(String date) { TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai"); if(date!=null ){ int i = date.indexOf("+"); if(i >0){ date = date.substring(0,i); } } //TimeZone tz = TimeZone.getTimeZone("GMT-01"); DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS"); // DateFormat df = new SimpleDateFormat("2023-12-08 T 09:25:54.698+08:00"); df.setTimeZone(tz); Date nowAsISO = null; try { nowAsISO = df.parse(date); } catch (ParseException e) { } return nowAsISO; } public static Date StringToDate2(String DATE) { if(StringUtils.isBlank(DATE)){ return null; @@ -2751,6 +2788,8 @@ public static void main(String[] args) { try { System.out.println(RandomStringUtils.randomNumeric(3)); Date date = getISO8601DateByStr("2023-02-26T08:59:55.206+08:00"); System.out.println(getISO8601Timestamp(date)); } catch (Exception ex) { ex.printStackTrace(); } server/dmvisit_service/src/main/java/com/doumee/service/business/HkSyncService.java
@@ -1,8 +1,14 @@ package com.doumee.service.business; import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest; import com.doumee.core.haikang.model.param.request.DoorsListRequest; import com.doumee.core.haikang.model.param.request.ParkListRequest; import com.doumee.core.haikang.model.param.request.PrivilegeGroupRequest; import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest; import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest; import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest; import javax.servlet.http.HttpServletResponse; /** * å车åºäºä»¶æ¨éè®°å½è¡¨Serviceå®ä¹ @@ -26,9 +32,23 @@ String syncHkParks(ParkListRequest param); /** * åæ¥æµ·åº·é¨ç¦ç¹å表信æ¯ï¼ææ ç¨ï¼ * @param param * @return */ String syncDoors(DoorsListRequest param); /** * åæ¥æµ·åº·è®¿å®¢æéç» * @param param * @return */ String syncPrivilege(PrivilegeGroupRequest param); String dealAcsEvent(EventAcsRequest param, HttpServletResponse response); String dealVisitEvent(EventVisitRequest param, HttpServletResponse response); String dealParkEvent(EventParkRequest param, HttpServletResponse response); } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -15,6 +15,7 @@ import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DESUtil; import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.Utils; import com.doumee.dao.business.DeviceRoleMapper; import com.doumee.dao.business.MemberMapper; @@ -81,14 +82,11 @@ String[] hkIds = getHkDeviceRoles(visits); //æ£éªæè®¿äººæ¯å¦åæ³ isValideVisitedUser(visits.getReceptMemberId()); //æ£æ¥éè®¿äººåæ¯å¦åæ³,çæéè®¿äººåæ°å¢éå List<Member> withUsers = isValideWithUsers(visits.getWithUserList()); if(Constants.equalsInteger(Constants.ZERO, visits.getIdcardType()) &&!IdcardUtil.isValidCard(visits.getIdcardNo())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼èº«ä»½è¯å·ç æè¯¯ï¼è¯·æ ¸å®åéè¯ï¼"); } Date date = new Date(); //访客信æ¯(使ç¨èº«ä»½è¯å·æ¥è¯¢æ¯å¦å·²å卿¹æ®éè®¿å®¢ï¼æ²¡æåæ°å¢ï¼åå¨åæ´æ°openidçä¿¡æ¯) //访客信æ¯(使ç¨èº«ä»½è¯å·æ¥è¯¢æ¯å¦å·²å卿¹æ®éè®¿å®¢ï¼æ²¡æåæ°å¢ï¼åå¨åæ´æ°openidçä¿¡æ¯),å æ¬éè®¿äººåæ ¡éªåå¤ç Member member =dealMemberAndVisits(visits); //åå§åè®¿å®¢ä¿¡æ¯ initVisitInfo(visits,date); @@ -199,8 +197,8 @@ private String visitAppiontment(Visits visits) { VisitAppointmentRequest param = new VisitAppointmentRequest(); param.setVisitStartTime(HKTools.getISO8601Timestamp(visits.getStarttime())); param.setVisitEndTime(HKTools.getISO8601Timestamp(visits.getStarttime())); param.setVisitStartTime(DateUtil.getISO8601Timestamp(visits.getStarttime())); param.setVisitEndTime(DateUtil.getISO8601Timestamp(visits.getStarttime())); BaseResponse<VisitAppointmentResponse> res = HKService.visitAppiontment(param); if(res==null || !StringUtils.equals(res.getCode(), HKConstants.RESPONSE_SUCCEE) || res.getData()==null){ //妿åèµ·é¢çº¦å¤±è´¥ @@ -215,7 +213,7 @@ } /** * æ ¡é©ç³è«äººä¿¡æ¯ï¼æåä¿®æ¹ï¼æ åæ°å¢ï¼å¹¶ç»å®ææ°openidæ°æ® * 访客信æ¯(使ç¨èº«ä»½è¯å·æ¥è¯¢æ¯å¦å·²å卿¹æ®éè®¿å®¢ï¼æ²¡æåæ°å¢ï¼åå¨åæ´æ°openidçä¿¡æ¯),å æ¬éè®¿äººåæ ¡éªåå¤ç * @param visits * @return */ server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -1,34 +1,16 @@ package com.doumee.service.business.impl.hksync; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.haikang.model.HKConstants; import com.doumee.core.haikang.model.param.BaseResponse; import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest; import com.doumee.core.haikang.model.param.request.EventSubRequest; import com.doumee.core.haikang.model.param.request.DoorsListRequest; import com.doumee.core.haikang.model.param.request.ParkListRequest; import com.doumee.core.haikang.model.param.request.PrivilegeGroupRequest; import com.doumee.core.haikang.model.param.respose.AcsDeviceInfoResponse; import com.doumee.core.haikang.model.param.respose.AcsDeviceListResponse; import com.doumee.core.haikang.model.param.respose.ParkListResponse; import com.doumee.core.haikang.service.HKService; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.DeviceMapper; import com.doumee.dao.business.ParksMapper; import com.doumee.dao.business.model.Device; import com.doumee.dao.business.model.Parks; import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest; import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest; import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest; import com.doumee.service.business.HkSyncService; import com.hikvision.artemis.sdk.config.ArtemisConfig; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletResponse; /** * 设å¤ä¿¡æ¯è¡¨Serviceå®ç° @@ -48,6 +30,11 @@ public String syncHkParks(ParkListRequest param){ return null; } @Override // @Async public String syncDoors(DoorsListRequest param){ return null; } /** * åæ¥æµ·åº·é¨ç¦è®¾å¤æ°æ® * @param param @@ -65,4 +52,19 @@ return null; } @Override public String dealAcsEvent(EventAcsRequest param, HttpServletResponse response){ return null; } @Override public String dealVisitEvent(EventVisitRequest param, HttpServletResponse response){ return null; } @Override public String dealParkEvent(EventParkRequest param, HttpServletResponse response){ return null; } } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
@@ -1,5 +1,7 @@ package com.doumee.service.business.impl.hksync; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.haikang.model.HKConstants; @@ -57,13 +59,13 @@ //å页éåå¾ªç¯æ¥è¯¢ææé¨ç¦è®¾å¤æ°æ® param = new AcsDeviceListRequest(); param.setPageNo(curPage); param.setPageSize(10000); param.setPageSize(100); BaseResponse<AcsDeviceListResponse> response = HKService.acsDeviceList(param); if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对ä¸èµ·ï¼æµ·åº·åæ¥æ°æ®å¤±è´¥~"); } AcsDeviceListResponse r = response.getData(); curTotal += 10000; curTotal += 100; if(curTotal >= r.getTotal()){ hasNext = false; } @@ -126,17 +128,21 @@ model.setIsdeleted(Constants.ZERO); model.setIp(device.getIp()); model.setHkDate(date); model.setCreateDate(DateUtil.StringToDate2(device.getCreateTime())); model.setEditDate(DateUtil.StringToDate2(device.getUpdateTime())); model.setNo(device.getDeviceCode()); model.setCreateDate(DateUtil.getISO8601DateByStr(device.getCreateTime())); model.setEditDate(DateUtil.getISO8601DateByStr(device.getUpdateTime())); model.setNo(device.getDevSerialNum()); model.setHkId(device.getIndexCode()); model.setName(device.getName()); model.setHkStatus(Constants.ONE); model.setManufature(device.getManufacturer()); model.setType(Constants.ZERO); // model.setNo(device.getDevSerialNum()); // model.setChannelNo(device); model.setResourceType(device.getResourceType()); model.setDevTypeCode(device.getDevTypeCode()); model.setManufature(device.getManufacturer()); model.setPort(device.getPort()); model.setRemark(JSONObject.toJSONString(device)); return model; } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDoorsServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,178 @@ package com.doumee.service.business.impl.hksync; import com.alibaba.fastjson.JSONObject; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.haikang.model.HKConstants; import com.doumee.core.haikang.model.param.BaseResponse; import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest; import com.doumee.core.haikang.model.param.request.DoorsListRequest; import com.doumee.core.haikang.model.param.respose.DoorsInfoResponse; import com.doumee.core.haikang.model.param.respose.AcsDeviceListResponse; import com.doumee.core.haikang.model.param.respose.DoorsInfoResponse; import com.doumee.core.haikang.model.param.respose.DoorsListResponse; import com.doumee.core.haikang.service.HKService; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.DeviceMapper; import com.doumee.dao.business.model.Device; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * é¨ç¦ç¹ä¿¡æ¯è¡¨Serviceå®ç° * @author æ±è¹è¹ * @date 2023/11/30 15:33 */ @Service public class HkSyncDoorsServiceImpl extends HkSyncBaseServiceImpl { @Autowired private DeviceMapper deviceMapper; /** * åæ¥æµ·åº·é¨ç¦è®¾å¤æ°æ® * @param param * @return */ @Override // @Async public String syncDoors(DoorsListRequest param){ List<Device> deleteList = new ArrayList<>(); List<Device> addList = new ArrayList<>(); List<Device> editList = new ArrayList<>(); List<DoorsInfoResponse> allHkList = new ArrayList<>(); Date date = new Date(); //æ¥è¯¢å ¨é¨é¨ç¦è®¾å¤æ°æ® List<Device> allList = deviceMapper.selectList(null); boolean hasNext = true; int curTotal = 0; int curPage = 1; while (hasNext){ //å页éåå¾ªç¯æ¥è¯¢ææé¨ç¦è®¾å¤æ°æ® param = new DoorsListRequest(); param.setPageNo(curPage); param.setPageSize(100); BaseResponse<DoorsListResponse> response = HKService.doorSearch(param); if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对ä¸èµ·ï¼æµ·åº·åæ¥æ°æ®å¤±è´¥~"); } DoorsListResponse r = response.getData(); curTotal += 100; if(curTotal >= r.getTotal()){ hasNext = false; } if(r.getList() == null || r.getList().size()==0){ hasNext =false; }else{ allHkList.addAll(r.getList()); } curPage++; } /** * è·åå¢å æ¹æ°æ®éå */ getDataChangeList(allList,allHkList,addList,editList,deleteList,date); if(deleteList.size()>0){ //é»è¾å é¤ for(Device d : deleteList){ deviceMapper.updateById(d); } } if(addList.size()>0){ deviceMapper.insertBatchSomeColumn(addList); } if(editList.size()>0){ for(Device d : editList){ deviceMapper.updateById(d); } } return "åæ¥æ°æ®ï¼æ°å¢ã"+addList.size()+"ãæ¡ï¼æ´æ°ã"+editList.size()+"ãæ¡ï¼å é¤ã"+deleteList.size()+"ãæ¡"; } private void getDataChangeList(List<Device> allList, List<DoorsInfoResponse> allHkList, List<Device> addList, List<Device> editList,List<Device> deleteList, Date date) { if(allHkList!=null && allHkList.size()>0){ for(DoorsInfoResponse device : allHkList){ Device model = getExistedDevice(device,allList); if(model !=null){ //妿已åå¨ï¼åæ´æ°æ°æ® model = initDataByHkData(model,device,date); editList.add(model); }else{ //妿ä¸åå¨ï¼åæ°å¢æ°æ® model = new Device(); model = initDataByHkData(model,device,date); addList.add(model); } } } //夿è·åå é¤çé¨ç¦è®¾å¤ï¼é»è¾å é¤ getDeleteList(allList,allHkList,deleteList,date); } /** * åå§åæµ·åº·å ¥åºæ°æ® * @param model * @param device * @param date * @return */ private Device initDataByHkData(Device model, DoorsInfoResponse device,Date date) { model.setIsdeleted(Constants.ZERO); model.setHkDate(date); model.setCreateDate(DateUtil.getISO8601DateByStr(device.getCreateTime())); model.setEditDate(DateUtil.getISO8601DateByStr(device.getUpdateTime())); model.setNo(device.getDoorSerial()); model.setHkId(device.getIndexCode()); model.setName(device.getName()); model.setHkStatus(Constants.ONE); model.setType(Constants.ZERO); model.setChannelNo(device.getChannelNo()); model.setResourceType(device.getResourceType()); model.setRemark(JSONObject.toJSONString(device)); return model; } private Device getExistedDevice(DoorsInfoResponse device, List<Device> allList) { if(allList.size()>0){ for(Device r : allList){ if(StringUtils.equals(r.getHkId(), device.getIndexCode())){ //表示æªå é¤ return r; } } } return null; } private void getDeleteList(List<Device> allList, List<DoorsInfoResponse> allHkList,List<Device> deleteList ,Date date) { if(allList!=null && allList.size()>0){ for(Device device : allList){ if(isDeletedDevice(device,allHkList)){ device.setIsdeleted(Constants.ONE); device.setEditDate(date); deleteList.add(device); } } } } private boolean isDeletedDevice(Device device, List<DoorsInfoResponse> allHkList) { if(allHkList.size()>0){ for(DoorsInfoResponse r : allHkList){ if(StringUtils.equals(device.getHkId(), r.getIndexCode())){ //表示æªå é¤ return false; } } } return true; } } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEventServiceImpl.java
@@ -43,10 +43,10 @@ ArtemisConfig.appKey = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_APPKEY).getCode(); ArtemisConfig.appSecret = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_APPSECRET).getCode(); HKConstants.https = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_HTTPS).getCode(); //å¼å§è®¢é é¨ç¦äºä»¶ã访客äºä»¶ãåå车åºäºä»¶ startHkEventSub(); //è·åæ ¹ç»ç»ç¼ç getRootOrgCode(); //å¼å§è®¢é é¨ç¦äºä»¶ã访客äºä»¶ãåå车åºäºä»¶ startHkEventSub(); return 0; } /** @@ -72,15 +72,22 @@ */ public void startHkEventSub(){ EventSubRequest param = new EventSubRequest(); param.setEventDest(systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_PUSH_URL).getCode()); String path =systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_PUSH_URL).getCode(); param.setEventDest(path+"/parks"); param.setEventTypes(new Integer[]{HKConstants.EventTypes.PARK_LINE_IN.getKey() ,HKConstants.EventTypes.PARK_LINE_OUT.getKey() ,HKConstants.EventTypes.PARK_PASS_IN.getKey() ,HKConstants.EventTypes.PARK_PASS_OUT.getKey() ,HKConstants.EventTypes.VISIT_SIGN_OUT.getKey() ,HKConstants.EventTypes.VISIT_SIGN_OUT.getKey() ,HKConstants.EventTypes.DOOR_FACE_AUTH_SUCCESS.getKey()}); HKService.eventSub(param); ,HKConstants.EventTypes.PARK_PASS_OUT.getKey() }); HKService.eventSub(param);//å车åºäºä»¶ param.setEventDest(path+"/visit"); param.setEventTypes(new Integer[]{HKConstants.EventTypes.VISIT_SIGN_OUT.getKey() ,HKConstants.EventTypes.VISIT_SIGN_OUT.getKey()}); HKService.eventSub(param);//访客äºä»¶ param.setEventDest(path+"/acs"); param.setEventTypes(new Integer[]{HKConstants.EventTypes.DOOR_FACE_AUTH_SUCCESS.getKey()}); HKService.eventSub(param);//é¨ç¦äºä»¶ } } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
@@ -105,8 +105,8 @@ model.setIsdeleted(Constants.ZERO); model.setName(device.getParkName()); model.setHkDate(date); model.setCreateDate(DateUtil.StringToDate2(device.getCreateTime())); model.setEditDate(DateUtil.StringToDate2(device.getUpdateTime())); model.setCreateDate(DateUtil.getISO8601DateByStr(device.getCreateTime())); model.setEditDate(DateUtil.getISO8601DateByStr(device.getUpdateTime())); model.setHkId(device.getParkIndexCode()); model.setHkStatus(Constants.ONE); return model; server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java
@@ -55,13 +55,13 @@ //å页éåå¾ªç¯æ¥è¯¢ææé¨ç¦è®¾å¤æ°æ® param = new PrivilegeGroupRequest(); param.setPageNo(curPage); param.setPageSize(10000); param.setPageSize(100); BaseResponse<PrivilegeGroupListResponse> response = HKService.privilegeGroup(param); if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对ä¸èµ·ï¼æµ·åº·åæ¥æ°æ®å¤±è´¥~"); } PrivilegeGroupListResponse r = response.getData(); curTotal += 10000; curTotal += 100; if(curTotal >= r.getTotal()){ hasNext = false; } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,112 @@ package com.doumee.service.business.impl.hksync; import com.alibaba.fastjson.JSONObject; import com.doumee.config.SpringContextUtil; import com.doumee.core.haikang.model.HKConstants; import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest; import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest; import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest; import com.doumee.dao.business.model.InterfaceLog; import com.doumee.service.business.InterfaceLogService; import com.hikvision.artemis.sdk.config.ArtemisConfig; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletResponse; import java.util.Date; /** * 访客æéç»ä¿¡æ¯è¡¨Serviceå®ç° * @author æ±è¹è¹ * @date 2023/11/30 15:33 */ @Service @Slf4j public class HkSyncPushServiceImpl extends HkSyncBaseServiceImpl { @Autowired private InterfaceLogService interfaceLogService; /** * 海康é¨ç¦äºä»¶æ¨é * @param param * @param response * @return */ @Override public String dealAcsEvent(EventAcsRequest param, HttpServletResponse response){ log.info("ãæµ·åº·é¨ç¦äºä»¶æ¨éã========å¼å§=========ï¼\n"+JSONObject.toJSONString(param)); String result = null; try { log.error("ãæµ·åº·é¨ç¦äºä»¶æ¨éã========æå======="); }catch (Exception e) { log.error("ãæµ·åº·é¨ç¦äºä»¶æ¨éã========失败=======ï¼\n" + e.getMessage()); }finally { saveInterfaceLog(param,"/business/hksync/push/acs",result); } return null; } /** * 海康访客äºä»¶æ¨é * @param param * @param response * @return */ @Override public String dealVisitEvent(EventVisitRequest param, HttpServletResponse response){ log.info("ãæµ·åº·è®¿å®¢äºä»¶æ¨éã==========å¼å§=======ï¼\n"+JSONObject.toJSONString(param)); String result = null; try { log.error("ãæµ·åº·è®¿å®¢äºä»¶æ¨éã========æå======="); }catch (Exception e){ log.error("ãæµ·åº·è®¿å®¢äºä»¶æ¨éã========失败=======ï¼\n"+e.getMessage()); } saveInterfaceLog(param,"/business/hksync/push/visit",result); return null; } /** * 海康å车åºäºä»¶æ¨é * @param param * @param response * @return */ @Override public String dealParkEvent(EventParkRequest param, HttpServletResponse response){ String result = null; log.info("ãæµ·åº·å车åºäºä»¶æ¨éã========å¼å§=========ï¼\n"+JSONObject.toJSONString(param)); try { log.error("ãæµ·åº·å车åºäºä»¶æ¨éã========æå======="); }catch (Exception e){ log.error("ãæµ·åº·å车åºäºä»¶æ¨éã========失败=======ï¼\n"+e.getMessage()); } saveInterfaceLog(param,"/business/hksync/push/parks",result); return null; } private void saveInterfaceLog(Object param, String path,String result) { InterfaceLog hkMonitoryLogDO=new InterfaceLog(); hkMonitoryLogDO.setType(1); hkMonitoryLogDO.setCreateDate(new Date()); hkMonitoryLogDO.setIsdeleted(0); if(param!=null){ hkMonitoryLogDO.setRequest(JSONObject.toJSONString(param)); } hkMonitoryLogDO.setRepose(result); hkMonitoryLogDO.setName(path); hkMonitoryLogDO.setUrl(path); interfaceLogService.create(hkMonitoryLogDO); } }