server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -45,6 +45,7 @@ public static final String ROOT_PATH = ""; public static final String FILE_DIR = ""; public static final String INITIAL_PASSWORD = "INITIAL_PASSWORD"; public static final String VALIDATE_VISIT = "VALIDATE_VISIT"; // 访客来访配置 public static final String VISIT_CONFIG = "VISIT_CONFIG"; server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -1,5 +1,6 @@ package com.doumee.service.business.impl; import cn.hutool.core.date.DateUnit; import cn.hutool.core.util.IdcardUtil; import com.alibaba.fastjson.JSONObject; import com.doumee.biz.system.SystemDictDataBiz; @@ -58,6 +59,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.DigestUtils; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors; @@ -589,6 +591,15 @@ if(visits.getEndtime().getTime() <= visits.getStarttime().getTime()){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,预约结束时间必须大于开始时间!");// } if(visits.getSourceType().equals(Constants.ZERO)){ String code = systemDictDataBiz.queryByCode(Constants.VISIT_CONFIG,Constants.VALIDATE_VISIT).getCode(); if(StringUtils.isNotBlank(code)&&!StringUtils.equals(code,"0")){ Integer betweenDays = Math.toIntExact(cn.hutool.core.date.DateUtil.between(visits.getEndtime(), visits.getStarttime(), DateUnit.DAY)); if(Integer.compare(betweenDays,Integer.valueOf(code))>0){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,预约总天数不能超过["+code+"天]!"); } } } } private void isValidWithVisitParam(Visits visits, List<Member> addList, List<Member> updateList) { if( StringUtils.isBlank( visits.getName()) server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java
@@ -70,6 +70,7 @@ return ApiResponse.success(erpSyncService.erpQueryDeviceList(param)); } @ErpLoginRequired @ApiOperation(value = "停车场全量信息接口", notes = "访客端提供,供ERP端调用,ERP端同步全部停车场数据") @PostMapping("/resource/park/list") @ApiImplicitParams({ @@ -80,6 +81,7 @@ return ApiResponse.success(erpSyncService.parkList(param)); } @ErpLoginRequired @ApiOperation(value = "访客出入事件同步接口", notes = "访客端提供,供ERP端调用,ERP端获取访客出入记录信息") @PostMapping("/resource/visit/list") @ApiImplicitParams({ @@ -90,6 +92,7 @@ return ApiResponse.success(erpSyncService.visitListPage(pageWrap)); } @ErpLoginRequired @ApiOperation(value = "门禁出入事件同步接口", notes = "访客端提供,供ERP端调用,ERP端获取门禁出入记录信息") @PostMapping("/resource/doorEvent/list") @ApiImplicitParams({ @@ -100,6 +103,7 @@ return ApiResponse.success(erpSyncService.doorEventListPage(pageWrap)); } @ErpLoginRequired @ApiOperation(value = "车辆出入事件同步接口", notes = "访客端提供,供ERP端调用,ERP端获取车辆出入记录信息") @PostMapping("/resource/carvisit/list") @ApiImplicitParams({ @@ -110,6 +114,7 @@ return ApiResponse.success(erpSyncService.carEventList(pageWrap)); } @ErpLoginRequired @ApiOperation(value = "组织变化接口", notes = "访客端提供,供ERP端调用,完成访客端组织信息同步,该接口支持单个组织新增、更新、删除需求") @PostMapping("/event/org/update") @ApiImplicitParams({ @@ -121,6 +126,7 @@ return ApiResponse.success(null); } @ErpLoginRequired @ApiOperation(value = "人员变化接口", notes = "访客端提供,供ERP端调用,完成访客端人员信息同步,该接口支持单个人员新增、更新、删除需求") @PostMapping("/event/user/update") @ApiImplicitParams({ @@ -132,6 +138,7 @@ return ApiResponse.success(null); } @ErpLoginRequired @ApiOperation(value = "人员门禁组授权接口", notes = "访客端提供,供ERP端调用,访客端人员同步门禁组授权信息,该接口支持人员门禁组授权新增、更新、清空需求。") @PostMapping("/event/role/userAuthor") @ApiImplicitParams({ @@ -142,6 +149,7 @@ return ApiResponse.success(null); } @ErpLoginRequired @ApiOperation(value = "车辆授权停车场接口", notes = "访客端提供,供ERP端调用,访客端同步车辆对停车场的使用权限,该接口支持车辆绑定、解绑归属人,支持新增、更新、清空车辆授权信息") @PostMapping("/event/park/carAuthor") @ApiImplicitParams({ @@ -162,6 +170,7 @@ return response; } @ErpLoginRequired @ApiOperation(value = "访客申请审批结果通知接口", notes = "访客端提供,供访客端调用,提交访客申请审批的结果") @PostMapping("/event/approve/notice") @ApiImplicitParams({