From 857a1e6ddac0a5cfdd82c78218b2483534ab397f Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 09 一月 2024 13:45:19 +0800
Subject: [PATCH] 整理

---
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java                                    |   42 +++
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AuthItemListRequest.java              |    4 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailListResponse.java     |   13 +
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailResponse.java         |   15 +
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TimeRangeRequest.java                 |    2 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java                                    |    8 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TaskPersonDetailRequest.java          |   21 +
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CardBingdingRequest.java              |   14 +
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java                      |  150 ++++++-------
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java                                        |   60 +++++
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailFaceInfoResponse.java |   14 +
 /dev/null                                                                                                              |   11 -
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberCard.java                                     |    1 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java             |  117 ++++++++++
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailCardFaceResponse.java |   14 +
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java             |   92 +++++++
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailCardInfoResponse.java |   13 +
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CardInfoRequest.java                  |   13 +
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SortRequest.java                      |   12 +
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AuthItemListDetailResponse.java       |   12 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/CardInfoResponse.java                 |   13 +
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java                |    2 
 22 files changed, 522 insertions(+), 121 deletions(-)

diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
index 73e5cd0..ee61b8e 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -66,6 +66,11 @@
         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";//鏌ヨ鏉冮檺鏉$洰鍒楄〃
+        String cardBingding= "/api/cis/v1/card/bindings";//鎵归噺寮�鍗�
+        String cardDeletion= "/api/cis/v1/card/deletion";//鍗$墖閫�鍗�
+        String cardLoss= "/api/cis/v1/card/batch/loss";//鎵归噺鎸傚け
+        String cardUnloss= "/api/cis/v1/card/batch/unLoss";//鎵归噺瑙f寕
+        String taskPersoDetail= "/api/acps/v1/download_record/person/detail/search";//鏌ヨ璁惧閫氶亾鐨勪汉鍛樻潈闄愪笅杞借鎯�
     }
 
     /**
@@ -74,7 +79,8 @@
     public  enum TASK_TYPE {
 
         CARD(1, "鍗$墖"  ),
-        FACE(4, "浜鸿劯"  )
+        FACE(4, "浜鸿劯"  ),
+        CARD_FACE(5, "鍗$墖+浜鸿劯锛堢粍鍚堬級"  ),
         ;
         // 鎴愬憳鍙橀噺
         private String name;
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
index 3a9f27e..fc60bf4 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -525,5 +525,65 @@
 		saveInterfaceLog(body,result,path);
 		return  result;
 	}
+	/**
+	 * 鎵归噺寮�鍗�
+	 * @param body
+	 * @return
+	 */
+	public static String cardBingding(String body) {
+		Map<String, String> path = getPath(HKConstants.InterfacePath.cardBingding);
+		Map<String, String> header = new HashMap<>();
+		String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post璇锋眰application/json绫诲瀷鍙傛暟
+		saveInterfaceLog(body,result,path);
+		return  result;
+	}
+	/**
+	 * 閫�鍗�
+	 * @param body
+	 * @return
+	 */
+	public static String cardDeletion(String body) {
+		Map<String, String> path = getPath(HKConstants.InterfacePath.cardDeletion);
+		Map<String, String> header = new HashMap<>();
+		String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post璇锋眰application/json绫诲瀷鍙傛暟
+		saveInterfaceLog(body,result,path);
+		return  result;
+	}
+	/**
+	 * 鎵归噺鎸傚け
+	 * @param body
+	 * @return
+	 */
+	public static String cardLoss(String body) {
+		Map<String, String> path = getPath(HKConstants.InterfacePath.cardLoss);
+		Map<String, String> header = new HashMap<>();
+		String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post璇锋眰application/json绫诲瀷鍙傛暟
+		saveInterfaceLog(body,result,path);
+		return  result;
+	}
+	/**
+	 * 鎵归噺瑙f寕
+	 * @param body
+	 * @return
+	 */
+	public static String cardUnloss(String body) {
+		Map<String, String> path = getPath(HKConstants.InterfacePath.cardUnloss);
+		Map<String, String> header = new HashMap<>();
+		String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post璇锋眰application/json绫诲瀷鍙傛暟
+		saveInterfaceLog(body,result,path);
+		return  result;
+	}
+	/**
+	 * 鏌ヨ璁惧閫氶亾鐨勪汉鍛樻潈闄愪笅杞借鎯�
+	 * @param body
+	 * @return
+	 */
+	public static String taskPersoDetail(String body) {
+		Map<String, String> path = getPath(HKConstants.InterfacePath.taskPersoDetail);
+		Map<String, String> header = new HashMap<>();
+		String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post璇锋眰application/json绫诲瀷鍙傛暟
+		saveInterfaceLog(body,result,path);
+		return  result;
+	}
 
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AuthItemListRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AuthItemListRequest.java
index 02336dc..3324051 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AuthItemListRequest.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AuthItemListRequest.java
@@ -14,8 +14,8 @@
    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 TimeRangeRequest configTime;//;	object	False	閰嶇疆鏃堕棿鏌ヨ瀵硅薄
