| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- package com.zswl.dataservice.service.mqtt;
- import com.zswl.dataservice.dao.iot.IotTemplateDao;
- import com.zswl.dataservice.dao.mqtt.DeviceInfoDao;
- import com.zswl.dataservice.dao.mqtt.ProjectInfoDao;
- import com.zswl.dataservice.dataConfig.ResultMessage;
- import com.zswl.dataservice.domain.iot.IotTemplate;
- import com.zswl.dataservice.domain.mqtt.DeviceInfo;
- import com.zswl.dataservice.domain.mqtt.ProjectInfo;
- import com.zswl.dataservice.model.iot.IotMainModel;
- import com.zswl.dataservice.model.mqtt.DeviceInfoAddParam;
- import com.zswl.dataservice.model.mqtt.DeviceInfoModel;
- import com.zswl.dataservice.model.mqtt.DeviceInfoSearchParam;
- import com.zswl.dataservice.model.mqtt.DeviceInfoUpdateRemark;
- import com.zswl.dataservice.service.iot.IotServiceImpl;
- import com.zswl.dataservice.utils.bean.BeanUtils;
- import com.zswl.dataservice.utils.mqtt.type.LogsLevel;
- import com.zswl.dataservice.utils.page.PageEntityUtil;
- import com.zswl.dataservice.utils.result.ResultContent;
- import org.apache.commons.lang3.ObjectUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.data.domain.Page;
- import org.springframework.data.domain.Pageable;
- import org.springframework.stereotype.Service;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * @author TRX
- * @date 2024/5/14
- */
- @Service
- public class DeviceInfoService {
- @Autowired
- DeviceInfoDao deviceInfoDao;
- @Autowired
- OperationLogsService operationLogsService;
- @Autowired
- IotTemplateDao iotTemplateDao;
- @Autowired
- IotServiceImpl iotService;
- @Autowired
- ProjectInfoDao projectInfoDao;
- @Autowired
- ProjectInfoService projectInfoService;
- /**
- * 添加设备
- *
- * @param param
- * @return
- */
- public ResultContent<DeviceInfo> addDeviceInfo(DeviceInfoAddParam param) {
- DeviceInfo deviceInfo = deviceInfoDao.findTopByDeviceId(param.getDeviceId());
- if (ObjectUtils.isNotEmpty(deviceInfo)) {
- return ResultContent.buildFail(String.format("设备ID已存在:%s", param.getDeviceId()));
- }
- deviceInfo = new DeviceInfo();
- BeanUtils.copyProperties(param, deviceInfo);
- ProjectInfo projectInfo = null;
- if (StringUtils.isNotEmpty(param.getProjectInfoOid())) {
- projectInfo = projectInfoDao.findTopByCode(param.getProjectInfoOid());
- }
- deviceInfo.setProjectInfo(projectInfo);
- IotTemplate iotTemplate = null;
- if (StringUtils.isNotEmpty(param.getIotTemplateId())) {
- iotTemplate = iotTemplateDao.findTopById(param.getIotTemplateId());
- }
- deviceInfo.setIotTemplate(iotTemplate);
- deviceInfoDao.save(deviceInfo);
- operationLogsService.addLogs(String.format("添加了设备;%s", deviceInfo.getDeviceName()), LogsLevel.Middle, deviceInfo);
- return ResultContent.buildSuccess(deviceInfo);
- }
- /**
- * 初始设备
- *
- * @param param
- * @return
- */
- public ResultContent<DeviceInfo> initDeviceInfo(DeviceInfoAddParam param) {
- DeviceInfo deviceInfo = deviceInfoDao.findTopByDeviceId(param.getDeviceId());
- if (ObjectUtils.isEmpty(deviceInfo)) {
- ResultContent<DeviceInfo> resultContent = addDeviceInfo(param);
- deviceInfo = resultContent.getContent();
- operationLogsService.addLogs(String.format("添加了设备;%s", deviceInfo.getDeviceName()), LogsLevel.Middle, deviceInfo);
- }
- return ResultContent.buildSuccess(deviceInfo);
- }
- /**
- * 设备列表
- *
- * @param pageable
- * @param param
- * @return
- */
- public ResultContent<Page<DeviceInfoModel>> pageDevice(Pageable pageable, DeviceInfoSearchParam param) {
- Page<DeviceInfo> page = deviceInfoDao.page(pageable, param);
- return ResultContent.buildSuccess(PageEntityUtil.toPageModel(page, this::toModel));
- }
- /**
- * @return
- */
- public ResultContent updateRemark(DeviceInfoUpdateRemark param) {
- DeviceInfo deviceInfo = deviceInfoDao.findTopById(param.getId());
- if (ObjectUtils.isEmpty(deviceInfo)) {
- return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, param.getId()));
- }
- deviceInfo.setRemark(param.getRemark());
- deviceInfoDao.save(deviceInfo);
- return ResultContent.buildSuccess();
- }
- /**
- * 编辑设备关联的模版
- *
- * @param param
- * @return
- */
- public ResultContent updateIopTemplate(DeviceInfoUpdateRemark param) {
- DeviceInfo deviceInfo = deviceInfoDao.findTopById(param.getId());
- if (ObjectUtils.isEmpty(deviceInfo)) {
- return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, param.getId()));
- }
- IotTemplate iotTemplate = iotTemplateDao.findTopById(param.getIotTemplateId());
- if (ObjectUtils.isEmpty(iotTemplate)) {
- return ResultContent.buildFail(String.format("模版ID不存在:", param.getId()));
- }
- deviceInfo.setIotTemplate(iotTemplate);
- deviceInfoDao.save(deviceInfo);
- return ResultContent.buildSuccess();
- }
- /**
- * 编辑设备关联的模版
- *
- * @param param
- * @return
- */
- public ResultContent updateIsReportLogs(DeviceInfoUpdateRemark param) {
- DeviceInfo deviceInfo = deviceInfoDao.findTopById(param.getId());
- if (ObjectUtils.isEmpty(deviceInfo)) {
- return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, param.getId()));
- }
- deviceInfo.setIsReportLogs(param.getIsReportLogs());
- deviceInfoDao.save(deviceInfo);
- return ResultContent.buildSuccess();
- }
- /**
- * 测试设备的连接时间
- *
- * @param id
- * @return
- */
- public ResultContent<Long> testDevice(String id) {
- Long time = 0L;
- return ResultContent.buildSuccess(time);
- }
- /**
- * 得到设备关联的物模型定义
- *
- * @param id
- * @return
- */
- public ResultContent<List<IotMainModel>> getDeviceIotMain(String id) {
- DeviceInfo deviceInfo = deviceInfoDao.findTopById(id);
- if (ObjectUtils.isEmpty(deviceInfo)) {
- return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, id));
- }
- List<IotMainModel> models = new ArrayList<>();
- if (deviceInfo.getIotTemplate() != null) {
- ResultContent<List<IotMainModel>> resultContent = iotService.getTemplateIotMainList(deviceInfo.getIotTemplate().getId());
- models = resultContent.getContent();
- }
- return ResultContent.buildSuccess(models);
- }
- /**
- * 删除设备
- *
- * @param deviceId
- * @return
- */
- public ResultContent deleteDeviceInfo(String deviceId) {
- DeviceInfo deviceInfo = deviceInfoDao.findTopByDeviceId(deviceId);
- if (ObjectUtils.isEmpty(deviceInfo)) {
- return ResultContent.buildFail(String.format("设备ID不存在:%s", deviceId));
- }
- deviceInfoDao.delete(deviceInfo);
- operationLogsService.addLogs(String.format("删除了设备;%s", deviceInfo.getDeviceName()), LogsLevel.High, deviceInfo);
- return ResultContent.buildSuccess();
- }
- public ResultContent<DeviceInfoModel> getDeviceById(String id) {
- DeviceInfoModel model = null;
- DeviceInfo deviceInfo = deviceInfoDao.findTopById(id);
- if (ObjectUtils.isNotEmpty(deviceInfo)) {
- model = toModel(deviceInfo);
- }
- return ResultContent.buildSuccess(model);
- }
- public DeviceInfoModel toModel(DeviceInfo deviceInfo) {
- DeviceInfoModel deviceInfoModel = new DeviceInfoModel();
- if (ObjectUtils.isNotEmpty(deviceInfo)) {
- BeanUtils.copyProperties(deviceInfo, deviceInfoModel);
- deviceInfoModel.setIotTemplate(iotService.toModel(deviceInfo.getIotTemplate()));
- deviceInfoModel.setProjectInfo(projectInfoService.toModel(deviceInfo.getProjectInfo()));
- }
- return deviceInfoModel;
- }
- }
|