jiangping
2025-04-28 3748591ecd04c47e550049bbc09ad5959210aa29
最新版本541200007
已修改3个文件
82 ■■■■■ 文件已修改
server/startsh/DBbackup.sh 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InoutRecord.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/startsh/DBbackup.sh
@@ -11,6 +11,7 @@
# shellcheck disable=SC1036
delete from platform_books where id not int (298,297,296,294,290,293)
delete from platform_job a where not exist(select b.id from platform_books b where b.job_id=a.id and b.id in (298,297,296,294,290,293))
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InoutRecord.java
@@ -79,8 +79,13 @@
    @ExcelColumn(name="关联分类名称")
    private String categoryName;
    @ApiModelProperty(value = "", example = "1")
    @ExcelColumn(name="")
    @ApiModelProperty(value = "业务类型 业务类型 0=访客车辆-访客车辆 ;" +
            "1=wms推送的物流车辆(非自有车):货运车辆-外协运输车辆 ;" +
            "2=wms市公司的预约入园车辆:货运车辆-市公司卸货车辆;" +
            "3=wms、安泰的预约入园车辆:货运车辆-加工烟卸货车辆 ;" +
            "4=wms安泰公务车:公务车-安泰物流公务用车;" +
            "5=wms安泰自有车:货运车辆-安泰物流货运车辆' ", example = "1")
    @ExcelColumn(name="车辆业务类型")
    private Integer carBizType;
    @ApiModelProperty(value = "用户类型  0访客 1内部人员 2相关方人员 3货运司机", example = "1")
@@ -90,6 +95,15 @@
    @ApiModelProperty(value = "人员名称")
    @ExcelColumn(name="人员名称")
    private String memberName;
    @ApiModelProperty(value = "人员手机号")
    @ExcelColumn(name="人员手机号")
    private String memberPhone;
    @ApiModelProperty(value = "组织名称")
    @ExcelColumn(name="组织名称")
    private String companyName;
    @ApiModelProperty(value = "关联组织编码")
    @ExcelColumn(name="关联组织编码")
    private Integer companyId;
    @ApiModelProperty(value = "车牌号")
    @ExcelColumn(name="车牌号")
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -76,6 +76,8 @@
    @Autowired
    private RetentionMapper retentionMapper;
    @Autowired
    private InoutRecordMapper inoutRecordMapper;
    @Autowired
    private PlatformMapper platformMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
@@ -121,6 +123,7 @@
            List<DeviceEvent> list = new ArrayList<>();
            List<Integer> delRetentionLis = new ArrayList<>();
            List<Retention> retentionList = new ArrayList<>();
            List<InoutRecord> inoutRecordList = new ArrayList<>();
            InoutDayCount inoutDayCount = new InoutDayCount();
            for(EventAcsInfoRequest request : events){
                EventDeviceDataRequest model = request.getData();
@@ -128,7 +131,7 @@
                    continue;
                }
                //根据推送人员编码,处理在场、离场人员数据记录
                dealMemberDataByRequest(request,delRetentionLis,retentionList,inoutDayCount);
                dealMemberDataByRequest(request,delRetentionLis,retentionList,inoutDayCount,inoutRecordList);
                //封装门禁事件信息表对象
                list.add(getDeviceEventModelByRequest(request));
            }
@@ -145,6 +148,10 @@
            if(retentionList.size()>0){
                //再插入最新的在厂人员
                retentionMapper.insert(retentionList);
            }
            if(inoutRecordList.size()>0){
                //再插入最新的在厂人员
                inoutRecordMapper.insert(inoutRecordList);
            }
            dealInoutDayCountBiz(inoutDayCount);
            log.info("【海康门禁事件推送】========成功=======");