+   private List<SortRequest> sortObjects	;//object[]	False	鐩墠鍙敮鎸侀厤缃椂闂�
 
    private Integer pageNo	;//number	True	椤电爜,pageNo>0
    private Integer pageSize	;//number	True	椤靛ぇ灏�,0<pageSize<=1000
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AuthItemListTimeRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AuthItemListTimeRequest.java
deleted file mode 100644
index 697ca25..0000000
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AuthItemListTimeRequest.java
+++ /dev/null
@@ -1,11 +0,0 @@
-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
-
-}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CardBingdingRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CardBingdingRequest.java
new file mode 100644
index 0000000..05a35b5
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CardBingdingRequest.java
@@ -0,0 +1,14 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class CardBingdingRequest {
+
+   private String startDate	;//string	False	鍗$墖寮�濮嬫湁鏁堟椂闂达紝鏃堕棿鏍煎紡锛歽yyy-MM-dd
+   private String endDate;//	string	False	鍗$墖鎴鏈夋晥鏃堕棿,鏃堕棿鏍煎紡锛歽yyy-MM-dd       涓嶈兘澶т簬2037骞�12鏈�31鏃�
+   private List<CardInfoRequest> cardList	;//object[]	True	寰呭紑鍗″垪琛�,鏈�澶ф敮鎸�50寮犲崱锛屼负绌鸿繑鍥炲叕鍏遍敊璇爜锛岃秴杩囪寖鍥磋繑鍥炰笟鍔¢敊璇爜锛屽弬鑰冮檮褰旹.other.3 鍗$墖閿欒鐮�
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CardInfoRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CardInfoRequest.java
new file mode 100644
index 0000000..27f6876
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CardInfoRequest.java
@@ -0,0 +1,13 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class CardInfoRequest {
+
+
+   private String   cardNo		;//string	True	鍗″彿,8~20涓瓧绗︼紝鏀寔鏁板瓧鍜屽ぇ鍐欏瓧姣嶃�� 寤鸿鏄敱璇诲崱鍣ㄧ洿鎺ヨ鍑烘潵鐨勩�� 濡傛灉鏄笁鏂圭郴缁熷悓姝ヨ繃鏉ワ紝闇�瑕佹彁鍓嶈皟鐮斿崱鍙风殑瑙勫垯鎵�璐拱鐨勮澶囦笂鏄惁鍏煎
+   private String  personId	;//	string	True	浜哄憳ID锛屾牴鎹� 鑾峰彇浜哄憳鍒楄〃v2 鎺ュ彛鑾峰彇杩斿洖鍙傛暟personId
+   private String  orgIndexCode	;//	string	False	浜哄憳鎵�灞炵粍缁嘔ndexCode锛屼笉浼犻粯璁や娇鐢ㄦ牴缁勭粐锛�  浠庤幏鍙栫粍缁囧垪琛� 鎺ュ彛鑾峰彇杩斿洖鍙傛暟orgIndexCode
+   private Integer  cardType		;//number	False	鍗$墖绫诲瀷锛岄粯璁ゆ槸1锛欼C鍗�1锛欼C鍗�2锛欳PU鍗�3锛氳繙璺濈鍗�4锛歁鍗�
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SortRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SortRequest.java
new file mode 100644
index 0000000..da9eeec
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SortRequest.java
@@ -0,0 +1,12 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class SortRequest {
+
+
+    private String  field	;//	string	False	鎺掑簭瀛楁锛屽搴旀煡璇㈢敤鐨勫弬鏁板悕绉�
+    private String sort	;//	string	False	鎺掑簭瑙勫垯锛宎sc锛氭搴忥紝    desc锛氬�掑簭
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TaskPersonDetailRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TaskPersonDetailRequest.java
new file mode 100644
index 0000000..694389d
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TaskPersonDetailRequest.java
@@ -0,0 +1,21 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class TaskPersonDetailRequest {
+
+   private String  downloadResultId;//		string	False	涓嬭浇璁板綍鍞竴ID,浣跨敤downloadResultId鏌ヨ璁惧閫氶亾涓嬭浇璁板綍璇︽儏鏃讹紝蹇界暐taskId涓巖esourceInfo瀛楁锛堚�滀笅杞借褰曞敮涓�ID鈥濆拰鈥滀笅杞戒换鍔℃爣璇�+璁惧閫氶亾瀵硅薄鈥濅袱鑰呭繀椤绘湁涓�涓笉涓虹┖锛夛紝浠庢煡璇㈣澶囬�氶亾鏉冮檺涓嬭浇璁板綍鍒楄〃鎺ュ彛鑾峰彇杩斿洖鍙傛暟downloadResultId
+   private String taskId;//		string	False	涓嬭浇浠诲姟鍞竴鏍囪瘑锛屼粠鏌ヨ璁惧閫氶亾鏉冮檺涓嬭浇璁板綍鍒楄〃鎺ュ彛鑾峰彇杩斿洖鍙傛暟taskId
+   private  TaskDataAdditionResourceRequest   resourceInfo	;//	object	False	璁惧閫氶亾瀵硅薄
+   private  String[] personIds;//		string[]	False	浜哄憳缂栧彿鍒楄〃锛屾煡璇汉鍛樺垪琛╲2鎺ュ彛鑾峰彇杩斿洖鎶ユ枃涓殑personId瀛楁锛屾渶澶ч暱搴�1000
+   private String[]  orgIds;//		string[]	False	缁勭粐缂栧彿锛屾煡璇㈢粍缁囧垪琛╲2鎺ュ彛鑾峰彇杩斿洖鎶ユ枃涓殑orgIndexCode瀛楁锛屾渶澶ч暱搴�1000
+   private Integer downloadResult;//	integer	False	涓嬭浇缁撴灉锛�           0 鎴愬姛锛�           1 澶辫触锛�           2 閮ㄥ垎鎴愬姛
+   private TimeRangeRequest downloadTime;//	object	False	涓嬭浇鏃堕棿鏌ヨ瀵硅薄
+   private List<SortRequest> sortObjects	;//object[]	False	鐩墠鍙敮鎸侀厤缃椂闂�
+   private Integer pageNo	;//number	True	椤电爜,pageNo>0
+   private Integer pageSize	;//number	True	椤靛ぇ灏�,0<pageSize<=1000
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AuthItemListSortRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TimeRangeRequest.java
similarity index 90%
rename from server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AuthItemListSortRequest.java
rename to server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TimeRangeRequest.java
index 33239ec..d11b047 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AuthItemListSortRequest.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TimeRangeRequest.java
@@ -3,7 +3,7 @@
 import lombok.Data;
 
 @Data
-public class AuthItemListSortRequest {
+public class TimeRangeRequest {
 
     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
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AuthItemListDetailResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AuthItemListDetailResponse.java
index 3d9818a..74dfa23 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AuthItemListDetailResponse.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AuthItemListDetailResponse.java
@@ -1,6 +1,6 @@
 package com.doumee.core.haikang.model.param.respose;
 
-import com.doumee.core.haikang.model.param.request.AuthItemListTimeRequest;
+import com.doumee.core.haikang.model.param.request.TimeRangeRequest;
 import lombok.Data;
 
 @Data
@@ -10,14 +10,14 @@
   private String resourceIndexCode;//	string	False	璧勬簮鐨勫敮涓�鏍囪瘑
   private Integer channelNo;//	number	False	閫氶亾鍙�
   private String channelIndexCode	;//string	False	璧勬簮閫氶亾鍞竴鏍囪瘑锛堝湪鏉冮檺涓嬭浇鍜岄厤缃帴鍙e叆鍙傛椂瀵瑰簲鏌ヨ鎺ュ彛浼氳繑鍥烇紝涓嶄綔涓烘煡璇㈡帴鍙g殑鏌ヨ鏉′欢锛�
-             private AuthItemListTimeRequest templateConfigInfos;//	Object[]	False	璁″垝妯℃澘淇℃伅
+  private TimeRangeRequest 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	鍚�
+ 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	鍚�
            
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/CardInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/CardInfoResponse.java
new file mode 100644
index 0000000..f1ac5aa
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/CardInfoResponse.java
@@ -0,0 +1,13 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class CardInfoResponse {
+
+
+   private String   cardNo		;//string	True	鍗″彿,8~20涓瓧绗︼紝鏀寔鏁板瓧鍜屽ぇ鍐欏瓧姣嶃�� 寤鸿鏄敱璇诲崱鍣ㄧ洿鎺ヨ鍑烘潵鐨勩�� 濡傛灉鏄笁鏂圭郴缁熷悓姝ヨ繃鏉ワ紝闇�瑕佹彁鍓嶈皟鐮斿崱鍙风殑瑙勫垯鎵�璐拱鐨勮澶囦笂鏄惁鍏煎
+   private String  personId	;//	string	True	浜哄憳ID锛屾牴鎹� 鑾峰彇浜哄憳鍒楄〃v2 鎺ュ彛鑾峰彇杩斿洖鍙傛暟personId
+   private String  orgIndexCode	;//	string	False	浜哄憳鎵�灞炵粍缁嘔ndexCode锛屼笉浼犻粯璁や娇鐢ㄦ牴缁勭粐锛�  浠庤幏鍙栫粍缁囧垪琛� 鎺ュ彛鑾峰彇杩斿洖鍙傛暟orgIndexCode
+   private Integer  cardType		;//number	False	鍗$墖绫诲瀷锛岄粯璁ゆ槸1锛欼C鍗�1锛欼C鍗�2锛欳PU鍗�3锛氳繙璺濈鍗�4锛歁鍗�
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailCardFaceResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailCardFaceResponse.java
new file mode 100644
index 0000000..3cc227f
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailCardFaceResponse.java
@@ -0,0 +1,14 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class TaskPersonDetailCardFaceResponse {
+
+
+    private List<TaskPersonDetailCardInfoResponse> cards;//		object[]	False	鍗$墖涓嬭浇璁板綍
+    private List<TaskPersonDetailFaceInfoResponse> faces;//		object[]	False 浜鸿劯涓嬭浇璁板綍
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailCardInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailCardInfoResponse.java
new file mode 100644
index 0000000..6881f83
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailCardInfoResponse.java
@@ -0,0 +1,13 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class TaskPersonDetailCardInfoResponse {
+
+
+    private  String id;//	string	False	鍗″彿
+    private  String  operatorType;//	number	False	鎿嶄綔绫诲瀷锛�1. 涓嬭浇鏉冮檺 2. 鍒犻櫎鏉冮檺
+    private  String  errorCode;//	string	False	閿欒鐮侊紝0 鈥� 鎴愬姛锛屽叾浠�- 澶辫触锛屽弬鑰冮檮褰旹.2.3 鍑哄叆鎺у埗鏉冮檺閿欒鐮�
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailFaceInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailFaceInfoResponse.java
new file mode 100644
index 0000000..183dee5
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailFaceInfoResponse.java
@@ -0,0 +1,14 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class TaskPersonDetailFaceInfoResponse {
+
+
+    private  String id;//	string	False	鍗″彿
+    private  String  operatorType;//	number	False	鎿嶄綔绫诲瀷锛�1. 涓嬭浇鏉冮檺 2. 鍒犻櫎鏉冮檺
+    private  String  errorCode;//	string	False	閿欒鐮侊紝0 鈥� 鎴愬姛锛屽叾浠�- 澶辫触锛屽弬鑰冮檮褰旹.2.3 鍑哄叆鎺у埗鏉冮檺閿欒鐮�
+    private  String errorMsg;//	string	False	閿欒鎻忚堪锛屾瘮濡傦細褰撳嚭鐜颁汉鑴搁噸澶嶏紝鎸囩汗閲嶅鏃讹紝璇ュ瓧娈佃繑鍥為噸澶嶇殑鍗″彿銆�
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailListResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailListResponse.java
new file mode 100644
index 0000000..4f9fa96
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailListResponse.java
@@ -0,0 +1,13 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class TaskPersonDetailListResponse {
+
+   private Integer  total;//	number	False	鎬绘潯鏁�
+   private List<TaskPersonDetailResponse> list;//object[]	False	璁惧閫氶亾鐨勪笅杞借褰�
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailResponse.java
new file mode 100644
index 0000000..662cb59
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TaskPersonDetailResponse.java
@@ -0,0 +1,15 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class TaskPersonDetailResponse {
+
+
+    private String  downloadResultId;//	string	False	涓嬭浇璁板綍鍞竴ID
+    private String  personId;//	string	False	浜哄憳缂栫爜
+    private String  persondownloadResult;//	string	False	涓嬭浇璁板綍鐘舵�侊紙鍙湁鎴愬姛/澶辫触鐘舵�侊紝0:鎴愬姛,1:澶辫触锛�
+    private String  downloadTime;//	string	False	涓嬭浇鏃堕棿锛岄噰鐢↖SO8601鏃堕棿鏍煎紡锛屾渶澶ч暱搴�32涓瓧绗︼紝濡�2018-09-03T17:30:08.000+08:00
+    private TaskPersonDetailCardFaceResponse personDownloadDetail;//	object	False	涓嬭浇鐨勮缁嗘弿杩�
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
index ea9dc00..3f877b7 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -156,7 +156,7 @@
         try {
             String res = HKTools.delBatchUser(JSONObject.toJSONString(param));
             TypeReference typeReference =
-                    new TypeReference< BaseResponse<OrgOrUserAddFailureResponse>>(){};
+                    new TypeReference< BaseResponse<List<UserDelResponse>>>(){};
             BaseResponse<List<UserDelResponse >> result = JSONObject.parseObject(res, typeReference.getType());
             logResult(result,"娴峰悍鎵归噺鏂板浜哄憳");
             return  result;
@@ -682,6 +682,46 @@
         }
         return  null;
     }
+    /**
+     *娴峰悍鎵归噺寮�鍗�
+     * @return
+     */
+    public  static  BaseResponse<List<CardInfoResponse>>     cardBingding(CardBingdingRequest param){
+        log.info("銆愭捣搴锋壒閲忓紑鍗°��================寮�濮�===="+JSONObject.toJSONString(param));
+        String res = null;
+        try {
+            res = HKTools.cardBingding(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse <List<CardInfoResponse>>  >(){};
+            BaseResponse<List<CardInfoResponse>>    result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鎵归噺寮�鍗�");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴锋壒閲忓紑鍗°��================澶辫触====锛歕n"+ e.getMessage());
+        }finally {
+        }
+        return  null;
+    }
+    /**
+     *娴峰悍鏌ヨ璁惧閫氶亾鐨勪汉鍛樻潈闄愪笅杞借鎯�
+     * @return
+     */
+    public  static  BaseResponse<TaskPersonDetailListResponse>  taskPersoDetail(TaskPersonDetailRequest param){
+        log.info("銆愭捣搴锋煡璇㈣澶囬�氶亾鐨勪汉鍛樻潈闄愪笅杞借鎯呫��================寮�濮�===="+JSONObject.toJSONString(param));
+        String res = null;
+        try {
+            res = HKTools.taskPersoDetail(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse <TaskPersonDetailListResponse>>(){};
+            BaseResponse<TaskPersonDetailListResponse>    result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鏌ヨ璁惧閫氶亾鐨勪汉鍛樻潈闄愪笅杞借鎯�");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴锋煡璇㈣澶囬�氶亾鐨勪汉鍛樻潈闄愪笅杞借鎯呫��================澶辫触====锛歕n"+ e.getMessage());
+        }finally {
+        }
+        return  null;
+    }
 
     private static void logResult(BaseResponse res,String name) {
         if(StringUtils.equals(res.getCode(),HKConstants.RESPONSE_SUCCEE)){
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberCard.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberCard.java
index a6e8427..cf6fa04 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberCard.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberCard.java
@@ -114,6 +114,7 @@
 
     @ApiModelProperty(value = "绫诲瀷 0鍔冲姟璁垮 1鏅�氳瀹�  2鍐呴儴浜哄憳", example = "1")
     @ExcelColumn(name="绫诲瀷 0鍔冲姟璁垮 1鏅�氳瀹�  2鍐呴儴浜哄憳")
+    @TableField(exist = false)
     private String typeName;
 
     @ApiModelProperty(value = "鍏抽敭瀛�")
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
index 0be2378..b98b2ae 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -214,6 +214,7 @@
         }
         company.setErpDate(date);
         company.setHkStatus(Constants.ZERO);
+        company.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
         return  company;
     }
     /**
@@ -236,6 +237,7 @@
         }
         company.setErpDate(date);
         company.setHkStatus(Constants.ZERO);
+        company.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
         return  company;
     }
 
@@ -282,23 +284,24 @@
             List<Member> allList = memberMapper.selectList(new QueryWrapper<Member>().lambda()
                     .eq(Member::getIsdeleted,Constants.ZERO)
                     .eq(Member::getType, Constants.memberType.internal));
-            dealUserChangeList(list,addList,updateList,delList,allList);
+            dealUserChangeList(list,addList,updateList,delList,allList,param);
             if(addList.size()>0){
                 memberMapper.insertBatchSomeColumn(addList);
                 for (Member member:addList) {
-                    dealRoleEmpower(member,param.getStartTime(), param.getEndTime());
+                    dealRoleEmpower(member );
                 }
             }
             if(updateList.size()>0){
                 for(Member c : updateList){
-                     dealRoleEmpower(c,param.getStartTime(), param.getEndTime());
+                     dealRoleEmpower(c );
                     c.setHkStatus(Constants.ZERO);
+                    c.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                     memberMapper.updateById(c);
                 }
             }
             if(delList.size()>0){
                 for (Member member:delList) {
-                    dealRoleEmpower(member,param.getStartTime(), param.getEndTime());
+                    dealRoleEmpower(member );
                 }
                 delIds = delList.stream().map(m->m.getId()).collect(Collectors.toList());
                 memberMapper.update(null,new UpdateWrapper<Member>().lambda()
@@ -311,15 +314,13 @@
         }
     }
 
-    public void dealRoleEmpower(Member member,Date startTime , Date endTime){
-        List<Integer> doorIds = null;
-        doorIds = getRoleIdByParam(member.getRoleIds(),member);
-        //濡傛灉鏈夋巿鏉冮棬绂佹暟鎹紝杩涜鐢ㄦ埛鎺堟潈鏁版嵁涓嬪彂浠诲姟鍒涘缓
-        dealMemberRoleEmpower(member,doorIds,startTime,endTime);
+   public void dealRoleEmpower(Member member ){
+        List<Integer> doorIds = getRoleIdByParam(member.getRoleIds(),member);
+        //娣诲姞浜哄憳鍗$墖鏁版嵁
+        dealMemberCard(member,new UserUpdateRequest());
     }
 
-
-    private void dealUserChangeList(List<ErpUserListResponse> list, List<Member> addList, List<Member> updateList, List<Member> delList, List<Member> allList) {
+    private void dealUserChangeList(List<ErpUserListResponse> list, List<Member> addList, List<Member> updateList, List<Member> delList, List<Member> allList,UserListRequest param) {
         Date date = new Date();
         for(ErpUserListResponse response : list){
             Company company =  new Company();
@@ -337,7 +338,7 @@
                     continue;
                 }
                 //灏佽鏂板缁勭粐瀵硅薄鏁版嵁
-                addList.add(getAddMemberModel(response,date,company));
+                addList.add(getAddMemberModel(response,date,company,param));
             }else{
                 //濡傛灉鏄洿鏂�
                 if(Constants.formatIntegerNum(response.getIsdeleted()) == Constants.ONE){
@@ -347,7 +348,7 @@
 //                    delIds.add(member.getId());
                     continue;
                 }
-                updateList.add(addUpdateMemberModel(response,member,date,company));
+                updateList.add(addUpdateMemberModel(response,member,date,company,param));
             }
         }
         if(allList!=null && allList.size()>0){
@@ -359,17 +360,18 @@
         }
     }
 
-    private Member getAddMemberModel(ErpUserListResponse param, Date date,Company company) {
+    private Member getAddMemberModel(ErpUserListResponse param, Date date,Company company,UserListRequest request) {
         Member member = new Member();
         BeanUtils.copyProperties(param,member);
-        member.setCreateDate(new Date());
+        member.setCreateDate(date);
         if(StringUtils.isBlank(param.getFaceImg())){
             member.setHkStatus(Constants.THREE);
         }else{
             member.setHkStatus(Constants.ZERO);
+            member.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
         }
         member.setErpStatus(Constants.ONE);
-        member.setErpDate(new Date());
+        member.setErpDate(date);
         member.setErpId(param.getId());
         member.setIdcardType(param.getIdType());
         member.setFsStatus(Constants.ZERO);
@@ -381,20 +383,25 @@
         member.setRoleIds(param.getRoleIds());
         member.setCompanyId(Objects.isNull(company)?null:company.getId());
         member.setErpOrgId(param.getOrgId());
+        member.setStartTime(request.getStartTime());
+        member.setEndTime(request.getEndTime());
         return  member;
     }
 
-    private Member addUpdateMemberModel(ErpUserListResponse param, Member member, Date date,Company company) {
+    private Member addUpdateMemberModel(ErpUserListResponse param, Member member, Date date,Company company,UserListRequest request) {
         BeanUtils.copyProperties(param,member);
         String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo());
         member.setIdcardNo(encryptIdNo);
         member.setIdcardDecode(Constants.getTuominStr(param.getIdNo()));
         member.setErpOrgId(param.getOrgId());
-        member.setEditDate(new Date());
+        member.setEditDate(date);
         member.setStatus(param.getStatus());
-        member.setErpDate(new Date());
+        member.setErpDate(date);
         member.setHkStatus(Constants.ZERO);
+        member.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
         member.setRoleIds(param.getRoleIds());
+        member.setStartTime(request.getStartTime());
+        member.setEndTime(request.getEndTime());
         member.setCompanyId(Objects.isNull(company)?null:company.getId());
         member.setErpOrgId(param.getOrgId());
         return  member;
@@ -749,6 +756,7 @@
                 company.setId(null);
                 company.setCreateDate(new Date());
                 company.setHkStatus(Constants.ZERO);
+                company.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                 company.setErpStatus(Constants.ONE);
                 company.setErpDate(new Date());
                 company.setName(param.getName());
@@ -773,6 +781,7 @@
                     company.setHkId(rootOrgId);
                 }*/
                 company.setHkStatus(Constants.ZERO);
+                company.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                 company.setErpDate(new Date());
                 company.setName(param.getName());
                 company.setErpParentId(param.getParentId());
@@ -816,43 +825,41 @@
                 BeanUtils.copyProperties(param,member);
                 member.setId(null);
                 member.setCreateDate(new Date());
+                  member.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                 member.setHkStatus(Constants.ZERO);
                 member.setErpStatus(Constants.ONE);
                 member.setErpDate(new Date());
                 member.setErpId(param.getId());
                 member.setFsStatus(Constants.ZERO);
+                member.setCompanyId(company.getId());
                 member.setType(Constants.memberType.internal);
                 String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo());
                 member.setIdcardNo(encryptIdNo);
                 member.setStartTime(param.getValidStartTime());
+                member.setRoleId(param.getRoleIds()!=null?JSONObject.toJSONString(param.getRoleIds()):null);
                 member.setEndTime(param.getValidEndTime());
                 member.setIdcardDecode(Constants.getTuominStr(param.getIdNo()));
                 member.setErpOrgId(param.getOrgId());
-                doorIds = getRoleIdByParam(param.getRoleIds(),member);
                 memberMapper.insert(member);
-                //TODO 娴峰悍鏁版嵁鍒涘缓-------------淇敼-------------------
             }else{
                 Integer id = member.getId();
                 BeanUtils.copyProperties(param,member);
                 member.setId(id);
+                member.setCompanyId(company.getId());
                 String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo());
                 member.setIdcardNo(encryptIdNo);
                 member.setIdcardDecode(Constants.getTuominStr(param.getIdNo()));
                 member.setErpOrgId(param.getOrgId());
                 member.setEditDate(new Date());
-                doorIds = getRoleIdByParam(param.getRoleIds(),member);
                 member.setErpDate(new Date());
                 member.setHkStatus(Constants.ZERO);
+                member.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                 member.setStartTime(param.getValidStartTime());
                 member.setEndTime(param.getValidEndTime());
                 memberMapper.updateById(member);
-                //鍒犻櫎鐢ㄦ埛鍗$墖鏁版嵁  浜哄憳瑙掕壊鍏宠仈
-                memberCardMapper.delete(new QueryWrapper<MemberCard>().lambda().eq(MemberCard::getMemberId,member.getId()));
-                //TODO 娴峰悍鏁版嵁鏇存柊
             }
-            //濡傛灉鏈夋巿鏉冮棬绂佹暟鎹紝杩涜鐢ㄦ埛鎺堟潈鏁版嵁涓嬪彂浠诲姟鍒涘缓
-            dealMemberRoleEmpower(member,doorIds,param.getValidStartTime(),param.getValidEndTime());
             //娣诲姞浜哄憳鍗$墖鏁版嵁
+            getRoleIdByParam(param.getRoleIds(),member);
             dealMemberCard(member,param);
         }catch (BusinessException e){
             throw e;
@@ -867,69 +874,45 @@
      * @param param
      */
     private void dealMemberCard(Member member, UserUpdateRequest param) {
-        if(!Objects.isNull(param.getCardList())&&param.getCardList().size()>Constants.ZERO){
-            if(CollectionUtils.isNotEmpty(param.getCardList())){
-                List<MemberCard> memberCardList = new ArrayList<>();
-                for (String id:param.getCardList()) {
+        if(Objects.isNull(param.getCardList()) || param.getCardList().size()== Constants.ZERO){
+           param.setCardList(new ArrayList<>());
+           //濡傛灉娌℃湁鍗″彿锛岄粯璁ょ粰涓�涓崱鍙�
+           param.getCardList().add(Constants.VIRTUAL_CARD_INDEX+member.getId());
+        }
+        if(CollectionUtils.isNotEmpty(param.getCardList())){
+            List<MemberCard> memberCardList = new ArrayList<>();
+            for (String id:param.getCardList()) {
+                MemberCard model = memberCardMapper.selectOne(new QueryWrapper<MemberCard>().lambda()
+                        .eq(MemberCard::getCode,id)
+                        .eq(MemberCard::getMemberId,member.getId()));
+
+                if(model!=null && Constants.equalsInteger(model.getHkStatus(),Constants.ONE)){
+                    //濡傛灉宸茬粡寮�鍗″畬鎴�,涓嶅仛浠讳綍澶勭悊
+                }else if(model !=null){
+                    //濡傛灉瀛樺湪锛屼絾鏈紑鍗★紝鍒欑洿鎺ユ洿鏀逛负寰呭悓姝�
+                    model.setHkStatus(Constants.ZERO);
+                    model.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
+                    model.setIsdeleted(Constants.ZERO);
+                    memberCardMapper.updateById(model);
+                }else{
                     MemberCard memberCard = new MemberCard();
                     memberCard.setCreateDate(new Date());
+                    memberCard.setStatus(Constants.ONE);
                     memberCard.setMemberId(member.getId());
                     memberCard.setIsdeleted(Constants.ZERO);
+                    memberCard.setCardType(HKConstants.CARD_TYPE.NORMAL.getKey());
+                    memberCard.setHkStatus(Constants.ZERO);
+                    memberCard.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
+                    memberCard.setType(Constants.TWO);
                     memberCard.setCode(id);
                     memberCardList.add(memberCard);
                 }
+            }
+            if(memberCardList.size()>0){
                 memberCardMapper.insertBatchSomeColumn(memberCardList);
             }
         }
     }
-    /**
-     * //濡傛灉鏈夋巿鏉冮棬绂佹暟鎹紝杩涜鐢ㄦ埛鎺堟潈鏁版嵁涓嬪彂浠诲姟鍒涘缓
-     * @param member
-     */
-    private void dealMemberRoleEmpower(Member member, List<Integer> doorIds,Date startTime,Date endTime ) {
-        //鍒犻櫎鎵�鏈夎�佺殑鎺堟潈淇℃伅
-        if(!Objects.isNull(member)&&!Objects.isNull(member.getId())){
-            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())
-//                );
-        if(doorIds==null || doorIds.size() == 0){
-          return;
-        }
-        if(StringUtils.isBlank(member.getFaceImg())){
-          return;
-        }
-        if(Constants.equalsObject(member.getHkStatus(),Constants.ONE)){
-            //濡傛灉鐢ㄦ埛鏄悓姝ユ捣搴锋垚鍔燂紝娣诲姞甯︿笅鍙戞潈闄�
-            List<Empower> list = new ArrayList<>();
-            List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,doorIds));
-            if(deviceList == null || deviceList.size() == 0){
-                return;
-            }
-            for (Device deviceRole:deviceList) {
-                Empower model = new Empower();
-                model.setCreateDate(new Date());
-                model.setMemberId(member.getId());
-                model.setIsdeleted(Constants.ZERO);
-                model.setDeviceId(deviceRole.getId());
-                model.setSendStatus(Constants.ZERO);
-                model.setStartTime(startTime);
-                model.setEndTime(endTime);
-                //榛樿缁欎簬铏氭嫙鍗�
-                model.setCardNos(Constants.VIRTUAL_CARD_INDEX+member.getId());
-                model.setSendType(Constants.ZERO);
-                list.add(model);
-            }
-            //瀵煎叆鏂板鐨勬巿鏉冧俊鎭�
-            empowerMapper.insertBatchSomeColumn(list);
-        }
-    }
-
     private   List<Integer>  getRoleIdByParam(Integer[] param, Member member) {
         //娣诲姞浜哄憳瑙掕壊鍏宠仈鏁版嵁
         if(!Objects.isNull(member)&&!Objects.isNull(member.getId())){
@@ -994,11 +977,12 @@
         update.setEditDate(new Date());
         update.setStartTime(param.getValidStartTime());
         update.setEndTime(param.getValidEndTime());
+        update.setHkStatus(Constants.ZERO);//鍋氫竴閬嶆洿鏂伴�昏緫
+        update.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
         memberMapper.updateById(update);
-        //濡傛灉鏈夋巿鏉冮棬绂佹暟鎹紝杩涜鐢ㄦ埛鎺堟潈鏁版嵁涓嬪彂浠诲姟鍒涘缓
-        dealMemberRoleEmpower(member,doorIds,param.getValidStartTime(),param.getValidEndTime());
-
     }
+
+
     @Override
     public void parkCarAuthor(CarAuthorRequest param){
         if(Objects.isNull(param)
@@ -1031,6 +1015,7 @@
                 parkBook.setTimeType(Objects.isNull(param.getValidEndTime())?Constants.ZERO:Constants.ONE);
                 parkBook.setMemberId(member.getId());
                 parkBook.setHkStatus(Constants.ZERO);
+                parkBook.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                 parkBookList.add(parkBook);
             }
             parkBookMapper.insertBatchSomeColumn(parkBookList);
@@ -1060,6 +1045,7 @@
                     i.setStatus(param.getStatus().equals(Constants.ZERO)?Constants.VisitStatus.pass:Constants.VisitStatus.noPass);
                     i.setEndCheckDate(DateUtil.StringToDate(param.getApproveDate(),"yyyy-MM-dd HH:mm:ss"));
                     i.setHkStatus(Constants.ZERO);
+                    i.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                     visitsMapper.updateById(i);
                 });
             }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
index c983ab6..1198e7a 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -144,7 +144,7 @@
 
     public  String hkTaskAddtion() {
         TaskAdditionRequest param = new TaskAdditionRequest();
-        param.setTaskType(HKConstants.TASK_TYPE.FACE.getKey());
+        param.setTaskType(HKConstants.TASK_TYPE.CARD_FACE.getKey());
         BaseResponse<TaskAdditionResponse> response = HKService.taskAddition(param);
         if(response!=null
                 && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
index 58923a5..2a30a2e 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
@@ -57,20 +57,84 @@
                return;
            }
            for(Empower c : list){
+               TaskPersonDetailRequest param = new TaskPersonDetailRequest();
+               param.setPageNo(1);
+               param.setPageSize(100);
+//               param.setPersonIds(new ArrayList<>());
+
+               param.setPersonIds(new String[]{c.getMemberHkId()});
+               param.setTaskId(c.getHkId());
+               TaskDataAdditionResourceRequest rec = new TaskDataAdditionResourceRequest();
+               rec.setResourceIndexCode(c.getDeviceIndexCode());
+               rec.setResourceType(c.getDeviceType());
+//               rec.setChannelNos(c.getDeviceChannelNo().split(","));
+               param.setResourceInfo(rec);
+               //鏌ヨ涓嬪彂鐘舵��
+               BaseResponse<TaskPersonDetailListResponse> response = HKService.taskPersoDetail(param);
+               if(response!=null
+                       && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)
+                       && response.getData()!=null
+                       && response.getData().getList() != null
+                       && response.getData().getList().size()>0 ){
+                   TaskPersonDetailResponse model = response.getData().getList().get(0);
+                   if(model != null && StringUtils.equals(model.getPersondownloadResult(),"0")){
+                       //鏇存柊宸插畬鎴愪笅杞戒换鍔�
+                       String remark = "";
+                       String cardInfo = "鍗$墖涓嬪彂澶辫触";
+                       TaskPersonDetailCardFaceResponse d = model.getPersonDownloadDetail();
+                        if(d.getCards() !=null && d.getCards().size()>0){
+                            cardInfo = "鍗$墖锛氥��" ;
+                            for(TaskPersonDetailCardInfoResponse card : d.getCards()){
+                                cardInfo +=card.getId()+" ";
+                            }
+                            cardInfo += "銆戜笅鍙戞垚鍔�";
+                        }
+                       if(d.getFaces() == null || d.getFaces().size() ==0){
+                           remark  = cardInfo+"锛� 涓嶆敮鎸佷汉鑴歌澶囷紒";
+                       }else{
+                           remark = ""+cardInfo+"锛屼汉鑴镐笅鍙戞垚鍔燂紒";
+                       }
+                       empowerMapper.update(null,new UpdateWrapper<Empower>()
+                               .lambda()
+                               .eq(Empower::getId,c.getId() )
+                               .set(Empower::getRemark,remark )
+                               .set(Empower::getSendInfo,remark )
+                               .set(Empower::getSendStatus,Constants.EmpowerStatus.pass) );
+                   }
+
+               }
+           }
+        }catch (Exception e){
+            e.printStackTrace();
+        }finally {
+            Constants.DEALING_HK_EMPOWER_DETAIL=false;
+        }
+
+    }
+    public  void syncEmpowerDetailDataOld(){
+        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.setPersonIds(new String[]{c.getMemberHkId()});
-                param.setQueryType(c.getDeviceType());
+               param.setQueryType(c.getDeviceType());
                TaskDataAdditionResourceRequest rec = new TaskDataAdditionResourceRequest();
                rec.setResourceIndexCode(c.getDeviceIndexCode());
                rec.setResourceType(c.getDeviceType());
-               rec.setChannelNos(c.getDeviceChannelNo().split(","));
+//               rec.setChannelNos(c.getDeviceChannelNo().split(","));
                List<TaskDataAdditionResourceRequest> resourceRequests = new ArrayList<>();
-
                resourceRequests.add(rec);
 //               param.setResourceInfos(resourceRequests);
                //鏌ヨ宸蹭笅杞�
@@ -85,7 +149,7 @@
                    //鏇存柊宸插畬鎴愪笅杞戒换鍔�
                    empowerMapper.update(null,new UpdateWrapper<Empower>()
                            .lambda()
-                           .eq(Empower::getHkId,c.getHkId() )
+                           .eq(Empower::getId,c.getId() )
                            .set(Empower::getSendStatus,Constants.EmpowerStatus.pass) );
                }
            }
@@ -151,7 +215,7 @@
         try {
             //鍏堝垹闄ゆ墍鏈夐渶瑕佸彇娑堟巿鏉冪殑鏁版嵁
             dealDelListTask(getDealList(Constants.ONE));
-            //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑鏁版嵁
+            //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑鏁版嵁,閲嶆柊涓嬪彂鏈�鏂颁汉鍛樻潈闄愬嵆鍙�
             dealNewListTask(getDealList(Constants.ZERO));
         }catch (Exception e){
             e.printStackTrace();
@@ -188,6 +252,7 @@
                 update.setEditDate(date);
                 update.setHkId(taskId);
                 update.setRemark(status?"涓嬪彂浠诲姟鎵ц鎴愬姛":"涓嬪彂浠诲姟鎵ц澶辫触");
+                update.setSendInfo(status?"涓嬪彂浠诲姟鎵ц鎴愬姛":"涓嬪彂浠诲姟鎵ц澶辫触");
                 //涓嬪彂涓�
                 update.setSendStatus(status?Constants.EmpowerStatus.ing:Constants.EmpowerStatus.fail);
                 empowerMapper.updateById(update);
@@ -200,7 +265,8 @@
             update.setEditDate(date);
             update.setHkId(taskId);
             update.setSendStatus(Constants.EmpowerStatus.fail);
-//            update.setRemark( "娣诲姞涓嬪彂浠诲姟鏁版嵁鍒櫎鎺堟潈澶辫触");
+            update.setSendInfo( "娣诲姞涓嬪彂浠诲姟鏁版嵁鍒櫎鎺堟潈澶辫触");
+            update.setRemark( "娣诲姞涓嬪彂浠诲姟鏁版嵁鍒櫎鎺堟潈澶辫触");
             empowerMapper.updateById(update);
         }
     }
@@ -234,6 +300,7 @@
                 update.setEditDate(date);
                 update.setHkId(taskId);
                 update.setRemark(status?"涓嬪彂浠诲姟鎴愬姛":"涓嬪彂浠诲姟澶辫触");
+                update.setSendInfo(status?"涓嬪彂浠诲姟鎴愬姛":"涓嬪彂浠诲姟澶辫触");
                 //涓嬪彂涓�
                 update.setSendStatus(status?Constants.EmpowerStatus.ing:Constants.EmpowerStatus.fail);
                 empowerMapper.updateById(update);
@@ -248,6 +315,7 @@
             update.setHkId(taskId);
             update.setSendStatus(Constants.EmpowerStatus.fail);
             update.setRemark( "娣诲姞涓嬪彂浠诲姟鏁版嵁澶辫触");
+            update.setSendInfo( "娣诲姞涓嬪彂浠诲姟鏁版嵁澶辫触");
             empowerMapper.updateById(update);
         }
 
@@ -272,6 +340,7 @@
                 ||StringUtils.isBlank(c.getDeviceType())
                 ||StringUtils.isBlank(c.getDeviceIndexCode())){
             //蹇呭~鍙傛暟鏍¢獙
+            c.setSendInfo("璁惧淇℃伅涓嶆敮鎸佹巿鏉冧笅鍙戯紝妫�鏌ヤ汉鍛樻槸鍚﹀凡涓嬪彂娴峰悍鎴栬�呰澶囨槸鍚︺�愯澶囩被鍨嬨�侀�氶亾鍙枫�戞槸鍚﹀畬鍠�");
             c.setRemark("璁惧淇℃伅涓嶆敮鎸佹巿鏉冧笅鍙戯紝妫�鏌ヤ汉鍛樻槸鍚﹀凡涓嬪彂娴峰悍鎴栬�呰澶囨槸鍚︺�愯澶囩被鍨嬨�侀�氶亾鍙枫�戞槸鍚﹀畬鍠�");
             return  false;
         }
@@ -295,7 +364,7 @@
         param.setPersonInfos(personInfos);
 
         //--------------鍗$墖娣诲姞----------
-        if(StringUtils.isNotBlank(c.getCardNos())){
+      /*  if(StringUtils.isNotBlank(c.getCardNos())){
             List<TaskDataAdditionCardRequest> cards = new ArrayList<>();
             for(String s : c.getCardNos().split(",")){
                 TaskDataAdditionCardRequest tc = new TaskDataAdditionCardRequest();
@@ -305,13 +374,14 @@
                 cards.add(tc);
             }
             param.setCards(cards);
-        }
+        }*/
         BaseResponse response =  HKService.taskDataAddition(param);
         if(response!=null
                 && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)){
             return true;
         }else{
             c.setRemark("娣诲姞浜哄憳銆佽澶囬�氶亾鏉冮檺涓嬪彂鏁版嵁澶辫触"+(response!=null?response.getMsg():""));
+            c.setSendInfo("娣诲姞浜哄憳銆佽澶囬�氶亾鏉冮檺涓嬪彂鏁版嵁澶辫触"+(response!=null?response.getMsg():""));
             return  false;
         }
     }
@@ -342,6 +412,8 @@
         queryWrapper.selectAs(Device::getResourceType,Empower::getDeviceType);
         queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId);
         queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.downloaded);
