diff --git a/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java new file mode 100644 index 0000000..d6dd6e8 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -0,0 +1,42 @@ +package com.casic.missiles.enums; + +/** + * @Description: 导出模板枚举 + * @Author: wangpeng + * @Date: 2022/12/2 11:53 + */ +public enum ExportEnum { + ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), + DEVICE_EXPORT("monitorDeviceInfo", "monitorDeviceInfo", "设备信息"); + + ExportEnum(String fileName, String sheetName, String description) { + this.fileName = fileName; + this.sheetName = sheetName; + this.description = description; + } + + /** + * 导出模板相对路径 + */ + private String fileName; + /** + * 下载文件名 + */ + private String sheetName; + /** + * 描述信息 + */ + private String description; + + public String getFileName() { + return fileName; + } + + public String getSheetName() { + return sheetName; + } + + public String getDescription() { + return description; + } +} diff --git a/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java new file mode 100644 index 0000000..d6dd6e8 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -0,0 +1,42 @@ +package com.casic.missiles.enums; + +/** + * @Description: 导出模板枚举 + * @Author: wangpeng + * @Date: 2022/12/2 11:53 + */ +public enum ExportEnum { + ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), + DEVICE_EXPORT("monitorDeviceInfo", "monitorDeviceInfo", "设备信息"); + + ExportEnum(String fileName, String sheetName, String description) { + this.fileName = fileName; + this.sheetName = sheetName; + this.description = description; + } + + /** + * 导出模板相对路径 + */ + private String fileName; + /** + * 下载文件名 + */ + private String sheetName; + /** + * 描述信息 + */ + private String description; + + public String getFileName() { + return fileName; + } + + public String getSheetName() { + return sheetName; + } + + public String getDescription() { + return description; + } +} diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java index 9875797..048826b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java @@ -20,11 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.List; import java.util.Objects; @@ -59,13 +57,17 @@ @RequestMapping(value = "/listPage") @ResponseBody public Object listPage(@RequestBody @Valid AlarmRecordRequest request) { - Page page = PageFactory.defaultPage(); List alarmRecordList = alarmRecordService.pageList(page, request); page.setRecords(alarmRecordList); return ResponseData.success(super.packForBT(page)); } + @PostMapping("/export") + public void export(@RequestBody @Valid AlarmRecordRequest request, HttpServletResponse response) { + alarmRecordService.export(request, response); + } + /** * 新增告警记录 */ diff --git a/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java new file mode 100644 index 0000000..d6dd6e8 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -0,0 +1,42 @@ +package com.casic.missiles.enums; + +/** + * @Description: 导出模板枚举 + * @Author: wangpeng + * @Date: 2022/12/2 11:53 + */ +public enum ExportEnum { + ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), + DEVICE_EXPORT("monitorDeviceInfo", "monitorDeviceInfo", "设备信息"); + + ExportEnum(String fileName, String sheetName, String description) { + this.fileName = fileName; + this.sheetName = sheetName; + this.description = description; + } + + /** + * 导出模板相对路径 + */ + private String fileName; + /** + * 下载文件名 + */ + private String sheetName; + /** + * 描述信息 + */ + private String description; + + public String getFileName() { + return fileName; + } + + public String getSheetName() { + return sheetName; + } + + public String getDescription() { + return description; + } +} diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java index 9875797..048826b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java @@ -20,11 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.List; import java.util.Objects; @@ -59,13 +57,17 @@ @RequestMapping(value = "/listPage") @ResponseBody public Object listPage(@RequestBody @Valid AlarmRecordRequest request) { - Page page = PageFactory.defaultPage(); List alarmRecordList = alarmRecordService.pageList(page, request); page.setRecords(alarmRecordList); return ResponseData.success(super.packForBT(page)); } + @PostMapping("/export") + public void export(@RequestBody @Valid AlarmRecordRequest request, HttpServletResponse response) { + alarmRecordService.export(request, response); + } + /** * 新增告警记录 */ diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java index 27085b5..bffd90c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java @@ -9,7 +9,6 @@ import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusPatrolLogDTO; -import com.casic.missiles.modular.system.model.BusPatrolLog; import com.casic.missiles.modular.system.service.IBusPatrolLogService; import org.apache.poi.ss.formula.functions.T; import org.springframework.validation.BindingResult; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java new file mode 100644 index 0000000..d6dd6e8 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -0,0 +1,42 @@ +package com.casic.missiles.enums; + +/** + * @Description: 导出模板枚举 + * @Author: wangpeng + * @Date: 2022/12/2 11:53 + */ +public enum ExportEnum { + ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), + DEVICE_EXPORT("monitorDeviceInfo", "monitorDeviceInfo", "设备信息"); + + ExportEnum(String fileName, String sheetName, String description) { + this.fileName = fileName; + this.sheetName = sheetName; + this.description = description; + } + + /** + * 导出模板相对路径 + */ + private String fileName; + /** + * 下载文件名 + */ + private String sheetName; + /** + * 描述信息 + */ + private String description; + + public String getFileName() { + return fileName; + } + + public String getSheetName() { + return sheetName; + } + + public String getDescription() { + return description; + } +} diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java index 9875797..048826b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java @@ -20,11 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.List; import java.util.Objects; @@ -59,13 +57,17 @@ @RequestMapping(value = "/listPage") @ResponseBody public Object listPage(@RequestBody @Valid AlarmRecordRequest request) { - Page page = PageFactory.defaultPage(); List alarmRecordList = alarmRecordService.pageList(page, request); page.setRecords(alarmRecordList); return ResponseData.success(super.packForBT(page)); } + @PostMapping("/export") + public void export(@RequestBody @Valid AlarmRecordRequest request, HttpServletResponse response) { + alarmRecordService.export(request, response); + } + /** * 新增告警记录 */ diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java index 27085b5..bffd90c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java @@ -9,7 +9,6 @@ import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusPatrolLogDTO; -import com.casic.missiles.modular.system.model.BusPatrolLog; import com.casic.missiles.modular.system.service.IBusPatrolLogService; import org.apache.poi.ss.formula.functions.T; import org.springframework.validation.BindingResult; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java index 2bf3031..57c0198 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java @@ -1,6 +1,13 @@ package com.casic.missiles.modular.system.model; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -22,6 +29,11 @@ */ @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @TableName("alarm_record") public class AlarmRecord extends Model { @@ -51,11 +63,13 @@ * 报警内容 */ @TableField("ALARM_CONTENT") + @ExcelProperty(value = "报警内容", order = 4) private String alarmContent; /** * 报警数值 */ @TableField("ALARM_VALUE") + @ExcelProperty(value = "报警数值", order = 5) private Double alarmValue; /** * 报警阈值 @@ -66,16 +80,19 @@ * 报警方位 */ @TableField("ALARM_DIRECTION") + @ExcelProperty(value = "报警方位", order = 8) private Double alarmDirection; /** * 报警俯仰角 */ @TableField("ALARM_PITCH") + @ExcelProperty(value = "报警俯仰角", order = 9) private Double alarmPitch; /** * 报警时间 */ @TableField("ALARM_TIME") + @ExcelProperty(value = "报警时间", order = 10) private Date alarmTime; /** * 报警图片 @@ -111,6 +128,7 @@ * 预置点号 */ @TableField("SERIAL_NUM") + @ExcelProperty(value = "预置点名称", order = 3) private Integer serialNum; /** * 时间 @@ -121,18 +139,23 @@ private Date ts; @TableField(exist = false) + @ExcelProperty(value = "监控点位名称", order = 1) private String monitorName; @TableField(exist = false) + @ExcelProperty(value = "场站名称", order = 0) private String stationName; @TableField(exist = false) + @ExcelProperty(value = "报警类型", order = 6) private String alarmTypeName; @TableField(exist = false) + @ExcelProperty(value = "报警状态", order = 7) private String alarmStatusName; @TableField(exist = false) + @ExcelProperty(value = "巡航路线名称", order = 2) private String lineName; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java new file mode 100644 index 0000000..d6dd6e8 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -0,0 +1,42 @@ +package com.casic.missiles.enums; + +/** + * @Description: 导出模板枚举 + * @Author: wangpeng + * @Date: 2022/12/2 11:53 + */ +public enum ExportEnum { + ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), + DEVICE_EXPORT("monitorDeviceInfo", "monitorDeviceInfo", "设备信息"); + + ExportEnum(String fileName, String sheetName, String description) { + this.fileName = fileName; + this.sheetName = sheetName; + this.description = description; + } + + /** + * 导出模板相对路径 + */ + private String fileName; + /** + * 下载文件名 + */ + private String sheetName; + /** + * 描述信息 + */ + private String description; + + public String getFileName() { + return fileName; + } + + public String getSheetName() { + return sheetName; + } + + public String getDescription() { + return description; + } +} diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java index 9875797..048826b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java @@ -20,11 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.List; import java.util.Objects; @@ -59,13 +57,17 @@ @RequestMapping(value = "/listPage") @ResponseBody public Object listPage(@RequestBody @Valid AlarmRecordRequest request) { - Page page = PageFactory.defaultPage(); List alarmRecordList = alarmRecordService.pageList(page, request); page.setRecords(alarmRecordList); return ResponseData.success(super.packForBT(page)); } + @PostMapping("/export") + public void export(@RequestBody @Valid AlarmRecordRequest request, HttpServletResponse response) { + alarmRecordService.export(request, response); + } + /** * 新增告警记录 */ diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java index 27085b5..bffd90c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java @@ -9,7 +9,6 @@ import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusPatrolLogDTO; -import com.casic.missiles.modular.system.model.BusPatrolLog; import com.casic.missiles.modular.system.service.IBusPatrolLogService; import org.apache.poi.ss.formula.functions.T; import org.springframework.validation.BindingResult; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java index 2bf3031..57c0198 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java @@ -1,6 +1,13 @@ package com.casic.missiles.modular.system.model; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -22,6 +29,11 @@ */ @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @TableName("alarm_record") public class AlarmRecord extends Model { @@ -51,11 +63,13 @@ * 报警内容 */ @TableField("ALARM_CONTENT") + @ExcelProperty(value = "报警内容", order = 4) private String alarmContent; /** * 报警数值 */ @TableField("ALARM_VALUE") + @ExcelProperty(value = "报警数值", order = 5) private Double alarmValue; /** * 报警阈值 @@ -66,16 +80,19 @@ * 报警方位 */ @TableField("ALARM_DIRECTION") + @ExcelProperty(value = "报警方位", order = 8) private Double alarmDirection; /** * 报警俯仰角 */ @TableField("ALARM_PITCH") + @ExcelProperty(value = "报警俯仰角", order = 9) private Double alarmPitch; /** * 报警时间 */ @TableField("ALARM_TIME") + @ExcelProperty(value = "报警时间", order = 10) private Date alarmTime; /** * 报警图片 @@ -111,6 +128,7 @@ * 预置点号 */ @TableField("SERIAL_NUM") + @ExcelProperty(value = "预置点名称", order = 3) private Integer serialNum; /** * 时间 @@ -121,18 +139,23 @@ private Date ts; @TableField(exist = false) + @ExcelProperty(value = "监控点位名称", order = 1) private String monitorName; @TableField(exist = false) + @ExcelProperty(value = "场站名称", order = 0) private String stationName; @TableField(exist = false) + @ExcelProperty(value = "报警类型", order = 6) private String alarmTypeName; @TableField(exist = false) + @ExcelProperty(value = "报警状态", order = 7) private String alarmStatusName; @TableField(exist = false) + @ExcelProperty(value = "巡航路线名称", order = 2) private String lineName; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java index e91d017..83fec02 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java @@ -6,6 +6,7 @@ import com.casic.missiles.modular.system.model.AlarmRecord; import com.baomidou.mybatisplus.extension.service.IService; +import javax.servlet.http.HttpServletResponse; import java.util.Date; import java.util.List; @@ -21,6 +22,8 @@ List pageList(Page page, AlarmRecordRequest request); + List export(AlarmRecordRequest request, HttpServletResponse response); + boolean cancel(AlarmCancelRequest alarmCancelRequest); AlarmRecordResponse detail(Long id); diff --git a/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java new file mode 100644 index 0000000..d6dd6e8 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -0,0 +1,42 @@ +package com.casic.missiles.enums; + +/** + * @Description: 导出模板枚举 + * @Author: wangpeng + * @Date: 2022/12/2 11:53 + */ +public enum ExportEnum { + ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), + DEVICE_EXPORT("monitorDeviceInfo", "monitorDeviceInfo", "设备信息"); + + ExportEnum(String fileName, String sheetName, String description) { + this.fileName = fileName; + this.sheetName = sheetName; + this.description = description; + } + + /** + * 导出模板相对路径 + */ + private String fileName; + /** + * 下载文件名 + */ + private String sheetName; + /** + * 描述信息 + */ + private String description; + + public String getFileName() { + return fileName; + } + + public String getSheetName() { + return sheetName; + } + + public String getDescription() { + return description; + } +} diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java index 9875797..048826b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java @@ -20,11 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.List; import java.util.Objects; @@ -59,13 +57,17 @@ @RequestMapping(value = "/listPage") @ResponseBody public Object listPage(@RequestBody @Valid AlarmRecordRequest request) { - Page page = PageFactory.defaultPage(); List alarmRecordList = alarmRecordService.pageList(page, request); page.setRecords(alarmRecordList); return ResponseData.success(super.packForBT(page)); } + @PostMapping("/export") + public void export(@RequestBody @Valid AlarmRecordRequest request, HttpServletResponse response) { + alarmRecordService.export(request, response); + } + /** * 新增告警记录 */ diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java index 27085b5..bffd90c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java @@ -9,7 +9,6 @@ import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusPatrolLogDTO; -import com.casic.missiles.modular.system.model.BusPatrolLog; import com.casic.missiles.modular.system.service.IBusPatrolLogService; import org.apache.poi.ss.formula.functions.T; import org.springframework.validation.BindingResult; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java index 2bf3031..57c0198 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java @@ -1,6 +1,13 @@ package com.casic.missiles.modular.system.model; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -22,6 +29,11 @@ */ @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @TableName("alarm_record") public class AlarmRecord extends Model { @@ -51,11 +63,13 @@ * 报警内容 */ @TableField("ALARM_CONTENT") + @ExcelProperty(value = "报警内容", order = 4) private String alarmContent; /** * 报警数值 */ @TableField("ALARM_VALUE") + @ExcelProperty(value = "报警数值", order = 5) private Double alarmValue; /** * 报警阈值 @@ -66,16 +80,19 @@ * 报警方位 */ @TableField("ALARM_DIRECTION") + @ExcelProperty(value = "报警方位", order = 8) private Double alarmDirection; /** * 报警俯仰角 */ @TableField("ALARM_PITCH") + @ExcelProperty(value = "报警俯仰角", order = 9) private Double alarmPitch; /** * 报警时间 */ @TableField("ALARM_TIME") + @ExcelProperty(value = "报警时间", order = 10) private Date alarmTime; /** * 报警图片 @@ -111,6 +128,7 @@ * 预置点号 */ @TableField("SERIAL_NUM") + @ExcelProperty(value = "预置点名称", order = 3) private Integer serialNum; /** * 时间 @@ -121,18 +139,23 @@ private Date ts; @TableField(exist = false) + @ExcelProperty(value = "监控点位名称", order = 1) private String monitorName; @TableField(exist = false) + @ExcelProperty(value = "场站名称", order = 0) private String stationName; @TableField(exist = false) + @ExcelProperty(value = "报警类型", order = 6) private String alarmTypeName; @TableField(exist = false) + @ExcelProperty(value = "报警状态", order = 7) private String alarmStatusName; @TableField(exist = false) + @ExcelProperty(value = "巡航路线名称", order = 2) private String lineName; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java index e91d017..83fec02 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java @@ -6,6 +6,7 @@ import com.casic.missiles.modular.system.model.AlarmRecord; import com.baomidou.mybatisplus.extension.service.IService; +import javax.servlet.http.HttpServletResponse; import java.util.Date; import java.util.List; @@ -21,6 +22,8 @@ List pageList(Page page, AlarmRecordRequest request); + List export(AlarmRecordRequest request, HttpServletResponse response); + boolean cancel(AlarmCancelRequest alarmCancelRequest); AlarmRecordResponse detail(Long id); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java index f81e2a3..c38ccca 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java @@ -7,10 +7,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.StatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.system.dto.*; @@ -22,11 +25,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.weigeng.CommDoorUtil; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -41,18 +44,14 @@ * @since 2023-04-18 */ @Service +@RequiredArgsConstructor public class AlarmRecordServiceImpl extends ServiceImpl implements IAlarmRecordService { - @Autowired - private AbstractPermissionContext permissionContext; - // @Autowired -// private ICasicUserService casicUserService; - @Autowired - private AbstractDictService dictService; - - @Resource - private ICommonFileService commonFileService; + private final AbstractPermissionContext permissionContext; + private final AbstractDictService dictService; + private final ICommonFileService commonFileService; + private final IBaseExportService iBaseExportService; @Override public List pageList(Page page, AlarmRecordRequest request) { @@ -74,6 +73,31 @@ } @Override + public List export(AlarmRecordRequest request, HttpServletResponse response) { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + dataScope.setScopeName("DEPT_ID"); + List alarmRecordList = this.baseMapper.pageList(page, request, dataScope); + alarmRecordList.forEach(alarmRecord -> { + if (ObjectUtil.isNotEmpty(alarmRecord.getAlarmStatus())) { + alarmRecord.setAlarmStatusName(dictService.getDictNameByCode(DictEnum.ALARM_STATUS, alarmRecord.getAlarmStatus())); + } + if (ObjectUtil.isNotEmpty(alarmRecord.getAlarmType())) { + alarmRecord.setAlarmTypeName(dictService.getDictNameByCode(DictEnum.ALARM_TYPE, alarmRecord.getAlarmType())); + } + }); + try { + iBaseExportService.exportExcel(response, AlarmRecord.class, alarmRecordList, ExportEnum.ALARM_EXPORT.getSheetName()); + } catch (Exception e) { + log.error("报警记录导出异常,异常信息为{}", e); + } + return alarmRecordList; + } + + @Override public boolean cancel(AlarmCancelRequest alarmCancelRequest) { AlarmRecord alarmRecord = this.getById(alarmCancelRequest.getId()); if (null != alarmRecord) { @@ -163,9 +187,9 @@ alarmRecord.setAlarmType(alarmAIDTO.getAlarmType()); alarmRecord.setAlarmTime(DateUtil.parseDateTime(alarmAIDTO.getAlarmTime())); //保存照片 - if(ObjectUtil.isNotEmpty(alarmAIDTO.getPhoto()) && alarmAIDTO.getPhoto().startsWith("data:image")){ + if (ObjectUtil.isNotEmpty(alarmAIDTO.getPhoto()) && alarmAIDTO.getPhoto().startsWith("data:image")) { alarmRecord.setPhoto(commonFileService.saveFileBase64Image(alarmAIDTO.getPhoto())); - }else { + } else { throw new BusinessException(BusinessExceptionEnum.ALARM_BASE64_ERROR); } return this.save(alarmRecord); @@ -222,7 +246,7 @@ Object alarmCount = alarmTypeMap.get(dict.getCode()); AlarmTypeStatisticsVO alarmTypeStatisticsVO = new AlarmTypeStatisticsVO(); alarmTypeStatisticsVO.setType(dict.getName()); - alarmTypeStatisticsVO.setNum(ObjectUtils.isNotEmpty(alarmCount)? Integer.valueOf(String.valueOf(alarmCount)) : 0); + alarmTypeStatisticsVO.setNum(ObjectUtils.isNotEmpty(alarmCount) ? Integer.valueOf(String.valueOf(alarmCount)) : 0); alarmTypeStatisticsVOS.add(alarmTypeStatisticsVO); } ); diff --git a/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java new file mode 100644 index 0000000..d6dd6e8 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -0,0 +1,42 @@ +package com.casic.missiles.enums; + +/** + * @Description: 导出模板枚举 + * @Author: wangpeng + * @Date: 2022/12/2 11:53 + */ +public enum ExportEnum { + ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), + DEVICE_EXPORT("monitorDeviceInfo", "monitorDeviceInfo", "设备信息"); + + ExportEnum(String fileName, String sheetName, String description) { + this.fileName = fileName; + this.sheetName = sheetName; + this.description = description; + } + + /** + * 导出模板相对路径 + */ + private String fileName; + /** + * 下载文件名 + */ + private String sheetName; + /** + * 描述信息 + */ + private String description; + + public String getFileName() { + return fileName; + } + + public String getSheetName() { + return sheetName; + } + + public String getDescription() { + return description; + } +} diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java index 9875797..048826b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java @@ -20,11 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.List; import java.util.Objects; @@ -59,13 +57,17 @@ @RequestMapping(value = "/listPage") @ResponseBody public Object listPage(@RequestBody @Valid AlarmRecordRequest request) { - Page page = PageFactory.defaultPage(); List alarmRecordList = alarmRecordService.pageList(page, request); page.setRecords(alarmRecordList); return ResponseData.success(super.packForBT(page)); } + @PostMapping("/export") + public void export(@RequestBody @Valid AlarmRecordRequest request, HttpServletResponse response) { + alarmRecordService.export(request, response); + } + /** * 新增告警记录 */ diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java index 27085b5..bffd90c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java @@ -9,7 +9,6 @@ import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusPatrolLogDTO; -import com.casic.missiles.modular.system.model.BusPatrolLog; import com.casic.missiles.modular.system.service.IBusPatrolLogService; import org.apache.poi.ss.formula.functions.T; import org.springframework.validation.BindingResult; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java index 2bf3031..57c0198 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java @@ -1,6 +1,13 @@ package com.casic.missiles.modular.system.model; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -22,6 +29,11 @@ */ @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @TableName("alarm_record") public class AlarmRecord extends Model { @@ -51,11 +63,13 @@ * 报警内容 */ @TableField("ALARM_CONTENT") + @ExcelProperty(value = "报警内容", order = 4) private String alarmContent; /** * 报警数值 */ @TableField("ALARM_VALUE") + @ExcelProperty(value = "报警数值", order = 5) private Double alarmValue; /** * 报警阈值 @@ -66,16 +80,19 @@ * 报警方位 */ @TableField("ALARM_DIRECTION") + @ExcelProperty(value = "报警方位", order = 8) private Double alarmDirection; /** * 报警俯仰角 */ @TableField("ALARM_PITCH") + @ExcelProperty(value = "报警俯仰角", order = 9) private Double alarmPitch; /** * 报警时间 */ @TableField("ALARM_TIME") + @ExcelProperty(value = "报警时间", order = 10) private Date alarmTime; /** * 报警图片 @@ -111,6 +128,7 @@ * 预置点号 */ @TableField("SERIAL_NUM") + @ExcelProperty(value = "预置点名称", order = 3) private Integer serialNum; /** * 时间 @@ -121,18 +139,23 @@ private Date ts; @TableField(exist = false) + @ExcelProperty(value = "监控点位名称", order = 1) private String monitorName; @TableField(exist = false) + @ExcelProperty(value = "场站名称", order = 0) private String stationName; @TableField(exist = false) + @ExcelProperty(value = "报警类型", order = 6) private String alarmTypeName; @TableField(exist = false) + @ExcelProperty(value = "报警状态", order = 7) private String alarmStatusName; @TableField(exist = false) + @ExcelProperty(value = "巡航路线名称", order = 2) private String lineName; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java index e91d017..83fec02 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java @@ -6,6 +6,7 @@ import com.casic.missiles.modular.system.model.AlarmRecord; import com.baomidou.mybatisplus.extension.service.IService; +import javax.servlet.http.HttpServletResponse; import java.util.Date; import java.util.List; @@ -21,6 +22,8 @@ List pageList(Page page, AlarmRecordRequest request); + List export(AlarmRecordRequest request, HttpServletResponse response); + boolean cancel(AlarmCancelRequest alarmCancelRequest); AlarmRecordResponse detail(Long id); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java index f81e2a3..c38ccca 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java @@ -7,10 +7,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.StatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.system.dto.*; @@ -22,11 +25,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.weigeng.CommDoorUtil; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -41,18 +44,14 @@ * @since 2023-04-18 */ @Service +@RequiredArgsConstructor public class AlarmRecordServiceImpl extends ServiceImpl implements IAlarmRecordService { - @Autowired - private AbstractPermissionContext permissionContext; - // @Autowired -// private ICasicUserService casicUserService; - @Autowired - private AbstractDictService dictService; - - @Resource - private ICommonFileService commonFileService; + private final AbstractPermissionContext permissionContext; + private final AbstractDictService dictService; + private final ICommonFileService commonFileService; + private final IBaseExportService iBaseExportService; @Override public List pageList(Page page, AlarmRecordRequest request) { @@ -74,6 +73,31 @@ } @Override + public List export(AlarmRecordRequest request, HttpServletResponse response) { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + dataScope.setScopeName("DEPT_ID"); + List alarmRecordList = this.baseMapper.pageList(page, request, dataScope); + alarmRecordList.forEach(alarmRecord -> { + if (ObjectUtil.isNotEmpty(alarmRecord.getAlarmStatus())) { + alarmRecord.setAlarmStatusName(dictService.getDictNameByCode(DictEnum.ALARM_STATUS, alarmRecord.getAlarmStatus())); + } + if (ObjectUtil.isNotEmpty(alarmRecord.getAlarmType())) { + alarmRecord.setAlarmTypeName(dictService.getDictNameByCode(DictEnum.ALARM_TYPE, alarmRecord.getAlarmType())); + } + }); + try { + iBaseExportService.exportExcel(response, AlarmRecord.class, alarmRecordList, ExportEnum.ALARM_EXPORT.getSheetName()); + } catch (Exception e) { + log.error("报警记录导出异常,异常信息为{}", e); + } + return alarmRecordList; + } + + @Override public boolean cancel(AlarmCancelRequest alarmCancelRequest) { AlarmRecord alarmRecord = this.getById(alarmCancelRequest.getId()); if (null != alarmRecord) { @@ -163,9 +187,9 @@ alarmRecord.setAlarmType(alarmAIDTO.getAlarmType()); alarmRecord.setAlarmTime(DateUtil.parseDateTime(alarmAIDTO.getAlarmTime())); //保存照片 - if(ObjectUtil.isNotEmpty(alarmAIDTO.getPhoto()) && alarmAIDTO.getPhoto().startsWith("data:image")){ + if (ObjectUtil.isNotEmpty(alarmAIDTO.getPhoto()) && alarmAIDTO.getPhoto().startsWith("data:image")) { alarmRecord.setPhoto(commonFileService.saveFileBase64Image(alarmAIDTO.getPhoto())); - }else { + } else { throw new BusinessException(BusinessExceptionEnum.ALARM_BASE64_ERROR); } return this.save(alarmRecord); @@ -222,7 +246,7 @@ Object alarmCount = alarmTypeMap.get(dict.getCode()); AlarmTypeStatisticsVO alarmTypeStatisticsVO = new AlarmTypeStatisticsVO(); alarmTypeStatisticsVO.setType(dict.getName()); - alarmTypeStatisticsVO.setNum(ObjectUtils.isNotEmpty(alarmCount)? Integer.valueOf(String.valueOf(alarmCount)) : 0); + alarmTypeStatisticsVO.setNum(ObjectUtils.isNotEmpty(alarmCount) ? Integer.valueOf(String.valueOf(alarmCount)) : 0); alarmTypeStatisticsVOS.add(alarmTypeStatisticsVO); } ); diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusMonipoiInfoController.java b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusMonipoiInfoController.java index 35646ac..5e4144b 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusMonipoiInfoController.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusMonipoiInfoController.java @@ -20,6 +20,7 @@ import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Objects; @@ -54,6 +55,11 @@ return ResponseData.success(super.packForBT(busMonipoiInfoService.monitorListPage(page, monitorListDTO.getStationId(), monitorListDTO.getKeyword()))); } + @PostMapping("/export") + public void export(@RequestBody @Valid MonitorListDTO requestDTO, HttpServletResponse response) { + busMonipoiInfoService.export(requestDTO, response); + } + /** * 新增监测点/设备信息 */ diff --git a/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java new file mode 100644 index 0000000..d6dd6e8 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -0,0 +1,42 @@ +package com.casic.missiles.enums; + +/** + * @Description: 导出模板枚举 + * @Author: wangpeng + * @Date: 2022/12/2 11:53 + */ +public enum ExportEnum { + ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), + DEVICE_EXPORT("monitorDeviceInfo", "monitorDeviceInfo", "设备信息"); + + ExportEnum(String fileName, String sheetName, String description) { + this.fileName = fileName; + this.sheetName = sheetName; + this.description = description; + } + + /** + * 导出模板相对路径 + */ + private String fileName; + /** + * 下载文件名 + */ + private String sheetName; + /** + * 描述信息 + */ + private String description; + + public String getFileName() { + return fileName; + } + + public String getSheetName() { + return sheetName; + } + + public String getDescription() { + return description; + } +} diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java index 9875797..048826b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java @@ -20,11 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.List; import java.util.Objects; @@ -59,13 +57,17 @@ @RequestMapping(value = "/listPage") @ResponseBody public Object listPage(@RequestBody @Valid AlarmRecordRequest request) { - Page page = PageFactory.defaultPage(); List alarmRecordList = alarmRecordService.pageList(page, request); page.setRecords(alarmRecordList); return ResponseData.success(super.packForBT(page)); } + @PostMapping("/export") + public void export(@RequestBody @Valid AlarmRecordRequest request, HttpServletResponse response) { + alarmRecordService.export(request, response); + } + /** * 新增告警记录 */ diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java index 27085b5..bffd90c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java @@ -9,7 +9,6 @@ import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusPatrolLogDTO; -import com.casic.missiles.modular.system.model.BusPatrolLog; import com.casic.missiles.modular.system.service.IBusPatrolLogService; import org.apache.poi.ss.formula.functions.T; import org.springframework.validation.BindingResult; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java index 2bf3031..57c0198 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java @@ -1,6 +1,13 @@ package com.casic.missiles.modular.system.model; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -22,6 +29,11 @@ */ @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @TableName("alarm_record") public class AlarmRecord extends Model { @@ -51,11 +63,13 @@ * 报警内容 */ @TableField("ALARM_CONTENT") + @ExcelProperty(value = "报警内容", order = 4) private String alarmContent; /** * 报警数值 */ @TableField("ALARM_VALUE") + @ExcelProperty(value = "报警数值", order = 5) private Double alarmValue; /** * 报警阈值 @@ -66,16 +80,19 @@ * 报警方位 */ @TableField("ALARM_DIRECTION") + @ExcelProperty(value = "报警方位", order = 8) private Double alarmDirection; /** * 报警俯仰角 */ @TableField("ALARM_PITCH") + @ExcelProperty(value = "报警俯仰角", order = 9) private Double alarmPitch; /** * 报警时间 */ @TableField("ALARM_TIME") + @ExcelProperty(value = "报警时间", order = 10) private Date alarmTime; /** * 报警图片 @@ -111,6 +128,7 @@ * 预置点号 */ @TableField("SERIAL_NUM") + @ExcelProperty(value = "预置点名称", order = 3) private Integer serialNum; /** * 时间 @@ -121,18 +139,23 @@ private Date ts; @TableField(exist = false) + @ExcelProperty(value = "监控点位名称", order = 1) private String monitorName; @TableField(exist = false) + @ExcelProperty(value = "场站名称", order = 0) private String stationName; @TableField(exist = false) + @ExcelProperty(value = "报警类型", order = 6) private String alarmTypeName; @TableField(exist = false) + @ExcelProperty(value = "报警状态", order = 7) private String alarmStatusName; @TableField(exist = false) + @ExcelProperty(value = "巡航路线名称", order = 2) private String lineName; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java index e91d017..83fec02 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java @@ -6,6 +6,7 @@ import com.casic.missiles.modular.system.model.AlarmRecord; import com.baomidou.mybatisplus.extension.service.IService; +import javax.servlet.http.HttpServletResponse; import java.util.Date; import java.util.List; @@ -21,6 +22,8 @@ List pageList(Page page, AlarmRecordRequest request); + List export(AlarmRecordRequest request, HttpServletResponse response); + boolean cancel(AlarmCancelRequest alarmCancelRequest); AlarmRecordResponse detail(Long id); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java index f81e2a3..c38ccca 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java @@ -7,10 +7,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.StatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.system.dto.*; @@ -22,11 +25,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.weigeng.CommDoorUtil; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -41,18 +44,14 @@ * @since 2023-04-18 */ @Service +@RequiredArgsConstructor public class AlarmRecordServiceImpl extends ServiceImpl implements IAlarmRecordService { - @Autowired - private AbstractPermissionContext permissionContext; - // @Autowired -// private ICasicUserService casicUserService; - @Autowired - private AbstractDictService dictService; - - @Resource - private ICommonFileService commonFileService; + private final AbstractPermissionContext permissionContext; + private final AbstractDictService dictService; + private final ICommonFileService commonFileService; + private final IBaseExportService iBaseExportService; @Override public List pageList(Page page, AlarmRecordRequest request) { @@ -74,6 +73,31 @@ } @Override + public List export(AlarmRecordRequest request, HttpServletResponse response) { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + dataScope.setScopeName("DEPT_ID"); + List alarmRecordList = this.baseMapper.pageList(page, request, dataScope); + alarmRecordList.forEach(alarmRecord -> { + if (ObjectUtil.isNotEmpty(alarmRecord.getAlarmStatus())) { + alarmRecord.setAlarmStatusName(dictService.getDictNameByCode(DictEnum.ALARM_STATUS, alarmRecord.getAlarmStatus())); + } + if (ObjectUtil.isNotEmpty(alarmRecord.getAlarmType())) { + alarmRecord.setAlarmTypeName(dictService.getDictNameByCode(DictEnum.ALARM_TYPE, alarmRecord.getAlarmType())); + } + }); + try { + iBaseExportService.exportExcel(response, AlarmRecord.class, alarmRecordList, ExportEnum.ALARM_EXPORT.getSheetName()); + } catch (Exception e) { + log.error("报警记录导出异常,异常信息为{}", e); + } + return alarmRecordList; + } + + @Override public boolean cancel(AlarmCancelRequest alarmCancelRequest) { AlarmRecord alarmRecord = this.getById(alarmCancelRequest.getId()); if (null != alarmRecord) { @@ -163,9 +187,9 @@ alarmRecord.setAlarmType(alarmAIDTO.getAlarmType()); alarmRecord.setAlarmTime(DateUtil.parseDateTime(alarmAIDTO.getAlarmTime())); //保存照片 - if(ObjectUtil.isNotEmpty(alarmAIDTO.getPhoto()) && alarmAIDTO.getPhoto().startsWith("data:image")){ + if (ObjectUtil.isNotEmpty(alarmAIDTO.getPhoto()) && alarmAIDTO.getPhoto().startsWith("data:image")) { alarmRecord.setPhoto(commonFileService.saveFileBase64Image(alarmAIDTO.getPhoto())); - }else { + } else { throw new BusinessException(BusinessExceptionEnum.ALARM_BASE64_ERROR); } return this.save(alarmRecord); @@ -222,7 +246,7 @@ Object alarmCount = alarmTypeMap.get(dict.getCode()); AlarmTypeStatisticsVO alarmTypeStatisticsVO = new AlarmTypeStatisticsVO(); alarmTypeStatisticsVO.setType(dict.getName()); - alarmTypeStatisticsVO.setNum(ObjectUtils.isNotEmpty(alarmCount)? Integer.valueOf(String.valueOf(alarmCount)) : 0); + alarmTypeStatisticsVO.setNum(ObjectUtils.isNotEmpty(alarmCount) ? Integer.valueOf(String.valueOf(alarmCount)) : 0); alarmTypeStatisticsVOS.add(alarmTypeStatisticsVO); } ); diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusMonipoiInfoController.java b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusMonipoiInfoController.java index 35646ac..5e4144b 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusMonipoiInfoController.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusMonipoiInfoController.java @@ -20,6 +20,7 @@ import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Objects; @@ -54,6 +55,11 @@ return ResponseData.success(super.packForBT(busMonipoiInfoService.monitorListPage(page, monitorListDTO.getStationId(), monitorListDTO.getKeyword()))); } + @PostMapping("/export") + public void export(@RequestBody @Valid MonitorListDTO requestDTO, HttpServletResponse response) { + busMonipoiInfoService.export(requestDTO, response); + } + /** * 新增监测点/设备信息 */ diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java index 76500b7..6ec3c47 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java @@ -3,6 +3,14 @@ import java.io.Serializable; import java.util.Date; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -20,6 +28,11 @@ * @since 2023-04-18 */ @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @TableName("bus_monipoi_info") public class BusMonipoiInfo extends Model implements Serializable { @@ -31,9 +44,10 @@ @TableId("ID") private Long id; /** - * 场站名 + * 设备名称 */ @TableField("MONITOR_NAME") + @ExcelProperty(value = "设备名称", order = 1) private String monitorName; /** * 所属机构 @@ -42,6 +56,7 @@ private Long stationId; @TableField(exist = false) + @ExcelProperty(value = "场站名称", order = 0) private String stationName; /** * 精确位置信息 @@ -56,6 +71,7 @@ private String deviceType; @TableField(exist = false) + @ExcelProperty(value = "设备类型", order = 11) private String deviceTypeName; /** * 设备编号 @@ -66,46 +82,55 @@ * 设备IP */ @TableField("DEVICE_IP") + @ExcelProperty(value = "设备IP", order = 2) private String deviceIp; /** * 设备端口号 */ @TableField("DEVICE_PORT") + @ExcelProperty(value = "设备端口", order = 3) private String devicePort; /** * 设备登录用户 */ @TableField("DEVICE_USER") + @ExcelProperty(value = "设备登录用户", order = 4) private String deviceUser; /** * 设备登录密码 */ @TableField("DEVICE_PASSWORD") + @ExcelProperty(value = "设备登录密码", order = 5) private String devicePassword; /** * NVR IP */ @TableField("NVR_IP") + @ExcelProperty(value = "NVR IP", order = 6) private String nvrIp; /** * NVR端口 */ @TableField("NVR_PORT") + @ExcelProperty(value = "NVR 端口", order = 7) private String nvrPort; /** * NVR通道 */ @TableField("NVR_CHANNEL") + @ExcelProperty(value = "NVR 通道", order = 8) private String nvrChannel; /** * NVR账户 */ @TableField("NVR_USER") + @ExcelProperty(value = "NVR 用户名", order = 9) private String nvrUser; /** * NVR密码 */ @TableField("NVR_PASSWORD") + @ExcelProperty(value = "NVR 密码", order = 10) private String nvrPassword; /** * 开关IP @@ -140,6 +165,7 @@ private String deviceStatus; @TableField(exist = false) + @ExcelProperty(value = "设备状态", order = 12) private String deviceStatusName; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java new file mode 100644 index 0000000..d6dd6e8 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -0,0 +1,42 @@ +package com.casic.missiles.enums; + +/** + * @Description: 导出模板枚举 + * @Author: wangpeng + * @Date: 2022/12/2 11:53 + */ +public enum ExportEnum { + ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), + DEVICE_EXPORT("monitorDeviceInfo", "monitorDeviceInfo", "设备信息"); + + ExportEnum(String fileName, String sheetName, String description) { + this.fileName = fileName; + this.sheetName = sheetName; + this.description = description; + } + + /** + * 导出模板相对路径 + */ + private String fileName; + /** + * 下载文件名 + */ + private String sheetName; + /** + * 描述信息 + */ + private String description; + + public String getFileName() { + return fileName; + } + + public String getSheetName() { + return sheetName; + } + + public String getDescription() { + return description; + } +} diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java index 9875797..048826b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java @@ -20,11 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.List; import java.util.Objects; @@ -59,13 +57,17 @@ @RequestMapping(value = "/listPage") @ResponseBody public Object listPage(@RequestBody @Valid AlarmRecordRequest request) { - Page page = PageFactory.defaultPage(); List alarmRecordList = alarmRecordService.pageList(page, request); page.setRecords(alarmRecordList); return ResponseData.success(super.packForBT(page)); } + @PostMapping("/export") + public void export(@RequestBody @Valid AlarmRecordRequest request, HttpServletResponse response) { + alarmRecordService.export(request, response); + } + /** * 新增告警记录 */ diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java index 27085b5..bffd90c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java @@ -9,7 +9,6 @@ import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusPatrolLogDTO; -import com.casic.missiles.modular.system.model.BusPatrolLog; import com.casic.missiles.modular.system.service.IBusPatrolLogService; import org.apache.poi.ss.formula.functions.T; import org.springframework.validation.BindingResult; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java index 2bf3031..57c0198 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java @@ -1,6 +1,13 @@ package com.casic.missiles.modular.system.model; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -22,6 +29,11 @@ */ @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @TableName("alarm_record") public class AlarmRecord extends Model { @@ -51,11 +63,13 @@ * 报警内容 */ @TableField("ALARM_CONTENT") + @ExcelProperty(value = "报警内容", order = 4) private String alarmContent; /** * 报警数值 */ @TableField("ALARM_VALUE") + @ExcelProperty(value = "报警数值", order = 5) private Double alarmValue; /** * 报警阈值 @@ -66,16 +80,19 @@ * 报警方位 */ @TableField("ALARM_DIRECTION") + @ExcelProperty(value = "报警方位", order = 8) private Double alarmDirection; /** * 报警俯仰角 */ @TableField("ALARM_PITCH") + @ExcelProperty(value = "报警俯仰角", order = 9) private Double alarmPitch; /** * 报警时间 */ @TableField("ALARM_TIME") + @ExcelProperty(value = "报警时间", order = 10) private Date alarmTime; /** * 报警图片 @@ -111,6 +128,7 @@ * 预置点号 */ @TableField("SERIAL_NUM") + @ExcelProperty(value = "预置点名称", order = 3) private Integer serialNum; /** * 时间 @@ -121,18 +139,23 @@ private Date ts; @TableField(exist = false) + @ExcelProperty(value = "监控点位名称", order = 1) private String monitorName; @TableField(exist = false) + @ExcelProperty(value = "场站名称", order = 0) private String stationName; @TableField(exist = false) + @ExcelProperty(value = "报警类型", order = 6) private String alarmTypeName; @TableField(exist = false) + @ExcelProperty(value = "报警状态", order = 7) private String alarmStatusName; @TableField(exist = false) + @ExcelProperty(value = "巡航路线名称", order = 2) private String lineName; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java index e91d017..83fec02 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java @@ -6,6 +6,7 @@ import com.casic.missiles.modular.system.model.AlarmRecord; import com.baomidou.mybatisplus.extension.service.IService; +import javax.servlet.http.HttpServletResponse; import java.util.Date; import java.util.List; @@ -21,6 +22,8 @@ List pageList(Page page, AlarmRecordRequest request); + List export(AlarmRecordRequest request, HttpServletResponse response); + boolean cancel(AlarmCancelRequest alarmCancelRequest); AlarmRecordResponse detail(Long id); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java index f81e2a3..c38ccca 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java @@ -7,10 +7,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.StatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.system.dto.*; @@ -22,11 +25,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.weigeng.CommDoorUtil; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -41,18 +44,14 @@ * @since 2023-04-18 */ @Service +@RequiredArgsConstructor public class AlarmRecordServiceImpl extends ServiceImpl implements IAlarmRecordService { - @Autowired - private AbstractPermissionContext permissionContext; - // @Autowired -// private ICasicUserService casicUserService; - @Autowired - private AbstractDictService dictService; - - @Resource - private ICommonFileService commonFileService; + private final AbstractPermissionContext permissionContext; + private final AbstractDictService dictService; + private final ICommonFileService commonFileService; + private final IBaseExportService iBaseExportService; @Override public List pageList(Page page, AlarmRecordRequest request) { @@ -74,6 +73,31 @@ } @Override + public List export(AlarmRecordRequest request, HttpServletResponse response) { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + dataScope.setScopeName("DEPT_ID"); + List alarmRecordList = this.baseMapper.pageList(page, request, dataScope); + alarmRecordList.forEach(alarmRecord -> { + if (ObjectUtil.isNotEmpty(alarmRecord.getAlarmStatus())) { + alarmRecord.setAlarmStatusName(dictService.getDictNameByCode(DictEnum.ALARM_STATUS, alarmRecord.getAlarmStatus())); + } + if (ObjectUtil.isNotEmpty(alarmRecord.getAlarmType())) { + alarmRecord.setAlarmTypeName(dictService.getDictNameByCode(DictEnum.ALARM_TYPE, alarmRecord.getAlarmType())); + } + }); + try { + iBaseExportService.exportExcel(response, AlarmRecord.class, alarmRecordList, ExportEnum.ALARM_EXPORT.getSheetName()); + } catch (Exception e) { + log.error("报警记录导出异常,异常信息为{}", e); + } + return alarmRecordList; + } + + @Override public boolean cancel(AlarmCancelRequest alarmCancelRequest) { AlarmRecord alarmRecord = this.getById(alarmCancelRequest.getId()); if (null != alarmRecord) { @@ -163,9 +187,9 @@ alarmRecord.setAlarmType(alarmAIDTO.getAlarmType()); alarmRecord.setAlarmTime(DateUtil.parseDateTime(alarmAIDTO.getAlarmTime())); //保存照片 - if(ObjectUtil.isNotEmpty(alarmAIDTO.getPhoto()) && alarmAIDTO.getPhoto().startsWith("data:image")){ + if (ObjectUtil.isNotEmpty(alarmAIDTO.getPhoto()) && alarmAIDTO.getPhoto().startsWith("data:image")) { alarmRecord.setPhoto(commonFileService.saveFileBase64Image(alarmAIDTO.getPhoto())); - }else { + } else { throw new BusinessException(BusinessExceptionEnum.ALARM_BASE64_ERROR); } return this.save(alarmRecord); @@ -222,7 +246,7 @@ Object alarmCount = alarmTypeMap.get(dict.getCode()); AlarmTypeStatisticsVO alarmTypeStatisticsVO = new AlarmTypeStatisticsVO(); alarmTypeStatisticsVO.setType(dict.getName()); - alarmTypeStatisticsVO.setNum(ObjectUtils.isNotEmpty(alarmCount)? Integer.valueOf(String.valueOf(alarmCount)) : 0); + alarmTypeStatisticsVO.setNum(ObjectUtils.isNotEmpty(alarmCount) ? Integer.valueOf(String.valueOf(alarmCount)) : 0); alarmTypeStatisticsVOS.add(alarmTypeStatisticsVO); } ); diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusMonipoiInfoController.java b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusMonipoiInfoController.java index 35646ac..5e4144b 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusMonipoiInfoController.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusMonipoiInfoController.java @@ -20,6 +20,7 @@ import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Objects; @@ -54,6 +55,11 @@ return ResponseData.success(super.packForBT(busMonipoiInfoService.monitorListPage(page, monitorListDTO.getStationId(), monitorListDTO.getKeyword()))); } + @PostMapping("/export") + public void export(@RequestBody @Valid MonitorListDTO requestDTO, HttpServletResponse response) { + busMonipoiInfoService.export(requestDTO, response); + } + /** * 新增监测点/设备信息 */ diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java index 76500b7..6ec3c47 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java @@ -3,6 +3,14 @@ import java.io.Serializable; import java.util.Date; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -20,6 +28,11 @@ * @since 2023-04-18 */ @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @TableName("bus_monipoi_info") public class BusMonipoiInfo extends Model implements Serializable { @@ -31,9 +44,10 @@ @TableId("ID") private Long id; /** - * 场站名 + * 设备名称 */ @TableField("MONITOR_NAME") + @ExcelProperty(value = "设备名称", order = 1) private String monitorName; /** * 所属机构 @@ -42,6 +56,7 @@ private Long stationId; @TableField(exist = false) + @ExcelProperty(value = "场站名称", order = 0) private String stationName; /** * 精确位置信息 @@ -56,6 +71,7 @@ private String deviceType; @TableField(exist = false) + @ExcelProperty(value = "设备类型", order = 11) private String deviceTypeName; /** * 设备编号 @@ -66,46 +82,55 @@ * 设备IP */ @TableField("DEVICE_IP") + @ExcelProperty(value = "设备IP", order = 2) private String deviceIp; /** * 设备端口号 */ @TableField("DEVICE_PORT") + @ExcelProperty(value = "设备端口", order = 3) private String devicePort; /** * 设备登录用户 */ @TableField("DEVICE_USER") + @ExcelProperty(value = "设备登录用户", order = 4) private String deviceUser; /** * 设备登录密码 */ @TableField("DEVICE_PASSWORD") + @ExcelProperty(value = "设备登录密码", order = 5) private String devicePassword; /** * NVR IP */ @TableField("NVR_IP") + @ExcelProperty(value = "NVR IP", order = 6) private String nvrIp; /** * NVR端口 */ @TableField("NVR_PORT") + @ExcelProperty(value = "NVR 端口", order = 7) private String nvrPort; /** * NVR通道 */ @TableField("NVR_CHANNEL") + @ExcelProperty(value = "NVR 通道", order = 8) private String nvrChannel; /** * NVR账户 */ @TableField("NVR_USER") + @ExcelProperty(value = "NVR 用户名", order = 9) private String nvrUser; /** * NVR密码 */ @TableField("NVR_PASSWORD") + @ExcelProperty(value = "NVR 密码", order = 10) private String nvrPassword; /** * 开关IP @@ -140,6 +165,7 @@ private String deviceStatus; @TableField(exist = false) + @ExcelProperty(value = "设备状态", order = 12) private String deviceStatusName; diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java index 928f611..da5a1e3 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java @@ -3,11 +3,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.monitor.MonitorBaseInfo; +import com.casic.missiles.modular.system.dto.monitor.MonitorListDTO; import com.casic.missiles.modular.system.dto.monitor.MonitorOverviewMap; import com.casic.missiles.modular.system.dto.monitor.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; import com.baomidou.mybatisplus.extension.service.IService; +import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -22,9 +24,11 @@ List monitorList(Long stationId); - Page monitorListPage(Page page, Long stationId, String keyword)throws Exception; + Page monitorListPage(Page page, Long stationId, String keyword) throws Exception; - List AIlistPage( Long stationId, String keyword)throws Exception; + void export(MonitorListDTO monitorListDTO, HttpServletResponse response); + + List AIlistPage(Long stationId, String keyword) throws Exception; ResponseData addMonitor(BusMonipoiInfo busMonipoiInfo); @@ -40,11 +44,11 @@ BusMonipoiInfo selectByDeviceIp(String deviceIp); - BusMonipoiInfo selectByNvr(String nvrIp,String channel); + BusMonipoiInfo selectByNvr(String nvrIp, String channel); - void updateBusMonipoiInfo(String deviceIp,int lineNum); + void updateBusMonipoiInfo(String deviceIp, int lineNum); - boolean updateStatus(String deviceIp,String status); + boolean updateStatus(String deviceIp, String status); boolean updateStatus(Long monitorId,String status); diff --git a/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java new file mode 100644 index 0000000..d6dd6e8 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -0,0 +1,42 @@ +package com.casic.missiles.enums; + +/** + * @Description: 导出模板枚举 + * @Author: wangpeng + * @Date: 2022/12/2 11:53 + */ +public enum ExportEnum { + ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), + DEVICE_EXPORT("monitorDeviceInfo", "monitorDeviceInfo", "设备信息"); + + ExportEnum(String fileName, String sheetName, String description) { + this.fileName = fileName; + this.sheetName = sheetName; + this.description = description; + } + + /** + * 导出模板相对路径 + */ + private String fileName; + /** + * 下载文件名 + */ + private String sheetName; + /** + * 描述信息 + */ + private String description; + + public String getFileName() { + return fileName; + } + + public String getSheetName() { + return sheetName; + } + + public String getDescription() { + return description; + } +} diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java index 9875797..048826b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/AlarmRecordController.java @@ -20,11 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.List; import java.util.Objects; @@ -59,13 +57,17 @@ @RequestMapping(value = "/listPage") @ResponseBody public Object listPage(@RequestBody @Valid AlarmRecordRequest request) { - Page page = PageFactory.defaultPage(); List alarmRecordList = alarmRecordService.pageList(page, request); page.setRecords(alarmRecordList); return ResponseData.success(super.packForBT(page)); } + @PostMapping("/export") + public void export(@RequestBody @Valid AlarmRecordRequest request, HttpServletResponse response) { + alarmRecordService.export(request, response); + } + /** * 新增告警记录 */ diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java index 27085b5..bffd90c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java @@ -9,7 +9,6 @@ import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusPatrolLogDTO; -import com.casic.missiles.modular.system.model.BusPatrolLog; import com.casic.missiles.modular.system.service.IBusPatrolLogService; import org.apache.poi.ss.formula.functions.T; import org.springframework.validation.BindingResult; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java index 2bf3031..57c0198 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java @@ -1,6 +1,13 @@ package com.casic.missiles.modular.system.model; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -22,6 +29,11 @@ */ @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @TableName("alarm_record") public class AlarmRecord extends Model { @@ -51,11 +63,13 @@ * 报警内容 */ @TableField("ALARM_CONTENT") + @ExcelProperty(value = "报警内容", order = 4) private String alarmContent; /** * 报警数值 */ @TableField("ALARM_VALUE") + @ExcelProperty(value = "报警数值", order = 5) private Double alarmValue; /** * 报警阈值 @@ -66,16 +80,19 @@ * 报警方位 */ @TableField("ALARM_DIRECTION") + @ExcelProperty(value = "报警方位", order = 8) private Double alarmDirection; /** * 报警俯仰角 */ @TableField("ALARM_PITCH") + @ExcelProperty(value = "报警俯仰角", order = 9) private Double alarmPitch; /** * 报警时间 */ @TableField("ALARM_TIME") + @ExcelProperty(value = "报警时间", order = 10) private Date alarmTime; /** * 报警图片 @@ -111,6 +128,7 @@ * 预置点号 */ @TableField("SERIAL_NUM") + @ExcelProperty(value = "预置点名称", order = 3) private Integer serialNum; /** * 时间 @@ -121,18 +139,23 @@ private Date ts; @TableField(exist = false) + @ExcelProperty(value = "监控点位名称", order = 1) private String monitorName; @TableField(exist = false) + @ExcelProperty(value = "场站名称", order = 0) private String stationName; @TableField(exist = false) + @ExcelProperty(value = "报警类型", order = 6) private String alarmTypeName; @TableField(exist = false) + @ExcelProperty(value = "报警状态", order = 7) private String alarmStatusName; @TableField(exist = false) + @ExcelProperty(value = "巡航路线名称", order = 2) private String lineName; diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java index e91d017..83fec02 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/IAlarmRecordService.java @@ -6,6 +6,7 @@ import com.casic.missiles.modular.system.model.AlarmRecord; import com.baomidou.mybatisplus.extension.service.IService; +import javax.servlet.http.HttpServletResponse; import java.util.Date; import java.util.List; @@ -21,6 +22,8 @@ List pageList(Page page, AlarmRecordRequest request); + List export(AlarmRecordRequest request, HttpServletResponse response); + boolean cancel(AlarmCancelRequest alarmCancelRequest); AlarmRecordResponse detail(Long id); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java index f81e2a3..c38ccca 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/AlarmRecordServiceImpl.java @@ -7,10 +7,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.StatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.system.dto.*; @@ -22,11 +25,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.weigeng.CommDoorUtil; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -41,18 +44,14 @@ * @since 2023-04-18 */ @Service +@RequiredArgsConstructor public class AlarmRecordServiceImpl extends ServiceImpl implements IAlarmRecordService { - @Autowired - private AbstractPermissionContext permissionContext; - // @Autowired -// private ICasicUserService casicUserService; - @Autowired - private AbstractDictService dictService; - - @Resource - private ICommonFileService commonFileService; + private final AbstractPermissionContext permissionContext; + private final AbstractDictService dictService; + private final ICommonFileService commonFileService; + private final IBaseExportService iBaseExportService; @Override public List pageList(Page page, AlarmRecordRequest request) { @@ -74,6 +73,31 @@ } @Override + public List export(AlarmRecordRequest request, HttpServletResponse response) { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + dataScope.setScopeName("DEPT_ID"); + List alarmRecordList = this.baseMapper.pageList(page, request, dataScope); + alarmRecordList.forEach(alarmRecord -> { + if (ObjectUtil.isNotEmpty(alarmRecord.getAlarmStatus())) { + alarmRecord.setAlarmStatusName(dictService.getDictNameByCode(DictEnum.ALARM_STATUS, alarmRecord.getAlarmStatus())); + } + if (ObjectUtil.isNotEmpty(alarmRecord.getAlarmType())) { + alarmRecord.setAlarmTypeName(dictService.getDictNameByCode(DictEnum.ALARM_TYPE, alarmRecord.getAlarmType())); + } + }); + try { + iBaseExportService.exportExcel(response, AlarmRecord.class, alarmRecordList, ExportEnum.ALARM_EXPORT.getSheetName()); + } catch (Exception e) { + log.error("报警记录导出异常,异常信息为{}", e); + } + return alarmRecordList; + } + + @Override public boolean cancel(AlarmCancelRequest alarmCancelRequest) { AlarmRecord alarmRecord = this.getById(alarmCancelRequest.getId()); if (null != alarmRecord) { @@ -163,9 +187,9 @@ alarmRecord.setAlarmType(alarmAIDTO.getAlarmType()); alarmRecord.setAlarmTime(DateUtil.parseDateTime(alarmAIDTO.getAlarmTime())); //保存照片 - if(ObjectUtil.isNotEmpty(alarmAIDTO.getPhoto()) && alarmAIDTO.getPhoto().startsWith("data:image")){ + if (ObjectUtil.isNotEmpty(alarmAIDTO.getPhoto()) && alarmAIDTO.getPhoto().startsWith("data:image")) { alarmRecord.setPhoto(commonFileService.saveFileBase64Image(alarmAIDTO.getPhoto())); - }else { + } else { throw new BusinessException(BusinessExceptionEnum.ALARM_BASE64_ERROR); } return this.save(alarmRecord); @@ -222,7 +246,7 @@ Object alarmCount = alarmTypeMap.get(dict.getCode()); AlarmTypeStatisticsVO alarmTypeStatisticsVO = new AlarmTypeStatisticsVO(); alarmTypeStatisticsVO.setType(dict.getName()); - alarmTypeStatisticsVO.setNum(ObjectUtils.isNotEmpty(alarmCount)? Integer.valueOf(String.valueOf(alarmCount)) : 0); + alarmTypeStatisticsVO.setNum(ObjectUtils.isNotEmpty(alarmCount) ? Integer.valueOf(String.valueOf(alarmCount)) : 0); alarmTypeStatisticsVOS.add(alarmTypeStatisticsVO); } ); diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusMonipoiInfoController.java b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusMonipoiInfoController.java index 35646ac..5e4144b 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusMonipoiInfoController.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/controller/BusMonipoiInfoController.java @@ -20,6 +20,7 @@ import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Objects; @@ -54,6 +55,11 @@ return ResponseData.success(super.packForBT(busMonipoiInfoService.monitorListPage(page, monitorListDTO.getStationId(), monitorListDTO.getKeyword()))); } + @PostMapping("/export") + public void export(@RequestBody @Valid MonitorListDTO requestDTO, HttpServletResponse response) { + busMonipoiInfoService.export(requestDTO, response); + } + /** * 新增监测点/设备信息 */ diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java index 76500b7..6ec3c47 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/model/BusMonipoiInfo.java @@ -3,6 +3,14 @@ import java.io.Serializable; import java.util.Date; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -20,6 +28,11 @@ * @since 2023-04-18 */ @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @TableName("bus_monipoi_info") public class BusMonipoiInfo extends Model implements Serializable { @@ -31,9 +44,10 @@ @TableId("ID") private Long id; /** - * 场站名 + * 设备名称 */ @TableField("MONITOR_NAME") + @ExcelProperty(value = "设备名称", order = 1) private String monitorName; /** * 所属机构 @@ -42,6 +56,7 @@ private Long stationId; @TableField(exist = false) + @ExcelProperty(value = "场站名称", order = 0) private String stationName; /** * 精确位置信息 @@ -56,6 +71,7 @@ private String deviceType; @TableField(exist = false) + @ExcelProperty(value = "设备类型", order = 11) private String deviceTypeName; /** * 设备编号 @@ -66,46 +82,55 @@ * 设备IP */ @TableField("DEVICE_IP") + @ExcelProperty(value = "设备IP", order = 2) private String deviceIp; /** * 设备端口号 */ @TableField("DEVICE_PORT") + @ExcelProperty(value = "设备端口", order = 3) private String devicePort; /** * 设备登录用户 */ @TableField("DEVICE_USER") + @ExcelProperty(value = "设备登录用户", order = 4) private String deviceUser; /** * 设备登录密码 */ @TableField("DEVICE_PASSWORD") + @ExcelProperty(value = "设备登录密码", order = 5) private String devicePassword; /** * NVR IP */ @TableField("NVR_IP") + @ExcelProperty(value = "NVR IP", order = 6) private String nvrIp; /** * NVR端口 */ @TableField("NVR_PORT") + @ExcelProperty(value = "NVR 端口", order = 7) private String nvrPort; /** * NVR通道 */ @TableField("NVR_CHANNEL") + @ExcelProperty(value = "NVR 通道", order = 8) private String nvrChannel; /** * NVR账户 */ @TableField("NVR_USER") + @ExcelProperty(value = "NVR 用户名", order = 9) private String nvrUser; /** * NVR密码 */ @TableField("NVR_PASSWORD") + @ExcelProperty(value = "NVR 密码", order = 10) private String nvrPassword; /** * 开关IP @@ -140,6 +165,7 @@ private String deviceStatus; @TableField(exist = false) + @ExcelProperty(value = "设备状态", order = 12) private String deviceStatusName; diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java index 928f611..da5a1e3 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/IBusMonipoiInfoService.java @@ -3,11 +3,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.monitor.MonitorBaseInfo; +import com.casic.missiles.modular.system.dto.monitor.MonitorListDTO; import com.casic.missiles.modular.system.dto.monitor.MonitorOverviewMap; import com.casic.missiles.modular.system.dto.monitor.MonitorPointList; import com.casic.missiles.modular.system.model.BusMonipoiInfo; import com.baomidou.mybatisplus.extension.service.IService; +import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -22,9 +24,11 @@ List monitorList(Long stationId); - Page monitorListPage(Page page, Long stationId, String keyword)throws Exception; + Page monitorListPage(Page page, Long stationId, String keyword) throws Exception; - List AIlistPage( Long stationId, String keyword)throws Exception; + void export(MonitorListDTO monitorListDTO, HttpServletResponse response); + + List AIlistPage(Long stationId, String keyword) throws Exception; ResponseData addMonitor(BusMonipoiInfo busMonipoiInfo); @@ -40,11 +44,11 @@ BusMonipoiInfo selectByDeviceIp(String deviceIp); - BusMonipoiInfo selectByNvr(String nvrIp,String channel); + BusMonipoiInfo selectByNvr(String nvrIp, String channel); - void updateBusMonipoiInfo(String deviceIp,int lineNum); + void updateBusMonipoiInfo(String deviceIp, int lineNum); - boolean updateStatus(String deviceIp,String status); + boolean updateStatus(String deviceIp, String status); boolean updateStatus(Long monitorId,String status); diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java index ed4fe52..06003d6 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java @@ -7,24 +7,26 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.DictEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dao.BusMonipoiInfoMapper; -import com.casic.missiles.modular.system.dto.monitor.BusMonipoiInfoResponse; -import com.casic.missiles.modular.system.dto.monitor.MonitorBaseInfo; -import com.casic.missiles.modular.system.dto.monitor.MonitorOverviewMap; -import com.casic.missiles.modular.system.dto.monitor.MonitorPointList; +import com.casic.missiles.modular.system.dto.monitor.*; import com.casic.missiles.modular.system.model.BusMonipoiInfo; import com.casic.missiles.modular.system.service.IBusMonipoiInfoService; import com.casic.missiles.util.DictCodeUtils; import lombok.AllArgsConstructor; +import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -36,13 +38,12 @@ * @since 2023-04-18 */ @Service -@AllArgsConstructor +@RequiredArgsConstructor public class BusMonipoiInfoServiceImpl extends ServiceImpl implements IBusMonipoiInfoService { private final AbstractPermissionContext permissionContext; - - @Autowired - private AbstractDictService dictService; + private final AbstractDictService dictService; + private final IBaseExportService iBaseExportService; @Override public List monitorList(Long stationId) { @@ -64,10 +65,29 @@ return page; } + @Override + public void export(MonitorListDTO monitorListDTO, HttpServletResponse response) { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + dataScope.setScopeName("DEPT_ID"); + List monitorPointLists = this.baseMapper.monitorListPage(page, dataScope, monitorListDTO.getStationId(), monitorListDTO.getKeyword()); + try { + for (BusMonipoiInfo busMonipoiInfo : monitorPointLists) { + DictCodeUtils.convertDictCodeToName(busMonipoiInfo); + } + iBaseExportService.exportExcel(response, BusMonipoiInfo.class, monitorPointLists, ExportEnum.DEVICE_EXPORT.getSheetName()); + } catch (Exception e) { + log.error("报警记录导出异常,异常信息为{}", e); + } + } + @Override public List AIlistPage(Long stationId, String keyword) throws Exception { - List busMonipoiInfoList = this.baseMapper.AIlistPage( stationId, keyword); + List busMonipoiInfoList = this.baseMapper.AIlistPage(stationId, keyword); for (BusMonipoiInfo busMonipoiInfo : busMonipoiInfoList) { DictCodeUtils.convertDictCodeToName(busMonipoiInfo); } @@ -179,9 +199,9 @@ @Override public boolean updateDeviceStatus(String status) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); + UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("VALID", "0"); - updateWrapper.set("DEVICE_STATUS",status); + updateWrapper.set("DEVICE_STATUS", status); return this.update(updateWrapper); }