@@ -199,12 +206,17 @@
     * @param delRetentionLis
     * @param retentionList
     */
    private void dealMemberDataByRequest(EventAcsInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList,InoutDayCount inoutDayCount) {
    private void dealMemberDataByRequest(EventAcsInfoRequest request
            , List<Integer> delRetentionLis
            , List<Retention> retentionList
            ,InoutDayCount inoutDayCount
            ,List<InoutRecord> inoutRecordList) {
        //海康人员编码
        String userNo = request.getData().getExtEventPersonNo();
        if(StringUtils.isNotBlank(userNo)){
            Member member = memberMapper.selectJoinOne(Member.class,new MPJLambdaWrapper<Member>()
                    .selectAll(Member.class)
                    .selectAs(Company::getCompanyNamePath,Member::getCompanyNamePath)
                    .selectAs(Company::getType,Member::getCompanyType)
                    .leftJoin(Company.class,Company::getId,Member::getCompanyId)
                    .eq(Member::getHkId,userNo)
@@ -215,23 +227,41 @@
                    .eq(Device::getDoorId,request.getSrcIndex())
                    .eq(Device::getIsdeleted,Constants.ZERO)
                    .last("limit 1" ));
            InoutRecord record = new InoutRecord();
            record.setCreateDate(DateUtil.getISO8601DateByStr2(request.getHappenTime()));
            record.setType(Constants.ONE);//人员
            record.setMemberType(Constants.ZERO);//默认为未知人员(访客)
            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){
                    //如果是进门,录入人员的在场数据记录
                    inoutDayCount.setInMemberNum(Constants.formatIntegerNum(inoutDayCount.getInMemberNum())+1);//入场人次
                }else{
                    //如果是出门
                    record.setInOrOut(Constants.ONE);
                    inoutDayCount.setOutMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutMemberNum())+1);//离场人次
                }
            }
            if(member !=null){
                record.setMemberName(member.getName());
                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)){
                    delRetentionLis.add(member.getId());
                    if( Constants.formatIntegerNum(request.getData().getExtEventInOut()) == Constants.ONE){
                        //如果是进门,录入人员的在场数据记录
                        retentionList.add(getRetentionModelByRequest(member,request));
                        if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){
                            record.setMemberType(Constants.ONE);
                            inoutDayCount.setInSelfMemberNum(Constants.formatIntegerNum(inoutDayCount.getInSelfMemberNum())+1);//内部人员入场人次
                        }else{
                            record.setMemberType(Constants.TWO);
                            inoutDayCount.setInOtherMemberNum(Constants.formatIntegerNum(inoutDayCount.getInOtherMemberNum())+1);//相关方入场人次
                        }
                    }else{
@@ -243,6 +273,7 @@
                    }
                }
            }
            inoutRecordList.add(record);
        }
    }
@@ -428,6 +459,7 @@
            List<VisitEvent> list = new ArrayList<>();
            List<Integer> delRetentionLis = new ArrayList<>();
            List<Retention> retentionList = new ArrayList<>();
            List<InoutRecord> inoutRecordList = new ArrayList<>();
            InoutDayCount inoutDayCount = new InoutDayCount();
            for(EventVisitIccmInfoRequest request : events){
                if(request.getData() ==null || request.getData().getVisitorInvoices() ==null){
@@ -437,7 +469,7 @@
                    continue;
                }
                //海康访客记录编码
                dealVisitDataByRequstIccm(request,delRetentionLis,retentionList,inoutDayCount);
                dealVisitDataByRequstIccm(request,delRetentionLis,retentionList,inoutDayCount,inoutRecordList);
                list.add(getVisitEventModelByRequestIccm(request,request.getData().getVisitorInformationList().get(0)));
            }
            if(list.size()>0){
@@ -454,6 +486,10 @@
                //再插入最新的在厂人员
                retentionMapper.insert(retentionList);
            }
            if(inoutRecordList.size()>0){
                //批量插入人员出入记录
                inoutRecordMapper.insert(inoutRecordList);
            }
            dealInoutDayCountBiz(inoutDayCount);
            log.info("【海康访客事件推送】========成功=======");
        }catch (Exception e){
@@ -466,7 +502,11 @@
    /**
     *  根据访客推送访客记录编码,处理访客记录、在场人员等信息
     */
    private void dealVisitDataByRequstIccm(EventVisitIccmInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList,  InoutDayCount inoutDayCount) {
    private void dealVisitDataByRequstIccm(EventVisitIccmInfoRequest request
            , List<Integer> delRetentionLis
            , List<Retention> retentionList
            ,  InoutDayCount inoutDayCount
            ,List<InoutRecord> inoutRecordList) {
        EventVisitIccmDataRequest model = request.getData();
        EventVisitIccmInvoiceParamRequest data =  request.getData().getVisitorInvoices();
        MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>();
@@ -512,6 +552,19 @@
            }else{
                //如果人员信息存在,切是访客通行,则删除之前的所有进场数据(无论此次推送是进厂还是出场推送事件)
                delRetentionLis.add(visits.getMemberId());
                InoutRecord record = new InoutRecord();
                record.setCreateDate(DateUtil.getISO8601DateByStr2(request.getHappenTime()));
                record.setType(Constants.ONE);//人员
                record.setMemberType(Constants.ZERO);
                record.setIsdeleted(Constants.ZERO);
                record.setMemberName(visits.getName());
                record.setObjId(visits.getId());
                record.setObjType(Constants.TWO);
                record.setMemberPhone(visits.getPhone());
                record.setCompanyName(visits.getCompanyName());
                record.setInOrOut(Constants.ZERO);
                record.setHkEventId(request.getEventId());
                record.setHkId(visits.getHkId());
                //如果是访客通行
                if(request.getData()!=null&&request.getData().getParamValues()!=null &&
                        StringUtils.equals(request.getData().getParamValues().getInOrOut(),"0")){
@@ -527,7 +580,9 @@
                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);
                }
                inoutRecordList.add(record);
            }
            updateVistis.setEditDate(new Date());
            //更新访客来访或者签离时间信息