Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
228e26df7f | |||
fcbde4322d | |||
832234269d | |||
7e87971c0b | |||
ebd8668178 | |||
d5a9a92f9f |
@ -0,0 +1,106 @@
|
||||
package com.fuyuanshen.web.controller.device;
|
||||
|
||||
import com.fuyuanshen.app.domain.bo.AppPersonnelInfoBo;
|
||||
import com.fuyuanshen.app.domain.dto.AppDeviceLogoUploadDto;
|
||||
import com.fuyuanshen.app.domain.dto.DeviceInstructDto;
|
||||
import com.fuyuanshen.common.core.domain.R;
|
||||
import com.fuyuanshen.common.core.validate.AddGroup;
|
||||
import com.fuyuanshen.common.ratelimiter.annotation.FunctionAccessAnnotation;
|
||||
import com.fuyuanshen.common.ratelimiter.annotation.FunctionAccessBatcAnnotation;
|
||||
import com.fuyuanshen.common.web.core.BaseController;
|
||||
import com.fuyuanshen.equipment.domain.dto.AppDeviceSendMsgBo;
|
||||
import com.fuyuanshen.web.service.device.DeviceXinghanBizService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* 设备控制类 HBY670
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/api/xinghan/device")
|
||||
public class DeviceXinghanController extends BaseController {
|
||||
|
||||
private final DeviceXinghanBizService deviceXinghanBizService;
|
||||
|
||||
/**
|
||||
* 人员信息登记
|
||||
*/
|
||||
@PostMapping(value = "/registerPersonInfo")
|
||||
// @FunctionAccessAnnotation("registerPersonInfo")
|
||||
public R<Void> registerPersonInfo(@Validated(AddGroup.class) @RequestBody AppPersonnelInfoBo bo) {
|
||||
return toAjax(deviceXinghanBizService.registerPersonInfo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送紧急通知
|
||||
*/
|
||||
@PostMapping(value = "/sendAlarmMessage")
|
||||
@FunctionAccessBatcAnnotation(value = "sendAlarmMessage", timeOut = 5, batchMaxTimeOut = 10)
|
||||
public R<Void> sendAlarmMessage(@RequestBody AppDeviceSendMsgBo bo) {
|
||||
return toAjax(deviceXinghanBizService.sendAlarmMessage(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传设备logo图片
|
||||
*/
|
||||
@PostMapping("/uploadLogo")
|
||||
@FunctionAccessAnnotation("uploadLogo")
|
||||
public R<Void> upload(@Validated @ModelAttribute AppDeviceLogoUploadDto bo) {
|
||||
|
||||
MultipartFile file = bo.getFile();
|
||||
if(file.getSize()>1024*1024*2){
|
||||
return R.warn("图片不能大于2M");
|
||||
}
|
||||
deviceXinghanBizService.uploadDeviceLogo(bo);
|
||||
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 静电预警档位
|
||||
* 3,2,1,0,分别表示高档/中档/低挡/关闭
|
||||
*/
|
||||
@PostMapping("/DetectGradeSettings")
|
||||
public R<Void> DetectGradeSettings(@RequestBody DeviceInstructDto params) {
|
||||
// params 转 JSONObject
|
||||
deviceXinghanBizService.upDetectGradeSettings(params);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 照明档位
|
||||
* 照明档位,2,1,0,分别表示弱光/强光/关闭
|
||||
*/
|
||||
@PostMapping("/LightGradeSettings")
|
||||
public R<Void> LightGradeSettings(@RequestBody DeviceInstructDto params) {
|
||||
// params 转 JSONObject
|
||||
deviceXinghanBizService.upLightGradeSettings(params);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* SOS档位
|
||||
* SOS档位,2,1,0, 分别表示红蓝模式/爆闪模式/关闭
|
||||
*/
|
||||
@PostMapping("/SOSGradeSettings")
|
||||
public R<Void> SOSGradeSettings(@RequestBody DeviceInstructDto params) {
|
||||
// params 转 JSONObject
|
||||
deviceXinghanBizService.upSOSGradeSettings(params);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 静止报警状态
|
||||
* 静止报警状态,0-未静止报警,1-正在静止报警。
|
||||
*/
|
||||
@PostMapping("/ShakeBitSettings")
|
||||
public R<Void> ShakeBitSettings(@RequestBody DeviceInstructDto params) {
|
||||
// params 转 JSONObject
|
||||
deviceXinghanBizService.upShakeBitSettings(params);
|
||||
return R.ok();
|
||||
}
|
||||
}
|
@ -61,13 +61,15 @@ public class HomePageController {
|
||||
/**
|
||||
* 获取设备使用数据
|
||||
*
|
||||
* @param deviceId 设备ID
|
||||
* @param deviceTypeId 设备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));
|
||||
@GetMapping("/getEquipmentUsageData/{range}")
|
||||
public R<List<Map<String, Object>>> getEquipmentUsageData(@PathVariable Integer range,
|
||||
@RequestParam(required = false) Long deviceTypeId) {
|
||||
return R.ok(deviceService.getEquipmentUsageData(deviceTypeId, range));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -21,6 +21,18 @@ public class AlarmInformationVo {
|
||||
*/
|
||||
private Integer processingAlarm = 0;
|
||||
|
||||
|
||||
/**
|
||||
* 今日报警总数
|
||||
*/
|
||||
private Integer alarmsTotalToday = 0;
|
||||
|
||||
/**
|
||||
* 今日总处理报警
|
||||
*/
|
||||
private Integer processingAlarmToday = 0;
|
||||
|
||||
|
||||
/**
|
||||
* 强制报警
|
||||
*/
|
||||
|
@ -26,4 +26,24 @@ public class EquipmentClassificationVo {
|
||||
*/
|
||||
private Integer devices4GAndBluetooth = 0;
|
||||
|
||||
/**
|
||||
* 设备总数
|
||||
*/
|
||||
private Integer total;
|
||||
|
||||
|
||||
/**
|
||||
* 计算设备总数
|
||||
*
|
||||
* @return 设备总数
|
||||
*/
|
||||
public Integer getTotal() {
|
||||
if (total == null) {
|
||||
total = (equipment4G == null ? 0 : equipment4G) +
|
||||
(deviceBluetooth == null ? 0 : deviceBluetooth) +
|
||||
(devices4GAndBluetooth == null ? 0 : devices4GAndBluetooth);
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -99,11 +99,11 @@ public interface DeviceMapper extends BaseMapper<Device> {
|
||||
/**
|
||||
* 获取设备使用数据
|
||||
*
|
||||
* @param deviceId 设备ID
|
||||
* @param deviceTypeId 设备ID
|
||||
* @param range 时间范围 1:半年 2:一年
|
||||
* @return 每月使用数据列表
|
||||
*/
|
||||
List<Map<String, Object>> getEquipmentUsageData(Long deviceId, Integer range);
|
||||
List<Map<String, Object>> getEquipmentUsageData(@Param("deviceTypeId") Long deviceTypeId, @Param("range") Integer range);
|
||||
|
||||
// 在DeviceMapper.java中添加方法
|
||||
int getUsageDataForMonth(@Param("deviceId") Long deviceId,
|
||||
|
@ -139,9 +139,9 @@ public interface DeviceService extends IService<Device> {
|
||||
/**
|
||||
* 获取设备使用数据
|
||||
*
|
||||
* @param deviceId
|
||||
* @param deviceTypeId
|
||||
* @param range
|
||||
* @return
|
||||
*/
|
||||
List<Map<String, Object>> getEquipmentUsageData(Long deviceId, Integer range);
|
||||
List<Map<String, Object>> getEquipmentUsageData(Long deviceTypeId, Integer range);
|
||||
}
|
||||
|
@ -630,6 +630,7 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
|
||||
@Override
|
||||
public EquipmentClassificationVo getEquipmentClassification() {
|
||||
EquipmentClassificationVo equipmentClassification = deviceMapper.getEquipmentClassification();
|
||||
equipmentClassification.getTotal();
|
||||
return equipmentClassification;
|
||||
}
|
||||
|
||||
@ -648,13 +649,13 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
|
||||
/**
|
||||
* 获取设备使用数据
|
||||
*
|
||||
* @param deviceId 设备ID
|
||||
* @param deviceTypeId 设备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);
|
||||
public List<Map<String, Object>> getEquipmentUsageData(Long deviceTypeId, Integer range) {
|
||||
List<Map<String, Object>> equipmentUsageData = deviceMapper.getEquipmentUsageData(deviceTypeId, range);
|
||||
return equipmentUsageData;
|
||||
|
||||
}
|
||||
|
@ -321,11 +321,11 @@
|
||||
<!-- 获取数据总览 -->
|
||||
<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 online_status = 1) AS equipmentOnline,
|
||||
(SELECT COUNT(1) FROM device WHERE DATE (create_time) = CURDATE() AND binding_status = 1 ) AS bindingNew, (
|
||||
SELECT COUNT (1)
|
||||
FROM device
|
||||
WHERE device_status = 2) AS equipmentAbnormal
|
||||
WHERE online_status = 2) AS equipmentAbnormal
|
||||
</select>
|
||||
|
||||
<!-- 获取设备分类 -->
|
||||
@ -347,55 +347,67 @@
|
||||
|
||||
<!-- 获取告警信息 -->
|
||||
<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 (SELECT COUNT(1) FROM device_alarm WHERE treatment_state = 0) AS alarmsTotal
|
||||
, (SELECT COUNT(1)
|
||||
FROM device_alarm
|
||||
WHERE treatment_state = 0) AS processingAlarm
|
||||
, (SELECT COUNT(1)
|
||||
FROM device_alarm
|
||||
WHERE treatment_state = 0 AND
|
||||
DATE (create_time) = CURDATE()) AS alarmsTotalToday
|
||||
, (
|
||||
SELECT COUNT (1)
|
||||
FROM device_alarm
|
||||
WHERE treatment_state = 0
|
||||
AND DATE (create_time) = CURDATE()) AS processingAlarm
|
||||
AND DATE (create_time) = CURDATE()) AS processingAlarmToday
|
||||
, (
|
||||
SELECT COUNT (1)
|
||||
FROM device_alarm
|
||||
WHERE device_action = 0
|
||||
AND DATE (create_time) = CURDATE()) AS alarmForced
|
||||
) AS alarmForced
|
||||
, (
|
||||
SELECT COUNT (1)
|
||||
FROM device_alarm
|
||||
WHERE device_action = 1
|
||||
AND DATE (create_time) = CURDATE()) AS intrusionImpact
|
||||
) AS intrusionImpact
|
||||
, (
|
||||
SELECT COUNT (1)
|
||||
FROM device_alarm
|
||||
WHERE device_action = 2
|
||||
AND DATE (create_time) = CURDATE()) AS alarmManual
|
||||
) AS alarmManual
|
||||
, (
|
||||
SELECT COUNT (1)
|
||||
FROM device_alarm
|
||||
WHERE device_action = 3 AND DATE (create_time) = CURDATE()) AS fenceElectronic
|
||||
WHERE device_action = 3) 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
|
||||
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 (
|
||||
LEFT JOIN device d ON dl.device_id = d.id
|
||||
LEFT JOIN device_type dt ON d.device_type = dt.id
|
||||
<where>
|
||||
<if test="deviceTypeId != null">
|
||||
dt.id = #{deviceTypeId}
|
||||
</if>
|
||||
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))
|
||||
)
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getUsageDataForMonth" resultType="java.lang.Integer">
|
||||
|
Reference in New Issue
Block a user