海康接口

This commit is contained in:
zjf committed 2025-04-30 18:52:55 +08:00
1 parent 6d15f93642
commit 7f691e621d
7 files changed
+83 -3

No files matched your search

@@ -70,6 +70,11 @@
<artifactId>pjcloud-integrated-api</artifactId>
<version>5.7.0</version>
</dependency>
<dependency>
<groupId>com.bsd</groupId>
<artifactId>pjcloud-thirdparty-api</artifactId>
<version>5.7.0</version>
</dependency>
<dependency>
<groupId>com.bsd</groupId>
@@ -178,4 +178,11 @@ public class VisitorsEntity extends Model<VisitorsEntity> {
@Schema(description="是否随行人员")
private String isOtherPeople;
@Schema(description="访客记录唯一标识,用于已预约登记、访客签离等操作")
private String orderId;
@Schema(description="预约记录ID,可作为修改、取消预约的依据")
private String appointRecordId;
}
@@ -33,6 +33,10 @@ import com.bsd.pjcloud.integrated.vo.visitor.app.VisitorsAppPageVo;
import com.bsd.pjcloud.integrated.vo.visitor.app.VisitorsAppVo;
import com.bsd.pjcloud.integrated.vo.visitor.app.VisitorsCarAppVo;
import com.bsd.pjcloud.integrated.vo.visitor.app.VisitorsPeopleAppVo;
import com.bsd.pjcloud.thirdparty.api.feign.RemoterVisitorService;
import com.bsd.pjcloud.thirdparty.dto.visitor.request.make.RegisterAppointmentRequest;
import com.bsd.pjcloud.thirdparty.dto.visitor.request.make.VisitorAppointmentRequest;
import com.bsd.pjcloud.thirdparty.dto.visitor.request.make.VisitorInfo;
import com.github.yulichang.toolkit.StrUtils;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.StringUtils;
@@ -43,6 +47,9 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
@@ -66,6 +73,8 @@ public class VisitorsServiceImpl extends ServiceImpl<VisitorsMapper, VisitorsEnt
private final RemoteDictService remoteDictService;
private final RemoterVisitorService remoterVisitorService;
@Override
@Transactional
public Object vistorsSave(VisitorsAppDTO visitors) {
@@ -200,10 +209,47 @@ public class VisitorsServiceImpl extends ServiceImpl<VisitorsMapper, VisitorsEnt
}
@Override
@Transactional
public Object updateCheckStatus(Long id, String checkStatus) {
VisitorsEntity dataVisitors = baseMapper.selectById(id);
if (dataVisitors == null) {
throw new ServiceException("数据不存在");
}
if (!dataVisitors.getCheckStatus().equals(TaskCheckStatusEnum.PADDING.getCode())) {
throw new ServiceException("数据已处理");
}
VisitorsEntity visitors = new VisitorsEntity();
visitors.setId(id);
visitors.setCheckStatus(checkStatus);
//todo 电梯接口
//梯控
//审核通过
if (checkStatus.equals(TaskCheckStatusEnum.RESULT.getCode())){
VisitorAppointmentRequest visitorAppointmentRequest = new VisitorAppointmentRequest();
//拜访人固定,安防系统中创建
visitorAppointmentRequest.setReceptionistId("1");
String startTime = dataVisitors.getVStartDate()
.atZone(ZoneId.of("Asia/Shanghai"))
.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME);
String endTime = dataVisitors.getVEndDate()
.atZone(ZoneId.of("Asia/Shanghai"))
.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME);
visitorAppointmentRequest.setVisitStartTime(startTime);
visitorAppointmentRequest.setVisitEndTime(endTime);
VisitorInfo visitorInfo = new VisitorInfo();
visitorInfo.setVisitorName(dataVisitors.getName());
//默认全部设置男
visitorInfo.setGender(1);
visitorInfo.setPhoneNo(dataVisitors.getMobile());
//身份证默认为111
visitorInfo.setCertificateType(111);
visitorInfo.setCertificateNo(dataVisitors.getIdCard());
visitorAppointmentRequest.setVisitorInfoList(Arrays.asList(visitorInfo));
remoterVisitorService.createVisitorAppointment(visitorAppointmentRequest);
}
return baseMapper.updateById(visitors);
}
@@ -234,10 +280,27 @@ public class VisitorsServiceImpl extends ServiceImpl<VisitorsMapper, VisitorsEnt
}
@Override
@Transactional
public Object haveVisitor(Long id) {
VisitorsEntity dataVisitors = baseMapper.selectById(id);
if (dataVisitors == null) {
throw new ServiceException("数据不存在");
}
if (!dataVisitors.getCheckStatus().equals(TaskCheckStatusEnum.CANCEL.getCode())) {
throw new ServiceException("数据已处理");
}
VisitorsEntity visitors = new VisitorsEntity();
visitors.setId(id);
visitors.setCheckStatus(TaskCheckStatusEnum.HAVE_VISIT.getCode());
RegisterAppointmentRequest registerAppointmentRequest = new RegisterAppointmentRequest();
registerAppointmentRequest.setOrderId(dataVisitors.getOrderId());
String endTime = dataVisitors.getVEndDate()
.atZone(ZoneId.of("Asia/Shanghai"))
.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME);
registerAppointmentRequest.setVisitEndTime(endTime);
remoterVisitorService.registerAppointment(registerAppointmentRequest);
return baseMapper.updateById(visitors);
}
@@ -31,5 +31,7 @@
<result property="userId" column="user_id"/>
<result property="isOtherPeople" column="is_other_people"/>
<result property="receiveId" column="receive_id"/>
<result property="orderId" column="order_id"/>
<result property="appointRecordId" column="appoint_record_id"/>
</resultMap>
</mapper>
@@ -24,8 +24,7 @@ public class RegisterAppointmentRequest {
*/
@NotNull
@Future(message = "离开时间必须是将来的时间")
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ssXXX")
private LocalDateTime visitEndTime;
private String visitEndTime;
/**
* 门禁卡号(可选)
@@ -14,7 +14,7 @@ import java.util.Map;
* 对应接口文档中 visitorInfoList 的单个访客对象
*/
@Data
@Builder
//@Builder
public class VisitorInfo {
/**
@@ -2,3 +2,7 @@ com.bsd.pjcloud.thirdparty.api.feign.RemoterThirdKsService
com.bsd.pjcloud.thirdparty.api.feign.RemoterThirdDoorApiService
com.bsd.pjcloud.thirdparty.api.feign.RemoterThirdPartyAuthService
com.bsd.pjcloud.thirdparty.api.feign.RemoterThirdZyService
com.bsd.pjcloud.thirdparty.api.feign.RemoterVisitorService