Browse Source

优化魔法值

优化设备状态列表以及设备状态统计
develop
zhaoxianglong 10 months ago
parent
commit
28d3454afb
  1. 13
      zc-business/src/main/java/com/zc/business/controller/StatusController.java
  2. 99
      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") @GetMapping ("/tablist")
public TableDataInfo getTabList(Status status) 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())); status.setTypes(status.getType().split(UniversalEnum.COMMA.getValue()));
List<Status> listStatus = statusService.listStatusByTypes(status); List<Status> listStatus = statusService.listStatusByTypes(status);
return getDataTable(listStatus); return getDataTable(listStatus);
@ -68,6 +71,9 @@ public class StatusController extends BaseController {
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, Status status) 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())); status.setTypes(status.getType().split(UniversalEnum.COMMA.getValue()));
List<Status> listStatus = statusService.export(status); List<Status> listStatus = statusService.export(status);
ExcelUtil<Status> util = new ExcelUtil<>(Status.class); ExcelUtil<Status> util = new ExcelUtil<>(Status.class);
@ -78,6 +84,9 @@ public class StatusController extends BaseController {
@ApiOperation("设备状态柱状图按时间和类型") @ApiOperation("设备状态柱状图按时间和类型")
@GetMapping("/list") @GetMapping("/list")
public AjaxResult getStatusList(Status status) { 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 todayStart = status.getStartTime().truncatedTo(ChronoUnit.DAYS);
LocalDateTime currentTime = status.getTime().truncatedTo(ChronoUnit.DAYS).plusDays(UniversalEnum.ONE.getNumber()); LocalDateTime currentTime = status.getTime().truncatedTo(ChronoUnit.DAYS).plusDays(UniversalEnum.ONE.getNumber());
status.setStartTime(todayStart); status.setStartTime(todayStart);
@ -91,7 +100,7 @@ public class StatusController extends BaseController {
for (String type : types) { for (String type : types) {
Map<String, String> collect = statuses.stream().filter(item -> Objects.equals(item.getType(), type)) Map<String, String> collect = statuses.stream().filter(item -> Objects.equals(item.getType(), type))
.collect(Collectors.toMap( .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 Status::getSuccessRate
)); ));
maps.put(type, collect); maps.put(type, collect);

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

@ -11,6 +11,45 @@ import java.time.LocalDateTime;
* @Date 2024/01/04 * @Date 2024/01/04
*/ */
public class Status { 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() { public String getDeviceIp() {
return deviceIp; return deviceIp;
} }
@ -18,6 +57,7 @@ public class Status {
public void setDeviceIp(String deviceIp) { public void setDeviceIp(String deviceIp) {
this.deviceIp = deviceIp; this.deviceIp = deviceIp;
} }
public LocalDateTime getStartTime() { public LocalDateTime getStartTime() {
return startTime; return startTime;
} }
@ -110,31 +150,6 @@ public class Status {
this.deviceStatus = deviceStatus; 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() { public String getSuccessRate() {
return successRate; return successRate;
} }
@ -150,22 +165,6 @@ public class Status {
public void setLostRate(String lostRate) { public void setLostRate(String lostRate) {
this.lostRate = 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() { public String getDirection() {
return direction; return direction;
@ -215,10 +214,6 @@ public class Status {
this.deviceId = deviceId; this.deviceId = deviceId;
} }
// @Excel(name = "型号")
private String model;
public String getType() { public String getType() {
return type; return type;
} }
@ -227,20 +222,6 @@ public class Status {
this.type = type; 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() { public Integer getUseState() {
return useState; 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"> <if test="status.useState != null and status.useState != 0">
AND d.use_state = #{status.useState} AND d.use_state = #{status.useState}
</if> </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> </where>
<if test="status.orderByField != null and status.orderDirection != null"> <if test="status.orderByField != null and status.orderDirection != null">
ORDER BY ${status.orderByField} ${status.orderDirection} ORDER BY ${status.orderByField} ${status.orderDirection}
</if> </if>
<!-- <if test="status.pageNum != null and status.pageSize != null">-->
<!-- LIMIT #{status.pageSize} OFFSET #{status.pageNum}-->
<!-- </if>-->
</select> </select>
@ -223,6 +232,12 @@
<if test="status.useState != null and status.useState != 0"> <if test="status.useState != null and status.useState != 0">
AND d.use_state = #{status.useState} AND d.use_state = #{status.useState}
</if> </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 GROUP BY
d.child_type, d.child_type,
d.device_type, d.device_type,

Loading…
Cancel
Save