jiangping
2023-12-22 e7b486f54ecee830749151e0fd8feae726fd4107
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{
                    if(Constants.equalsInteger(c.getIsdeleted(),Constants.ONE)){
                    //删除的数据,进行删除
                    delIds.add(c.getId());
                    delHKIds.add(c.getHkId());
                    //删除海康原有的数据,再新增组织
                    OrgAddRequest m = getOrgAddModel(c,rootOrgId);
                    addList.add(m);
                    c.setHkId(m.getOrgIndexCode());
                    }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,9 +133,10 @@
     * @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();
        if(addList!=null &&addList.size()>0){
            //处理新增
        BaseResponse<OrgOrUserAddResponse> result =  HKService.addBatchOrg(addList);
        if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
            OrgOrUserAddResponse data = result.getData();
@@ -149,6 +152,32 @@
                              .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));
        }
    }