jiangping
2024-02-26 cf2758071b5f344ec5b65dcdbc51f4ed9bda1407
整理
已修改12个文件
245 ■■■■■ 文件已修改
admin/src/views/business/visitEvent.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/visits.vue 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitEventController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_admin/src/main/java/com/doumee/service/impl/HkSyncEventServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/VisitEventDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/VisitEventService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitEventServiceImpl.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java 69 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/visitEvent.vue
@@ -50,22 +50,23 @@
                stripe
            >
                <el-table-column prop="personName" label="姓名" min-width="100px"></el-table-column>
                <el-table-column prop="personPhone" label="手机号码" min-width="100px"></el-table-column>
                <el-table-column prop="phone" label="手机号码" min-width="100px"></el-table-column>
                <el-table-column prop="idNo" label="身份证号码" min-width="100px"></el-table-column>
                <el-table-column prop="personCompanyName" label="公司" min-width="100px"></el-table-column>
                <el-table-column prop="visitorWorkUint" label="公司" min-width="100px"></el-table-column>
                <el-table-column prop="carNo" label="车牌号" min-width="100px"></el-table-column>
                <el-table-column prop="beVisitedPersonName" label="被访人" min-width="100px"></el-table-column>
                <el-table-column prop="beVisitedPersonOrg" label="被访人组织" min-width="100px"></el-table-column>
                <el-table-column prop="eventTypeName" label="事件类型" min-width="100px"></el-table-column>
                <el-table-column label="抓拍图uri" min-width="100px">
                    <template slot-scope="{row}">
                        <el-image
                        <el-image v-if="row.captureUrlFull!=null"
                            style="width: 80px; height: 80px"
                            :src="row.captureUrl"
                            :preview-src-list="[row.captureUrl]">
                            :src="row.captureUrlFull"
                            :preview-src-list="[row.captureUrlFull]">
                        </el-image>
                    </template>
                </el-table-column>
                <el-table-column prop="happenTime" label="事件时间" min-width="100px"></el-table-column>
                <el-table-column prop="createDate" label="事件时间" min-width="100px"></el-table-column>
            </el-table>
            <pagination
                @size-change="handleSizeChange"
admin/src/views/business/visits.vue
@@ -13,13 +13,15 @@
            </el-form-item>
            <el-form-item label="审批状态" prop="status">
                <el-select v-model="searchForm.status" placeholder="请选择">
                    <el-option label="待审核" value="0"></el-option>
                    <el-option label="已提交ERP审批" value="1"></el-option>
                    <el-option label="待提交审批" value="0"></el-option>
                    <el-option label="审批中" value="1"></el-option>
                    <el-option label="审核通过" value="2"></el-option>
                    <el-option label="审核不通过" value="3"></el-option>
                    <el-option label="取消" value="4"></el-option>
                    <el-option label="下发成功" value="5"></el-option>
                    <el-option label="下发失败" value="6"></el-option>
                    <el-option label="预约成功" value="5"></el-option>
                    <el-option label="预约失败" value="6"></el-option>
                    <el-option label="拜访中" value="7"></el-option>
                    <el-option label="已签离" value="8"></el-option>
                </el-select>
            </el-form-item>
            <section>
@@ -65,13 +67,15 @@
                </el-table-column>
                <el-table-column prop="status" fixed="right" label="状态" min-width="100px">
                    <template slot-scope="{row}">
                        <span style="color: rgba(245, 154, 35, 0.996);" v-if="row.status === 0">待审核</span>
                        <span v-if="row.status === 1">已提交ERP审批</span>
                        <span style="color: rgba(245, 154, 35, 0.996);" v-if="row.status === 0">待提交审批</span>
                        <span v-if="row.status === 1">审批中</span>
                        <span v-if="row.status === 2">审核通过</span>
                        <span style="color: red;" v-if="row.status === 3">审核不通过</span>
                        <span v-if="row.status === 4">取消</span>
                        <span v-if="row.status === 5">下发成功</span>
                        <span v-if="row.status === 6">下发失败</span>
                        <span v-if="row.status === 5">预约成功</span>
                        <span v-if="row.status === 6">预约失败</span>
                        <span v-if="row.status === 7">拜访中</span>
                        <span v-if="row.status === 8">已签离</span>
                    </template>
                </el-table-column>
                <el-table-column
