pmsBUG提交

This commit is contained in:
wurui
2023-03-17 17:19:44 +08:00
parent 8a03892513
commit fabd4a0180
18 changed files with 724 additions and 262 deletions

View File

@@ -11,31 +11,35 @@ import lombok.Data;
*/ */
@Data @Data
public class TransformerParam { public class TransformerParam {
/**
* 变压器id
*/
@ApiModelProperty(value = "变压器id") @ApiModelProperty(value = "变压器id")
private String id; private String id;
/**
* 变压器名称
*/
@ApiModelProperty(value = "变压器名称") @ApiModelProperty(value = "变压器名称")
private String name; 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 = "变压器类型") @ApiModelProperty(value = "变压器类型")
private String type; private String type;
@ApiModelProperty(value = "装机容量") @ApiModelProperty(value = "装机容量")
private String iCapacity; private Float iCapacity;
@ApiModelProperty(value = "额定容量") @ApiModelProperty(value = "额定容量")
private String rCapacity; private Float rCapacity;
@ApiModelProperty(value = "额定电压") @ApiModelProperty(value = "额定电压(字典)")
private String voltage; private String voltage;
@ApiModelProperty(value = "额定功率") @ApiModelProperty(value = "额定功率")

View File

@@ -1,6 +1,7 @@
package com.njcn.device.pms.pojo.po; package com.njcn.device.pms.pojo.po;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity; import com.njcn.db.bo.BaseEntity;
@@ -25,33 +26,35 @@ public class Transformer extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* 变压器id
*/
@ApiModelProperty(value = "变压器id") @ApiModelProperty(value = "变压器id")
@TableId(value = "id", type = IdType.ASSIGN_ID) @TableId(value = "Id", type = IdType.ASSIGN_ID)
private String id; private String id;
/**
* 变压器名称
*/
@ApiModelProperty(value = "变压器名称") @ApiModelProperty(value = "变压器名称")
private String name; 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 = "变压器类型") @ApiModelProperty(value = "变压器类型")
private String type; private String type;
@ApiModelProperty(value = "装机容量") @ApiModelProperty(value = "装机容量")
private String iCapacity; private Float iCapacity;
@ApiModelProperty(value = "额定容量") @ApiModelProperty(value = "额定容量")
private String rCapacity; private Float rCapacity;
@ApiModelProperty(value = "额定电压") @ApiModelProperty(value = "额定电压(字典)")
private String voltage; private String voltage;
@ApiModelProperty(value = "额定功率") @ApiModelProperty(value = "额定功率")
@@ -60,11 +63,8 @@ public class Transformer extends BaseEntity {
@ApiModelProperty(value = "阻抗电压") @ApiModelProperty(value = "阻抗电压")
private String impedanceVoltage; private String impedanceVoltage;
/** @ApiModelProperty(value = "数据状态0-删除1-正常; ")
* 数据状态0-删除1-正常; @TableField("Status")
*/
@ApiModelProperty(value = "数据状态0-删除1-正常;")
private Integer status; private Integer status;
} }

View File

@@ -50,9 +50,9 @@ public class TerminalExcel implements Serializable {
@Excel(name = "送检单位") @Excel(name = "送检单位")
@NotBlank(message = "送检单位不为空") @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 = "检测时间不为空") @NotNull(message = "检测时间不为空")
private LocalDate inspectionTime; private LocalDate inspectionTime;

View File

@@ -79,10 +79,6 @@ public class StrategyParam {
@NotEmpty(message = "指标类型集合不能为空") @NotEmpty(message = "指标类型集合不能为空")
private List<String> indicatorTypes; private List<String> indicatorTypes;
} }
@Data
public static class BindMonitorParam {
}
@Data @Data
public static class StrategyUpdateParam { public static class StrategyUpdateParam {
@@ -121,6 +117,7 @@ public class StrategyParam {
private Integer state; private Integer state;
} }
@Data @Data
public static class MonitorTree { public static class MonitorTree {
@@ -131,10 +128,10 @@ public class StrategyParam {
private String name; private String name;
@ApiModelProperty("变电站信息") @ApiModelProperty("变电站信息")
private List<Power> childPower ; private List<Power> childPower;
@ApiModelProperty("子节点详细信息") @ApiModelProperty("子节点详细信息")
private List<MonitorTree> children ; private List<MonitorTree> children;
} }
@Data @Data
@@ -146,7 +143,7 @@ public class StrategyParam {
private String name; private String name;
@ApiModelProperty("监测点信息") @ApiModelProperty("监测点信息")
private List<Power> childMonitor ; private List<Power> childMonitor;
} }
} }

View File

