jiangping
2025-05-06 48ebf56c81939920c2360ce3ff9053c64bfbc03d
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -1027,8 +1027,8 @@
                carrecord.setInOrOut(Constants.ZERO);
            }
            //车辆进入记录对应业务类型
            if(event.getCarType() ==null || event.getCarType().equals(Constants.RetentionCarType.other)){//如果为识别到车型
                //如果不是固定车 也不是货运车辆,则检查是否是访客车
            if(event.getCarType() ==null || event.getCarType().equals(Constants.RetentionCarType.other)){
                //如果未识别到车型,不是固定车 也不是货运车辆,则检查是否是访客车
                visitsList =  visitsMapper.selectList(new QueryWrapper<Visits>().lambda()
                                .eq(Visits::getCarNos,event.getPlateNos())
                                .eq(Visits::getIsdeleted,Constants.ZERO )
@@ -1064,28 +1064,65 @@
                        index++;
                        if(Constants.equalsInteger(carrecord.getInOrOut(),Constants.ONE)){
                            //如果是车辆出园区,访客申请自动签离
                            visitsService.visitLevelForCarOut(v);
                            //统计访客进入数
                            inoutDayCount.setOutVisitorNum(Constants.formatIntegerNum(inoutDayCount.getOutVisitorNum())+1);
                            try {
                                visitsService.visitLevelForCarOut(v);
                                //统计签离数
                                inoutDayCount.setLeaveVisitorNum(Constants.formatIntegerNum(inoutDayCount.getLeaveVisitorNum())+1);
                            }catch (Exception e){
                                log.error("访客跟随车辆出园自动签离失败:==========="+e.getMessage());
                            }
                        }else{
                            //如果是进入园区,访客录入在园人员记录
                            retentionList.add(getRetentionModelByRequest(copyObj,request));
                            //统计访客出行数
                            inoutDayCount.setInVisitorNum(Constants.formatIntegerNum(inoutDayCount.getInVisitorNum())+1);
                        }
                    }
                }
            }
            //车辆进入记录对应业务类型
            if(event.getCarType() !=null &&  event.getCarType().equals(Constants.RetentionCarType.fkCar)) {
            if(event.getCarType() !=null && !event.getCarType().equals(Constants.RetentionCarType.fkCar)){
                //录入非访客类型车辆进出记录
                carrecord.setCarBizType(event.getCarType()==null?Constants.RetentionCarType.other:event.getCarType());
                if(Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.internalMember)
                    ||Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.relMember)
                    ||Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.driver)){
                    retentionList.add(getRetentionModelByRequest(carrecord,request));
                }
                inoutRecordList.add(carrecord);
                dealNotFkCarMemberBiz(event,request,carrecord,retentionList,inoutDayCount,inoutRecordList);
            }
        }
        return event;
    }
    private void dealNotFkCarMemberBiz( CarEvent event ,EventParkInfoRequest request, InoutRecord carrecord,List<Retention> retentionList,InoutDayCount inoutDayCount,List<InoutRecord> inoutRecordList) {
        //录入非访客类型车辆进出记录
        carrecord.setCarBizType(event.getCarType()==null?Constants.RetentionCarType.other:event.getCarType());
        if(carrecord.getMemberId()!=null
                && (Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.internalMember)
                ||Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.relMember)
                ||Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.driver))){
            if( Constants.equalsInteger(carrecord.getInOrOut(),Constants.ZERO)) {
                //如果是进入
                retentionList.add(getRetentionModelByRequest(carrecord,request));
                if(Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.relMember)){
                    //如果是相关方人员,统计今日累计数
                    inoutDayCount.setInOtherMemberNum(Constants.formatIntegerNum(inoutDayCount.getInOtherMemberNum())+1);
                }else if(Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.internalMember)){
                    //如果是内部人员,统计今日累计数
                    inoutDayCount.setInSelfMemberNum(Constants.formatIntegerNum(inoutDayCount.getInSelfMemberNum())+1);
                }
                //统计今日入园总人次
                inoutDayCount.setInMemberNum(Constants.formatIntegerNum(inoutDayCount.getInMemberNum())+1);
            }else   if(carrecord.getMemberId()!=null &&  Constants.equalsInteger(carrecord.getInOrOut(),Constants.ONE)) {
                //如果是出园区
                if(Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.relMember)){
                    //如果是相关方,统计今日累计数
                    inoutDayCount.setOutOtherMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutOtherMemberNum())+1);
                }else if(Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.internalMember)){
                    //如果是内部人员,统计今日累计数
                    inoutDayCount.setOutSelfMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutSelfMemberNum())+1);
                }
                //统计今日出园总人次
                inoutDayCount.setOutMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutMemberNum())+1);
            }
        }
        inoutRecordList.add(carrecord);//录入车辆以及携带人员的入园明细记录(非访客)
    }
    private Category findCategoryByBizType(Integer carType,String tempname, String pName,List<Category> categoryList) {
@@ -1146,7 +1183,6 @@
                            //如果是自有车卸货 查询TMS合同状态,决定是否自动签到
                            checkTmsContractStatusBiz(platformJob);
                        }
                    }
                }
            }