diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/TransformerParam.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/TransformerParam.java index f9b9ca228..81f985505 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/TransformerParam.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/TransformerParam.java @@ -11,31 +11,35 @@ import lombok.Data; */ @Data public class TransformerParam { - /** - * 变压器id - */ + @ApiModelProperty(value = "变压器id") private String id; - /** - * 变压器名称 - */ @ApiModelProperty(value = "变压器名称") private String name; - /** - * 变压器类型 - */ + @ApiModelProperty(value = "变电站ID") + private String powerId; + + @ApiModelProperty(value = "变电站名称") + private String powerName; + + @ApiModelProperty(value = "所属部门id") + private String orgId; + + @ApiModelProperty(value = "所属部门名称") + private String orgName; + @ApiModelProperty(value = "变压器类型") private String type; @ApiModelProperty(value = "装机容量") - private String iCapacity; + private Float iCapacity; @ApiModelProperty(value = "额定容量") - private String rCapacity; + private Float rCapacity; - @ApiModelProperty(value = "额定电压") + @ApiModelProperty(value = "额定电压(字典)") private String voltage; @ApiModelProperty(value = "额定功率") diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Transformer.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Transformer.java index 5de8ef512..d8024e61c 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Transformer.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Transformer.java @@ -1,6 +1,7 @@ package com.njcn.device.pms.pojo.po; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.njcn.db.bo.BaseEntity; @@ -25,33 +26,35 @@ public class Transformer extends BaseEntity { private static final long serialVersionUID = 1L; - /** - * 变压器id - */ @ApiModelProperty(value = "变压器id") - @TableId(value = "id", type = IdType.ASSIGN_ID) + @TableId(value = "Id", type = IdType.ASSIGN_ID) private String id; - /** - * 变压器名称 - */ @ApiModelProperty(value = "变压器名称") private String name; - /** - * 变压器类型 - */ + @ApiModelProperty(value = "变电站ID") + private String powerId; + + @ApiModelProperty(value = "变电站名称") + private String powerName; + + @ApiModelProperty(value = "所属部门id") + private String orgId; + + @ApiModelProperty(value = "所属部门名称") + private String orgName; + @ApiModelProperty(value = "变压器类型") private String type; - @ApiModelProperty(value = "装机容量") - private String iCapacity; + private Float iCapacity; @ApiModelProperty(value = "额定容量") - private String rCapacity; + private Float rCapacity; - @ApiModelProperty(value = "额定电压") + @ApiModelProperty(value = "额定电压(字典)") private String voltage; @ApiModelProperty(value = "额定功率") @@ -60,11 +63,8 @@ public class Transformer extends BaseEntity { @ApiModelProperty(value = "阻抗电压") private String impedanceVoltage; - /** - * 数据状态:0-删除;1-正常; - */ - @ApiModelProperty(value = "数据状态:0-删除;1-正常;") + @ApiModelProperty(value = "数据状态:0-删除;1-正常; ") + @TableField("Status") private Integer status; - } diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/dto/excel/TerminalExcel.java b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/dto/excel/TerminalExcel.java index 9005afe99..88cf49ba3 100644 --- a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/dto/excel/TerminalExcel.java +++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/dto/excel/TerminalExcel.java @@ -50,9 +50,9 @@ public class TerminalExcel implements Serializable { @Excel(name = "送检单位") @NotBlank(message = "送检单位不为空") - private String inspectionName; + private String inspectionUnit; - @Excel(name = "检测时间",format = "yyyy-MM-dd", width = 15) + @Excel(name = "检测时间(yyyy-MM-dd)",format = "yyyy-MM-dd", width = 30) @NotNull(message = "检测时间不为空") private LocalDate inspectionTime; diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/StrategyParam.java b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/StrategyParam.java index 7fa217b1c..0f4c9c7c3 100644 --- a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/StrategyParam.java +++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/StrategyParam.java @@ -79,10 +79,6 @@ public class StrategyParam { @NotEmpty(message = "指标类型集合不能为空") private List indicatorTypes; } - @Data - public static class BindMonitorParam { - - } @Data public static class StrategyUpdateParam { @@ -121,6 +117,7 @@ public class StrategyParam { private Integer state; } + @Data public static class MonitorTree { @@ -131,10 +128,10 @@ public class StrategyParam { private String name; @ApiModelProperty("变电站信息") - private List childPower ; + private List childPower; @ApiModelProperty("子节点详细信息") - private List children ; + private List children; } @Data @@ -146,7 +143,7 @@ public class StrategyParam { private String name; @ApiModelProperty("监测点信息") - private List childMonitor ; + private List childMonitor; } } diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/TerminalParam.java b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/TerminalParam.java index ae9e4ed1c..2479b95db 100644 --- a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/TerminalParam.java +++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/TerminalParam.java @@ -1,11 +1,16 @@ package com.njcn.process.pojo.param; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.annotation.TableField; import com.njcn.common.pojo.constant.PatternRegex; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.springframework.web.multipart.MultipartFile; import javax.validation.constraints.Pattern; +import java.sql.Struct; import java.time.LocalDate; +import java.util.List; /** * <功能描述> @@ -16,7 +21,6 @@ import java.time.LocalDate; @Data public class TerminalParam { - @ApiModelProperty("开始时间") @Pattern(regexp = PatternRegex.TIME_FORMAT, message = "时间格式错误") private String startTime; @@ -29,11 +33,17 @@ public class TerminalParam { private String id; public String getStartTime() { - return startTime + " 00:00:00"; + if (StrUtil.isNotBlank(this.startTime)) { + return startTime + " 00:00:00"; + } + return startTime; } public String getEndTime() { - return endTime + " 23:59:59"; + if (StrUtil.isNotBlank(this.endTime)) { + return endTime + " 23:59:59"; + } + return endTime; } @Data @@ -48,18 +58,53 @@ public class TerminalParam { @ApiModelProperty("终端名称") private String name; + @ApiModelProperty(value = "检测结果(0:未开展 1:已开展)") + private Integer testResults; + + @ApiModelProperty(value = "生产厂家(字典)") + private List manufacture; + @ApiModelProperty(value = "是否周期检测列表") private Integer type; } @Data - public static class TerminalCycleParam { - - @ApiModelProperty("单位id") + public static class TerminalInsertParam { + @ApiModelProperty(value = "终端编号") private String id; - @ApiModelProperty(value = "检测结果") - private String testResults; + @ApiModelProperty(value = "终端名称") + private String name; + + @ApiModelProperty(value = "组织机构名称") + private String orgName; + + @ApiModelProperty(value = "组织机构ID(外键)") + private String orgNo; + + @ApiModelProperty(value = "生产厂家") + private String manufacture; + + @ApiModelProperty(value = "安装位置") + private String installPlace; + + @ApiModelProperty(value = "检测时间") + private String inspectionTime; + + @ApiModelProperty(value = "送检单位") + private String inspectionUnit; + + @ApiModelProperty(value = "原始数据报告") + private String originalReport; +// @ApiModelProperty(value = "检测结果") +// private String testResults; +// +// +// @ApiModelProperty(value = "下次检测时间") +// private LocalDate nextInspectionTime; +// +// @ApiModelProperty(value = "检测报告") +// private String inspectionReport; } @@ -75,7 +120,7 @@ public class TerminalParam { private String orgName; @ApiModelProperty(value = "组织机构ID(外键)") - private String orgId; + private String orgNo; @ApiModelProperty(value = "生产厂家") private String manufacture; @@ -83,24 +128,24 @@ public class TerminalParam { @ApiModelProperty(value = "安装位置") private String installPlace; - @ApiModelProperty(value = "送检单位") - private String inspectionName; - - @ApiModelProperty(value = "检测结果") - private String testResults; - @ApiModelProperty(value = "检测时间") - private LocalDate inspectionTime; + private String inspectionTime; - @ApiModelProperty(value = "下次检测时间") - private LocalDate nextInspectionTime; - - @ApiModelProperty(value = "检测报告") - private String inspectionReport; + @ApiModelProperty(value = "送检单位") + private String inspectionUnit; @ApiModelProperty(value = "原始数据报告") private String originalReport; } + @Data + public static class DownloadParam { + + @ApiModelProperty(value = "终端id") + private String id; + + @ApiModelProperty(value = "(0:原始数据报告 1:检测报告)") + private Integer type; + } } diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/PmsTerminalDetection.java b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/PmsTerminalDetection.java index 9586ed582..4ad032ad3 100644 --- a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/PmsTerminalDetection.java +++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/PmsTerminalDetection.java @@ -6,6 +6,8 @@ import java.time.LocalDate; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; import java.io.Serializable; + +import com.njcn.db.bo.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -23,7 +25,7 @@ import lombok.EqualsAndHashCode; @EqualsAndHashCode(callSuper = false) @TableName("pms_terminal_detection") @ApiModel(value="PmsTerminalDetection对象", description="") -public class PmsTerminalDetection implements Serializable { +public class PmsTerminalDetection extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; @@ -51,8 +53,8 @@ public class PmsTerminalDetection implements Serializable { private String installPlace; @ApiModelProperty(value = "送检单位") - @TableField("inspection_Name") - private String inspectionName; + @TableField("inspection_Unit") + private String inspectionUnit; @ApiModelProperty(value = "检测结果(0:未开展 1:已开展)") private Integer testResults; @@ -65,10 +67,18 @@ public class PmsTerminalDetection implements Serializable { @TableField("next_inspection_Time") private LocalDate nextInspectionTime; + @ApiModelProperty(value = "检测报告文件名称") + @TableField("inspection_Name") + private String inspectionName; + @ApiModelProperty(value = "检测报告") @TableField("inspection_Report") private String inspectionReport; + @ApiModelProperty(value = "原始数据报告文件名称") + @TableField("original_Name") + private String originalName; + @ApiModelProperty(value = "原始数据报告") @TableField("original_Report") private String originalReport; diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/ThsWarnStrategy.java b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/ThsWarnStrategy.java index 1c594a784..de5b95df5 100644 --- a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/ThsWarnStrategy.java +++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/ThsWarnStrategy.java @@ -1,10 +1,10 @@ package com.njcn.process.pojo.po; -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.*; + import java.io.Serializable; + +import com.njcn.db.bo.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -22,7 +22,7 @@ import lombok.EqualsAndHashCode; @EqualsAndHashCode(callSuper = false) @TableName("ths_warn_strategy") @ApiModel(value="ThsWarnStrategy对象", description="") -public class ThsWarnStrategy implements Serializable { +public class ThsWarnStrategy extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; @@ -47,6 +47,7 @@ public class ThsWarnStrategy implements Serializable { @ApiModelProperty(value = "0.删除 1.正常") @TableField("State") + @TableLogic private Integer state; @TableField("Create_By") diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/vo/TerminalVO.java b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/vo/TerminalVO.java index 1000703c1..c0d30ff6d 100644 --- a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/vo/TerminalVO.java +++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/vo/TerminalVO.java @@ -1,10 +1,12 @@ package com.njcn.process.pojo.vo; +import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.time.LocalDate; +import java.util.List; /** * <功能描述> @@ -27,7 +29,7 @@ public class TerminalVO implements Serializable { private String orgName; @ApiModelProperty(value = "组织机构编号") - private String orgNO; + private String orgNo; @ApiModelProperty(value = "生产厂家") private String manufacture; @@ -36,7 +38,7 @@ public class TerminalVO implements Serializable { private String installPlace; @ApiModelProperty(value = "送检单位") - private String inspectionName; + private String inspectionUnit; @ApiModelProperty(value = "检测结果") private String testResults; @@ -47,15 +49,31 @@ public class TerminalVO implements Serializable { @ApiModelProperty(value = "下次检测时间") private LocalDate nextInspectionTime; + @ApiModelProperty(value = "检测报告文件名称") + private String inspectionName; + @ApiModelProperty(value = "检测报告") private String inspectionReport; + @ApiModelProperty(value = "原始数据报告文件名称") + private String originalName; + @ApiModelProperty(value = "原始数据报告") private String originalReport; @Data public static class TerminalStatistics implements Serializable { + @ApiModelProperty(value = "单位统计") + List orgStatistics; + + @ApiModelProperty(value = "年度统计") + List dateStatistics; + + } + + @Data + public static class OrgStatistics implements Serializable { @ApiModelProperty(value = "单位id") private String orgNo; @@ -65,4 +83,30 @@ public class TerminalVO implements Serializable { @ApiModelProperty(value = "统计数量") private Integer count; } + + @Data + public static class DateStatistics implements Serializable { + + @ApiModelProperty(value = "时间") + private String statisticsDate; + + @ApiModelProperty(value = "统计数量") + private Integer count; + } + @Data + public static class ResultsStatistics implements Serializable { + + @ApiModelProperty(value = "单位名称") + private String orgName; + + @ApiModelProperty(value = "未展开") + private Integer notExpanded; + + @ApiModelProperty(value = "已展开") + private Integer expanded; + + + } + + } diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/PmsTerminalDetectionController.java b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/PmsTerminalDetectionController.java index 4a21aa572..fe4091a5c 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/PmsTerminalDetectionController.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/PmsTerminalDetectionController.java @@ -3,6 +3,7 @@ package com.njcn.process.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; @@ -15,10 +16,13 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; +import org.springframework.core.io.InputStreamResource; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.List; /** @@ -40,56 +44,99 @@ public class PmsTerminalDetectionController extends BaseController { @PostMapping("/getTerminalPage") @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiOperation("终端检测监督管理分页查询") - public HttpResult> getPage(@RequestBody TerminalParam.TerminalPageParam param) { + public HttpResult> getTerminalPage(@RequestBody TerminalParam.TerminalPageParam param) { String methodDescribe = getMethodDescribe("getTerminalPage"); Page page = pmsTerminalDetectionService.terminalPage(param); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe); } - @ApiOperation(value = "导出终端入网检测录入模板") - @OperateInfo(info = LogEnum.BUSINESS_COMMON) - @GetMapping("/export") - public void export(HttpServletResponse response) { - pmsTerminalDetectionService.exportTemplate(response); - } - - - - @PostMapping(value = "/importTerminal") - @ApiOperation("excel批量导入终端入网检测录入") - @ResponseBody - public HttpResult importTerminalBase(@ApiParam(value = "文件", required = true) @RequestPart("file") MultipartFile file, HttpServletResponse response) { - String methodDescribe = getMethodDescribe("importTerminal"); - pmsTerminalDetectionService.batchTerminal(file, response); - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); - } - - @ResponseBody - @ApiOperation("批量导入检测报告") - @PostMapping(value = "/importReport") - public HttpResult importReport(@ApiParam(value = "文件", required = true) @RequestPart("files") MultipartFile[] files, HttpServletResponse response) { - String methodDescribe = getMethodDescribe("importReport"); - pmsTerminalDetectionService.importReport(files, response); - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); - } - @PostMapping("/getStatistics") @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiOperation("终端入网检测台账统计") - public HttpResult> getStatistics(@RequestBody TerminalParam param) { + public HttpResult getStatistics(@RequestBody TerminalParam param) { String methodDescribe = getMethodDescribe("getStatistics"); - List list = pmsTerminalDetectionService.getStatistics(param); + TerminalVO.TerminalStatistics list = pmsTerminalDetectionService.getStatistics(param); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); } @PostMapping("/getCycleStatistics") @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiOperation("周期检测统计") - public HttpResult> getCycleStatistics(@RequestBody TerminalParam.TerminalCycleParam param) { + public HttpResult getCycleStatistics(@RequestBody TerminalParam param) { String methodDescribe = getMethodDescribe("getCycleStatistics"); - List list = pmsTerminalDetectionService.getCycleStatistics(param); + TerminalVO.TerminalStatistics list = pmsTerminalDetectionService.getCycleStatistics(param); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); } + @PostMapping("/insertTerminal") + @ApiOperation(value = "终端检测监督单条新增") + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD) + public HttpResult insertTerminal(@RequestBody TerminalParam.TerminalInsertParam param) { + String methodDescribe = getMethodDescribe("insertTerminal"); + Boolean flag = pmsTerminalDetectionService.insertTerminal(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); + } + + @PostMapping(value = "/batchTerminal") + @ApiOperation("批量导入终端入网检测录入") + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD) + public HttpResult batchTerminal(@ApiParam(value = "文件", required = true) @RequestPart("file") MultipartFile file, HttpServletResponse response) { + String methodDescribe = getMethodDescribe("batchTerminal"); + pmsTerminalDetectionService.batchTerminal(file, response); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + @PostMapping("/updateTerminal") + @ApiOperation(value = "终端检测监督修改") + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE) + public HttpResult updateTerminal(@RequestBody @Validated TerminalParam.TerminalUpdateParam param) { + String methodDescribe = getMethodDescribe("updateTerminal"); + Boolean flag = pmsTerminalDetectionService.updateTerminal(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); + } + + @PostMapping("/delTerminal") + @ApiOperation(value = "终端检测监督删除") + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.DELETE) + public HttpResult delTerminal(@RequestBody List ids) { + String methodDescribe = getMethodDescribe("delTerminal"); + Boolean flag = pmsTerminalDetectionService.delTerminal(ids); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); + } + + @ApiOperation(value = "导出终端入网检测录入模板") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @GetMapping("/export") + public InputStreamResource export() throws IOException { + return pmsTerminalDetectionService.exportTemplate(); + } + + + @ApiOperation("批量导入检测报告") + @PostMapping(value = "/importReport") + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD) + public HttpResult importReport(@ApiParam(value = "文件", required = true) + @RequestPart("files") MultipartFile[] files, + @RequestParam("type") Integer type, HttpServletResponse response) { + String methodDescribe = getMethodDescribe("importReport"); + pmsTerminalDetectionService.importReport(files,type, response); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + @ApiOperation("检测报告下载") + @PostMapping(value = "/reportDownload") + public InputStreamResource reportDownload(@RequestBody TerminalParam.DownloadParam param) throws IOException { + InputStreamResource minIoUploadResDTO = pmsTerminalDetectionService.reportDownload(param); + return minIoUploadResDTO; + } + + + @ApiOperation("文件上传") + @PostMapping(value = "/upload") + public HttpResult upload(MultipartFile file) { + String methodDescribe = getMethodDescribe("upload"); + String url = pmsTerminalDetectionService.url(file); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, url, methodDescribe); + } } diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/ThsWarnStrategyController.java b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/ThsWarnStrategyController.java index 7e21d26ac..5aa175b1b 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/ThsWarnStrategyController.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/ThsWarnStrategyController.java @@ -3,11 +3,13 @@ package com.njcn.process.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; import com.njcn.process.pojo.param.StrategyParam; +import com.njcn.process.pojo.po.ThsDeptAlarm; import com.njcn.process.pojo.po.ThsWarnStrategy; import com.njcn.process.service.ThsWarnStrategyService; import com.njcn.web.controller.BaseController; @@ -18,13 +20,12 @@ import org.apache.ibatis.annotations.Param; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; import java.util.List; /** *

- * 前端控制器 + * 前端控制器 *

* * @author wr @@ -32,15 +33,15 @@ import java.util.List; */ @RestController @RequestMapping("/process/thsWarnStrategy") -@Api(tags = "(预警单-告警单)策略") +@Api(tags = "预警单策略|告警单策略") @RequiredArgsConstructor public class ThsWarnStrategyController extends BaseController { private final ThsWarnStrategyService thsWarnStrategyService; @PostMapping("/getStrategyPage") - @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiOperation("预警单/告警单策略分页查询") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) public HttpResult> getStrategyPage(@RequestBody @Validated StrategyParam.StrategyPageParam param) { String methodDescribe = getMethodDescribe("getStrategyPage"); Page page = thsWarnStrategyService.strategyPage(param); @@ -49,8 +50,8 @@ public class ThsWarnStrategyController extends BaseController { @PostMapping("/insertStrategy") @ApiOperation(value = "预警单/告警单单条新增") - @OperateInfo(info = LogEnum.BUSINESS_COMMON) - public HttpResult insertStrategy(@RequestBody @Validated StrategyParam.StrategyInsertParam param) { + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD) + public HttpResult insertStrategy(@RequestBody @Validated StrategyParam.StrategyInsertParam param) { String methodDescribe = getMethodDescribe("insertStrategy"); Boolean flag = thsWarnStrategyService.insertStrategy(param); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); @@ -58,8 +59,8 @@ public class ThsWarnStrategyController extends BaseController { @PostMapping("/bindStrategy") @ApiOperation(value = "预警单/告警单信息绑定") - @OperateInfo(info = LogEnum.BUSINESS_COMMON) - public HttpResult bindStrategy(@RequestBody @Validated StrategyParam.BindParam param) { + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD) + public HttpResult bindStrategy(@RequestBody @Validated StrategyParam.BindParam param) { String methodDescribe = getMethodDescribe("bindStrategy"); Boolean flag = thsWarnStrategyService.bindStrategy(param); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); @@ -68,7 +69,7 @@ public class ThsWarnStrategyController extends BaseController { @PostMapping("/getUpdateStrategy") @ApiOperation(value = "预警单/告警单修改详细查询") @OperateInfo(info = LogEnum.BUSINESS_COMMON) - public HttpResult getUpdateStrategy(@RequestParam("id") String id) { + public HttpResult getUpdateStrategy(@RequestParam("id") String id) { String methodDescribe = getMethodDescribe("getUpdateStrategy"); StrategyParam.StrategyUpdateParam updateStrategy = thsWarnStrategyService.getUpdateStrategy(id); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, updateStrategy, methodDescribe); @@ -76,8 +77,8 @@ public class ThsWarnStrategyController extends BaseController { @PostMapping("/updateStrategy") @ApiOperation(value = "预警单/告警单修改") - @OperateInfo(info = LogEnum.BUSINESS_COMMON) - public HttpResult updateStrategy(@RequestBody @Validated StrategyParam.StrategyUpdateParam param) { + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE) + public HttpResult updateStrategy(@RequestBody @Validated StrategyParam.StrategyUpdateParam param) { String methodDescribe = getMethodDescribe("updateStrategy"); Boolean flag = thsWarnStrategyService.updateStrategy(param); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); @@ -85,8 +86,8 @@ public class ThsWarnStrategyController extends BaseController { @PostMapping("/updateStrategyState") @ApiOperation(value = "预警单/告警单修改状态") - @OperateInfo(info = LogEnum.BUSINESS_COMMON) - public HttpResult updateStrategyState(@RequestBody @Validated StrategyParam.StrategyStateParam param) { + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE) + public HttpResult updateStrategyState(@RequestBody @Validated StrategyParam.StrategyStateParam param) { String methodDescribe = getMethodDescribe("updateStrategyState"); Boolean flag = thsWarnStrategyService.updateStrategyState(param); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); @@ -95,12 +96,29 @@ public class ThsWarnStrategyController extends BaseController { @PostMapping("/getMonitor") @ApiOperation(value = "监测点查询接口") @OperateInfo(info = LogEnum.BUSINESS_COMMON) - public HttpResult> getMonitor(@Param("monitorTag") String monitorTag,@Param("orgId") String orgId) { + public HttpResult> getMonitor(@Param("monitorTag") String monitorTag, @Param("orgId") String orgId) { String methodDescribe = getMethodDescribe("getMonitor"); List monitor = thsWarnStrategyService.getMonitor(monitorTag, orgId); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, monitor, methodDescribe); } + @PostMapping("/bindMonitor") + @ApiOperation(value = "预警单/告警单监测点绑定") + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD) + public HttpResult bindMonitor(@RequestBody List param) { + String methodDescribe = getMethodDescribe("bindMonitor"); + Boolean flag = thsWarnStrategyService.bindMonitor(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); + } + + @PostMapping("/delStrategy") + @ApiOperation(value = "预警单/告警单信息删除") + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD) + public HttpResult bindStrategy(@RequestBody List ids) { + String methodDescribe = getMethodDescribe("delStrategy"); + Boolean flag = thsWarnStrategyService.delStrategy(ids); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); + } } diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/PmsTerminalDetectionMapper.java b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/PmsTerminalDetectionMapper.java index 709935070..700bb2c7a 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/PmsTerminalDetectionMapper.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/PmsTerminalDetectionMapper.java @@ -10,7 +10,7 @@ import java.util.List; /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author wr @@ -19,14 +19,25 @@ import java.util.List; public interface PmsTerminalDetectionMapper extends BaseMapper { /*** - * 终端入网检测台账统计 + * 单位-终端入网检测台账统计 * @author wr * @date 2023-02-28 11:14 * @param param * @param ids * @return List */ - List selectStatistics(@Param("param") TerminalParam param, + List selectStatistics(@Param("param") TerminalParam param, + @Param("ids") List ids); + + /*** + * 年度-终端入网检测台账统计 + * @author wr + * @date 2023-02-28 11:14 + * @param param + * @param ids + * @return List + */ + List selectDateStatistics(@Param("param") TerminalParam param, @Param("ids") List ids); /*** @@ -37,6 +48,17 @@ public interface PmsTerminalDetectionMapper extends BaseMapper */ - List selectCycleStatistics(@Param("param") TerminalParam.TerminalCycleParam param, - @Param("ids") List ids); + List selectCycleStatistics(@Param("param") TerminalParam param, + @Param("ids") List ids); + + /*** + * 已开展/未开展-周期检测统计 + * @author wr + * @date 2023-02-28 11:14 + * @param param + * @param ids + * @return List + */ + List selectResultsCycleStatistics(@Param("param") TerminalParam param, + @Param("ids") List ids); } diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/mapping/PmsTerminalDetectionMapper.xml b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/mapping/PmsTerminalDetectionMapper.xml index b6270d03d..d10d36ba1 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/mapping/PmsTerminalDetectionMapper.xml +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/mapping/PmsTerminalDetectionMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - SELECT - Org_No, - count( id ) AS count + Org_No, + count( id ) AS count FROM - pms_terminal_detection + pms_terminal_detection AND org_no IN @@ -36,16 +36,16 @@ - AND data_date >= #{param.startTime} + AND Create_Time >= #{param.startTime} - AND data_date <= #{param.endTime} + AND Create_Time <= #{param.endTime} GROUP BY - Org_No + Org_No - SELECT Org_No, count( id ) AS count @@ -59,12 +59,73 @@ #{item} - - AND Test_results = #{param.testResults} + + AND Create_Time >= #{param.startTime} + + + AND Create_Time <= #{param.endTime} GROUP BY Org_No + + diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/PmsTerminalDetectionService.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/PmsTerminalDetectionService.java index 8e8ab9a6e..fa904996f 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/PmsTerminalDetectionService.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/PmsTerminalDetectionService.java @@ -1,13 +1,18 @@ package com.njcn.process.service; +import cn.hutool.json.JSONArray; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.minioss.bo.MinIoUploadResDTO; import com.njcn.process.pojo.param.TerminalParam; import com.njcn.process.pojo.po.PmsTerminalDetection; import com.baomidou.mybatisplus.extension.service.IService; import com.njcn.process.pojo.vo.TerminalVO; +import org.springframework.core.io.InputStreamResource; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; import java.util.List; /** @@ -33,9 +38,9 @@ public interface PmsTerminalDetectionService extends IService ids); + Boolean delTerminal(List ids); /*** * 批量导入检测报告 * @author wr * @date 2023-02-28 9:55 * @param files + * @param type * @param response */ - void importReport(MultipartFile[] files, HttpServletResponse response); + void importReport(MultipartFile[] files,Integer type, HttpServletResponse response); + + /*** + * 检测报告下载 + * @author wr + * @date 2023-03-15 10:47 + * @param param + * @return MinIoUploadResDTO + */ + InputStreamResource reportDownload(TerminalParam.DownloadParam param) throws IOException; /*** * 终端入网检测台账统计 * @author wr * @date 2023-02-28 11:03 * @param param - * @return List + * @return TerminalVO.TerminalStatistics */ - List getStatistics(TerminalParam param); + TerminalVO.TerminalStatistics getStatistics(TerminalParam param); /*** * 周期检测统计 @@ -98,5 +113,14 @@ public interface PmsTerminalDetectionService extends IService */ - List getCycleStatistics(TerminalParam.TerminalCycleParam param); + TerminalVO.TerminalStatistics getCycleStatistics(TerminalParam param); + + /*** + * 文件上传 + * @author wr + * @date 2023-03-17 11:11 + * @param file + * @return String + */ + String url(MultipartFile file); } diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/ThsDeptAlarmService.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/ThsDeptAlarmService.java new file mode 100644 index 000000000..0036bf655 --- /dev/null +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/ThsDeptAlarmService.java @@ -0,0 +1,16 @@ +package com.njcn.process.service; + +import com.njcn.process.pojo.po.ThsDeptAlarm; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author wr + * @since 2023-03-10 + */ +public interface ThsDeptAlarmService extends IService { + +} diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/ThsWarnStrategyService.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/ThsWarnStrategyService.java index 36c2d6230..17cf4868e 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/ThsWarnStrategyService.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/ThsWarnStrategyService.java @@ -1,18 +1,16 @@ package com.njcn.process.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO; -import com.njcn.device.pms.pojo.param.PmsMonitorInfoParam; import com.njcn.process.pojo.param.StrategyParam; +import com.njcn.process.pojo.po.ThsDeptAlarm; import com.njcn.process.pojo.po.ThsWarnStrategy; import com.baomidou.mybatisplus.extension.service.IService; -import org.springframework.web.bind.annotation.RequestBody; import java.util.List; /** *

- * 服务类 + * 服务类 *

* * @author wr @@ -83,7 +81,7 @@ public interface ThsWarnStrategyService extends IService { * @param monitorTag * @return List */ - List getMonitor(String monitorTag,String orgId); + List getMonitor(String monitorTag, String orgId); /*** @@ -93,7 +91,7 @@ public interface ThsWarnStrategyService extends IService { * @param param * @return Boolean */ - Boolean bindMonitor(StrategyParam.BindMonitorParam param); + Boolean bindMonitor(List param); /*** diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/PmsTerminalDetectionServiceImpl.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/PmsTerminalDetectionServiceImpl.java index bc523360c..0ab561f4d 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/PmsTerminalDetectionServiceImpl.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/PmsTerminalDetectionServiceImpl.java @@ -7,13 +7,17 @@ import cn.afterturn.easypoi.excel.entity.ImportParams; import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.common.pojo.constant.PatternRegex; import com.njcn.common.pojo.enums.common.DataStateEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.device.pms.enums.PmsDeviceResponseEnum; import com.njcn.oss.constant.OssPath; +import com.njcn.oss.enums.OssResponseEnum; import com.njcn.oss.utils.FileStorageUtil; import com.njcn.poi.excel.ExcelUtil; import com.njcn.poi.util.PoiUtil; @@ -25,19 +29,30 @@ import com.njcn.process.pojo.vo.TerminalVO; import com.njcn.process.service.PmsTerminalDetectionService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.process.utils.ExcelStyleUtil; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; import com.njcn.user.api.DeptFeignClient; -import com.njcn.user.pojo.dto.DeptDTO; +import com.njcn.user.pojo.po.Dept; import com.njcn.user.pojo.vo.PvTerminalTreeVO; import lombok.RequiredArgsConstructor; import org.apache.poi.ss.usermodel.Workbook; +import org.springframework.core.io.InputStreamResource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; import java.time.LocalDate; import java.util.*; import java.util.function.Function; +import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -54,46 +69,78 @@ public class PmsTerminalDetectionServiceImpl extends ServiceImpl terminalPage(TerminalParam.TerminalPageParam param) { - List data = deptFeignClient.getDepSonDetailByDeptId(param.getId()).getData(); - List deptCodes = data.stream().map(DeptDTO::getCode).collect(Collectors.toList()); + List data = deptFeignClient.getDirectSonSelf(param.getId()).getData(); + List deptCodes = data.stream().map(Dept::getCode).collect(Collectors.toList()); Page pageList = this.page(new Page<>(param.getPageNum(), param.getPageSize()) , new LambdaQueryWrapper() - .eq(CollectionUtil.isNotEmpty(deptCodes), PmsTerminalDetection::getOrgName, deptCodes) + .in(CollectionUtil.isNotEmpty(deptCodes), PmsTerminalDetection::getOrgNo, deptCodes) .eq(PmsTerminalDetection::getStatus, DataStateEnum.ENABLE.getCode()) + .eq(param.getTestResults() != null, PmsTerminalDetection::getTestResults, param.getTestResults()) + + .in(CollectionUtil.isNotEmpty(param.getManufacture()), PmsTerminalDetection::getManufacture, param.getManufacture()) .like(StrUtil.isNotBlank(param.getName()), PmsTerminalDetection::getName, param.getName()) - .le(param.getType() != 0, PmsTerminalDetection::getNextInspectionTime, LocalDate.now()) .ge(StrUtil.isNotBlank(param.getStartTime()), PmsTerminalDetection::getInspectionTime, param.getStartTime()) .le(StrUtil.isNotBlank(param.getEndTime()), PmsTerminalDetection::getInspectionTime, param.getEndTime()) + .le(param.getType() != 0, PmsTerminalDetection::getNextInspectionTime, LocalDate.now()) ); List rMpWpPowerDetailVOS2 = BeanUtil.copyToList(pageList.getRecords(), TerminalVO.class); Page page = BeanUtil.copyProperties(pageList, Page.class); page.setRecords(rMpWpPowerDetailVOS2); - return null; + return page; } @Override - public void exportTemplate(HttpServletResponse response) { + public InputStreamResource exportTemplate() throws IOException { ExportParams exportParams = new ExportParams("批量导入模板(请严格按照模板标准填入数据)", "终端入网检测录入信息"); exportParams.setStyle(ExcelStyleUtil.class); Workbook workbook = ExcelExportUtil.exportExcel(exportParams, TerminalExcel.class, new ArrayList()); - PoiUtil.exportFileByWorkbook(workbook, "终端入网检测录入模板.xlsx", response); + List businessList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_MANUFACTURER.getCode()).getData(); + ExcelUtil.selectList(workbook, 3, 3, businessList.stream().map(DictData::getName).collect(Collectors.toList()).toArray(new String[]{})); + //临时缓冲区 + ByteArrayOutputStream out = new ByteArrayOutputStream(); + //创建临时文件 + workbook.write(out); + byte [] bookByteAry = out.toByteArray(); + InputStream in = new ByteArrayInputStream(bookByteAry); + InputStreamResource inputStreamResource = new InputStreamResource(in); + return inputStreamResource; } @Override - public Boolean insertTerminal(TerminalParam param) { + @Transactional(rollbackFor = Exception.class) + public Boolean insertTerminal(TerminalParam.TerminalInsertParam param) { + Dept data = deptFeignClient.getDeptById(param.getOrgNo()).getData(); + if (ObjectUtil.isNull(data)) { + throw new BusinessException(CommonResponseEnum.NO_DATA, "部门不存在"); + } + int count = this.count(new LambdaQueryWrapper() + .eq(PmsTerminalDetection::getId, param.getId()) + .or(wrapper -> + wrapper.eq(PmsTerminalDetection::getName, param.getName()) + ) + ); + if (count>0) { + throw new BusinessException(PmsDeviceResponseEnum.MODEL_NAME_REPEAT,"或终端编号已存在"); + } PmsTerminalDetection detection = BeanUtil.copyProperties(param, PmsTerminalDetection.class); - + detection.setOriginalName(detection.getId()+"-原始数据报告.docx"); + detection.setOrgNo(data.getCode()); + detection.setOrgName(data.getName()); + detection.setTestResults(0); + detection.setStatus(1); return this.save(detection); } @Override @Transactional(rollbackFor = Exception.class) public void batchTerminal(MultipartFile file, HttpServletResponse response) { + ImportParams params = new ImportParams(); params.setHeadRows(1); params.setTitleRows(1); @@ -115,85 +162,179 @@ public class PmsTerminalDetectionServiceImpl extends ServiceImpl() + PmsTerminalDetection one = this.getOne(new LambdaQueryWrapper() .ne(PmsTerminalDetection::getId, param.getId()) .and(wrapper -> wrapper.eq(PmsTerminalDetection::getName, param.getName()) ) ); - if (count > 0) { + if (ObjectUtil.isNotNull(one)) { throw new BusinessException(PmsDeviceResponseEnum.MODEL_NAME_REPEAT); } PmsTerminalDetection detection = BeanUtil.copyProperties(param, PmsTerminalDetection.class); - return this.updateById(detection); + boolean b = this.updateById(detection); + if(b){ + PmsTerminalDetection cc = this.getOne(new LambdaQueryWrapper() + .eq(PmsTerminalDetection::getId, param.getId()) + ); + if(StrUtil.isNotBlank(cc.getOriginalReport())){ + if(!cc.getOriginalReport().equals(param.getOriginalReport())){ + fileStorageUtil.deleteFile(cc.getOriginalReport()); + } + + } + + } + return b; } @Override - public Boolean dekTerminal(List ids) { + @Transactional(rollbackFor = Exception.class) + public Boolean delTerminal(List ids) { return this.removeByIds(ids); } @Override - public void importReport(MultipartFile[] files, HttpServletResponse response) { + @Transactional(rollbackFor = Exception.class) + public void importReport(MultipartFile[] files, Integer type, HttpServletResponse response) { PmsTerminalDetection detection; List data = new ArrayList<>(); - //传入的文件格式(终端编号-检测报告.docx); for (int i = 0; i < files.length; i++) { detection = new PmsTerminalDetection(); - //文件上传的地址 - String url = fileStorageUtil.uploadMultipart(files[i], OssPath.ALGORITHM); //上传的文件名称 String originalFilename = files[i].getOriginalFilename(); - String[] split = originalFilename.split("-"); - if (split.length > 0) { - if (split[1].substring(0, split[1].indexOf(".")).equals("检测报告")) { - //todo 文件名称 - detection.setInspectionReport(url); - detection.setId(split[0]); - data.add(detection); + if (StrUtil.isNotBlank(originalFilename)) { + //获取编号 + String terminalIds = originalFilename.substring(0, originalFilename.indexOf("-")); + //判断数据是否存在 + int count = this.count(new LambdaQueryWrapper() + .eq(PmsTerminalDetection::getId, terminalIds)); + if (count == 0) { + continue; } - if (split[1].substring(0, split[1].indexOf(".")).equals("原始数据报告")) { - //todo 文件名称 - detection.setOriginalReport(url); - detection.setId(split[0]); - data.add(detection); + String fileName = originalFilename.substring(originalFilename.indexOf("-") + 1); + if (type == 0) { + //传入的文件格式(终端编号-原始数据报告.docx); + if (fileName.substring(0, fileName.indexOf(".")).equals("原始数据报告")) { + //文件上传的地址 + String path = fileStorageUtil.uploadMultipart(files[i], OssPath.TEST_REPORT); + detection.setOriginalReport(path); + detection.setOriginalName(originalFilename); + detection.setTestResults(1); + detection.setId(terminalIds); + data.add(detection); + } + } else { + //传入的文件格式(终端编号-检测报告(2023-03-01).docx); + if (fileName.substring(0, fileName.indexOf("(")).equals("检测报告")) { + String nextInspectionTime = fileName.substring(fileName.indexOf("(") + 1, fileName.indexOf(")")); + boolean matches = Pattern.matches(PatternRegex.TIME_FORMAT, nextInspectionTime); + if (matches) { + //文件上传的地址 + String path = fileStorageUtil.uploadMultipart(files[i], OssPath.TEST_REPORT); + detection.setInspectionReport(path); + detection.setNextInspectionTime(LocalDate.parse(nextInspectionTime)); + detection.setInspectionName(originalFilename); + detection.setId(terminalIds); + data.add(detection); + } + } } + } } if (CollectionUtil.isNotEmpty(data)) { - Map terminalMap = data.stream().collect(Collectors.toMap(PmsTerminalDetection::getId, Function.identity(), (key1, key2) -> { - //检测报告告为空 - if (key1.getInspectionReport() == null) { - key1.setInspectionReport(key2.getInspectionReport()); +// Map terminalMap = data.stream().collect(Collectors.toMap(PmsTerminalDetection::getId, Function.identity(), (key1, key2) -> { +// //检测报告告为空 +// if (key1.getInspectionReport() == null) { +// key1.setInspectionReport(key2.getInspectionReport()); +// key1.setInspectionName(key2.getInspectionName()); +// } +// //原始数据报告为空 +// if (key1.getOriginalReport() == null) { +// key1.setOriginalReport(key2.getOriginalReport()); +// key1.setOriginalName(key2.getOriginalName()); +// } +// return key1; +// })); +// List updateTerminal = new ArrayList<>(terminalMap.values()); + + //todo 批量删除功能是否需要 + List delIds = data.stream().map(PmsTerminalDetection::getId).collect(Collectors.toList()); + List terminals = this.listByIds(delIds); + List remove = new ArrayList<>(); + for (PmsTerminalDetection terminal : terminals) { + //用于区分是0:原始数据报告,还是1:检测报告 + if (type == 0) { + if(StrUtil.isNotBlank(terminal.getOriginalReport())){ + remove.add(terminal.getOriginalReport()); + } + } else { + if(StrUtil.isNotBlank(terminal.getInspectionReport())){ + remove.add(terminal.getInspectionReport()); + } } - //原始数据报告为空 - if (key1.getOriginalReport() == null) { - key1.setOriginalReport(key2.getOriginalReport()); - } - return key1; - })); - List updateTerminal = new ArrayList<>(terminalMap.values()); - this.updateBatchById(updateTerminal); + } + for (String s : remove) { + fileStorageUtil.deleteFile(s); + } + this.updateBatchById(data); } } @Override - public List getStatistics(TerminalParam param) { - List deptDTOS = deptFeignClient.getDepSonDetailByDeptId(param.getId()).getData(); - List ids = deptDTOS.stream().map(DeptDTO::getCode).collect(Collectors.toList()); - List list = this.baseMapper.selectStatistics(param, ids); - return getStatisticsList(deptDTOS, list); + public InputStreamResource reportDownload(TerminalParam.DownloadParam param) throws IOException { + PmsTerminalDetection terminal = this.getById(param.getId()); + if (ObjectUtil.isNull(terminal)) { + if (StringUtils.isEmpty(terminal)) { + throw new BusinessException(CommonResponseEnum.NO_DATA, "暂无该终端信息"); + } + } + if (param.getType().equals(1)) { + if (StrUtil.isBlank(terminal.getInspectionReport())) { + throw new BusinessException(OssResponseEnum.DOWNLOAD_FILE_ERROR, "下载检测报告文件URL不存在,请检查数据"); + } + String fileUrl = fileStorageUtil.getFileUrl(terminal.getInspectionReport()); + URL url = new URL(fileUrl); + return new InputStreamResource(url.openStream()); + } + if (StrUtil.isBlank(terminal.getOriginalReport())) { + throw new BusinessException(OssResponseEnum.DOWNLOAD_FILE_ERROR, "下载原始数据报告文件URL不存在,请检查数据"); + } + String fileUrl = fileStorageUtil.getFileUrl(terminal.getOriginalReport()); + URL url = new URL(fileUrl); + return new InputStreamResource(url.openStream()); } @Override - public List getCycleStatistics(TerminalParam.TerminalCycleParam param) { - List deptDTOS = deptFeignClient.getDepSonDetailByDeptId(param.getId()).getData(); - List ids = deptDTOS.stream().map(DeptDTO::getCode).collect(Collectors.toList()); - List list = this.baseMapper.selectCycleStatistics(param, ids); - return getStatisticsList(deptDTOS, list); + public TerminalVO.TerminalStatistics getStatistics(TerminalParam param) { + TerminalVO.TerminalStatistics statistics=new TerminalVO.TerminalStatistics(); + List deptDTOS = deptFeignClient.getDirectSonSelf(param.getId()).getData(); + List ids = deptDTOS.stream().map(Dept::getCode).collect(Collectors.toList()); + List list = this.baseMapper.selectStatistics(param, ids); + statistics.setOrgStatistics(getStatisticsList(deptDTOS, list)); + statistics.setDateStatistics(this.baseMapper.selectDateStatistics(param, ids)); + return statistics; + } + + @Override + public TerminalVO.TerminalStatistics getCycleStatistics(TerminalParam param) { + TerminalVO.TerminalStatistics statistics=new TerminalVO.TerminalStatistics(); + List deptDTOS = deptFeignClient.getDirectSonSelf(param.getId()).getData(); + List ids = deptDTOS.stream().map(Dept::getCode).collect(Collectors.toList()); + List list = this.baseMapper.selectCycleStatistics(param, ids); + statistics.setOrgStatistics(getStatisticsList(deptDTOS, list)); + statistics.setDateStatistics(this.baseMapper.selectResultsCycleStatistics(param, ids)); + return statistics; + } + + @Override + public String url(MultipartFile file) { + return fileStorageUtil.uploadMultipart(file, OssPath.TEST_REPORT); } /*** @@ -204,22 +345,22 @@ public class PmsTerminalDetectionServiceImpl extends ServiceImpl */ - private List getStatisticsList(List deptDTOS, List list) { - Map deptMap = deptDTOS.stream().collect(Collectors.toMap(DeptDTO::getCode, DeptDTO::getName)); - for (TerminalVO.TerminalStatistics t : list) { + private List getStatisticsList(List deptDTOS, List list) { + Map deptMap = deptDTOS.stream().collect(Collectors.toMap(Dept::getCode, Dept::getName)); + for (TerminalVO.OrgStatistics t : list) { if (deptMap.containsKey(t.getOrgNo())) { t.setOrgName(deptMap.get(t.getOrgNo())); } } - Map listMap = list.stream().collect( - Collectors.toMap(TerminalVO.TerminalStatistics::getOrgNo, Function.identity())); + Map listMap = list.stream().collect( + Collectors.toMap(TerminalVO.OrgStatistics::getOrgNo, Function.identity())); - List notDeptDTOS = deptDTOS.stream().filter(r -> !listMap.containsKey(r.getCode())) + List notDeptDTOS = deptDTOS.stream().filter(r -> !listMap.containsKey(r.getCode())) .collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(notDeptDTOS)) { - TerminalVO.TerminalStatistics notTerminal; - for (DeptDTO notDeptDTO : notDeptDTOS) { - notTerminal = new TerminalVO.TerminalStatistics(); + TerminalVO.OrgStatistics notTerminal; + for (Dept notDeptDTO : notDeptDTOS) { + notTerminal = new TerminalVO.OrgStatistics(); notTerminal.setOrgNo(notDeptDTO.getCode()); notTerminal.setOrgName(notDeptDTO.getName()); notTerminal.setCount(0); @@ -230,12 +371,15 @@ public class PmsTerminalDetectionServiceImpl extends ServiceImpl terminalList) { + List manufacturerList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_MANUFACTURER.getCode()).getData(); + //厂商信息 + Map manufacturerMap = manufacturerList.stream().collect(Collectors.toMap(DictData::getName, DictData::getId)); List data = deptFeignClient.allDeptList().getData(); List list = this.list(new LambdaQueryWrapper() .eq(PmsTerminalDetection::getStatus, DataStateEnum.ENABLE.getCode())); @@ -265,6 +409,13 @@ public class PmsTerminalDetectionServiceImpl extends ServiceImpl + * 服务实现类 + *

+ * + * @author wr + * @since 2023-03-10 + */ +@Service +public class ThsDeptAlarmServiceImpl extends ServiceImpl implements ThsDeptAlarmService { + +} diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsWarnStrategyServiceImpl.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsWarnStrategyServiceImpl.java index 43d979312..50ad0fd44 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsWarnStrategyServiceImpl.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsWarnStrategyServiceImpl.java @@ -8,13 +8,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.device.pms.api.MonitorClient; import com.njcn.device.pms.pojo.dto.PmsMonitorDTO; -import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO; -import com.njcn.device.pms.pojo.param.PmsMonitorInfoParam; import com.njcn.device.pms.pojo.param.PmsMonitorParam; import com.njcn.process.pojo.param.StrategyParam; +import com.njcn.process.pojo.po.ThsDeptAlarm; import com.njcn.process.pojo.po.ThsWarnStrategy; import com.njcn.process.mapper.ThsWarnStrategyMapper; import com.njcn.process.pojo.po.ThsWarnStrategyAss; +import com.njcn.process.service.ThsDeptAlarmService; import com.njcn.process.service.ThsWarnStrategyService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.user.api.DeptFeignClient; @@ -29,7 +29,7 @@ import java.util.stream.Collectors; /** *

- * 服务实现类 + * 服务实现类 *

* * @author wr @@ -42,10 +42,11 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl strategyPage(StrategyParam.StrategyPageParam param) { - return this.page(new Page<>(param.getPageNum(), param.getPageSize()) + return this.page(new Page<>(param.getPageNum(), param.getPageSize()) , new LambdaQueryWrapper() .like(StrUtil.isNotBlank(param.getName()), ThsWarnStrategy::getName, param.getName()) .le(param.getType() != 0, ThsWarnStrategy::getType, param.getType()) @@ -63,9 +64,9 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl assList=new ArrayList<>(); + List assList = new ArrayList<>(); //监测点标签绑定 - ThsWarnStrategyAss ass=new ThsWarnStrategyAss(); + ThsWarnStrategyAss ass = new ThsWarnStrategyAss(); ass.setWarnId(param.getId()); ass.setAssId(param.getMonitorTag()); ass.setType(0); @@ -73,14 +74,14 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl getMonitor(String monitorTag,String orgId) { - PmsMonitorParam param = new PmsMonitorParam(); + public List getMonitor(String monitorTag, String orgId) { + PmsMonitorParam param = new PmsMonitorParam(); param.setMonitorTags(Arrays.asList(monitorTag)); List data = monitorClient.getMonitorInfoListByCond(param).getData(); //获取部门结构 @@ -116,18 +117,19 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl deptDTOS = deptInfos.stream().filter(org -> org.getId().equals(orgId)).collect(Collectors.toList()); - List monitorTrees =new ArrayList<>(); - StrategyParam.MonitorTree tree=new StrategyParam.MonitorTree(); + List monitorTrees = new ArrayList<>(); + StrategyParam.MonitorTree tree = new StrategyParam.MonitorTree(); tree.setId(deptDTOS.get(0).getId()); tree.setName(deptDTOS.get(0).getName()); - tree.setChildPower(getPowers(deptDTOS.get(0).getCode(),data)); - tree.setChildren( recursionSelectList(orgId, deptInfos,data)); + tree.setChildPower(getPowers(deptDTOS.get(0).getCode(), data)); + tree.setChildren(recursionSelectList(orgId, deptInfos, data)); monitorTrees.add(tree); return monitorTrees; } /** * 递归生成监测点树 + * * @param orgId * @param deptInfos * @param data @@ -141,8 +143,8 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl children = recursionSelectList(customer.getId(), deptInfos,data); + tree.setChildPower(getPowers(customer.getCode(), data)); + List children = recursionSelectList(customer.getId(), deptInfos, data); tree.setChildren(children); menuSelectList.add(tree); })); @@ -157,41 +159,42 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl */ - private static List getPowers(String orgCode, List data){ + private static List getPowers(String orgCode, List data) { //变电站信息初始化 - List powers=new ArrayList<>(); + List powers = new ArrayList<>(); //获取监测点信息 List monitorDTOS = data.stream().filter(dept -> dept.getOrgId().equals(orgCode)).collect(Collectors.toList()); Map> collect = monitorDTOS.stream().collect( - Collectors.groupingBy(c-> c.getPowerrId()+ "_" + c.getPowerrName())); + Collectors.groupingBy(c -> c.getPowerrId() + "_" + c.getPowerrName())); //获取变电站和监测点信息 - collect.forEach((key,value)->{ - String[] split = key.split("_"); - StrategyParam.Power power=new StrategyParam.Power(); - power.setId(split[0]); - power.setName(split[1]); - //监测点信息 - List monitors=new ArrayList(); - for (PmsMonitorDTO dto : value) { - StrategyParam.Power childMonitor=new StrategyParam.Power(); - childMonitor.setId(dto.getId()); - childMonitor.setName(dto.getName()); - monitors.add(childMonitor); - } - power.setChildMonitor(monitors); - powers.add(power); + collect.forEach((key, value) -> { + String[] split = key.split("_"); + StrategyParam.Power power = new StrategyParam.Power(); + power.setId(split[0]); + power.setName(split[1]); + //监测点信息 + List monitors = new ArrayList(); + for (PmsMonitorDTO dto : value) { + StrategyParam.Power childMonitor = new StrategyParam.Power(); + childMonitor.setId(dto.getId()); + childMonitor.setName(dto.getName()); + monitors.add(childMonitor); + } + power.setChildMonitor(monitors); + powers.add(power); }); return powers; } @Override - public Boolean bindMonitor(StrategyParam.BindMonitorParam param) { - return null; + public Boolean bindMonitor(List param) { + return thsDeptAlarmService.saveBatch(param); } @Override public Boolean delStrategy(List ids) { - Assert.isTrue(CollectionUtil.isNotEmpty(ids) , "id为空,不能删除"); + Assert.isTrue(CollectionUtil.isNotEmpty(ids), "id为空,不能删除"); + thsWarnStrategyAssService.removeByIds(ids); return this.removeByIds(ids); } }