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

---
 server/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java                                 |    1 
 server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/erp/UserFailRequest.java    |    2 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java               |    6 +-
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java                        |    4 +-
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java |   94 ++++++++++++++++++++++++++++++++++-------------
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java          |    5 +-
 6 files changed, 78 insertions(+), 34 deletions(-)

diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/erp/UserFailRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/erp/UserFailRequest.java
index 0282a76..fa678e2 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/erp/UserFailRequest.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/erp/UserFailRequest.java
@@ -10,7 +10,7 @@
  */
 @Data
 @ApiModel(value = "鍛樺伐鍚屾澶辫触鎺ㄩ�佽姹傚弬鏁�" )
-public class UserFailRequest {
+public class UserFailRequest  {
 
     @ApiModelProperty(value = "鍛樺伐id"  )
     private  String userId;
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 825ab86..8ea609a 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
@@ -84,8 +84,8 @@
 
             String res = HKTools.delOrg(JSONObject.toJSONString(param));
             TypeReference typeReference =
-                    new TypeReference< BaseResponse >(){};
-            BaseResponse result = JSONObject.parseObject(res, typeReference.getType());
+                    new TypeReference<  BaseResponse<List<OrgUpdateFailureResponse>>   >(){};
+            BaseResponse<List<OrgUpdateFailureResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
             logResult(result,"娴峰悍鍒犻櫎缁勭粐");
             return  result;
         }catch (Exception e){
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index ced2d99..f99f148 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -542,8 +542,8 @@
 
     @Override
     public PageData<MemberInfoDTO> findMemberInfoPage(PageWrap<MemberQuery> pageWrap) {
-  /*      //鏄惁鏄暟瀛�
-        boolean number = Validator.isNumber(pageWrap.getModel().getKeyWords());
+       //鏄惁鏄暟瀛�
+   /*   boolean number = Validator.isNumber(pageWrap.getModel().getKeyWords());
         //鏄惁鍖呭惈涓枃
         boolean b = Validator.hasChinese(pageWrap.getModel().getKeyWords());
         //鏄惁鍖呭惈鑻辨枃
@@ -637,7 +637,7 @@
         queryWrapper.selectAll(Member.class)
                 .selectAs(Company::getName,MemberInfoDTO::getCompanyName)
                 .select(" (select ua.CREATE_DATE from user_action ua where ua.MEMBER_ID=t.id and ua.ISDELETED=0 and ua.type=1 order by ua.CREATE_DATE limit 1) as userActionType1")
-                .select(" (select su.USERNAME from user_action uac left join system_user su on su.id=uac.CREATOR where uac.MEMBER_ID=t.id and uac.ISDELETED=0 and uac.type=1 order by uac.CREATE_DATE limit 1) as creatorName")
+                .select(" (select concat(su.USERNAME,'&&',uac.create_date)   from user_action uac left join system_user su on su.id=uac.CREATOR where uac.MEMBER_ID=t.id and uac.ISDELETED=0 and uac.type=1 order by uac.CREATE_DATE limit 1) as creatorName")
              /*   .select(" (select count(v.id) from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0) as visitsCount")*/
                 .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 order by CREATE_DATE limit 1) as visitsLastDate");
 
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 8f6c7b0..c57b877 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
@@ -110,7 +110,7 @@
     public  int  initHkConfig(){
         ErpConstants.approveUrl=systemDictDataBiz.queryByCode(Constants.ERP,Constants.ERP_APPROVE_URL).getCode();
         ErpConstants.orgListUrl=systemDictDataBiz.queryByCode(Constants.ERP,Constants.ERP_ORGLIST_URL).getCode();
-        ErpConstants.userListUrl=systemDictDataBiz.queryByCode(Constants.ERP,Constants.ERP_USERSTATUS_RL).getCode();
+        ErpConstants.userListUrl=systemDictDataBiz.queryByCode(Constants.ERP,Constants.ERP_USERLIST_URL).getCode();
         ErpConstants.userStatusUrl=systemDictDataBiz.queryByCode(Constants.ERP,Constants.ERP_USERSTATUS_RL).getCode();
         return  0;
     }
@@ -292,10 +292,11 @@
                         .set(Member::getHkStatus,Constants.ZERO)
                         .set(Member::getIsdeleted, Constants.ONE).in(Member::getId,delIds));
             }
+            return "鍚屾鏁版嵁锛氭柊澧炪��"+addList.size()+"銆戞潯锛屾洿鏂般��"+updateList.size()+"銆戞潯锛屽垹闄ゃ��"+delIds.size()+"銆戞潯";
         }else{
             throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鍚屾ERP鏁版嵁涓虹┖锛�");
         }
-        return  null;
+
     }
 
     public void dealRoleEmpower(Member member,Date startTime , Date endTime){
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));
         }
     }
 
diff --git a/server/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java b/server/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java
index cc8cb5e..4266fda 100644
--- a/server/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java
+++ b/server/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java
@@ -72,6 +72,7 @@
             r.setId(ids[i]);
             r.setName(names[i-1]);
             r.setCode( ids[i]);
+            r.setIdNo("34112219880427042"+i);
             r.setIsdeleted(Constants.ONE);
             r.setName(names[i]);
             r.setFaceImg("/20223402/"+r.getId()+".png");

--
Gitblit v1.9.3