jiangping
2023-12-22 e7b486f54ecee830749151e0fd8feae726fd4107
海康接口对接开发
已修改6个文件
112 ■■■■■ 文件已修改
server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/erp/UserFailRequest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
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){
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");
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){
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));
        }
    }
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");