Explorar o código

增量同步人员先删除后新增无法同步新数据问题修改

mazq hai 1 ano
pai
achega
10e650f1db

+ 5 - 4
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/sub/business/impl/SubSyncBusinessImpl.java

@@ -1022,15 +1022,16 @@ public class SubSyncBusinessImpl implements ISubSyncBusiness {
         List<JSONObject> content = page.getContent();
         List<AuthUserAddOriginal> originals = new ArrayList<>();
         // 过滤接口中数据中因多个职务导致重复的人员数据
-        Set<String> idcardSet = new HashSet<>();
+        // 如果是先删除再新增人员,会同时同步到两条数据,idcard为同一个,但是delete字段不同
+        Map<String, String> idcardMap = new HashMap<>();
         for (JSONObject json : content) {
             String idcard = json.getString("idcard");
-            if (idcardSet.contains(idcard)) {
+            String userDeleted = json.getString("deleted");
+            if (idcardMap.containsKey(idcard) && idcardMap.get(idcard).equals(userDeleted)) {
                 continue;
             }
-            idcardSet.add(idcard);
+            idcardMap.put(idcard, userDeleted);
             AuthUserAddOriginal userOri = new AuthUserAddOriginal();
-            String userDeleted = json.getString("deleted");
             Date updateTime = json.getDate("updateTime");
             userOri.setIdcard(idcard);
             userOri.setUserType(userType.getValue());