Compare commits
2 Commits
c044c6fd81
...
f5a96bed3d
| Author | SHA1 | Date |
|---|---|---|
|
|
f5a96bed3d | |
|
|
3422d5851f |
|
|
@ -0,0 +1,57 @@
|
|||
package com.zcloud.zcGbsServicer.web;
|
||||
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.alibaba.cola.dto.Response;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.zcloud.zcGbsServicer.api.AlarmRecordServiceI;
|
||||
import com.zcloud.zcGbsServicer.dto.AlarmRecordAddCmd;
|
||||
import com.zcloud.zcGbsServicer.dto.AlarmRecordClearCmd;
|
||||
import com.zcloud.zcGbsServicer.dto.AlarmRecordHandleCmd;
|
||||
import com.zcloud.zcGbsServicer.dto.AlarmRecordPageQry;
|
||||
import com.zcloud.zcGbsServicer.dto.clientobject.AlarmRecordCO;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@Api(tags = "消防报警记录")
|
||||
@RestController
|
||||
@AllArgsConstructor
|
||||
@RequestMapping("/${application.gateway}/alarmRecord")
|
||||
public class AlarmRecordController {
|
||||
|
||||
private final AlarmRecordServiceI alarmRecordService;
|
||||
|
||||
@ApiOperation("分页查询")
|
||||
@PostMapping("/list")
|
||||
public PageResponse<AlarmRecordCO> list(@RequestBody AlarmRecordPageQry qry) {
|
||||
return alarmRecordService.listPage(qry);
|
||||
}
|
||||
|
||||
@ApiOperation("新增")
|
||||
@PostMapping("/save")
|
||||
public SingleResponse<AlarmRecordCO> save(@Validated @RequestBody AlarmRecordAddCmd cmd) {
|
||||
return alarmRecordService.add(cmd);
|
||||
}
|
||||
|
||||
@ApiOperation("详情")
|
||||
@GetMapping("/{id}")
|
||||
public SingleResponse<AlarmRecordCO> get(@PathVariable Long id) {
|
||||
return SingleResponse.of(alarmRecordService.get(id));
|
||||
}
|
||||
|
||||
@ApiOperation("处置")
|
||||
@PostMapping("/handle")
|
||||
public Response handle(@Validated @RequestBody AlarmRecordHandleCmd cmd) {
|
||||
alarmRecordService.handle(cmd);
|
||||
return Response.buildSuccess();
|
||||
}
|
||||
|
||||
@ApiOperation("消警")
|
||||
@PostMapping("/clear")
|
||||
public Response clear(@Validated @RequestBody AlarmRecordClearCmd cmd) {
|
||||
alarmRecordService.clear(cmd);
|
||||
return Response.buildSuccess();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package com.zcloud.zcGbsServicer.command.convertor;
|
||||
|
||||
import com.zcloud.zcGbsServicer.dto.clientobject.AlarmRecordCO;
|
||||
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmInfoDO;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper(componentModel = "spring")
|
||||
public interface AlarmRecordCoConvertor {
|
||||
|
||||
List<AlarmRecordCO> converDOsToCOs(List<FireAlarmInfoDO> fireAlarmInfoDOs);
|
||||
|
||||
AlarmRecordCO converDOToCO(FireAlarmInfoDO fireAlarmInfoDO);
|
||||
}
|
||||
|
|
@ -0,0 +1,244 @@
|
|||
package com.zcloud.zcGbsServicer.service;
|
||||
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.alibaba.cola.exception.BizException;
|
||||
import com.zcloud.zcGbsServicer.api.AlarmRecordServiceI;
|
||||
import com.zcloud.zcGbsServicer.command.convertor.AlarmRecordCoConvertor;
|
||||
import com.zcloud.zcGbsServicer.dto.AlarmRecordAddCmd;
|
||||
import com.zcloud.zcGbsServicer.dto.AlarmRecordClearCmd;
|
||||
import com.zcloud.zcGbsServicer.dto.AlarmRecordHandleCmd;
|
||||
import com.zcloud.zcGbsServicer.dto.AlarmRecordPageQry;
|
||||
import com.zcloud.zcGbsServicer.dto.clientobject.AlarmRecordCO;
|
||||
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmInfoDO;
|
||||
import com.zcloud.zcGbsServicer.persistence.dataobject.FireBrigadeDO;
|
||||
import com.zcloud.zcGbsServicer.persistence.repository.FireAlarmInfoRepository;
|
||||
import com.zcloud.zcGbsServicer.persistence.repository.FireBrigadeRepository;
|
||||
import com.zcloud.zcGbsServicer.persistence.repository.FireBrigadeUserRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class AlarmRecordServiceImpl extends FireAlarmServiceSupport implements AlarmRecordServiceI {
|
||||
|
||||
private static final int ALARM_MODE_PHONE = 1;
|
||||
private static final int ALARM_MODE_APP = 2;
|
||||
private static final int ALARM_STATUS_ALARMING = 1;
|
||||
private static final int ALARM_STATUS_DISPOSING = 2;
|
||||
private static final int ALARM_STATUS_CLEARED = 3;
|
||||
private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
private final FireAlarmInfoRepository fireAlarmInfoRepository;
|
||||
private final FireBrigadeRepository fireBrigadeRepository;
|
||||
private final FireBrigadeUserRepository fireBrigadeUserRepository;
|
||||
private final AlarmRecordCoConvertor alarmRecordCoConvertor;
|
||||
|
||||
@Override
|
||||
public PageResponse<AlarmRecordCO> listPage(AlarmRecordPageQry qry) {
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("pageIndex", qry.getPageIndex());
|
||||
params.put("pageSize", qry.getPageSize());
|
||||
params.put("fireBrigadeName", qry.getTeam());
|
||||
params.put("alarmStatus", parseStatus(qry.getStatus()));
|
||||
PageResponse<FireAlarmInfoDO> page = fireAlarmInfoRepository.listPage(params);
|
||||
return PageResponse.of(page.getData().stream().map(this::buildCO).collect(Collectors.toList()),
|
||||
page.getTotalCount(), page.getPageSize(), page.getPageIndex());
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public SingleResponse<AlarmRecordCO> add(AlarmRecordAddCmd cmd) {
|
||||
if (!isValidLongitude(cmd.getLng()) || !isValidLatitude(cmd.getLat())) {
|
||||
throw new BizException("经纬度超出范围");
|
||||
}
|
||||
FireAlarmInfoDO record = new FireAlarmInfoDO();
|
||||
record.setId(nextId());
|
||||
record.setFireAlarmInfoId(nextBizId());
|
||||
fillCreateAudit(record);
|
||||
record.setAlarmMode(ALARM_MODE_PHONE);
|
||||
record.setAlarmUserId(cmd.getAlarmUserId());
|
||||
record.setAlarmUserName(cmd.getReporter());
|
||||
record.setAlarmPhone(cmd.getAlarmPhone());
|
||||
record.setCorpinfoId(cmd.getCorpinfoId());
|
||||
record.setCorpinfoName(cmd.getUnit());
|
||||
record.setFireLocation(cmd.getLocation());
|
||||
record.setLocationAddress(StrUtil.isBlank(cmd.getLocationAddress()) ? cmd.getLocation() : cmd.getLocationAddress());
|
||||
record.setLongitude(BigDecimal.valueOf(cmd.getLng()));
|
||||
record.setLatitude(BigDecimal.valueOf(cmd.getLat()));
|
||||
record.setAlarmStatus(ALARM_STATUS_ALARMING);
|
||||
record.setRecordTime(LocalDateTime.now());
|
||||
record.setMeetingNoticeStatus("INIT");
|
||||
fireAlarmInfoRepository.save(record);
|
||||
return SingleResponse.of(buildCO(record));
|
||||
}
|
||||
|
||||
@Override
|
||||
public AlarmRecordCO get(Long id) {
|
||||
FireAlarmInfoDO record = fireAlarmInfoRepository.getById(id);
|
||||
if (record == null) {
|
||||
throw new BizException("消防报警记录不存在");
|
||||
}
|
||||
return buildCO(record);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void handle(AlarmRecordHandleCmd cmd) {
|
||||
FireAlarmInfoDO record = fireAlarmInfoRepository.getById(cmd.getId());
|
||||
if (record == null) {
|
||||
throw new BizException("消防报警记录不存在");
|
||||
}
|
||||
if (!Integer.valueOf(ALARM_STATUS_ALARMING).equals(record.getAlarmStatus())) {
|
||||
throw new BizException("仅报警中的记录可处置");
|
||||
}
|
||||
fillBrigade(record, cmd.getFireBrigadeId(), cmd.getFireBrigadeName());
|
||||
record.setHandleUserId(currentUserId());
|
||||
record.setHandleUserName(currentUserName());
|
||||
record.setHandleTime(LocalDateTime.now());
|
||||
record.setAlarmStatus(ALARM_STATUS_DISPOSING);
|
||||
fillUpdateAudit(record);
|
||||
fireAlarmInfoRepository.updateById(record);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void clear(AlarmRecordClearCmd cmd) {
|
||||
FireAlarmInfoDO record = fireAlarmInfoRepository.getById(cmd.getId());
|
||||
if (record == null) {
|
||||
throw new BizException("消防报警记录不存在");
|
||||
}
|
||||
if (!Integer.valueOf(ALARM_STATUS_DISPOSING).equals(record.getAlarmStatus())) {
|
||||
throw new BizException("仅处置中的记录可消警");
|
||||
}
|
||||
if (!canClearByCurrentUser(record)) {
|
||||
throw new BizException("仅当前处置消防队成员可消警");
|
||||
}
|
||||
record.setClearReason(cmd.getDesc());
|
||||
record.setClearId(currentUserId());
|
||||
record.setClearName(currentUserName());
|
||||
record.setClearTime(LocalDateTime.now());
|
||||
record.setAlarmStatus(ALARM_STATUS_CLEARED);
|
||||
fillUpdateAudit(record);
|
||||
fireAlarmInfoRepository.updateById(record);
|
||||
}
|
||||
|
||||
private void fillBrigade(FireAlarmInfoDO record, Long fireBrigadePkId, String fireBrigadeName) {
|
||||
if (fireBrigadePkId == null) {
|
||||
throw new BizException("请选择处置消防队伍");
|
||||
}
|
||||
FireBrigadeDO brigade = fireBrigadeRepository.getById(fireBrigadePkId);
|
||||
if (brigade == null) {
|
||||
throw new BizException("处置消防队伍不存在");
|
||||
}
|
||||
record.setFireBrigadeId(brigade.getFireBrigadeId());
|
||||
record.setFireBrigadeName(StrUtil.isNotBlank(brigade.getBrigadeName()) ? brigade.getBrigadeName() : fireBrigadeName);
|
||||
}
|
||||
|
||||
private AlarmRecordCO buildCO(FireAlarmInfoDO record) {
|
||||
AlarmRecordCO co = alarmRecordCoConvertor.converDOToCO(record);
|
||||
co.setAlarmUserId(record.getAlarmUserId());
|
||||
co.setSourceCode(record.getAlarmMode() == null ? null : String.valueOf(record.getAlarmMode()));
|
||||
co.setSource(sourceName(record.getAlarmMode()));
|
||||
co.setFireBrigadeId(resolveFireBrigadePkId(record.getFireBrigadeId()));
|
||||
co.setRecordTime(formatTime(record.getRecordTime()));
|
||||
co.setStatusCode(record.getAlarmStatus() == null ? null : String.valueOf(record.getAlarmStatus()));
|
||||
co.setStatus(statusName(record.getAlarmStatus()));
|
||||
co.setHandleUserId(record.getHandleUserId());
|
||||
co.setHandleUserName(record.getHandleUserName());
|
||||
co.setHandleTime(formatTime(record.getHandleTime()));
|
||||
co.setClearId(record.getClearId());
|
||||
co.setClearName(record.getClearName());
|
||||
co.setClearTime(formatTime(record.getClearTime()));
|
||||
co.setPhotos(Collections.emptyList());
|
||||
return co;
|
||||
}
|
||||
|
||||
private Integer parseStatus(String status) {
|
||||
if (StrUtil.isBlank(status)) {
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
return Integer.valueOf(status.trim());
|
||||
}
|
||||
catch (Exception ignored) {
|
||||
if ("报警中".equals(status)) {
|
||||
return ALARM_STATUS_ALARMING;
|
||||
}
|
||||
if ("处置中".equals(status)) {
|
||||
return ALARM_STATUS_DISPOSING;
|
||||
}
|
||||
if ("已消警".equals(status)) {
|
||||
return ALARM_STATUS_CLEARED;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private String sourceName(Integer alarmMode) {
|
||||
if (Integer.valueOf(ALARM_MODE_APP).equals(alarmMode)) {
|
||||
return "APP报警";
|
||||
}
|
||||
return "电话接报";
|
||||
}
|
||||
|
||||
private String statusName(Integer alarmStatus) {
|
||||
if (Integer.valueOf(ALARM_STATUS_ALARMING).equals(alarmStatus)) {
|
||||
return "报警中";
|
||||
}
|
||||
if (Integer.valueOf(ALARM_STATUS_DISPOSING).equals(alarmStatus)) {
|
||||
return "处置中";
|
||||
}
|
||||
if (Integer.valueOf(ALARM_STATUS_CLEARED).equals(alarmStatus)) {
|
||||
return "已消警";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private String formatTime(LocalDateTime time) {
|
||||
return time == null ? null : TIME_FORMATTER.format(time);
|
||||
}
|
||||
|
||||
private Long resolveFireBrigadePkId(String fireBrigadeBizId) {
|
||||
if (StrUtil.isBlank(fireBrigadeBizId)) {
|
||||
return null;
|
||||
}
|
||||
FireBrigadeDO brigade = fireBrigadeRepository.getByFireBrigadeId(fireBrigadeBizId);
|
||||
return brigade == null ? null : brigade.getId();
|
||||
}
|
||||
|
||||
private boolean canClearByCurrentUser(FireAlarmInfoDO record) {
|
||||
if (record.getFireBrigadeId() == null || currentUserId() == null) {
|
||||
return false;
|
||||
}
|
||||
return fireBrigadeUserRepository.existsRelation(record.getFireBrigadeId(), currentUserId(), null);
|
||||
}
|
||||
|
||||
private boolean isValidLongitude(Double lng) {
|
||||
return lng != null && lng >= -180D && lng <= 180D;
|
||||
}
|
||||
|
||||
private boolean isValidLatitude(Double lat) {
|
||||
return lat != null && lat >= -90D && lat <= 90D;
|
||||
}
|
||||
|
||||
private long nextId() {
|
||||
return IdUtil.getSnowflake(1, 1).nextId();
|
||||
}
|
||||
|
||||
private String nextBizId() {
|
||||
return UUID.randomUUID().toString().replace("-", "");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
package com.zcloud.zcGbsServicer.service;
|
||||
|
||||
import com.jjb.saas.framework.auth.model.SSOUser;
|
||||
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
abstract class FireAlarmServiceSupport {
|
||||
|
||||
protected Long currentTenantId() {
|
||||
return AuthContext.getTenantId();
|
||||
}
|
||||
|
||||
protected Long currentUserId() {
|
||||
return AuthContext.getUserId();
|
||||
}
|
||||
|
||||
protected String currentUserName() {
|
||||
SSOUser user = AuthContext.getCurrentUser();
|
||||
return user == null ? null : user.getName();
|
||||
}
|
||||
|
||||
protected void fillCreateAudit(BaseDO dataObject) {
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
dataObject.setTenantId(currentTenantId());
|
||||
dataObject.setOrgId(currentTenantId());
|
||||
dataObject.setDeleteEnum("FALSE");
|
||||
dataObject.setVersion(0);
|
||||
dataObject.setCreateId(currentUserId());
|
||||
dataObject.setCreateName(currentUserName());
|
||||
dataObject.setCreateTime(now);
|
||||
dataObject.setUpdateId(currentUserId());
|
||||
dataObject.setUpdateName(currentUserName());
|
||||
dataObject.setUpdateTime(now);
|
||||
}
|
||||
|
||||
protected void fillUpdateAudit(BaseDO dataObject) {
|
||||
dataObject.setUpdateId(currentUserId());
|
||||
dataObject.setUpdateName(currentUserName());
|
||||
dataObject.setUpdateTime(LocalDateTime.now());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
package com.zcloud.zcGbsServicer.api;
|
||||
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.zcloud.zcGbsServicer.dto.AlarmRecordAddCmd;
|
||||
import com.zcloud.zcGbsServicer.dto.AlarmRecordClearCmd;
|
||||
import com.zcloud.zcGbsServicer.dto.AlarmRecordHandleCmd;
|
||||
import com.zcloud.zcGbsServicer.dto.AlarmRecordPageQry;
|
||||
import com.zcloud.zcGbsServicer.dto.clientobject.AlarmRecordCO;
|
||||
|
||||
public interface AlarmRecordServiceI {
|
||||
|
||||
PageResponse<AlarmRecordCO> listPage(AlarmRecordPageQry qry);
|
||||
|
||||
SingleResponse<AlarmRecordCO> add(AlarmRecordAddCmd cmd);
|
||||
|
||||
AlarmRecordCO get(Long id);
|
||||
|
||||
void handle(AlarmRecordHandleCmd cmd);
|
||||
|
||||
void clear(AlarmRecordClearCmd cmd);
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
package com.zcloud.zcGbsServicer.dto;
|
||||
|
||||
import com.alibaba.cola.dto.Command;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@Data
|
||||
public class AlarmRecordAddCmd extends Command {
|
||||
|
||||
@ApiModelProperty("报警人用户ID")
|
||||
private Long alarmUserId;
|
||||
|
||||
@NotBlank
|
||||
@ApiModelProperty("报警人")
|
||||
private String reporter;
|
||||
|
||||
@ApiModelProperty("报警人电话")
|
||||
private String alarmPhone;
|
||||
|
||||
@ApiModelProperty("所属单位ID")
|
||||
private Long corpinfoId;
|
||||
|
||||
@NotBlank
|
||||
@ApiModelProperty("火警位置")
|
||||
private String location;
|
||||
|
||||
@NotBlank
|
||||
@ApiModelProperty("所属单位")
|
||||
private String unit;
|
||||
|
||||
@ApiModelProperty("定位地址")
|
||||
private String locationAddress;
|
||||
|
||||
@NotNull
|
||||
@ApiModelProperty("经度")
|
||||
private Double lng;
|
||||
|
||||
@NotNull
|
||||
@ApiModelProperty("纬度")
|
||||
private Double lat;
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
package com.zcloud.zcGbsServicer.dto;
|
||||
|
||||
import com.alibaba.cola.dto.Command;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class AlarmRecordClearCmd extends Command {
|
||||
|
||||
@NotNull
|
||||
@ApiModelProperty("报警记录ID")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("消防队伍ID")
|
||||
private Long fireBrigadeId;
|
||||
|
||||
@ApiModelProperty("消防队伍名称")
|
||||
private String fireBrigadeName;
|
||||
|
||||
@NotBlank
|
||||
@ApiModelProperty("处置说明")
|
||||
private String desc;
|
||||
|
||||
@ApiModelProperty("现场照片")
|
||||
private List<String> photos;
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package com.zcloud.zcGbsServicer.dto;
|
||||
|
||||
import com.alibaba.cola.dto.Command;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@Data
|
||||
public class AlarmRecordHandleCmd extends Command {
|
||||
|
||||
@NotNull
|
||||
@ApiModelProperty("报警记录ID")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("消防队伍ID")
|
||||
private Long fireBrigadeId;
|
||||
|
||||
@ApiModelProperty("消防队伍名称")
|
||||
private String fireBrigadeName;
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package com.zcloud.zcGbsServicer.dto;
|
||||
|
||||
import com.alibaba.cola.dto.PageQuery;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class AlarmRecordPageQry extends PageQuery {
|
||||
|
||||
@ApiModelProperty("处置队伍名称")
|
||||
private String team;
|
||||
|
||||
@ApiModelProperty("报警状态")
|
||||
private String status;
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
package com.zcloud.zcGbsServicer.dto.clientobject;
|
||||
|
||||
import com.alibaba.cola.dto.ClientObject;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class AlarmRecordCO extends ClientObject {
|
||||
|
||||
private Long id;
|
||||
private String fireAlarmInfoId;
|
||||
private String sourceCode;
|
||||
private String source;
|
||||
private Long alarmUserId;
|
||||
|
||||
@JsonProperty("reporter")
|
||||
private String alarmUserName;
|
||||
|
||||
@JsonProperty("unit")
|
||||
private String corpinfoName;
|
||||
|
||||
@JsonProperty("location")
|
||||
private String fireLocation;
|
||||
|
||||
private String locationAddress;
|
||||
|
||||
@JsonProperty("lng")
|
||||
private BigDecimal longitude;
|
||||
|
||||
@JsonProperty("lat")
|
||||
private BigDecimal latitude;
|
||||
|
||||
private Long fireBrigadeId;
|
||||
|
||||
@JsonProperty("team")
|
||||
private String fireBrigadeName;
|
||||
|
||||
@JsonProperty("time")
|
||||
private String recordTime;
|
||||
|
||||
private String statusCode;
|
||||
private String status;
|
||||
private Long handleUserId;
|
||||
private String handleUserName;
|
||||
private String handleTime;
|
||||
|
||||
@JsonProperty("clearUserId")
|
||||
private Long clearId;
|
||||
|
||||
@JsonProperty("clearUserName")
|
||||
private String clearName;
|
||||
|
||||
private String clearTime;
|
||||
|
||||
@JsonProperty("desc")
|
||||
private String clearReason;
|
||||
|
||||
private List<String> photos;
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
package com.zcloud.zcGbsServicer.persistence.dataobject;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("fire_alarm_info")
|
||||
public class FireAlarmInfoDO extends BaseDO {
|
||||
|
||||
private String fireAlarmInfoId;
|
||||
private Integer alarmMode;
|
||||
private Long alarmUserId;
|
||||
private String alarmUserName;
|
||||
private String alarmPhone;
|
||||
private Long corpinfoId;
|
||||
private String corpinfoName;
|
||||
private String fireLocation;
|
||||
private String locationAddress;
|
||||
private BigDecimal longitude;
|
||||
private BigDecimal latitude;
|
||||
private String fireBrigadeId;
|
||||
private String fireBrigadeName;
|
||||
private Integer alarmStatus;
|
||||
private LocalDateTime recordTime;
|
||||
private Long handleUserId;
|
||||
private String handleUserName;
|
||||
private LocalDateTime handleTime;
|
||||
private LocalDateTime clearTime;
|
||||
private Long clearId;
|
||||
private String clearName;
|
||||
private String clearReason;
|
||||
private String meetingRoomId;
|
||||
private String meetingRoomName;
|
||||
private Long meetingApplyUserId;
|
||||
private String meetingApplyUserName;
|
||||
private String meetingApplyThirdUserId;
|
||||
private String meetingApplyThirdUserName;
|
||||
private String meetingNoticeStatus;
|
||||
private LocalDateTime meetingNoticeTime;
|
||||
private Integer meetingAuthStatus;
|
||||
private Integer meetingApproveStatus;
|
||||
private Long meetingApproveId;
|
||||
private String meetingApproveName;
|
||||
private LocalDateTime meetingApproveTime;
|
||||
private Integer meetingJoinStatus;
|
||||
private LocalDateTime meetingJoinTime;
|
||||
private LocalDateTime meetingLeaveTime;
|
||||
private String meetingResultMsg;
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package com.zcloud.zcGbsServicer.persistence.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmInfoDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@Mapper
|
||||
public interface FireAlarmInfoMapper extends BaseMapper<FireAlarmInfoDO> {
|
||||
|
||||
IPage<FireAlarmInfoDO> selectPageSql(IPage<FireAlarmInfoDO> page,
|
||||
@Param("tenantId") Long tenantId,
|
||||
@Param("fireBrigadeName") String fireBrigadeName,
|
||||
@Param("alarmStatus") Integer alarmStatus);
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.zcloud.zcGbsServicer.persistence.repository;
|
||||
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmInfoDO;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public interface FireAlarmInfoRepository extends BaseRepository<FireAlarmInfoDO> {
|
||||
|
||||
PageResponse<FireAlarmInfoDO> listPage(Map<String, Object> params);
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.zcloud.zcGbsServicer.persistence.repository.impl;
|
||||
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||
import com.jjb.saas.framework.repository.common.PageHelper;
|
||||
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
||||
import com.zcloud.gbscommon.utils.Query;
|
||||
import com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmInfoDO;
|
||||
import com.zcloud.zcGbsServicer.persistence.mapper.FireAlarmInfoMapper;
|
||||
import com.zcloud.zcGbsServicer.persistence.repository.FireAlarmInfoRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class FireAlarmInfoRepositoryImpl extends BaseRepositoryImpl<FireAlarmInfoMapper, FireAlarmInfoDO> implements FireAlarmInfoRepository {
|
||||
|
||||
private final FireAlarmInfoMapper fireAlarmInfoMapper;
|
||||
|
||||
@Override
|
||||
public PageResponse<FireAlarmInfoDO> listPage(Map<String, Object> params) {
|
||||
IPage<FireAlarmInfoDO> page = new Query<FireAlarmInfoDO>().getPage(params);
|
||||
String fireBrigadeName = params == null ? null : (String) params.get("fireBrigadeName");
|
||||
Integer alarmStatus = params == null ? null : (Integer) params.get("alarmStatus");
|
||||
IPage<FireAlarmInfoDO> result = fireAlarmInfoMapper.selectPageSql(page, AuthContext.getTenantId(), fireBrigadeName, alarmStatus);
|
||||
return PageHelper.pageToResponse(result, result.getRecords());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="com.zcloud.zcGbsServicer.persistence.mapper.FireAlarmInfoMapper">
|
||||
|
||||
<select id="selectPageSql" resultType="com.zcloud.zcGbsServicer.persistence.dataobject.FireAlarmInfoDO">
|
||||
SELECT *
|
||||
FROM fire_alarm_info
|
||||
<where>
|
||||
delete_enum = 'FALSE'
|
||||
<if test="tenantId != null">
|
||||
AND tenant_id = #{tenantId}
|
||||
</if>
|
||||
<if test="fireBrigadeName != null and fireBrigadeName != ''">
|
||||
AND fire_brigade_name LIKE CONCAT('%', #{fireBrigadeName}, '%')
|
||||
</if>
|
||||
<if test="alarmStatus != null">
|
||||
AND alarm_status = #{alarmStatus}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY record_time DESC, create_time DESC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue