jiangping
2025-05-19 621882746b29b71669ccdc9529eb7c7988f93a0e
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -146,7 +146,7 @@
            if(delRetentionLis.size()>0){
                //先删除原有的在场人员(内部人员)
                retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
                        .eq(Retention::getType,Constants.memberType.internal)
//                        .eq(Retention::getType,Constants.memberType.internal)
                        .in(Retention::getMemberId,delRetentionLis));
            }
            if(retentionList.size()>0){
@@ -280,9 +280,9 @@
                            inoutDayCount.setOutOtherMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutOtherMemberNum())+1);//相关方出场人次
                        }
                    }
                }
                if(record.getMemberType()!=null){
                    inoutRecordList.add(record);
                    if(record.getMemberType()!=null){
                        inoutRecordList.add(record);
                    }
                }
            }
        }
@@ -569,7 +569,7 @@
                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.setMemberName(visits.getName());
                record.setObjId(visits.getId());
@@ -583,9 +583,10 @@
                record.setDeviceName((request.getData()!=null &&request.getData().getParamValues()!=null)?
                        request.getData().getParamValues().getSrcName():request.getSrcName());
                //如果是访客通行
                if(request.getData()!=null&&request.getData().getParamValues()!=null &&
                        StringUtils.equals(request.getData().getParamValues().getInOrOut(),"0")){
                    //如果是访客登记,录入人员的在场数据记录
                if(request.getData()!=null
                        &&request.getData().getParamValues()!=null
                        &&StringUtils.equals(request.getData().getParamValues().getInOrOut(),"0")){
                    //如果是访客进入,录入人员的在场数据记录
                    Retention r = getRetentionModelByVisitRequest(visits, request.getHappenTime(),request.getSrcType());
                    r.setCarNo(request.getData().getParamValues().getPlateNos());
                    r.setAccessType(request.getData().getParamValues().getAccessType());
@@ -593,17 +594,19 @@
                    r.setDeviceIndex(request.getData().getParamValues().getSrcIndex());
                    retentionList.add(r);
                    inoutDayCount.setInVisitorNum(Constants.formatIntegerNum(inoutDayCount.getInVisitorNum())+1);
                    record.setInOrOut(Constants.ZERO);//进入园区
                }
                if(request.getData()!=null&&request.getData().getParamValues()!=null &&
                        !StringUtils.equals(request.getData().getParamValues().getInOrOut(),"0")){
                    inoutDayCount.setOutVisitorNum(Constants.formatIntegerNum(inoutDayCount.getOutVisitorNum())+1);
                    record.setInOrOut(Constants.ONE);
                    record.setInOrOut(Constants.ONE);//离园
                }
                if(StringUtils.isNotBlank(record.getCarCode())
                        &&request.getData().getParamValues()!=null
                if( request.getData().getParamValues()!=null
                        && StringUtils.isNotBlank(request.getData().getParamValues().getPlateNos())
                        && StringUtils.isNotBlank(request.getData().getParamValues().getParkIndex())){
                    //如果是停车场事件,记录车辆类型
                    Category category = null;
                    record.setCarCode(request.getData().getParamValues().getPlateNos());
                    if(StringUtils.isNotBlank(record.getCarCode())){
                        category = categoryMapper.selectJoinOne(Category.class, new MPJLambdaWrapper<Category>()
                                .selectAll(Category.class)
@@ -620,7 +623,6 @@
                    }
                    record.setCarBizType(Constants.RetentionCarType.fkCar);
                    record.setCategoryId(category.getId());
                    record.setCarCode(request.getData().getVisitorInformationList().get(0).getPlateNo());
                    record.setDeviceName(request.getData().getParamValues().getGateName());
                    record.setCategoryName(category.getName());
                    record.setCategoryParentId(category.getParentId());
@@ -869,7 +871,7 @@
            List<CarEvent> list = new ArrayList<>();
            List<Retention> retentionList = new ArrayList<>();
            List<String> delRetentionList = new ArrayList<>();
            List<Integer> delMemberRetentionList = new ArrayList<>();
            List<Retention> delMemberRetentionList = new ArrayList<>();
            InoutDayCount inoutDayCount = new InoutDayCount();
            List<InoutRecord> inoutRecordList = new ArrayList<>();
            for(EventParkInfoRequest request : events){
@@ -884,16 +886,34 @@
                carEventMapper.insert(list);
            }
            if(delRetentionList.size()>0){
                //先删除原有的在场人员(内部人员)
                //先删除原有的在场车辆人员(内部人员)
                retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
                        .eq(Retention::getType,Constants.THREE)
                        .in(Retention::getCarNo,delRetentionList));
            }
            if(delMemberRetentionList.size()>0){
                //先删除原有的在场人员(内部人员和访客)
                retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
                        .in(Retention::getType,Constants.memberType.internal,Constants.memberType.visitor)
                        .in(Retention::getMemberId,delMemberRetentionList));
                //先删除原有的在场人员(内部人员、相关方和访客)
                List<Integer> memberList = new ArrayList<>();
                for(Retention m :delMemberRetentionList){
                    if(m.getMemberId()!=null){
                        //跟随车辆入场的member存在的数据立场
                        retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
                                .in(Retention::getType,Constants.RetentionMemberType.internalMember
                                        ,Constants.RetentionMemberType.relMember
                                        ,Constants.RetentionMemberType.fk
                                        ,Constants.RetentionMemberType.driver)
                                .eq(Retention::getMemberId,m.getMemberId()));
                    }else  if(m.getCarNo()!=null){
                        //跟随车辆入场的用户信息
                        retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
                                .in(Retention::getType,Constants.RetentionMemberType.internalMember
                                        ,Constants.RetentionMemberType.relMember
                                        ,Constants.RetentionMemberType.fk
                                        ,Constants.RetentionMemberType.driver)
                                .eq(Retention::getCarNo,m.getCarNo()));
                    }
                }
            }
            if(retentionList.size()>0){
                //再插入最新的在厂人员
@@ -921,7 +941,7 @@
    private CarEvent getParkEventModelByRequest(EventParkInfoRequest request
            , List<String> delRetentionList
            , List<Retention> retentionList
            , List<Integer> delMemberRetentionList
            , List<Retention> delMemberRetentionList
            , InoutDayCount inoutDayCount
            , List<InoutRecord> inoutRecordList) {
        CarEvent event =initCarEventModelByRequest(request);
@@ -1064,14 +1084,22 @@
            if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_IN.getKey()){
                //如果是入厂放行
                delRetentionList.add(event.getPlateNos());
                delMemberRetentionList.add(event.getMemberId());
                Retention dm = new Retention();
                dm.setMemberId(event.getMemberId());
                dm.setPhone(carrecord.getMemberPhone());
                dm.setCarNo(event.getPlateNos());
                delMemberRetentionList.add(dm);
                retentionList.add(getRetentionModelByParkRequest(request,event,carrecord));//在厂车辆信息
                inoutDayCount.setInCarNum(Constants.formatIntegerNum(inoutDayCount.getInCarNum())+1);
                carrecord.setInOrOut(Constants.ZERO);
            }else if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_OUT.getKey()){
                //如果是出场放行
                delRetentionList.add(event.getPlateNos());
                delMemberRetentionList.add(event.getMemberId());
                Retention dm = new Retention();
                dm.setMemberId(event.getMemberId());
                dm.setPhone(carrecord.getMemberPhone());
                dm.setCarNo(event.getPlateNos());
                delMemberRetentionList.add(dm);
                inoutDayCount.setOutCarNum(Constants.formatIntegerNum(inoutDayCount.getOutCarNum())+1);
                carrecord.setInOrOut(Constants.ONE);
            }
