Browse Source

优化魔法值

优化设备状态列表以及设备状态统计
develop
zhaoxianglong 8 months ago
parent
commit
28d3454afb
  1. 13
      zc-business/src/main/java/com/zc/business/controller/StatusController.java
  2. 101
      zc-business/src/main/java/com/zc/business/domain/Status.java
  3. 15
      zc-business/src/main/resources/mapper/business/StatusMapper.xml

13
zc-business/src/main/java/com/zc/business/controller/StatusController.java

@ -53,7 +53,10 @@ public class StatusController extends BaseController {
@GetMapping ("/tablist")
public TableDataInfo getTabList(Status status)
{
//startPage();
if (status.getDeviceName()!=null) {
status.setDeviceName(status.getDeviceName().replaceAll(UniversalEnum.BLANK_SPACE.getValue(),UniversalEnum.PLUS_SIGN.getValue()));
}
startPage();
status.setTypes(status.getType().split(UniversalEnum.COMMA.getValue()));
List<Status> listStatus = statusService.listStatusByTypes(status);
return getDataTable(listStatus);
@ -68,6 +71,9 @@ public class StatusController extends BaseController {
@PostMapping("/export")
public void export(HttpServletResponse response, Status status)
{
if (status.getDeviceName()!=null) {
status.setDeviceName(status.getDeviceName().replaceAll(UniversalEnum.BLANK_SPACE.getValue(),UniversalEnum.PLUS_SIGN.getValue()));
}
status.setTypes(status.getType().split(UniversalEnum.COMMA.getValue()));
List<Status> listStatus = statusService.export(status);
ExcelUtil<Status> util = new ExcelUtil<>(Status.class);
@ -78,6 +84,9 @@ public class StatusController extends BaseController {
@ApiOperation("设备状态柱状图按时间和类型")
@GetMapping("/list")
public AjaxResult getStatusList(Status status) {
if (status.getDeviceName()!=null) {
status.setDeviceName(status.getDeviceName().replaceAll(UniversalEnum.BLANK_SPACE.getValue(),UniversalEnum.PLUS_SIGN.getValue()));
}
LocalDateTime todayStart = status.getStartTime().truncatedTo(ChronoUnit.DAYS);
LocalDateTime currentTime = status.getTime().truncatedTo(ChronoUnit.DAYS).plusDays(UniversalEnum.ONE.getNumber());
status.setStartTime(todayStart);
@ -91,7 +100,7 @@ public class StatusController extends BaseController {
for (String type : types) {
Map<String, String> collect = statuses.stream().filter(item -> Objects.equals(item.getType(), type))
.collect(Collectors.toMap(
item -> item.getTime().getYear() + UniversalEnum.SHORT_BAR.getNumber() + item.getTime().getMonthValue() + UniversalEnum.SHORT_BAR.getValue() + item.getTime().getDayOfMonth(),
item -> item.getTime().getYear() + UniversalEnum.SHORT_BAR.getValue() + item.getTime().getMonthValue() + UniversalEnum.SHORT_BAR.getValue() + item.getTime().getDayOfMonth(),
Status::getSuccessRate
));
maps.put(type, collect);

101
zc-business/src/main/java/com/zc/business/domain/Status.java

@ -11,6 +11,45 @@ import java.time.LocalDateTime;
* @Date 2024/01/04
*/
public class Status {
private long id;
@Excel(name = "设备桩号")
private String deviceNo;
@Excel(name = "设备名称")
private String deviceName;
@Excel(name = "状态")
private String deviceStatus;
//@Excel(name = "使用状态")
private Integer useState;
private Integer pageNum;
private Integer pageSize;
private Long deviceId;
private String sectionId;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime;
@Excel(name = "设备IP")
private String deviceIp;
private String successRate;
private String lostRate;
@Excel(name = "方向")
private String direction;
@Excel(name = "厂家")
private String production;
// @Excel(name = "型号")
private String model;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "监测时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime time;
//@Excel(name = "网段")
private String network;
private String content;
//@Excel(name = "类型")
private String type;
private String[] types;
private String orderByField;
private String orderDirection;
public String getDeviceIp() {
return deviceIp;
}
@ -18,11 +57,12 @@ public class Status {
public void setDeviceIp(String deviceIp) {
this.deviceIp = deviceIp;
}
public LocalDateTime getStartTime() {
return startTime;
}
public Status(long id, String deviceNo, String deviceName, String deviceStatus, String sectionId, LocalDateTime time, LocalDateTime startTime, String deviceIp, String successRate, String lostRate, String direction, String production, String model, String network, String content, String type,Integer pageNum, Integer pageSize) {
public Status(long id, String deviceNo, String deviceName, String deviceStatus, String sectionId, LocalDateTime time, LocalDateTime startTime, String deviceIp, String successRate, String lostRate, String direction, String production, String model, String network, String content, String type, Integer pageNum, Integer pageSize) {
this.id = id;
this.deviceNo = deviceNo;
this.deviceName = deviceName;
@ -110,31 +150,6 @@ public class Status {
this.deviceStatus = deviceStatus;
}
private long id;
@Excel(name = "设备桩号")
private String deviceNo;
@Excel(name = "设备类型")
private String deviceName;
@Excel(name = "状态")
private String deviceStatus;
//@Excel(name = "使用状态")
private Integer useState;
private Integer pageNum;
private Integer pageSize;
private Long deviceId;
private String sectionId;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern ="yyyy-MM-dd HH:mm:ss")
@Excel(name = "监测时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime time;
public String getSuccessRate() {
return successRate;
}
@ -150,22 +165,6 @@ public class Status {
public void setLostRate(String lostRate) {
this.lostRate = lostRate;
}
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern ="yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime;
@Excel(name = "设备IP")
private String deviceIp;
private String successRate;
private String lostRate;
@Excel(name = "方向")
private String direction;
@Excel(name = "厂家")
private String production;
public String getDirection() {
return direction;
@ -215,10 +214,6 @@ public class Status {
this.deviceId = deviceId;
}
// @Excel(name = "型号")
private String model;
public String getType() {
return type;
}
@ -227,20 +222,6 @@ public class Status {
this.type = type;
}
//@Excel(name = "网段")
private String network;
private String content;
//@Excel(name = "类型")
private String type;
private String[] types;
private String orderByField;
private String orderDirection;
public Integer getUseState() {
return useState;
}

15
zc-business/src/main/resources/mapper/business/StatusMapper.xml

@ -187,10 +187,19 @@
<if test="status.useState != null and status.useState != 0">
AND d.use_state = #{status.useState}
</if>
<if test="status.deviceName != null and status.deviceName != ''">
AND s.device_name like concat('%', #{status.deviceName}, '%')
</if>
<if test="status.direction != null">
AND d.direction = #{status.direction}
</if>
</where>
<if test="status.orderByField != null and status.orderDirection != null">
ORDER BY ${status.orderByField} ${status.orderDirection}
</if>
<!-- <if test="status.pageNum != null and status.pageSize != null">-->
<!-- LIMIT #{status.pageSize} OFFSET #{status.pageNum}-->
<!-- </if>-->
</select>
@ -223,6 +232,12 @@
<if test="status.useState != null and status.useState != 0">
AND d.use_state = #{status.useState}
</if>
<if test="status.deviceName != null and status.deviceName != ''">
AND s.device_name like concat('%', #{status.deviceName}, '%')
</if>
<if test="status.direction != null">
AND d.direction = #{status.direction}
</if>
GROUP BY
d.child_type,
d.device_type,

Loading…
Cancel
Save