From e7b486f54ecee830749151e0fd8feae726fd4107 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 22 十二月 2023 13:45:21 +0800
Subject: [PATCH] 海康接口对接开发

---
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java |   94 ++++++++++++++++++++++++++++++++++-------------
 1 files changed, 68 insertions(+), 26 deletions(-)

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 03fafb7..3ebd189 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
@@ -78,6 +78,7 @@
                 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<>();
@@ -104,20 +105,21 @@
                     c.setHkId(m.getOrgIndexCode());
                     updateList.add(c);
                 }else{
-                    //鍒犻櫎鐨勬暟鎹紝杩涜鍒犻櫎
-                    delIds.add(c.getId());
-                    delHKIds.add(c.getHkId());
-                    //鍒犻櫎娴峰悍鍘熸湁鐨勬暟鎹紝鍐嶆柊澧炵粍缁�
-                    OrgAddRequest m = getOrgAddModel(c,rootOrgId);
-                    addList.add(m);
-                    c.setHkId(m.getOrgIndexCode());
+                    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);
+            doHkAddOrg(updateList,addList,editHkList);
         }catch (Exception e){
             e.printStackTrace();
         }finally {
@@ -131,24 +133,51 @@
      * @param updateList
      * @param addList
      */
-    private void doHkAddOrg(List<Company> updateList, List<OrgAddRequest> addList) {
+    private void doHkAddOrg(List<Company> updateList, List<OrgAddRequest> addList, List<OrgEditRequest> editHkList) {
         Date date = new Date();
-
-        BaseResponse<OrgOrUserAddResponse> result =  HKService.addBatchOrg(addList);
-        if(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(addList!=null &&addList.size()>0){
+            //澶勭悊鏂板
+            BaseResponse<OrgOrUserAddResponse> result =  HKService.addBatchOrg(addList);
+            if(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(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) );
             }
         }
     }
@@ -173,6 +202,13 @@
         return  model;
 
     }
+    private OrgEditRequest getOrgHkEditModel(Company c,String rootOrgId) {
+        OrgEditRequest model = new OrgEditRequest();
+        model.setOrgIndexCode(c.getHkId());
+        model.setOrgName(c.getName());
+        return  model;
+
+    }
 
     /**
      * 瀵规捣搴峰垹闄ょ粍缁囦俊鎭�
@@ -190,7 +226,7 @@
             List<String> fIds = new ArrayList<>();
             if(result.getData()!=null){
                 for(OrgUpdateFailureResponse r : result.getData()){
-                    if(!r.getCode().equals("0x00072001")){
+                    if(!r.getCode().equals("0x00052102")){
                         //涓嶅瓨鍦ㄧ殑涔熺畻鍒犻櫎鎴愬姛
                         fIds.add(r.getOrgIndexCode());//鍒犻櫎澶辫触鐨勬暟鎹泦鍚�
                     }
@@ -200,8 +236,14 @@
             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));
         }
     }
 

--
Gitblit v1.9.3