Browse Source

优化魔法值

优化设备状态列表以及设备状态统计
develop
zhaoxianglong 8 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")
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);

99
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,6 +57,7 @@ public class Status {
public void setDeviceIp(String deviceIp) {
this.deviceIp = deviceIp;
}
public LocalDateTime getStartTime() {
return startTime;
}
@ -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