| | |
| | | package com.doumee.service.business.impl.hksync; |
| | | |
| | | 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; |
| | | 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; |
| | | import com.doumee.core.haikang.model.param.BaseListPageResponse; |
| | | import com.doumee.core.haikang.model.param.BaseResponse; |
| | | import com.doumee.core.haikang.model.param.request.*; |
| | | import com.doumee.core.haikang.model.param.respose.*; |
| | |
| | | import com.doumee.dao.business.MemberCardMapper; |
| | | import com.doumee.dao.business.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.Device; |
| | | import com.doumee.dao.business.model.Empower; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.MemberCard; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.scheduling.annotation.Async; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | |
| | | //查询下发状态 |
| | | BaseResponse<TaskPersonDetailListResponse> response = HKService.taskPersoDetail(param); |
| | | if(response!=null |
| | | && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE) && response.getData()!=null |
| | | ) { |
| | | if (response.getData().getList() != null |
| | | && response.getData().getList().size() > 0) { |
| | | && 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 != null && StringUtils.equals(model.getPersondownloadResult(), "0")) { |
| | | //更新已完成下载任务 |
| | | String remark = ""; |
| | | String cardInfo = "卡片下发失败"; |
| | | TaskPersonDetailCardFaceResponse d = model.getPersonDownloadDetail(); |
| | | if (d.getCards() != null && d.getCards().size() > 0) { |
| | | cardInfo = "卡片:【"; |
| | | for (TaskPersonDetailCardInfoResponse card : d.getCards()) { |
| | | if (model.getPersonDownloadDetail()!=null ) { |
| | | boolean isface = false;//是否人脸下发成功 |
| | | boolean iscard = false;//是否有卡片下发成功 |
| | | //更新已完成下载任务 |
| | | String remark = ""; |
| | | String cardInfo =""; |
| | | TaskPersonDetailCardFaceResponse d = model.getPersonDownloadDetail(); |
| | | 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() + " "; |
| | | iscard=true; |
| | | } |
| | | cardInfo += "】下发成功"; |
| | | } |
| | | if (d.getFaces() == null || d.getFaces().size() == 0) { |
| | | remark = cardInfo + ", 不支持人脸设备!"; |
| | | } else { |
| | | remark = "" + cardInfo + ",人脸下发成功!"; |
| | | if(iscard){ |
| | | cardInfo = "卡片【"+cardInfo+"】下发成功"; |
| | | }else{ |
| | | cardInfo = "卡片下发失败"; |
| | | } |
| | | empowerMapper.update(null, new UpdateWrapper<Empower>() |
| | | .lambda() |
| | | .eq(Empower::getId, c.getId()) |
| | | .set(Empower::getRemark, remark) |
| | | .set(Empower::getSendInfo, remark) |
| | | .set(Empower::getSendStatus, Constants.EmpowerStatus.pass)); |
| | | }else { |
| | | cardInfo = "卡片下发失败"; |
| | | } |
| | | if (d.getFaces() == null || d.getFaces().size() == 0) { |
| | | remark = cardInfo + ", 无人脸下发!"; |
| | | } else { |
| | | empowerMapper.update(null, new UpdateWrapper<Empower>() |
| | | .lambda() |
| | | .eq(Empower::getId, c.getId()) |
| | | .set(Empower::getRemark, "下发失败") |
| | | .set(Empower::getSendInfo, "下发失败") |
| | | .set(Empower::getSendStatus, Constants.EmpowerStatus.fail)); |
| | | if(d.getFaces().get(0).getErrorCode() !=null && d.getFaces().get(0).getErrorCode().equals(HKConstants.RESPONSE_SUCCEE)){ |
| | | isface=true; |
| | | remark = "" + cardInfo + ",人脸下发成功!"; |
| | | }else{ |
| | | isface=false; |
| | | if(d.getFaces().get(0).getErrorCode()!=null && |
| | | (d.getFaces().get(0).getErrorCode().equals(HKResponseCode.ReturnCode.RESPONSE_FACE_ERROR.getKey()) || |
| | | d.getFaces().get(0).getErrorCode().equals(HKResponseCode.ReturnCode.RESPONSE_FACE_ERROR2.getKey()))){ |
| | | //如果人脸不合格 |
| | | memberMapper.update(null,new UpdateWrapper<Member>().lambda() |
| | | .eq(Member::getId,c.getMemberId()) |
| | | .set(Member::getFaceStatus,Constants.THREE) |
| | | .set(Member::getEditDate,new Date()) |
| | | ); |
| | | remark = "" + cardInfo + ",人脸建模失败!"; |
| | | }else if(d.getFaces().get(0).getErrorCode()!=null && d.getFaces().get(0).getErrorCode().equals(HKResponseCode.ReturnCode.RESPONSE_DEVICE_NOFAVOR.getKey())){ |
| | | //如果设备不支持人脸下发 |
| | | isface=true;//此情况不要考虑人脸下发结果 |
| | | remark = "" + cardInfo + ",设备不支持人脸下发!"; |
| | | }else{ |
| | | remark = "" + cardInfo + ",人脸下发失败!"; |
| | | } |
| | | } |
| | | } |
| | | } else { |
| | | //如果是已删除的数据,下发失败(防止设备离线),则尝试重新下发任务 |
| | | if(Constants.equalsInteger(c.getIsdeleted(), Constants.ONE) ){ |
| | | // && Constants.formatIntegerNum(c.getTryNum())+1 < tryNum ){ |
| | | empowerMapper.update(null, new UpdateWrapper<Empower>() |
| | | .lambda() |
| | | .eq(Empower::getId, c.getId()) |
| | | .set(Empower::getRemark, "下发失败,等待重新删除权限") |
| | | // .set(Empower::getHkId,null) |
| | | // .set(Empower::getSendDate,null) |
| | | .set(Empower::getTryNum,Constants.formatIntegerNum(c.getTryNum())+1) |
| | | .set(Empower::getSendInfo, "下发失败,等待重新删除权限") |
| | | .set(Empower::getSendStatus, Constants.EmpowerStatus.wait)); |
| | | empowerMapper.update(null, new UpdateWrapper<Empower>() |
| | | .lambda() |
| | | .eq(Empower::getId, c.getId()) |
| | | .set(Empower::getRemark, "删除权限下发失败") |
| | | .set(Empower::getSendInfo, "删除权限下发失败") |
| | | .set(Empower::getSendStatus, Constants.EmpowerStatus.fail)); |
| | | }else{ |
| | | empowerMapper.update(null, new UpdateWrapper<Empower>() |
| | | .lambda() |
| | | .eq(Empower::getId, c.getId()) |
| | | .set(Empower::getRemark, "下发失败") |
| | | .set(Empower::getSendInfo, "下发失败") |
| | | .set(Empower::getSendStatus, Constants.EmpowerStatus.fail)); |
| | | //如果返回下发成功 或者 人脸下发成功并且卡片下发成功 |
| | | boolean isSuccess =StringUtils.equals(model.getPersondownloadResult(), "0") || (iscard&&isface); |
| | | empowerMapper.update(null, new UpdateWrapper<Empower>() |
| | | .lambda() |
| | | .eq(Empower::getId, c.getId()) |
| | | .set(Empower::getRemark, remark) |
| | | .set(Empower::getEditDate,new Date()) |
| | | .set(Empower::getSendInfo, 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) ){ |
| | | //如果是删除权限成功,检查是否删除人员 |
| | | checkDelMemberTask(c.getMemberId(),c.getMemberHkId()); |
| | | } |
| | | continue; |
| | | } |
| | | checkDelMemberTask(c.getMemberId()); |
| | | } |
| | | //所有异常情况都标记为下发失败 |
| | | //如果是已删除的数据,下发失败(防止设备离线),则尝试重新下发任务 |
| | | if(Constants.equalsInteger(c.getIsdeleted(), Constants.ONE) ){ |
| | | empowerMapper.update(null, new UpdateWrapper<Empower>() |
| | | .lambda() |
| | | .eq(Empower::getId, c.getId()) |
| | | .set(Empower::getRemark, "删除权限下发失败") |
| | | .set(Empower::getSendInfo, "删除权限下发失败") |
| | | .set(Empower::getTryNum,Constants.formatIntegerNum(c.getTryNum())+1) |
| | | .set(Empower::getSendStatus, Constants.EmpowerStatus.fail)); |
| | | }else{ |
| | | empowerMapper.update(null, new UpdateWrapper<Empower>() |
| | | .lambda() |
| | | .eq(Empower::getId, c.getId()) |
| | | .set(Empower::getEditDate,new Date()) |
| | | .set(Empower::getRemark, "下发失败") |
| | | .set(Empower::getTryNum,Constants.formatIntegerNum(c.getTryNum())+1) |
| | | .set(Empower::getSendInfo, "下发失败") |
| | | .set(Empower::getSendStatus, Constants.EmpowerStatus.fail)); |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | |
| | | }finally { |
| | | // Constants.DEALING_HK_EMPOWER_DETAIL=false; |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | }); |
| | |
| | | * @param id |
| | | * @param date |
| | | */ |
| | | private boolean doHkDeleteUser(Integer id,String delHkIds, Date date ) { |
| | | public static boolean doHkDeleteUser(Integer id,String delHkIds, Date date ,MemberMapper memberMapper,MemberCardMapper memberCardMapper) { |
| | | if(StringUtils.isBlank(delHkIds)){ |
| | | |
| | | return true; |
| | | } |
| | | UserDelRequest request = new UserDelRequest(); |
| | | 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)){ |
| | | List<String> fIds = new ArrayList<>(); |
| | | //标记删除成功的数据(海康对接状态为已同步,,同步失败的仍为待同步,等下一次继续处理,知道全部删除完毕) |
| | | if(result.getData()!=null && result.getData().size()>0){ |
| | | log.info("海康删除用户失败:==============="+result.getData().get(0).getPersonId()); |
| | | memberMapper.update(null,new UpdateWrapper<Member>().lambda() |
| | | .set(Member::getHkStatus,Constants.TWO)//同步失败 |
| | | .set(Member::getRemark,"同步海康删除失败")//同步失败 |
| | | .set(Member::getHkDate,date) |
| | | .in(Member::getId, id)); |
| | | UserDelResponse tem = result.getData().get(0); |
| | | if(tem!=null && StringUtils.equals(tem.getPersonId(),delHkIds)){ |
| | | UserByParamListRequest param = new UserByParamListRequest(); |
| | | param.setPersonIds(delHkIds); |
| | | param.setPageNo(1); |
| | | param.setPageSize(2); |
| | | BaseResponse<BaseListPageResponse<UserInfoResponse>> t = HKService.personList(param); |
| | | if(t!=null && t.getData()!=null && t.getData().getTotal() ==0){ |
| | | //人员信息已被删除的异常 作为已删除成功处理 |
| | | succes =true; |
| | | }else{ |
| | | //排除人员信息已被删除的异常 |
| | | memberMapper.update(null,new UpdateWrapper<Member>().lambda() |
| | | .set(Member::getHkStatus,Constants.TWO)//同步失败 |
| | | .set(Member::getRemark,"同步海康删除失败" + JSONObject.toJSONString(result.getData().get(0)))//同步失败 |
| | | .set(Member::getHkDate,date) |
| | | .in(Member::getId, id)); |
| | | } |
| | | } |
| | | }else{ |
| | | //标记删除成功的数据(海康对接状态为已同步,,同步失败的仍为待同步,等下一次继续处理,知道全部删除完毕) |
| | | succes =true; |
| | | } |
| | | if(succes){ |
| | | memberMapper.update(null,new UpdateWrapper<Member>().lambda() |
| | | .set(Member::getHkStatus,Constants.ONE)//同步成功 |
| | | .set(Member::getRemark,"同步海康删除失败")//同步失败 |
| | | .set(Member::getRemark,"已同步")//同步失败 |
| | | .set(Member::getHkDate,date) |
| | | .in(Member::getId, id)); |
| | | //删除所有绑定的卡片信息 |
| | | memberCardMapper.delete(new QueryWrapper<MemberCard>().lambda().eq(MemberCard::getMemberId,id)); |
| | | } |
| | | return true; |
| | | } |
| | | return false; |
| | | return succes; |
| | | } |
| | | |
| | | /** |
| | | * 检查删除人员的权限是否都删除完成,如果权限删除完成, 进行海康人员的删除操作 |
| | | */ |
| | | private void checkDelMemberTask(Integer memberId) { |
| | | private void checkDelMemberTask(Integer memberId,String memberHkid) { |
| | | Date date = new Date(); |
| | | Member member = memberMapper.selectById(memberId); |
| | | if(member!=null && Constants.equalsInteger(member.getIsdeleted(),Constants.ONE) ){ |
| | | // Member member = memberMapper.selectById(memberId); |
| | | // if(member!=null && Constants.equalsInteger(member.getIsdeleted(),Constants.ONE) ){ |
| | | if(empowerMapper.selectCount(new QueryWrapper<Empower>().lambda() |
| | | .eq(Empower::getMemberId,member.getId()) |
| | | .eq(Empower::getMemberId,memberId) |
| | | .eq(Empower::getIsdeleted,Constants.ONE) |
| | | .ne(Empower::getFailFlag,Constants.ONE) |
| | | .ne(Empower::getSendStatus,Constants.EmpowerStatus.pass)) ==0){ |
| | | //如果权限都已经删除成功,则删除海康人员和卡片数据 |
| | | doHkDeleteUser(member.getId(),member.getHkId(),date); |
| | | } |
| | | doHkDeleteUser(memberId,memberHkid,date,memberMapper,memberCardMapper); |
| | | // } |
| | | } |
| | | } |
| | | |
| | |
| | | .lambda() |
| | | .eq(Empower::getHkId,c.getHkId() ) |
| | | .set(Empower::getSendInfo,"任务已下载完成" ) |
| | | .set(Empower::getRemark,"任务已下载完成" ) |
| | | .set(Empower::getSendStatus,Constants.EmpowerStatus.downloaded) ); |
| | | |
| | | } |
| | | }else if(response!=null |
| | | && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE) |
| | | && response.getData()==null){ |
| | | empowerMapper.update(null,new UpdateWrapper<Empower>() |
| | | .lambda() |
| | | .eq(Empower::getHkId,c.getHkId() ) |
| | | .set(Empower::getSendInfo,"任务已被删除,下发失败" ) |
| | | .set(Empower::getRemark,"任务已被删除,下发失败" ) |
| | | .set(Empower::getSendStatus,Constants.EmpowerStatus.fail) ); |
| | | } |
| | | } |
| | | }catch (Exception e1){ |
| | |
| | | * 处理人员授权数据,定时下发 |
| | | */ |
| | | @Override |
| | | public Integer syncEmpowerFailData(Integer endId) { |
| | | List<Empower> allList =getAllFailDealList( endId); |
| | | if(allList!=null && allList.size()>0){ |
| | | Date date = new Date(); |
| | | List<Integer> retryIds = new ArrayList<>(); |
| | | List<Integer> noIds = new ArrayList<>(); |
| | | for(Empower empower:allList){ |
| | | //如果是删除的权限下发,查询是否伺候有下发成功的数据,如果有,则不处理 |
| | | // int flag= empowerMapper.selectCount(new QueryWrapper<Empower>().lambda() |
| | | // .eq(Empower::getMemberId,empower.getMemberId()) |
| | | // .eq(Empower::getDeviceId,empower.getDeviceId() ) |
| | | // .gt(Empower::getId,empower.getId()) |
| | | // .last("limit 1")); |
| | | if(empower.getTempCouunt() ==0){ |
| | | retryIds.add(empower.getId()); |
| | | }else{ |
| | | //如果之后时间内又重新下发记录,则跳过不做处理 |
| | | noIds.add(empower.getId()); |
| | | } |
| | | } |
| | | |
| | | if(retryIds.size()>0){ |
| | | empowerMapper.update(null,new UpdateWrapper<Empower>().lambda() |
| | | .set(Empower::getCreateDate,date) |
| | | .set(Empower::getSendStatus,Constants.EmpowerStatus.wait) |
| | | .set(Empower::getEditDate,date) |
| | | .set(Empower::getRemark,"下发失败,待重新下发~") |
| | | .set(Empower::getSendInfo,"下发失败,待重新下发~") |
| | | .in(Empower::getId,retryIds)); |
| | | } |
| | | if(noIds.size()>0){ |
| | | empowerMapper.update(null,new UpdateWrapper<Empower>().lambda() |
| | | .set(Empower::getEditDate,date) |
| | | .set(Empower::getRemark,"下发失败,已失效~") |
| | | .set(Empower::getSendInfo,"下发失败,已失效~") |
| | | .set(Empower::getFailFlag,Constants.ONE) |
| | | .in(Empower::getId,noIds)); |
| | | } |
| | | return allList.get(allList.size()-1).getId(); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | * 处理人员授权数据,定时下发 |
| | | */ |
| | | @Override |
| | | public Integer syncEmpowerData(Integer endId) { |
| | | // if(Constants.DEALING_HK_EMPOWER){ |
| | | // return null ; |
| | | // } |
| | | // Constants.DEALING_HK_EMPOWER =true; |
| | | //先删除所有需要取消授权的数据 |
| | | if(empowerMapper.selectCount(new QueryWrapper<Empower>().lambda() |
| | | .eq(Empower::getSendStatus,Constants.EmpowerStatus.ing)) > 1000){ |
| | | //如果当前任务大于1000个(大概10个任务) |
| | | return endId; |
| | | } |
| | | List<Empower> allList =getAllWaitDealList( endId); |
| | | if(allList !=null && allList.size()>0){ |
| | | //查询所有需要同步的数据,重新下发最新人员权限即可 |
| | | // dealNewListTask(getDealList(Constants.ZERO,endId)); |
| | | List<Empower> dellist = new ArrayList<>(); |
| | | List<Empower> addlist = new ArrayList<>(); |
| | | for(Empower e : allList){ |
| | | if(Constants.equalsInteger(e.getIsdeleted(),Constants.ONE)){ |
| | | dellist.add(e); |
| | | }else { |
| | | addlist.add(e); |
| | | } |
| | | } |
| | | Thread t1=new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | if(dellist!=null &&dellist.size()>0) { |
| | | dealDelListTask(dellist); |
| | | } |
| | | if(addlist!=null &&addlist.size()>0) { |
| | | dealNewListTask(addlist); |
| | | } |
| | | dealAllListTask(allList); |
| | | } |
| | | }); |
| | | t1.start(); |
| | |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | }finally { |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | .set(Empower::getEditDate,date) |
| | | .in(Empower::getId,successList)); |
| | | } |
| | | |
| | | empowerMapper.update(null,new UpdateWrapper<Empower>() |
| | | if(errorList.size()>0){ |
| | | empowerMapper.update(null,new UpdateWrapper<Empower>() |
| | | .lambda() |
| | | .set(Empower::getSendStatus,Constants.EmpowerStatus.fail) |
| | | .set(Empower::getSendDate,date) |
| | |
| | | .set(Empower::getRemark, "添加下发任务数据刪除授权失败") |
| | | .set(Empower::getEditDate,date) |
| | | .in(Empower::getId,errorList)); |
| | | |
| | | } |
| | | } |
| | | public class TaskRuner implements Runnable{ |
| | | private List<Empower> list ; |
| | |
| | | public void setList(List<Empower> list) { |
| | | this.list = list; |
| | | } |
| | | } |
| | | private void dealAllListTask(List<Empower> list) { |
| | | //按照父级申请分批处理每次申请数据 |
| | | if(list ==null || list.size()==0){ |
| | | return; |
| | | } |
| | | // clearAllEmpowerFirst(list); |
| | | Date date = new Date(); |
| | | //创建任务 |
| | | String taskId = hkTaskAddtion(); |
| | | List<Empower> successList = new ArrayList<>(); |
| | | List<Empower> errorList = new ArrayList<>(); |
| | | List<Empower> waitList = new ArrayList<>(); |
| | | List<Empower> cancelList = new ArrayList<>(); |
| | | List<Empower> faceErrorList = new ArrayList<>(); |
| | | for(Empower c : list) { |
| | | //向任务添加人员、设备信息数据 |
| | | if (Constants.equalsInteger(c.getDeviceDeleted(),Constants.ONE) || |
| | | (Constants.equalsInteger(c.getMemberDeleted(), Constants.ONE) && |
| | | Constants.equalsInteger(c.getMemberHkStatus(), Constants.ONE))){ |
| | | cancelList.add(c); |
| | | continue; |
| | | } |
| | | if(c.getDeviceOnline() !=null && Constants.equalsInteger(c.getDeviceOnline(),0)){ |
| | | waitList.add(c); |
| | | continue; |
| | | } |
| | | if( Constants.equalsInteger(c.getMemberFaceStatus(),Constants.THREE)){ |
| | | faceErrorList.add(c); |
| | | continue; |
| | | } |
| | | HKConstants.OPERA_TYPE flag = HKConstants.OPERA_TYPE.ADD; |
| | | if(Constants.equalsObject(c.getIsdeleted(),Constants.ONE)){ |
| | | flag = HKConstants.OPERA_TYPE.DEL; |
| | | } |
| | | if(addTaskData(c,taskId,flag.getKey())){ |
| | | successList.add(c); |
| | | }else{ |
| | | errorList.add(c); |
| | | } |
| | | } |
| | | if(successList.size()>0){ |
| | | //开始执行下发 |
| | | boolean status = startTask(taskId); |
| | | for(Empower model : successList){ |
| | | Empower update = new Empower(); |
| | | update.setId(model.getId()); |
| | | update.setSendDate(date); |
| | | update.setEditDate(date); |
| | | update.setHkId(taskId); |
| | | update.setRemark(status?"下发任务成功":"下发任务失败"); |
| | | update.setSendInfo(status?"下发任务成功":"下发任务失败"); |
| | | //下发中 |
| | | update.setSendStatus(status?Constants.EmpowerStatus.ing:Constants.EmpowerStatus.fail); |
| | | empowerMapper.updateById(update); |
| | | } |
| | | } |
| | | |
| | | if(errorList.size()>0){ |
| | | for(Empower model : errorList){ |
| | | Empower update = new Empower(); |
| | | update.setId(model.getId()); |
| | | update.setSendDate(date); |
| | | update.setEditDate(date); |
| | | update.setHkId(taskId); |
| | | update.setSendStatus(Constants.EmpowerStatus.fail); |
| | | update.setRemark( "添加下发任务数据失败"); |
| | | update.setSendInfo( "添加下发任务数据失败"); |
| | | empowerMapper.updateById(update); |
| | | } |
| | | } |
| | | if(waitList.size()>0){ |
| | | for(Empower model : waitList){ |
| | | Empower update = new Empower(); |
| | | update.setId(model.getId()); |
| | | update.setSendDate(date); |
| | | update.setEditDate(date); |
| | | update.setHkId(taskId); |
| | | update.setSendStatus(Constants.EmpowerStatus.fail); |
| | | update.setRemark( "设备状态异常,等待重新下发"); |
| | | update.setSendInfo( "设备状态异常,等待重新下发"); |
| | | empowerMapper.updateById(update); |
| | | } |
| | | } |
| | | if(cancelList.size()>0){ |
| | | for(Empower model : cancelList){ |
| | | Empower update = new Empower(); |
| | | update.setId(model.getId()); |
| | | update.setSendDate(date); |
| | | update.setEditDate(date); |
| | | update.setHkId(taskId); |
| | | update.setFailFlag(Constants.ONE); |
| | | update.setSendStatus(Constants.EmpowerStatus.cancel); |
| | | update.setRemark( "设备或人员已删除,取消下发"); |
| | | update.setSendInfo( "设备或人员已删除,取消下发"); |
| | | empowerMapper.updateById(update); |
| | | } |
| | | } |
| | | if(faceErrorList.size()>0){ |
| | | for(Empower model : faceErrorList){ |
| | | Empower update = new Empower(); |
| | | update.setId(model.getId()); |
| | | update.setSendDate(date); |
| | | update.setEditDate(date); |
| | | update.setHkId(taskId); |
| | | update.setSendStatus(Constants.EmpowerStatus.fail); |
| | | update.setRemark( "人脸建模失败,等待更换人脸后重新下发"); |
| | | update.setSendInfo( "人脸建模失败,等待更换人脸后重新下发"); |
| | | empowerMapper.updateById(update); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | private void dealNewListTask(List<Empower> list) { |
| | | //按照父级申请分批处理每次申请数据 |
| | |
| | | } |
| | | } |
| | | |
| | | for(Empower model : errorList){ |
| | | Empower update = new Empower(); |
| | | update.setId(model.getId()); |
| | | update.setSendDate(date); |
| | | update.setEditDate(date); |
| | | update.setHkId(taskId); |
| | | update.setSendStatus(Constants.EmpowerStatus.fail); |
| | | update.setRemark( "添加下发任务数据失败"); |
| | | update.setSendInfo( "添加下发任务数据失败"); |
| | | empowerMapper.updateById(update); |
| | | if(errorList.size()>0){ |
| | | for(Empower model : errorList){ |
| | | Empower update = new Empower(); |
| | | update.setId(model.getId()); |
| | | update.setSendDate(date); |
| | | update.setEditDate(date); |
| | | update.setHkId(taskId); |
| | | update.setSendStatus(Constants.EmpowerStatus.fail); |
| | | update.setRemark( "添加下发任务数据失败"); |
| | | update.setSendInfo( "添加下发任务数据失败"); |
| | | empowerMapper.updateById(update); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | queryWrapper.selectAll(Empower.class); |
| | | queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo); |
| | | queryWrapper.selectAs(Member::getHkId,Empower::getMemberHkId); |
| | | queryWrapper.selectAs(Member::getFaceStatus,Empower::getMemberFaceStatus); |
| | | queryWrapper.selectAs(Device::getOnline,Empower::getDeviceOnline); |
| | | queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode); |
| | | queryWrapper.selectAs(Device::getResourceType,Empower::getDeviceType); |
| | | queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId); |
| | |
| | | queryWrapper.orderByAsc(Empower::getId ); |
| | | // queryWrapper.orderByAsc(Empower::getCreateDate ); |
| | | queryWrapper.last("limit 100");//每次限制下发100个 |
| | | List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper); |
| | | return list; |
| | | } |
| | | private List<Empower> getAllFailDealList(int endId ) { |
| | | MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.select(Empower::getId,Empower::getMemberId,Empower::getDeviceId,Empower::getIsdeleted); |
| | | queryWrapper.select(" (select count(1) from empower ee where ee.member_id=t.MEMBER_ID and ee.device_id =t.DEVICE_ID and ee.id>t.id) as tempCouunt"); |
| | | queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId); |
| | | queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId); |
| | | queryWrapper.ne(Member::getFaceStatus,Constants.THREE);//人脸建模没有失败过的 |
| | | queryWrapper.ne(Device::getOnline,Constants.ZERO+"");//非离线 |
| | | queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.fail); |
| | | queryWrapper.gt(Empower::getId,endId); |
| | | queryWrapper.and(w-> w.eq( Empower::getFailFlag,Constants.ZERO).or().isNull(Empower::getFailFlag)); |
| | | queryWrapper.orderByAsc(Empower::getId ); |
| | | List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper); |
| | | return list; |
| | | } |
| | |
| | | MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAll(Empower.class); |
| | | queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo); |
| | | queryWrapper.selectAs(Member::getIsdeleted,Empower::getMemberDeleted); |
| | | queryWrapper.selectAs(Member::getHkId,Empower::getMemberHkId); |
| | | queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode); |
| | | queryWrapper.selectAs(Device::getResourceType,Empower::getDeviceType); |