From 909ee569d4d8bfc523cb71790a5e6f59405d78b7 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 20 二月 2024 14:01:58 +0800
Subject: [PATCH] 大屏
---
/dev/null | 699 ------------------------------
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromHKServiceImpl.java | 273 +++++++++++
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentResInfoResponse.java | 55 ++
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java | 4
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java | 19
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java | 189 ++++++++
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VisitingInfoResponse.java | 51 ++
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AppointmentListRequest.java | 13
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitingInfoRequest.java | 23 +
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentInfoResponse.java | 23 +
10 files changed, 638 insertions(+), 711 deletions(-)
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserListPageResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java
similarity index 71%
rename from server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserListPageResponse.java
rename to server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java
index 456e598..9a6c9c8 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserListPageResponse.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java
@@ -5,10 +5,10 @@
import java.util.List;
@Data
-public class OrgListPageResponse {
+public class BaseListPageResponse<T> {
private int total;// number False 鏌ヨ鏁版嵁璁板綍鎬绘暟
private int pageSize;// number False 姣忛〉璁板綍鎬绘暟
private int pageNo ;// number False 褰撳墠椤电爜
- private List<OrgListResponse> list ;// object[] False 鏉冮檺缁勫璞″垪琛�
+ private List<T> list ;// object[] False 鏉冮檺缁勫璞″垪琛�
}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AppointmentListRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AppointmentListRequest.java
new file mode 100644
index 0000000..5e10d7d
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AppointmentListRequest.java
@@ -0,0 +1,13 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class OrgUserListRequest {
+
+ private String startTime ;//string True 閽堝鏇存柊鏃堕棿鐨勬煡璇㈠紑濮嬫棩鏈燂紝IOS8601鏍煎紡锛屽弬鑰冮檮褰旴 ISO8601鏃堕棿鏍煎紡璇存槑
+ private String endTime;// string False 閽堝鏇存柊鏃堕棿鐨勬煡璇㈡埅姝㈡棩鏈燂紝IOS8601鏍煎紡锛屽弬鑰冮檮褰旴 ISO8601鏃堕棿鏍煎紡璇存槑
+ private Integer pageNo ;//integer True 椤电爜,pageNo鈮�1
+ private Integer pageSize;// integer True 鍒嗛〉澶у皬
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitingInfoRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitingInfoRequest.java
new file mode 100644
index 0000000..eba7e2e
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitingInfoRequest.java
@@ -0,0 +1,23 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class VisitingInfoResponse {
+ private String receptionistId;// string False 琚浜篒D锛屼粠 鑾峰彇浜哄憳鍒楄〃v2 鎺ュ彛鑾峰彇杩斿洖鍙傛暟personId
+ private String receptionistName ;//string False 琚浜哄鍚嶏紝鏀寔涓嫳鏂囧瓧绗︼紝涓嶈兘鍖呭惈 鈥� / \ : * ? " < >
+ private String visitorName ;//string False 璁垮濮撳悕锛岄暱搴︿笉瓒呰繃32锛屾敮鎸佷腑鑻辨枃瀛楃锛屼笉鑳藉寘鍚� 鈥� / \ : * ? " < >
+ private String phoneNo;// string False 璁垮鑱旂郴鐢佃瘽寤鸿濉啓鎵嬫満鍙风爜
+ private Integer visitorStatus;// number False 5锛氳秴鏈熻嚜鍔ㄧ绂�6锛氬凡绛剧7锛氳秴鏈熸湭绛剧8锛氬凡鍒拌揪
+ private String visitStartTimeBegin;// string False 鏉ヨ鏃堕棿鏌ヨ鏃堕棿娈垫潯浠剁殑寮�濮嬫椂闂达紝鏃堕棿鍙傛暟闇�婊¤冻ISO8601鏍煎紡锛�
+ private String visitStartTimeEnd;// string False 鏉ヨ鏃堕棿鏌ヨ鏃堕棿娈垫潯浠剁殑缁撴潫鏃堕棿锛屾椂闂村弬鏁伴渶婊¤冻ISO8601鏍煎紡锛歽yyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛�
+ private String visitEndTimeBegin;// string False 绂诲紑鏃堕棿鏌ヨ鏃堕棿娈垫潯浠剁殑寮�濮嬫椂闂达紝鏃堕棿鍙傛暟闇�婊¤冻ISO8601鏍煎紡锛�
+ private String visitEndTimeEnd ;//string False 绂诲紑鏃堕棿鏌ヨ鏃堕棿娈垫潯浠剁殑缁撴潫鏃堕棿锛屾椂闂村弬鏁伴渶婊¤冻ISO8601鏍煎紡锛歽yyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛�
+ private Integer pageNo ;//number True pageNo瑕佹眰澶т簬0涓嶈秴杩�2147483647
+ private Integer pageSize;// number True pageSize瑕佹眰澶т簬0涓斾笉瓒呰繃1000
+ private String cardNo ;//string False 鍗″彿锛�8-20浣嶆暟瀛椼�佸ぇ鍐欏瓧姣�
+ private String orderId ;//string False 璁垮璁板綍ID
+ private String QRCode ;//string False 璁垮浜岀淮鐮佸唴瀹�,鏀寔鍔ㄦ�佷簩缁寸爜鎴栧巻鍙茬増鏈帴鍙h繑鍥炵殑闈欐�佷簩缁寸爜
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentInfoResponse.java
new file mode 100644
index 0000000..dacd650
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentInfoResponse.java
@@ -0,0 +1,23 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class UserInfoResponse {
+
+private String personId ;//string False 浜哄憳ID
+private String personName ;//string False 濮撳悕
+private Integer gender ;//number False
+private String orgIndexCode;// string False 鎵�灞炵粍缁囧敮涓�鏍囪瘑鐮�
+private String phoneNo;// string False 鑱旂郴鐢佃瘽
+private String jobNo;// string False 宸ュ彿
+private Integer certificateType;// number False 璇佷欢绫诲瀷111:韬唤璇�414:鎶ょ収113:鎴峰彛绨�335:椹鹃┒璇�131:宸ヤ綔璇�133:瀛︾敓璇�990:鍏朵粬 ;
+private String certificateNo ;//string False 璇佷欢鍙风爜 涓�涓叉暟瀛楀瓧绗︿覆
+private String createTime ;//string False 鍒涘缓鏃堕棿 瑕佹眰閬靛畧ISO8601鏍囧噯锛屽2018-07-26T21:30:08.000+08:00 琛ㄧず鍖椾含鏃堕棿2017骞�7鏈�26鏃�21鏃�30鍒�08绉�
+private String updateTime;// string False 鏇存柊鏃堕棿 瑕佹眰閬靛畧ISO8601鏍囧噯锛屽2018-07-26T21:30:08.000+08:00 琛ㄧず鍖椾含鏃堕棿2017骞�7鏈�26鏃�21鏃�30鍒�08绉�
+private String orgPath;// string False 鎵�灞炵粍缁囩洰褰曪紝@杩涜鍒嗗壊锛屼緥濡� @root000000@
+private String orgPathName;// string False 鎵�灞炵粍缁囧悕绉帮紝@杩涜鍒嗗壊锛屽@榛樿閮ㄩ棬@
+private List<UserPhotoResponse> personPhoto;// object False 浜哄憳鍥剧墖淇℃伅
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentResInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentResInfoResponse.java
new file mode 100644
index 0000000..00ce369
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentResInfoResponse.java
@@ -0,0 +1,55 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+@Data
+public class AppointmentInfoResponse {
+
+
+ private String appointRecordId ;//string False 棰勭害璁板綍ID锛屽彲浣滀负淇敼棰勭害鐨勪緷鎹�
+private String receptionistId ;//string False 琚浜哄敮涓�鏍囪瘑
+private String receptionistName ;//string False 琚浜哄鍚嶏紝鏀寔涓嫳鏂囧瓧绗︼紝涓嶈兘鍖呭惈 鈥� / \ : * ? " < >
+ private String receptionistCode ;//string False 琚浜烘墍灞炵粍缁囩紪鐮�
+private String visitStartTime ;//string False 鏃堕棿鍙傛暟闇�婊¤冻ISO8601鏍煎紡锛� yyyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛�
+ private String visitEndTime ;//string False 鏃堕棿鍙傛暟闇�婊¤冻ISO8601鏍煎紡锛� yyyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛� 棰勮绂诲紑鏃堕棿蹇呴』鏅氫簬褰撳墠鏃堕棿鍜岄璁℃潵璁挎椂闂�
+private String visitPurpose ;//string False 鏉ヨ浜嬬敱
+private String visitorName ;//string False 璁垮濮撳悕
+private String visitorWorkUnit ;//string False 鏉ヨ鍗曚綅
+private String visitorAddress ;//string False 璁垮浣忓潃
+private String visitorId ;//string False 璁垮Id
+private String verificationCode ;//string False 璁垮楠岃瘉鐮侊紝鐢ㄤ簬璁垮鍦ㄨ瀹㈡満鐧昏鐨勫嚟璇�
+private String QRCode ;//string False 鍔ㄦ�佷簩缁寸爜锛屽闇�瑕佷娇鐢紝鍙皢璁垮浜岀淮鐮佸唴瀹硅浆鎴愪簩缁寸爜鍥剧墖鍗冲彲
+private Integer gender;// integer False 1-鐢�, 2-濂�
+private String phoneNo ;//string False 鑱旂郴鐢佃瘽寤鸿濉啓鎵嬫満鍙风爜锛屼粎鏀寔绾暟瀛椼��
+ private String plateNo ;//string False 璁垮杞︾墝鍙�
+private Integer certificateType ;// integer False 璇佷欢绫诲瀷锛岃瑙侀檮褰旳.11 璇佷欢绫诲瀷
+private String certificateNo ;//string False 璇佷欢鍙凤紝鏍煎紡涓猴細1~20涓暟瀛椼�佸瓧姣嶇粍鎴�
+private String picUri ;//string False 杩斿洖鍥剧墖鐨勭浉瀵筓ri锛涢渶瑕佽皟鐢ㄨ幏鍙栬瀹㈣褰曚腑鐨勫浘鐗囨帴鍙o紝鏉ヨ幏鍙栧浘鐗囩殑鏁版嵁
+private String svrIndexCode ;//string False 涓巔icUri閰嶅杈撳嚭鐨勫瓧娈典俊鎭紝鐢ㄤ簬鈥滆幏鍙栬瀹㈣褰曠殑鍥剧墖鈥濇帴鍙g殑杈撳叆鍙傛暟
+ /**
+ * 璁垮鍗曠姸鎬�,
+ * 0:寰呭鏍搞��
+ * 1锛氭甯搞��
+ * 2锛氳繜鍒般��
+ * 3锛氬け鏁堛��
+ * 4锛氬鏍搁��鍥炪��
+ * 9锛氬鏍稿け鏁堛��
+ * 10锛氶個绾︿腑銆�
+ * 11:閭�绾﹀け鏁�
+ */
+ private Integer visitorStatus ;//integer False
+
+
+private String certAddr ;//string False 璇佷欢鍦板潃
+private String certIssuer ;//string False 鍙戣瘉鏈哄叧
+private Integer nation ;//integer False
+private String birthplace ;//string False 绫嶈疮
+private String orderId ;//string False 璁垮璁板綍鍞竴鏍囪瘑锛岀敤浜庡凡棰勭害鐧昏銆佽瀹㈢绂荤瓑鎿嶄綔
+private List<Map<String,Object>> designatedResources;// object False 鏉冮檺涓嬪彂鎸囧畾鐨勮祫婧愮偣闆嗗悎
+private String[] privilegeGroupNames;// string[] False 鏉冮檺缁勫悕绉伴泦鍚�
+private String identityUri ;//string False 璇佷欢鐓�,鍥剧墖鐨勭浉瀵筓RL
+private String identitySvrCode ;//string False 璇佷欢鐓у搴斿浘鐗囨湇鍔″櫒serviceNodes
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgListPageResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgListPageResponse.java
deleted file mode 100644
index 2696169..0000000
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgListPageResponse.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.doumee.core.haikang.model.param.respose;
-
-import lombok.Data;
-
-@Data
-public class OrgListResponse {
-
- private String orgIndexCode;// 缁勭粐鍞竴鏍囪瘑鐮侊紙鏈�澶ч暱搴�64锛�
- private String orgNo ;//string False 缁勭粐缂栧彿锛堟渶澶ч暱搴�64锛�
- private String orgName;// string False 缁勭粐鍚嶇О锛堟渶澶ч暱搴�64锛� 褰撳墠缁勭粐鐨勫悕绉帮紝濡傞粯璁ら儴闂�
- private String orgPath ;//string False 缁勭粐鐩綍锛堟渶澶ч暱搴�64锛� 渚嬪锛氶粯璁ら儴闂�/缁煎悎瀹夐槻/寮�鍙戝皬缁�
- private String parentOrgIndexCode;// string False 鐖剁粍缁囧敮涓�鏍囪瘑鐮侊紙鏈�澶ч暱搴�64锛�
- private String parentOrgName;// string False 鐖剁粍缁囧悕绉帮紙鏈�澶ч暱搴�64锛�
- private String updateTime;// string False 鏇存柊鏃堕棿 瑕佹眰閬靛畧ISO8601鏍囧噯锛屽2018-07-26T21:30:08+08:00琛ㄧず鍖椾含鏃堕棿2017骞�7鏈�26鏃�21鏃�30鍒�08绉�
-}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgTimeRangetListPageResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgTimeRangetListPageResponse.java
deleted file mode 100644
index bf32b1e..0000000
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/OrgTimeRangetListPageResponse.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.doumee.core.haikang.model.param.respose;
-
-import lombok.Data;
-
-import java.util.List;
-
-@Data
-public class OrgTimeRangetListPageResponse {
-
- private int total;// number False 鏌ヨ鏁版嵁璁板綍鎬绘暟
- private int pageSize;// number False 姣忛〉璁板綍鎬绘暟
- private int pageNo ;// number False 褰撳墠椤电爜
- private List<OrgInfoResponse> list ;// object[] False 鏉冮檺缁勫璞″垪琛�
-}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserTimeRangeListPageResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserTimeRangeListPageResponse.java
deleted file mode 100644
index f4bcb1c..0000000
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/UserTimeRangeListPageResponse.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.doumee.core.haikang.model.param.respose;
-
-import lombok.Data;
-
-import java.util.List;
-
-@Data
-public class UserListPageResponse {
-
- private int total;// number False 鏌ヨ鏁版嵁璁板綍鎬绘暟
- private int pageSize;// number False 姣忛〉璁板綍鎬绘暟
- private int pageNo ;// number False 褰撳墠椤电爜
- private List<UserInfoResponse> list ;// object[] False 鏉冮檺缁勫璞″垪琛�
-}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VisitingInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VisitingInfoResponse.java
new file mode 100644
index 0000000..3f098bf
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VisitingInfoResponse.java
@@ -0,0 +1,51 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+@Data
+public class AppointmentInfoResponse {
+ private String appointRecordId ;//string False 棰勭害璁板綍ID锛屽彲浣滀负淇敼棰勭害鐨勪緷鎹�
+ private String receptionistId ;//string False 琚浜哄敮涓�鏍囪瘑
+ private String receptionistName ;//string False 琚浜哄鍚嶏紝鏀寔涓嫳鏂囧瓧绗︼紝涓嶈兘鍖呭惈 鈥� / \ : * ? " < >
+ private String receptionistCode ;//string False 琚浜烘墍灞炵粍缁囩紪鐮�
+ private String visitStartTime ;//string False 鏃堕棿鍙傛暟闇�婊¤冻ISO8601鏍煎紡锛� yyyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛�
+ private String visitEndTime ;//string False 鏃堕棿鍙傛暟闇�婊¤冻ISO8601鏍煎紡锛� yyyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛� 棰勮绂诲紑鏃堕棿蹇呴』鏅氫簬褰撳墠鏃堕棿鍜岄璁℃潵璁挎椂闂�
+ private String visitPurpose ;//string False 鏉ヨ浜嬬敱
+ private String visitorName ;//string False 璁垮濮撳悕
+ private String visitorWorkUnit ;//string False 鏉ヨ鍗曚綅
+ private String visitorAddress ;//string False 璁垮浣忓潃
+ private String visitorId ;//string False 璁垮Id
+ private String verificationCode ;//string False 璁垮楠岃瘉鐮侊紝鐢ㄤ簬璁垮鍦ㄨ瀹㈡満鐧昏鐨勫嚟璇�
+ private String QRCode ;//string False 鍔ㄦ�佷簩缁寸爜锛屽闇�瑕佷娇鐢紝鍙皢璁垮浜岀淮鐮佸唴瀹硅浆鎴愪簩缁寸爜鍥剧墖鍗冲彲
+ private Integer gender;// integer False 1-鐢�, 2-濂�
+ private String phoneNo ;//string False 鑱旂郴鐢佃瘽寤鸿濉啓鎵嬫満鍙风爜锛屼粎鏀寔绾暟瀛椼��
+ private String plateNo ;//string False 璁垮杞︾墝鍙�
+ private Integer certificateType ;// integer False 璇佷欢绫诲瀷锛岃瑙侀檮褰旳.11 璇佷欢绫诲瀷
+ private String certificateNo ;//string False 璇佷欢鍙凤紝鏍煎紡涓猴細1~20涓暟瀛椼�佸瓧姣嶇粍鎴�
+ private String picUri ;//string False 杩斿洖鍥剧墖鐨勭浉瀵筓ri锛涢渶瑕佽皟鐢ㄨ幏鍙栬瀹㈣褰曚腑鐨勫浘鐗囨帴鍙o紝鏉ヨ幏鍙栧浘鐗囩殑鏁版嵁
+ private String svrIndexCode ;//string False 涓巔icUri閰嶅杈撳嚭鐨勫瓧娈典俊鎭紝鐢ㄤ簬鈥滆幏鍙栬瀹㈣褰曠殑鍥剧墖鈥濇帴鍙g殑杈撳叆鍙傛暟
+ /**
+ * 璁垮鍗曠姸鎬�,
+ * 0:寰呭鏍搞��
+ * 1锛氭甯搞��
+ * 2锛氳繜鍒般��
+ * 3锛氬け鏁堛��
+ * 4锛氬鏍搁��鍥炪��
+ * 9锛氬鏍稿け鏁堛��
+ * 10锛氶個绾︿腑銆�
+ * 11:閭�绾﹀け鏁�
+ */
+ private Integer visitorStatus ;//integer False
+ private String certAddr ;//string False 璇佷欢鍦板潃
+ private String certIssuer ;//string False 鍙戣瘉鏈哄叧
+ private Integer nation ;//integer False
+ private String birthplace ;//string False 绫嶈疮
+ private String orderId ;//string False 璁垮璁板綍鍞竴鏍囪瘑锛岀敤浜庡凡棰勭害鐧昏銆佽瀹㈢绂荤瓑鎿嶄綔
+ private List<AppointmentResInfoResponse> designatedResources;// object False 鏉冮檺涓嬪彂鎸囧畾鐨勮祫婧愮偣闆嗗悎
+ private String[] privilegeGroupNames;// string[] False 鏉冮檺缁勫悕绉伴泦鍚�
+ private String identityUri ;//string False 璇佷欢鐓�,鍥剧墖鐨勭浉瀵筓RL
+ private String identitySvrCode ;//string False 璇佷欢鐓у搴斿浘鐗囨湇鍔″櫒serviceNodes
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserFERPServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
similarity index 97%
rename from server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserFERPServiceImpl.java
rename to server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
index faa89fe..299175e 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserFERPServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
@@ -3,12 +3,11 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.config.DataSyncConfig;
import com.doumee.core.constants.ResponseStatus;
-import com.doumee.core.erp.model.openapi.request.UserUpdateRequest;
import com.doumee.core.erp.model.openapi.request.erp.UserFailRequest;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.haikang.model.HKConstants;
-import com.doumee.core.haikang.model.HKTools;
import com.doumee.core.haikang.model.param.BaseResponse;
import com.doumee.core.haikang.model.param.request.*;
import com.doumee.core.haikang.model.param.respose.*;
@@ -18,12 +17,10 @@
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.ImageBase64Util;
import com.doumee.dao.business.*;
-import com.doumee.dao.business.join.CompanyJoinMapper;
import com.doumee.dao.business.join.MemberJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.service.business.ERPSyncService;
import com.doumee.service.business.impl.hksync.HkSyncBaseServiceImpl;
-import com.github.yulichang.query.MPJQueryWrapper;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
@@ -41,7 +38,7 @@
*/
@Service
@Slf4j
-public class HkSyncOrgUserServiceImpl extends HkSyncBaseServiceImpl {
+public class HkSyncOrgUserFERPServiceImpl extends HkSyncBaseServiceImpl {
@Autowired
private CompanyMapper companyMapper;
@@ -61,13 +58,15 @@
private ERPSyncService erpSyncService;
@Autowired
private SystemDictDataBiz systemDictDataBiz;
+ @Autowired
+ private DataSyncConfig dataSyncConfig;
/**
* 鍚屾娴峰悍缁勭粐淇℃伅,鏍规嵁erp鍚屾缁勭粐缁撴灉锛屽畾鏃舵鏌ラ渶瑕佷笅鍙戝埌娴峰悍鐨勭粍缁囦俊鎭�
*/
@Override
public void syncOrgData(){
- if(Constants.DEALING_HK_ORG){
+ if(Constants.DEALING_HK_ORG || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.erp){
return ;
}
Constants.DEALING_HK_ORG =true;
@@ -258,7 +257,7 @@
*/
@Override
public void syncUserData(){
- if(Constants.DEALING_HK_USER){
+ if(Constants.DEALING_HK_USER || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.erp){
return ;
}
Constants.DEALING_HK_USER =true;
@@ -266,7 +265,7 @@
//鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑浼佷笟鏁版嵁
List<Member> list = memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
.selectAll(Member.class )
- .selectAs(Company::getHkId,Member::getCompanyHkId)
+ .selectAs(Company::getHkId,Member::getHkOrgId)
.isNotNull(Member::getFaceImg)
.leftJoin(Company.class,Company::getId,Member::getCompanyId)
.eq(Member::getHkStatus,Constants.ZERO)
@@ -426,7 +425,7 @@
}
CardInfoRequest cr = new CardInfoRequest();
cr.setCardNo(m.getCode());
- cr.setOrgIndexCode(member.getCompanyHkId());
+ cr.setOrgIndexCode(member.getHkOrgId());
cr.setPersonId(member.getHkId());
cr.setCardType(m.getType());
param.getCardList().add(cr);
@@ -648,7 +647,7 @@
private UserAddRequest getUserAddModel(Member c,String path,int type) {
UserAddRequest model = new UserAddRequest();
- model.setOrgIndexCode(c.getCompanyHkId());
+ model.setOrgIndexCode(c.getHkOrgId());
model.setJobNo(c.getCode());
model.setCertificateNo(DESUtil.decrypt(Constants.EDS_PWD, c.getIdcardNo()));
model.setCertificateType(HKConstants.CertificateType.SHENFENZHENG.getKey()+"");
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFHKServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFHKServiceImpl.java
deleted file mode 100644
index faa89fe..0000000
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFHKServiceImpl.java
+++ /dev/null
@@ -1,699 +0,0 @@
-package com.doumee.service.business.impl.hksync.ferp;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.doumee.biz.system.SystemDictDataBiz;
-import com.doumee.core.constants.ResponseStatus;
-import com.doumee.core.erp.model.openapi.request.UserUpdateRequest;
-import com.doumee.core.erp.model.openapi.request.erp.UserFailRequest;
-import com.doumee.core.exception.BusinessException;
-import com.doumee.core.haikang.model.HKConstants;
-import com.doumee.core.haikang.model.HKTools;
-import com.doumee.core.haikang.model.param.BaseResponse;
-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.DESUtil;
-import com.doumee.core.utils.DateUtil;
-import com.doumee.core.utils.ImageBase64Util;
-import com.doumee.dao.business.*;
-import com.doumee.dao.business.join.CompanyJoinMapper;
-import com.doumee.dao.business.join.MemberJoinMapper;
-import com.doumee.dao.business.model.*;
-import com.doumee.service.business.ERPSyncService;
-import com.doumee.service.business.impl.hksync.HkSyncBaseServiceImpl;
-import com.github.yulichang.query.MPJQueryWrapper;
-import com.github.yulichang.wrapper.MPJLambdaWrapper;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.*;
-
-/**
- * 娴峰悍缁勭粐浜哄憳閫氳繃姝ervice瀹炵幇
- * @author 姹熻箘韫�
- * @date 2023/11/30 15:33
- */
-@Service
-@Slf4j
-public class HkSyncOrgUserServiceImpl extends HkSyncBaseServiceImpl {
- @Autowired
- private CompanyMapper companyMapper;
-
- @Autowired
- private MemberRoleMapper memberRoleMapper;
- @Autowired
- private DeviceRoleMapper deviceRoleMapper;
- @Autowired
- private DeviceMapper deviceMapper;
- @Autowired
- private EmpowerMapper empowerMapper;
- @Autowired
- private MemberCardMapper memberCardMapper;
- @Autowired
- private MemberJoinMapper memberMapper;
- @Autowired
- private ERPSyncService erpSyncService;
- @Autowired
- private SystemDictDataBiz systemDictDataBiz;
-
- /**
- * 鍚屾娴峰悍缁勭粐淇℃伅,鏍规嵁erp鍚屾缁勭粐缁撴灉锛屽畾鏃舵鏌ラ渶瑕佷笅鍙戝埌娴峰悍鐨勭粍缁囦俊鎭�
- */
- @Override
- public void syncOrgData(){
- if(Constants.DEALING_HK_ORG){
- return ;
- }
- Constants.DEALING_HK_ORG =true;
- try {
- //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑浼佷笟鏁版嵁
- String rootOrgId = systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_ROOTORG_CODE).getCode();
- List<Company> list = companyMapper.selectList(new QueryWrapper<Company>()
- .select("*,(select b.hk_id from company b where company.erp_parent_id = b.erp_id limit 1) as hkParentId")
- .lambda()
- .eq(Company::getHkStatus,Constants.ZERO)
- .orderByAsc(Company::getErpDate));
- if(list ==null || list.size()==0){
- return;
- }
- Date date = new Date();
- List<OrgEditRequest> editHkList = new ArrayList<>();
- List<OrgAddRequest> addList = new ArrayList<>();
- List<Company> updateList = new ArrayList<>();
- List<Integer> delIds = new ArrayList<>();
- List<String> delHKIds = new ArrayList<>();
- for(Company c : list){
- if(StringUtils.isBlank(c.getErpParentId())){
- //濡傛灉鏄痚rp椤跺眰缁勭粐锛岄粯璁ゅ啀娴峰悍鏍圭粍缁囦笅鍒涘缓缁勭粐
- c.setHkParentId(rootOrgId);
- }
- if(StringUtils.isBlank(c.getHkParentId())){
- //濡傛灉涓婄骇娴峰悍閮ㄩ棬杩樻病鍚屾锛屽垯姝ゆ涓嶅鐞�
- continue;
- }
- if(StringUtils.isBlank(c.getHkId())){
- //濡傛灉鏂板鍚屾鏁告摎
- if(Constants.equalsInteger(Constants.ONE,c.getIsdeleted())){
- //鍒犻櫎鐨勭粍缁囷紝涓嶅仛澶勭悊,娴峰悍鐘舵�佹洿鏂颁负涓嶅鐞嗭紝涓嬫涓嶅啀澶勭悊杩欎釜璁板綍
- c.setHkStatus(Constants.TWO);
- companyMapper.updateById(c);
- continue ;
- }
- OrgAddRequest m = getOrgAddModel(c,rootOrgId);
- addList.add(m);
- c.setHkId(m.getOrgIndexCode());
- updateList.add(c);
- }else{
- if(Constants.equalsInteger(c.getIsdeleted(),Constants.ONE)){
- //鍒犻櫎鐨勬暟鎹紝杩涜鍒犻櫎
- delIds.add(c.getId());
- delHKIds.add(c.getHkId());
- }else{
- //濡傛灉鏇存柊
- editHkList.add(getOrgHkEditModel(c,rootOrgId));
- }
- updateList.add(c);
- }
- }
- //澶勭悊鍒犻櫎鏁版嵁
- doHkDeleteOrg(delIds,delHKIds,date);
- //澶勭悊鏂板鏁版嵁
- doHkAddOrg(updateList,addList,editHkList);
- }catch (Exception e){
- e.printStackTrace();
- }finally {
- Constants.DEALING_HK_ORG =false;
- }
-
- }
-
- /**
- * 澶勭悊鎵归噺鏂板鐨勬捣搴锋暟鎹紝鏇存柊鍚屾鏁版嵁鐘舵��
- * @param updateList
- * @param addList
- */
- private void doHkAddOrg(List<Company> updateList, List<OrgAddRequest> addList, List<OrgEditRequest> editHkList) {
- Date date = new Date();
- if(addList!=null &&addList.size()>0){
- //澶勭悊鏂板
- BaseResponse<OrgOrUserAddResponse> result = HKService.addBatchOrg(addList);
- if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
- OrgOrUserAddResponse data = result.getData();
- if(data.getSuccesses()!=null && data.getSuccesses().size()>0){
- //澶勭悊鏂板鎴愬姛鐨勬暟鎹紝淇敼娴峰悍鍚屾鐘舵��
- for(OrgOrUserAddSuccessResponse r :data.getSuccesses()){
- Integer index = getCompanyId(updateList,r.getOrgIndexCode());
- if(index!=null){
- companyMapper.update(null,new UpdateWrapper<Company>().lambda()
- .set(Company::getHkStatus,Constants.ONE)
- .set(Company::getHkDate,date)
- .set(Company::getHkId,r.getOrgIndexCode())
- .eq(Company::getId, index) );
- }
- }
- }
- }
- }
- if(editHkList!=null){
- //鎵ц鏇存柊鎿嶄綔
- List<String> success = new ArrayList<>();
- List<String> error = new ArrayList<>();
- for(OrgEditRequest param : editHkList){
- BaseResponse result = HKService.editOrg(param);
- if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
- success.add(param.getOrgIndexCode());
- }else{
- error.add(param.getOrgIndexCode());
- }
- }
- if(success.size()>0){
- companyMapper.update(null,new UpdateWrapper<Company>().lambda()
- .set(Company::getHkStatus,Constants.ONE)
- .set(Company::getHkDate,date)
- .in(Company::getHkId, success) );
- }
- if(error.size()>0){
- companyMapper.update(null,new UpdateWrapper<Company>().lambda()
- .set(Company::getHkStatus,Constants.TWO)
- .set(Company::getHkDate,date)
- .in(Company::getHkId, error) );
- }
- }
- }
-
- private Integer getCompanyId(List<Company> updateList, String orgIndexCode) {
- if(updateList!=null && StringUtils.isNotBlank(orgIndexCode)){
- for(Company c : updateList){
- if(StringUtils.equals(c.getHkId(),orgIndexCode)){
- return c.getId();
- }
- }
- }
- return null;
- }
-
- private OrgAddRequest getOrgAddModel(Company c,String rootOrgId) {
- OrgAddRequest model = new OrgAddRequest();
- model.setOrgIndexCode(HKConstants.RES_ORG_INDEX+UUID.randomUUID().toString().replace("-",""));
- model.setOrgName(c.getName()+HKConstants.RES_ORG_NAME_INDEX);
-// model.setOrgCode(c.getCode());
- model.setParentIndexCode(c.getHkParentId());
- return model;
-
- }
- private OrgEditRequest getOrgHkEditModel(Company c,String rootOrgId) {
- OrgEditRequest model = new OrgEditRequest();
- model.setOrgIndexCode(c.getHkId());
- model.setOrgName(c.getName());
- return model;
-
- }
-
- /**
- * 瀵规捣搴峰垹闄ょ粍缁囦俊鎭�
- * @param delIds
- * @param date
- */
- private void doHkDeleteOrg(List<Integer> delIds,List<String> delHkIds, Date date) {
- if(delHkIds.size() == 0){
- return;
- }
- OrgDelRequest request = new OrgDelRequest();
- request.setIndexCodes( delHkIds.toArray(new String[]{}));
- BaseResponse<List<OrgUpdateFailureResponse>> result = HKService.delBatchOrg(request);
- if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
- List<String> fIds = new ArrayList<>();
- if(result.getData()!=null){
- for(OrgUpdateFailureResponse r : result.getData()){
- if(!r.getCode().equals("0x00052102")){
- //涓嶅瓨鍦ㄧ殑涔熺畻鍒犻櫎鎴愬姛
- fIds.add(r.getOrgIndexCode());//鍒犻櫎澶辫触鐨勬暟鎹泦鍚�
- }
- }
- }
- //鏍囪鍒犻櫎鎴愬姛鐨勬暟鎹紙娴峰悍瀵规帴鐘舵�佷负宸插悓姝ワ紝锛屽悓姝ュけ璐ョ殑浠嶄负寰呭悓姝ワ紝绛変笅涓�娆$户缁鐞嗭紝鐭ラ亾鍏ㄩ儴鍒犻櫎瀹屾瘯锛�
- companyMapper.update(null,new UpdateWrapper<Company>().lambda()
- .set(Company::getHkStatus,Constants.ONE)
- .set(Company::getHkDate,date)
- .set(Company::getHkId,null )
- .in(Company::getId, delIds)
- .notIn(fIds.size()>0,Company::getHkId, fIds));
- companyMapper.update(null,new UpdateWrapper<Company>().lambda()
- .set(Company::getHkStatus,Constants.TWO)
- .set(Company::getHkDate,date)
- .in(Company::getId, delIds)
- .in(fIds.size()>0,Company::getHkId, fIds));
- }
- }
-
- /**
- * 鍚屾娴峰悍浜哄憳淇℃伅
- * @return
- */
- @Override
- public void syncUserData(){
- if(Constants.DEALING_HK_USER){
- return ;
- }
- Constants.DEALING_HK_USER =true;
- try {
- //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑浼佷笟鏁版嵁
- List<Member> list = memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
- .selectAll(Member.class )
- .selectAs(Company::getHkId,Member::getCompanyHkId)
- .isNotNull(Member::getFaceImg)
- .leftJoin(Company.class,Company::getId,Member::getCompanyId)
- .eq(Member::getHkStatus,Constants.ZERO)
- .orderByAsc(Member::getErpDate));
- if(list ==null || list.size()==0){
- return;
- }
- Date date = new Date();
- String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
- +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
- for(Member c : list){
- dealMemberInfoBiz(c,date,path) ;
- }
- }catch (Exception e){
- e.printStackTrace();
- }finally {
- Constants.DEALING_HK_USER =false;
- }
- }
- public static List<Integer> getRoleIdByParam( Member member,DeviceRoleMapper deviceRoleMapper) {
- //鏌ヨ鏁版嵁搴撳瓨鍦ㄧ殑鏉冮檺
- 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.getId()+")"));
- if(CollectionUtils.isNotEmpty(deviceRoleList)){
- List<MemberRole> memberRoleList = new ArrayList<>();
- String ids = "";
- List<Integer> r = new ArrayList<>();
- for (int i = 0; i < deviceRoleList.size(); i++) {
- DeviceRole deviceRole =deviceRoleList.get(i);
- if(i>0){
- ids += ",";
- }
- String doorids =deviceRole.getDoorIds();
- if(StringUtils.isNotBlank(doorids)){
- String[] ss = doorids.split(",");
- try {
- for(String s :ss){
- r.add(Integer.parseInt(s));
- }
- }catch (Exception e){
- //鑴忔暟鎹笉澶勭悊
- }
- }
- }
- return r;
- }
- return null;
- }
- @Transactional
- private boolean dealMemberInfoBiz(Member c, Date date, String path) {
- if( c.getCompanyId() == null){
- //濡傛灉娌℃湁缁勭粐涓嶅仛澶勭悊
- return false;
- }
- if(!Constants.equalsInteger(Constants.ONE,c.getIsdeleted()) && StringUtils.isBlank(c.getHkId())){
- //濡傛灉鏂板鍚屾鏁告摎
- dealUserHkAddBiz(c,date,path);
- }else{
- //濡傛灉涔嬪墠宸茬粡鍜屾捣搴峰悓姝ワ紝鍒欐洿鏂扮敤鎴锋暟鎹互鍙婁汉鑴告暟鎹紙鍙兘鏂板浜鸿劯 涔熷彲鑳芥洿鏂颁汉鑴革級
- dealUserHkEditBiz(c,date,path);
- }
- return false;
- }
- private void dealMemberRoleEmpower(Member member ) {
- //澶勭悊鏂板鐨勪汉鍛樺崱鐗囨暟鎹紙涓庢捣搴峰悓姝ワ級
- List<MemberCard> cards = dealMemberHkCard(member);
- dealMemberRoleEmpowerDo(cards,member,deviceRoleMapper,empowerMapper,deviceMapper);
- }
-
- public static void dealMemberRoleEmpowerDo(List<MemberCard> cards,Member member , DeviceRoleMapper deviceRoleMapper, EmpowerMapper empowerMapper, DeviceMapper deviceMapper) {
- if(cards == null || cards.size() == 0){
- return;
- }
- List<Integer> doorIds = getRoleIdByParam(member,deviceRoleMapper);
- if(doorIds==null || doorIds.size() == 0){
- return;
- }
- if(StringUtils.isBlank(member.getFaceImg())){
- return;
- }
-
- 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;
- }
- 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.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 getNormalCardList(member,memberCardMapper);
- }
-
- 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.getType());
- 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 getNormalCardList(member,memberCardMapper);
- }
-
- public static List<MemberCard> getNormalCardList(Member member,MemberCardMapper memberCardMapper) {
- return memberCardMapper.selectList(new QueryWrapper<MemberCard>().lambda()
- .eq(MemberCard::getMemberId,member.getId())
- .eq(MemberCard::getType,Constants.TWO)
- .eq(MemberCard::getStatus,Constants.MemberCard.normal)
- .eq(MemberCard::getHkStatus,Constants.ONE) );
-
- }
-
-
- /**
- * 濡傛灉涔嬪墠宸茬粡鍜屾捣搴峰悓姝ワ紝鍒欐洿鏂扮敤鎴锋暟鎹互鍙婁汉鑴告暟鎹紙鍙兘鏂板浜鸿劯 涔熷彲鑳芥洿鏂颁汉鑴革級
- * @param c
- * @param date
- * @param path
- */
- private void dealUserHkEditBiz(Member c, Date date, String path) {
- c.setHkStatus(Constants.ONE);
- if(Constants.equalsInteger(Constants.ONE,c.getIsdeleted())){
- //澶勭悊鍒犻櫎鏁版嵁锛堝垹闄や箣鍓嶄笅鍙戠殑娴峰悍浜哄憳淇℃伅锛�
- 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);//淇敼
- //澶勭悊鏂板鏁版嵁
- BaseResponse result = HKService.editUser(addHkModel);
- if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) ){
- if(StringUtils.isNotBlank(c.getFaceImg())){
- //濡傛灉鏈変汉鑴哥収鐗囷紝澶勭悊浜鸿劯鐓х墖鍚屾
- String faceid = dealMemberFace(c,path);
- if(StringUtils.isBlank(faceid)){
- noticeErpFail(c,Constants.ZERO,"浜鸿劯淇℃伅鏇存柊澶辫触锛岃妫�鏌ヤ汉鑴哥収鐗囨槸鍚﹀悎娉曪紒");
- c.setHkStatus(Constants.TWO);
- c.setRemark("浜鸿劯淇℃伅鏇存柊澶辫触锛岃妫�鏌ヤ汉鑴哥収鐗囨槸鍚﹀悎娉曪紒锛�"+result.getMsg());
- }else{
- c.setFaceId(faceid);
- }
- }
- }else{
- noticeErpFail(c,Constants.ZERO,"浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒");
- c.setHkStatus(Constants.TWO);
- c.setRemark("浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴鏇存柊澶辫触锛岃淇鍚庨噸璇曪紒锛�"+(result!=null?result.getCode()+result.getMsg():""));
- }
- //閲嶆柊涓嬪彂鏉冮檺鏁版嵁
- dealMemberRoleEmpower(c);
- }
- c.setHkDate(date);
- memberMapper.updateById(c);
- }
-
- /**
- * 鏂扮敤鎴峰悓姝ュ埌娴峰悍骞冲彴
- * @param c
- * @param date
- * @param path
- * @return
- */
- private boolean dealUserHkAddBiz(Member c, Date date, String path) {
- if(Constants.equalsInteger(Constants.ONE,c.getIsdeleted())){
- //鍒犻櫎鐨勭粍缁囷紝涓嶅仛澶勭悊,娴峰悍鐘舵�佹洿鏂颁负涓嶅鐞嗭紝涓嬫涓嶅啀澶勭悊杩欎釜璁板綍
- c.setHkStatus(Constants.TWO);
- c.setRemark("鏈悓姝ユ暟鎹紝鐩存帴鍒犻櫎");
- c.setEditDate(date);
- c.setErpId(c.getErpOrgId()+"_"+UUID.randomUUID().toString());
- memberMapper.updateById(c);
- return false;
- }
- UserAddRequest addHkModel = getUserAddModel(c,path,0);//鏂板
- if(addHkModel == null){
- //濡傛灉浜鸿劯鏁版嵁涓嶆纭紝涓嬭浇澶辫触绛夊師鍥�
- noticeErpFail(c,Constants.ZERO,"浜鸿劯鐓х墖涓嶅瓨鍦紝鑾峰彇澶辫触锛�");
- c.setHkStatus(Constants.TWO);
- c.setRemark("浜鸿劯鐓х墖涓嶅瓨鍦紝鑾峰彇澶辫触锛�");
- memberMapper.updateById(c);
- return false;
- }
- //澶勭悊鏂板鏁版嵁
- BaseResponse<UserAddResponse> result = HKService.addUser(addHkModel);
- if(result!=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){
- c.setFaceId(result.getData().getFaceId());
- c.setHkStatus(Constants.ONE);
- c.setHkId(addHkModel.getPersonId());
- memberMapper.updateById(c);
- dealMemberRoleEmpower(c);
- return true;
- }else{
- noticeErpFail(c,Constants.ZERO,"浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒"+result.getCode()+result.getMsg());
- c.setHkStatus(Constants.TWO);
- c.setRemark("浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒"+(result!=null?result.getMsg():""));
- memberMapper.updateById(c);
- return false;
- }
- }
-
- /**
- * 澶勭悊鏂板鎴栬�呬慨鏀逛汉鑴镐俊鎭�
- * @param c
- * @param path
- * @return
- */
- private String dealMemberFace(Member c,String path) {
- if(StringUtils.isBlank(c.getFaceId())){
- BaseResponse<FaceAddOrEditesponse> response = HKService.addFace(getFaceAddModel(c,path));
- if(response !=null && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)&& response.getData()!=null ){
- return response.getData().getFaceId();
- }
- }else{
- BaseResponse response = HKService.editFace(getFaceUpdateModel(c,path));
- if(StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE) ){
- return c.getFaceId();
- }
- }
- return null;
- }
-
- /**
- * 閫氱煡erp绯荤粺锛屼汉鍛樹笅鍙戝悓姝ヤ俊鎭姸鎬佸け璐�
- * @param c
- * @param type
- * @param s
- */
- private void noticeErpFail(Member c, int type, String s) {
- UserFailRequest r = new UserFailRequest();
- r.setUserId(c.getErpId());
- r.setInfo(s);
- r.setType(type);
- //閫氱煡ERP浜鸿劯鏁版嵁涓嶆纭�
- erpSyncService.noticeUserFail(r);
- }
-
- /**
- * 瀵规捣搴峰垹闄ょ粍缁囦俊鎭�
- * @param id
- * @param date
- */
- private boolean doHkDeleteUser(Integer id,String delHkIds, Date date ) {
- if(StringUtils.isBlank(delHkIds)){
- return true;
- }
- UserDelRequest request = new UserDelRequest();
- request.setPersonIds(new String[]{delHkIds});
- BaseResponse<List<UserDelResponse>> result = HKService.delBatchUser(request);
- if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
- List<String> fIds = new ArrayList<>();
- //鏍囪鍒犻櫎鎴愬姛鐨勬暟鎹紙娴峰悍瀵规帴鐘舵�佷负宸插悓姝ワ紝锛屽悓姝ュけ璐ョ殑浠嶄负寰呭悓姝ワ紝绛変笅涓�娆$户缁鐞嗭紝鐭ラ亾鍏ㄩ儴鍒犻櫎瀹屾瘯锛�
- if(result.getData()!=null && result.getData().size()>0){
- log.info("娴峰悍鍒犻櫎鐢ㄦ埛澶辫触锛�==============="+result.getData().get(0).getPersonId());
- memberMapper.update(null,new UpdateWrapper<Member>().lambda()
- .set(Member::getHkStatus,Constants.TWO)//鍚屾澶辫触
- .set(Member::getHkDate,date)
- .in(Member::getId, id));
- }else{
- //鏍囪鍒犻櫎鎴愬姛鐨勬暟鎹紙娴峰悍瀵规帴鐘舵�佷负宸插悓姝ワ紝锛屽悓姝ュけ璐ョ殑浠嶄负寰呭悓姝ワ紝绛変笅涓�娆$户缁鐞嗭紝鐭ラ亾鍏ㄩ儴鍒犻櫎瀹屾瘯锛�
- memberMapper.update(null,new UpdateWrapper<Member>().lambda()
- .set(Member::getHkStatus,Constants.ONE)//鍚屾鎴愬姛
- .set(Member::getHkDate,date)
- .in(Member::getId, id));
- }
- return true;
- }
- return false;
- }
-
- /**
- * 鍒犻櫎浜哄憳鎵�鏈夎澶囦笂鐨勬潈闄愪俊鎭�
- * @param userId
- * @param allDevice
- */
- private void delUserHkRolle(String userId,List<Device> allDevice) {
- //鍒涘缓浠诲姟
- String taskId = hkTaskAddtion();
- //
- if(taskId!=null){
- //鍒犻櫎鎵�鏈夎澶囦笂鐨勬潈闄�
- addTaskDataAllDel(userId,taskId,allDevice);
- startTask(taskId);
- }
- }
-
- private UserAddRequest getUserAddModel(Member c,String path,int type) {
- UserAddRequest model = new UserAddRequest();
- model.setOrgIndexCode(c.getCompanyHkId());
- model.setJobNo(c.getCode());
- model.setCertificateNo(DESUtil.decrypt(Constants.EDS_PWD, c.getIdcardNo()));
- model.setCertificateType(HKConstants.CertificateType.SHENFENZHENG.getKey()+"");
- model.setPersonId(type == 0 ?UUID.randomUUID().toString().replace("-", ""):c.getHkId());
- model.setGender(Constants.formatIntegerNum(c.getSex())+"");
- model.setPersonName(c.getName());
- if(type== 0 && StringUtils.isNotBlank(c.getFaceImg())){
- model.setFaces(new ArrayList<>());
- UserAddFaceRequest face = new UserAddFaceRequest();
- String imageBase = ImageBase64Util.Image2Base64(path+c.getFaceImg());
- if(imageBase== null){
- //浜鸿劯鏁版嵁涓嶆纭紝
- return null;
- }
- face.setFaceData(imageBase);
- model.getFaces().add(face);
-
- }
- return model;
- }
- private FaceAddRequest getFaceAddModel(Member c,String path) {
- FaceAddRequest model = new FaceAddRequest();
- model.setPersonId(c.getHkId());
- if(StringUtils.isNotBlank(c.getFaceImg())){
- String imageBase = ImageBase64Util.Image2Base64(path+c.getFaceImg());
- if(imageBase == null){
- //浜鸿劯鏁版嵁涓嶆纭紝
- return null;
- }
- model.setFaceData(imageBase);
- }
- return model;
- }
- private FaceEditRequest getFaceUpdateModel(Member c,String path) {
- FaceEditRequest model = new FaceEditRequest();
- model.setFaceId(c.getFaceId());
- if(StringUtils.isNotBlank(c.getFaceImg())){
- String imageBase = ImageBase64Util.Image2Base64(path+c.getFaceImg());
- if(imageBase == null){
- //浜鸿劯鏁版嵁涓嶆纭紝
- return null;
- }
- model.setFaceData(imageBase);
- }
- return model;
- }
-
-}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromHKServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromHKServiceImpl.java
new file mode 100644
index 0000000..9602356
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromHKServiceImpl.java
@@ -0,0 +1,273 @@
+package com.doumee.service.business.impl.hksync.fhk;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.config.DataSyncConfig;
+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.BaseListPageResponse;
+import com.doumee.core.haikang.model.param.BaseResponse;
+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.model.LoginUserInfo;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DESUtil;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.dao.business.*;
+import com.doumee.dao.business.model.*;
+import com.doumee.service.business.impl.hksync.HkSyncBaseServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+
+/**
+ * 娴峰悍缁勭粐浜哄憳閫氳繃姝ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+@Service
+@Slf4j
+public class HkSyncOrgUserForHKServiceImpl extends HkSyncBaseServiceImpl {
+ @Autowired
+ private CompanyMapper companyMapper;
+ @Autowired
+ private MemberMapper memberMapper;
+
+ @Autowired
+ private DataSyncConfig dataSyncConfig;
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+
+ @Autowired
+ private RedisTemplate<String, Object> redisTemplate;
+
+ /**
+ * 鍚屾娴峰悍缁勭粐淇℃伅鍒颁笟鍔$郴缁�
+ */
+ @Override
+ @Transactional
+ public void syncOrgData(){
+ if(Constants.DEALING_HK_ORG){
+ return ;
+ }
+ Constants.DEALING_HK_ORG =true;
+ try {
+ if( Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.hk){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝褰撳墠涓嶆敮鎸佺粍缁囧悓姝ユ搷浣渵");
+ }
+ LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ OrgUserListRequest param = new OrgUserListRequest();
+ //鑾峰彇ERP缁勭粐淇℃伅锛堝叏閲忓悓姝ワ級
+ boolean hasNext = true;
+ int curTotal = 0;
+ int curPage = 1;
+
+ List<Company> allHkList = new ArrayList<>();
+ while (hasNext){
+ //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+ param = new OrgUserListRequest();
+ param.setPageNo(curPage);
+ param.setPageSize(100);
+ BaseResponse<BaseListPageResponse<OrgInfoResponse>> response = HKService.orgAllList(param);
+ if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+ }
+ BaseListPageResponse<OrgInfoResponse> r = response.getData();
+ curTotal += 100;
+ if(curTotal >= r.getTotal()){
+ hasNext = false;
+ }
+ if(r.getList() == null || r.getList().size()==0){
+ hasNext =false;
+ }else{
+ allHkList.addAll(getNewOrgModelBYList(r.getList(),user.getId()));
+ }
+ curPage++;
+ }
+ if(allHkList .size() == 0){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍缁勭粐淇℃伅锛�");
+ }
+ companyMapper.delete(new UpdateWrapper<>());//娓呯┖鍘熸湁鏁版嵁
+ companyMapper.insertBatchSomeColumn(allHkList);//鎻掑叆鏂版暟鎹�
+ }catch (BusinessException e){
+ throw e;
+ }catch (Exception e){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+ }finally {
+ Constants.DEALING_HK_ORG =false;
+ }
+ }
+
+ private List<Company> getNewOrgModelBYList(List<OrgInfoResponse> list, Integer userid) {
+ List<Company> newList = new ArrayList<>();
+ if(list == null || list.size()==0){
+ return newList;
+ }
+ for(OrgInfoResponse model :list){
+ Company c = new Company();
+ c.setHkId(model.getOrgIndexCode());
+ c.setCode(model.getOrgNo());
+ c.setName(model.getOrgName());
+ c.setHkStatus(Constants.ONE);
+ c.setHkDate(new Date());
+ c.setIsdeleted(Constants.ZERO);
+ c.setCreateDate(c.getHkDate());
+ c.setEditDate(DateUtil.getISO8601DateByStr(model.getUpdateTime()));
+ c.setCreator(userid);
+ c.setStatus(Constants.ZERO);
+ c.setType(Constants.ONE);
+ if(!StringUtils.equals(model.getOrgIndexCode(),systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_ROOTORG_CODE).getCode())){
+ c.setHkParentId(model.getParentOrgIndexCode());
+ }
+ newList.add(c);
+ }
+ return newList;
+ }
+
+ /**
+ * 鍚屾娴峰悍浜哄憳淇℃伅
+ * @return
+ */
+ @Override
+ public void syncUserData(){
+ if(Constants.DEALING_HK_USER){
+ return ;
+ }
+ Constants.DEALING_HK_USER =true;
+ try {
+ if( Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.hk){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝褰撳墠涓嶆敮鎸佺粍缁囧悓姝ユ搷浣渵");
+ }
+ LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ List<Company> companies = companyMapper.selectList(new QueryWrapper<>());
+ if(companies == null || companies.size() == 0){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝璇峰厛鍚屾浼佷笟缁勭粐淇℃伅~");
+ }
+ OrgUserListRequest param = new OrgUserListRequest();
+ //鑾峰彇ERP缁勭粐淇℃伅锛堝叏閲忓悓姝ワ級
+ boolean hasNext = true;
+ int curTotal = 0;
+ int curPage = 1;
+ List<Member> allHkList = new ArrayList<>();
+ while (hasNext){
+ //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+ param = new OrgUserListRequest();
+ param.setPageNo(curPage);
+ param.setPageSize(100);
+ BaseResponse<BaseListPageResponse<UserInfoResponse>> response = HKService.userAllList(param);
+ if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+ }
+ BaseListPageResponse<UserInfoResponse> r = response.getData();
+ curTotal += 100;
+ if(curTotal >= r.getTotal()){
+ hasNext = false;
+ }
+ if(r.getList() == null || r.getList().size()==0){
+ hasNext =false;
+ }else{
+ allHkList.addAll(getNewUserModelBYList(r.getList(),companies,user.getId()));
+ }
+ curPage++;
+ }
+ if(allHkList .size() == 0){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍缁勭粐淇℃伅锛�");
+ }
+ memberMapper.delete(new UpdateWrapper<>());//娓呯┖鍘熸湁鏁版嵁
+ memberMapper.insertBatchSomeColumn(allHkList);//鎻掑叆鏂版暟鎹�
+ }catch (BusinessException e){
+ throw e;
+ }catch (Exception e){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+ }finally {
+ Constants.DEALING_HK_USER =false;
+ }
+ }
+
+
+ private List<Member> getNewUserModelBYList(List<UserInfoResponse> list, List<Company> companies,Integer userid) {
+ List<Member> newList = new ArrayList<>();
+ if(list == null || list.size()==0){
+ return newList;
+ }
+ for(UserInfoResponse model :list){
+ Member c = new Member();
+ String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,model.getCertificateNo());
+ c.setIdcardNo(encryptIdNo);
+ c.setIdcardDecode(Constants.getTuominStr(model.getCertificateNo()));
+ c.setIdcardType(getIdcardTypeByHk(model.getCertificateType()));
+ c.setCode(model.getJobNo());
+ c.setPhone(model.getPhoneNo());
+ c.setHkId(model.getPersonId());
+ c.setName(model.getPersonName());
+ c.setHkStatus(Constants.ONE);
+ c.setHkDate(new Date());
+ c.setCanVisit(Constants.ZERO);
+ c.setHighCheckor(Constants.ZERO);
+ c.setSex(model.getGender());
+ c.setIsdeleted(Constants.ZERO);
+ c.setCreateDate(c.getHkDate());
+ c.setEditDate(DateUtil.getISO8601DateByStr(model.getUpdateTime()));
+ c.setCreator(userid);
+ c.setStatus(Constants.ZERO);
+ c.setType(Constants.TWO);
+ c.setCompanyId(getCompanyId(companies,model.getOrgIndexCode()));
+ if(model.getPersonPhoto()!=null && model.getPersonPhoto().size()>0){
+ c.setFaceId(model.getPersonPhoto().get(0).getPersonPhotoIndexCode());
+ c.setFaceImg(HKConstants.IMG_INDEX+model.getPersonPhoto().get(0).getPicUri());
+ c.setFaceServerIndexCode(model.getPersonPhoto().get(0).getServerIndexCode());
+ }
+ newList.add(c);
+ }
+ return newList;
+ }
+
+ private Integer getCompanyId(List<Company> companies, String orgIndexCode) {
+ if(companies == null){
+ return null;
+ }
+ for(Company c : companies){
+ if(StringUtils.equals(c.getHkId(),orgIndexCode)){
+ return c.getId();
+ }
+ }
+ return null;
+ }
+
+ /**
+ * //璇佷欢绫诲瀷111:韬唤璇�414:鎶ょ収113:鎴峰彛绨�335:椹鹃┒璇�131:宸ヤ綔璇�133:瀛︾敓璇�990:鍏朵粬 ;
+ * // 璇佷欢绫诲瀷 0韬唤璇� 1娓境璇佷欢 2鎶ょ収
+ * @param certificateType
+ * @return
+ */
+ private Integer getIdcardTypeByHk(Integer certificateType) {
+ if(Constants.equalsInteger(certificateType,HKConstants.CertificateType.SHENFENZHENG.getKey())){
+ return 0;
+ }else if(Constants.equalsInteger(certificateType,HKConstants.CertificateType.HUZHAO.getKey())){
+ return 2;
+ }else if(Constants.equalsInteger(certificateType,HKConstants.CertificateType.JIASHIZHENG.getKey())){
+ return 3;
+ }else if(Constants.equalsInteger(certificateType,HKConstants.CertificateType.XUESHENGZHENG.getKey())){
+ return 4;
+ }else if(Constants.equalsInteger(certificateType,HKConstants.CertificateType.GONGXUOZHENG.getKey())){
+ return 5;
+ }else if(Constants.equalsInteger(certificateType,HKConstants.CertificateType.GONGXUOZHENG.getKey())){
+ return 6;
+ }else if(Constants.equalsInteger(certificateType,HKConstants.CertificateType.HUKOUBEN.getKey())){
+ return 7;
+ }else if(Constants.equalsInteger(certificateType,HKConstants.CertificateType.QITA.getKey())){
+ return 8;
+ }
+ return null;
+ }
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java
new file mode 100644
index 0000000..d8251d0
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java
@@ -0,0 +1,189 @@
+package com.doumee.service.business.impl.hksync.fhk;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.config.DataSyncConfig;
+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.BaseListPageResponse;
+import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.request.AppointmentListRequest;
+import com.doumee.core.haikang.model.param.request.OrgUserListRequest;
+import com.doumee.core.haikang.model.param.respose.AppointmentInfoResponse;
+import com.doumee.core.haikang.model.param.respose.OrgInfoResponse;
+import com.doumee.core.haikang.model.param.respose.UserInfoResponse;
+import com.doumee.core.haikang.service.HKService;
+import com.doumee.core.model.LoginUserInfo;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DESUtil;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.CompanyMapper;
+import com.doumee.dao.business.MemberMapper;
+import com.doumee.dao.business.VisitsMapper;
+import com.doumee.dao.business.model.Company;
+import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.Visits;
+import com.doumee.service.business.impl.hksync.HkSyncBaseServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 鎷夊彇娴峰悍璁垮淇℃伅閫氳繃姝ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+@Service
+@Slf4j
+public class HkSyncVistFromHKServiceImpl extends HkSyncBaseServiceImpl {
+ @Autowired
+ private CompanyMapper companyMapper;
+ @Autowired
+ private MemberMapper memberMapper;
+ @Autowired
+ private VisitsMapper visitsMapper;
+ @Autowired
+ private DataSyncConfig dataSyncConfig;
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+
+
+ /**
+ * 鍚屾娴峰悍缁勭粐淇℃伅鍒颁笟鍔$郴缁�
+ */
+ @Override
+ @Transactional
+ public void syncVistAppointData(){
+ if(Constants.DEALING_FROM_HK_VISIT){
+ return ;
+ }
+ Constants.DEALING_FROM_HK_VISIT =true;
+ try {
+ if( Constants.formatIntegerNum(dataSyncConfig.getVisitorDataOrigin()) != DataSyncConfig.origin.hk){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝褰撳墠涓嶆敮鎸佹捣搴锋暟鎹悓姝ユ搷浣渵");
+ }
+ AppointmentListRequest param = new AppointmentListRequest();
+ //鑾峰彇ERP缁勭粐淇℃伅锛堝叏閲忓悓姝ワ級
+ boolean hasNext = true;
+ int curTotal = 0;
+ int curPage = 1;
+ //鏌ヨ浠婂ぉ鐨�
+ param.setVisitStartTimeBegin(DateUtil.getISO8601Timestamp( Utils.Date.getStart(new Date())));
+
+ List<Visits> allHkList = new ArrayList<>();
+ while (hasNext){
+ //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+ param.setPageNo(curPage);
+ param.setPageSize(100);
+ BaseResponse<BaseListPageResponse<AppointmentInfoResponse>> response = HKService.appointmentRecords(param);
+ if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+ }
+ BaseListPageResponse<AppointmentInfoResponse> r = response.getData();
+ curTotal += 100;
+ if(curTotal >= r.getTotal()){
+ hasNext = false;
+ }
+ if(r.getList() == null || r.getList().size()==0){
+ hasNext =false;
+ }else{
+ allHkList.addAll(getNewVisitModelBYList(r.getList()));
+ }
+ curPage++;
+ }
+ if(allHkList .size() == 0){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍缁勭粐淇℃伅锛�");
+ }
+ //娓呯┖鍘熸湁鏁版嵁
+ visitsMapper.delete(new UpdateWrapper<Visits>().lambda().apply("to_days(create_date)=to_days(now())" ));
+ visitsMapper.insertBatchSomeColumn(allHkList);//鎻掑叆鏂版暟鎹�
+ }catch (BusinessException e){
+ throw e;
+ }catch (Exception e){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+ }finally {
+ Constants.DEALING_FROM_HK_VISIT =false;
+ }
+ }
+
+ private List<Visits> getNewVisitModelBYList(List<AppointmentInfoResponse> list ) {
+ List<Visits> newList = new ArrayList<>();
+ if(list == null || list.size()==0){
+ return newList;
+ }
+ for(AppointmentInfoResponse model :list){
+ Visits c = new Visits();
+ c.setHkId(model.getAppointRecordId());
+ c.setCode(model.getQRCode());
+ c.setName(model.getVisitorName());
+ c.setHkStatus(Constants.ONE);
+ c.setHkDate(new Date());
+ c.setIsdeleted(Constants.ZERO);
+ c.setCreateDate(c.getHkDate());
+ c.setStarttime(DateUtil.getISO8601DateByStr(model.getVisitStartTime()));
+ c.setEndtime(DateUtil.getISO8601DateByStr(model.getVisitEndTime()));
+ c.setReason(model.getVisitPurpose());
+ c.setStatus(model.getVisitorStatus());
+ c.setType(Constants.ONE);
+ if(StringUtils.isNotBlank(model.getReceptionistId())){
+ //琚闂汉
+ Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getHkId,model.getReceptionistId()).last("limit 1"));
+ c.setReceptMemberId(member!=null?member.getId():null);
+ }
+ c.setCompanyName(model.getVisitorWorkUnit());
+ c.setPhone(model.getPhoneNo());
+ c.setCarNos(model.getPlateNo());
+ if(StringUtils.isNotBlank(model.getCertificateNo())){
+ //琚闂汉
+ Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
+ .eq(Member::getType,Constants.ONE)
+ .eq(Member::getIdcardNo,DESUtil.encrypt(Constants.EDS_PWD, model.getCertificateNo()))
+ .last("limit 1"));
+ if(member == null){
+ member = new Member();
+ member.setName(model.getVisitorName());
+ member.setPhone(model.getPhoneNo());
+ member.setSex(model.getGender());
+ member.setIsdeleted(Constants.ZERO);
+ member.setType(Constants.ONE);
+ member.setVisitCompanyName(model.getVisitorWorkUnit());
+ member.setCreateDate(new Date());
+ if(StringUtils.isNotBlank(model.getPicUri())){
+ member.setImgurl(HKConstants.IMG_INDEX+model.getPicUri());
+ member.setFaceServerIndexCode(model.getSvrIndexCode());
+ }
+ memberMapper.insert(member);
+ }else{
+ member.setIsdeleted(Constants.ZERO);
+ member.setEditDate(new Date());
+ member.setName(model.getVisitorName());
+ member.setPhone(model.getPhoneNo());
+ member.setSex(model.getGender());
+ member.setVisitCompanyName(model.getVisitorWorkUnit());
+ if(StringUtils.isNotBlank(model.getPicUri())){
+ member.setFaceServerIndexCode(model.getSvrIndexCode());
+ member.setImgurl(HKConstants.IMG_INDEX+model.getPicUri());
+ }
+ memberMapper.updateById(member);
+ }
+ c.setMemberId(member.getId());
+
+ }
+ newList.add(c);
+ }
+ return newList;
+ }
+
+
+}
--
Gitblit v1.9.3