+        queryWrapper.orderByAsc(Empower::getSendDate);
+        queryWrapper.isNotNull(Empower::getMemberHkId) ;
         List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper);
         return list;
     }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java
index d4654a1..2d51df3 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java
@@ -50,6 +50,8 @@
     @Autowired
     private EmpowerMapper empowerMapper;
     @Autowired
+    private MemberCardMapper memberCardMapper;
+    @Autowired
     private MemberJoinMapper memberMapper;
     @Autowired
     private ERPSyncService erpSyncService;
@@ -286,7 +288,7 @@
             //鏌ヨ鏁版嵁搴撳瓨鍦ㄧ殑鏉冮檺
             List<DeviceRole> deviceRoleList= deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda()
                     .eq(DeviceRole::getType,Constants.TWO)
-                    .exists("(select b.id from member_role b    where b.ROLE_ID = device_role.ID and b.MEMBER_ID="+member.getRoleId()+")"));
+                    .exists("(select b.id from member_role b    where b.ROLE_ID = device_role.ID and b.MEMBER_ID="+member.getId()+")"));
             if(CollectionUtils.isNotEmpty(deviceRoleList)){
                 List<MemberRole> memberRoleList = new ArrayList<>();
                 String ids = "";
@@ -318,7 +320,7 @@
             //濡傛灉娌℃湁缁勭粐涓嶅仛澶勭悊
             return  false;
         }
