lau572
2 months ago
9 changed files with 843 additions and 0 deletions
@ -0,0 +1,98 @@ |
|||||
|
package com.zc.business.controller; |
||||
|
|
||||
|
import java.util.List; |
||||
|
import javax.servlet.http.HttpServletResponse; |
||||
|
import org.springframework.security.access.prepost.PreAuthorize; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||
|
import org.springframework.web.bind.annotation.PostMapping; |
||||
|
import org.springframework.web.bind.annotation.PutMapping; |
||||
|
import org.springframework.web.bind.annotation.DeleteMapping; |
||||
|
import org.springframework.web.bind.annotation.PathVariable; |
||||
|
import org.springframework.web.bind.annotation.RequestBody; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
import com.ruoyi.common.annotation.Log; |
||||
|
import com.ruoyi.common.core.controller.BaseController; |
||||
|
import com.ruoyi.common.core.domain.AjaxResult; |
||||
|
import com.ruoyi.common.enums.BusinessType; |
||||
|
import com.zc.business.domain.DcDeviceOfflineRecord; |
||||
|
import com.zc.business.service.IDcDeviceOfflineRecordService; |
||||
|
import com.ruoyi.common.utils.poi.ExcelUtil; |
||||
|
import com.ruoyi.common.core.page.TableDataInfo; |
||||
|
|
||||
|
/** |
||||
|
* 设备离线记录Controller |
||||
|
* |
||||
|
* @author ruoyi |
||||
|
* @date 2024-09-18 |
||||
|
*/ |
||||
|
@RestController |
||||
|
@RequestMapping("/deviceOfflineRecord") |
||||
|
public class DcDeviceOfflineRecordController extends BaseController |
||||
|
{ |
||||
|
@Autowired |
||||
|
private IDcDeviceOfflineRecordService dcDeviceOfflineRecordService; |
||||
|
|
||||
|
/** |
||||
|
* 查询设备离线记录列表 |
||||
|
*/ |
||||
|
@GetMapping("/list") |
||||
|
public TableDataInfo list(DcDeviceOfflineRecord dcDeviceOfflineRecord) |
||||
|
{ |
||||
|
startPage(); |
||||
|
List<DcDeviceOfflineRecord> list = dcDeviceOfflineRecordService.selectDcDeviceOfflineRecordList(dcDeviceOfflineRecord); |
||||
|
return getDataTable(list); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 导出设备离线记录列表 |
||||
|
*/ |
||||
|
@Log(title = "设备离线记录", businessType = BusinessType.EXPORT) |
||||
|
@PostMapping("/export") |
||||
|
public void export(HttpServletResponse response, DcDeviceOfflineRecord dcDeviceOfflineRecord) |
||||
|
{ |
||||
|
List<DcDeviceOfflineRecord> list = dcDeviceOfflineRecordService.selectDcDeviceOfflineRecordList(dcDeviceOfflineRecord); |
||||
|
ExcelUtil<DcDeviceOfflineRecord> util = new ExcelUtil<>(DcDeviceOfflineRecord.class); |
||||
|
util.exportExcel(response, list, "设备离线记录数据"); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获取设备离线记录详细信息 |
||||
|
*/ |
||||
|
@GetMapping(value = "/{id}") |
||||
|
public AjaxResult getInfo(@PathVariable("id") Long id) |
||||
|
{ |
||||
|
return AjaxResult.success(dcDeviceOfflineRecordService.selectDcDeviceOfflineRecordById(id)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 新增设备离线记录 |
||||
|
*/ |
||||
|
@Log(title = "设备离线记录", businessType = BusinessType.INSERT) |
||||
|
@PostMapping |
||||
|
public AjaxResult add(@RequestBody DcDeviceOfflineRecord dcDeviceOfflineRecord) |
||||
|
{ |
||||
|
return toAjax(dcDeviceOfflineRecordService.insertDcDeviceOfflineRecord(dcDeviceOfflineRecord)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改设备离线记录 |
||||
|
*/ |
||||
|
@Log(title = "设备离线记录", businessType = BusinessType.UPDATE) |
||||
|
@PutMapping |
||||
|
public AjaxResult edit(@RequestBody DcDeviceOfflineRecord dcDeviceOfflineRecord) |
||||
|
{ |
||||
|
return toAjax(dcDeviceOfflineRecordService.updateDcDeviceOfflineRecord(dcDeviceOfflineRecord)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除设备离线记录 |
||||
|
*/ |
||||
|
@Log(title = "设备离线记录", businessType = BusinessType.DELETE) |
||||
|
@DeleteMapping("/{ids}") |
||||
|
public AjaxResult remove(@PathVariable Long[] ids) |
||||
|
{ |
||||
|
return toAjax(dcDeviceOfflineRecordService.deleteDcDeviceOfflineRecordByIds(ids)); |
||||
|
} |
||||
|
} |
@ -0,0 +1,255 @@ |
|||||
|
package com.zc.business.domain; |
||||
|
|
||||
|
import org.apache.commons.lang3.builder.ToStringBuilder; |
||||
|
import org.apache.commons.lang3.builder.ToStringStyle; |
||||
|
import com.ruoyi.common.annotation.Excel; |
||||
|
import com.ruoyi.common.core.domain.BaseEntity; |
||||
|
|
||||
|
/** |
||||
|
* 设备离线记录对象 dc_device_offline_record |
||||
|
* |
||||
|
* @author ruoyi |
||||
|
* @date 2024-09-18 |
||||
|
*/ |
||||
|
public class DcDeviceOfflineRecord extends BaseEntity |
||||
|
{ |
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** $column.columnComment */ |
||||
|
private Long id; |
||||
|
|
||||
|
/** 设备表id */ |
||||
|
@Excel(name = "设备表id") |
||||
|
private Long deviceId; |
||||
|
|
||||
|
/** 物联id */ |
||||
|
@Excel(name = "物联id") |
||||
|
private String iotDeviceId; |
||||
|
|
||||
|
/** 设备名称 */ |
||||
|
@Excel(name = "设备名称") |
||||
|
private String deviceName; |
||||
|
|
||||
|
/** 设备类型 |
||||
|
1 摄像机 |
||||
|
2 可变信息标志 |
||||
|
3 气象监测器 |
||||
|
4 出口诱导灯 |
||||
|
5 路段语音广播 |
||||
|
6 护栏碰撞 |
||||
|
7 毫米波雷达 |
||||
|
8 合流区预警 |
||||
|
9 智慧锥桶 |
||||
|
10 激光疲劳唤醒 |
||||
|
11 一类交通量调查站 |
||||
|
12 行车诱导 |
||||
|
13 智能设备箱 |
||||
|
14 光线在线监测 |
||||
|
15 太阳能板 |
||||
|
16 远端机 |
||||
|
*/ |
||||
|
@Excel(name = "设备类型") |
||||
|
private String deviceType; |
||||
|
|
||||
|
/** 所在桩号 */ |
||||
|
@Excel(name = "所在桩号") |
||||
|
private String stakeMark; |
||||
|
|
||||
|
/** 方向1-上行,2-中,3-下行 */ |
||||
|
@Excel(name = "方向1-上行,2-中,3-下行") |
||||
|
private String direction; |
||||
|
|
||||
|
/** 安装位置 */ |
||||
|
@Excel(name = "安装位置") |
||||
|
private String installationSite; |
||||
|
|
||||
|
/** 设备ip */ |
||||
|
@Excel(name = "设备ip") |
||||
|
private String deviceIp; |
||||
|
|
||||
|
/** 设施归属类型(0:默认1: 道路沿线2:桥梁3: 隧道4:收费广场5: 收费站6: 服务区等 */ |
||||
|
@Excel(name = "设施归属类型", readConverterExp = "设施归属类型(0:默认1: 道路沿线2:桥梁3: 隧道4:收费广场5: 收费站6: 服务区等") |
||||
|
private String facilitiesType; |
||||
|
|
||||
|
/** 子设备类型 |
||||
|
1-1 高清网络枪型固定摄像机 |
||||
|
1-2 高清网络球形摄像机 |
||||
|
1-3 桥下高清网络球形摄像机 |
||||
|
1-4 360°全景摄像机 |
||||
|
1-5 180°全景摄像机 |
||||
|
|
||||
|
|
||||
|
2-1 门架式可变信息标志 |
||||
|
|
||||
|
2-2站前可变信息标志 160*80 |
||||
|
|
||||
|
|
||||
|
2-3 雨棚可变信息标志 |
||||
|
|
||||
|
|
||||
|
2-4 站前悬臂式可变信息标志192*160 */ |
||||
|
@Excel(name = "子设备类型") |
||||
|
private String childType; |
||||
|
|
||||
|
/** 经度 */ |
||||
|
@Excel(name = "经度") |
||||
|
private String longitude; |
||||
|
|
||||
|
/** 纬度 */ |
||||
|
@Excel(name = "纬度") |
||||
|
private String latitude; |
||||
|
|
||||
|
/** 状态(0未处理 1已处理 2自动处理) */ |
||||
|
@Excel(name = "状态(0未处理 1已处理 2自动处理)") |
||||
|
private String status; |
||||
|
|
||||
|
public void setId(Long id) |
||||
|
{ |
||||
|
this.id = id; |
||||
|
} |
||||
|
|
||||
|
public Long getId() |
||||
|
{ |
||||
|
return id; |
||||
|
} |
||||
|
public void setDeviceId(Long deviceId) |
||||
|
{ |
||||
|
this.deviceId = deviceId; |
||||
|
} |
||||
|
|
||||
|
public Long getDeviceId() |
||||
|
{ |
||||
|
return deviceId; |
||||
|
} |
||||
|
|
||||
|
public String getIotDeviceId() { |
||||
|
return iotDeviceId; |
||||
|
} |
||||
|
|
||||
|
public void setIotDeviceId(String iotDeviceId) { |
||||
|
this.iotDeviceId = iotDeviceId; |
||||
|
} |
||||
|
|
||||
|
public void setDeviceName(String deviceName) |
||||
|
{ |
||||
|
this.deviceName = deviceName; |
||||
|
} |
||||
|
|
||||
|
public String getDeviceName() |
||||
|
{ |
||||
|
return deviceName; |
||||
|
} |
||||
|
public void setDeviceType(String deviceType) |
||||
|
{ |
||||
|
this.deviceType = deviceType; |
||||
|
} |
||||
|
|
||||
|
public String getDeviceType() |
||||
|
{ |
||||
|
return deviceType; |
||||
|
} |
||||
|
public void setStakeMark(String stakeMark) |
||||
|
{ |
||||
|
this.stakeMark = stakeMark; |
||||
|
} |
||||
|
|
||||
|
public String getStakeMark() |
||||
|
{ |
||||
|
return stakeMark; |
||||
|
} |
||||
|
public void setDirection(String direction) |
||||
|
{ |
||||
|
this.direction = direction; |
||||
|
} |
||||
|
|
||||
|
public String getDirection() |
||||
|
{ |
||||
|
return direction; |
||||
|
} |
||||
|
public void setInstallationSite(String installationSite) |
||||
|
{ |
||||
|
this.installationSite = installationSite; |
||||
|
} |
||||
|
|
||||
|
public String getInstallationSite() |
||||
|
{ |
||||
|
return installationSite; |
||||
|
} |
||||
|
public void setDeviceIp(String deviceIp) |
||||
|
{ |
||||
|
this.deviceIp = deviceIp; |
||||
|
} |
||||
|
|
||||
|
public String getDeviceIp() |
||||
|
{ |
||||
|
return deviceIp; |
||||
|
} |
||||
|
public void setFacilitiesType(String facilitiesType) |
||||
|
{ |
||||
|
this.facilitiesType = facilitiesType; |
||||
|
} |
||||
|
|
||||
|
public String getFacilitiesType() |
||||
|
{ |
||||
|
return facilitiesType; |
||||
|
} |
||||
|
public void setChildType(String childType) |
||||
|
{ |
||||
|
this.childType = childType; |
||||
|
} |
||||
|
|
||||
|
public String getChildType() |
||||
|
{ |
||||
|
return childType; |
||||
|
} |
||||
|
public void setLongitude(String longitude) |
||||
|
{ |
||||
|
this.longitude = longitude; |
||||
|
} |
||||
|
|
||||
|
public String getLongitude() |
||||
|
{ |
||||
|
return longitude; |
||||
|
} |
||||
|
public void setLatitude(String latitude) |
||||
|
{ |
||||
|
this.latitude = latitude; |
||||
|
} |
||||
|
|
||||
|
public String getLatitude() |
||||
|
{ |
||||
|
return latitude; |
||||
|
} |
||||
|
public void setStatus(String status) |
||||
|
{ |
||||
|
this.status = status; |
||||
|
} |
||||
|
|
||||
|
public String getStatus() |
||||
|
{ |
||||
|
return status; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public String toString() { |
||||
|
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) |
||||
|
.append("id", getId()) |
||||
|
.append("deviceId", getDeviceId()) |
||||
|
.append("iotDeviceId", getIotDeviceId()) |
||||
|
.append("deviceName", getDeviceName()) |
||||
|
.append("deviceType", getDeviceType()) |
||||
|
.append("stakeMark", getStakeMark()) |
||||
|
.append("direction", getDirection()) |
||||
|
.append("installationSite", getInstallationSite()) |
||||
|
.append("deviceIp", getDeviceIp()) |
||||
|
.append("facilitiesType", getFacilitiesType()) |
||||
|
.append("childType", getChildType()) |
||||
|
.append("longitude", getLongitude()) |
||||
|
.append("latitude", getLatitude()) |
||||
|
.append("status", getStatus()) |
||||
|
.append("createTime", getCreateTime()) |
||||
|
.append("updateTime", getUpdateTime()) |
||||
|
.append("updateBy", getUpdateBy()) |
||||
|
.toString(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,63 @@ |
|||||
|
package com.zc.business.mapper; |
||||
|
|
||||
|
import java.util.List; |
||||
|
import com.zc.business.domain.DcDeviceOfflineRecord; |
||||
|
|
||||
|
/** |
||||
|
* 设备离线记录Mapper接口 |
||||
|
* |
||||
|
* @author ruoyi |
||||
|
* @date 2024-09-18 |
||||
|
*/ |
||||
|
public interface DcDeviceOfflineRecordMapper |
||||
|
{ |
||||
|
/** |
||||
|
* 查询设备离线记录 |
||||
|
* |
||||
|
* @param id 设备离线记录主键 |
||||
|
* @return 设备离线记录 |
||||
|
*/ |
||||
|
public DcDeviceOfflineRecord selectDcDeviceOfflineRecordById(Long id); |
||||
|
|
||||
|
public List<DcDeviceOfflineRecord> selectDcDeviceOfflineRecordByIds(Long[] id); |
||||
|
|
||||
|
/** |
||||
|
* 查询设备离线记录列表 |
||||
|
* |
||||
|
* @param dcDeviceOfflineRecord 设备离线记录 |
||||
|
* @return 设备离线记录集合 |
||||
|
*/ |
||||
|
List<DcDeviceOfflineRecord> selectDcDeviceOfflineRecordList(DcDeviceOfflineRecord dcDeviceOfflineRecord); |
||||
|
|
||||
|
/** |
||||
|
* 新增设备离线记录 |
||||
|
* |
||||
|
* @param dcDeviceOfflineRecord 设备离线记录 |
||||
|
* @return 结果 |
||||
|
*/ |
||||
|
int insertDcDeviceOfflineRecord(DcDeviceOfflineRecord dcDeviceOfflineRecord); |
||||
|
|
||||
|
/** |
||||
|
* 修改设备离线记录 |
||||
|
* |
||||
|
* @param dcDeviceOfflineRecord 设备离线记录 |
||||
|
* @return 结果 |
||||
|
*/ |
||||
|
int updateDcDeviceOfflineRecord(DcDeviceOfflineRecord dcDeviceOfflineRecord); |
||||
|
|
||||
|
/** |
||||
|
* 删除设备离线记录 |
||||
|
* |
||||
|
* @param id 设备离线记录主键 |
||||
|
* @return 结果 |
||||
|
*/ |
||||
|
int deleteDcDeviceOfflineRecordById(Long id); |
||||
|
|
||||
|
/** |
||||
|
* 批量删除设备离线记录 |
||||
|
* |
||||
|
* @param ids 需要删除的数据主键集合 |
||||
|
* @return 结果 |
||||
|
*/ |
||||
|
int deleteDcDeviceOfflineRecordByIds(Long[] ids); |
||||
|
} |
@ -0,0 +1,73 @@ |
|||||
|
package com.zc.business.service; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
import com.ruoyi.common.core.domain.AjaxResult; |
||||
|
import com.zc.business.domain.DcDevice; |
||||
|
import com.zc.business.domain.DcDeviceOfflineRecord; |
||||
|
|
||||
|
/** |
||||
|
* 设备离线记录Service接口 |
||||
|
* |
||||
|
* @author ruoyi |
||||
|
* @date 2024-09-18 |
||||
|
*/ |
||||
|
public interface IDcDeviceOfflineRecordService |
||||
|
{ |
||||
|
/** |
||||
|
* 查询设备离线记录 |
||||
|
* |
||||
|
* @param id 设备离线记录主键 |
||||
|
* @return 设备离线记录 |
||||
|
*/ |
||||
|
public DcDeviceOfflineRecord selectDcDeviceOfflineRecordById(Long id); |
||||
|
|
||||
|
/** |
||||
|
* 查询设备离线记录列表 |
||||
|
* |
||||
|
* @param dcDeviceOfflineRecord 设备离线记录 |
||||
|
* @return 设备离线记录集合 |
||||
|
*/ |
||||
|
List<DcDeviceOfflineRecord> selectDcDeviceOfflineRecordList(DcDeviceOfflineRecord dcDeviceOfflineRecord); |
||||
|
|
||||
|
/** |
||||
|
* 新增设备离线记录 |
||||
|
* |
||||
|
* @param dcDeviceOfflineRecord 设备离线记录 |
||||
|
* @return 结果 |
||||
|
*/ |
||||
|
int insertDcDeviceOfflineRecord(DcDeviceOfflineRecord dcDeviceOfflineRecord); |
||||
|
|
||||
|
/** |
||||
|
* 修改设备离线记录 |
||||
|
* |
||||
|
* @param dcDeviceOfflineRecord 设备离线记录 |
||||
|
* @return 结果 |
||||
|
*/ |
||||
|
int updateDcDeviceOfflineRecord(DcDeviceOfflineRecord dcDeviceOfflineRecord); |
||||
|
|
||||
|
/** |
||||
|
* 批量删除设备离线记录 |
||||
|
* |
||||
|
* @param ids 需要删除的设备离线记录主键集合 |
||||
|
* @return 结果 |
||||
|
*/ |
||||
|
int deleteDcDeviceOfflineRecordByIds(Long[] ids); |
||||
|
|
||||
|
/** |
||||
|
* 删除设备离线记录信息 |
||||
|
* |
||||
|
* @param id 设备离线记录主键 |
||||
|
* @return 结果 |
||||
|
*/ |
||||
|
int deleteDcDeviceOfflineRecordById(Long id); |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 批量处理 设备离线记录 |
||||
|
* |
||||
|
* @param deviceList |
||||
|
* @return 结果 |
||||
|
*/ |
||||
|
AjaxResult batchDeviceOfflineRecord(List<DcDevice> deviceList); |
||||
|
} |
@ -0,0 +1,194 @@ |
|||||
|
package com.zc.business.service.impl; |
||||
|
|
||||
|
import java.util.HashMap; |
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
import com.ruoyi.common.core.domain.AjaxResult; |
||||
|
import com.ruoyi.common.core.redis.RedisCache; |
||||
|
import com.ruoyi.common.utils.DateUtils; |
||||
|
import com.ruoyi.common.utils.StringUtils; |
||||
|
import com.zc.business.constant.RedisKeyConstants; |
||||
|
import com.zc.business.domain.DcDevice; |
||||
|
import com.zc.common.core.websocket.WebSocketService; |
||||
|
import com.zc.common.core.websocket.constant.WebSocketEvent; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import com.zc.business.mapper.DcDeviceOfflineRecordMapper; |
||||
|
import com.zc.business.domain.DcDeviceOfflineRecord; |
||||
|
import com.zc.business.service.IDcDeviceOfflineRecordService; |
||||
|
|
||||
|
import static com.ruoyi.common.utils.SecurityUtils.getUsername; |
||||
|
|
||||
|
/** |
||||
|
* 设备离线记录Service业务层处理 |
||||
|
* |
||||
|
* @author ruoyi |
||||
|
* @date 2024-09-18 |
||||
|
*/ |
||||
|
@Service |
||||
|
public class DcDeviceOfflineRecordServiceImpl implements IDcDeviceOfflineRecordService |
||||
|
{ |
||||
|
@Autowired |
||||
|
private DcDeviceOfflineRecordMapper dcDeviceOfflineRecordMapper; |
||||
|
@Autowired |
||||
|
private RedisCache redisCache; |
||||
|
|
||||
|
/** |
||||
|
* 查询设备离线记录 |
||||
|
* |
||||
|
* @param id 设备离线记录主键 |
||||
|
* @return 设备离线记录 |
||||
|
*/ |
||||
|
@Override |
||||
|
public DcDeviceOfflineRecord selectDcDeviceOfflineRecordById(Long id) |
||||
|
{ |
||||
|
return dcDeviceOfflineRecordMapper.selectDcDeviceOfflineRecordById(id); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 查询设备离线记录列表 |
||||
|
* |
||||
|
* @param dcDeviceOfflineRecord 设备离线记录 |
||||
|
* @return 设备离线记录 |
||||
|
*/ |
||||
|
@Override |
||||
|
public List<DcDeviceOfflineRecord> selectDcDeviceOfflineRecordList(DcDeviceOfflineRecord dcDeviceOfflineRecord) |
||||
|
{ |
||||
|
return dcDeviceOfflineRecordMapper.selectDcDeviceOfflineRecordList(dcDeviceOfflineRecord); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 新增设备离线记录 |
||||
|
* |
||||
|
* @param dcDeviceOfflineRecord 设备离线记录 |
||||
|
* @return 结果 |
||||
|
*/ |
||||
|
@Override |
||||
|
public int insertDcDeviceOfflineRecord(DcDeviceOfflineRecord dcDeviceOfflineRecord) |
||||
|
{ |
||||
|
dcDeviceOfflineRecord.setCreateTime(DateUtils.getNowDate()); |
||||
|
int i = dcDeviceOfflineRecordMapper.insertDcDeviceOfflineRecord(dcDeviceOfflineRecord); |
||||
|
redisCache.setCacheMapValue(RedisKeyConstants.DC_DEVICE_OFFLINE_RECORD,dcDeviceOfflineRecord.getIotDeviceId(),dcDeviceOfflineRecord); |
||||
|
|
||||
|
//websocket推送
|
||||
|
Map<String, Object> contentMap = new HashMap<>(); |
||||
|
String direction = ""; |
||||
|
if (StringUtils.isNotEmpty(dcDeviceOfflineRecord.getDirection())){ |
||||
|
if ("1".equals(dcDeviceOfflineRecord.getDirection())){ |
||||
|
direction = "菏泽方向"; |
||||
|
} else if ("3".equals(dcDeviceOfflineRecord.getDirection())){ |
||||
|
direction = "济南方向"; |
||||
|
} |
||||
|
} |
||||
|
String content = dcDeviceOfflineRecord.getStakeMark() + direction + dcDeviceOfflineRecord.getDeviceName() + "发生故障"; |
||||
|
contentMap.put("content",content); |
||||
|
contentMap.put("deviceOfflineRecord",dcDeviceOfflineRecord); |
||||
|
WebSocketService.broadcast(WebSocketEvent.DEVICE_OFFLINE_RECORD, contentMap); |
||||
|
|
||||
|
return i; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改设备离线记录 |
||||
|
* |
||||
|
* @param dcDeviceOfflineRecord 设备离线记录 |
||||
|
* @return 结果 |
||||
|
*/ |
||||
|
@Override |
||||
|
public int updateDcDeviceOfflineRecord(DcDeviceOfflineRecord dcDeviceOfflineRecord) |
||||
|
{ |
||||
|
dcDeviceOfflineRecord.setUpdateTime(DateUtils.getNowDate()); |
||||
|
dcDeviceOfflineRecord.setUpdateBy(getUsername()); |
||||
|
String status = dcDeviceOfflineRecord.getStatus(); |
||||
|
if (StringUtils.isNotEmpty(status) && ("1".equals(status) || "2".equals(status))){ |
||||
|
redisCache.delCacheMapValue(RedisKeyConstants.DC_DEVICE_OFFLINE_RECORD,dcDeviceOfflineRecord.getIotDeviceId()); |
||||
|
} else { |
||||
|
redisCache.setCacheMapValue(RedisKeyConstants.DC_DEVICE_OFFLINE_RECORD,dcDeviceOfflineRecord.getIotDeviceId(),dcDeviceOfflineRecord); |
||||
|
} |
||||
|
return dcDeviceOfflineRecordMapper.updateDcDeviceOfflineRecord(dcDeviceOfflineRecord); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 批量删除设备离线记录 |
||||
|
* |
||||
|
* @param ids 需要删除的设备离线记录主键 |
||||
|
* @return 结果 |
||||
|
*/ |
||||
|
@Override |
||||
|
public int deleteDcDeviceOfflineRecordByIds(Long[] ids) |
||||
|
{ |
||||
|
|
||||
|
List<DcDeviceOfflineRecord> list = dcDeviceOfflineRecordMapper.selectDcDeviceOfflineRecordByIds(ids); |
||||
|
for (int i = 0; i < list.size(); i++) { |
||||
|
redisCache.delCacheMapValue(RedisKeyConstants.DC_DEVICE_OFFLINE_RECORD,list.get(i).getIotDeviceId()); |
||||
|
} |
||||
|
return dcDeviceOfflineRecordMapper.deleteDcDeviceOfflineRecordByIds(ids); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除设备离线记录信息 |
||||
|
* |
||||
|
* @param id 设备离线记录主键 |
||||
|
* @return 结果 |
||||
|
*/ |
||||
|
@Override |
||||
|
public int deleteDcDeviceOfflineRecordById(Long id) |
||||
|
{ |
||||
|
return dcDeviceOfflineRecordMapper.deleteDcDeviceOfflineRecordById(id); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 批量处理 设备离线记录 |
||||
|
* |
||||
|
* @param deviceList |
||||
|
* @return 结果 |
||||
|
*/ |
||||
|
@Override |
||||
|
public AjaxResult batchDeviceOfflineRecord(List<DcDevice> deviceList) |
||||
|
{ |
||||
|
for (DcDevice dcDevice : deviceList) { |
||||
|
String iotDeviceId = dcDevice.getIotDeviceId(); |
||||
|
String deviceState = dcDevice.getDeviceState(); |
||||
|
if (StringUtils.isNotEmpty(iotDeviceId) && StringUtils.isNotEmpty(deviceState)){ |
||||
|
DcDeviceOfflineRecord cache = redisCache.getCacheMapValue(RedisKeyConstants.DC_DEVICE_OFFLINE_RECORD,iotDeviceId); |
||||
|
|
||||
|
if ("0".equals(deviceState) && cache == null){ |
||||
|
//异常状态并且表里有无此纪录, 新增
|
||||
|
DcDevice dcDeviceCache = redisCache.getCacheMapValue(RedisKeyConstants.DC_DEVICES, iotDeviceId); |
||||
|
|
||||
|
if (dcDeviceCache != null){ |
||||
|
DcDeviceOfflineRecord dcDeviceOfflineRecord = new DcDeviceOfflineRecord(); |
||||
|
dcDeviceOfflineRecord.setDeviceId(dcDeviceCache.getId()); |
||||
|
dcDeviceOfflineRecord.setIotDeviceId(dcDeviceCache.getIotDeviceId()); |
||||
|
dcDeviceOfflineRecord.setDeviceName(dcDeviceCache.getDeviceName()); |
||||
|
dcDeviceOfflineRecord.setDeviceType(dcDeviceCache.getDeviceType()); |
||||
|
dcDeviceOfflineRecord.setStakeMark(dcDeviceCache.getStakeMark()); |
||||
|
dcDeviceOfflineRecord.setDirection(dcDeviceCache.getDirection()); |
||||
|
dcDeviceOfflineRecord.setInstallationSite(dcDeviceCache.getInstallationSite()); |
||||
|
dcDeviceOfflineRecord.setDeviceIp(dcDeviceCache.getDeviceIp()); |
||||
|
dcDeviceOfflineRecord.setFacilitiesType(dcDeviceCache.getFacilitiesType()); |
||||
|
dcDeviceOfflineRecord.setChildType(dcDeviceCache.getChildType()); |
||||
|
dcDeviceOfflineRecord.setLatitude(dcDeviceCache.getLatitude()); |
||||
|
dcDeviceOfflineRecord.setLongitude(dcDeviceCache.getLongitude()); |
||||
|
dcDeviceOfflineRecord.setStatus("0"); |
||||
|
|
||||
|
insertDcDeviceOfflineRecord(dcDeviceOfflineRecord); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} else if ("1".equals(deviceState) && cache != null){ |
||||
|
//正常状态并且表里有离线记录, 修改为自动结束
|
||||
|
DcDeviceOfflineRecord dcDeviceOfflineRecord = new DcDeviceOfflineRecord(); |
||||
|
dcDeviceOfflineRecord.setId(cache.getId()); |
||||
|
dcDeviceOfflineRecord.setStatus("2"); |
||||
|
dcDeviceOfflineRecord.setUpdateTime(DateUtils.getNowDate()); |
||||
|
dcDeviceOfflineRecordMapper.updateDcDeviceOfflineRecord(dcDeviceOfflineRecord); |
||||
|
redisCache.delCacheMapValue(RedisKeyConstants.DC_DEVICE_OFFLINE_RECORD,iotDeviceId); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
return AjaxResult.success("操作成功"); |
||||
|
} |
||||
|
} |
@ -0,0 +1,135 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8" ?> |
||||
|
<!DOCTYPE mapper |
||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
|
<mapper namespace="com.zc.business.mapper.DcDeviceOfflineRecordMapper"> |
||||
|
|
||||
|
<resultMap type="DcDeviceOfflineRecord" id="DcDeviceOfflineRecordResult"> |
||||
|
<result property="id" column="id" /> |
||||
|
<result property="deviceId" column="device_id" /> |
||||
|
<result property="iotDeviceId" column="iot_device_id" /> |
||||
|
<result property="deviceName" column="device_name" /> |
||||
|
<result property="deviceType" column="device_type" /> |
||||
|
<result property="stakeMark" column="stake_mark" /> |
||||
|
<result property="direction" column="direction" /> |
||||
|
<result property="installationSite" column="installation_site" /> |
||||
|
<result property="deviceIp" column="device_ip" /> |
||||
|
<result property="facilitiesType" column="facilities_type" /> |
||||
|
<result property="childType" column="child_type" /> |
||||
|
<result property="longitude" column="longitude" /> |
||||
|
<result property="latitude" column="latitude" /> |
||||
|
<result property="status" column="status" /> |
||||
|
<result property="createTime" column="create_time" /> |
||||
|
<result property="updateTime" column="update_time" /> |
||||
|
<result property="updateBy" column="update_by" /> |
||||
|
</resultMap> |
||||
|
|
||||
|
<sql id="selectDcDeviceOfflineRecordVo"> |
||||
|
select id, device_id,iot_device_id, device_name, device_type, stake_mark, direction, installation_site, device_ip, facilities_type, child_type, longitude, latitude, status, create_time, update_time, update_by from dc_device_offline_record |
||||
|
</sql> |
||||
|
|
||||
|
<select id="selectDcDeviceOfflineRecordList" parameterType="DcDeviceOfflineRecord" resultMap="DcDeviceOfflineRecordResult"> |
||||
|
<include refid="selectDcDeviceOfflineRecordVo"/> |
||||
|
<where> |
||||
|
<if test="deviceId != null "> and device_id = #{deviceId}</if> |
||||
|
<if test="iotDeviceId != null "> and iot_device_id = #{iotDeviceId}</if> |
||||
|
<if test="deviceName != null and deviceName != ''"> and device_name like concat('%', #{deviceName}, '%')</if> |
||||
|
<if test="deviceType != null and deviceType != ''"> and device_type = #{deviceType}</if> |
||||
|
<if test="stakeMark != null and stakeMark != ''"> and stake_mark = #{stakeMark}</if> |
||||
|
<if test="direction != null and direction != ''"> and direction = #{direction}</if> |
||||
|
<if test="installationSite != null and installationSite != ''"> and installation_site = #{installationSite}</if> |
||||
|
<if test="deviceIp != null and deviceIp != ''"> and device_ip = #{deviceIp}</if> |
||||
|
<if test="facilitiesType != null and facilitiesType != ''"> and facilities_type = #{facilitiesType}</if> |
||||
|
<if test="childType != null and childType != ''"> and child_type = #{childType}</if> |
||||
|
<if test="longitude != null and longitude != ''"> and longitude = #{longitude}</if> |
||||
|
<if test="latitude != null and latitude != ''"> and latitude = #{latitude}</if> |
||||
|
<if test="status != null and status != ''"> and status = #{status}</if> |
||||
|
</where> |
||||
|
</select> |
||||
|
|
||||
|
<select id="selectDcDeviceOfflineRecordById" parameterType="Long" resultMap="DcDeviceOfflineRecordResult"> |
||||
|
<include refid="selectDcDeviceOfflineRecordVo"/> |
||||
|
where id = #{id} |
||||
|
</select> |
||||
|
<select id="selectDcDeviceOfflineRecordByIds" parameterType="String" resultType="com.zc.business.domain.DcDeviceOfflineRecord"> |
||||
|
<include refid="selectDcDeviceOfflineRecordVo"/> |
||||
|
where id in |
||||
|
<foreach item="id" collection="array" open="(" separator="," close=")"> |
||||
|
#{id} |
||||
|
</foreach> |
||||
|
</select> |
||||
|
|
||||
|
<insert id="insertDcDeviceOfflineRecord" parameterType="DcDeviceOfflineRecord" useGeneratedKeys="true" keyProperty="id"> |
||||
|
insert into dc_device_offline_record |
||||
|
<trim prefix="(" suffix=")" suffixOverrides=","> |
||||
|
<if test="deviceId != null">device_id,</if> |
||||
|
<if test="iotDeviceId != null">iot_device_id,</if> |
||||
|
<if test="deviceName != null and deviceName != ''">device_name,</if> |
||||
|
<if test="deviceType != null and deviceType != ''">device_type,</if> |
||||
|
<if test="stakeMark != null and stakeMark != ''">stake_mark,</if> |
||||
|
<if test="direction != null">direction,</if> |
||||
|
<if test="installationSite != null">installation_site,</if> |
||||
|
<if test="deviceIp != null">device_ip,</if> |
||||
|
<if test="facilitiesType != null">facilities_type,</if> |
||||
|
<if test="childType != null">child_type,</if> |
||||
|
<if test="longitude != null">longitude,</if> |
||||
|
<if test="latitude != null">latitude,</if> |
||||
|
<if test="status != null">status,</if> |
||||
|
<if test="createTime != null">create_time,</if> |
||||
|
<if test="updateTime != null">update_time,</if> |
||||
|
<if test="updateBy != null">update_by,</if> |
||||
|
</trim> |
||||
|
<trim prefix="values (" suffix=")" suffixOverrides=","> |
||||
|
<if test="deviceId != null">#{deviceId},</if> |
||||
|
<if test="iotDeviceId != null">#{iotDeviceId},</if> |
||||
|
<if test="deviceName != null and deviceName != ''">#{deviceName},</if> |
||||
|
<if test="deviceType != null and deviceType != ''">#{deviceType},</if> |
||||
|
<if test="stakeMark != null and stakeMark != ''">#{stakeMark},</if> |
||||
|
<if test="direction != null">#{direction},</if> |
||||
|
<if test="installationSite != null">#{installationSite},</if> |
||||
|
<if test="deviceIp != null">#{deviceIp},</if> |
||||
|
<if test="facilitiesType != null">#{facilitiesType},</if> |
||||
|
<if test="childType != null">#{childType},</if> |
||||
|
<if test="longitude != null">#{longitude},</if> |
||||
|
<if test="latitude != null">#{latitude},</if> |
||||
|
<if test="status != null">#{status},</if> |
||||
|
<if test="createTime != null">#{createTime},</if> |
||||
|
<if test="updateTime != null">#{updateTime},</if> |
||||
|
<if test="updateBy != null">#{updateBy},</if> |
||||
|
</trim> |
||||
|
</insert> |
||||
|
|
||||
|
<update id="updateDcDeviceOfflineRecord" parameterType="DcDeviceOfflineRecord"> |
||||
|
update dc_device_offline_record |
||||
|
<trim prefix="SET" suffixOverrides=","> |
||||
|
<if test="deviceId != null">device_id = #{deviceId},</if> |
||||
|
<if test="iotDeviceId != null">iot_device_id = #{iotDeviceId},</if> |
||||
|
<if test="deviceName != null and deviceName != ''">device_name = #{deviceName},</if> |
||||
|
<if test="deviceType != null and deviceType != ''">device_type = #{deviceType},</if> |
||||
|
<if test="stakeMark != null and stakeMark != ''">stake_mark = #{stakeMark},</if> |
||||
|
<if test="direction != null">direction = #{direction},</if> |
||||
|
<if test="installationSite != null">installation_site = #{installationSite},</if> |
||||
|
<if test="deviceIp != null">device_ip = #{deviceIp},</if> |
||||
|
<if test="facilitiesType != null">facilities_type = #{facilitiesType},</if> |
||||
|
<if test="childType != null">child_type = #{childType},</if> |
||||
|
<if test="longitude != null">longitude = #{longitude},</if> |
||||
|
<if test="latitude != null">latitude = #{latitude},</if> |
||||
|
<if test="status != null">status = #{status},</if> |
||||
|
<if test="createTime != null">create_time = #{createTime},</if> |
||||
|
<if test="updateTime != null">update_time = #{updateTime},</if> |
||||
|
<if test="updateBy != null">update_by = #{updateBy},</if> |
||||
|
</trim> |
||||
|
where id = #{id} |
||||
|
</update> |
||||
|
|
||||
|
<delete id="deleteDcDeviceOfflineRecordById" parameterType="Long"> |
||||
|
delete from dc_device_offline_record where id = #{id} |
||||
|
</delete> |
||||
|
|
||||
|
<delete id="deleteDcDeviceOfflineRecordByIds" parameterType="String"> |
||||
|
delete from dc_device_offline_record where id in |
||||
|
<foreach item="id" collection="array" open="(" separator="," close=")"> |
||||
|
#{id} |
||||
|
</foreach> |
||||
|
</delete> |
||||
|
</mapper> |
Loading…
Reference in new issue