liukangdong
2024-09-19 0950b4eaf72d2b253fbc378f5dd56b59a2a6a4ab
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -7,9 +7,7 @@
import com.doumee.config.SpringContextUtil;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.haikang.model.HKConstants;
import com.doumee.core.haikang.model.param.request.CustomBroadcastRequest;
import com.doumee.core.haikang.model.param.request.TransparentChannelBodyRequest;
import com.doumee.core.haikang.model.param.request.TransparentChannelHeadRequest;
import com.doumee.core.haikang.model.param.request.*;
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsInfoRequest;
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
import com.doumee.core.haikang.model.param.request.event.acs.EventDeviceDataRequest;
@@ -334,7 +332,7 @@
     * @return
     */
    @Override
    public String    dealVisitEventIccm(EventVisitIccmRequest param, HttpServletResponse response){
    public String     dealVisitEventIccm(EventVisitIccmRequest param, HttpServletResponse response){
        log.info("【海康访客事件推送】==========开始=======:\n"+JSONObject.toJSONString(param));
        String result = null;
        try {
@@ -354,7 +352,8 @@
                    continue;
                }
                //海康访客记录编码
                dealVisitDataByRequstIccm(request,delRetentionLis,retentionList,list);
                dealVisitDataByRequstIccm(request,delRetentionLis,retentionList);
                list.add(getVisitEventModelByRequestIccm(request,request.getData().getVisitorInformationList().get(0)));
            }
            if(list.size()>0){
                //插入门禁记录
@@ -382,14 +381,14 @@
    /**
     *  根据访客推送访客记录编码,处理访客记录、在场人员等信息
     */
    private void dealVisitDataByRequstIccm(EventVisitIccmInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList,List<VisitEvent> list) {
    private void dealVisitDataByRequstIccm(EventVisitIccmInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList ) {
        EventVisitIccmDataRequest model = request.getData();
        EventVisitIccmInvoiceParamRequest data =  request.getData().getVisitorInvoices();
        MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(Visits.class);
        queryWrapper.selectAs(Member::getType,Visits::getMemberType);
        queryWrapper.eq(Visits::getHkId,model.getVisitorInvoices().getInvoicesId() );//访客单号
        queryWrapper.eq(Visits::getHkId,model.getVisitorInvoices().getInvoicesNo() );//访客单号
        queryWrapper.leftJoin(Member.class,Member::getId,Visits::getMemberId );
        queryWrapper.last("limit 1");
        Visits visits = visitsMapper.selectJoinOne(Visits.class,queryWrapper);
@@ -427,6 +426,7 @@
            updateVistis.setEditDate(new Date());
            //更新访客来访或者签离时间信息
            visitsMapper.updateById(updateVistis) ;
        }
    }
    private Retention getRetentionModelByVisitRequest(Visits visits, String happentTime,String srcType) {
@@ -453,13 +453,19 @@
        return retention;
    }
    private VisitEvent getVisitEventModelByRequest(EventVisitIccmInfoRequest request,EventVisitIccmDetailParamRequest detail) {
    private VisitEvent getVisitEventModelByRequestIccm(EventVisitIccmInfoRequest request,EventVisitIccmDetailParamRequest detail) {
        if(request.getData().getTargetPerson() ==null){
            request.getData().setTargetPerson(new EventVisitIccmTargetParamRequest());
        }
        if(request.getData().getVisitorInvoices() == null){
            request.getData().setVisitorInvoices(new EventVisitIccmInvoiceParamRequest());
        }
        VisitEvent event = new VisitEvent();
        event.setIsdeleted(Constants.ZERO);
        event.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
        event.setCreateDate(DateUtil.getISO8601DateByStr2(request.getHappenTime()));
        if(event.getCreateDate() == null){
            event.setCreateDate(new Date());
        }
        event.setVisitorWorkUint(detail.getUnit());
        event.setVisitorId(detail.getVisitorId());
        event.setVisitorCode(detail.getAppointmentCode());
@@ -483,7 +489,7 @@
        event.setPhotoUrl(getHkImgUrl(detail.getFacePic()));
        event.setPersonName(detail.getVisitorName());
        event.setCarNo(detail.getPlateNo());
        event.setInvoicesNo(request.getData().getVisitorInvoices().getInvoicesNo());//访客单号
        event.setIdType(detail.getCertType());
        String idnum = detail.getCertNo();
        if(StringUtils.isNotBlank(idnum)){
@@ -572,6 +578,7 @@
        event.setPhotoUrl(getHkImgUrl(request.getData().getPhotoUrl()));
        event.setPersonName(request.getData().getPersonName());
        event.setCarNo(request.getData().getCarNo());
        event.setInvoicesNo(request.getData().getVisitorId());
        event.setCaptureUrl(request.getData().getCaptureUrl());
        if(StringUtils.isNotBlank(request.getData().getCaptureUrl())){
            event.setCaptureUrl(HKConstants.IMG_INDEX+request.getData().getCaptureUrl());
@@ -614,7 +621,6 @@
        retention.setMemberId(visits.getMemberId());
//        retention.setDeviceName(request.getSrcName());
//        retention.setDeviceIndex(request.getSrcIndex());
        return retention;
    }
@@ -1035,24 +1041,30 @@
                continue;
            }
            if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
                //如果是LED
                TransparentChannelBodyRequest request = new TransparentChannelBodyRequest();
                TransparentChannelBodyRequest body = new TransparentChannelBodyRequest();
                TransparentChannelHeadRequest head = new TransparentChannelHeadRequest();
                TransparentChannelBodyParamRequest request = new TransparentChannelBodyParamRequest();
                TransparentChannelBodyRegionRequest regions = new TransparentChannelBodyRegionRequest();
                head.setAbility("cld");//固定值
                head.setTreatyType("haixuan_led_net");//固定值
                head.setDeviceIndexCode(device.getHkId());
                request.setMethod("ControlLedGereral");//固定值
                body.setMethod("ControlLedGereral");//固定值
                request.setIndexCode(device.getHkId());
                request.setActionType(0);
                request.setContent(content);
                request.setOperationType(219);//固定值
                request.setRegionNo(1);
                request.setRegionType(14);
                request.setFontColor(1);
                request.setCircleTimes(1);//循环次数
                request.setFontSize(16);//
                request.setStayTime(1);//单位??
                HKService.transparentchannel(head,request);
                regions.setActionType(0);
                regions.setContent(content);
                regions.setRegionNo(1);
                regions.setRegionType(14);
                regions.setFontColor(2);
                regions.setCircleTimes(1);//循环次数
                regions.setFontSize(31);//
                regions.setStayTime(1);//单位??
                request.setRegions(new ArrayList<>());
                request.getRegions().add(regions);
                body.setParams(request);
                HKService.transparentchannel(head,body);
            }else  if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
                //如果是广播点
                broadcastList.add(device.getHkId());