-        if(StringUtils.isBlank(c.getHkId())){
+        if(!Constants.equalsInteger(Constants.ONE,c.getIsdeleted()) && StringUtils.isBlank(c.getHkId())){
             //濡傛灉鏂板鍚屾鏁告摎
             dealUserHkAddBiz(c,date,path);
         }else{
@@ -328,6 +330,11 @@
         return  false;
     }
     private void dealMemberRoleEmpower(Member member ) {
+        //澶勭悊鏂板鐨勪汉鍛樺崱鐗囨暟鎹紙涓庢捣搴峰悓姝ワ級
+        List<MemberCard> cards = dealMemberHkCard(member);
+        if(cards == null || cards.size() == 0){
+            return;
+        }
         List<Integer> doorIds = getRoleIdByParam(member);
         if(doorIds==null || doorIds.size() == 0){
             return;
@@ -335,9 +342,12 @@
         if(StringUtils.isBlank(member.getFaceImg())){
             return;
         }
-        if(Constants.equalsObject(member.getHkStatus(),Constants.ONE)){
-            //濡傛灉鐢ㄦ埛鏄悓姝ユ捣搴锋垚鍔燂紝娣诲姞甯︿笅鍙戞潈闄�
-            List<Empower> list = new ArrayList<>();
+
+        List<Integer> deviceIds =new ArrayList<>();//鏂拌澶囩紪鐮侀泦鍚�
+        List<Empower> list = new ArrayList<>();//鏂版巿鏉冭褰曢泦鍚�
+        if(Constants.equalsInteger(member.getIsdeleted(),Constants.ZERO)
+                && Constants.equalsObject(member.getHkStatus(),Constants.ONE)){
+            //濡傛灉鐢ㄦ埛鏄悓姝ユ捣搴锋垚鍔燂紝娣诲姞甯︿笅鍙戞潈闄愶紙鍙鐞嗘柊澧炴垨鑰呯紪杈戠殑锛�
             List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,doorIds));
             if(deviceList == null || deviceList.size() == 0){
                 return;
@@ -349,17 +359,109 @@
                 model.setIsdeleted(Constants.ZERO);
                 model.setDeviceId(deviceRole.getId());
                 model.setSendStatus(Constants.ZERO);
+                model.setSendInfo("寰呭悓姝ュ畨闃插钩鍙�");
+                model.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                 model.setStartTime(member.getStartTime());
                 model.setEndTime(member.getEndTime());
                 //榛樿缁欎簬铏氭嫙鍗�
                 model.setCardNos(Constants.VIRTUAL_CARD_INDEX+member.getId());
                 model.setSendType(Constants.ZERO);
+                //鏍囪鏈�鏂扮殑鎺堟潈璁惧缂栫爜闆嗗悎
+                deviceIds.add(deviceRole.getId());
                 list.add(model);
             }
-            //瀵煎叆鏂板鐨勬巿鏉冧俊鎭�
+
+        }
+        //寰呯Щ闄ゆ潈闄愮殑璁惧鏁版嵁鎺堟潈璁板綍锛堥拡瀵瑰垹闄ゅ拰鏇存柊涓㈠け鐨勬潈闄愶紝闇�瑕佸悓姝ヤ笅鍙戝垹闄ゆ潈闄愶級
+        empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
+                .eq(Empower::getMemberId,member.getId())
+                .set(Empower::getIsdeleted,Constants.ONE)
+                .eq(Empower::getIsdeleted,Constants.ZERO)
+                .notIn(deviceIds.size()>0,Empower::getDeviceId,deviceIds)
+                .set(Empower::getSendStatus,Constants.ZERO));
+        //瀵煎叆鏂板鐨勬巿鏉冧俊鎭�
+        if(list.size()>0){
+            //鐩存帴瑕嗙洊閲嶅鐨勮澶囨潈闄愶紝鐩存帴鍒犻櫎鍗冲彲
+            empowerMapper.delete(new UpdateWrapper<Empower>().lambda()
+                    .eq(Empower::getMemberId,member.getId())
+                    .eq(Empower::getIsdeleted,Constants.ZERO)
+                    .in(Empower::getDeviceId,deviceIds) );
             empowerMapper.insertBatchSomeColumn(list);
         }
     }
