jiangping
2025-05-07 c3aaf28f7316cce12eec007a9f85a96cbcddeec2
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -239,14 +239,14 @@
            record.setCreateDate(DateUtil.getISO8601DateByStr2(request.getHappenTime()));
            record.setTimeInfo(Utils.Date.getStart(record.getCreateDate()));
            record.setType(Constants.ONE);//人员
            record.setMemberType(Constants.ZERO);//默认为未知人员(访客)
            record.setMemberType(Constants.RetentionMemberType.fk);//默认为未知人员(访客)
            record.setIsdeleted(Constants.ZERO);
            record.setInOrOut(Constants.ZERO);
            record.setHkEventId(request.getEventId());
            record.setHkId(userNo);
            if(d!=null && Constants.equalsInteger(d.getIsEntrance(),Constants.ONE)){
                if(Constants.formatIntegerNum(request.getData().getExtEventInOut()) != Constants.ONE){
                    //如果是进门,录入人员的在场数据记录
                    record.setInOrOut(Constants.ZERO);
                    inoutDayCount.setInMemberNum(Constants.formatIntegerNum(inoutDayCount.getInMemberNum())+1);//入场人次
                }else{
                    //如果是出门
@@ -255,10 +255,11 @@
                }
            }
            if(member !=null){
                record.setMemberId(member.getId());
                record.setMemberName(member.getName());
                record.setMemberPhone(member.getPhone());
                record.setObjId(member.getId());
                record.setObjType(Constants.ONE);
                record.setMemberPhone(member.getPhone());
                record.setCompanyId(member.getCompanyId());
                record.setCompanyName(member.getCompanyNamePath());
                if(d!=null && Constants.equalsInteger(d.getIsEntrance(),Constants.ONE)){
@@ -267,16 +268,18 @@
                        //如果是进门,录入人员的在场数据记录
                        retentionList.add(getRetentionModelByRequest(member,request));
                        if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){
                            record.setMemberType(Constants.ONE);
                            record.setMemberType(Constants.RetentionMemberType.internalMember);
                            inoutDayCount.setInSelfMemberNum(Constants.formatIntegerNum(inoutDayCount.getInSelfMemberNum())+1);//内部人员入场人次
                        }else{
                            record.setMemberType(Constants.TWO);
                            record.setMemberType(Constants.RetentionMemberType.relMember);
                            inoutDayCount.setInOtherMemberNum(Constants.formatIntegerNum(inoutDayCount.getInOtherMemberNum())+1);//相关方入场人次
                        }
                    }else{
                        if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){
                            record.setMemberType(Constants.RetentionMemberType.internalMember);
                            inoutDayCount.setOutSelfMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutSelfMemberNum())+1);//内部人员出场人次
                        }else{
                            record.setMemberType(Constants.RetentionMemberType.relMember);
                            inoutDayCount.setOutOtherMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutOtherMemberNum())+1);//相关方出场人次
                        }
                    }
@@ -569,6 +572,7 @@
                record.setIsdeleted(Constants.ZERO);
                record.setMemberName(visits.getName());
                record.setObjId(visits.getId());
                record.setMemberId(visits.getMemberId());
                record.setObjType(Constants.TWO);
                record.setMemberPhone(visits.getPhone());
                record.setCompanyName(visits.getCompanyName());
@@ -927,6 +931,7 @@
                carrecord.setMemberName(carModel.getMemberName());//司机
                carrecord.setMemberPhone(carModel.getMemberPhone());//司机
                carrecord.setObjId(carModel.getId());
                carrecord.setMemberId(carModel.getMemberId());
                carrecord.setObjType(Constants.ZERO);
                carrecord.setFaceImg(carModel.getFaceImg());
                carrecord.setIdcardDecode(carModel.getIdcardDecode());
@@ -938,7 +943,7 @@
                carrecord.setCategoryName(carModel.getCateName());
                carrecord.setCategoryParentId(carModel.getCatePId());
                carrecord.setCategoryParentName(carModel.getCatePName());
                carrecord.setMemberType( Constants.RetentionMemberType.car);//只是车辆的记录
                carrecord.setType( Constants.RetentionMemberType.car);//只是车辆的记录
                if(carModel.getMemberId()!=null){
                    if(Constants.equalsInteger(carModel.getCompanyType(),Constants.ONE)){
                        //内部组织
@@ -976,7 +981,7 @@
                    carrecord.setObjType(Constants.FOUR);
                    carrecord.setCompanyId(carTypeJob.getCompanyId());
                    carrecord.setCompanyName(carTypeJob.getCompanyNamePath());
                    carrecord.setMemberType(Constants.RetentionMemberType.car);
                    carrecord.setType(Constants.RetentionMemberType.car);
                    if(carModel.getMemberPhone()!=null || StringUtils.isNotBlank(carModel.getMemberName())){
                        //货运司机(如果司机手机号或者姓名不为空)
                        carrecord.setMemberType(Constants.RetentionMemberType.driver);
@@ -1027,8 +1032,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 )
@@ -1056,36 +1061,78 @@
                        copyObj.setMemberName(v.getName());
                        copyObj.setMemberPhone(v.getPhone());
                        copyObj.setCompanyName(v.getCompanyName());
                        copyObj.setMemberType(Constants.ZERO);
                        copyObj.setType(Constants.ONE);
                        copyObj.setRemark(carrecord.getCarCode());
                        copyObj.setCarCode(index>=0?null:carrecord.getCarCode());
                        copyObj.setMemberType(Constants.RetentionMemberType.fk);
                        inoutRecordList.add(copyObj);
                        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);
            }
        }
        if(carrecord.getInOrOut() !=null) {//如果是出入记录
            if(Constants.equalsInteger(carrecord.getCarBizType(),Constants.RetentionCarType.other)){
                carrecord.setCategoryName("未知车辆");//默认未知车辆
            }
            inoutRecordList.add(carrecord);//录入车辆以及携带人员的入园明细记录(非访客)
        }
    }
    private Category findCategoryByBizType(Integer carType,String tempname, String pName,List<Category> categoryList) {
@@ -1146,7 +1193,6 @@
                            //如果是自有车卸货 查询TMS合同状态,决定是否自动签到
                            checkTmsContractStatusBiz(platformJob);
                        }
                    }
                }
            }