@@ -1099,7 +1127,12 @@
                        carrecord.setCategoryParentName(StringUtils.defaultString(category.getParentName(),"访客车辆"));
                        carrecord.setCategoryParentId(category.getParentId());
                        for(Visits v :visitsList){
                            delMemberRetentionList.add(event.getMemberId());
                            Retention dm = new Retention();
                            dm.setMemberId(event.getMemberId());
                            dm.setPhone(carrecord.getMemberPhone());
                            dm.setCarNo(event.getPlateNos());
                            delMemberRetentionList.add(dm);
//                            delMemberRetentionList.add(event.getMemberId());
                            InoutRecord copyObj = new InoutRecord();
                            BeanUtils.copyProperties(carrecord,copyObj);
                            copyObj.setMemberId(v.getMemberId());
@@ -1369,7 +1402,9 @@
        retention.setMemberId(inoutRecord.getMemberId());
        retention.setDeviceName(request.getSrcName());
        retention.setDeviceIndex(request.getSrcIndex());
        retention.setRemark("跟随车辆入园区");
        retention.setCarNo(inoutRecord.getCarCode());
        retention.setDeviceName(request.getData().getGateName()+request.getData().getRoadwayName());
        retention.setRemark("跟随车辆【"+inoutRecord.getCarCode()+"】入园区");
        return retention;
    }
    private Retention getRetentionModelByParkRequest(EventParkInfoRequest request,CarEvent event ,InoutRecord carrecord ) {
@@ -1385,6 +1420,7 @@
        retention.setCategoryName(carrecord.getCategoryName());
        retention.setCategoryParentId(carrecord.getCategoryParentId());
        retention.setCategoryParentName(carrecord.getCategoryParentName());
        retention.setDeviceName(request.getData().getGateName()+request.getData().getRoadwayName());
//        retention.setDeviceName(request.getSrcName());
//        retention.setDeviceIndex(request.getSrcIndex());