Compare commits
3 Commits
0787e4b205
...
d97928b38a
Author | SHA1 | Date | |
---|---|---|---|
d97928b38a | |||
1d37bfb719 | |||
98ef841f18 |
@ -1,17 +1,16 @@
|
|||||||
package com.fuyuanshen.web.controller.device;
|
package com.fuyuanshen.web.controller.device;
|
||||||
|
|
||||||
import com.fuyuanshen.common.core.domain.R;
|
import com.fuyuanshen.common.core.domain.R;
|
||||||
|
import com.fuyuanshen.equipment.domain.vo.AlarmInformationVo;
|
||||||
import com.fuyuanshen.equipment.domain.vo.DataOverviewVo;
|
import com.fuyuanshen.equipment.domain.vo.DataOverviewVo;
|
||||||
|
import com.fuyuanshen.equipment.domain.vo.EquipmentClassificationVo;
|
||||||
import com.fuyuanshen.equipment.service.DeviceService;
|
import com.fuyuanshen.equipment.service.DeviceService;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
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.Arrays;
|
import java.util.*;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 首页数据
|
* 首页数据
|
||||||
@ -39,29 +38,36 @@ public class HomePageController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取 设备分类
|
||||||
// 获取设备使用数据
|
* DataOverview
|
||||||
@GetMapping("/{deviceId}")
|
*/
|
||||||
public Map<String, Object> getUsageData(
|
@GetMapping("/getEquipmentClassification")
|
||||||
@PathVariable String deviceId,
|
public R<EquipmentClassificationVo> getEquipmentClassification() {
|
||||||
@RequestParam String range) {
|
return R.ok(deviceService.getEquipmentClassification());
|
||||||
|
|
||||||
Map<String, Object> response = new HashMap<>();
|
|
||||||
|
|
||||||
if ("halfYear".equals(range)) {
|
|
||||||
response.put("months", Arrays.asList("1月", "2月", "3月", "4月", "5月", "6月"));
|
|
||||||
response.put("data", Arrays.asList(45, 52, 38, 60, 56, 48));
|
|
||||||
} else if ("oneYear".equals(range)) {
|
|
||||||
response.put("months", Arrays.asList("7月", "8月", "9月", "10月", "11月", "12月",
|
|
||||||
"1月", "2月", "3月", "4月", "5月", "6月"));
|
|
||||||
response.put("data", Arrays.asList(42, 38, 45, 48, 52, 55, 45, 52, 38, 60, 56, 48));
|
|
||||||
}
|
|
||||||
|
|
||||||
response.put("deviceId", deviceId);
|
|
||||||
response.put("range", range);
|
|
||||||
response.put("lastUpdate", new Date());
|
|
||||||
|
|
||||||
return response;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取 报警信息
|
||||||
|
* DataOverview
|
||||||
|
*/
|
||||||
|
@GetMapping("/getAlarmInformation")
|
||||||
|
public R<AlarmInformationVo> getAlarmInformation() {
|
||||||
|
return R.ok(deviceService.getAlarmInformation());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取设备使用数据
|
||||||
|
*
|
||||||
|
* @param deviceId 设备ID
|
||||||
|
* @param range 时间范围 1:半年 2:一年
|
||||||
|
* @return 每月使用数据列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/getEquipmentUsageData/{deviceId}/{range}")
|
||||||
|
public R<List<Map<String, Object>>> getEquipmentUsageData(@PathVariable Long deviceId, @PathVariable Integer range) {
|
||||||
|
return R.ok(deviceService.getEquipmentUsageData(deviceId, range));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -39,8 +39,8 @@ public class EncryptUtilsTest {
|
|||||||
loginBody.setClientId("e5cd7e4891bf95d1d19206ce24a7b32e");
|
loginBody.setClientId("e5cd7e4891bf95d1d19206ce24a7b32e");
|
||||||
loginBody.setGrantType("password");
|
loginBody.setGrantType("password");
|
||||||
loginBody.setTenantId("894078");
|
loginBody.setTenantId("894078");
|
||||||
loginBody.setCode("9");
|
loginBody.setCode("0");
|
||||||
loginBody.setUuid("d5be31eac1244cee851a9903f358bc6a");
|
loginBody.setUuid("1d6615668c7f410da77c4e002c601073");
|
||||||
// loginBody.setUsername("admin");
|
// loginBody.setUsername("admin");
|
||||||
// loginBody.setPassword("admin123");
|
// loginBody.setPassword("admin123");
|
||||||
loginBody.setUsername("dyf");
|
loginBody.setUsername("dyf");
|
||||||
|
@ -126,26 +126,26 @@ public class DeviceController extends BaseController {
|
|||||||
|
|
||||||
|
|
||||||
// @Log("分配客户")
|
// @Log("分配客户")
|
||||||
@Operation(summary = "分配客户")
|
// @Operation(summary = "分配客户")
|
||||||
@PutMapping(value = "/assignCustomer")
|
// @PutMapping(value = "/assignCustomer")
|
||||||
public R<Void> assignCustomer(@Validated @RequestBody CustomerVo customerVo) {
|
// public R<Void> assignCustomer(@Validated @RequestBody CustomerVo customerVo) {
|
||||||
deviceService.assignCustomer(customerVo);
|
// deviceService.assignCustomer(customerVo);
|
||||||
return R.ok();
|
// return R.ok();
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
// @Log("撤回设备")
|
// @Log("撤回设备")
|
||||||
@Operation(summary = "撤回分配设备")
|
// @Operation(summary = "撤回分配设备")
|
||||||
@PostMapping(value = "/withdraw")
|
// @PostMapping(value = "/withdraw")
|
||||||
public R<Void> withdrawDevice(@RequestBody List<Long> ids) {
|
// public R<Void> withdrawDevice(@RequestBody List<Long> ids) {
|
||||||
try {
|
// try {
|
||||||
deviceService.withdrawDevice(ids);
|
// deviceService.withdrawDevice(ids);
|
||||||
} catch (Exception e) {
|
// } catch (Exception e) {
|
||||||
log.error("updateDevice error: " + e.getMessage());
|
// log.error("updateDevice error: " + e.getMessage());
|
||||||
return R.fail(e.getMessage());
|
// return R.fail(e.getMessage());
|
||||||
}
|
// }
|
||||||
return R.ok();
|
// return R.ok();
|
||||||
}
|
// }
|
||||||
|
|
||||||
//
|
//
|
||||||
// /**
|
// /**
|
||||||
|
@ -162,7 +162,7 @@ public class Device extends TenantEntity {
|
|||||||
private Date productionDate;
|
private Date productionDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 在线状态(0离线,1在线)
|
* 在线状态(0离线,1在线,2异常)
|
||||||
*/
|
*/
|
||||||
private Integer onlineStatus;
|
private Integer onlineStatus;
|
||||||
}
|
}
|
||||||
|
@ -36,8 +36,10 @@ public class DeviceAlarm extends TenantEntity {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 报警事项
|
* 报警事项
|
||||||
|
* 0-强制报警,1-撞击闯入,2-手动报警,3-电子围栏告警,4-强制告警
|
||||||
|
* device_action
|
||||||
*/
|
*/
|
||||||
private String deviceAction;
|
private Integer deviceAction;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设备名称
|
* 设备名称
|
||||||
@ -92,6 +94,7 @@ public class DeviceAlarm extends TenantEntity {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 0已处理,1未处理
|
* 0已处理,1未处理
|
||||||
|
* treatment_state
|
||||||
*/
|
*/
|
||||||
private Long treatmentState;
|
private Long treatmentState;
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ public class DeviceType extends TenantEntity {
|
|||||||
@Schema(title = "联网方式", example = "0:无;1:4G;2:WIFI")
|
@Schema(title = "联网方式", example = "0:无;1:4G;2:WIFI")
|
||||||
private String networkWay;
|
private String networkWay;
|
||||||
|
|
||||||
@Schema(title = "通讯方式", example = "0:4G;1:蓝牙")
|
@Schema(title = "通讯方式", example = "0:4G;1:蓝牙,2 4G&蓝牙")
|
||||||
private String communicationMode;
|
private String communicationMode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -83,6 +83,7 @@ public class DeviceQueryCriteria extends BaseEntity {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 通讯方式 0:4G;1:蓝牙
|
* 通讯方式 0:4G;1:蓝牙
|
||||||
|
* communication_mode
|
||||||
*/
|
*/
|
||||||
private Integer communicationMode;
|
private Integer communicationMode;
|
||||||
|
|
||||||
|
@ -6,13 +6,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.fuyuanshen.equipment.domain.Device;
|
import com.fuyuanshen.equipment.domain.Device;
|
||||||
import com.fuyuanshen.equipment.domain.dto.InstructionRecordDto;
|
import com.fuyuanshen.equipment.domain.dto.InstructionRecordDto;
|
||||||
import com.fuyuanshen.equipment.domain.query.DeviceQueryCriteria;
|
import com.fuyuanshen.equipment.domain.query.DeviceQueryCriteria;
|
||||||
import com.fuyuanshen.equipment.domain.vo.AppDeviceVo;
|
import com.fuyuanshen.equipment.domain.vo.*;
|
||||||
import com.fuyuanshen.equipment.domain.vo.LocationHistoryVo;
|
|
||||||
import com.fuyuanshen.equipment.domain.vo.WebDeviceVo;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description:
|
* @Description:
|
||||||
@ -72,7 +71,42 @@ public interface DeviceMapper extends BaseMapper<Device> {
|
|||||||
|
|
||||||
AppDeviceVo getDeviceInfo(@Param("deviceMac") String deviceMac);
|
AppDeviceVo getDeviceInfo(@Param("deviceMac") String deviceMac);
|
||||||
|
|
||||||
Page<WebDeviceVo> queryWebDeviceList(Page<Object> build,@Param("criteria") DeviceQueryCriteria criteria);
|
Page<WebDeviceVo> queryWebDeviceList(Page<Object> build, @Param("criteria") DeviceQueryCriteria criteria);
|
||||||
|
|
||||||
Page<LocationHistoryVo> getLocationHistory(Page<Object> build, @Param("bo") InstructionRecordDto criteria);
|
Page<LocationHistoryVo> getLocationHistory(Page<Object> build, @Param("bo") InstructionRecordDto criteria);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取数据总览
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
DataOverviewVo getDataOverview();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取设备分类
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
EquipmentClassificationVo getEquipmentClassification();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取告警信息
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
AlarmInformationVo getAlarmInformation();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取设备使用数据
|
||||||
|
*
|
||||||
|
* @param deviceId 设备ID
|
||||||
|
* @param range 时间范围 1:半年 2:一年
|
||||||
|
* @return 每月使用数据列表
|
||||||
|
*/
|
||||||
|
List<Map<String, Object>> getEquipmentUsageData(Long deviceId, Integer range);
|
||||||
|
|
||||||
|
// 在DeviceMapper.java中添加方法
|
||||||
|
int getUsageDataForMonth(@Param("deviceId") Long deviceId,
|
||||||
|
@Param("year") int year,
|
||||||
|
@Param("month") int month);
|
||||||
}
|
}
|
||||||
|
@ -9,12 +9,11 @@ import com.fuyuanshen.equipment.domain.Device;
|
|||||||
import com.fuyuanshen.equipment.domain.dto.AppDeviceBo;
|
import com.fuyuanshen.equipment.domain.dto.AppDeviceBo;
|
||||||
import com.fuyuanshen.equipment.domain.form.DeviceForm;
|
import com.fuyuanshen.equipment.domain.form.DeviceForm;
|
||||||
import com.fuyuanshen.equipment.domain.query.DeviceQueryCriteria;
|
import com.fuyuanshen.equipment.domain.query.DeviceQueryCriteria;
|
||||||
import com.fuyuanshen.equipment.domain.vo.AppDeviceVo;
|
import com.fuyuanshen.equipment.domain.vo.*;
|
||||||
import com.fuyuanshen.equipment.domain.vo.CustomerVo;
|
|
||||||
import com.fuyuanshen.equipment.domain.vo.DataOverviewVo;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description:
|
* @Description:
|
||||||
@ -122,4 +121,27 @@ public interface DeviceService extends IService<Device> {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
DataOverviewVo getDataOverview();
|
DataOverviewVo getDataOverview();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取设备分类
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
EquipmentClassificationVo getEquipmentClassification();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取告警信息
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
AlarmInformationVo getAlarmInformation();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取设备使用数据
|
||||||
|
*
|
||||||
|
* @param deviceId
|
||||||
|
* @param range
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<Map<String, Object>> getEquipmentUsageData(Long deviceId, Integer range);
|
||||||
}
|
}
|
||||||
|
@ -28,9 +28,7 @@ import com.fuyuanshen.equipment.domain.form.DeviceForm;
|
|||||||
import com.fuyuanshen.equipment.domain.query.DeviceAssignmentQuery;
|
import com.fuyuanshen.equipment.domain.query.DeviceAssignmentQuery;
|
||||||
import com.fuyuanshen.equipment.domain.query.DeviceQueryCriteria;
|
import com.fuyuanshen.equipment.domain.query.DeviceQueryCriteria;
|
||||||
import com.fuyuanshen.equipment.domain.query.DeviceTypeQueryCriteria;
|
import com.fuyuanshen.equipment.domain.query.DeviceTypeQueryCriteria;
|
||||||
import com.fuyuanshen.equipment.domain.vo.AppDeviceVo;
|
import com.fuyuanshen.equipment.domain.vo.*;
|
||||||
import com.fuyuanshen.equipment.domain.vo.CustomerVo;
|
|
||||||
import com.fuyuanshen.equipment.domain.vo.DataOverviewVo;
|
|
||||||
import com.fuyuanshen.equipment.enums.BindingStatusEnum;
|
import com.fuyuanshen.equipment.enums.BindingStatusEnum;
|
||||||
import com.fuyuanshen.equipment.enums.CommunicationModeEnum;
|
import com.fuyuanshen.equipment.enums.CommunicationModeEnum;
|
||||||
import com.fuyuanshen.equipment.enums.DeviceActiveStatusEnum;
|
import com.fuyuanshen.equipment.enums.DeviceActiveStatusEnum;
|
||||||
@ -53,11 +51,9 @@ import org.springframework.web.multipart.MultipartFile;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description:
|
* @Description:
|
||||||
@ -596,8 +592,6 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询设备MAC号
|
* 查询设备MAC号
|
||||||
*
|
*
|
||||||
@ -623,7 +617,46 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public DataOverviewVo getDataOverview() {
|
public DataOverviewVo getDataOverview() {
|
||||||
return null;
|
DataOverviewVo dataOverviewVo = deviceMapper.getDataOverview();
|
||||||
|
return dataOverviewVo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取设备分类
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public EquipmentClassificationVo getEquipmentClassification() {
|
||||||
|
EquipmentClassificationVo equipmentClassification = deviceMapper.getEquipmentClassification();
|
||||||
|
return equipmentClassification;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取告警信息
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public AlarmInformationVo getAlarmInformation() {
|
||||||
|
AlarmInformationVo alarmInformation = deviceMapper.getAlarmInformation();
|
||||||
|
return alarmInformation;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取设备使用数据
|
||||||
|
*
|
||||||
|
* @param deviceId 设备ID
|
||||||
|
* @param range 时间范围 1:半年 2:一年
|
||||||
|
* @return 每月使用数据列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<Map<String, Object>> getEquipmentUsageData(Long deviceId, Integer range) {
|
||||||
|
List<Map<String, Object>> equipmentUsageData = deviceMapper.getEquipmentUsageData(deviceId, range);
|
||||||
|
return equipmentUsageData;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -74,6 +74,9 @@
|
|||||||
<if test="criteria.groupId != null">
|
<if test="criteria.groupId != null">
|
||||||
and d.group_id = #{criteria.groupId}
|
and d.group_id = #{criteria.groupId}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="criteria.communicationMode != null">
|
||||||
|
and t.communication_mode = #{criteria.communicationMode}
|
||||||
|
</if>
|
||||||
<if test="criteria.params.beginTime != null and criteria.params.endTime != null">
|
<if test="criteria.params.beginTime != null and criteria.params.endTime != null">
|
||||||
and da.create_time between #{criteria.params.beginTime} and #{criteria.params.endTime}
|
and da.create_time between #{criteria.params.beginTime} and #{criteria.params.endTime}
|
||||||
</if>
|
</if>
|
||||||
@ -280,7 +283,7 @@
|
|||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
<select id="getLocationHistory" resultType="com.fuyuanshen.equipment.domain.vo.LocationHistoryVo">
|
<select id="getLocationHistory" resultType="com.fuyuanshen.equipment.domain.vo.LocationHistoryVo">
|
||||||
select a.id,a.device_name,a.device_type,b.type_name deviceTypeName,a.device_imei,a.device_mac from device a
|
select a.id,a.device_name,a.device_type,b.type_name deviceTypeName,a.device_imei,a.device_mac from device a
|
||||||
inner join device_type b on a.device_type = b.id
|
inner join device_type b on a.device_type = b.id
|
||||||
|
|
||||||
<if test="bo.deviceType != null">
|
<if test="bo.deviceType != null">
|
||||||
@ -311,4 +314,93 @@
|
|||||||
a.create_time DESC
|
a.create_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!-- 获取数据总览 -->
|
||||||
|
<select id="getDataOverview" resultType="com.fuyuanshen.equipment.domain.vo.DataOverviewVo">
|
||||||
|
SELECT (SELECT COUNT(1) FROM device) AS devicesNumber,
|
||||||
|
(SELECT COUNT(1) FROM device WHERE device_status = 1) AS equipmentOnline,
|
||||||
|
(SELECT COUNT(1) FROM device WHERE DATE (create_time) = CURDATE()) AS bindingNew, (
|
||||||
|
SELECT COUNT (1)
|
||||||
|
FROM device
|
||||||
|
WHERE device_status = 2) AS equipmentAbnormal
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 获取设备分类 -->
|
||||||
|
<select id="getEquipmentClassification"
|
||||||
|
resultType="com.fuyuanshen.equipment.domain.vo.EquipmentClassificationVo">
|
||||||
|
SELECT (SELECT COUNT(1)
|
||||||
|
FROM device d
|
||||||
|
INNER JOIN device_type dt ON d.device_type = dt.id
|
||||||
|
WHERE dt.communication_mode = 0) AS equipment4G,
|
||||||
|
(SELECT COUNT(1)
|
||||||
|
FROM device d
|
||||||
|
INNER JOIN device_type dt ON d.device_type = dt.id
|
||||||
|
WHERE dt.communication_mode = 1) AS deviceBluetooth,
|
||||||
|
(SELECT COUNT(1)
|
||||||
|
FROM device d
|
||||||
|
INNER JOIN device_type dt ON d.device_type = dt.id
|
||||||
|
WHERE dt.communication_mode = 2) AS devices4GAndBluetooth
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 获取告警信息 -->
|
||||||
|
<select id="getAlarmInformation" resultType="com.fuyuanshen.equipment.domain.vo.AlarmInformationVo">
|
||||||
|
SELECT (SELECT COUNT(1) FROM device_alarm WHERE treatment_state = 0 AND DATE (create_time) = CURDATE()) AS alarmsTotal, (
|
||||||
|
SELECT COUNT (1)
|
||||||
|
FROM device_alarm
|
||||||
|
WHERE treatment_state = 0
|
||||||
|
AND DATE (create_time) = CURDATE()) AS processingAlarm
|
||||||
|
, (
|
||||||
|
SELECT COUNT (1)
|
||||||
|
FROM device_alarm
|
||||||
|
WHERE device_action = 0
|
||||||
|
AND DATE (create_time) = CURDATE()) AS alarmForced
|
||||||
|
, (
|
||||||
|
SELECT COUNT (1)
|
||||||
|
FROM device_alarm
|
||||||
|
WHERE device_action = 1
|
||||||
|
AND DATE (create_time) = CURDATE()) AS intrusionImpact
|
||||||
|
, (
|
||||||
|
SELECT COUNT (1)
|
||||||
|
FROM device_alarm
|
||||||
|
WHERE device_action = 2
|
||||||
|
AND DATE (create_time) = CURDATE()) AS alarmManual
|
||||||
|
, (
|
||||||
|
SELECT COUNT (1)
|
||||||
|
FROM device_alarm
|
||||||
|
WHERE device_action = 3 AND DATE (create_time) = CURDATE()) AS fenceElectronic
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 获取设备使用数据 -->
|
||||||
|
<select id="getEquipmentUsageData" resultType="map">
|
||||||
|
SELECT COUNT(CASE WHEN MONTH (dl.create_time) = 1 THEN 1 END) AS m1,
|
||||||
|
COUNT(CASE WHEN MONTH (dl.create_time) = 2 THEN 1 END) AS m2,
|
||||||
|
COUNT(CASE WHEN MONTH (dl.create_time) = 3 THEN 1 END) AS m3,
|
||||||
|
COUNT(CASE WHEN MONTH (dl.create_time) = 4 THEN 1 END) AS m4,
|
||||||
|
COUNT(CASE WHEN MONTH (dl.create_time) = 5 THEN 1 END) AS m5,
|
||||||
|
COUNT(CASE WHEN MONTH (dl.create_time) = 6 THEN 1 END) AS m6,
|
||||||
|
COUNT(CASE WHEN MONTH (dl.create_time) = 7 THEN 1 END) AS m7,
|
||||||
|
COUNT(CASE WHEN MONTH (dl.create_time) = 8 THEN 1 END) AS m8,
|
||||||
|
COUNT(CASE WHEN MONTH (dl.create_time) = 9 THEN 1 END) AS m9,
|
||||||
|
COUNT(CASE WHEN MONTH (dl.create_time) = 10 THEN 1 END) AS m10,
|
||||||
|
COUNT(CASE WHEN MONTH (dl.create_time) = 11 THEN 1 END) AS m11,
|
||||||
|
COUNT(CASE WHEN MONTH (dl.create_time) = 12 THEN 1 END) AS m12
|
||||||
|
FROM device_log dl
|
||||||
|
LEFT JOIN device d ON dl.device_id = d.id
|
||||||
|
LEFT JOIN device_type dt ON d.device_type = dt.id
|
||||||
|
WHERE dt.id = #{deviceId}
|
||||||
|
AND (
|
||||||
|
(#{range} = 1 AND dl.create_time >= DATE_SUB(NOW(), INTERVAL 6 MONTH)) OR
|
||||||
|
(#{range} = 2 AND dl.create_time >= DATE_SUB(NOW(), INTERVAL 12 MONTH))
|
||||||
|
)
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getUsageDataForMonth" resultType="java.lang.Integer">
|
||||||
|
SELECT COUNT(*)
|
||||||
|
FROM device_log dl
|
||||||
|
WHERE dl.device_id = #{deviceId}
|
||||||
|
AND YEAR (
|
||||||
|
dl.create_time) = #{year}
|
||||||
|
AND MONTH (dl.create_time) = #{month}
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
Reference in New Issue
Block a user