doum
14 小时以前 1dd0a2bb164658031c5e2db4f215424b86dcd0b5
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
@@ -4,7 +4,6 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.haikang.model.HKConstants;
import com.doumee.core.haikang.model.HKResponseCode;
@@ -17,16 +16,14 @@
import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.DeviceMapper;
import com.doumee.dao.business.MemberCardMapper;
import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.dao.MemberMapper;
import com.doumee.dao.business.join.EmpowerJoinMapper;
import com.doumee.dao.business.join.VisitsJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.model.Member;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -73,7 +70,13 @@
            public void run() {
                try {
                    for(Empower c : list){
                        TaskPersonDetailRequest param = new TaskPersonDetailRequest();
                        AuthResultPageRequest param = new AuthResultPageRequest();
                        param.setPageNo(1);
                        param.setPageSize(999);
                        param.setBusinessNo(c.getHkId());
                        BaseResponse<AuthResultPageResponse> response =HKService.authResultPage(param);
                       /* TaskPersonDetailRequest param = new TaskPersonDetailRequest();
                        param.setPageNo(1);
                        param.setPageSize(10);
                        param.setPersonIds(new String[]{c.getMemberHkId()});
@@ -83,22 +86,24 @@
                        rec.setResourceType(c.getDeviceType());
                        param.setResourceInfo(rec);
                        //查询下发状态
                        BaseResponse<TaskPersonDetailListResponse> response = HKService.taskPersoDetail(param);
                        BaseResponse<TaskPersonDetailListResponse> response = HKService.taskPersoDetail(param);*/
                        if(response!=null
                                && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)
                                && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)
                                && response.getData()!=null
                                && response.getData().getList() != null
                                && response.getData().getList().size() > 0
                                &&response.getData().getList().get(0) !=null){
                                TaskPersonDetailResponse model = response.getData().getList().get(0);
                            if (model.getPersonDownloadDetail()!=null ) {
//                                TaskPersonDetailResponse model = response.getData().getList().get(0);
                            AuthResultPageDetailResponse model = getAuthDetailByUserAndDevice(c,response.getData().getList());
//                            if (model.getPersonDownloadDetail()!=null ) {
                            if (model!=null ) {
                                boolean isface = false;//是否人脸下发成功
                                boolean iscard = false;//是否有卡片下发成功
                                //更新已完成下载任务
                                String remark = "";
                                String cardInfo ="";
                                TaskPersonDetailCardFaceResponse d = model.getPersonDownloadDetail();
                                if (d.getCards() != null && d.getCards().size() > 0) {
                               /* if (d.getCards() != null && d.getCards().size() > 0) {
                                    for (TaskPersonDetailCardInfoResponse card : d.getCards()) {
                                        if(StringUtils.equals(card.getErrorCode(),HKResponseCode.ReturnCode.RESPONSE_SUCCEE.getKey())){
                                            cardInfo += card.getId() + " ";
@@ -141,13 +146,31 @@
                                    }
                                }
                                //如果返回下发成功 或者 人脸下发成功并且卡片下发成功
                                boolean isSuccess =StringUtils.equals(model.getPersondownloadResult(), "0") || (iscard&&isface);
                                boolean isSuccess =StringUtils.equals(model.getPersondownloadResult(), "0") || (iscard&&isface);*/
                                if (Constants.equalsInteger(model.getDownCardStatus(),0)) {
                                    cardInfo = "卡片下发未变更";
                                }else  if (!Constants.equalsInteger(model.getDownCardStatus(),1)) {
                                    cardInfo = "卡片下发成功";
                                }else {
                                    cardInfo = "卡片下发失败";
                                }
                                if ( Constants.equalsInteger(model.getDownFaceStatus(),0)) {
                                    remark = "人脸为变更!";
                                } else  if (!Constants.equalsInteger(model.getDownFaceStatus(),1)) {
                                    remark = "人脸下发成功!";
                                }else{
                                    remark = "人脸下发失败!";
                                }
                                //下发成功或者未变更
                                boolean isSuccess = Constants.equalsInteger(model.getDownPersonStatus(),1)|| Constants.equalsInteger(model.getDownPersonStatus(),0) ;
                                empowerMapper.update(null, new UpdateWrapper<Empower>()
                                        .lambda()
                                        .eq(Empower::getId, c.getId())
                                        .set(Empower::getRemark, remark)
                                        .set(Empower::getRemark,cardInfo+ remark)
                                        .set(Empower::getEditDate,new Date())
                                        .set(Empower::getSendInfo, remark)
                                        .set(Empower::getSendInfo,cardInfo+remark)
                                        .set(Empower::getSendStatus, isSuccess?Constants.EmpowerStatus.pass:Constants.EmpowerStatus.fail));
                                if(isSuccess && Constants.equalsInteger(c.getMemberDeleted(), Constants.ONE)&& Constants.equalsInteger(c.getIsdeleted(), Constants.ONE) ){
                                    //如果是删除权限成功,检查是否删除人员
@@ -187,6 +210,15 @@
    }
    private AuthResultPageDetailResponse getAuthDetailByUserAndDevice(Empower c, List<AuthResultPageDetailResponse> list) {
        for(AuthResultPageDetailResponse t : list){
            if(StringUtils.equals(t.getPersonId(),c.getMemberHkId()) && StringUtils.equals(t.getDeviceIndexCode(),c.getDeviceIndexCode())){
                return t;
            }
        }
        return null;
    }
    /**
     * 对海康删除组织信息
@@ -202,7 +234,7 @@
        request.setPersonIds(new String[]{delHkIds});
        BaseResponse<List<UserDelResponse>> result =  HKService.delBatchUser(request);
        boolean succes = false;
        if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
        if(result !=null && StringUtils.equals(result.getCode(), HKConstants.RESPONSE_SUCCEE)){
            //标记删除成功的数据(海康对接状态为已同步,,同步失败的仍为待同步,等下一次继续处理,知道全部删除完毕)
            if(result.getData()!=null && result.getData().size()>0){
                UserDelResponse tem = result.getData().get(0);
@@ -437,7 +469,12 @@
                Thread t1=new Thread(new Runnable() {
                    @Override
                    public void run() {
                        dealAllListTask(allList);
                        try {
                            dealAllListTask(allList);
                        }catch (Exception e){
                            log.info("======================下发授权异常:"+e.getMessage());
                            e.printStackTrace();
                        }
                    }
                });
                t1.start();
@@ -543,7 +580,8 @@
        List<Empower> faceErrorList = new ArrayList<>();
        for(Empower c : list) {
            //向任务添加人员、设备信息数据
            if((Constants.equalsInteger(c.getMemberDeleted(),Constants.ONE) &&
            if((Constants.equalsInteger(c.getIsdeleted(),Constants.ZERO) &&
                    Constants.equalsInteger(c.getMemberDeleted(),Constants.ONE) &&
                    Constants.equalsInteger(c.getMemberHkStatus(),Constants.ONE))
                    ||  Constants.equalsInteger(c.getDeviceDeleted(),1)){
                //如果人員或者設備删除,取消下发
@@ -551,7 +589,8 @@
                continue;
            }
            if(Constants.equalsInteger(c.getMemberDeleted(),Constants.ONE)
                   && Constants.equalsInteger(c.getIsdeleted(),1)){
                    && Constants.equalsInteger(c.getMemberHkStatus(),Constants.ONE)
                    && Constants.equalsInteger(c.getIsdeleted(),Constants.ZERO)){
                //如果人员已离职,新增授权无需下发,取消下发
                cacenList.add(c);
                continue;
@@ -788,8 +827,8 @@
        queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo);
        queryWrapper.selectAs(Member::getHkId,Empower::getMemberHkId);
        queryWrapper.selectAs(Member::getFaceStatus,Empower::getMemberFaceStatus);
        queryWrapper.selectAs(Member::getHkStatus,Empower::getMemberFaceStatus);
        queryWrapper.selectAs(Device::getOnline,Empower::getMemberHkStatus);
        queryWrapper.selectAs(Member::getHkStatus,Empower::getMemberHkStatus);
        queryWrapper.selectAs(Device::getOnline,Empower::getDeviceOnline);
        queryWrapper.selectAs(Device::getIsdeleted,Empower::getDeviceDeleted);
        queryWrapper.selectAs(Member::getIsdeleted,Empower::getMemberDeleted);
        queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode);