server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
@@ -1,6 +1,7 @@ package com.doumee.task; import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl; import com.doumee.service.business.impl.hksync.HkSyncImgServiceImpl; import com.doumee.service.business.impl.hksync.HkSyncOrgUserServiceImpl; import com.doumee.service.business.impl.hksync.HkSyncVisitServiceImpl; @@ -22,6 +23,8 @@ @Autowired private HkSyncImgServiceImpl hkSyncImgService; @Autowired private HkSyncEmpowerServiceImpl hkSyncEmpowerService; @Autowired private HkSyncOrgUserServiceImpl hkSyncOrgUserService; @Autowired @@ -45,25 +48,58 @@ * 宿¶åæ¥ç»ç»ä¿¡æ¯å°æµ·åº·ç³»ç» * @throws Exception */ // @Scheduled(fixedDelay= 60*1000) // public void syncOrgData() { // hkSyncOrgUserService.syncOrgData(); // } /** * 宿¶åæ¥ç»ç»ä¿¡æ¯å°æµ·åº·ç³»ç» * @throws Exception */ @Scheduled(fixedDelay= 60*1000) public void syncVisitData() { hkSyncVisitService.syncVisitData(); public void syncOrgData() { hkSyncOrgUserService.syncOrgData(); } /** * 宿¶åæ¥ç¨æ·ä¿¡æ¯å°æµ·åº·ç³»ç» * @throws Exception */ // @Scheduled(fixedDelay= 60*1000) // public void syncUserData() { // hkSyncImgService.syncUserData(); // } @Scheduled(fixedDelay= 60*1000) public void syncUserData() { hkSyncOrgUserService.syncUserData(); } /** * 宿¶åæ¥ç³è¯·éè¿çè®¿å®¢æ°æ®å°æµ·åº·ç³»ç» * @throws Exception */ @Scheduled(fixedDelay= 60*1000) public void syncVisitData() { hkSyncVisitService.syncVisitData(); } /** * 宿¶åæ¥å é¨äººåææå°æµ·åº·ç³»ç» * @throws Exception */ @Scheduled(fixedDelay= 60*1000) public void syncEmpowerData() { hkSyncEmpowerService.syncEmpowerData(); } /** * 宿¶æ¥è¯¢äººåä¸åæµ·åº·ç»æï¼ä»»å¡æ¯å¦å·²ä¸è½½ç»æï¼ * @throws Exception */ @Scheduled(fixedDelay= 60*1000) public void syncEmpowerResultData() { hkSyncEmpowerService.syncEmpowerResultData(); } /** * 宿¶æ¥è¯¢äººåå®é ä¸åæéç»æï¼æ¯å¦å·²ç»ä¸è½½æå * @throws Exception */ @Scheduled(fixedDelay= 60*1000) public void syncEmpowerDetailData() { hkSyncEmpowerService.syncEmpowerDetailData(); } /** * 宿¶åæ¥è½¦è¾å æå°æµ·åº·ç³»ç» * @throws Exception */ @Scheduled(fixedDelay= 60*1000) public void syncParkBookData() { hkSyncImgService.syncParkBookData(); } } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -1,6 +1,7 @@ package com.doumee.core.haikang.model; import com.doumee.core.utils.Constants; import javafx.scene.effect.BlendMode; import lombok.Data; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -61,10 +62,87 @@ String taskAddition= "/api/acps/v1/authDownload/task/addition";//å建ä¸è½½ä»»å¡_æ ¹æ®äººåä¸è®¾å¤ééæå®ä¸è½½ String taskDataAddition= "/api/acps/v1/authDownload/data/addition";//ä¸è½½ä»»å¡ä¸æ·»å æ°æ®_æ ¹æ®äººåä¸è®¾å¤ééæå®ä¸è½½ String taskStart= "/api/acps/v1/authDownload/task/start";//å¼å§ä¸è½½ä»»å¡ String taskProgress= "/api/acps/v1/authDownload/task/progress";//æ¥è©¢ä¸è½½ä»»å¡è¿åº¦ String taskProgressNum= "/api/acps/v1/authDownload/task/progress";//æ¥è©¢ä¸è½½ä»»å¡è¿åº¦ String taskProgress= "/api/acps/v2/download_record/person/detail/search";//æ¥è¯¢è®¾å¤ééç人åæéä¸è½½è¯¦æ æ»æ°v2 String authItemList= "/api/acps/v1/auth_item/list/search";//æ¥è¯¢æéæ¡ç®å表 } /** * ä»»åé¡å */ public enum TASK_TYPE { CARD(1, "å¡ç" ), FACE(2, "人è¸" ) ; // æååé private String name; private int key; // æé æ¹æ³ TASK_TYPE(int key, String name ) { this.name = name; this.key = key; } // get set æ¹æ³ public String getName() { return name; } public void setName(String name) { this.name = name; } public int getKey() { return key; } public void setKey(int key) { this.key = key; } } /** * æä½ç±»åï¼0æ°å¢ï¼1ä¿®æ¹ï¼2å é¤ */ public enum OPERA_TYPE { ADD(0, "æ°å¢" ), UDPATE(1, "ä¿®æ¹" ), DEL(2, "å é¤" ) ; // æååé private String name; private int key; // æé æ¹æ³ OPERA_TYPE(int key, String name ) { this.name = name; this.key = key; } // get set æ¹æ³ public String getName() { return name; } public void setName(String name) { this.name = name; } public int getKey() { return key; } public void setKey(int key) { this.key = key; } } /** * é¡è²æä¸¾ */ public enum EventTypes { server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -467,12 +467,23 @@ return result; } /** * æ¥è¯¢ä¸å¡éæéä¸è½½ä»»å¡è¿åº¦ * æ¥è¯¢ä¸å¡éæéæ¥è¯¢è®¾å¤ééç人åæéä¸è½½è¯¦æ æ»æ°v2 * @param body * @return */ public static String taskProgress(String body) { Map<String, String> path = getPath(HKConstants.InterfacePath.taskProgress); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请æ±application/jsonç±»ååæ° saveInterfaceLog(body,result,path); return result; } /** * æ¥è¯¢ä¸å¡éæéä¸è½½ä»»å¡è¿åº¦ * @param body * @return */ public static String taskProgressNum(String body) { Map<String, String> path = getPath(HKConstants.InterfacePath.taskProgressNum); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请æ±application/jsonç±»ååæ° saveInterfaceLog(body,result,path); return result; @@ -499,6 +510,17 @@ saveInterfaceLog(body,result,path); return result; } /** * æ¥è¯¢æéæ¡ç®å表 * @param body * @return */ public static String authItemList(String body) { Map<String, String> path = getPath(HKConstants.InterfacePath.authItemList); String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请æ±application/jsonç±»ååæ° saveInterfaceLog(body,result,path); return result; } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AuthItemListPersonRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ package com.doumee.core.haikang.model.param.request; import lombok.Data; import java.util.List; @Data public class AuthItemListPersonRequest { private String personIds;//string True ä¸è½½ä»»å¡å¯ä¸æ è¯ } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AuthItemListRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,22 @@ package com.doumee.core.haikang.model.param.request; import lombok.Data; import java.util.List; @Data public class AuthItemListRequest { private List<AuthItemListPersonRequest> personIds;//string True private TaskDataAdditionResourceRequest resourceInfos;// object[] False èµæºè®¾å¤å¯¹è±¡ä¿¡æ¯ private String queryType ;//string True æ¥è¯¢èµæºç±»åï¼åèéå½A.50 设å¤ééç±»å private Integer[] personStatus;// number[] False 人åç¶æ0ï¼å·²é ç½®æªä¸è½½1ï¼æ´æ°å¾ ä¸è½½2ï¼æ´æ°å¾ å é¤3ï¼å·²ä¸è½½4ï¼æªé ç½® private Integer[] cardStatus;// number[] False å¡çç¶æ0ï¼å·²é ç½®æªä¸è½½1ï¼æ´æ°å¾ ä¸è½½2ï¼æ´æ°å¾ å é¤3ï¼å·²ä¸è½½4ï¼æªé ç½® private Integer[] faceStatus ;//number[] False 人è¸ç¶æ0ï¼å·²é ç½®æªä¸è½½1ï¼æ´æ°å¾ ä¸è½½2ï¼æ´æ°å¾ å é¤3ï¼å·²ä¸è½½4ï¼æªé ç½® private AuthItemListTimeRequest configTime;//; object False é ç½®æ¶é´æ¥è¯¢å¯¹è±¡ private AuthItemListSortRequest sortObjects ;//object[] False ç®ååªæ¯æé ç½®æ¶é´ private Integer pageNo ;//number True 页ç ,pageNo>0 private Integer pageSize ;//number True 页大å°,0<pageSize<=1000 } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AuthItemListSortRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,11 @@ package com.doumee.core.haikang.model.param.request; import lombok.Data; @Data public class AuthItemListSortRequest { private String startTime;// string False å¼å§æ¥æ,éç¨ISO8601æ¶é´æ ¼å¼ï¼æå¤§é¿åº¦32个å符ï¼å¦2018-09-03T17:30:08.000+08:00 private String endTime ;//string False ç»ææ¥æ,éç¨ISO8601æ¶é´æ ¼å¼ï¼æå¤§é¿åº¦32个å符ï¼å¦2018-09-03T17:30:08.000+08:00 } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AuthItemListTimeRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,11 @@ package com.doumee.core.haikang.model.param.request; import lombok.Data; @Data public class AuthItemListTimeRequest { private String startTime;// string False å¼å§æ¥æ,éç¨ISO8601æ¶é´æ ¼å¼ï¼æå¤§é¿åº¦32个å符ï¼å¦2018-09-03T17:30:08.000+08:00 private String endTime ;//string False ç»ææ¥æ,éç¨ISO8601æ¶é´æ ¼å¼ï¼æå¤§é¿åº¦32个å符ï¼å¦2018-09-03T17:30:08.000+08:00 } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TaskDataAdditionPersonRequest.java
@@ -6,7 +6,7 @@ public class TaskDataAdditionPersonRequest { private String personId ;//string True 人åIdï¼ç³»ç»å 人åä»è·å人åå表v2 æ¥å£è·åè¿ååæ°ä¸personIdï¼ç³»ç»å¤äººåï¼äººåIdç±è°ç¨æ¹æå®ï¼ä½ä¸ºäººåå¯ä¸æ å¿ï¼æå¤§é¿åº¦ä¸º64ï¼å 嫿°åã忝ï¼å°åï¼åä¸å线ï¼-ï¼ private String operatorType ;//number True æä½ç±»åï¼0æ°å¢ï¼1ä¿®æ¹ï¼2å é¤ private Integer operatorType ;//number True æä½ç±»åï¼0æ°å¢ï¼1ä¿®æ¹ï¼2å é¤ private String startTime ;//string False å¼å§æ¥æï¼é 置人åæéçæææï¼ä¸ºç©ºæ¶é»è®¤é¿æææãéç¨ISO8601æ¶é´æ ¼å¼ï¼æå¤§é¿åº¦32个å符ï¼å¦2018-09-03T17:30:08.000+08:00 private String endTime;// string False ç»ææ¥æï¼é 置人åæéçæææï¼ä¸ºç©ºæ¶é»è®¤é¿æææãéç¨ISO8601æ¶é´æ ¼å¼ï¼æå¤§é¿åº¦32个å符ï¼å¦2018-09-03T17:30:08.000+08:00 private String personType;// number False 人åç±»åï¼é»è®¤ä¸º11. ç³»ç»å 人å2. ç³»ç»å¤äººå ä¸è½½ç³»ç»å¤äººåæ¶å¿ å¡« server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TaskDataAdditionResourceRequest.java
@@ -7,5 +7,5 @@ private String resourceIndexCode;// string True èµæºçå¯ä¸æ è¯ï¼32使°å+忝ï¼å°åï¼å符串ï¼èµæºä¸ºè®¾å¤ï¼æ ¹æ®è·åèµæºå表v2æ¥å£è·åè¿ååæ°indexCode private String resourceType;// string True èµæºç±»å,åèéå½A.50 设å¤ééç±»å private Integer[] channelNos ;//number[] True èµæºééå· private String[] channelNos ;//number[] True èµæºééå· } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AuthItemListDetailResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package com.doumee.core.haikang.model.param.respose; import com.doumee.core.haikang.model.param.request.AuthItemListTimeRequest; import lombok.Data; @Data public class AuthItemListDetailResponse { private String personId ;//string False 人åID private String resourceIndexCode;// string False èµæºçå¯ä¸æ è¯ private Integer channelNo;// number False ééå· private String channelIndexCode ;//string False èµæºééå¯ä¸æ è¯ï¼å¨æéä¸è½½åé ç½®æ¥å£å ¥åæ¶å¯¹åºæ¥è¯¢æ¥å£ä¼è¿åï¼ä¸ä½ä¸ºæ¥è¯¢æ¥å£çæ¥è¯¢æ¡ä»¶ï¼ private AuthItemListTimeRequest templateConfigInfos;// Object[] False è®¡åæ¨¡æ¿ä¿¡æ¯ private Integer personStatus;// number False 人åç¶æ,0ï¼å·²é ç½®æªä¸è½½1ï¼æ´æ°å¾ ä¸è½½2ï¼æ´æ°å¾ å é¤3ï¼å·²ä¸è½½4ï¼æªé ç½® private Integer cardStatus ;//number False å¡çç¶æ,0ï¼å·²é ç½®æªä¸è½½1ï¼æ´æ°å¾ ä¸è½½2ï¼æ´æ°å¾ å é¤3ï¼å·²ä¸è½½4ï¼æªé ç½® private Integer faceStatus ;//number False 人è¸ç¶æ,0ï¼å·²é ç½®æªä¸è½½1ï¼æ´æ°å¾ ä¸è½½2ï¼æ´æ°å¾ å é¤3ï¼å·²ä¸è½½4ï¼æªé ç½® private String cardJson ;//string False è®°å½å·²ä¸è½½å°è®¾å¤çå¡å·ï¼Mapæ ¼å¼ï¼å¡å·ï¼ç¶æï¼ï¼å ¶ä¸ç¶æ(0æ¹å表示ä¸è½½åå¡ççä¿¡æ¯åååäºï¼1å·²ä¸è½½)ï¼ private String configTime ;//string False é ç½®æ¶é´,éç¨ISO8601æ¶é´æ ¼å¼ï¼æå¤§é¿åº¦32个å符ï¼å¦2018-09-03T17:30:08.000+08:00 private String startTime;// string False 人åæéæææï¼ä»¥äººä¸ºä¸å¿è®¾å¤æ¶ä½¿ç¨ï¼,å¼å§æ¶é´,éç¨ISO8601æ¶é´æ ¼å¼ï¼æå¤§é¿åº¦32个å符ï¼å¦2018-09-03T17:30:08.000+08:00 private String endTime ;//string False 人åæéæææï¼ä»¥äººä¸ºä¸å¿è®¾å¤æ¶ä½¿ç¨ï¼,å¼å§æ¥æ,éç¨ISO8601æ¶é´æ ¼å¼ï¼æå¤§é¿åº¦32个å符ï¼å¦2018-09-03T17:30:08.000+08:00 private String personExtendJson;// body string å¦ } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AuthItemListResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.doumee.core.haikang.model.param.respose; import lombok.Data; import java.util.List; @Data public class AuthItemListResponse { private Integer total;// number False æ»æ¡æ° private List<AuthItemListDetailResponse> list;//object[] False 设å¤ééçä¸è½½è®°å½ } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AuthItemListTemplResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ package com.doumee.core.haikang.model.param.respose; import lombok.Data; @Data public class AuthItemListTemplResponse { private Integer dimension ;//number False 维度,èå´ï¼1-4ï¼æ¯æ4ç»´åº¦è®¡åæ¨¡æ¿é ç½® private String templateId;// string False è®¡åæ¨¡æ¿Idï¼å ¨å¤©åè®¡åæ¨¡æ¿ä¸º1 } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskProgressDetailResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,11 @@ package com.doumee.core.haikang.model.param.respose; import lombok.Data; @Data public class TaskProgressDetailResponse { private String downloadResultId;// string False ä¸è½½è®°å½å¯ä¸ID private String personId;// string False 人åç¼ç private String persondownloadResult;// string False ä¸è½½è®°å½ç¶æï¼åªææå/å¤±è´¥ç¶æï¼0:æå,1:å¤±è´¥ï¼ private String downloadTime ;//string False ä¸è½½æ¶é´ï¼éç¨ISO8601æ¶é´æ ¼å¼ï¼æå¤§é¿åº¦32个å符ï¼å¦2018-09- } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskProgressNumResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ package com.doumee.core.haikang.model.param.respose; import lombok.Data; @Data public class TaskProgressNumResponse { private String taskId ;//string False ä¸è½½ä»»å¡å¯ä¸æ è¯ï¼32使°å+忝å符串 private String tagId;// string False æ ç¾,ç¨äºåºåä¸åä¸å¡ç»ä»¶ï¼å»ºè®®ä½¿ç¨ç»ä»¶æ è¯ãåªæ¯æ1-32个æ°ååå°å忝ã private Integer taskType;// number False ä¸è½½ä»»å¡ç±»å ,åèéå½A.53 ä»»å¡ä¸è½½ç±»å说æ private Integer taskOptType;//number False 任塿ä½ç±»å0:åå§åä¸è½½,ã1:å¼å¨ä¸è½½, 2:æå®ä¸è½½-æ®éä»»å¡, 3:æå®ä¸è½½-å¿«éä»»å¡,4èªå¨ä¸è½½, 5:忥ä¸è½½ private String startTime ;//string False ä¸è½½å¼å§æ¶é´ éç¨ISO8601æ¶é´æ ¼å¼ï¼æå¤§é¿åº¦32个å符ï¼å¦2018-09-03T17:30:08.000+08:00 private Integer totalPercent ;//number False ä¸è½½æ»è¿åº¦ private Integer leftTime;// number False ä¸è½½å©ä½æ¶é´ private Integer consumeTime ;//number False ä¸è½½æ»ç¨æ¶ private Boolean isDownloadFinished;// boolean False ä¸è½½æ¯å¦ç»æ } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskProgressResponse.java
@@ -2,19 +2,12 @@ import lombok.Data; import java.util.List; @Data public class TaskProgressResponse { private String taskId ;//string False ä¸è½½ä»»å¡å¯ä¸æ è¯ï¼32使°å+忝å符串 private String tagId;// string False æ ç¾,ç¨äºåºåä¸åä¸å¡ç»ä»¶ï¼å»ºè®®ä½¿ç¨ç»ä»¶æ è¯ãåªæ¯æ1-32个æ°ååå°å忝ã private Integer taskType;// number False ä¸è½½ä»»å¡ç±»å ,åèéå½A.53 ä»»å¡ä¸è½½ç±»å说æ private Integer taskOptType;//number False 任塿ä½ç±»å0:åå§åä¸è½½,ã1:å¼å¨ä¸è½½, 2:æå®ä¸è½½-æ®éä»»å¡, 3:æå®ä¸è½½-å¿«éä»»å¡,4èªå¨ä¸è½½, 5:忥ä¸è½½ private String startTime ;//string False ä¸è½½å¼å§æ¶é´ éç¨ISO8601æ¶é´æ ¼å¼ï¼æå¤§é¿åº¦32个å符ï¼å¦2018-09-03T17:30:08.000+08:00 private Integer totalPercent ;//number False ä¸è½½æ»è¿åº¦ private Integer leftTime;// number False ä¸è½½å©ä½æ¶é´ private Integer consumeTime ;//number False ä¸è½½æ»ç¨æ¶ private Boolean isDownloadFinished;// boolean False ä¸è½½æ¯å¦ç»æ private String resourceDownloadProgress;// object[] False èµæºä¸è½½è¯¦æ private Integer total;// number False æ»æ¡æ° private List<TaskProgressDetailResponse> list;//object[] False 设å¤ééçä¸è½½è®°å½ } server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -602,18 +602,60 @@ *海康ä¸å¡éä»»å¡è¿åº¦æ¥è¯¢ * @return */ public static BaseResponse<TaskProgressResponse> taskDataAddition(TaskProgressRequest param){ public static BaseResponse<TaskProgressNumResponse> taskProgressNum(TaskProgressRequest param){ log.info("ãæµ·åº·ä¸å¡éä»»å¡è¿åº¦æ¥è¯¢ã================å¼å§===="+JSONObject.toJSONString(param)); String res = null; try { res = HKTools.taskProgressNum(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse<TaskProgressNumResponse> >(){}; BaseResponse<TaskProgressNumResponse> result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康ä¸å¡éä»»å¡è¿åº¦æ¥è¯¢"); return result; }catch (Exception e){ log.error("ãæµ·åº·ä¸å¡éä»»å¡è¿åº¦æ¥è¯¢ã================失败====ï¼\n"+ e.getMessage()); }finally { // saveInterfaceLog(param,res); } return null; } /** *海康ä¸å¡é设å¤ééç人åæéä¸è½½è¯¦æ æ»æ°v2 * @return */ public static BaseResponse<TaskProgressResponse> taskProgress(TaskProgressRequest param){ log.info("ãæµ·åº·ä¸å¡é设å¤ééç人åæéä¸è½½è¯¦æ æ»æ°ã================å¼å§===="+JSONObject.toJSONString(param)); String res = null; try { res = HKTools.taskProgress(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse<TaskProgressResponse> >(){}; BaseResponse<TaskProgressResponse> result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康ä¸å¡éä»»å¡è¿åº¦æ¥è¯¢"); logResult(result,"海康ä¸å¡é设å¤ééç人åæéä¸è½½è¯¦æ æ»æ°"); return result; }catch (Exception e){ log.error("ãæµ·åº·ä¸å¡éä»»å¡è¿åº¦æ¥è¯¢ã================失败====ï¼\n"+ e.getMessage()); log.error("ãæµ·åº·ä¸å¡é设å¤ééç人åæéä¸è½½è¯¦æ æ»æ°ã================失败====ï¼\n"+ e.getMessage()); }finally { // saveInterfaceLog(param,res); } return null; } /** *海康æ¥è¯¢æéæ¡ç®å表 * @return */ public static BaseResponse<AuthItemListResponse> authItemList(AuthItemListRequest param){ log.info("ãæµ·åº·æ¥è¯¢æéæ¡ç®å表ã================å¼å§===="+JSONObject.toJSONString(param)); String res = null; try { res = HKTools.authItemList(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse<AuthItemListResponse> >(){}; BaseResponse<AuthItemListResponse> result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康æ¥è¯¢æéæ¡ç®å表"); return result; }catch (Exception e){ log.error("ãæµ·åº·æ¥è¯¢æéæ¡ç®å表ã================失败====ï¼\n"+ e.getMessage()); }finally { // saveInterfaceLog(param,res); } server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -62,12 +62,17 @@ public static final String ERP_USERSTATUS_RL ="ERP_USERSTATUS_RL" ; public static final String ERP ="ERP" ; public static final Integer THREE =3 ; public static boolean DEALING_HK_SYNCPRIVILEGE= false; public static boolean DEALING_HK_SYNCDEVICE = false; public static boolean DEALING_HK_SYNCPARK = false; public static boolean DEALING_HK_IMG = false; public static boolean DEALING_HK_ORG = false; public static boolean DEALING_HK_USER = false; public static boolean DEALING_HK_VISIT = false; public static boolean DEALING_HK_EMPOWER = false; public static boolean DEALING_HK_EMPOWER_DETAIL = false; public static boolean DEALING_HK_EMPOWER_RESULT = false; public static boolean DEALING_HK_PARKBOOK = false; // ERPæ¥å£é ç½® public static final String ERP_CONFIG = "ERP_CONFIG"; // ERP ACCESS_KEY @@ -165,6 +170,15 @@ int xfFail = 6; int signout = 7; } public interface EmpowerStatus{ //ä¸å¡éææä¸åç¶æ 0å¾ ä¸å 1å·²ä¸å 2ä¸åæå 3已忶 4ä¸å失败 5ä»»å¡ä¸è½½å·²ç»æ int wait = 0; int ing = 1; int pass = 2; int cancel = 3; int fail = 4; int downloaded = 5; } public interface DOOR_ROLE_TYPE{ int lw = 0; int fk = 1; server/dmvisit_service/src/main/java/com/doumee/core/utils/TestUtil.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,128 @@ //package com.doumee.core.utils; // //import java.awt.image.BufferedImage; //import java.io.ByteArrayOutputStream; //import java.io.File; //import java.io.FileOutputStream; //import java.io.IOException; //import java.net.URL; //import java.util.stream.IntStream; //import javax.imageio.ImageIO; //import org.apache.poi.ss.usermodel.Cell; //import org.apache.poi.ss.usermodel.Row; //import org.apache.poi.ss.usermodel.Sheet; //import org.apache.poi.ss.usermodel.Workbook; //import org.apache.poi.ss.usermodel.WorkbookFactory; //import org.apache.poi.xssf.usermodel.XSSFClientAnchor; //import org.apache.poi.xssf.usermodel.XSSFDrawing; //import org.apache.poi.xssf.usermodel.XSSFGraphicFrame; //import org.apache.poi.xssf.usermodel.XSSFShape; //import org.apache.poi.xssf.usermodel.XSSFSheet; //import org.apache.poi.xssf.usermodel.XSSFWorkbook; //import com.itextpdf.text.BaseColor; //import com.itextpdf.text.Document; //import com.itextpdf.text.DocumentException; //import com.itextpdf.text.Element; //import com.itextpdf.text.Font; //import com.itextpdf.text.Image; //import com.itextpdf.text.PageSize; //import com.itextpdf.text.Paragraph; //import com.itextpdf.text.pdf.PdfPCell; //import com.itextpdf.text.pdf.PdfPTable; //import com.itextpdf.text.pdf.PdfWriter; // //public class TestUtil { // public static void main(String[] args) { // try (Workbook workbook = WorkbookFactory.create(new File("example.xlsx")); // FileOutputStream fos = new FileOutputStream("example.pdf")) { // Document document = new Document(PageSize.A4, 50, 50, 50, 50); // PdfWriter writer = PdfWriter.getInstance(document, fos); // document.open(); // for (Sheet sheet : workbook) { // PdfPTable table = new PdfPTable(sheet.getRow(0).getLastCellNum()); // table.setHeaderRows(1); // table.setWidths(IntStream.range(0, sheet.getRow(0).getLastCellNum()).mapToDouble(i -> 1).toArray()); // table.setWidthPercentage(100); // Paragraph title = new Paragraph(sheet.getSheetName(), new Font(BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED), 16, Font.BOLD)); // title.setAlignment(Element.ALIGN_CENTER); // document.add(title); // sheet.forEach(row -> { // IntStream.range(0, row.getLastCellNum()).forEach(i -> { // Cell cell = row.getCell(i); // PdfPCell pdfCell = null; // try { // pdfCell = new PdfPCell(new Paragraph(cell.getStringCellValue(), new Font(BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED), 12))); // } catch (DocumentException e) { // throw new RuntimeException(e); // } catch (IOException e) { // throw new RuntimeException(e); // } // pdfCell.setBorderWidth(1f); // pdfCell.setBorderColor(BaseColor.BLACK); // pdfCell.setPadding(5f); // if (row.getRowNum() == 0) { // pdfCell.setBackgroundColor(BaseColor.LIGHT_GRAY); // } // table.addCell(pdfCell); // if (cell.getCellType() == CellType.BLANK || cell.getCellType() == CellType.FORMULA || cell.getCellType() == CellType.ERROR || cell.getCellType() == CellType.STRING && cell.getStringCellValue().trim().isEmpty() || cell.getCellType() == CellType.NUMERIC && cell.getNumericCellValue() == 0 || cell.getCellType() == CellType.BOOLEAN && !cell.getBooleanCellValue() || cell.getCellType() == CellType.STRING && cell.getStringCellValue().startsWith("#") || cell.getCellType() == CellType.FORMULA && cell.getCellFormula().startsWith("#") || cell.getCellType() == CellType.STRING && cell.getStringCellValue().startsWith("=") || cell.getCellType() == CellType.FORMULA && cell.getCellFormula().startsWith("=") || cell.getCellType() == CellType.STRING && cell.getStringCellValue().startsWith("@") || cell.getCellType() == CellType.FORMULA && cell.getCellFormula().startsWith("@") || cell.getCellType() == CellType.STRING && cell.getStringCellValue().startsWith("'") || cell.getCellType() == CellType.FORMULA && cell.getCellFormula().startsWith("'")) { // return; // } // if (cell.getCellType() == CellType.STRING && cell.getStringCellValue().startsWith("http")) { // try { // BufferedImage image = ImageIO.read(new URL(cell.getStringCellValue())); // if (image != null) { // addImageToTable(table, image); // } // } catch (Exception e) { // e.printStackTrace(); // } // } else { // if (sheet instanceof XSSFSheet) { // XSSFSheet xssfSheet = (XSSFSheet) sheet; // XSSFDrawing drawing = xssfSheet.createDrawingPatriarch(); // for (XSSFShape shape : drawing.getShapes()) { // if (shape instanceof XSSFClientAnchor) { // XSSFClientAnchor anchor = (XSSFClientAnchor) shape.getAnchor(); // if (anchor.getRow1() == cell.getRowIndex() && anchor.getCol1() == cell.getColumnIndex()) { // if (shape instanceof XSSFGraphicFrame) { // XSSFGraphicFrame frame = (XSSFGraphicFrame) shape; // BufferedImage image = frame.getGraphic().getBufferedImage(); // try { // addImageToTable(table, image); // } catch (Exception e) { // throw new RuntimeException(e); // } // } // } // } // } // } // } // }); // }); // table.setSpacingBefore(20f); // table.setSpacingAfter(20f); // table.setKeepTogether(true); // document.add(table); // } // document.close(); // } catch (Exception e) { // e.printStackTrace(); // } // } // // private static void addImageToTable(PdfPTable table, BufferedImage image) throws Exception { // ByteArrayOutputStream baos = new ByteArrayOutputStream(); // ImageIO.write(image, "png", baos); // baos.flush(); // byte[] imageData = baos.toByteArray(); // baos.close(); // Image pdfImage = Image.getInstance(imageData); // pdfImage.scaleToFit(100f, 100f); // PdfPCell imageCell = new PdfPCell(pdfImage, true); // imageCell.setBorderWidth(1f); // imageCell.setBorderColor(BaseColor.BLACK); // imageCell.setPadding(5f); // table.addCell(imageCell); // } //} server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java
@@ -118,8 +118,8 @@ @TableField(exist = false) private String createrName; @ApiModelProperty(value = "ä¸åç¶æ 0å¾ ä¸å 1å·²ä¸å 2已忶", example = "1") @ExcelColumn(name="ä¸åç¶æ",index= 8,valueMapping ="0=å¾ ä¸å;1=å·²ä¸å;2=已忶" ) @ApiModelProperty(value = "ä¸åç¶æ 0å¾ ä¸å 1å·²ä¸å 2ä¸åæå 3已忶 4ä¸å失败 ", example = "1") @ExcelColumn(name="ä¸åç¶æ",index= 8,valueMapping ="0=å¾ ä¸å;1=å·²ä¸å;2=ä¸åæå;3=已忶;4=ä¸å失败" ) private Integer sendStatus; @ApiModelProperty(value = "ä¸åç±»å 0宿¶ 1宿¶ ", example = "1") @@ -147,5 +147,17 @@ @ApiModelProperty(value = "æ¶é´æ®µ0ï¼7,30") @TableField(exist = false) private Integer timeDn; @ApiModelProperty(value = "æ¶é´æ®µ0ï¼7,30") @TableField(exist = false) private String deviceChannelNo; @ApiModelProperty(value = "海康设å¤ç±»åcode") @TableField(exist = false) private String deviceType; @ApiModelProperty(value = "海康设å¤ode") @TableField(exist = false) private String deviceIndexCode; @ApiModelProperty(value = "äººåæµ·åº·ç¼ç ") @TableField(exist = false) private String memberHkId; } server/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java
@@ -132,5 +132,9 @@ @ExcelColumn(name="é¨é¨") @TableField(exist = false) private String companyName; @ApiModelProperty(value = "åè½¦åºæµ·åº·ç¼ç ", example = "1") @ExcelColumn(name="åè½¦åºæµ·åº·ç¼ç ") @TableField(exist = false) private String parkHkId; } server/dmvisit_service/src/main/java/com/doumee/service/business/HkSyncService.java
@@ -60,4 +60,7 @@ void syncVisitData(); void syncEmpowerData(); void syncParkBookData(); void syncEmpowerResultData(); void syncEmpowerDetailData(); } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -814,10 +814,13 @@ */ private void dealMemberRoleEmpower(Member member, List<Integer> doorIds,Date startTime,Date endTime ) { //å 餿æèçææä¿¡æ¯ empowerMapper.update(null,new UpdateWrapper<Empower>().lambda() // empowerMapper.update(null,new UpdateWrapper<Empower>().lambda() // .eq(Empower::getMemberId,member.getId()) // .set(Empower::getIsdeleted,Constants.ONE) // .set(Empower::getSendStatus,Constants.ZERO) // ); empowerMapper.delete(new UpdateWrapper<Empower>().lambda() .eq(Empower::getMemberId,member.getId()) .set(Empower::getIsdeleted,Constants.ONE) .set(Empower::getSendStatus,Constants.ZERO) ); if(doorIds==null || doorIds.size() == 0){ return; @@ -949,8 +952,7 @@ try{ if(Objects.isNull(param) ||Objects.isNull(param.getId()) ||Objects.isNull(param.getStatus()) ){ ||Objects.isNull(param.getStatus())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } if(!(param.getStatus()==Constants.ZERO||param.getStatus()==Constants.ONE)){ server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -85,5 +85,14 @@ @Override public void syncEmpowerData() { } @Override public void syncParkBookData() { } @Override public void syncEmpowerResultData() { } @Override public void syncEmpowerDetailData() { } } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
@@ -7,10 +7,9 @@ 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.request.ParkListRequest; 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.model.param.respose.*; import com.doumee.core.haikang.service.HKService; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; @@ -45,26 +44,85 @@ @Override // @Async public String syncHkDevices(AcsDeviceListRequest param){ List<Device> deleteList = new ArrayList<>(); List<Device> addList = new ArrayList<>(); List<Device> editList = new ArrayList<>(); List<AcsDeviceInfoResponse> allHkList = new ArrayList<>(); if(Constants.DEALING_HK_SYNCDEVICE){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "忥任塿£å¨æ§è¡å¦ï¼è¯·ç¨åæ¥çç»æï¼") ; } Constants.DEALING_HK_SYNCDEVICE =true; try { List<Device> deleteList = new ArrayList<>(); List<Device> addList = new ArrayList<>(); List<Device> editList = new ArrayList<>(); List<AcsDeviceInfoResponse> 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 AcsDeviceListRequest(); param.setPageNo(curPage); 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 += 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()+"ãæ¡"; }catch (Exception e){ e.printStackTrace(); throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "åæ¥å¤±è´¥ï¼"); }finally { Constants.DEALING_HK_SYNCDEVICE =false; } } public List<DoorsInfoResponse> getAllDoorList(){ List<DoorsInfoResponse> allDoorList = 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 AcsDeviceListRequest(); DoorsListRequest param = new DoorsListRequest(); param.setPageNo(curPage); param.setPageSize(100); BaseResponse<AcsDeviceListResponse> response = HKService.acsDeviceList(param); BaseResponse<DoorsListResponse> response = HKService.doorSearch(param); if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对ä¸èµ·ï¼æµ·åº·åæ¥æ°æ®å¤±è´¥~"); } AcsDeviceListResponse r = response.getData(); DoorsListResponse r = response.getData(); curTotal += 100; if(curTotal >= r.getTotal()){ hasNext = false; @@ -72,43 +130,27 @@ if(r.getList() == null || r.getList().size()==0){ hasNext =false; }else{ allHkList.addAll(r.getList()); allDoorList.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()+"ãæ¡"; return allDoorList; } private void getDataChangeList(List<Device> allList, List<AcsDeviceInfoResponse> allHkList, List<Device> addList, List<Device> editList,List<Device> deleteList, Date date) { if(allHkList!=null && allHkList.size()>0){ //è·åæµ·åº·å ¨é¨é¨ç¦ç»æ°æ® List<DoorsInfoResponse> hkDoorList = getAllDoorList(); for(AcsDeviceInfoResponse device : allHkList){ Device model = getExistedDevice(device,allList); if(model !=null){ //妿已åå¨ï¼åæ´æ°æ°æ® model = initDataByHkData(model,device,date); model = initDataByHkData(model,device,date,hkDoorList); editList.add(model); }else{ //妿ä¸åå¨ï¼åæ°å¢æ°æ® model = new Device(); model = initDataByHkData(model,device,date); model = initDataByHkData(model,device,date,hkDoorList); addList.add(model); } } @@ -124,7 +166,7 @@ * @param date * @return */ private Device initDataByHkData(Device model, AcsDeviceInfoResponse device,Date date) { private Device initDataByHkData(Device model, AcsDeviceInfoResponse device,Date date, List<DoorsInfoResponse> hkDoorList) { model.setIsdeleted(Constants.ZERO); model.setIp(device.getIp()); model.setHkDate(date); @@ -137,7 +179,7 @@ model.setManufature(device.getManufacturer()); model.setType(Constants.ZERO); // model.setNo(device.getDevSerialNum()); // model.setChannelNo(device); model.setChannelNo(getChannelNo(device.getIndexCode(),hkDoorList)); model.setResourceType(device.getResourceType()); model.setDevTypeCode(device.getDevTypeCode()); model.setManufature(device.getManufacturer()); @@ -146,6 +188,24 @@ return model; } private String getChannelNo(String indexCode, List<DoorsInfoResponse> hkDoorList) { String str = ""; if(hkDoorList!=null && hkDoorList.size()>0){ for(DoorsInfoResponse info : hkDoorList){ if(StringUtils.equals(indexCode,info.getParentIndexCode())){ if(StringUtils.isBlank(info.getChannelNo())){ continue; } if(StringUtils.isNotBlank(str)){ str += ","; } str+=info.getChannelNo(); } } } return str; } private Device getExistedDevice(AcsDeviceInfoResponse device, List<Device> allList) { if(allList.size()>0){ for(Device r : allList){ server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDoorsServiceImpl.java
@@ -7,10 +7,8 @@ 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.*; 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; @@ -43,56 +41,68 @@ @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++; if(Constants.DEALING_HK_SYNCDEVICE){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "忥任塿£å¨æ§è¡å¦ï¼è¯·ç¨åæ¥çç»æï¼") ; } /** * è·åå¢å æ¹æ°æ®éå */ getDataChangeList(allList,allHkList,addList,editList,deleteList,date); if(deleteList.size()>0){ //é»è¾å é¤ for(Device d : deleteList){ deviceMapper.updateById(d); Constants.DEALING_HK_SYNCDEVICE =true; try { 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++; } } if(addList.size()>0){ deviceMapper.insertBatchSomeColumn(addList); } if(editList.size()>0){ for(Device d : editList){ deviceMapper.updateById(d); /** * è·åå¢å æ¹æ°æ®éå */ 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()+"ãæ¡"; }catch (Exception e){ e.printStackTrace(); throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "åæ¥å¤±è´¥ï¼"); }finally { Constants.DEALING_HK_SYNCDEVICE =false; } 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) { server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
@@ -1,14 +1,20 @@ package com.doumee.service.business.impl.hksync; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; 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.VisitAppointmentRequest; import com.doumee.core.haikang.model.param.respose.VisitAppointmentResponse; import com.doumee.core.haikang.model.param.request.*; import com.doumee.core.haikang.model.param.respose.*; 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.join.EmpowerJoinMapper; import com.doumee.dao.business.join.VisitsJoinMapper; import com.doumee.dao.business.model.Device; import com.doumee.dao.business.model.Empower; import com.doumee.dao.business.model.Member; import com.doumee.dao.business.model.Visits; @@ -18,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -30,48 +37,119 @@ @Slf4j public class HkSyncEmpowerServiceImpl extends HkSyncBaseServiceImpl { @Autowired private EmpowerJoinMapper empowerJoinMapper; private EmpowerJoinMapper empowerMapper; @Autowired private DeviceMapper deviceMapper; /** * åæ¥æµ·åº·ç»ç»ä¿¡æ¯,æ ¹æ®erp忥ç»ç»ç»æï¼å®æ¶æ£æ¥éè¦ä¸åå°æµ·åº·çç»ç»ä¿¡æ¯ * 宿¶æ¥è¯¢æéä¸åä»»å¡è¿åº¦æ§è¡ç»æ */ @Override public void syncEmpowerData(){ public void syncEmpowerDetailData(){ if(Constants.DEALING_HK_EMPOWER_DETAIL){ return ; } Constants.DEALING_HK_EMPOWER_DETAIL = true; try { //æ¥è¯¢ææå®æä¸è½½ï¼å¾ æ¥è¯¢ç»æçæ°æ®è®°å½ List<Empower> list = getDealListDetail(); if(list == null || list.size() ==0){ return; } for(Empower c : list){ AuthItemListRequest param = new AuthItemListRequest(); param.setPageNo(1); param.setPageSize(100); param.setPersonIds(new ArrayList<>()); AuthItemListPersonRequest p = new AuthItemListPersonRequest(); p.setPersonIds(c.getMemberHkId()); param.getPersonIds().add(p); TaskDataAdditionResourceRequest rec = new TaskDataAdditionResourceRequest(); rec.setResourceIndexCode(c.getDeviceIndexCode()); rec.setResourceType(c.getDeviceType()); rec.setChannelNos(c.getDeviceChannelNo().split(",")); param.setResourceInfos(rec); //æ¥è¯¢å·²ä¸è½½ param.setPersonStatus(new Integer[]{3}); //æ¥è¯¢ä¸åç¶æ BaseResponse<AuthItemListResponse> response = HKService.authItemList(param); if(response!=null && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE) && response.getData()!=null && response.getData().getList() != null && response.getData().getList().size()>0 ){ //æ´æ°å·²å®æä¸è½½ä»»å¡ empowerMapper.update(null,new UpdateWrapper<Empower>() .lambda() .eq(Empower::getHkId,c.getHkId() ) .set(Empower::getSendStatus,Constants.EmpowerStatus.pass) ); } } }catch (Exception e){ e.printStackTrace(); }finally { Constants.DEALING_HK_EMPOWER_DETAIL=false; } } /** * 宿¶æ¥è¯¢æéä¸åä»»å¡è¿åº¦æ§è¡ç»æ */ @Override public void syncEmpowerResultData(){ if(Constants.DEALING_HK_EMPOWER_RESULT){ return ; } Constants.DEALING_HK_EMPOWER_RESULT=true; try { //æ¥è¯¢æææ§è¡ä¸å¾æ°æ® List<Empower> list = getIngTaskListResult(); if(list == null || list.size() ==0){ return; } for(Empower c : list){ TaskProgressRequest param = new TaskProgressRequest(); param.setTaskId(c.getHkId()); //æ¥è¯¢ä¸åç¶æ BaseResponse<TaskProgressNumResponse> response = HKService.taskProgressNum(param); if(response!=null && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE) && response.getData()!=null && response.getData().getIsDownloadFinished() != null && response.getData().getIsDownloadFinished() ){ //æ´æ°å·²å®æä¸è½½ä»»å¡ empowerMapper.update(null,new UpdateWrapper<Empower>() .lambda() .eq(Empower::getHkId,c.getHkId() ) .set(Empower::getSendStatus,Constants.EmpowerStatus.downloaded) ); } } }catch (Exception e){ e.printStackTrace(); }finally { Constants.DEALING_HK_EMPOWER_RESULT =false; } } /** * å¤çäººåæææ°æ®ï¼å®æ¶ä¸å */ @Override public void syncEmpowerData() { if(Constants.DEALING_HK_EMPOWER){ return ; } Constants.DEALING_HK_EMPOWER =true; try { //æ¥è¯¢ææéè¦åæ¥çä¼ä¸æ°æ® MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(Empower.class); queryWrapper.selectAs(Member::getName,Visits::getReceptMemberName) .select("t1.hk_id as receptMemberHkId") .leftJoin(Member.class,Member::getId,Visits::getReceptMemberId); queryWrapper.eq(Visits::getStatus,Constants.VisitStatus.pass)//审æ¹éè¿ .eq(Visits::getHkStatus,Constants.ZERO)//æªåæ¥å°æµ·åº· .orderByAsc(Visits::getCreateDate); List<Empower> list = empowerJoinMapper.selectJoinList(Empower.class,queryWrapper); if(list ==null || list.size()==0){ return; } Date date = new Date(); for(Empower c : list) { //å é¤çæ°æ®ï¼è¿è¡å é¤ VisitAppointmentRequest request = new VisitAppointmentRequest(); BaseResponse<VisitAppointmentResponse> response = HKService.visitAppiontment(request); if (response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) &&response.getData()!=null &&StringUtils.isNotBlank(response.getData().getAppointRecordId())) { //海康ä¸åæå c.setHkId( response.getData().getAppointRecordId());//é¢çº¦æ è¯ } else { //海康ä¸åæå } empowerJoinMapper.updateById(c); } //å å 餿æéè¦åæ¶ææçæ°æ® // dealDelListTask(getDealList(Constants.ONE)); //æ¥è¯¢ææéè¦åæ¥çæ°æ® dealNewListTask(getDealList(Constants.ZERO)); }catch (Exception e){ e.printStackTrace(); }finally { @@ -79,4 +157,241 @@ } } private void dealDelListTask(List<Empower> list) { //æç §ç¶çº§ç³è¯·åæ¹å¤çæ¯æ¬¡ç³è¯·æ°æ® if(list ==null || list.size()==0){ return; } Date date = new Date(); //åå»ºä»»å¡ String taskId = hkTaskAddtion(); List<Empower> successList = new ArrayList<>(); List<Empower> errorList = new ArrayList<>(); for(Empower c : list) { //å任塿·»å 人åã设å¤ä¿¡æ¯æ°æ® if(addTaskData(c,taskId,HKConstants.OPERA_TYPE.DEL.getKey())){ successList.add(c); }else{ errorList.add(c); } } if(successList.size()>0){ //å¼å§æ§è¡ä¸å boolean status = startTask(taskId); for(Empower model : successList){ Empower update = new Empower(); update.setId(model.getId()); update.setSendDate(date); update.setEditDate(date); update.setHkId(taskId); update.setRemark(status?"ä¸å任塿å":"ä¸åä»»å¡å¤±è´¥"); //ä¸åä¸ update.setSendStatus(status?Constants.EmpowerStatus.ing:Constants.EmpowerStatus.fail); } } for(Empower model : errorList){ Empower update = new Empower(); update.setId(model.getId()); update.setSendDate(date); update.setEditDate(date); update.setHkId(taskId); update.setSendStatus(Constants.EmpowerStatus.fail); update.setRemark( "æ·»å ä¸å任塿°æ®åªé¤ææå¤±è´¥"); empowerMapper.updateById(update); } } private void dealNewListTask(List<Empower> list) { //æç §ç¶çº§ç³è¯·åæ¹å¤çæ¯æ¬¡ç³è¯·æ°æ® if(list ==null || list.size()==0){ return; } clearAllEmpowerFirst(list); Date date = new Date(); //åå»ºä»»å¡ String taskId = hkTaskAddtion(); List<Empower> successList = new ArrayList<>(); List<Empower> errorList = new ArrayList<>(); for(Empower c : list) { //å任塿·»å 人åã设å¤ä¿¡æ¯æ°æ® if(addTaskData(c,taskId,HKConstants.OPERA_TYPE.ADD.getKey())){ successList.add(c); }else{ errorList.add(c); } } if(successList.size()>0){ //å¼å§æ§è¡ä¸å boolean status = startTask(taskId); for(Empower model : successList){ Empower update = new Empower(); update.setId(model.getId()); update.setSendDate(date); update.setEditDate(date); update.setHkId(taskId); update.setRemark(status?"ä¸å任塿å":"ä¸åä»»å¡å¤±è´¥"); //ä¸åä¸ update.setSendStatus(status?Constants.EmpowerStatus.ing:Constants.EmpowerStatus.fail); empowerMapper.updateById(update); } } for(Empower model : errorList){ Empower update = new Empower(); update.setId(model.getId()); update.setSendDate(date); update.setEditDate(date); update.setHkId(taskId); update.setSendStatus(Constants.EmpowerStatus.fail); update.setRemark( "æ·»å ä¸å任塿°æ®å¤±è´¥"); empowerMapper.updateById(update); } } private void clearAllEmpowerFirst(List<Empower> list) { //æ¥è¯¢å ¨é¨æ°æ® List<Device> allDevice = deviceMapper.selectList(new QueryWrapper<Device>().lambda().isNotNull(Device::getHkId)); //åå»ºä»»å¡ String taskId = hkTaskAddtion(); for(Empower c : list) { //å任塿·»å 人åã设å¤ä¿¡æ¯æ°æ® addTaskDataAll(c,taskId,allDevice); } startTask(taskId); } private boolean addTaskData(Empower c,String taskId,int type) { if(StringUtils.isBlank(c.getMemberHkId() ) ||StringUtils.isBlank(c.getDeviceChannelNo()) ||StringUtils.isBlank(c.getDeviceType()) ||StringUtils.isBlank(c.getDeviceIndexCode())){ //å¿ å¡«åæ°æ ¡éª return false; } TaskDataAdditionRequest param = new TaskDataAdditionRequest(); param.setTaskId(taskId); List<TaskDataAdditionResourceRequest> resourceInfos = new ArrayList<>();// object[] True èµæºå¯¹è±¡ TaskDataAdditionResourceRequest res = new TaskDataAdditionResourceRequest(); res.setChannelNos(c.getDeviceChannelNo().split(",")); res.setResourceType(c.getDeviceType()); res.setResourceIndexCode(c.getDeviceIndexCode()); resourceInfos.add(res); List<TaskDataAdditionPersonRequest> personInfos = new ArrayList<>(); TaskDataAdditionPersonRequest pinfo = new TaskDataAdditionPersonRequest(); pinfo.setName(c.getMemberName()); pinfo.setEndTime(DateUtil.getISO8601Timestamp(c.getEndTime())); pinfo.setStartTime(DateUtil.getISO8601Timestamp(c.getStartTime())); pinfo.setOperatorType(type); pinfo.setPersonId(c.getMemberHkId()); param.setResourceInfos(resourceInfos); param.setPersonInfos(personInfos); BaseResponse response = HKService.taskDataAddition(param); if(response!=null && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)){ return true; }else{ return false; } } private boolean addTaskDataAll(Empower c,String taskId,List<Device> deviceList) { if(StringUtils.isBlank(c.getMemberHkId() ) ||StringUtils.isBlank(c.getDeviceChannelNo()) ||StringUtils.isBlank(c.getDeviceType()) ||StringUtils.isBlank(c.getDeviceIndexCode())){ //å¿ å¡«åæ°æ ¡éª return false; } TaskDataAdditionRequest param = new TaskDataAdditionRequest(); param.setTaskId(taskId); List<TaskDataAdditionResourceRequest> resourceInfos = new ArrayList<>();// object[] True èµæºå¯¹è±¡ for(Device d:deviceList){ TaskDataAdditionResourceRequest res = new TaskDataAdditionResourceRequest(); res.setChannelNos(d.getChannelNo().split(",")); res.setResourceType(d.getResourceType()); res.setResourceIndexCode(c.getDeviceIndexCode()); resourceInfos.add(res); } List<TaskDataAdditionPersonRequest> personInfos = new ArrayList<>(); TaskDataAdditionPersonRequest pinfo = new TaskDataAdditionPersonRequest(); pinfo.setName(c.getMemberName()); pinfo.setEndTime(DateUtil.getISO8601Timestamp(c.getEndTime())); pinfo.setStartTime(DateUtil.getISO8601Timestamp(c.getStartTime())); pinfo.setOperatorType(HKConstants.OPERA_TYPE.DEL.getKey()); pinfo.setPersonId(c.getMemberHkId()); param.setResourceInfos(resourceInfos); param.setPersonInfos(personInfos); BaseResponse response = HKService.taskDataAddition(param); if(response!=null && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)){ return true; }else{ return false; } } private boolean startTask(String taskId) { TaskProgressRequest param = new TaskProgressRequest(); param.setTaskId(taskId); BaseResponse response = HKService.taskStart(param); if(response!=null && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)){ return true; }else{ return false; } } private String hkTaskAddtion() { TaskAdditionRequest param = new TaskAdditionRequest(); param.setTaskType(HKConstants.TASK_TYPE.FACE.getKey()); BaseResponse<TaskAdditionResponse> response = HKService.taskAddition(param); if(response!=null && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE) && response.getData()!=null && StringUtils.isNotBlank(response.getData().getTaskId())){ return response.getData().getTaskId(); }else{ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "海康å建ä¸è½½ä»»å¡å¤±è´¥=================="); } } private List<Empower> getDealList(int del ) { MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(Empower.class); queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo); queryWrapper.selectAs(Member::getHkId,Empower::getMemberHkId); queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode); queryWrapper.selectAs(Device::getResourceType,Empower::getDeviceType); queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId); queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId); queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.wait); // queryWrapper.eq( Empower::getIsdeleted,del); // queryWrapper.last("limit 100");//æ¯æ¬¡éå¶ä¸å100个 List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper); return list; } private List<Empower> getDealListDetail() { MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(Empower.class); queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo); queryWrapper.selectAs(Member::getHkId,Empower::getMemberHkId); queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId); queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode); queryWrapper.selectAs(Device::getDevTypeCode,Empower::getDeviceType); queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId); queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.downloaded); List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper); return list; } private List<Empower> getIngTaskListResult() { MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(Empower.class); queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.ing); queryWrapper.groupBy(Empower::getHkId); List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper); return list; } } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
@@ -1,10 +1,13 @@ package com.doumee.service.business.impl.hksync; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.CarChargeAddRequest; import com.doumee.core.haikang.model.param.request.CarChargeDelRequest; import com.doumee.core.haikang.model.param.request.ParkListRequest; import com.doumee.core.haikang.model.param.respose.AcsDeviceInfoResponse; import com.doumee.core.haikang.model.param.respose.AcsDeviceListResponse; @@ -13,9 +16,12 @@ import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.DeviceMapper; import com.doumee.dao.business.ParkBookMapper; import com.doumee.dao.business.ParksMapper; import com.doumee.dao.business.model.Device; import com.doumee.dao.business.model.Parks; import com.doumee.dao.business.join.ParkBookJoinMapper; import com.doumee.dao.business.join.ParksJoinMapper; import com.doumee.dao.business.model.*; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -34,7 +40,97 @@ @Autowired private ParksMapper parksMapper; @Autowired private ParkBookJoinMapper parkBookMapper; @Override public void syncParkBookData() { if(Constants.DEALING_HK_PARKBOOK){ return ; } Constants.DEALING_HK_PARKBOOK =true; try { //æ¥è¯¢ææéè¦åæ¥çæ°æ® List<ParkBook> list =getDealList (); if(list ==null || list.size()==0){ return; } Date date = new Date(); //å åºææéè¦åæ¶å æçæ°æ®è®°å½ for(ParkBook c : list) { if(Constants.equalsObject(c.getIsdeleted(),Constants.ONE)){ //妿忶é¢çº¦ï¼åè¿è¡åæ¶å æ if(StringUtils.isNotBlank(c.getParkHkId()) && StringUtils.isNotBlank(c.getCarCode())){ boolean result = cancelParkBookHk(c); c.setHkStatus(result?Constants.ONE:Constants.TWO); }else{ c.setHkStatus(Constants.TWO);//ä¸å失败 } c.setHkDate(date); parkBookMapper.updateById(c); } } //å¤çææéè¦å æçè½¦è¾æ°æ®è®°å½ for(ParkBook c : list) { if(Constants.equalsObject(c.getIsdeleted(),Constants.ONE)) { //å é¤çå·²å¤çï¼è·³è¿å¤ç continue; } //æ°æ®ä¸åæ³ï¼ç´æ¥æç¤ºä¸å失败 if(StringUtils.isNotBlank(c.getParkHkId()) && StringUtils.isNotBlank(c.getCarCode())){ boolean result = addParkBookHk(c); c.setHkStatus(result?Constants.ONE:Constants.TWO); }else{ c.setHkStatus(Constants.TWO); } c.setHkDate(date); parkBookMapper.updateById(c); } }catch (Exception e){ e.printStackTrace(); }finally { Constants.DEALING_HK_PARKBOOK =false; } } private boolean addParkBookHk(ParkBook c) { CarChargeAddRequest param = new CarChargeAddRequest(); param.setPlateNo(c.getCarCode()); param.setParkSyscode(c.getParkHkId()); param.setStartTime(DateUtil.getISO8601Timestamp(c.getStartTime())); param.setEndTime(DateUtil.getISO8601Timestamp(c.getEndTime())); BaseResponse response = HKService.carChargeAddtion(param); if(response!=null && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)){ return true; }else{ return false; } } private boolean cancelParkBookHk(ParkBook c) { CarChargeDelRequest param = new CarChargeDelRequest(); param.setPlateNo(c.getCarCode()); param.setParkSyscode(c.getParkHkId()); BaseResponse response = HKService.carChargeDeletion(param); if(response!=null && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)){ return true; }else{ return false; } } private List<ParkBook> getDealList() { MPJLambdaWrapper<ParkBook> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(ParkBook.class); queryWrapper.selectAs(Parks::getHkId,ParkBook::getParkHkId); queryWrapper.leftJoin(Parks.class,Parks::getId,ParkBook::getParkId); queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode); List<ParkBook> list = parkBookMapper.selectJoinList(ParkBook.class,queryWrapper); return list; } /** * åæ¥æµ·åº·åè½¦åºæ°æ® * @param param @@ -43,36 +139,47 @@ @Override // @Async public String syncHkParks(ParkListRequest param){ List<Parks> deleteList = new ArrayList<>(); List<Parks> addList = new ArrayList<>(); List<Parks> editList = new ArrayList<>(); Date date = new Date(); //æ¥è¯¢å ¨é¨å½åæ°æ® List<Parks> allList = parksMapper.selectList(null); if(Constants.DEALING_HK_SYNCPRIVILEGE){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "忥任塿£å¨æ§è¡å¦ï¼è¯·ç¨åæ¥çç»æï¼") ; } Constants.DEALING_HK_SYNCPRIVILEGE =true; try { List<Parks> deleteList = new ArrayList<>(); List<Parks> addList = new ArrayList<>(); List<Parks> editList = new ArrayList<>(); Date date = new Date(); //æ¥è¯¢å ¨é¨å½åæ°æ® List<Parks> allList = parksMapper.selectList(null); //å页éåå¾ªç¯æ¥è¯¢ææé¨ç¦è®¾å¤æ°æ® param = new ParkListRequest(); BaseResponse<List<ParkListResponse>> response = HKService.parkList(param); if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对ä¸èµ·ï¼æµ·åº·åæ¥æ°æ®å¤±è´¥~"); } List<ParkListResponse> allHkList = response.getData(); // è·åå¢å æ¹æ°æ®éå getDataChangeList(allList,allHkList,addList,editList,deleteList,date); if(deleteList.size()>0){ //é»è¾å é¤ for(Parks d : deleteList){ parksMapper.updateById(d); param = new ParkListRequest(); BaseResponse<List<ParkListResponse>> response = HKService.parkList(param); if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对ä¸èµ·ï¼æµ·åº·åæ¥æ°æ®å¤±è´¥~"); } } if(addList.size()>0){ parksMapper.insertBatchSomeColumn(addList); } if(editList.size()>0){ for(Parks d : editList){ parksMapper.updateById(d); List<ParkListResponse> allHkList = response.getData(); // è·åå¢å æ¹æ°æ®éå getDataChangeList(allList,allHkList,addList,editList,deleteList,date); if(deleteList.size()>0){ //é»è¾å é¤ for(Parks d : deleteList){ parksMapper.updateById(d); } } if(addList.size()>0){ parksMapper.insertBatchSomeColumn(addList); } if(editList.size()>0){ for(Parks d : editList){ parksMapper.updateById(d); } } return "åæ¥æ°æ®ï¼æ°å¢ã"+addList.size()+"ãæ¡ï¼æ´æ°ã"+editList.size()+"ãæ¡ï¼å é¤ã"+deleteList.size()+"ãæ¡"; }catch (Exception e){ e.printStackTrace(); throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "åæ¥å¤±è´¥ï¼"); }finally { Constants.DEALING_HK_SYNCPRIVILEGE =false; } return "åæ¥æ°æ®ï¼æ°å¢ã"+addList.size()+"ãæ¡ï¼æ´æ°ã"+editList.size()+"ãæ¡ï¼å é¤ã"+deleteList.size()+"ãæ¡"; } private void getDataChangeList(List<Parks> allList, List<ParkListResponse> allHkList, List<Parks> addList, List<Parks> editList,List<Parks> deleteList, Date date) { if(allHkList!=null && allHkList.size()>0){ server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java
@@ -5,12 +5,16 @@ 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.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.PrivilegeGroupInfoResponse; import com.doumee.core.haikang.model.param.respose.PrivilegeGroupListResponse; import com.doumee.core.haikang.service.HKService; import com.doumee.core.utils.Constants; import com.doumee.dao.business.DeviceRoleMapper; import com.doumee.dao.business.model.Device; import com.doumee.dao.business.model.DeviceRole; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -38,59 +42,71 @@ @Override // @Async public String syncPrivilege(PrivilegeGroupRequest param){ List<DeviceRole> deleteList = new ArrayList<>(); List<DeviceRole> addList = new ArrayList<>(); List<DeviceRole> editList = new ArrayList<>(); List<PrivilegeGroupInfoResponse> allHkList = new ArrayList<>(); Date date = new Date(); //æ¥è¯¢å ¨é¨ç°ææ°æ®ï¼åªç®¡ç忥 è®¿å®¢ç» List<Integer> types = new ArrayList<>(); types.add(Constants.DOOR_ROLE_TYPE.fk); types.add(Constants.DOOR_ROLE_TYPE.lw); List<DeviceRole> allList = DeviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda().in(DeviceRole::getType,types)); boolean hasNext = true; int curTotal = 0; int curPage = 1; while (hasNext){ //å页éåå¾ªç¯æ¥è¯¢ææé¨ç¦è®¾å¤æ°æ® param = new PrivilegeGroupRequest(); param.setPageNo(curPage); 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 += 100; if(curTotal >= r.getTotal()){ hasNext = false; } if(r.getList() == null || r.getList().size()==0){ hasNext =false; }else{ allHkList.addAll(r.getList()); } curPage ++; if(Constants.DEALING_HK_SYNCDEVICE){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "忥任塿£å¨æ§è¡å¦ï¼è¯·ç¨åæ¥çç»æï¼") ; } /** * è·åå¢å æ¹æ°æ®éå */ getDataChangeList(allList,allHkList,addList,editList,deleteList,date); if(deleteList.size()>0){ //é»è¾å é¤ for(DeviceRole d : deleteList){ DeviceRoleMapper.updateById(d); Constants.DEALING_HK_SYNCDEVICE =true; try { List<DeviceRole> deleteList = new ArrayList<>(); List<DeviceRole> addList = new ArrayList<>(); List<DeviceRole> editList = new ArrayList<>(); List<PrivilegeGroupInfoResponse> allHkList = new ArrayList<>(); Date date = new Date(); //æ¥è¯¢å ¨é¨ç°ææ°æ®ï¼åªç®¡ç忥 è®¿å®¢ç» List<Integer> types = new ArrayList<>(); types.add(Constants.DOOR_ROLE_TYPE.fk); types.add(Constants.DOOR_ROLE_TYPE.lw); List<DeviceRole> allList = DeviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda().in(DeviceRole::getType,types)); boolean hasNext = true; int curTotal = 0; int curPage = 1; while (hasNext){ //å页éåå¾ªç¯æ¥è¯¢ææé¨ç¦è®¾å¤æ°æ® param = new PrivilegeGroupRequest(); param.setPageNo(curPage); 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 += 100; if(curTotal >= r.getTotal()){ hasNext = false; } if(r.getList() == null || r.getList().size()==0){ hasNext =false; }else{ allHkList.addAll(r.getList()); } curPage ++; } } if(addList.size()>0){ DeviceRoleMapper.insertBatchSomeColumn(addList); } if(editList.size()>0){ for(DeviceRole d : editList){ DeviceRoleMapper.updateById(d); /** * è·åå¢å æ¹æ°æ®éå */ getDataChangeList(allList,allHkList,addList,editList,deleteList,date); if(deleteList.size()>0){ //é»è¾å é¤ for(DeviceRole d : deleteList){ DeviceRoleMapper.updateById(d); } } if(addList.size()>0){ DeviceRoleMapper.insertBatchSomeColumn(addList); } if(editList.size()>0){ for(DeviceRole d : editList){ DeviceRoleMapper.updateById(d); } } return "åæ¥æ°æ®ï¼æ°å¢ã"+addList.size()+"ãæ¡ï¼æ´æ°ã"+editList.size()+"ãæ¡ï¼å é¤ã"+deleteList.size()+"ãæ¡"; }catch (Exception e){ e.printStackTrace(); throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "åæ¥å¤±è´¥ï¼"); }finally { Constants.DEALING_HK_SYNCDEVICE =false; } return "åæ¥æ°æ®ï¼æ°å¢ã"+addList.size()+"ãæ¡ï¼æ´æ°ã"+editList.size()+"ãæ¡ï¼å é¤ã"+deleteList.size()+"ãæ¡"; } private void getDataChangeList(List<DeviceRole> allList, List<PrivilegeGroupInfoResponse> allHkList, List<DeviceRole> addList, List<DeviceRole> editList,List<DeviceRole> deleteList, Date date) { server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
@@ -118,6 +118,7 @@ * æ ¹æ®é¢çº¦è¿åæ¥å£å°è£ ç³è¯·è®°å½æ´æ°å段 * @param c * @param date * @param date * @param type 0éè¦ç»è®° 1å ç»è®° */ private void getUpdateModelByResponse( Visits c,Date date,String type,List<DeviceRole> roleList,String path ) { server/pom.xml
@@ -280,6 +280,8 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> </dependencies> <build> <plugins>