提交 634cf4de 作者: 涂茂林

合并分支 'dev_tzl' 到 'dev_tml'

Dev tzl

查看合并请求 chemical-kesai/kshg-api!30
......@@ -12,7 +12,9 @@ import lombok.*;
import lombok.experimental.FieldDefaults;
import lombok.experimental.FieldNameConstants;
import org.hibernate.annotations.Comment;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.UpdateTimestamp;
import org.hibernate.snowflake.SnowflakeId;
/**
......@@ -60,8 +62,10 @@ public class Icon implements Serializable {
String iconOffline;
@Comment("创建时间")
@CreationTimestamp
LocalDateTime createTime;
@Comment("修改时间")
@UpdateTimestamp
LocalDateTime updateTime;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.domain.location;
import com.yiring.app.domain.visitor.Car;
import com.yiring.auth.domain.user.User;
import com.yiring.common.annotation.FieldMapping;
import com.yiring.common.domain.BasicEntity;
......@@ -86,6 +87,10 @@ public class LocationTag extends BasicEntity implements Serializable {
@Comment("绑定用户")
User user;
@OneToOne
@Comment("绑定车辆")
Car car;
@FieldMapping
@Comment("使用/闲置")
Boolean used;
......
......@@ -19,6 +19,8 @@ import org.springframework.stereotype.Repository;
@Repository
public interface LocationTagRepository
extends JpaRepository<LocationTag, Serializable>, JpaSpecificationExecutor<LocationTag> {
LocationTag findByCode(String code);
/**
* 查询在指定区域内的所有标签
* @param geometry 指定区域
......
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.domain.perstatistics;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.*;
import lombok.*;
import lombok.experimental.FieldDefaults;
import lombok.experimental.FieldNameConstants;
import org.hibernate.annotations.Comment;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.UpdateTimestamp;
import org.hibernate.snowflake.SnowflakeId;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/15 9:15
*/
@Getter
@Setter
@ToString
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldNameConstants
@FieldDefaults(level = AccessLevel.PRIVATE)
@Entity
@Table(name = "BS_PERSONNEL_STATISTICS")
@Comment("区域人员统计")
public class PersonnelStatistics implements Serializable {
@Serial
private static final long serialVersionUID = 1276138943241366605L;
@Id
@Comment("主键id")
@GeneratedValue(generator = SnowflakeId.GENERATOR)
@GenericGenerator(name = SnowflakeId.GENERATOR, strategy = SnowflakeId.Strategy.LONG)
Long id;
@Comment("区域")
String region;
@Comment("入场人数")
String admissionNumber;
@Comment("出场人数")
String attendance;
@Comment("创建时间")
@CreationTimestamp
LocalDateTime createTime;
@Comment("修改时间")
@UpdateTimestamp
LocalDateTime updateTime;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.domain.perstatistics;
import java.io.Serializable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/15 9:20
*/
@Repository
public interface PersonnelStatisticsRepository
extends JpaRepository<PersonnelStatistics, Serializable>, JpaSpecificationExecutor<PersonnelStatistics> {}
......@@ -2,6 +2,7 @@
package com.yiring.app.domain.video;
import java.io.Serializable;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
......@@ -18,8 +19,8 @@ public interface VideoRepository extends JpaRepository<Video, Serializable>, Jpa
* 根据监控点位名称模糊查询
* @author tzl
* @date 2022/4/27 13:39
* @param VideoName 监控点位名称
* @param str 监控点位名称
* @return com.yiring.app.domain.video.Video
*/
Video findByVideoNameLike(String VideoName);
List<Video> findByVideoNameLike(String str);
}
......@@ -5,10 +5,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.*;
import lombok.*;
import lombok.experimental.FieldDefaults;
import lombok.experimental.FieldNameConstants;
......@@ -61,4 +58,22 @@ public class Car implements Serializable {
@Comment("标签卡")
String labelCard;
@Comment("司机名称")
String driverName;
@Comment("司机电话")
String mobile;
@Comment("所属公司")
String orgId;
@Comment("被访人电话")
String intervieweeMobile;
@Comment("被访人姓名")
String intervieweeName;
@Comment("来访原因/邀请原因")
String reason;
}
......@@ -21,4 +21,6 @@ public interface CarRepository extends JpaRepository<Car, Serializable>, JpaSpec
*/
@Query("SELECT COUNT(c.id) FROM Car c where carNum=?1 and cardRecTime is null")
int hasCarInfoByCarNum(String param);
Car findByLabelCard(String str);
}
......@@ -2,12 +2,10 @@
package com.yiring.app.domain.visitor;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yiring.auth.domain.user.User;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.*;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Table;
import lombok.*;
......@@ -71,9 +69,6 @@ public class Visitor implements Serializable {
@Comment("所属单位id")
String orgId;
// @Comment("被访人id")
// Long intervieweeId;
@Comment("来访原因/邀请原因")
String reason;
......@@ -81,10 +76,6 @@ public class Visitor implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
LocalDateTime cardRecTime;
@Comment("预约到访时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
LocalDateTime appOfVisitTime;
@Comment("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
LocalDateTime createTime;
......@@ -93,33 +84,20 @@ public class Visitor implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
LocalDateTime cardSendTime;
@Comment("备用字段")
Long reserve1;
@Comment("是否已删除:Y是 N否")
@Column(columnDefinition = "VARCHAR DEFAULT 'N'")
String deleted;
@Comment("主访人员id")
Long mainVisitorId;
@Comment("被访人电话")
String intervieweeMobile;
@Comment("被访人姓名")
String intervieweeName;
@Comment("备用字段")
String reserve3;
@Comment("访客车辆")
@OneToOne(cascade = { CascadeType.ALL })
Car car;
@Comment("被访人信息")
@OneToOne
@JoinColumn(name = "interviewee_id", referencedColumnName = "id")
User user;
@Comment("修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
LocalDateTime updateTime;
// @Comment("邀请人")
// @OneToOne(cascade = { CascadeType.ALL })
// @JoinColumn(name = "main_visitor_id", referencedColumnName = "id")
// Visitor visitor;
}
......@@ -2,9 +2,6 @@
package com.yiring.app.domain.visitor;
import java.io.Serializable;
import java.util.List;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
......@@ -17,9 +14,10 @@ import org.springframework.stereotype.Repository;
public interface VisitorRepository extends JpaRepository<Visitor, Serializable>, JpaSpecificationExecutor<Visitor> {
Visitor findByIdAndDeleted(Long id, String deleted);
List<Visitor> findAllByMainVisitorIdAndDeletedEquals(Long mainId, String deleted);
Visitor findByLabelCardAndDeleted(String card, String deleted);
// List<Visitor> findAllByMainVisitorIdAndDeletedEquals(Long mainId, String deleted);
List<Visitor> findAllByMainVisitorIdAndDeletedEqualsAndIdIsNot(Long mainId, String deleted, Long id);
// List<Visitor> findAllByMainVisitorIdAndDeletedEqualsAndIdIsNot(Long mainId, String deleted, Long id);
Page<Visitor> findAllByVisitorMobileAndDeletedEquals(String mobile, String deleted, Pageable pageable);
// Page<Visitor> findAllByVisitorMobileAndDeletedEquals(String mobile, String deleted, Pageable pageable);
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.excel.perstatistics;
import com.github.liaochong.myexcel.core.annotation.ExcelColumn;
import java.io.Serial;
import java.io.Serializable;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/15 9:55
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class PersonnelStatisticsExportExcel implements Serializable {
@Serial
private static final long serialVersionUID = -6466089255235570264L;
@ExcelColumn(title = "区域", width = 10)
String region;
@ExcelColumn(title = "入场人数", width = 5)
Long admissionNumber;
@ExcelColumn(title = "出场人数", width = 5)
Long attendance;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.perstatistics;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/15 9:15
*/
@ApiModel("PersonnelStatisticsQueryParam")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class PersonnelStatisticsQueryParam implements Serializable {
@Serial
private static final long serialVersionUID = -638192778218413746L;
@ApiModelProperty(value = "区域", example = "11")
Long sourceId;
@ApiModelProperty(value = "部门名称", example = "11")
Long departmentId;
@ApiModelProperty(value = "开始时间")
LocalDateTime startTime;
@ApiModelProperty(value = "结束时间")
LocalDateTime endTime;
}
......@@ -10,6 +10,7 @@ import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Pattern;
import lombok.*;
import lombok.experimental.FieldDefaults;
import org.hibernate.annotations.Comment;
/**
* @author tzl
......@@ -34,8 +35,28 @@ public class CarParam implements Serializable {
@ApiModelProperty(value = "车辆类型", example = "1")
String carType;
@ApiModelProperty(value = "车辆类型", example = "1")
@ApiModelProperty(value = "标签卡", example = "BT82737612", required = true)
String labelCard;
// @ApiModelProperty(value = "对应访客id", example = "1", required = true)
// Long visitorId;
@ApiModelProperty(value = "司机名称", example = "张三", required = true)
String driverName;
@ApiModelProperty(value = "司机电话", example = "17674741309", required = true)
@Pattern(regexp = RegEx.MOBILE, message = "请输入正确的号码")
String mobile;
@ApiModelProperty(value = "所属公司", example = "壹润科技")
String orgId;
@Comment("被访人电话")
@ApiModelProperty(value = "被访人电话", example = "17674741309")
String intervieweeMobile;
@Comment("被访人姓名")
@ApiModelProperty(value = "被访人姓名", example = "李四")
String intervieweeName;
@Comment("来访原因")
@ApiModelProperty(value = "来访原因", example = "工作")
String reason;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.visitor;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yiring.common.constant.RegEx;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Pattern;
import lombok.*;
......@@ -38,41 +36,26 @@ public class VisitorParam implements Serializable {
String visitorMobile;
@ApiModelProperty(value = "到访人身份证", example = "430441190001255417", required = true)
@Pattern(regexp = RegEx.CARDNO, message = "手机号码格式不正确")
@NotEmpty(message = "到访人身份证不能为空")
String visitorCarNum;
@ApiModelProperty(value = "是否特殊作业", example = "fasle", required = true)
String taskType;
@ApiModelProperty(value = "访客来源", example = "外部邀请", required = true)
String visitorSource;
@ApiModelProperty(value = "访客所属公司", example = "壹润科技")
String orgId;
@ApiModelProperty(value = "被访人id", example = "1", required = true)
String intervieweeId;
@ApiModelProperty(value = "被访人电话", example = "17674741309")
@Pattern(regexp = RegEx.MOBILE, message = "手机号码格式不正确")
String intervieweeMobile;
@ApiModelProperty(value = "被访人姓名", example = "李敬")
String intervieweeName;
@ApiModelProperty(value = "来访原因", example = "看看", required = true)
String reason;
@ApiModelProperty(value = "来访时间", example = "2022-04-19 14:28:00")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
LocalDateTime appOfVisitTime;
@ApiModelProperty(value = "是否有车(是 1 ,否 2)", example = "2")
Integer hasCar;
@ApiModelProperty(value = "车牌号码", example = "湘A99999")
@Pattern(regexp = RegEx.CARNUM, message = "车牌号码格式不正确")
String carNum;
@ApiModelProperty(value = "车辆类型", example = "货车")
String carType;
@ApiModelProperty(value = "车辆标签卡", example = "1")
@ApiModelProperty(value = "人员标签卡", example = "1")
String labelCard;
@ApiModelProperty(value = "主访人员id", example = "1")
Long mainVisitorId;
}
......@@ -15,8 +15,14 @@ import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.persistence.criteria.Order;
import javax.persistence.criteria.Predicate;
import org.springframework.beans.BeanUtils;
import org.springframework.data.domain.*;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
/**
......@@ -76,7 +82,16 @@ public class IconServiceImpl implements IconService {
public Result<PageVo<IconVo>> pageIcon(PageParam pageParam) {
//分页
Pageable pageable = PageRequest.of(pageParam.getPageNo() - 1, pageParam.getPageSize());
Page<Icon> all = iconRepository.findAll(pageable);
Page<Icon> all = iconRepository.findAll(
(Specification<Icon>) (root, query, criteriaBuilder) -> {
Predicate[] predicates = new Predicate[0];
Order order = criteriaBuilder.desc(root.get(Icon.Fields.updateTime));
query.where();
query.orderBy(order);
return criteriaBuilder.and();
},
pageable
);
List<IconVo> data = all
.get()
.map(icon -> {
......
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.location.turnover;
import com.yiring.app.param.perstatistics.PersonnelStatisticsQueryParam;
import com.yiring.app.vo.perstatistics.PersonnelStatisticsDetailVo;
import com.yiring.app.vo.perstatistics.PersonnelStatisticsVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo;
import javax.servlet.http.HttpServletResponse;
/**
* @author tzl
* 2022/5/15 11:41
*/
public interface LocationTurnoverService {
/**
* 分页区域人员统计信息
* @author tzl
* @date 2022/5/15 11:44
* @param personnelStatisticsQueryParam PersonnelStatisticsQueryParam
* @return com.yiring.common.core.Result<com.yiring.common.vo.PageVo<com.yiring.app.domain.location.LocationTurnover>>
*/
Result<PageVo<PersonnelStatisticsVo>> pageInfo(
PersonnelStatisticsQueryParam personnelStatisticsQueryParam,
PageParam pageParam
);
/**
* 下拉框
* @author tzl
* @date 2022/5/16 13:59
* @param personnelStatisticsQueryParam PersonnelStatisticsQueryParam
* @return com.yiring.common.core.Result<com.yiring.common.vo.PageVo<com.yiring.app.vo.perstatistics.PersonnelStatisticsVo>>
*/
Result<PageVo<PersonnelStatisticsVo>> indexInfo(PersonnelStatisticsQueryParam personnelStatisticsQueryParam);
/**
*
* @author tzl
* @date 2022/5/16 11:57
* @param personnelStatisticsQueryParam PersonnelStatisticsQueryParam
* @param httpServletResponse HttpServletResponse
*/
void export(PersonnelStatisticsQueryParam personnelStatisticsQueryParam, HttpServletResponse httpServletResponse);
/**
*
* @author tzl
* @date 2022/5/15 17:42
* @param personnelStatisticsQueryParam PersonnelStatisticsQueryParam
* @param pageParam PageParam
* @return com.yiring.common.core.Result<com.yiring.common.vo.PageVo<com.yiring.app.vo.perstatistics.PersonnelStatisticsVo>>
*/
Result<PageVo<PersonnelStatisticsDetailVo>> selectInfo(
PersonnelStatisticsQueryParam personnelStatisticsQueryParam,
PageParam pageParam
);
}
......@@ -13,6 +13,7 @@ import com.yiring.app.domain.log.ZyRealtimeLogRepository;
import com.yiring.app.param.key.KeyAlarmAddParam;
import com.yiring.app.service.message.PositionMessageService;
import com.yiring.app.util.GeoUtils;
import com.yiring.app.vo.equipment.EquipmentVo;
import com.yiring.auth.domain.dept.Department;
import com.yiring.auth.domain.user.User;
import com.yiring.auth.domain.user.UserRepository;
......@@ -28,6 +29,7 @@ import javax.persistence.criteria.Expression;
import javax.persistence.criteria.Predicate;
import lombok.extern.slf4j.Slf4j;
import org.locationtech.jts.geom.Point;
import org.springframework.beans.BeanUtils;
import org.springframework.data.domain.*;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.stereotype.Service;
......@@ -422,6 +424,25 @@ public class PositionMessageServiceImpl implements PositionMessageService {
public void processDeviceStatusMessage(JSONObject data) {
// TODO
log.info("DeviceStatus Message: {}", data);
EquipmentVo equipmentVo = data.toJavaObject(EquipmentVo.class);
if (equipmentVo.getDeviceType().equals("BTI")) {
Optional<LocationTag> one = locationTagRepository.findOne(
Example.of(LocationTag.builder().code(equipmentVo.getDeviceId()).build())
);
if (one.isEmpty()) {
log.error("没找到该标签");
return;
}
//修改标签电量
LocationTag locationTag = LocationTag
.builder()
.code(equipmentVo.getDeviceId())
.volt(equipmentVo.getVolt())
.voltUnit(equipmentVo.getField_21())
.build();
BeanUtils.copyProperties(one.get(), locationTag);
locationTagRepository.saveAndFlush(locationTag);
}
}
/**
......
......@@ -400,8 +400,7 @@ public class UserAppServiceImpl implements UserAppService {
postOptional.ifPresent(user::setPost);
}
user.setLinkId(Convert.toLong(id));
userRepository.save(user);
userRepository.saveAndFlush(user);
return Result.ok();
}
......
......@@ -98,5 +98,5 @@ public interface VideoService {
* @param indexParam 入参
* @return com.yiring.common.core.Result<com.yiring.app.vo.video.VideoNameVo>
*/
Result<VideoNameVo> findByVideoNameLike(IndexParam indexParam);
Result<PageVo<VideoNameVo>> findByVideoNameLike(IndexParam indexParam);
}
......@@ -95,8 +95,8 @@ public class VideoServiceImpl implements VideoService {
.mediaServerId("ZbnQN5csqxrPix7a")
.enable(true)
.enable_hls(true)
.type(video.getM3u8().contains("sss") ? "ffmpeg" : "default")
.timeout_ms(video.getM3u8().contains("sss") ? 60 : null)
.type(video.getM3u8().contains("/h265") ? "ffmpeg" : "default")
.timeout_ms(video.getM3u8().contains("/h265") ? 60 : null)
.build();
JSONObject jsonObject = gbClient.proxySave(streamProxyItem, gbCookie());
if (!jsonObject.get("code").equals(0)) {
......@@ -158,8 +158,8 @@ public class VideoServiceImpl implements VideoService {
.mediaServerId("ZbnQN5csqxrPix7a")
.enable(true)
.enable_hls(true)
.type(video.getM3u8().contains("sss") ? "ffmpeg" : "default")
.timeout_ms(video.getM3u8().contains("sss") ? 60 : null)
.type(video.getM3u8().contains("/h265") ? "ffmpeg" : "default")
.timeout_ms(video.getM3u8().contains("/h265") ? 60 : null)
.build();
JSONObject jsonObject = gbClient.proxySave(streamProxyItem, gbCookie());
if (!jsonObject.get("code").equals(0)) {
......@@ -363,11 +363,20 @@ public class VideoServiceImpl implements VideoService {
}
@Override
public Result<VideoNameVo> findByVideoNameLike(IndexParam indexParam) {
VideoNameVo videoNameVo = new VideoNameVo();
Video byVideoNameLike = videoRepository.findByVideoNameLike(indexParam.getStr());
BeanUtils.copyProperties(byVideoNameLike, videoNameVo);
return Result.ok(videoNameVo);
public Result<PageVo<VideoNameVo>> findByVideoNameLike(IndexParam indexParam) {
List<Video> byVideoNameLike = videoRepository.findAll(
condition(VideoQueryParam.builder().videoName(indexParam.getStr()).build())
);
List<VideoNameVo> data = byVideoNameLike
.stream()
.map(video -> {
VideoNameVo vo = new VideoNameVo();
BeanUtils.copyProperties(video, vo);
return vo;
})
.collect(Collectors.toList());
PageVo<VideoNameVo> pageVo = PageVo.build(data, data.size());
return Result.ok(pageVo);
}
boolean has(String uuid) {
......
......@@ -2,10 +2,12 @@
package com.yiring.app.service.visitor;
import com.yiring.app.domain.visitor.Car;
import com.yiring.app.param.visitor.CarParam;
import com.yiring.app.param.visitor.CarQueryParam;
import com.yiring.app.vo.visitor.CarVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam;
import com.yiring.common.param.IndexParam;
import com.yiring.common.vo.PageVo;
import javax.servlet.http.HttpServletResponse;
import org.springframework.data.jpa.domain.Specification;
......@@ -18,10 +20,10 @@ public interface CarService {
/**
* 添加车辆来访信息
*
* @param car Car
* @param carParam CarParam
* @return 车辆来访信息id
*/
Result<Long> saveCarInfo(Car car);
Result<CarVo> saveCarInfo(CarParam carParam);
/**
* 修改车辆来访信息
......@@ -59,10 +61,10 @@ public interface CarService {
/**
* 查询车辆来访信息详情
*
* @param idParam IdParam
* @param indexParam IndexParam
* @return 车辆来访信息
*/
Result<CarVo> getCarInfo(IdParam idParam);
Result<CarVo> getCarInfo(IndexParam indexParam);
/**
* 查询车辆来访信息(分页)
......
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.visitor;
import com.yiring.app.param.visitor.InvitationAppQueryParam;
import com.yiring.app.param.visitor.InvitationParam;
import com.yiring.app.param.visitor.InvitationQueryParam;
import com.yiring.app.vo.visitor.InvitationDetailsVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam;
import com.yiring.common.vo.PageVo;
import javax.servlet.http.HttpServletResponse;
/**
* @author tzl
* @date 2022/4/24 16:57
*/
public interface InvitationService {
/**
* 发起邀请
* @param invitationParam 新增邀请入参
* @return 是否成功
*/
Result<String> saveInv(InvitationParam invitationParam);
/**
* 修改邀请
* @date 2022/4/24 17:50
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result<String> updateInv(InvitationParam invitationParam, IdParam idParam);
/**
* 删除邀请
* @date 2022/4/24 17:52
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result<String> deleteInv(IdParam idParam);
/**
* 分页
* @date 2022/4/24 17:56
* @return com.yiring.common.core.Result<com.yiring.common.vo.PageVo<java.lang.String>>
*/
Result<PageVo<InvitationDetailsVo>> pageInv(InvitationQueryParam invitationQueryParam);
/**
* 撤回邀请
* @author tzl
* @date 2022/4/25 11:30
* @param idParam 主键id
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result<String> recallInv(IdParam idParam);
/**
* 发送邀请
* @author tzl
* @date 2022/4/25 11:31
* @param idParam 主键id
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result<String> sendInv(IdParam idParam);
/**
* 导出邀请信息
* @author tzl
* @date 2022/4/25 11:34
* @param invitationQueryParam 筛选条件
*/
void exportInv(InvitationQueryParam invitationQueryParam, HttpServletResponse response);
/**
* 小程序查询全部
* @author tzl
* @date 2022/4/28 10:56
* @param idParam 主键id
* @return com.yiring.common.core.Result<com.yiring.app.vo.visitor.InvitationDetailsVo>
*/
Result<InvitationDetailsVo> detailsInv(IdParam idParam);
/**
* 小程序用户查看邀请信息
* @author tzl
* @date 2022/4/28 11:30
* @param invitationAppQueryParam 入参
* @return com.yiring.common.core.Result<com.yiring.common.vo.PageVo<com.yiring.app.vo.visitor.InvitationVo>>
*/
Result<PageVo<InvitationDetailsVo>> findAllByVisitor_VisitorMobileAndVisitor_Deleted(
InvitationAppQueryParam invitationAppQueryParam
);
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.visitor;
import com.yiring.app.param.visitor.VisitorAppQueryParam;
import com.yiring.app.param.visitor.VisitorParam;
import com.yiring.app.param.visitor.VisitorQueryParam;
import com.yiring.app.vo.visitor.VisitorAppVo;
import com.yiring.app.vo.visitor.VisitorDetailsVo;
import com.yiring.app.vo.visitor.VisitorVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam;
import com.yiring.common.param.IndexParam;
import com.yiring.common.vo.PageVo;
import javax.servlet.http.HttpServletResponse;
......@@ -22,7 +20,7 @@ public interface VisitorService {
* @param visitorParam 新增访客入参
* @return 是否成功
*/
Result<String> saveVisitor(VisitorParam visitorParam);
Result<VisitorDetailsVo> saveVisitor(VisitorParam visitorParam);
// /**
// * 访客删除
......@@ -37,14 +35,14 @@ public interface VisitorService {
* @param idParam 修改访客的主键id
* @return 是否成功
*/
Result<String> updateVisitor(VisitorParam visitorParam, IdParam idParam);
// Result<String> updateVisitor(VisitorParam visitorParam, IdParam idParam);
/**
* 查询访客详情
* @param idParam 主键id
* @param indexParam 主键id
* @return 访客信息
*/
Result<VisitorDetailsVo> selectVisitor(IdParam idParam);
Result<VisitorDetailsVo> selectVisitor(IndexParam indexParam);
/**
* 分页查询
......@@ -59,28 +57,27 @@ public interface VisitorService {
* @param response HttpServletResponse
*/
void exportVisitor(VisitorQueryParam visitorQueryParam, HttpServletResponse response);
// /**
// * 发卡
// * @param labelCard 标签卡号
// * @param idParam 主键id
// * @return 是否成功
// */
// Result<String> cardSend(String labelCard, IdParam idParam);
//
// /**
// * 收卡
// * @param idParam 主键id
// * @return 是否成功
// */
// Result<String> cardRec(IdParam idParam);
/**
* 发卡
* @param labelCard 标签卡号
* @param idParam 主键id
* @return 是否成功
*/
Result<String> cardSend(String labelCard, IdParam idParam);
/**
* 收卡
* @param idParam 主键id
* @return 是否成功
*/
Result<String> cardRec(IdParam idParam);
/**
* 小程序查看来访记录
* @author tzl
* @date 2022/4/29 15:03
* @param visitorAppQueryParam 入参
* @return com.yiring.common.core.Result<com.yiring.app.vo.visitor.VisitorVo>
*/
Result<PageVo<VisitorAppVo>> selectInfo(VisitorAppQueryParam visitorAppQueryParam);
// /**
// * 小程序查看来访记录
// * @author tzl
// * @date 2022/4/29 15:03
// * @param visitorAppQueryParam 入参
// * @return com.yiring.common.core.Result<com.yiring.app.vo.visitor.VisitorVo>
// */
// Result<PageVo<VisitorAppVo>> selectInfo(VisitorAppQueryParam visitorAppQueryParam);
}
......@@ -3,16 +3,19 @@ package com.yiring.app.service.visitor.impl;
import cn.hutool.core.util.StrUtil;
import com.github.liaochong.myexcel.core.DefaultStreamExcelBuilder;
import com.yiring.app.domain.location.LocationTag;
import com.yiring.app.domain.location.LocationTagRepository;
import com.yiring.app.domain.visitor.Car;
import com.yiring.app.domain.visitor.CarRepository;
import com.yiring.app.excel.visitor.CarExportExcel;
import com.yiring.app.param.visitor.CarParam;
import com.yiring.app.param.visitor.CarQueryParam;
import com.yiring.app.service.visitor.CarService;
import com.yiring.app.vo.visitor.CarVo;
import com.yiring.auth.domain.role.Role;
import com.yiring.common.core.Result;
import com.yiring.common.core.Status;
import com.yiring.common.param.IdParam;
import com.yiring.common.param.IndexParam;
import com.yiring.common.vo.PageVo;
import java.io.OutputStream;
import java.net.URLEncoder;
......@@ -47,22 +50,26 @@ public class CarServiceImpl implements CarService {
@Resource
CarRepository carRepository;
@Resource
LocationTagRepository locationTagRepository;
@Override
public Result<Long> saveCarInfo(Car car) {
public Result<CarVo> saveCarInfo(CarParam carParam) {
// 检查车牌号车辆是否已经在园内
if (carRepository.hasCarInfoByCarNum(car.getCarNum()) > 0) {
return Result.no(Status.BAD_REQUEST, "您的车牌号已存在");
if (carRepository.hasCarInfoByCarNum(carParam.getCarNum()) > 0) {
return Result.no(Status.BAD_REQUEST, "车辆已在园区内");
}
// Car car = Car
// .builder()
// .carNum(carParam.getCarNum())
// .carType(carParam.getCarType())
// .labelCard(carParam.getLabelCard())
// .createTime(LocalDateTime.now())
// // .visitorId(carParam.getVisitorId())
// .build();
Car carReuslt = carRepository.saveAndFlush(car);
return Result.ok(carReuslt.getId());
Car car = Car.builder().cardSendTime(LocalDateTime.now()).createTime(LocalDateTime.now()).build();
BeanUtils.copyProperties(carParam, car);
LocationTag byCode = locationTagRepository.findByCode(carParam.getLabelCard());
//添加一条车辆信息
Car carResult = carRepository.saveAndFlush(car);
byCode.setCar(carResult);
//绑定标签和车辆的关系
locationTagRepository.saveAndFlush(byCode);
CarVo carVo = new CarVo();
BeanUtils.copyProperties(carResult, carVo);
return Result.ok(carVo);
}
@Override
......@@ -120,15 +127,13 @@ public class CarServiceImpl implements CarService {
}
@Override
public Result<CarVo> getCarInfo(IdParam idParam) {
Optional<Car> optional = carRepository.findById(idParam.getId());
if (optional.isEmpty()) {
public Result<CarVo> getCarInfo(IndexParam indexParam) {
Car byLabelCard = carRepository.findByLabelCard(indexParam.getStr());
if (byLabelCard == null) {
return Result.no(Status.NOT_FOUND);
}
Car entity = optional.get();
CarVo vo = new CarVo();
BeanUtils.copyProperties(entity, vo, Role.Fields.permissions);
BeanUtils.copyProperties(byLabelCard, vo);
return Result.ok(vo);
}
......
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.equipment;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/16 9:56
*/
@ApiModel("EquipmentVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class EquipmentVo implements Serializable {
@Serial
private static final long serialVersionUID = -3268799901290404934L;
@ApiModelProperty(value = "设备编号", example = "1518841086628335616")
String deviceId;
@ApiModelProperty(value = "地图编号", example = "1518841086628335616")
String areaId;
@ApiModelProperty(value = "设备类型", example = "BTI:定位器 SXT:监控摄像头 GAT:闸机 LAB:指示牌 BTR:定位基站")
String deviceType;
@ApiModelProperty(value = "电量", example = "1")
Integer volt;
@ApiModelProperty(value = "电量单位(默认mV)", example = "mV")
String field_21;
@ApiModelProperty(value = "修改时间", example = "2022")
LocalDateTime updateTime;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.icon;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* @author tzl
......@@ -10,8 +16,33 @@ import java.io.Serializable;
* @description:
* @date 2022/5/5 15:10
*/
@ApiModel("IconVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class IconVo implements Serializable {
@Serial
private static final long serialVersionUID = 2334297671118394950L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "编号")
Long id;
@ApiModelProperty(value = "图标名称")
String iconName;
@ApiModelProperty(value = "图标类型")
String iconType;
@ApiModelProperty(value = "图标分类")
String iconSort;
@ApiModelProperty(value = "在线图标")
String iconOnline;
@ApiModelProperty(value = "离线图标")
String iconOffline;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.location.station;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiring.app.util.GeoUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.*;
import lombok.experimental.FieldDefaults;
import org.locationtech.jts.geom.Point;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/17 10:41
*/
@ApiModel("LocationBaseStationVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class LocationBaseStationVo implements Serializable {
@Serial
private static final long serialVersionUID = 2580621691725484516L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "主键", example = "188354391834")
Long id;
@ApiModelProperty(value = "编号", example = "BTI88888888")
String deviceId;
@ApiModelProperty(value = "类型", example = "BTI88888888")
String deviceType;
@ApiModelProperty(value = "最后一次在线时间", example = "BTI88888888")
LocalDateTime time;
@ApiModelProperty(value = "坐标", example = "01010000805C8FC2F528D4734033333333335B7D400000000000000000")
Point point;
public Point getPoint() {
if (x != null && y != null && z != null) {
return GeoUtils.xyzToPoint(x, y, z);
}
return null;
}
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "所属地图id", example = "1:总图2:一层3:二层")
Long areaId;
@ApiModelProperty(value = "所属地图", example = "1:总图2:一层3:二层")
String areaName;
@ApiModelProperty(value = "电量单位", example = "")
String voltUnit;
Double x;
Double y;
Double z;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.perstatistics;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/15 9:15
*/
@ApiModel("PersonnelStatisticsDetailVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class PersonnelStatisticsDetailVo implements Serializable {
@Serial
private static final long serialVersionUID = -1591876062645939080L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "区域id", example = "1")
Long sourceId;
@ApiModelProperty(value = "区域", example = "化工区")
String region;
@ApiModelProperty(value = "时间", example = "")
LocalDateTime time;
@ApiModelProperty(value = "是否入场")
Boolean enter;
@ApiModelProperty(value = "用户")
UserVo userVo;
@ApiModel("UserVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public static class UserVo implements Serializable {
@Serial
private static final long serialVersionUID = 4115779013003587949L;
@ApiModelProperty(value = "被访人姓名", example = "张三")
String realName;
String uuid;
String deptName;
}
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.perstatistics;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/15 9:15
*/
@ApiModel("PersonnelStatisticsVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class PersonnelStatisticsVo implements Serializable {
@Serial
private static final long serialVersionUID = -5973651085056867803L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "区域id", example = "1")
Long sourceId;
@ApiModelProperty(value = "区域", example = "化工区")
String region;
@ApiModelProperty(value = "入场人数", example = "10")
Long admissionNumber;
@ApiModelProperty(value = "出场人数", example = "5")
Long attendance;
@ApiModelProperty(value = "开始时间")
LocalDateTime startTime;
@ApiModelProperty(value = "结束时间")
LocalDateTime endTime;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.perstatistics;
import io.swagger.annotations.ApiModel;
import java.io.Serial;
import java.io.Serializable;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/15 14:07
*/
@ApiModel("TurnoverResultVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class TurnoverResultVo implements Serializable {
@Serial
private static final long serialVersionUID = 4478127252599634203L;
Long num;
Long sourceId;
Boolean enter;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.visitor;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.*;
import lombok.experimental.FieldDefaults;
import org.hibernate.annotations.Comment;
/**
* @author tzl
......@@ -35,52 +38,33 @@ public class CarVo implements Serializable {
@ApiModelProperty(value = "车辆类型", example = "1")
String carType;
/**
* 车辆类型翻译
*/
// @ApiModelProperty(value = "车辆类型(字典翻译)", example = "货车")
// String carTypeName;
// public String getCarTypeName() {
// if (StrUtil.isNotBlank(carType)) {
// return DictUtils.getDictLabel("car_type", carType);
// }
// return null;
// }
@ApiModelProperty(value = "标签卡", example = "DT8875666")
String labelCard;
// /**
// * 车辆类型翻译
// */
// @ApiModelProperty(value = "标签卡状态", example = "未发卡")
// String labelCardStatusName;
// public String getLabelCardStatusName() {
// if (StrUtil.isNotBlank(carType)) {
// return DictUtils.getDictLabel("car_label_status", labelCardStatus);
// }
// return null;
// }
@Comment("司机名称")
@ApiModelProperty(value = "司机名称", example = "张三")
String driverName;
// @ApiModelProperty(value = "单位id", example = "湖南壹润科技")
// String orgId;
//
// @ApiModelProperty(value = "被访人id", example = "1")
// String intervieweeId;
//
// @ApiModelProperty(value = "来访原因", example = "装货")
// String reason;
//
// @ApiModelProperty(value = "收卡时间", example = "2022-04-11 17:25:33")
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// LocalDateTime cardRecTime;
@Comment("司机电话")
@ApiModelProperty(value = "司机电话", example = "17674741309")
String mobile;
@Comment("所属公司")
@ApiModelProperty(value = "所属公司", example = "壹润科技")
String orgId;
@ApiModelProperty(value = "被访人电话", example = "17674741309")
String intervieweeMobile;
@Comment("被访人姓名")
@ApiModelProperty(value = "被访人姓名", example = "李四")
String intervieweeName;
// @ApiModelProperty(value = "创建时间", example = "2022-04-11 17:25:33")
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// LocalDateTime createTime;
//
// @ApiModelProperty(value = "发卡时间", example = "2022-04-11 17:25:33")
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// LocalDateTime cardSendTime;
@ApiModelProperty(value = "来访原因", example = "装货")
String reason;
@ApiModelProperty(value = "发卡时间", example = "2022-04-11 17:25:33")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
LocalDateTime cardSendTime;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.visitor;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiring.app.domain.visitor.Car;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
import java.time.LocalDateTime;
import lombok.*;
import lombok.experimental.FieldDefaults;
......@@ -47,103 +47,25 @@ public class VisitorDetailsVo implements Serializable {
@ApiModelProperty(value = "是否特殊作业", example = "true")
boolean taskType;
// @ApiModelProperty(value = "邀请人数", example = "1")
// Integer numOfVisitor;
@ApiModelProperty(value = "访客来源", example = "内部邀请")
String visitorSource;
@ApiModelProperty(value = "标签卡", example = "WE34421231")
String labelCard;
// @ApiModelProperty(value = "标签卡状态", example = "使用中")
// String labelCardStatus;
@ApiModelProperty(value = "所属单位id", example = "壹润科技")
String orgId;
// @ApiModelProperty(value = "被访人id", example = "1")
// Long intervieweeId;
@ApiModelProperty(value = "被访人姓名", example = "李四")
String intervieweeName;
@ApiModelProperty(value = "被访人电话", example = "李四")
String intervieweeMobile;
@ApiModelProperty(value = "来访原因", example = "来访原因")
String reason;
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// @ApiModelProperty(value = "收卡时间", example = "2022-04-19 14:28:00")
// LocalDateTime cardRecTime;
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// @ApiModelProperty(value = "预约到访时间", example = "2022-04-19 14:28:00")
// LocalDateTime appOfVisitTime;
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// @ApiModelProperty(value = "创建时间", example = "2022-04-19 14:28:00")
// LocalDateTime createTime;
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// @ApiModelProperty(value = "发卡时间", example = "2022-04-19 14:28:00")
// LocalDateTime cardSendTime;
@ApiModelProperty(value = "车辆反参")
Car car;
UserVo userVo;
@ApiModelProperty(value = "主访人id")
Long mainVisitorId;
List<VisitorResultVo> list;
@ApiModel("VisitorResultVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public static class VisitorResultVo implements Serializable {
@Serial
private static final long serialVersionUID = 4115779013003587949L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "id", example = "1")
Long id;
@ApiModelProperty(value = "到访人姓名", example = "张三")
String visitorName;
@ApiModelProperty(value = "到访人电话", example = "17688888888")
String visitorMobile;
@ApiModelProperty(value = "主访人id")
Long mainVisitorId;
}
@ApiModel("UserVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public static class UserVo implements Serializable {
@Serial
private static final long serialVersionUID = 4115779013003587949L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "id", example = "1")
Long id;
@ApiModelProperty(value = "被访人姓名", example = "张三")
String realName;
@ApiModelProperty(value = "被访人电话", example = "17688888888")
String mobile;
@ApiModelProperty(value = "被访人部门")
String deptName;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "发卡时间", example = "2022-04-19 14:28:00")
LocalDateTime cardSendTime;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.web.location.station;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.yiring.app.feign.zy.location.beacon.LocationBeaconClient;
import com.yiring.app.util.zy.ZyUtil;
import com.yiring.app.vo.location.station.LocationBaseStationVo;
import com.yiring.common.core.Result;
import com.yiring.common.vo.PageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.util.HashMap;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/17 10:36
*/
@Validated
@SuppressWarnings({ "deprecation" })
@Api(tags = "基站", description = "")
@RestController
@RequestMapping("/station/")
public class LocationBaseStationController {
@Resource
LocationBeaconClient locationBeaconClient;
@ApiOperation(value = "查询基站信息")
@PostMapping("/page")
public Result<PageVo<LocationBaseStationVo>> page() {
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("deviceType", "BTR");
hashMap.put("pageSize", 1000);
hashMap.put("pageNum", 1);
hashMap.put("orgId", 100);
hashMap.put("deviceId", "");
JSONObject page = locationBeaconClient.page(JSONUtil.toJsonStr(hashMap), ZyUtil.manageLogin());
JSONObject data = JSONUtil.parseObj(page.get("data"));
JSONArray records = JSONUtil.parseArray(data.get("records"));
List<LocationBaseStationVo> locationBaseStationVos = JSONUtil.toList(
JSONUtil.toJsonStr(records),
LocationBaseStationVo.class
);
return Result.ok(PageVo.build(locationBaseStationVos, locationBaseStationVos.size()));
}
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.web.location.turnover;
import com.yiring.app.param.perstatistics.PersonnelStatisticsQueryParam;
import com.yiring.app.service.location.turnover.LocationTurnoverService;
import com.yiring.app.vo.perstatistics.PersonnelStatisticsDetailVo;
import com.yiring.app.vo.perstatistics.PersonnelStatisticsVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/15 9:49
*/
@Slf4j
@Validated
@SuppressWarnings({ "deprecation" })
@Api(tags = "人员统计", description = "LocationTurnover")
@RestController
@RequestMapping("/locationTurnover/")
public class LocationTurnoverController {
@Resource
LocationTurnoverService locationTurnoverService;
@ApiOperation(value = "分页查询人员统计")
@GetMapping("pageInfo")
public Result<PageVo<PersonnelStatisticsVo>> pageInfo(
@Valid PersonnelStatisticsQueryParam personnelStatisticsQueryParam,
@Valid PageParam pageParam
) {
return locationTurnoverService.pageInfo(personnelStatisticsQueryParam, pageParam);
}
@ApiOperation(value = "下拉框")
@GetMapping("indexInfo")
public Result<PageVo<PersonnelStatisticsVo>> indexInfo(
@Valid PersonnelStatisticsQueryParam personnelStatisticsQueryParam
) {
return locationTurnoverService.indexInfo(personnelStatisticsQueryParam);
}
@ApiOperation(value = "导出", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
@PostMapping("export")
public void exportVideo(
HttpServletResponse response,
@Valid PersonnelStatisticsQueryParam personnelStatisticsQueryParam
) {
locationTurnoverService.export(personnelStatisticsQueryParam, response);
}
@ApiOperation(value = "查询人员统计详情")
@GetMapping("selectInfo")
public Result<PageVo<PersonnelStatisticsDetailVo>> selectInfo(
@Valid PersonnelStatisticsQueryParam personnelStatisticsQueryParam,
@Valid PageParam pageParam
) {
return locationTurnoverService.selectInfo(personnelStatisticsQueryParam, pageParam);
}
}
......@@ -89,7 +89,7 @@ public class VideoController {
@ApiOperation(value = "根据监控点位名称模糊查询")
@GetMapping("findByVideoNameLike")
public Result<VideoNameVo> findByVideoNameLike(@Valid IndexParam indexParam) {
public Result<PageVo<VideoNameVo>> findByVideoNameLike(@Valid IndexParam indexParam) {
return videoService.findByVideoNameLike(indexParam);
}
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.web.visitor;
import com.yiring.app.param.visitor.CarParam;
import com.yiring.app.param.visitor.CarQueryParam;
import com.yiring.app.service.visitor.CarService;
import com.yiring.app.vo.visitor.CarVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam;
import com.yiring.common.param.IndexParam;
import com.yiring.common.vo.PageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
......@@ -38,11 +40,11 @@ public class CarController {
@Resource
CarService carService;
// @ApiOperation(value = "新增车辆来访信息")
// @PostMapping("saveCarInfo")
// public Result<Long> saveCarInfo(@Valid CarParam carParam) {
// return carService.saveCarInfo(carParam);
// }
@ApiOperation(value = "新增车辆来访信息")
@PostMapping("saveCarInfo")
public Result<CarVo> saveCarInfo(@Valid CarParam carParam) {
return carService.saveCarInfo(carParam);
}
// @ApiOperation(value = "修改车辆来访信息")
// @PostMapping("updateCarInfo")
......@@ -69,11 +71,11 @@ public class CarController {
// return carService.deleteCarInfo(idParam);
// }
// @ApiOperation(value = "查看车辆来访信息详情")
// @GetMapping("getCarInfo")
// public Result<CarVo> getCarInfo(@Valid IdParam idParam) {
// return carService.getCarInfo(idParam);
// }
@ApiOperation(value = "查看车辆来访信息详情")
@GetMapping("getCarInfo")
public Result<CarVo> getCarInfo(@Valid IndexParam indexParam) {
return carService.getCarInfo(indexParam);
}
@ApiOperation(value = "查看车辆来访信息(分页)")
@GetMapping("pageCarInfo")
......
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.web.visitor;
import com.yiring.app.param.visitor.InvitationAppQueryParam;
import com.yiring.app.param.visitor.InvitationParam;
import com.yiring.app.param.visitor.InvitationQueryParam;
import com.yiring.app.service.visitor.InvitationService;
import com.yiring.app.vo.visitor.InvitationDetailsVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam;
import com.yiring.common.vo.PageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/4/25 11:35
*/
@Slf4j
@Validated
@SuppressWarnings({ "deprecation" })
@Api(tags = "邀请", description = "Invitation")
@RestController
@RequestMapping("/invitation/")
public class InvitationController {
@Resource
InvitationService invitationService;
@ApiOperation(value = "新增邀请信息")
@PostMapping("saveInv")
public Result<String> saveInv(@Valid InvitationParam invitationParam) {
return invitationService.saveInv(invitationParam);
}
@ApiOperation(value = "修改邀请信息")
@PostMapping("updateInv")
public Result<String> updateInv(@Valid InvitationParam invitationParam, @Valid IdParam idParam) {
return invitationService.updateInv(invitationParam, idParam);
}
@ApiOperation(value = "撤回")
@PostMapping("recallInv")
public Result<String> recallInv(@Valid IdParam idParam) {
return invitationService.recallInv(idParam);
}
@ApiOperation(value = "发起邀请")
@PostMapping("sendInv")
public Result<String> sendInv(@Valid IdParam idParam) {
return invitationService.sendInv(idParam);
}
@ApiOperation(value = "删除邀请")
@PostMapping("deleteInv")
public Result<String> deleteInv(@Valid IdParam idParam) {
return invitationService.deleteInv(idParam);
}
@ApiOperation(value = "查看邀请信息(分页)")
@GetMapping("pageInv")
public Result<PageVo<InvitationDetailsVo>> pageInv(@Valid InvitationQueryParam invitationQueryParam) {
return invitationService.pageInv(invitationQueryParam);
}
@ApiOperation(value = "导出邀请信息", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
@PostMapping("exportInv")
public void exportInv(HttpServletResponse response, @Valid InvitationQueryParam invitationQueryParam) {
invitationService.exportInv(invitationQueryParam, response);
}
@ApiOperation(value = "小程序查看邀请详情")
@GetMapping("detailsInv")
public Result<InvitationDetailsVo> detailsInv(@Valid IdParam idParam) {
return invitationService.detailsInv(idParam);
}
@ApiOperation(value = "小程序查看邀请")
@GetMapping("appGetInv")
public Result<PageVo<InvitationDetailsVo>> appGetInv(@Valid InvitationAppQueryParam invitationAppQueryParam) {
return invitationService.findAllByVisitor_VisitorMobileAndVisitor_Deleted(invitationAppQueryParam);
}
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.web.visitor;
import com.yiring.app.param.visitor.VisitorAppQueryParam;
import com.yiring.app.param.visitor.VisitorParam;
import com.yiring.app.param.visitor.VisitorQueryParam;
import com.yiring.app.service.visitor.VisitorService;
import com.yiring.app.vo.visitor.VisitorAppVo;
import com.yiring.app.vo.visitor.VisitorDetailsVo;
import com.yiring.app.vo.visitor.VisitorVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam;
import com.yiring.common.param.IndexParam;
import com.yiring.common.vo.PageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
......@@ -42,39 +39,14 @@ public class VisitorController {
@ApiOperation(value = "新增访客信息")
@PostMapping("saveVisitor")
public Result<String> saveVisitor(@Valid VisitorParam visitorParam) {
public Result<VisitorDetailsVo> saveVisitor(@Valid VisitorParam visitorParam) {
return visitorService.saveVisitor(visitorParam);
}
@ApiOperation(value = "修改访客信息")
@PostMapping("updateVisitor")
public Result<String> updateVisitor(@Valid VisitorParam visitorParam, @Valid IdParam idParam) {
return visitorService.updateVisitor(visitorParam, idParam);
}
@ApiOperation(value = "收卡")
@PostMapping("cardRec")
public Result<String> cardRec(@Valid IdParam idParam) {
return visitorService.cardRec(idParam);
}
@ApiOperation(value = "发卡")
@ApiImplicitParam(value = "标签卡", example = "DW8544568", required = true, name = "labelCard")
@PostMapping("cardSend")
public Result<String> cardSend(@Valid IdParam idParam, String labelCard) {
return visitorService.cardSend(labelCard, idParam);
}
// @ApiOperation(value = "删除访客信息")
// @PostMapping("deleteVisitor")
// public Result<String> deleteVisitor(@Valid IdParam idParam) {
// return visitorService.deleteVisitor(idParam);
// }
@ApiOperation(value = "查看访客信息详情")
@GetMapping("selectVisitor")
public Result<VisitorDetailsVo> selectVisitor(@Valid IdParam idParam) {
return visitorService.selectVisitor(idParam);
public Result<VisitorDetailsVo> selectVisitor(@Valid IndexParam indexParam) {
return visitorService.selectVisitor(indexParam);
}
@ApiOperation(value = "查看访客信息(分页)")
......@@ -88,10 +60,4 @@ public class VisitorController {
public void exportVisitor(HttpServletResponse response, @Valid VisitorQueryParam visitorQueryParam) {
visitorService.exportVisitor(visitorQueryParam, response);
}
@ApiOperation(value = "小程序查看来访历史(分页)")
@GetMapping("selectInfo")
public Result<PageVo<VisitorAppVo>> selectInfo(@Valid VisitorAppQueryParam visitorAppQueryParam) {
return visitorService.selectInfo(visitorAppQueryParam);
}
}
......@@ -36,6 +36,10 @@ public class SaTokenConfigure implements WebMvcConfigurer {
.notMatch("/hello/**")
// 授权相关接口(登录、登出、注册等)
.notMatch("/auth/**")
.notMatch("/visitor/saveVisitor")
.notMatch("/visitor/selectVisitor")
.notMatch("/Car/saveCarInfo")
.notMatch("/Car/getCarInfo")
.notMatch("/favicon.ico", "/**/*.html", "/**/*.js", "/**/*.css")
.notMatch("/v2/api-docs", "/v3/api-docs", "/swagger-resources/**")
.check(r -> StpUtil.checkLogin());
......
......@@ -20,6 +20,9 @@ public class RegEx {
public static final String MOBILE =
"^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(16[5,6])|(17[0-8])|(18[0-9])|(19[1、5、8、9]))\\d{8}$";
//身份证验证
public static final String CARDNO =
"^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$";
/**
* 报警规则的时间格式
*/
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论