+
+    /**
+     * 瀵逛汉鍛樺甫寮�鍗℃暟鎹繘琛岃嚜鍔ㄥ紑鍗℃搷浣�
+     * @param member
+     * @return
+     */
+    private List<MemberCard> dealMemberHkCard(Member member) {
+        List<MemberCard> memberCards = memberCardMapper.selectList(new QueryWrapper<MemberCard>().lambda()
+                .eq(MemberCard::getMemberId,member.getId())
+                .eq(MemberCard::getType,Constants.TWO)
+                .eq(MemberCard::getHkStatus,Constants.ZERO)  );
+        if(memberCards==null ||  memberCards.size()==0){
+            //娌℃湁甯﹀鐞嗙殑鏁版嵁锛岀洿鎺ヨ烦杩�
+            return    memberCardMapper.selectList(new QueryWrapper<MemberCard>().lambda()
+                    .eq(MemberCard::getMemberId,member.getId())
+                    .eq(MemberCard::getType,Constants.TWO)
+                    .eq(MemberCard::getHkStatus,Constants.ONE)  );
+        }
+
+        List<Integer> allCodes = new ArrayList<>();
+        List<String> doneCodes = new ArrayList<>();
+        CardBingdingRequest param = new CardBingdingRequest();
+        if(member.getStartTime() !=null && member.getEndTime()!=null){
+            param.setStartDate(DateUtil.getISO8601Timestamp(member.getStartTime()));
+            param.setEndDate(DateUtil.getISO8601Timestamp(member.getEndTime()));
+        }
+        param.setCardList(new ArrayList<>());
+        for(MemberCard m : memberCards){
+            allCodes.add(m.getId());
+            if(StringUtils.isBlank(m.getCode())){
+                continue;
+            }
+            CardInfoRequest cr = new CardInfoRequest();
+            cr.setCardNo(m.getCode());
+            cr.setOrgIndexCode(member.getCompanyHkId());
+            cr.setPersonId(member.getHkId());
+            cr.setCardType(m.getCardType());
+            param.getCardList().add(cr);
+        }
+
+        //澶勭悊鏂板鏁版嵁
+        BaseResponse<List<CardInfoResponse>> result =  HKService.cardBingding(param);
+        if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) ){
+            if(result.getData()!=null ){
+                for(CardInfoResponse r : result.getData()){
+                    doneCodes.add(r.getCardNo());
+                }
+            }
+        }
+        if(doneCodes.size()>0){
+            memberCardMapper.update(null,new UpdateWrapper<MemberCard>().lambda()
+                    .eq(MemberCard::getMemberId,member.getId())
+                    .eq(MemberCard::getHkStatus,Constants.ZERO)
+                    .set(MemberCard::getHkStatus,Constants.ONE)
+                    .set(MemberCard::getHkDate,new Date())
+                    .set(MemberCard::getRemark,"寮�鍗℃垚鍔�")
+                    .in(MemberCard::getCode,doneCodes));
+        }
+        memberCardMapper.update(null,new UpdateWrapper<MemberCard>().lambda()
+                .eq(MemberCard::getMemberId,member.getId())
+                .eq(MemberCard::getHkStatus,Constants.ZERO)
+                .set(MemberCard::getHkStatus,Constants.TWO)
+                .set(MemberCard::getRemark,"寮�鍗″け璐�")
+                .set(MemberCard::getHkDate,new Date())
+                .notIn(doneCodes.size()>0,MemberCard::getCode,doneCodes)
+                .in(MemberCard::getId,allCodes));
+
+       return   memberCardMapper.selectList(new QueryWrapper<MemberCard>().lambda()
+                .eq(MemberCard::getMemberId,member.getId())
+                .eq(MemberCard::getType,Constants.TWO)
+                .eq(MemberCard::getHkStatus,Constants.ONE)  );
+    }
+
     /**
      *  濡傛灉涔嬪墠宸茬粡鍜屾捣搴峰悓姝ワ紝鍒欐洿鏂扮敤鎴锋暟鎹互鍙婁汉鑴告暟鎹紙鍙兘鏂板浜鸿劯 涔熷彲鑳芥洿鏂颁汉鑴革級
      * @param c
@@ -373,6 +475,9 @@
             boolean r = doHkDeleteUser(c.getId(),c.getHkId(),date);
             c.setHkStatus(r?Constants.ONE:Constants.TWO);
             c.setRemark(r?null:"鍒犻櫎娴峰悍浜哄憳淇℃伅澶辫触锛�");
+            c.setIsdeleted(r? Constants.ONE: Constants.ZERO);//鍒犻櫎澶辫触锛屾仮澶嶆暟鎹�
+            //鍒犻櫎鎵�鏈夌粦瀹氱殑鍗$墖淇℃伅
+            memberCardMapper.delete(new QueryWrapper<MemberCard>().lambda().eq(MemberCard::getMemberId,c.getId()));
         }else{
             //澶勭悊淇敼鏁版嵁锛屽苟涓旀洿鏂颁汉鑴�
             UserAddRequest  addHkModel = getUserAddModel(c,path,1);//淇敼

--
Gitblit v1.9.3