jiangping
2024-12-10 3bc8c584155ce04d1ba04496a4d94d82174df488
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
@@ -1,6 +1,5 @@
package com.doumee.service.business.impl.hksync.ferp;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
@@ -11,6 +10,7 @@
import com.doumee.core.haikang.model.param.request.*;
import com.doumee.core.haikang.model.param.respose.*;
import com.doumee.core.haikang.service.HKService;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DESUtil;
import com.doumee.core.utils.DateUtil;
@@ -19,14 +19,16 @@
import com.doumee.dao.business.dao.CompanyMapper;
import com.doumee.dao.business.join.MemberJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.ext.ERPSyncService;
import com.doumee.service.business.impl.hksync.HkSyncBaseServiceImpl;
import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.units.qual.C;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -63,16 +65,56 @@
    @Autowired
    private ERPSyncService erpSyncService;
    @Autowired
    private SystemUserMapper systemUserMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private DataSyncConfig dataSyncConfig;
    /**
     *  绑定海康用户openId
     *  {
     * "openId" : "ovmre6R7w-vEQCHg52-UN2mV_abI",
     * "userName" : "13856591439",
     * "appKey" : "wx173e6caf5abc718a",
     * "oaId" : "atwl",
     * "platformName" : "安泰物流园区",
     *
     * }
     */
    @Override
    public    String syncHkUserOpenid(Integer id){
        SystemUser user = systemUserMapper.selectById(id);
        if(user == null ||StringUtils.isBlank(user.getOpenid()) ||Constants.equalsInteger(user.getOpenidHkStatus(),Constants.ONE)){
            return null;
        }
        UserOpenidSaveRequest request = new UserOpenidSaveRequest();
        request.setUserName(user.getUsername());
        request.setAppKey(systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_APPID).getCode());
        request.setOaId("atwl");
        request.setOpenId(user.getOpenid());
        request.setPlatformName("安泰物流园区");
        BaseResponse<Integer>  response = HKService.userOpenidSave(request);
        if(response!=null &&response.getCode().equals(HKConstants.RESPONSE_SUCCEE) && Constants.equalsInteger(response.getData(),Constants.ONE)){
            user.setOpenidHkStatus(Constants.ONE);
            user.setOpenidHkInfo("绑定成功");
        }else{
            user.setOpenidHkStatus(Constants.TWO);
            user.setOpenidHkInfo(response!=null?StringUtils.defaultString(response.getMsg(),"【未知失败原因】"):"绑定失败");
        }
        user.setOpenidHkDate(new Date());
        systemUserMapper.updateById(user);
        return  "成功";
    }
    /**
     * 同步海康组织信息,根据erp同步组织结果,定时检查需要下发到海康的组织信息
     */
    @Override
    public   void syncOrgData(){
        if(Constants.DEALING_HK_ORG || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.erp){
    public   void syncOrgData(LoginUserInfo user){
        if(Constants.DEALING_HK_ORG ||
                !(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp
                        || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.self)){
            return   ;
        }
        Constants.DEALING_HK_ORG =true;
@@ -148,7 +190,7 @@
        if(addList!=null &&addList.size()>0){
            //处理新增
            BaseResponse<OrgOrUserAddResponse> result =  HKService.addBatchOrg(addList);
            if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
            if(result !=null && StringUtils.equals(result.getCode(), HKConstants.RESPONSE_SUCCEE)){
                OrgOrUserAddResponse data = result.getData();
                if(data.getSuccesses()!=null && data.getSuccesses().size()>0){
                    //处理新增成功的数据,修改海康同步状态
@@ -261,8 +303,10 @@
     * @return
     */
    @Override
    public   void syncUserData(){
        if(Constants.DEALING_HK_USER  || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.erp){
    public   void syncUserData(LoginUserInfo user){
        if(Constants.DEALING_HK_USER  ||
                !(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp
                || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.self)){
            return   ;
        }
        Constants.DEALING_HK_USER =true;
@@ -282,7 +326,7 @@
                return;
            }
            Date date = new Date();
            String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
            String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode()
                    +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
            for(Member c : list){
                dealMemberInfoBiz(c,date,path) ;
@@ -477,7 +521,7 @@
        }
        if(Constants.equalsInteger(member.getIsdeleted(),Constants.ZERO)){
//                && Constants.equalsObject(member.getHkStatus(),Constants.ONE)){
//                && Constants.equalsInteger(member.getHkStatus(),Constants.ONE)){
            List<Integer> deviceIds =new ArrayList<>();//新设备编码集合
            List<Empower> list = new ArrayList<>();//新授权记录集合
            //如果用户是同步海康成功,添加带下发权限(只管理新增或者编辑的)
@@ -518,7 +562,7 @@
                        .eq(Empower::getMemberId,member.getId())
                        .eq(Empower::getIsdeleted,Constants.ZERO)
                        .in(Empower::getDeviceId,deviceIds) );
                empowerMapper.insertBatchSomeColumn(list);
                empowerMapper.insert(list);
            }
        }
    }
@@ -544,7 +588,7 @@
        List<Integer> deviceIds =new ArrayList<>();//新设备编码集合
        List<Empower> list = new ArrayList<>();//新授权记录集合
        if(Constants.equalsInteger(member.getIsdeleted(),Constants.ZERO)
                && Constants.equalsObject(member.getHkStatus(),Constants.ONE)){
                && Constants.equalsInteger(member.getHkStatus(),Constants.ONE)){
            //如果用户是同步海康成功,添加带下发权限(只管理新增或者编辑的)
            List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,addDoorIds));
            if(deviceList == null || deviceList.size() == 0){
@@ -577,7 +621,7 @@
                    .eq(Empower::getMemberId,member.getId())
                    .eq(Empower::getIsdeleted,Constants.ZERO)
                    .in(Empower::getDeviceId,deviceIds) );
            empowerMapper.insertBatchSomeColumn(list);
            empowerMapper.insert(list);
        }
    }