@@ -1,11 +1,16 @@
package com.njcn.process.pojo.param; 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 com.njcn.common.pojo.constant.PatternRegex;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.Pattern; import javax.validation.constraints.Pattern;
import java.sql.Struct;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List;
/** /**
* <功能描述> * <功能描述>
@@ -16,7 +21,6 @@ import java.time.LocalDate;
@Data @Data
public class TerminalParam { public class TerminalParam {
@ApiModelProperty("开始时间") @ApiModelProperty("开始时间")
@Pattern(regexp = PatternRegex.TIME_FORMAT, message = "时间格式错误") @Pattern(regexp = PatternRegex.TIME_FORMAT, message = "时间格式错误")
private String startTime; private String startTime;
@@ -29,12 +33,18 @@ public class TerminalParam {
private String id; private String id;
public String getStartTime() { public String getStartTime() {
if (StrUtil.isNotBlank(this.startTime)) {
return startTime + " 00:00:00"; return startTime + " 00:00:00";
} }
return startTime;
}
public String getEndTime() { public String getEndTime() {
if (StrUtil.isNotBlank(this.endTime)) {
return endTime + " 23:59:59"; return endTime + " 23:59:59";
} }
return endTime;
}
@Data @Data
public static class TerminalPageParam extends TerminalParam { public static class TerminalPageParam extends TerminalParam {
@@ -48,18 +58,53 @@ public class TerminalParam {
@ApiModelProperty("终端名称") @ApiModelProperty("终端名称")
private String name; private String name;
@ApiModelProperty(value = "检测结果(0:未开展 1:已开展)")
private Integer testResults;
@ApiModelProperty(value = "生产厂家(字典)")
private List<String> manufacture;
@ApiModelProperty(value = "是否周期检测列表") @ApiModelProperty(value = "是否周期检测列表")
private Integer type; private Integer type;
} }
@Data @Data
public static class TerminalCycleParam { public static class TerminalInsertParam {
@ApiModelProperty(value = "终端编号")
@ApiModelProperty("单位id")
private String id; private String id;
@ApiModelProperty(value = "检测结果") @ApiModelProperty(value = "终端名称")
private String testResults; 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; private String orgName;
@ApiModelProperty(value = "组织机构ID(外键)") @ApiModelProperty(value = "组织机构ID(外键)")
private String orgId; private String orgNo;
@ApiModelProperty(value = "生产厂家") @ApiModelProperty(value = "生产厂家")
private String manufacture; private String manufacture;
@@ -83,24 +128,24 @@ public class TerminalParam {
@ApiModelProperty(value = "安装位置") @ApiModelProperty(value = "安装位置")
private String installPlace; private String installPlace;
@ApiModelProperty(value = "送检单位")
private String inspectionName;
@ApiModelProperty(value = "检测结果")
private String testResults;
@ApiModelProperty(value = "检测时间") @ApiModelProperty(value = "检测时间")
private LocalDate inspectionTime; private String inspectionTime;
@ApiModelProperty(value = "下次检测时间") @ApiModelProperty(value = "送检单位")
private LocalDate nextInspectionTime; private String inspectionUnit;
@ApiModelProperty(value = "检测报告")
private String inspectionReport;
@ApiModelProperty(value = "原始数据报告") @ApiModelProperty(value = "原始数据报告")
private String originalReport; private String originalReport;
} }
@Data
public static class DownloadParam {
@ApiModelProperty(value = "终端id")
private String id;
@ApiModelProperty(value = "(0原始数据报告 1检测报告)")
private Integer type;
}
} }

View File

@@ -6,6 +6,8 @@ import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable; import java.io.Serializable;
import com.njcn.db.bo.BaseEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@@ -23,7 +25,7 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@TableName("pms_terminal_detection") @TableName("pms_terminal_detection")
@ApiModel(value="PmsTerminalDetection对象", description="") @ApiModel(value="PmsTerminalDetection对象", description="")
public class PmsTerminalDetection implements Serializable { public class PmsTerminalDetection extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -51,8 +53,8 @@ public class PmsTerminalDetection implements Serializable {
private String installPlace; private String installPlace;
@ApiModelProperty(value = "送检单位") @ApiModelProperty(value = "送检单位")
@TableField("inspection_Name") @TableField("inspection_Unit")
private String inspectionName; private String inspectionUnit;
@ApiModelProperty(value = "检测结果(0:未开展 1:已开展)") @ApiModelProperty(value = "检测结果(0:未开展 1:已开展)")
private Integer testResults; private Integer testResults;
@@ -65,10 +67,18 @@ public class PmsTerminalDetection implements Serializable {
@TableField("next_inspection_Time") @TableField("next_inspection_Time")
private LocalDate nextInspectionTime; private LocalDate nextInspectionTime;
@ApiModelProperty(value = "检测报告文件名称")
@TableField("inspection_Name")
private String inspectionName;
@ApiModelProperty(value = "检测报告") @ApiModelProperty(value = "检测报告")
@TableField("inspection_Report") @TableField("inspection_Report")
private String inspectionReport; private String inspectionReport;
@ApiModelProperty(value = "原始数据报告文件名称")
@TableField("original_Name")
private String originalName;
@ApiModelProperty(value = "原始数据报告") @ApiModelProperty(value = "原始数据报告")
@TableField("original_Report") @TableField("original_Report")
private String originalReport; private String originalReport;

View File

@@ -1,10 +1,10 @@
package com.njcn.process.pojo.po; package com.njcn.process.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable; import java.io.Serializable;
import com.njcn.db.bo.BaseEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@@ -22,7 +22,7 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@TableName("ths_warn_strategy") @TableName("ths_warn_strategy")
@ApiModel(value="ThsWarnStrategy对象", description="") @ApiModel(value="ThsWarnStrategy对象", description="")
public class ThsWarnStrategy implements Serializable { public class ThsWarnStrategy extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -47,6 +47,7 @@ public class ThsWarnStrategy implements Serializable {
@ApiModelProperty(value = "0.删除 1.正常") @ApiModelProperty(value = "0.删除 1.正常")
@TableField("State") @TableField("State")
@TableLogic
private Integer state; private Integer state;
@TableField("Create_By") @TableField("Create_By")

View File

@@ -1,10 +1,12 @@
package com.njcn.process.pojo.vo; package com.njcn.process.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List;
/** /**
* <功能描述> * <功能描述>
@@ -27,7 +29,7 @@ public class TerminalVO implements Serializable {
private String orgName; private String orgName;
@ApiModelProperty(value = "组织机构编号") @ApiModelProperty(value = "组织机构编号")
private String orgNO; private String orgNo;
@ApiModelProperty(value = "生产厂家") @ApiModelProperty(value = "生产厂家")
private String manufacture; private String manufacture;
@@ -36,7 +38,7 @@ public class TerminalVO implements Serializable {
private String installPlace; private String installPlace;
@ApiModelProperty(value = "送检单位") @ApiModelProperty(value = "送检单位")
private String inspectionName; private String inspectionUnit;
@ApiModelProperty(value = "检测结果") @ApiModelProperty(value = "检测结果")
private String testResults; private String testResults;
@@ -47,15 +49,31 @@ public class TerminalVO implements Serializable {
@ApiModelProperty(value = "下次检测时间") @ApiModelProperty(value = "下次检测时间")
private LocalDate nextInspectionTime; private LocalDate nextInspectionTime;
@ApiModelProperty(value = "检测报告文件名称")
private String inspectionName;
@ApiModelProperty(value = "检测报告") @ApiModelProperty(value = "检测报告")
private String inspectionReport; private String inspectionReport;
@ApiModelProperty(value = "原始数据报告文件名称")
private String originalName;
@ApiModelProperty(value = "原始数据报告") @ApiModelProperty(value = "原始数据报告")
private String originalReport; private String originalReport;
@Data @Data
public static class TerminalStatistics implements Serializable { public static class TerminalStatistics implements Serializable {
@ApiModelProperty(value = "单位统计")
List<OrgStatistics> orgStatistics;
@ApiModelProperty(value = "年度统计")
List<?> dateStatistics;
}
@Data
public static class OrgStatistics implements Serializable {
@ApiModelProperty(value = "单位id") @ApiModelProperty(value = "单位id")
private String orgNo; private String orgNo;
@@ -65,4 +83,30 @@ public class TerminalVO implements Serializable {
@ApiModelProperty(value = "统计数量") @ApiModelProperty(value = "统计数量")
private Integer count; 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;
}
} }

View File

@@ -3,6 +3,7 @@ package com.njcn.process.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo; 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.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; 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.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor; 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.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List; import java.util.List;
/** /**
@@ -40,56 +44,99 @@ public class PmsTerminalDetectionController extends BaseController {
@PostMapping("/getTerminalPage") @PostMapping("/getTerminalPage")
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("终端检测监督管理分页查询") @ApiOperation("终端检测监督管理分页查询")
public HttpResult<Page<TerminalVO>> getPage(@RequestBody TerminalParam.TerminalPageParam param) { public HttpResult<Page<TerminalVO>> getTerminalPage(@RequestBody TerminalParam.TerminalPageParam param) {
String methodDescribe = getMethodDescribe("getTerminalPage"); String methodDescribe = getMethodDescribe("getTerminalPage");
Page<TerminalVO> page = pmsTerminalDetectionService.terminalPage(param); Page<TerminalVO> page = pmsTerminalDetectionService.terminalPage(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe); 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<String> 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<String> 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") @PostMapping("/getStatistics")
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("终端入网检测台账统计") @ApiOperation("终端入网检测台账统计")
public HttpResult<List<TerminalVO.TerminalStatistics>> getStatistics(@RequestBody TerminalParam param) { public HttpResult<TerminalVO.TerminalStatistics> getStatistics(@RequestBody TerminalParam param) {
String methodDescribe = getMethodDescribe("getStatistics"); String methodDescribe = getMethodDescribe("getStatistics");
List<TerminalVO.TerminalStatistics> list = pmsTerminalDetectionService.getStatistics(param); TerminalVO.TerminalStatistics list = pmsTerminalDetectionService.getStatistics(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
} }
@PostMapping("/getCycleStatistics") @PostMapping("/getCycleStatistics")
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("周期检测统计") @ApiOperation("周期检测统计")
public HttpResult<List<TerminalVO.TerminalStatistics>> getCycleStatistics(@RequestBody TerminalParam.TerminalCycleParam param) { public HttpResult<TerminalVO.TerminalStatistics> getCycleStatistics(@RequestBody TerminalParam param) {
String methodDescribe = getMethodDescribe("getCycleStatistics"); String methodDescribe = getMethodDescribe("getCycleStatistics");
List<TerminalVO.TerminalStatistics> list = pmsTerminalDetectionService.getCycleStatistics(param); TerminalVO.TerminalStatistics list = pmsTerminalDetectionService.getCycleStatistics(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
} }
@PostMapping("/insertTerminal")
@ApiOperation(value = "终端检测监督单条新增")
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
public HttpResult<Boolean> 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<String> 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<Boolean> 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<Boolean> delTerminal(@RequestBody List<String> 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<String> 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<String> upload(MultipartFile file) {
String methodDescribe = getMethodDescribe("upload");
String url = pmsTerminalDetectionService.url(file);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, url, methodDescribe);
}
} }

View File

@@ -3,11 +3,13 @@ package com.njcn.process.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo; 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.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.process.pojo.param.StrategyParam; 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.pojo.po.ThsWarnStrategy;
import com.njcn.process.service.ThsWarnStrategyService; import com.njcn.process.service.ThsWarnStrategyService;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
@@ -18,7 +20,6 @@ import org.apache.ibatis.annotations.Param;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -32,15 +33,15 @@ import java.util.List;
*/ */
@RestController @RestController
@RequestMapping("/process/thsWarnStrategy") @RequestMapping("/process/thsWarnStrategy")
@Api(tags = "(预警单-告警单)策略") @Api(tags = "预警单策略|告警单策略")
@RequiredArgsConstructor @RequiredArgsConstructor
public class ThsWarnStrategyController extends BaseController { public class ThsWarnStrategyController extends BaseController {
private final ThsWarnStrategyService thsWarnStrategyService; private final ThsWarnStrategyService thsWarnStrategyService;
@PostMapping("/getStrategyPage") @PostMapping("/getStrategyPage")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("预警单/告警单策略分页查询") @ApiOperation("预警单/告警单策略分页查询")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
public HttpResult<Page<ThsWarnStrategy>> getStrategyPage(@RequestBody @Validated StrategyParam.StrategyPageParam param) { public HttpResult<Page<ThsWarnStrategy>> getStrategyPage(@RequestBody @Validated StrategyParam.StrategyPageParam param) {
String methodDescribe = getMethodDescribe("getStrategyPage"); String methodDescribe = getMethodDescribe("getStrategyPage");
Page<ThsWarnStrategy> page = thsWarnStrategyService.strategyPage(param); Page<ThsWarnStrategy> page = thsWarnStrategyService.strategyPage(param);
@@ -49,7 +50,7 @@ public class ThsWarnStrategyController extends BaseController {
@PostMapping("/insertStrategy") @PostMapping("/insertStrategy")
@ApiOperation(value = "预警单/告警单单条新增") @ApiOperation(value = "预警单/告警单单条新增")
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
public HttpResult<Boolean> insertStrategy(@RequestBody @Validated StrategyParam.StrategyInsertParam param) { public HttpResult<Boolean> insertStrategy(@RequestBody @Validated StrategyParam.StrategyInsertParam param) {
String methodDescribe = getMethodDescribe("insertStrategy"); String methodDescribe = getMethodDescribe("insertStrategy");
Boolean flag = thsWarnStrategyService.insertStrategy(param); Boolean flag = thsWarnStrategyService.insertStrategy(param);
@@ -58,7 +59,7 @@ public class ThsWarnStrategyController extends BaseController {
@PostMapping("/bindStrategy") @PostMapping("/bindStrategy")
@ApiOperation(value = "预警单/告警单信息绑定") @ApiOperation(value = "预警单/告警单信息绑定")
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
public HttpResult<Boolean> bindStrategy(@RequestBody @Validated StrategyParam.BindParam param) { public HttpResult<Boolean> bindStrategy(@RequestBody @Validated StrategyParam.BindParam param) {
String methodDescribe = getMethodDescribe("bindStrategy"); String methodDescribe = getMethodDescribe("bindStrategy");
Boolean flag = thsWarnStrategyService.bindStrategy(param); Boolean flag = thsWarnStrategyService.bindStrategy(param);
@@ -76,7 +77,7 @@ public class ThsWarnStrategyController extends BaseController {
@PostMapping("/updateStrategy") @PostMapping("/updateStrategy")
@ApiOperation(value = "预警单/告警单修改") @ApiOperation(value = "预警单/告警单修改")
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE)
public HttpResult<Boolean> updateStrategy(@RequestBody @Validated StrategyParam.StrategyUpdateParam param) { public HttpResult<Boolean> updateStrategy(@RequestBody @Validated StrategyParam.StrategyUpdateParam param) {
String methodDescribe = getMethodDescribe("updateStrategy"); String methodDescribe = getMethodDescribe("updateStrategy");
Boolean flag = thsWarnStrategyService.updateStrategy(param); Boolean flag = thsWarnStrategyService.updateStrategy(param);
@@ -85,7 +86,7 @@ public class ThsWarnStrategyController extends BaseController {
@PostMapping("/updateStrategyState") @PostMapping("/updateStrategyState")
@ApiOperation(value = "预警单/告警单修改状态") @ApiOperation(value = "预警单/告警单修改状态")
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE)
public HttpResult<Boolean> updateStrategyState(@RequestBody @Validated StrategyParam.StrategyStateParam param) { public HttpResult<Boolean> updateStrategyState(@RequestBody @Validated StrategyParam.StrategyStateParam param) {
String methodDescribe = getMethodDescribe("updateStrategyState"); String methodDescribe = getMethodDescribe("updateStrategyState");
Boolean flag = thsWarnStrategyService.updateStrategyState(param); Boolean flag = thsWarnStrategyService.updateStrategyState(param);
@@ -95,12 +96,29 @@ public class ThsWarnStrategyController extends BaseController {
@PostMapping("/getMonitor") @PostMapping("/getMonitor")
@ApiOperation(value = "监测点查询接口") @ApiOperation(value = "监测点查询接口")
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
public HttpResult<List<StrategyParam.MonitorTree>> getMonitor(@Param("monitorTag") String monitorTag,@Param("orgId") String orgId) { public HttpResult<List<StrategyParam.MonitorTree>> getMonitor(@Param("monitorTag") String monitorTag, @Param("orgId") String orgId) {
String methodDescribe = getMethodDescribe("getMonitor"); String methodDescribe = getMethodDescribe("getMonitor");
List<StrategyParam.MonitorTree> monitor = thsWarnStrategyService.getMonitor(monitorTag, orgId); List<StrategyParam.MonitorTree> monitor = thsWarnStrategyService.getMonitor(monitorTag, orgId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, monitor, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, monitor, methodDescribe);
} }
@PostMapping("/bindMonitor")
@ApiOperation(value = "预警单/告警单监测点绑定")
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
public HttpResult<Boolean> bindMonitor(@RequestBody List<ThsDeptAlarm> 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<Boolean> bindStrategy(@RequestBody List<String> ids) {
String methodDescribe = getMethodDescribe("delStrategy");
Boolean flag = thsWarnStrategyService.delStrategy(ids);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
} }

View File

@@ -19,14 +19,25 @@ import java.util.List;
public interface PmsTerminalDetectionMapper extends BaseMapper<PmsTerminalDetection> { public interface PmsTerminalDetectionMapper extends BaseMapper<PmsTerminalDetection> {
/*** /***
* 终端入网检测台账统计 * 单位-终端入网检测台账统计
* @author wr * @author wr
* @date 2023-02-28 11:14 * @date 2023-02-28 11:14
* @param param * @param param
* @param ids * @param ids
* @return List<TerminalStatistics> * @return List<TerminalStatistics>
*/ */
List<TerminalVO.TerminalStatistics> selectStatistics(@Param("param") TerminalParam param, List<TerminalVO.OrgStatistics> selectStatistics(@Param("param") TerminalParam param,
@Param("ids") List<String> ids);
/***
* 年度-终端入网检测台账统计
* @author wr
* @date 2023-02-28 11:14
* @param param
* @param ids
* @return List<TerminalStatistics>
*/
List<TerminalVO.DateStatistics> selectDateStatistics(@Param("param") TerminalParam param,
@Param("ids") List<String> ids); @Param("ids") List<String> ids);
/*** /***
@@ -37,6 +48,17 @@ public interface PmsTerminalDetectionMapper extends BaseMapper<PmsTerminalDetect
* @param ids * @param ids
* @return List<TerminalStatistics> * @return List<TerminalStatistics>
*/ */
List<TerminalVO.TerminalStatistics> selectCycleStatistics(@Param("param") TerminalParam.TerminalCycleParam param, List<TerminalVO.OrgStatistics> selectCycleStatistics(@Param("param") TerminalParam param,
@Param("ids") List<String> ids);
/***
* 已开展/未开展-周期检测统计
* @author wr
* @date 2023-02-28 11:14
* @param param
* @param ids
* @return List<TerminalStatistics>
*/
List<TerminalVO.ResultsStatistics> selectResultsCycleStatistics(@Param("param") TerminalParam param,
@Param("ids") List<String> ids); @Param("ids") List<String> ids);
} }

View File

@@ -4,25 +4,25 @@
<!-- 通用查询映射结果 --> <!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.njcn.process.pojo.po.PmsTerminalDetection"> <resultMap id="BaseResultMap" type="com.njcn.process.pojo.po.PmsTerminalDetection">
<id column="Id" property="id" /> <id column="Id" property="id"/>
<result column="Create_Time" property="createTime" /> <result column="Create_Time" property="createTime"/>
<result column="Update_Time" property="updateTime" /> <result column="Update_Time" property="updateTime"/>
<result column="Name" property="name" /> <result column="Name" property="name"/>
<result column="Org_Name" property="orgName" /> <result column="Org_Name" property="orgName"/>
<result column="Org_No" property="orgNo" /> <result column="Org_No" property="orgNo"/>
<result column="Manufacture" property="manufacture" /> <result column="Manufacture" property="manufacture"/>
<result column="Install_place" property="installPlace" /> <result column="Install_place" property="installPlace"/>
<result column="Inspection_Name" property="inspectionName" /> <result column="Inspection_Name" property="inspectionName"/>
<result column="Test_results" property="testResults" /> <result column="Test_results" property="testResults"/>
<result column="Inspection_Time" property="inspectionTime" /> <result column="Inspection_Time" property="inspectionTime"/>
<result column="Next_inspection_Time" property="nextInspectionTime" /> <result column="Next_inspection_Time" property="nextInspectionTime"/>
<result column="Inspection_Report" property="inspectionReport" /> <result column="Inspection_Report" property="inspectionReport"/>
<result column="Original_Report" property="originalReport" /> <result column="Original_Report" property="originalReport"/>
<result column="Status" property="status" /> <result column="Status" property="status"/>
<result column="Create_By" property="createBy" /> <result column="Create_By" property="createBy"/>
<result column="Update_By" property="updateBy" /> <result column="Update_By" property="updateBy"/>
</resultMap> </resultMap>
<select id="selectStatistics" resultType="com.njcn.process.pojo.vo.TerminalVO$TerminalStatistics"> <select id="selectStatistics" resultType="com.njcn.process.pojo.vo.TerminalVO$OrgStatistics">
SELECT SELECT
Org_No, Org_No,
count( id ) AS count count( id ) AS count
@@ -36,16 +36,16 @@
</foreach> </foreach>
</if> </if>
<if test="param!=null and param.startTime != null and param.startTime !=''"> <if test="param!=null and param.startTime != null and param.startTime !=''">
AND data_date >= #{param.startTime} AND Create_Time >= #{param.startTime}
</if> </if>
<if test="param!=null and param.endTime != null and param.endTime != ''"> <if test="param!=null and param.endTime != null and param.endTime != ''">
AND data_date &lt;= #{param.endTime} AND Create_Time &lt;= #{param.endTime}
</if> </if>
</where> </where>
GROUP BY GROUP BY
Org_No Org_No
</select> </select>
<select id="selectCycleStatistics" resultType="com.njcn.process.pojo.vo.TerminalVO$TerminalStatistics"> <select id="selectCycleStatistics" resultType="com.njcn.process.pojo.vo.TerminalVO$OrgStatistics">
SELECT SELECT
Org_No, Org_No,
count( id ) AS count count( id ) AS count
@@ -59,12 +59,73 @@
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="param!=null and param.testResults != null and param.testResults !=''"> <if test="param!=null and param.startTime != null and param.startTime !=''">
AND Test_results = #{param.testResults} AND Create_Time >= #{param.startTime}
</if>
<if test="param!=null and param.endTime != null and param.endTime != ''">
AND Create_Time &lt;= #{param.endTime}
</if> </if>
</where> </where>
GROUP BY GROUP BY
Org_No Org_No
</select> </select>
<select id="selectDateStatistics" resultType="com.njcn.process.pojo.vo.TerminalVO$DateStatistics">
SELECT
DATE_FORMAT(Create_Time,'%Y-%m-%d') as statisticsDate,
count( id ) AS count
FROM
pms_terminal_detection
<where>
<if test="ids != null and ids.size > 0">
AND org_no IN
<foreach collection='ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test="param!=null and param.startTime != null and param.startTime !=''">
AND Create_Time >= #{param.startTime}
</if>
<if test="param!=null and param.endTime != null and param.endTime != ''">
AND Create_Time &lt;= #{param.endTime}
</if>
</where>
GROUP BY
Create_Time
</select>
<select id="selectResultsCycleStatistics" resultType="com.njcn.process.pojo.vo.TerminalVO$ResultsStatistics">
SELECT
Org_Name,
ifnull( GROUP_CONCAT( CASE WHEN Test_results = '0' THEN count END SEPARATOR '' ), 0 ) as notExpanded,
ifnull( GROUP_CONCAT( CASE WHEN Test_results = '1' THEN count END SEPARATOR '' ), 0 ) as expanded
FROM
(
SELECT
Org_Name,
Test_results,
count( id ) AS count
FROM
pms_terminal_detection
<where>
Next_inspection_Time &lt;= DATE_FORMAT( now(), '%Y-%m-%d' )
<if test="ids != null and ids.size > 0">
AND org_no IN
<foreach collection='ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test="param!=null and param.startTime != null and param.startTime !=''">
AND Create_Time >= #{param.startTime}
</if>
<if test="param!=null and param.endTime != null and param.endTime != ''">
AND Create_Time &lt;= #{param.endTime}
</if>
</where>
GROUP BY
Org_Name,
Test_results
) a
GROUP BY
Org_Name
</select>
</mapper> </mapper>

View File

@@ -1,13 +1,18 @@
package com.njcn.process.service; package com.njcn.process.service;
import cn.hutool.json.JSONArray;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.param.TerminalParam;
import com.njcn.process.pojo.po.PmsTerminalDetection; import com.njcn.process.pojo.po.PmsTerminalDetection;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.process.pojo.vo.TerminalVO; import com.njcn.process.pojo.vo.TerminalVO;
import org.springframework.core.io.InputStreamResource;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.util.List; import java.util.List;
/** /**
@@ -33,9 +38,9 @@ public interface PmsTerminalDetectionService extends IService<PmsTerminalDetecti
* 导出模板 * 导出模板
* @author wr * @author wr
* @date 2023-02-27 16:14 * @date 2023-02-27 16:14
* @param response * @return InputStreamResource
*/ */
void exportTemplate(HttpServletResponse response); InputStreamResource exportTemplate() throws IOException;
/*** /***
* 终端检测监督单条新增 * 终端检测监督单条新增
@@ -44,7 +49,7 @@ public interface PmsTerminalDetectionService extends IService<PmsTerminalDetecti
* @param param * @param param
* @return Boolean * @return Boolean
*/ */
Boolean insertTerminal(TerminalParam param); Boolean insertTerminal(TerminalParam.TerminalInsertParam param);
/*** /***
* 终端检测监督批量新增 * 终端检测监督批量新增
* @author wr * @author wr
@@ -71,25 +76,35 @@ public interface PmsTerminalDetectionService extends IService<PmsTerminalDetecti
* @param ids * @param ids
* @return Boolean * @return Boolean
*/ */
Boolean dekTerminal(List<String> ids); Boolean delTerminal(List<String> ids);
/*** /***
* 批量导入检测报告 * 批量导入检测报告
* @author wr * @author wr
* @date 2023-02-28 9:55 * @date 2023-02-28 9:55
* @param files * @param files
* @param type
* @param response * @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 * @author wr
* @date 2023-02-28 11:03 * @date 2023-02-28 11:03
* @param param * @param param
* @return List<TerminalStatistics> * @return TerminalVO.TerminalStatistics
*/ */
List<TerminalVO.TerminalStatistics> getStatistics(TerminalParam param); TerminalVO.TerminalStatistics getStatistics(TerminalParam param);
/*** /***
* 周期检测统计 * 周期检测统计
@@ -98,5 +113,14 @@ public interface PmsTerminalDetectionService extends IService<PmsTerminalDetecti
* @param param * @param param
* @return List<TerminalStatistics> * @return List<TerminalStatistics>
*/ */
List<TerminalVO.TerminalStatistics> 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);
} }

View File

@@ -0,0 +1,16 @@
package com.njcn.process.service;
import com.njcn.process.pojo.po.ThsDeptAlarm;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author wr
* @since 2023-03-10
*/
public interface ThsDeptAlarmService extends IService<ThsDeptAlarm> {
}

View File

@@ -1,12 +1,10 @@
package com.njcn.process.service; package com.njcn.process.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.param.StrategyParam;
import com.njcn.process.pojo.po.ThsDeptAlarm;
import com.njcn.process.pojo.po.ThsWarnStrategy; import com.njcn.process.pojo.po.ThsWarnStrategy;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List; import java.util.List;
@@ -83,7 +81,7 @@ public interface ThsWarnStrategyService extends IService<ThsWarnStrategy> {
* @param monitorTag * @param monitorTag
* @return List<PmsMonitorInfoDTO> * @return List<PmsMonitorInfoDTO>
*/ */
List<StrategyParam.MonitorTree> getMonitor(String monitorTag,String orgId); List<StrategyParam.MonitorTree> getMonitor(String monitorTag, String orgId);
/*** /***
@@ -93,7 +91,7 @@ public interface ThsWarnStrategyService extends IService<ThsWarnStrategy> {
* @param param * @param param
* @return Boolean * @return Boolean
*/ */
Boolean bindMonitor(StrategyParam.BindMonitorParam param); Boolean bindMonitor(List<ThsDeptAlarm> param);
/*** /***

View File

@@ -7,13 +7,17 @@ import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.common.DataStateEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pms.enums.PmsDeviceResponseEnum; import com.njcn.device.pms.enums.PmsDeviceResponseEnum;
import com.njcn.oss.constant.OssPath; import com.njcn.oss.constant.OssPath;
import com.njcn.oss.enums.OssResponseEnum;
import com.njcn.oss.utils.FileStorageUtil; import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.poi.excel.ExcelUtil; import com.njcn.poi.excel.ExcelUtil;
import com.njcn.poi.util.PoiUtil; 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.njcn.process.service.PmsTerminalDetectionService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.process.utils.ExcelStyleUtil; 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.api.DeptFeignClient;
import com.njcn.user.pojo.dto.DeptDTO; import com.njcn.user.pojo.po.Dept;
import com.njcn.user.pojo.vo.PvTerminalTreeVO; import com.njcn.user.pojo.vo.PvTerminalTreeVO;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.core.io.InputStreamResource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse; 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.time.LocalDate;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -54,46 +69,78 @@ public class PmsTerminalDetectionServiceImpl extends ServiceImpl<PmsTerminalDete
private final DeptFeignClient deptFeignClient; private final DeptFeignClient deptFeignClient;
private final FileStorageUtil fileStorageUtil; private final FileStorageUtil fileStorageUtil;
private final DicDataFeignClient dicDataFeignClient;
@Override @Override
public Page<TerminalVO> terminalPage(TerminalParam.TerminalPageParam param) { public Page<TerminalVO> terminalPage(TerminalParam.TerminalPageParam param) {
List<DeptDTO> data = deptFeignClient.getDepSonDetailByDeptId(param.getId()).getData(); List<Dept> data = deptFeignClient.getDirectSonSelf(param.getId()).getData();
List<String> deptCodes = data.stream().map(DeptDTO::getCode).collect(Collectors.toList()); List<String> deptCodes = data.stream().map(Dept::getCode).collect(Collectors.toList());
Page<PmsTerminalDetection> pageList = this.page(new Page<>(param.getPageNum(), param.getPageSize()) Page<PmsTerminalDetection> pageList = this.page(new Page<>(param.getPageNum(), param.getPageSize())
, new LambdaQueryWrapper<PmsTerminalDetection>() , new LambdaQueryWrapper<PmsTerminalDetection>()
.eq(CollectionUtil.isNotEmpty(deptCodes), PmsTerminalDetection::getOrgName, deptCodes) .in(CollectionUtil.isNotEmpty(deptCodes), PmsTerminalDetection::getOrgNo, deptCodes)
.eq(PmsTerminalDetection::getStatus, DataStateEnum.ENABLE.getCode()) .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()) .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()) .ge(StrUtil.isNotBlank(param.getStartTime()), PmsTerminalDetection::getInspectionTime, param.getStartTime())
.le(StrUtil.isNotBlank(param.getEndTime()), PmsTerminalDetection::getInspectionTime, param.getEndTime()) .le(StrUtil.isNotBlank(param.getEndTime()), PmsTerminalDetection::getInspectionTime, param.getEndTime())
.le(param.getType() != 0, PmsTerminalDetection::getNextInspectionTime, LocalDate.now())
); );
List<TerminalVO> rMpWpPowerDetailVOS2 = BeanUtil.copyToList(pageList.getRecords(), TerminalVO.class); List<TerminalVO> rMpWpPowerDetailVOS2 = BeanUtil.copyToList(pageList.getRecords(), TerminalVO.class);
Page<TerminalVO> page = BeanUtil.copyProperties(pageList, Page.class); Page<TerminalVO> page = BeanUtil.copyProperties(pageList, Page.class);
page.setRecords(rMpWpPowerDetailVOS2); page.setRecords(rMpWpPowerDetailVOS2);
return null; return page;
} }
@Override @Override
public void exportTemplate(HttpServletResponse response) { public InputStreamResource exportTemplate() throws IOException {
ExportParams exportParams = new ExportParams("批量导入模板(请严格按照模板标准填入数据)", "终端入网检测录入信息"); ExportParams exportParams = new ExportParams("批量导入模板(请严格按照模板标准填入数据)", "终端入网检测录入信息");
exportParams.setStyle(ExcelStyleUtil.class); exportParams.setStyle(ExcelStyleUtil.class);
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, TerminalExcel.class, new ArrayList<TerminalExcel>()); Workbook workbook = ExcelExportUtil.exportExcel(exportParams, TerminalExcel.class, new ArrayList<TerminalExcel>());
PoiUtil.exportFileByWorkbook(workbook, "终端入网检测录入模板.xlsx", response); List<DictData> 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 @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<PmsTerminalDetection>()
.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); 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); return this.save(detection);
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void batchTerminal(MultipartFile file, HttpServletResponse response) { public void batchTerminal(MultipartFile file, HttpServletResponse response) {
ImportParams params = new ImportParams(); ImportParams params = new ImportParams();
params.setHeadRows(1); params.setHeadRows(1);
params.setTitleRows(1); params.setTitleRows(1);
@@ -115,85 +162,179 @@ public class PmsTerminalDetectionServiceImpl extends ServiceImpl<PmsTerminalDete
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateTerminal(TerminalParam.TerminalUpdateParam param) { public Boolean updateTerminal(TerminalParam.TerminalUpdateParam param) {
long count = this.count(new LambdaQueryWrapper<PmsTerminalDetection>() PmsTerminalDetection one = this.getOne(new LambdaQueryWrapper<PmsTerminalDetection>()
.ne(PmsTerminalDetection::getId, param.getId()) .ne(PmsTerminalDetection::getId, param.getId())
.and(wrapper -> .and(wrapper ->
wrapper.eq(PmsTerminalDetection::getName, param.getName()) wrapper.eq(PmsTerminalDetection::getName, param.getName())
) )
); );
if (count > 0) { if (ObjectUtil.isNotNull(one)) {
throw new BusinessException(PmsDeviceResponseEnum.MODEL_NAME_REPEAT); throw new BusinessException(PmsDeviceResponseEnum.MODEL_NAME_REPEAT);
} }
PmsTerminalDetection detection = BeanUtil.copyProperties(param, PmsTerminalDetection.class); PmsTerminalDetection detection = BeanUtil.copyProperties(param, PmsTerminalDetection.class);
return this.updateById(detection); boolean b = this.updateById(detection);
if(b){
PmsTerminalDetection cc = this.getOne(new LambdaQueryWrapper<PmsTerminalDetection>()
.eq(PmsTerminalDetection::getId, param.getId())
);
if(StrUtil.isNotBlank(cc.getOriginalReport())){
if(!cc.getOriginalReport().equals(param.getOriginalReport())){
fileStorageUtil.deleteFile(cc.getOriginalReport());
}
}
}
return b;
} }
@Override @Override
public Boolean dekTerminal(List<String> ids) { @Transactional(rollbackFor = Exception.class)
public Boolean delTerminal(List<String> ids) {
return this.removeByIds(ids); return this.removeByIds(ids);
} }
@Override @Override
public void importReport(MultipartFile[] files, HttpServletResponse response) { @Transactional(rollbackFor = Exception.class)
public void importReport(MultipartFile[] files, Integer type, HttpServletResponse response) {
PmsTerminalDetection detection; PmsTerminalDetection detection;
List<PmsTerminalDetection> data = new ArrayList<>(); List<PmsTerminalDetection> data = new ArrayList<>();
//传入的文件格式(终端编号-检测报告.docx);
for (int i = 0; i < files.length; i++) { for (int i = 0; i < files.length; i++) {
detection = new PmsTerminalDetection(); detection = new PmsTerminalDetection();
//文件上传的地址
String url = fileStorageUtil.uploadMultipart(files[i], OssPath.ALGORITHM);
//上传的文件名称 //上传的文件名称
String originalFilename = files[i].getOriginalFilename(); String originalFilename = files[i].getOriginalFilename();
String[] split = originalFilename.split("-"); if (StrUtil.isNotBlank(originalFilename)) {
if (split.length > 0) { //获取编号
if (split[1].substring(0, split[1].indexOf(".")).equals("检测报告")) { String terminalIds = originalFilename.substring(0, originalFilename.indexOf("-"));
//todo 文件名称 //判断数据是否存在
detection.setInspectionReport(url); int count = this.count(new LambdaQueryWrapper<PmsTerminalDetection>()
detection.setId(split[0]); .eq(PmsTerminalDetection::getId, terminalIds));
if (count == 0) {
continue;
}
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); data.add(detection);
} }
if (split[1].substring(0, split[1].indexOf(".")).equals("原始数据报告")) { } else {
//todo 文件名称 //传入的文件格式(终端编号-检测报告(2023-03-01).docx);
detection.setOriginalReport(url); if (fileName.substring(0, fileName.indexOf("(")).equals("检测报告")) {
detection.setId(split[0]); 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); data.add(detection);
} }
} }
} }
}
}
if (CollectionUtil.isNotEmpty(data)) { if (CollectionUtil.isNotEmpty(data)) {
Map<String, PmsTerminalDetection> terminalMap = data.stream().collect(Collectors.toMap(PmsTerminalDetection::getId, Function.identity(), (key1, key2) -> { // Map<String, PmsTerminalDetection> terminalMap = data.stream().collect(Collectors.toMap(PmsTerminalDetection::getId, Function.identity(), (key1, key2) -> {
//检测报告告为空 // //检测报告告为空
if (key1.getInspectionReport() == null) { // if (key1.getInspectionReport() == null) {
key1.setInspectionReport(key2.getInspectionReport()); // key1.setInspectionReport(key2.getInspectionReport());
// key1.setInspectionName(key2.getInspectionName());
// }
// //原始数据报告为空
// if (key1.getOriginalReport() == null) {
// key1.setOriginalReport(key2.getOriginalReport());
// key1.setOriginalName(key2.getOriginalName());
// }
// return key1;
// }));
// List<PmsTerminalDetection> updateTerminal = new ArrayList<>(terminalMap.values());
//todo 批量删除功能是否需要
List<String> delIds = data.stream().map(PmsTerminalDetection::getId).collect(Collectors.toList());
List<PmsTerminalDetection> terminals = this.listByIds(delIds);
List<String> remove = new ArrayList<>();
for (PmsTerminalDetection terminal : terminals) {
//用于区分是0:原始数据报告还是1:检测报告
if (type == 0) {
if(StrUtil.isNotBlank(terminal.getOriginalReport())){
remove.add(terminal.getOriginalReport());
} }
//原始数据报告为空 } else {
if (key1.getOriginalReport() == null) { if(StrUtil.isNotBlank(terminal.getInspectionReport())){
key1.setOriginalReport(key2.getOriginalReport()); remove.add(terminal.getInspectionReport());
} }
return key1; }
})); }
List<PmsTerminalDetection> updateTerminal = new ArrayList<>(terminalMap.values()); for (String s : remove) {
this.updateBatchById(updateTerminal); fileStorageUtil.deleteFile(s);
}
this.updateBatchById(data);
} }
} }
@Override @Override
public List<TerminalVO.TerminalStatistics> getStatistics(TerminalParam param) { public InputStreamResource reportDownload(TerminalParam.DownloadParam param) throws IOException {
List<DeptDTO> deptDTOS = deptFeignClient.getDepSonDetailByDeptId(param.getId()).getData(); PmsTerminalDetection terminal = this.getById(param.getId());
List<String> ids = deptDTOS.stream().map(DeptDTO::getCode).collect(Collectors.toList()); if (ObjectUtil.isNull(terminal)) {
List<TerminalVO.TerminalStatistics> list = this.baseMapper.selectStatistics(param, ids); if (StringUtils.isEmpty(terminal)) {
return getStatisticsList(deptDTOS, list); 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 @Override
public List<TerminalVO.TerminalStatistics> getCycleStatistics(TerminalParam.TerminalCycleParam param) { public TerminalVO.TerminalStatistics getStatistics(TerminalParam param) {
List<DeptDTO> deptDTOS = deptFeignClient.getDepSonDetailByDeptId(param.getId()).getData(); TerminalVO.TerminalStatistics statistics=new TerminalVO.TerminalStatistics();
List<String> ids = deptDTOS.stream().map(DeptDTO::getCode).collect(Collectors.toList()); List<Dept> deptDTOS = deptFeignClient.getDirectSonSelf(param.getId()).getData();
List<TerminalVO.TerminalStatistics> list = this.baseMapper.selectCycleStatistics(param, ids); List<String> ids = deptDTOS.stream().map(Dept::getCode).collect(Collectors.toList());
return getStatisticsList(deptDTOS, list); List<TerminalVO.OrgStatistics> 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<Dept> deptDTOS = deptFeignClient.getDirectSonSelf(param.getId()).getData();
List<String> ids = deptDTOS.stream().map(Dept::getCode).collect(Collectors.toList());
List<TerminalVO.OrgStatistics> 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<PmsTerminalDete
* @param list * @param list
* @return List<TerminalStatistics> * @return List<TerminalStatistics>
*/ */
private List<TerminalVO.TerminalStatistics> getStatisticsList(List<DeptDTO> deptDTOS, List<TerminalVO.TerminalStatistics> list) { private List<TerminalVO.OrgStatistics> getStatisticsList(List<Dept> deptDTOS, List<TerminalVO.OrgStatistics> list) {
Map<String, String> deptMap = deptDTOS.stream().collect(Collectors.toMap(DeptDTO::getCode, DeptDTO::getName)); Map<String, String> deptMap = deptDTOS.stream().collect(Collectors.toMap(Dept::getCode, Dept::getName));
for (TerminalVO.TerminalStatistics t : list) { for (TerminalVO.OrgStatistics t : list) {
if (deptMap.containsKey(t.getOrgNo())) { if (deptMap.containsKey(t.getOrgNo())) {
t.setOrgName(deptMap.get(t.getOrgNo())); t.setOrgName(deptMap.get(t.getOrgNo()));
} }
} }
Map<String, TerminalVO.TerminalStatistics> listMap = list.stream().collect( Map<String, TerminalVO.OrgStatistics> listMap = list.stream().collect(
Collectors.toMap(TerminalVO.TerminalStatistics::getOrgNo, Function.identity())); Collectors.toMap(TerminalVO.OrgStatistics::getOrgNo, Function.identity()));
List<DeptDTO> notDeptDTOS = deptDTOS.stream().filter(r -> !listMap.containsKey(r.getCode())) List<Dept> notDeptDTOS = deptDTOS.stream().filter(r -> !listMap.containsKey(r.getCode()))
.collect(Collectors.toList()); .collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(notDeptDTOS)) { if (CollectionUtil.isNotEmpty(notDeptDTOS)) {
TerminalVO.TerminalStatistics notTerminal; TerminalVO.OrgStatistics notTerminal;
for (DeptDTO notDeptDTO : notDeptDTOS) { for (Dept notDeptDTO : notDeptDTOS) {
notTerminal = new TerminalVO.TerminalStatistics(); notTerminal = new TerminalVO.OrgStatistics();
notTerminal.setOrgNo(notDeptDTO.getCode()); notTerminal.setOrgNo(notDeptDTO.getCode());
notTerminal.setOrgName(notDeptDTO.getName()); notTerminal.setOrgName(notDeptDTO.getName());
notTerminal.setCount(0); notTerminal.setCount(0);
@@ -230,12 +371,15 @@ public class PmsTerminalDetectionServiceImpl extends ServiceImpl<PmsTerminalDete
} }
/*** /***
* 批量导入t终端入网检测信息 * 批量导入终端入网检测信息
* @author wr * @author wr
* @date 2023-02-28 14:05 * @date 2023-02-28 14:05
* @param terminalList * @param terminalList
*/ */
private void saveTerminalBase(List<TerminalExcel> terminalList) { private void saveTerminalBase(List<TerminalExcel> terminalList) {
List<DictData> manufacturerList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_MANUFACTURER.getCode()).getData();
//厂商信息
Map<String, String> manufacturerMap = manufacturerList.stream().collect(Collectors.toMap(DictData::getName, DictData::getId));
List<PvTerminalTreeVO> data = deptFeignClient.allDeptList().getData(); List<PvTerminalTreeVO> data = deptFeignClient.allDeptList().getData();
List<PmsTerminalDetection> list = this.list(new LambdaQueryWrapper<PmsTerminalDetection>() List<PmsTerminalDetection> list = this.list(new LambdaQueryWrapper<PmsTerminalDetection>()
.eq(PmsTerminalDetection::getStatus, DataStateEnum.ENABLE.getCode())); .eq(PmsTerminalDetection::getStatus, DataStateEnum.ENABLE.getCode()));
@@ -265,6 +409,13 @@ public class PmsTerminalDetectionServiceImpl extends ServiceImpl<PmsTerminalDete
addMsg(terminalExcelMsg, terminalExcel, msg, "当前部门机构模糊匹配出现多个部门,请详细编写部门机构"); addMsg(terminalExcelMsg, terminalExcel, msg, "当前部门机构模糊匹配出现多个部门,请详细编写部门机构");
continue; continue;
} }
if(!manufacturerMap.containsKey(terminalExcel.getManufacture())){
addMsg(terminalExcelMsg, terminalExcel, msg, "当前生产厂商名称不存在,请检查生产厂商名称");
continue;
}else{
terminalExcel.setManufacture( manufacturerMap.get(terminalExcel.getManufacture()));
}
detection = BeanUtil.copyProperties(terminalExcel, PmsTerminalDetection.class); detection = BeanUtil.copyProperties(terminalExcel, PmsTerminalDetection.class);
detection.setOrgNo(deptList.get(0).getCode()); detection.setOrgNo(deptList.get(0).getCode());
detection.setOrgName(deptList.get(0).getName()); detection.setOrgName(deptList.get(0).getName());
@@ -296,4 +447,5 @@ public class PmsTerminalDetectionServiceImpl extends ServiceImpl<PmsTerminalDete
msg.setMsg(content); msg.setMsg(content);
terminalExcelMsg.add(msg); terminalExcelMsg.add(msg);
} }
} }

View File

@@ -0,0 +1,20 @@
package com.njcn.process.service.impl;
import com.njcn.process.pojo.po.ThsDeptAlarm;
import com.njcn.process.mapper.ThsDeptAlarmMapper;
import com.njcn.process.service.ThsDeptAlarmService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author wr
* @since 2023-03-10
*/
@Service
public class ThsDeptAlarmServiceImpl extends ServiceImpl<ThsDeptAlarmMapper, ThsDeptAlarm> implements ThsDeptAlarmService {
}

View File

@@ -8,13 +8,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.device.pms.api.MonitorClient; import com.njcn.device.pms.api.MonitorClient;
import com.njcn.device.pms.pojo.dto.PmsMonitorDTO; 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.device.pms.pojo.param.PmsMonitorParam;
import com.njcn.process.pojo.param.StrategyParam; 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.pojo.po.ThsWarnStrategy;
import com.njcn.process.mapper.ThsWarnStrategyMapper; import com.njcn.process.mapper.ThsWarnStrategyMapper;
import com.njcn.process.pojo.po.ThsWarnStrategyAss; import com.njcn.process.pojo.po.ThsWarnStrategyAss;
import com.njcn.process.service.ThsDeptAlarmService;
import com.njcn.process.service.ThsWarnStrategyService; import com.njcn.process.service.ThsWarnStrategyService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.user.api.DeptFeignClient; import com.njcn.user.api.DeptFeignClient;
@@ -42,6 +42,7 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl<ThsWarnStrategyMappe
private final ThsWarnStrategyAssServiceImpl thsWarnStrategyAssService; private final ThsWarnStrategyAssServiceImpl thsWarnStrategyAssService;
private final MonitorClient monitorClient; private final MonitorClient monitorClient;
private final DeptFeignClient deptFeignClient; private final DeptFeignClient deptFeignClient;
private final ThsDeptAlarmService thsDeptAlarmService;
@Override @Override
public Page<ThsWarnStrategy> strategyPage(StrategyParam.StrategyPageParam param) { public Page<ThsWarnStrategy> strategyPage(StrategyParam.StrategyPageParam param) {
@@ -63,9 +64,9 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl<ThsWarnStrategyMappe
@Override @Override
public Boolean bindStrategy(StrategyParam.BindParam param) { public Boolean bindStrategy(StrategyParam.BindParam param) {
List<ThsWarnStrategyAss> assList=new ArrayList<>(); List<ThsWarnStrategyAss> assList = new ArrayList<>();
//监测点标签绑定 //监测点标签绑定
ThsWarnStrategyAss ass=new ThsWarnStrategyAss(); ThsWarnStrategyAss ass = new ThsWarnStrategyAss();
ass.setWarnId(param.getId()); ass.setWarnId(param.getId());
ass.setAssId(param.getMonitorTag()); ass.setAssId(param.getMonitorTag());
ass.setType(0); ass.setType(0);
@@ -73,14 +74,14 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl<ThsWarnStrategyMappe
//指标类型绑定 //指标类型绑定
ThsWarnStrategyAss assType; ThsWarnStrategyAss assType;
for (String indicatorType : param.getIndicatorTypes()) { for (String indicatorType : param.getIndicatorTypes()) {
assType=new ThsWarnStrategyAss(); assType = new ThsWarnStrategyAss();
assType.setWarnId(param.getId()); assType.setWarnId(param.getId());
assType.setAssId(indicatorType); assType.setAssId(indicatorType);
assType.setType(1); assType.setType(1);
assList.add(assType); assList.add(assType);
} }
thsWarnStrategyAssService.saveBatch(assList); thsWarnStrategyAssService.saveBatch(assList);
ThsWarnStrategy warnStrategy=new ThsWarnStrategy(); ThsWarnStrategy warnStrategy = new ThsWarnStrategy();
warnStrategy.setId(param.getId()); warnStrategy.setId(param.getId());
warnStrategy.setOperation(param.getOperation()); warnStrategy.setOperation(param.getOperation());
return this.updateById(warnStrategy); return this.updateById(warnStrategy);
@@ -107,7 +108,7 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl<ThsWarnStrategyMappe
} }
@Override @Override
public List<StrategyParam.MonitorTree> getMonitor(String monitorTag,String orgId) { public List<StrategyParam.MonitorTree> getMonitor(String monitorTag, String orgId) {
PmsMonitorParam param = new PmsMonitorParam(); PmsMonitorParam param = new PmsMonitorParam();
param.setMonitorTags(Arrays.asList(monitorTag)); param.setMonitorTags(Arrays.asList(monitorTag));
List<PmsMonitorDTO> data = monitorClient.getMonitorInfoListByCond(param).getData(); List<PmsMonitorDTO> data = monitorClient.getMonitorInfoListByCond(param).getData();
@@ -116,18 +117,19 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl<ThsWarnStrategyMappe
List<DeptDTO> deptDTOS = deptInfos.stream().filter(org -> org.getId().equals(orgId)).collect(Collectors.toList()); List<DeptDTO> deptDTOS = deptInfos.stream().filter(org -> org.getId().equals(orgId)).collect(Collectors.toList());
List<StrategyParam.MonitorTree> monitorTrees =new ArrayList<>(); List<StrategyParam.MonitorTree> monitorTrees = new ArrayList<>();
StrategyParam.MonitorTree tree=new StrategyParam.MonitorTree(); StrategyParam.MonitorTree tree = new StrategyParam.MonitorTree();
tree.setId(deptDTOS.get(0).getId()); tree.setId(deptDTOS.get(0).getId());
tree.setName(deptDTOS.get(0).getName()); tree.setName(deptDTOS.get(0).getName());
tree.setChildPower(getPowers(deptDTOS.get(0).getCode(),data)); tree.setChildPower(getPowers(deptDTOS.get(0).getCode(), data));
tree.setChildren( recursionSelectList(orgId, deptInfos,data)); tree.setChildren(recursionSelectList(orgId, deptInfos, data));
monitorTrees.add(tree); monitorTrees.add(tree);
return monitorTrees; return monitorTrees;
} }
/** /**
* 递归生成监测点树 * 递归生成监测点树
*
* @param orgId * @param orgId
* @param deptInfos * @param deptInfos
* @param data * @param data
@@ -141,8 +143,8 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl<ThsWarnStrategyMappe
StrategyParam.MonitorTree tree = new StrategyParam.MonitorTree(); StrategyParam.MonitorTree tree = new StrategyParam.MonitorTree();
tree.setId(customer.getId()); tree.setId(customer.getId());
tree.setName(customer.getName()); tree.setName(customer.getName());
tree.setChildPower(getPowers(customer.getCode(),data)); tree.setChildPower(getPowers(customer.getCode(), data));
List<StrategyParam.MonitorTree> children = recursionSelectList(customer.getId(), deptInfos,data); List<StrategyParam.MonitorTree> children = recursionSelectList(customer.getId(), deptInfos, data);
tree.setChildren(children); tree.setChildren(children);
menuSelectList.add(tree); menuSelectList.add(tree);
})); }));
@@ -157,23 +159,23 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl<ThsWarnStrategyMappe
* @param data * @param data
* @return List<Power> * @return List<Power>
*/ */
private static List<StrategyParam.Power> getPowers(String orgCode, List<PmsMonitorDTO> data){ private static List<StrategyParam.Power> getPowers(String orgCode, List<PmsMonitorDTO> data) {
//变电站信息初始化 //变电站信息初始化
List<StrategyParam.Power> powers=new ArrayList<>(); List<StrategyParam.Power> powers = new ArrayList<>();
//获取监测点信息 //获取监测点信息
List<PmsMonitorDTO> monitorDTOS = data.stream().filter(dept -> dept.getOrgId().equals(orgCode)).collect(Collectors.toList()); List<PmsMonitorDTO> monitorDTOS = data.stream().filter(dept -> dept.getOrgId().equals(orgCode)).collect(Collectors.toList());
Map<String, List<PmsMonitorDTO>> collect = monitorDTOS.stream().collect( Map<String, List<PmsMonitorDTO>> collect = monitorDTOS.stream().collect(
Collectors.groupingBy(c-> c.getPowerrId()+ "_" + c.getPowerrName())); Collectors.groupingBy(c -> c.getPowerrId() + "_" + c.getPowerrName()));
//获取变电站和监测点信息 //获取变电站和监测点信息
collect.forEach((key,value)->{ collect.forEach((key, value) -> {
String[] split = key.split("_"); String[] split = key.split("_");
StrategyParam.Power power=new StrategyParam.Power(); StrategyParam.Power power = new StrategyParam.Power();
power.setId(split[0]); power.setId(split[0]);
power.setName(split[1]); power.setName(split[1]);
//监测点信息 //监测点信息
List<StrategyParam.Power> monitors=new ArrayList(); List<StrategyParam.Power> monitors = new ArrayList();
for (PmsMonitorDTO dto : value) { for (PmsMonitorDTO dto : value) {
StrategyParam.Power childMonitor=new StrategyParam.Power(); StrategyParam.Power childMonitor = new StrategyParam.Power();
childMonitor.setId(dto.getId()); childMonitor.setId(dto.getId());
childMonitor.setName(dto.getName()); childMonitor.setName(dto.getName());
monitors.add(childMonitor); monitors.add(childMonitor);
@@ -185,13 +187,14 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl<ThsWarnStrategyMappe
} }
@Override @Override
public Boolean bindMonitor(StrategyParam.BindMonitorParam param) { public Boolean bindMonitor(List<ThsDeptAlarm> param) {
return null; return thsDeptAlarmService.saveBatch(param);
} }
@Override @Override
public Boolean delStrategy(List<String> ids) { public Boolean delStrategy(List<String> ids) {
Assert.isTrue(CollectionUtil.isNotEmpty(ids) , "id为空,不能删除"); Assert.isTrue(CollectionUtil.isNotEmpty(ids), "id为空,不能删除");
thsWarnStrategyAssService.removeByIds(ids);
return this.removeByIds(ids); return this.removeByIds(ids);
} }
} }