提交 aadc9b1f 作者: 涂茂林

feat:报警规则细节添加

上级 d4f0d825
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.domain.location;
import com.yiring.common.domain.BasicEntity;
import java.io.Serial;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import lombok.*;
import lombok.experimental.FieldNameConstants;
import lombok.experimental.SuperBuilder;
import org.hibernate.annotations.Comment;
import org.hibernate.annotations.Where;
/**
* @author tml
* @version 1.0
* @date 2022/5/5 14:25
*/
@Getter
@Setter
@ToString
@SuperBuilder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
@FieldNameConstants
@Where(clause = "deleted = false")
@Entity
@Table(name = "BS_LOCATION_FENCE")
@Comment("电子围栏的报警规则")
public class LocationAlarmRule extends BasicEntity implements Serializable {
@Serial
private static final long serialVersionUID = -2268859882881201793L;
@Comment("地图ID")
private Long mapId;
@Comment("地图名称")
private String mapName;
@Comment("电子围栏")
@ManyToOne
@JoinColumn(name = "fence_id")
private LocationFence locationFence;
}
...@@ -5,6 +5,7 @@ import java.io.Serializable; ...@@ -5,6 +5,7 @@ import java.io.Serializable;
import java.util.List; import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
/** /**
...@@ -28,4 +29,12 @@ public interface LocationFenceRepository ...@@ -28,4 +29,12 @@ public interface LocationFenceRepository
* @return 围栏信息 * @return 围栏信息
*/ */
List<LocationFence> findAllByName(String name); List<LocationFence> findAllByName(String name);
/**
* 根据名称模糊查询围栏信息
* @param name 围栏名称
* @return 围栏信息
*/
@Query("SELECT f FROM LocationFence f WHERE name like %?1%")
List<LocationFence> findLikeName(String name);
} }
...@@ -58,5 +58,5 @@ public interface AlarmService { ...@@ -58,5 +58,5 @@ public interface AlarmService {
* @param conditionParam 条件 * @param conditionParam 条件
* @param response response * @param response response
*/ */
void exportAlarmType(AlarmConditionParam conditionParam, HttpServletResponse response); void exportAlarmType(AlarmConditionParam conditionParam, HttpServletResponse response, PageParam pageParam);
} }
...@@ -114,10 +114,11 @@ public class AlarmServiceImpl implements AlarmService { ...@@ -114,10 +114,11 @@ public class AlarmServiceImpl implements AlarmService {
} }
@Override @Override
public void exportAlarmType(AlarmConditionParam conditionParam, HttpServletResponse response) { public void exportAlarmType(AlarmConditionParam conditionParam, HttpServletResponse response, PageParam pageParam) {
Pageable pageable = PageParam.toPageable(pageParam);
Specification<AlarmType> specification = getSpecification(conditionParam); Specification<AlarmType> specification = getSpecification(conditionParam);
List<AlarmType> alarmTypeList = alarmTypeRepository.findAll(specification); Page<AlarmType> page = alarmTypeRepository.findAll(specification, pageable);
List<AlarmTypeExcel> list = AlarmTypeExcel.transforms(alarmTypeList); List<AlarmTypeExcel> list = page.get().map(AlarmTypeExcel::transform).collect(Collectors.toList());
try ( try (
DefaultStreamExcelBuilder<AlarmTypeExcel> streamExcelBuilder = DefaultStreamExcelBuilder DefaultStreamExcelBuilder<AlarmTypeExcel> streamExcelBuilder = DefaultStreamExcelBuilder
.of(AlarmTypeExcel.class) .of(AlarmTypeExcel.class)
......
...@@ -4,6 +4,7 @@ package com.yiring.app.service.location.fence; ...@@ -4,6 +4,7 @@ package com.yiring.app.service.location.fence;
import com.yiring.app.param.location.fence.LocationFenceAddParam; import com.yiring.app.param.location.fence.LocationFenceAddParam;
import com.yiring.app.param.location.fence.LocationFenceConditionParam; import com.yiring.app.param.location.fence.LocationFenceConditionParam;
import com.yiring.app.param.location.fence.LocationFenceModifyParam; import com.yiring.app.param.location.fence.LocationFenceModifyParam;
import com.yiring.app.vo.location.fence.LocationFenceSearchVo;
import com.yiring.app.vo.location.fence.LocationFenceVo; import com.yiring.app.vo.location.fence.LocationFenceVo;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam; import com.yiring.common.param.IdParam;
...@@ -52,4 +53,11 @@ public interface LocationFenceService { ...@@ -52,4 +53,11 @@ public interface LocationFenceService {
* @return 详细信息 * @return 详细信息
*/ */
Result<LocationFenceVo> findById(@Valid IdParam param); Result<LocationFenceVo> findById(@Valid IdParam param);
/**
* 根据名称模糊查询围栏信息
* @param name 围栏名称
* @return 围栏信息
*/
Result<PageVo<LocationFenceSearchVo>> findByNameLike(String name);
} }
...@@ -8,6 +8,7 @@ import com.yiring.app.param.location.fence.LocationFenceConditionParam; ...@@ -8,6 +8,7 @@ import com.yiring.app.param.location.fence.LocationFenceConditionParam;
import com.yiring.app.param.location.fence.LocationFenceModifyParam; import com.yiring.app.param.location.fence.LocationFenceModifyParam;
import com.yiring.app.service.location.fence.LocationFenceService; import com.yiring.app.service.location.fence.LocationFenceService;
import com.yiring.app.util.JpaUtil; import com.yiring.app.util.JpaUtil;
import com.yiring.app.vo.location.fence.LocationFenceSearchVo;
import com.yiring.app.vo.location.fence.LocationFenceVo; import com.yiring.app.vo.location.fence.LocationFenceVo;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.core.Status; import com.yiring.common.core.Status;
...@@ -117,4 +118,15 @@ public class LocationFenceServiceImpl implements LocationFenceService { ...@@ -117,4 +118,15 @@ public class LocationFenceServiceImpl implements LocationFenceService {
LocationFenceVo fenceVo = LocationFenceVo.transform(fence); LocationFenceVo fenceVo = LocationFenceVo.transform(fence);
return Result.ok(fenceVo); return Result.ok(fenceVo);
} }
@Override
public Result<PageVo<LocationFenceSearchVo>> findByNameLike(String name) {
List<LocationFence> list = locationFenceRepository.findLikeName(name);
List<LocationFenceSearchVo> voList = list
.stream()
.map(LocationFenceSearchVo::transform)
.collect(Collectors.toList());
PageVo<LocationFenceSearchVo> pageVo = PageVo.build(voList, voList.size());
return Result.ok(pageVo);
}
} }
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.alarm; package com.yiring.app.vo.alarm;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiring.app.constant.alarm.FenceTypeEnum; import com.yiring.app.constant.alarm.FenceTypeEnum;
import com.yiring.app.constant.alarm.RelevanceParamEnum; import com.yiring.app.constant.alarm.RelevanceParamEnum;
import com.yiring.app.domain.alarm.AlarmType; import com.yiring.app.domain.alarm.AlarmType;
...@@ -28,17 +30,24 @@ public class AlarmTypeVo implements Serializable { ...@@ -28,17 +30,24 @@ public class AlarmTypeVo implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 4743016000753778197L; private static final long serialVersionUID = 4743016000753778197L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "报警类型id", example = "1518841086628335616") @ApiModelProperty(value = "报警类型id", example = "1518841086628335616")
private Long id; private Long id;
@ApiModelProperty(value = "报警类型名称", example = "超员报警") @ApiModelProperty(value = "报警类型名称", example = "超员报警")
private String name; private String name;
@ApiModelProperty(value = "围栏类别", example = "普通围栏") @ApiModelProperty(value = "围栏类别code", example = "1")
private String fenceType; private Integer fenceType;
@ApiModelProperty(value = "关联参数", example = "最多人数") @ApiModelProperty(value = "围栏类别名称", example = "普通围栏")
private String relevanceParam; private String fenceTypeName;
@ApiModelProperty(value = "关联参数code", example = "1")
private Integer relevanceParam;
@ApiModelProperty(value = "关联参数名称", example = "最多人数")
private String relevanceParamName;
@ApiModelProperty(value = "备注", example = "备注") @ApiModelProperty(value = "备注", example = "备注")
private String comment; private String comment;
...@@ -48,8 +57,10 @@ public class AlarmTypeVo implements Serializable { ...@@ -48,8 +57,10 @@ public class AlarmTypeVo implements Serializable {
.builder() .builder()
.id(alarmType.getId()) .id(alarmType.getId())
.name(alarmType.getName()) .name(alarmType.getName())
.fenceType(FenceTypeEnum.getByCode(alarmType.getFenceType())) .fenceType(alarmType.getFenceType())
.relevanceParam(RelevanceParamEnum.getByCode(alarmType.getRelevanceParam())) .fenceTypeName(FenceTypeEnum.getByCode(alarmType.getFenceType()))
.relevanceParam(alarmType.getRelevanceParam())
.relevanceParamName(RelevanceParamEnum.getByCode(alarmType.getRelevanceParam()))
.comment(alarmType.getComment()) .comment(alarmType.getComment())
.build(); .build();
} }
......
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.district; package com.yiring.app.vo.district;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiring.app.domain.district.District; import com.yiring.app.domain.district.District;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -27,6 +29,7 @@ public class DistrictVo implements Serializable { ...@@ -27,6 +29,7 @@ public class DistrictVo implements Serializable {
@Serial @Serial
private static final long serialVersionUID = -4330628723553785529L; private static final long serialVersionUID = -4330628723553785529L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "区域id", example = "1518841086628335616") @ApiModelProperty(value = "区域id", example = "1518841086628335616")
private Long id; private Long id;
......
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.location.fence;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiring.app.constant.alarm.FenceTypeEnum;
import com.yiring.app.domain.location.LocationFence;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author tml
* @version 1.0
* @date 2022/5/5 9:35
*/
@ApiModel("围栏信息检索VO")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class LocationFenceSearchVo implements Serializable {
@Serial
private static final long serialVersionUID = 5774168899957993687L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "围栏名称")
private String name;
@ApiModelProperty(value = "围栏类别code")
private Integer fenceType;
@ApiModelProperty(value = "围栏类别名称")
private String fenceTypeName;
public static LocationFenceSearchVo transform(LocationFence locationFence) {
return LocationFenceSearchVo
.builder()
.id(locationFence.getId())
.name(locationFence.getName())
.fenceType(locationFence.getFenceType())
.fenceTypeName(FenceTypeEnum.getByCode(locationFence.getFenceType()))
.build();
}
}
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.location.fence; package com.yiring.app.vo.location.fence;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiring.app.constant.alarm.FenceTypeEnum; import com.yiring.app.constant.alarm.FenceTypeEnum;
import com.yiring.app.domain.location.LocationFence; import com.yiring.app.domain.location.LocationFence;
import com.yiring.app.domain.location.LocationFenceRule; import com.yiring.app.domain.location.LocationFenceRule;
...@@ -32,6 +34,10 @@ public class LocationFenceVo implements Serializable { ...@@ -32,6 +34,10 @@ public class LocationFenceVo implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 3616144084051520412L; private static final long serialVersionUID = 3616144084051520412L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "围栏名称") @ApiModelProperty(value = "围栏名称")
private String name; private String name;
...@@ -41,8 +47,11 @@ public class LocationFenceVo implements Serializable { ...@@ -41,8 +47,11 @@ public class LocationFenceVo implements Serializable {
@ApiModelProperty(value = "摄像头名称") @ApiModelProperty(value = "摄像头名称")
private String videoName; private String videoName;
@ApiModelProperty(value = "围栏类别") @ApiModelProperty(value = "围栏类别code")
private String fenceType; private Integer fenceType;
@ApiModelProperty(value = "围栏类别名称")
private String fenceTypeName;
@ApiModelProperty(value = "滞留时间(秒)") @ApiModelProperty(value = "滞留时间(秒)")
private Integer residenceTime; private Integer residenceTime;
...@@ -64,10 +73,12 @@ public class LocationFenceVo implements Serializable { ...@@ -64,10 +73,12 @@ public class LocationFenceVo implements Serializable {
.collect(Collectors.toSet()); .collect(Collectors.toSet());
return LocationFenceVo return LocationFenceVo
.builder() .builder()
.id(locationFence.getId())
.name(locationFence.getName()) .name(locationFence.getName())
.mapName(locationFence.getMapName()) .mapName(locationFence.getMapName())
.videoName(locationFence.getVideo().getVideoName()) .videoName(locationFence.getVideo().getVideoName())
.fenceType(FenceTypeEnum.getByCode(locationFence.getFenceType())) .fenceType(locationFence.getFenceType())
.fenceTypeName(FenceTypeEnum.getByCode(locationFence.getFenceType()))
.residenceTime(locationFence.getResidenceTime()) .residenceTime(locationFence.getResidenceTime())
.threshold(locationFence.getThreshold()) .threshold(locationFence.getThreshold())
.rules(collect) .rules(collect)
......
...@@ -3,6 +3,10 @@ package com.yiring.app.vo.location.rule; ...@@ -3,6 +3,10 @@ package com.yiring.app.vo.location.rule;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiring.app.constant.alarm.FenceTypeEnum;
import com.yiring.app.constant.alarm.RelevanceParamEnum;
import com.yiring.app.domain.location.LocationFenceRule; import com.yiring.app.domain.location.LocationFenceRule;
import com.yiring.app.param.location.rule.RuleParam; import com.yiring.app.param.location.rule.RuleParam;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
...@@ -29,15 +33,21 @@ public class LocationFenceRuleVo implements Serializable { ...@@ -29,15 +33,21 @@ public class LocationFenceRuleVo implements Serializable {
@Serial @Serial
private static final long serialVersionUID = -7774789748161552583L; private static final long serialVersionUID = -7774789748161552583L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "规则id", example = "1", required = true) @ApiModelProperty(value = "规则id", example = "1", required = true)
private Long id; private Long id;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "所属的围栏id", example = "1", required = true) @ApiModelProperty(value = "所属的围栏id", example = "1", required = true)
private Long fenceId; private Long fenceId;
@ApiModelProperty(value = "所属的围栏类别", example = "1", required = true) @ApiModelProperty(value = "所属的围栏类别code", example = "1", required = true)
private Integer fenceType; private Integer fenceType;
@ApiModelProperty(value = "所属的围栏类别名称", example = "重大危险源", required = true)
private String fenceTypeName;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "所属的报警类别id", example = "1", required = true) @ApiModelProperty(value = "所属的报警类别id", example = "1", required = true)
private Long alarmTypeId; private Long alarmTypeId;
...@@ -48,6 +58,9 @@ public class LocationFenceRuleVo implements Serializable { ...@@ -48,6 +58,9 @@ public class LocationFenceRuleVo implements Serializable {
) )
private Integer relevanceParamType; private Integer relevanceParamType;
@ApiModelProperty(value = "设置的关联参数类型名称", example = "最大人数", required = true)
private String relevanceParamTypeName;
private RuleVo ruleVo; private RuleVo ruleVo;
public static LocationFenceRuleVo transform(LocationFenceRule locationFenceRule) { public static LocationFenceRuleVo transform(LocationFenceRule locationFenceRule) {
...@@ -59,8 +72,10 @@ public class LocationFenceRuleVo implements Serializable { ...@@ -59,8 +72,10 @@ public class LocationFenceRuleVo implements Serializable {
.id(locationFenceRule.getId()) .id(locationFenceRule.getId())
.fenceId(locationFenceRule.getFence().getId()) .fenceId(locationFenceRule.getFence().getId())
.fenceType(locationFenceRule.getFence().getFenceType()) .fenceType(locationFenceRule.getFence().getFenceType())
.fenceTypeName(FenceTypeEnum.getByCode(locationFenceRule.getFence().getFenceType()))
.alarmTypeId(locationFenceRule.getAlarmType().getId()) .alarmTypeId(locationFenceRule.getAlarmType().getId())
.relevanceParamType(locationFenceRule.getRelevanceParamType()) .relevanceParamType(locationFenceRule.getRelevanceParamType())
.relevanceParamTypeName(RelevanceParamEnum.getByCode(locationFenceRule.getRelevanceParamType()))
.ruleVo(ruleVo) .ruleVo(ruleVo)
.build(); .build();
} }
......
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.location.rule; package com.yiring.app.vo.location.rule;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.io.Serial; import java.io.Serial;
...@@ -26,6 +28,7 @@ public class RuleVo implements Serializable { ...@@ -26,6 +28,7 @@ public class RuleVo implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 441241201908785930L; private static final long serialVersionUID = 441241201908785930L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "选择的播放语音id", example = "1") @ApiModelProperty(value = "选择的播放语音id", example = "1")
private Long voiceId; private Long voiceId;
......
...@@ -3,6 +3,7 @@ package com.yiring.app.web.alarm; ...@@ -3,6 +3,7 @@ package com.yiring.app.web.alarm;
import com.yiring.app.constant.alarm.FenceTypeEnum; import com.yiring.app.constant.alarm.FenceTypeEnum;
import com.yiring.app.constant.alarm.RelevanceParamEnum; import com.yiring.app.constant.alarm.RelevanceParamEnum;
import com.yiring.app.domain.alarm.AlarmType;
import com.yiring.app.param.alarm.AlarmConditionParam; import com.yiring.app.param.alarm.AlarmConditionParam;
import com.yiring.app.param.alarm.AlarmTypeAddParam; import com.yiring.app.param.alarm.AlarmTypeAddParam;
import com.yiring.app.param.alarm.AlarmTypeModifyParam; import com.yiring.app.param.alarm.AlarmTypeModifyParam;
...@@ -15,10 +16,12 @@ import com.yiring.common.param.PageParam; ...@@ -15,10 +16,12 @@ import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import java.util.Objects;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Sort;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
...@@ -72,6 +75,10 @@ public class AlarmTypeController { ...@@ -72,6 +75,10 @@ public class AlarmTypeController {
@Valid AlarmConditionParam conditionParam, @Valid AlarmConditionParam conditionParam,
@Valid PageParam pageParam @Valid PageParam pageParam
) { ) {
if (Objects.isNull(pageParam.getSortField())) {
pageParam.setSortField(AlarmType.Fields.createTime);
pageParam.setSortOrder(Sort.Direction.DESC);
}
return alarmService.findByCondition(conditionParam, pageParam); return alarmService.findByCondition(conditionParam, pageParam);
} }
...@@ -91,7 +98,11 @@ public class AlarmTypeController { ...@@ -91,7 +98,11 @@ public class AlarmTypeController {
@ApiOperation(value = "报警类型导出", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) @ApiOperation(value = "报警类型导出", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
@PostMapping("/exportAlarmType") @PostMapping("/exportAlarmType")
public void exportAlarmType(@Valid AlarmConditionParam conditionParam, HttpServletResponse response) { public void exportAlarmType(
alarmService.exportAlarmType(conditionParam, response); @Valid AlarmConditionParam conditionParam,
HttpServletResponse response,
@Valid PageParam pageParam
) {
alarmService.exportAlarmType(conditionParam, response, pageParam);
} }
} }
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.web.location.fence; package com.yiring.app.web.location.fence;
import com.yiring.app.domain.alarm.AlarmType;
import com.yiring.app.param.location.fence.LocationFenceAddParam; import com.yiring.app.param.location.fence.LocationFenceAddParam;
import com.yiring.app.param.location.fence.LocationFenceConditionParam; import com.yiring.app.param.location.fence.LocationFenceConditionParam;
import com.yiring.app.param.location.fence.LocationFenceModifyParam; import com.yiring.app.param.location.fence.LocationFenceModifyParam;
import com.yiring.app.service.location.fence.LocationFenceService; import com.yiring.app.service.location.fence.LocationFenceService;
import com.yiring.app.vo.location.fence.LocationFenceSearchVo;
import com.yiring.app.vo.location.fence.LocationFenceVo; import com.yiring.app.vo.location.fence.LocationFenceVo;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam; import com.yiring.common.param.IdParam;
import com.yiring.common.param.PageParam; import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import java.util.Objects;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.Valid; import javax.validation.Valid;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Sort;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -57,6 +62,10 @@ public class LocationFenceController { ...@@ -57,6 +62,10 @@ public class LocationFenceController {
@Valid LocationFenceConditionParam conditionParam, @Valid LocationFenceConditionParam conditionParam,
@Valid PageParam pageParam @Valid PageParam pageParam
) { ) {
if (Objects.isNull(pageParam.getSortField())) {
pageParam.setSortField(AlarmType.Fields.createTime);
pageParam.setSortOrder(Sort.Direction.DESC);
}
return locationFenceService.findList(conditionParam, pageParam); return locationFenceService.findList(conditionParam, pageParam);
} }
...@@ -65,4 +74,14 @@ public class LocationFenceController { ...@@ -65,4 +74,14 @@ public class LocationFenceController {
public Result<LocationFenceVo> findById(@Valid IdParam param) { public Result<LocationFenceVo> findById(@Valid IdParam param) {
return locationFenceService.findById(param); return locationFenceService.findById(param);
} }
@ApiOperation("根据围栏名称模糊查询围栏信息")
@ApiImplicitParam(value = "围栏名称", example = "生产", required = true, name = "name")
@PostMapping("/findByNameLike")
public Result<PageVo<LocationFenceSearchVo>> findByNameLike(String name) {
if (name == null) {
name = "";
}
return locationFenceService.findByNameLike(name);
}
} }
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.web.location.rule;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author tml
* @version 1.0
* @date 2022/5/5 14:19
*/
@Slf4j
@Validated
@Api(tags = "LocationAlarmRuleController(电子围栏报警规则)")
@RestController
@RequestMapping("/alarm/rule")
public class LocationAlarmRuleController {}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论