server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitEventController.java
@@ -72,7 +72,7 @@
    @ApiOperation("分页查询")
    @PostMapping("/page")
    //@RequiresPermissions("business:visitevent:query")
    public ApiResponse<PageData<VisitEventDTO>> findPage (@RequestBody PageWrap<VisitEvent> pageWrap) {
    public ApiResponse<PageData<VisitEvent>> findPage (@RequestBody PageWrap<VisitEvent> pageWrap) {
        return ApiResponse.success(visitEventService.findVisitPage(pageWrap));
    }
@@ -80,7 +80,7 @@
    @PostMapping("/exportExcel")
    //@RequiresPermissions("business:visitevent:exportExcel")
    public void exportExcel (@RequestBody PageWrap<VisitEvent> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(VisitEventVo.class).export(visitEventService.findPageExcel(pageWrap), "访客事件推送记录表", response);
        ExcelExporter.build(VisitEvent.class).export(visitEventService.findPageExcel(pageWrap), "访客事件推送记录表", response);
    }
    @ApiOperation("根据ID查询")
server/dmvisit_admin/src/main/java/com/doumee/service/impl/HkSyncEventServiceImpl.java
@@ -86,7 +86,7 @@
        HKService.eventSub(param);//停车场事件
        param.setEventDest(path+"/visit");
        param.setEventTypes(new Integer[]{HKConstants.EventTypes.VISIT_SIGN_OUT.getKey()
        param.setEventTypes(new Integer[]{HKConstants.EventTypes.VISIT_SIGN_IN.getKey()
                ,HKConstants.EventTypes.VISIT_SIGN_OUT.getKey()});
        HKService.cancelEventSub(param);//先取消
        HKService.eventSub(param);//访客事件
@@ -107,6 +107,7 @@
                ,HKConstants.EventTypes.PARK_LINE_OUT.getKey()
                ,HKConstants.EventTypes.PARK_PASS_IN.getKey()
                ,HKConstants.EventTypes.PARK_PASS_OUT.getKey()
                ,HKConstants.EventTypes.VISIT_SIGN_IN.getKey()
                ,HKConstants.EventTypes.VISIT_SIGN_OUT.getKey(),
                HKConstants.EventTypes.DOOR_FACE_AUTH_SUCCESS.getKey()});
        String path =systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_PUSH_URL).getCode();
server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
@@ -25,7 +25,7 @@
 * @date 2021-10-10 14:40:35
 * https://www.bejson.com/othertools/cron/  cron 表达式生成地址
 */
