From cada44a89181222b9eeccf602445277e33e2e56a Mon Sep 17 00:00:00 2001 From: wany <13995595726@qq.com> Date: Wed, 25 Sep 2024 11:18:01 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E8=AD=A6=E5=B9=BF=E6=92=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BroadcastStationController.java | 57 ++++++++++++ .../BroadcastTemplateController.java | 50 +++++++++++ .../controller/BroadcastWarnController.java | 51 +++++++++++ .../xyt/entity/so/BroadcastWarnPageSo.java | 33 +++++++ .../xyt/mapper/BroadcastStationMapper.java | 15 ++++ .../xyt/mapper/BroadcastTemplateMapper.java | 15 ++++ .../xyt/mapper/BroadcastWarnMapper.java | 41 +++++++++ .../project/xyt/model/BroadcastStation.java | 58 +++++++++++++ .../project/xyt/model/BroadcastTemplate.java | 58 +++++++++++++ .../project/xyt/model/BroadcastWarn.java | 87 +++++++++++++++++++ .../xyt/service/BroadcastStationService.java | 40 +++++++++ .../xyt/service/BroadcastTemplateService.java | 40 +++++++++ .../xyt/service/BroadcastWarnService.java | 30 +++++++ 13 files changed, 575 insertions(+) create mode 100644 src/main/java/com/gunshi/project/xyt/controller/BroadcastStationController.java create mode 100644 src/main/java/com/gunshi/project/xyt/controller/BroadcastTemplateController.java create mode 100644 src/main/java/com/gunshi/project/xyt/controller/BroadcastWarnController.java create mode 100644 src/main/java/com/gunshi/project/xyt/entity/so/BroadcastWarnPageSo.java create mode 100644 src/main/java/com/gunshi/project/xyt/mapper/BroadcastStationMapper.java create mode 100644 src/main/java/com/gunshi/project/xyt/mapper/BroadcastTemplateMapper.java create mode 100644 src/main/java/com/gunshi/project/xyt/mapper/BroadcastWarnMapper.java create mode 100644 src/main/java/com/gunshi/project/xyt/model/BroadcastStation.java create mode 100644 src/main/java/com/gunshi/project/xyt/model/BroadcastTemplate.java create mode 100644 src/main/java/com/gunshi/project/xyt/model/BroadcastWarn.java create mode 100644 src/main/java/com/gunshi/project/xyt/service/BroadcastStationService.java create mode 100644 src/main/java/com/gunshi/project/xyt/service/BroadcastTemplateService.java create mode 100644 src/main/java/com/gunshi/project/xyt/service/BroadcastWarnService.java diff --git a/src/main/java/com/gunshi/project/xyt/controller/BroadcastStationController.java b/src/main/java/com/gunshi/project/xyt/controller/BroadcastStationController.java new file mode 100644 index 0000000..1900b33 --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/controller/BroadcastStationController.java @@ -0,0 +1,57 @@ +package com.gunshi.project.xyt.controller; + +import com.gunshi.core.result.R; +import com.gunshi.project.xyt.model.BroadcastStation; +import com.gunshi.project.xyt.service.BroadcastStationService; +import com.gunshi.project.xyt.validate.markers.Insert; +import com.gunshi.project.xyt.validate.markers.Update; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; +/** + * 描述: + * author: xusan + * date: 2024-09-25 10:12:34 + */ +@Tag(name = "广播站") +@RestController +@RequestMapping(value="/broadcastStation") +public class BroadcastStationController { + + @Autowired + private BroadcastStationService service; + + + @Operation(summary = "新增") + @PostMapping("/insert") + public R insert(@Validated(Insert.class) @RequestBody BroadcastStation dto) { + return R.ok(service.saveData(dto)); + } + + @Operation(summary = "修改") + @PostMapping("/update") + public R update(@Validated(Update.class) @RequestBody BroadcastStation dto) { + boolean result = service.updateById(dto); + return R.ok(result ? dto : null); + } + + @Operation(summary = "删除") + @GetMapping("/del/{id}") + public R del(@Schema(name = "id") @PathVariable("id") Serializable id) { + return R.ok(service.removeById(id)); + } + + @Operation(summary = "列表") + @PostMapping("/list") + public R> list() { + return R.ok(service.lambdaQuery().orderByAsc(BroadcastStation::getOrderIndex).list()); + } + + +} \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/controller/BroadcastTemplateController.java b/src/main/java/com/gunshi/project/xyt/controller/BroadcastTemplateController.java new file mode 100644 index 0000000..7aa409e --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/controller/BroadcastTemplateController.java @@ -0,0 +1,50 @@ +package com.gunshi.project.xyt.controller; + +import com.gunshi.core.result.R; +import com.gunshi.project.xyt.model.BroadcastTemplate; +import com.gunshi.project.xyt.service.BroadcastTemplateService; +import com.gunshi.project.xyt.validate.markers.Insert; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.Serializable; +import java.util.List; +/** + * 描述: + * author: xusan + * date: 2024-09-25 10:12:13 + */ +@Tag(name = "广播模板") +@RestController +@RequestMapping(value="/broadcastTemplate") +public class BroadcastTemplateController { + + @Autowired + private BroadcastTemplateService service; + + + @Operation(summary = "新增") + @PostMapping("/insert") + public R insert(@Validated(Insert.class) @RequestBody BroadcastTemplate dto) { + return R.ok(service.saveData(dto)); + } + + + @Operation(summary = "删除") + @GetMapping("/del/{id}") + public R del(@Schema(name = "id") @PathVariable("id") Serializable id) { + return R.ok(service.removeById(id)); + } + + @Operation(summary = "列表") + @PostMapping("/list") + public R> list() { + return R.ok(service.lambdaQuery().orderByAsc(BroadcastTemplate::getOrderIndex).list()); + } + + +} \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/controller/BroadcastWarnController.java b/src/main/java/com/gunshi/project/xyt/controller/BroadcastWarnController.java new file mode 100644 index 0000000..6b574db --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/controller/BroadcastWarnController.java @@ -0,0 +1,51 @@ +package com.gunshi.project.xyt.controller; + +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.gunshi.core.result.R; +import com.gunshi.project.xyt.entity.so.BroadcastWarnPageSo; +import com.gunshi.project.xyt.model.BroadcastWarn; +import com.gunshi.project.xyt.service.BroadcastWarnService; +import com.gunshi.project.xyt.validate.markers.Insert; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Date; + +/** + * 描述: + * author: xusan + * date: 2024-09-25 10:12:51 + */ +@Tag(name = "广播预警") +@RestController +@RequestMapping(value="/broadcastWarn") +public class BroadcastWarnController { + + @Autowired + private BroadcastWarnService service; + + + @Operation(summary = "新增") + @PostMapping("/insert") + public R insert(@Validated(Insert.class) @RequestBody BroadcastWarn dto) { + dto.setId(IdWorker.getId()); + dto.setCreateTime(new Date()); + boolean result = service.save(dto); + return R.ok(result ? dto : null); + } + + + @Operation(summary = "分页") + @PostMapping("/page") + public R> page(@Validated @RequestBody BroadcastWarnPageSo page) { + return R.ok(service.pageQuery(page)); + } + +} \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/entity/so/BroadcastWarnPageSo.java b/src/main/java/com/gunshi/project/xyt/entity/so/BroadcastWarnPageSo.java new file mode 100644 index 0000000..08ad40d --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/entity/so/BroadcastWarnPageSo.java @@ -0,0 +1,33 @@ +package com.gunshi.project.xyt.entity.so; + +import com.gunshi.db.dto.DateTimeRangeSo; +import com.gunshi.db.dto.PageSo; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * Description: + * Created by wanyan on 2024/3/19 + * + * @author wanyan + * @version 1.0 + */ +@Data +@Schema(description = "广播告警分页查询对象") +public class BroadcastWarnPageSo { + + @NotNull(message = "分页参数不能为空") + @Schema(description = "分页参数") + private PageSo pageSo; + + @Schema(description="时段") + private DateTimeRangeSo timeRangeSo; + + @Schema(description="站点id") + private Long stationId; + + @Schema(description="告警内容") + private String warnContent; + +} diff --git a/src/main/java/com/gunshi/project/xyt/mapper/BroadcastStationMapper.java b/src/main/java/com/gunshi/project/xyt/mapper/BroadcastStationMapper.java new file mode 100644 index 0000000..21883ab --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/mapper/BroadcastStationMapper.java @@ -0,0 +1,15 @@ +package com.gunshi.project.xyt.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gunshi.project.xyt.model.BroadcastStation; +import org.apache.ibatis.annotations.Mapper; + +/** + * 描述: + * author: xusan + * date: 2024-09-25 10:12:34 + */ +@Mapper +public interface BroadcastStationMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/mapper/BroadcastTemplateMapper.java b/src/main/java/com/gunshi/project/xyt/mapper/BroadcastTemplateMapper.java new file mode 100644 index 0000000..8659d6c --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/mapper/BroadcastTemplateMapper.java @@ -0,0 +1,15 @@ +package com.gunshi.project.xyt.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gunshi.project.xyt.model.BroadcastTemplate; +import org.apache.ibatis.annotations.Mapper; + +/** + * 描述: + * author: xusan + * date: 2024-09-25 10:12:13 + */ +@Mapper +public interface BroadcastTemplateMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/mapper/BroadcastWarnMapper.java b/src/main/java/com/gunshi/project/xyt/mapper/BroadcastWarnMapper.java new file mode 100644 index 0000000..f3b6163 --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/mapper/BroadcastWarnMapper.java @@ -0,0 +1,41 @@ +package com.gunshi.project.xyt.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.gunshi.project.xyt.entity.so.BroadcastWarnPageSo; +import com.gunshi.project.xyt.model.BroadcastWarn; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +/** + * 描述: + * author: xusan + * date: 2024-09-25 10:12:51 + */ +@Mapper +public interface BroadcastWarnMapper extends BaseMapper { + + @Select(""" + + """) + Page pageQuery(Page page,@Param("obj") BroadcastWarnPageSo page1); +} \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/model/BroadcastStation.java b/src/main/java/com/gunshi/project/xyt/model/BroadcastStation.java new file mode 100644 index 0000000..302ecd0 --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/model/BroadcastStation.java @@ -0,0 +1,58 @@ +package com.gunshi.project.xyt.model; + + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.gunshi.project.xyt.validate.markers.Update; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.Data; + +import java.io.Serializable; + +/** +* 描述: 广播预警站 +* author: xusan +* date: 2024-09-25 10:19:15 +*/ +@Schema(description="广播预警站") +@Data +@TableName("public.broadcast_station") +public class BroadcastStation implements Serializable { + + public final static String thisTableName = "BroadcastStation"; + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value="id", type= IdType.AUTO) + @Schema(description="主键") + @NotNull(message = "id不能为空",groups = { Update.class}) + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 站点名称 + */ + @TableField(value="name") + @Schema(description="站点名称") + @Size(max = 100,message = "站点名称最大长度要小于 100") + @NotBlank(message = "站点名称不能为空") + private String name; + + /** + * 排序 + */ + @TableField(value="order_index") + @Schema(description="排序") + private Integer orderIndex; + +} \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/model/BroadcastTemplate.java b/src/main/java/com/gunshi/project/xyt/model/BroadcastTemplate.java new file mode 100644 index 0000000..91b0d27 --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/model/BroadcastTemplate.java @@ -0,0 +1,58 @@ +package com.gunshi.project.xyt.model; + + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.gunshi.project.xyt.validate.markers.Update; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.Data; + +import java.io.Serializable; + +/** +* 描述: 广播模板 +* author: xusan +* date: 2024-09-25 10:19:00 +*/ +@Schema(description="广播模板") +@Data +@TableName("public.broadcast_template") +public class BroadcastTemplate implements Serializable { + + public final static String thisTableName = "BroadcastTemplate"; + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value="id", type= IdType.AUTO) + @Schema(description="主键") + @NotNull(message = "id不能为空",groups = { Update.class}) + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 内容 + */ + @TableField(value="content") + @Schema(description="内容") + @Size(max = 500,message = "内容最大长度要小于 500") + @NotBlank(message = "内容不能为空") + private String content; + + /** + * 排序 + */ + @TableField(value="order_index") + @Schema(description="排序") + private Integer orderIndex; + +} \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/model/BroadcastWarn.java b/src/main/java/com/gunshi/project/xyt/model/BroadcastWarn.java new file mode 100644 index 0000000..083362b --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/model/BroadcastWarn.java @@ -0,0 +1,87 @@ +package com.gunshi.project.xyt.model; + + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.gunshi.core.dateformat.DateFormatString; +import com.gunshi.project.xyt.validate.markers.Update; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** +* 描述: 广播预警信息 +* author: xusan +* date: 2024-09-25 10:17:53 +*/ +@Schema(description="广播预警信息") +@Data +@TableName("public.broadcast_warn") +public class BroadcastWarn implements Serializable { + + public final static String thisTableName = "BroadcastWarn"; + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value="id", type= IdType.AUTO) + @Schema(description="主键") + @NotNull(message = "id不能为空",groups = { Update.class}) + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 站点id + */ + @TableField(value="station_id") + @Schema(description="站点id") + @JsonSerialize(using = ToStringSerializer.class) + private Long stationId; + + @TableField(exist = false) + @Schema(description="站点名称") + private String name; + + /** + * 告警内容 + */ + @TableField(value="warn_content") + @Schema(description="告警内容") + @Size(max = 500,message = "告警内容最大长度要小于 500") + private String warnContent; + + /** + * 创建人id + */ + @TableField(value="create_user_id") + @Schema(description="创建人id") + private Long createUserId; + + /** + * 创建人名称 + */ + @TableField(value="create_user_name") + @Schema(description="创建人名称") + @Size(max = 100,message = "创建人名称最大长度要小于 100") + private String createUserName; + + /** + * 创建时间 + */ + @TableField(value="create_time") + @Schema(description="创建时间") + @JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8") + private Date createTime; + +} \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/service/BroadcastStationService.java b/src/main/java/com/gunshi/project/xyt/service/BroadcastStationService.java new file mode 100644 index 0000000..7834334 --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/service/BroadcastStationService.java @@ -0,0 +1,40 @@ +package com.gunshi.project.xyt.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gunshi.project.xyt.mapper.BroadcastStationMapper; +import com.gunshi.project.xyt.model.BroadcastStation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * 描述: 广播预警站 + * author: xusan + * date: 2024-09-25 10:19:15 + */ +@Service +@Slf4j +@Transactional(rollbackFor = Exception.class) +public class BroadcastStationService extends ServiceImpl +{ + + public BroadcastStation saveData(BroadcastStation dto) { + dto.setId(IdWorker.getId()); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderBy(true, false, "order_index"); + BroadcastStation lastOne = super.getOne(queryWrapper, false); + int order = 0; + if (lastOne == null) { + order = 1; + } else { + order = lastOne.getOrderIndex() + 1; + } + dto.setOrderIndex(order); + this.save(dto); + return dto; + } +} + + diff --git a/src/main/java/com/gunshi/project/xyt/service/BroadcastTemplateService.java b/src/main/java/com/gunshi/project/xyt/service/BroadcastTemplateService.java new file mode 100644 index 0000000..ea6669c --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/service/BroadcastTemplateService.java @@ -0,0 +1,40 @@ +package com.gunshi.project.xyt.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gunshi.project.xyt.mapper.BroadcastTemplateMapper; +import com.gunshi.project.xyt.model.BroadcastTemplate; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * 描述: 广播模板 + * author: xusan + * date: 2024-09-25 10:19:00 + */ +@Service +@Slf4j +@Transactional(rollbackFor = Exception.class) +public class BroadcastTemplateService extends ServiceImpl +{ + + public BroadcastTemplate saveData(BroadcastTemplate dto) { + dto.setId(IdWorker.getId()); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderBy(true, false, "order_index"); + BroadcastTemplate lastOne = super.getOne(queryWrapper, false); + int order = 0; + if (lastOne == null) { + order = 1; + } else { + order = lastOne.getOrderIndex() + 1; + } + dto.setOrderIndex(order); + this.save(dto); + return dto; + } +} + + diff --git a/src/main/java/com/gunshi/project/xyt/service/BroadcastWarnService.java b/src/main/java/com/gunshi/project/xyt/service/BroadcastWarnService.java new file mode 100644 index 0000000..bd98539 --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/service/BroadcastWarnService.java @@ -0,0 +1,30 @@ +package com.gunshi.project.xyt.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gunshi.project.xyt.entity.so.BroadcastWarnPageSo; +import com.gunshi.project.xyt.mapper.BroadcastWarnMapper; +import com.gunshi.project.xyt.model.BroadcastWarn; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; + +/** + * 描述: 广播预警信息 + * author: xusan + * date: 2024-09-25 10:17:54 + */ +@Service +@Slf4j +@Transactional(rollbackFor = Exception.class) +public class BroadcastWarnService extends ServiceImpl +{ + + public Page pageQuery(BroadcastWarnPageSo page) { + return this.baseMapper.pageQuery(page.getPageSo().toPage(),page); + } +} + +