//@Component
@Component
@EnableScheduling
public class ScheduleTool {
server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/VisitEventDTO.java
@@ -68,7 +68,7 @@
    @ApiModelProperty(value = "手机号")
    private String personPhone;
    private String phone;
    @ApiModelProperty(value = "人员类型")
    private String personType;
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java
@@ -23,73 +23,73 @@
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
    @ExcelColumn(name="主键")
//    @ExcelColumn(name="主键")
    private Integer id;
    @ApiModelProperty(value = "创建人编码", example = "1")
    @ExcelColumn(name="创建人编码")
//    @ExcelColumn(name="创建人编码")
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelColumn(name="创建时间" )
//    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码", example = "1")
    @ExcelColumn(name="更新人编码")
//    @ExcelColumn(name="更新人编码")
    private Integer editor;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
//    @ExcelColumn(name="更新时间")
//    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date editDate;
    @ApiModelProperty(value = "是否删除0否 1是", example = "1")
    @ExcelColumn(name="是否删除0否 1是")
//    @ExcelColumn(name="是否删除0否 1是")
    private Integer isdeleted;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
//    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "事件唯一标识,同一事件若上报多次,则上报事件的eventId相同")
    @ExcelColumn(name="事件唯一标识,同一事件若上报多次,则上报事件的eventId相同")
//    @ExcelColumn(name="事件唯一标识")
    private String eventId;
    @ApiModelProperty(value = "事件源编号,物理设备是资源编号")
    @ExcelColumn(name="事件源编号,物理设备是资源编号")
//    @ExcelColumn(name="事件源编号,物理设备是资源编号")
    private String srcIndex;
    @ApiModelProperty(value = "事件源类型")
    @ExcelColumn(name="事件源类型")
//    @ExcelColumn(name="事件源类型")
    private String srcType;
    @ApiModelProperty(value = "事件源名称")
    @ExcelColumn(name="事件源名称")
//    @ExcelColumn(name="事件源名称")
    private String srcName;
    @ApiModelProperty(value = "事件类型(登记 签离)")
    @ExcelColumn(name="事件类型")
//    @ExcelColumn(name="事件类型")
    private Integer eventType;
    @ApiModelProperty(value = "事件状态,0-瞬时1-开始2-停止4-事件联动结果更新5-事件图片异步上传", example = "1")
    @ExcelColumn(name="事件状态,0-瞬时1-开始2-停止4-事件联动结果更新5-事件图片异步上传")
//    @ExcelColumn(name="事件状态,0-瞬时1-开始2-停止4-事件联动结果更新5-事件图片异步上传")
    private Integer status;
    @ApiModelProperty(value = "脉冲超时时间")
    @ExcelColumn(name="脉冲超时时间")
//    @ExcelColumn(name="脉冲超时时间")
    private Integer timeout;
    @ApiModelProperty(value = "事件发生时间(设备时间")
    @ExcelColumn(name="事件发生时间(设备时间")
//    @ExcelColumn(name="事件发生时间")
    private String happenTime;
    @ApiModelProperty(value = "事件发生的事件源父设备")
    @ExcelColumn(name="事件发生的事件源父设备")
//    @ExcelColumn(name="事件发生的事件源父设备")
    private String srcParentIndex;
    @ApiModelProperty(value = "访客Is,,对应访客来访记录中的orderId字段")
    @ExcelColumn(name="访客Is,,对应访客来访记录中的orderId字段")
//    @ExcelColumn(name="访客Is,,对应访客来访记录中的orderId字段")
    private String visitorId;
    @ApiModelProperty(value = "姓名")
@@ -97,15 +97,15 @@
    private String personName;
    @ApiModelProperty(value = "性别 1-男2-女", example = "1")
    @ExcelColumn(name="性别 1-男2-女")
//    @ExcelColumn(name="性别 1-男2-女")
    private Integer sex;
    @ApiModelProperty(value = "证件类型 111身份证")
    @ExcelColumn(name="证件类型 111身份证")
//    @ExcelColumn(name="证件类型 111身份证")
    private Integer idType;
    @ApiModelProperty(value = "证件号 ")
    @ExcelColumn(name="证件号 ")
    @ExcelColumn(name="证件号")
    private String idNo;
    @ApiModelProperty(value = "被访问人姓名")
@@ -121,7 +121,7 @@
    private String visitorWorkUint;
    @ApiModelProperty(value = "访客验证码")
    @ExcelColumn(name="访客验证码")
//    @ExcelColumn(name="访客验证码")
    private String visitorCode;
    @ApiModelProperty(value = "来访事由")
@@ -129,7 +129,7 @@
    private String purpose;
    @ApiModelProperty(value = "证件签发机关")
    @ExcelColumn(name="证件签发机关")
//    @ExcelColumn(name="证件签发机关")
    private String signOrg;
    @ApiModelProperty(value = "来访时间")
@@ -148,27 +148,27 @@
    private String carNo;
    @ApiModelProperty(value = "照片uri")
    @ExcelColumn(name="照片uri")
//    @ExcelColumn(name="照片uri")
    private String photoUrl;
    @ApiModelProperty(value = "抓拍图uri")
    @ExcelColumn(name="抓拍图uri")
//    @ExcelColumn(name="抓拍图uri")
    private String captureUrl;
    @ApiModelProperty(value = "图片存储服务器唯一标识")
    @ExcelColumn(name="图片存储服务器唯一标识")
//    @ExcelColumn(name="图片存储服务器唯一标识")
    private String svrIndexCode;
    @ApiModelProperty(value = "被访问人id")
    @ExcelColumn(name="被访问人id")
//    @ExcelColumn(name="被访问人id")
    private String beVisitedPersonId;
    @ApiModelProperty(value = "被访问人所属组织id")
    @ExcelColumn(name="被访问人所属组织id")
//    @ExcelColumn(name="被访问人所属组织id")
    private String beVisitedPersonOrgId;
    @ApiModelProperty(value = "被访问人所属组织id")
    @ExcelColumn(name="被访问人所属组织id")
//    @ExcelColumn(name="被访问人所属组织id")
    private String idcardDecode;
    // 条件查询参数
@@ -183,4 +183,14 @@
    @ApiModelProperty(value = "统计数量 ")
    @TableField(exist = false)
    private int num  ;
    @ApiModelProperty(value = "事件类型名称")
    @TableField(exist = false)
    @ExcelColumn(name="事件类型")
    private String eventTypeName;
    @ApiModelProperty(value = "抓拍图uri完整")
    @TableField(exist = false)
//    @ExcelColumn(name="抓拍图uri")
    private String captureUrlFull;
}
server/dmvisit_service/src/main/java/com/doumee/service/business/VisitEventService.java
@@ -106,7 +106,7 @@
     * @param pageWrap 分页对象
     * @return PageData<VisitEvent>
     */
    PageData<VisitEventDTO> findVisitPage(PageWrap<VisitEvent> pageWrap);
    PageData<VisitEvent> findVisitPage(PageWrap<VisitEvent> pageWrap);
    /**
@@ -114,5 +114,5 @@
     * @param pageWrap 分页对象
     * @return PageData<VisitEventVo>
     */
    List<VisitEventVo> findPageExcel(PageWrap<VisitEvent> pageWrap);
    List<VisitEvent> findPageExcel(PageWrap<VisitEvent> pageWrap);
}
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitEventServiceImpl.java
@@ -235,9 +235,9 @@
    }
    @Override
    public PageData<VisitEventDTO> findVisitPage(PageWrap<VisitEvent> pageWrap) {
    public PageData<VisitEvent> findVisitPage(PageWrap<VisitEvent> pageWrap) {
        IPage<VisitEventDTO> visitEventDTOIPage = getDataInfo(pageWrap);
        IPage<VisitEvent> visitEventDTOIPage = getDataInfo(pageWrap);
        if(null != visitEventDTOIPage && visitEventDTOIPage.getRecords().size() > 0) {
            visitEventDTOIPage.setRecords(newVisitEvent(visitEventDTOIPage.getRecords()));
        }
@@ -245,27 +245,12 @@
    }
    @Override
    public List<VisitEventVo> findPageExcel(PageWrap<VisitEvent> pageWrap) {
        IPage<VisitEventDTO> visitEventExcel = getDataInfo(pageWrap);
        List<VisitEventVo> voList = new ArrayList<>();
        if(null != visitEventExcel && visitEventExcel.getRecords().size() > 0) {
            visitEventExcel.getRecords().stream().forEach(obj->{
                VisitEventVo eventVo = new VisitEventVo();
                eventVo.setPersonName(obj.getPersonName());
                eventVo.setPersonPhone(obj.getPersonPhone());
                eventVo.setIdNo(obj.getIdNo());
                eventVo.setPersonCompanyName(obj.getPersonCompanyName());
                eventVo.setCarNo(obj.getCarNo());
                eventVo.setBeVisitedPersonName(obj.getBeVisitedPersonName()+"-"+obj.getBeVisitedPersonOrg());
                eventVo.setEventTypeName(HKConstants.EventTypes.getName(obj.getEventType()));
                eventVo.setHappenTime(obj.getHappenTime());
                voList.add(eventVo);
            });
        }
        return voList;
    public List<VisitEvent> findPageExcel(PageWrap<VisitEvent> pageWrap) {
        IPage<VisitEvent> visitEventExcel = getDataInfo(pageWrap);
        return newVisitEvent(visitEventExcel.getRecords());
    }
    private IPage<VisitEventDTO> getDataInfo(PageWrap<VisitEvent> pageWrap) {
    private IPage<VisitEvent> getDataInfo(PageWrap<VisitEvent> pageWrap) {
        //是否是数字
        boolean number = Validator.isNumber(pageWrap.getModel().getKeyWords());
        //是否包含中文
@@ -275,9 +260,7 @@
        IPage<VisitEvent> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<VisitEvent> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper .leftJoin(Visits.class,Visits::getHkId,VisitEvent::getVisitorId);
        queryWrapper.selectAll(VisitEvent.class)
                .selectAs(Visits::getCompanyName,VisitEventDTO::getPersonCompanyName);
        queryWrapper.selectAll(VisitEvent.class);
        queryWrapper.like(number,
                VisitEvent::getPhone,
                pageWrap.getModel().getKeyWords())
@@ -293,37 +276,36 @@
                .eq(Objects.nonNull(pageWrap.getModel().getEventType()),
                        VisitEvent::getEventType,
                        pageWrap.getModel().getEventType())
                .ge(Objects.nonNull(pageWrap.getModel().getStartTime()),
                .ge(StringUtils.isNotBlank(pageWrap.getModel().getStartTime()),
                        VisitEvent::getHappenTime,
                        pageWrap.getModel().getStartTime())
                .le(Objects.nonNull(pageWrap.getModel().getEndTime()),
                .le(StringUtils.isNotBlank(pageWrap.getModel().getEndTime()),
                        VisitEvent::getHappenTime,
                        pageWrap.getModel().getEndTime());
                        pageWrap.getModel().getEndTime())
                .eq(VisitEvent::getIsdeleted,Constants.ZERO);
        queryWrapper.orderByDesc(VisitEvent::getHappenTime);
        IPage<VisitEventDTO> visitEventDTOIPage = visitEventJoinMapper.selectJoinPage(page, VisitEventDTO.class, queryWrapper);
        IPage<VisitEvent> visitEventDTOIPage = visitEventJoinMapper.selectJoinPage(page, VisitEvent.class, queryWrapper);
        return visitEventDTOIPage;
    }
    private List<VisitEventDTO> newVisitEvent(List<VisitEventDTO> VisitEventDTOList) {
    private List<VisitEvent> newVisitEvent(List<VisitEvent> VisitEventDTOList) {
        List<String> codes = Arrays.asList(Constants.FTP_RESOURCE_PATH,Constants.MEMBER_IMG);
        List<SystemDictData> list = systemDictDataMapper.list(codes);
        Map<String,SystemDictData> dataMap = list.stream().collect(Collectors.toMap(SystemDictData::getLabel, Function.identity()));
        List<VisitEventDTO> newDataList = new ArrayList<>();
        VisitEventDTOList.stream().forEach(obj->{
            if(StringUtils.isNotBlank( obj.getCaptureUrl())
                    && !obj.getCaptureUrl().startsWith(HKConstants.IMG_INDEX)
                    && !obj.getCaptureUrl().startsWith(HKConstants.IMG_INDEX_ERROR)) {
                if(null != list && list.size() > 0) {
                    obj.setCaptureUrl(dataMap.get(Constants.FTP_RESOURCE_PATH).getCode()
                            +dataMap.get(Constants.MEMBER_IMG).getCode()
                    obj.setCaptureUrlFull(dataMap.get(Constants.FTP_RESOURCE_PATH).getCode()
                            +dataMap.get(Constants.VISIT_EVENT_IMG).getCode()
                            +obj.getCaptureUrl());
                }
            }
            obj.setEventTypeName(HKConstants.EventTypes.getName(obj.getEventType())) ;
            newDataList.add(obj);
            obj.setEventTypeName(HKConstants.EventTypes.getName(obj.getEventType())); ;
        });
        return newDataList;
        return  VisitEventDTOList;
    }
}
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java
@@ -141,9 +141,9 @@
        model.setHkId(device.getPrivilegeGroupId());
        model.setName(device.getPrivilegeGroupName());
        model.setHkStatus(Constants.ONE);
        model.setIsdeleted(Constants.ZERO);
        model.setStatus(Constants.ONE);
        model.setIsDefault(device.getIsDefault());
        model.setType(String.valueOf(Constants.ZERO));
        model.setType(String.valueOf(Constants.ONE));
        return  model;
    }
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -50,6 +50,8 @@
    @Autowired
    private CarsMapper carsMapper;
    @Autowired
    private ParkBookMapper parkBookMapper;
    @Autowired
    private DeviceEventMapper deviceEventMapper;
    @Autowired
    private MemberMapper memberMapper;
@@ -307,7 +309,9 @@
        EventVisitDataRequest model = request.getData();
        MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(Visits.class);
        queryWrapper.selectAs(Member::getType,Visits::getMemberType);
        queryWrapper.eq(Visits::getHkId,model.getVisitorId() );
        queryWrapper.leftJoin(Member.class,Member::getId,Visits::getMemberId );
        queryWrapper.last("limit 1");
        Visits visits = visitsMapper.selectJoinOne(Visits.class,queryWrapper);
        if(visits !=null){
@@ -321,9 +325,11 @@
                //来访时间
                updateVistis.setStatus(Constants.VisitStatus.signin);
                updateVistis.setInDate(DateUtil.getISO8601DateByStr(model.getStartTime()));
                updateVistis.setOutDate(DateUtil.getISO8601DateByStr(model.getEndTime()));
            }else {
                //如果是访客签离事件
                updateVistis.setStatus(Constants.VisitStatus.signout);
                updateVistis.setInDate(DateUtil.getISO8601DateByStr(model.getStartTime()));
                updateVistis.setOutDate(DateUtil.getISO8601DateByStr(model.getEndTime()));
                updateVistis.setOutType(Constants.ZERO);
                updateVistis.setOutInfo("访客正常签离");
@@ -343,7 +349,9 @@
        event.setVisitorCode(request.getData().getVisitorCode());
        event.setTimeout(request.getTimeout());
        event.setSvrIndexCode(request.getData().getSvrIndexCode());
        event.setHappenTime(request.getHappenTime());
        event.setStatus(request.getStatus());
        event.setEndTime(request.getData().getEndTime());
        event.setStartTime(request.getData().getStartTime());
        event.setSrcType(request.getSrcType());
        event.setSrcParentIndex(request.getSrcParentIndex());
@@ -352,8 +360,23 @@
        event.setSignOrg(request.getData().getSignOrg());
        event.setSex(request.getData().getSex());
        event.setPurpose(request.getData().getPurpose());
        event.setPhone(request.getData().getPhone());
        event.setBeVisitedPersonId(request.getData().getBeVisitedPersonId());
        event.setBeVisitedPersonName(request.getData().getBeVisitedPersonName());
        event.setBeVisitedPersonOrg(request.getData().getBeVisitedPersonOrg());
        event.setBeVisitedPersonOrgId(request.getData().getBeVisitedPersonOrgId());
        event.setVisitorWorkUint(request.getData().getVisitorWorkUint());
        event.setPhotoUrl(getHkImgUrl(request.getData().getPhotoUrl()));
        event.setPersonName(request.getData().getPersonName());
        event.setCarNo(request.getData().getCarNo());
        event.setCaptureUrl(request.getData().getCaptureUrl());
        if(StringUtils.isNotBlank(request.getData().getCaptureUrl())){
            event.setCaptureUrl(HKConstants.IMG_INDEX+request.getData().getCaptureUrl());
        }
        if(StringUtils.isNotBlank(request.getData().getPhotoUrl())){
            event.setPhotoUrl(HKConstants.IMG_INDEX+request.getData().getPhotoUrl());
        }
        event.setIdType(request.getData().getIdType());
        String idnum =request.getData().getIdNo();
        if(StringUtils.isNotBlank(idnum)){
@@ -364,8 +387,6 @@
        }
        event.setEventType(request.getEventType());
        event.setEventId(request.getEventId());
        event.setHappenTime(event.getHappenTime());
        return event;
    }
@@ -411,16 +432,28 @@
            //门禁事件集合
            List<EventParkInfoRequest> events  = param.getParams().getEvents();
            List<CarEvent> list = new ArrayList<>();
            List<Retention> retentionList = new ArrayList<>();
            List<String> delRetentionList = new ArrayList<>();
            for(EventParkInfoRequest request : events){
                if(request.getData() ==null ||StringUtils.isBlank(request.getData().getPlateNo())){
                    continue;
                }
                //封装事件信息表对象
                list.add(getParkEventModelByRequest(request));
                list.add(getParkEventModelByRequest(request,delRetentionList,retentionList));
            }
            if(list.size()>0){
                //插入门禁记录
                carEventMapper.insertBatchSomeColumn(list);
            }
            if(delRetentionList.size()>0){
                //先删除原有的在场人员(内部人员)
                retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
                        .eq(Retention::getType,Constants.THREE)
                        .in(Retention::getCarNo,delRetentionList));
            }
            if(retentionList.size()>0){
                //再插入最新的在厂人员
                retentionMapper.insertBatchSomeColumn(retentionList);
            }
            log.error("【海康停车场事件推送】========成功=======");
        }catch (Exception e){
@@ -436,7 +469,7 @@
     * @param request
     * @return
     */
    private CarEvent getParkEventModelByRequest(EventParkInfoRequest request) {
    private CarEvent getParkEventModelByRequest(EventParkInfoRequest request, List<String> delRetentionList , List<Retention> retentionList ) {
        CarEvent event = new CarEvent();
        event.setIsdeleted(Constants.ZERO);
        event.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
@@ -490,18 +523,40 @@
            event.setPlatePicUrl(getHkImgUrl(request.getData().getPicUrl().getPlatePicUrl()));
        }
        if(StringUtils.isNotBlank(event.getPlateNos())){
                Cars cars = carsMapper.selectOne(new QueryWrapper<Cars>().lambda()
                        .eq(Cars::getCode,event.getPlateNos())
                                .eq(Cars::getIsdeleted,Constants.ONE )
                ParkBook cars = parkBookMapper.selectOne(new QueryWrapper<ParkBook>().lambda()
                        .eq(ParkBook::getCarCode,event.getPlateNos())
                                .eq(ParkBook::getIsdeleted,Constants.ONE )
                        .last("limit 1" ));
                if(cars!=null){
                    event.setMemberId(cars.getMemberId());
                }
            if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_IN.getKey()){
                //如果是入厂放行
                delRetentionList.add(event.getPlateNos());
                retentionList.add(getRetentionModelByParkRequest(request));
            }else if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_OUT.getKey()){
                //如果是出场放行
                delRetentionList.add(event.getPlateNos());
            }
        }
        return event;
    }
    private Retention getRetentionModelByParkRequest(EventParkInfoRequest request) {
        Retention retention = new Retention();
        retention.setIsdeleted(Constants.ZERO);
        retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
        retention.setCarNo(request.getData().getPlateNo());
        retention.setType(Constants.THREE);
//        retention.setDeviceName(request.getSrcName());
//        retention.setDeviceIndex(request.getSrcIndex());
        return retention;
    }
    private void saveInterfaceLog(Object param, String path,String result) {
        InterfaceLog hkMonitoryLogDO=new InterfaceLog();
        hkMonitoryLogDO.setType(1);
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
@@ -284,7 +284,7 @@
        MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(Visits.class);
        queryWrapper.selectAs(Member::getName,Visits::getReceptMemberName)
                .select("t1.hk_id as receptMemberHkId")
                .selectAs(Member::getHkId,Visits::getReceptMemberHkId)
                .leftJoin(Member.class,Member::getId,Visits::getReceptMemberId);
        queryWrapper.eq(Visits::getStatus,Constants.VisitStatus.pass)//审批通过
                .eq(Visits::getHkStatus,Constants.ZERO)//未同步到海康