Commit 9e378f36 authored by 赵啸非's avatar 赵啸非

物联网1.0

parent 7079ff3e
......@@ -12,6 +12,9 @@ import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import cn.hutool.core.util.ServiceLoaderUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.system.HostInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -153,6 +156,7 @@ public class TaskServiceImpl extends AbstractCRUDServiceImpl<TaskDao, TaskEntity
@Override
public void start() throws AppException {
final String localIp = SystemUtil.getLocalHostIp();
log.info("任务执行线程启动...-->" + localIp);
thread = new Thread(() -> {
......@@ -297,7 +301,7 @@ public class TaskServiceImpl extends AbstractCRUDServiceImpl<TaskDao, TaskEntity
executorService.shutdown();
log.info("任务执行线程退出!");
});
// thread.start();
thread.start();
}
@Override
......
......@@ -31,8 +31,10 @@ import com.mortals.xhx.module.device.service.DeviceService;
import com.mortals.xhx.module.firm.model.FirmEntity;
import com.mortals.xhx.module.firm.service.FirmService;
import com.mortals.xhx.module.platform.model.PlatformEntity;
import com.mortals.xhx.module.platform.model.PlatformQuery;
import com.mortals.xhx.module.platform.service.PlatformService;
import com.mortals.xhx.module.product.model.ProductEntity;
import com.mortals.xhx.module.product.model.ProductQuery;
import com.mortals.xhx.module.product.service.ProductService;
import com.mortals.xhx.module.sitestat.model.SitestatEntity;
import com.mortals.xhx.queue.TbQueueMsgHeaders;
......@@ -345,7 +347,6 @@ public class DeviceApiController {
private void saveOrUpdate(DeviceReq req, PlatformEntity platformEntity, ProductEntity productEntity, DeviceEntity deviceEntity) {
BeanUtils.copyProperties(req, deviceEntity, BeanUtil.getNullPropertyNames(req));
deviceEntity.setPlatformId(platformEntity.getId());
deviceEntity.setPlatformCode(platformEntity.getPlatformSn());
deviceEntity.setPlatformName(platformEntity.getPlatformName());
deviceEntity.setProductId(productEntity.getId());
......@@ -498,12 +499,12 @@ public class DeviceApiController {
if (ObjectUtils.isEmpty(req.getPlatformCode())) {
throw new AppException("当前平台编码为空!");
}
PlatformEntity platformEntity = platformService.selectOne(new PlatformEntity().platformSn(req.getPlatformCode()));
PlatformEntity platformEntity = platformService.selectOne(new PlatformQuery().platformSn(req.getPlatformCode()));
if (ObjectUtils.isEmpty(platformEntity)) {
throw new AppException("所属系统平台不存在!");
}
ProductEntity productEntity = productService.selectOne(new ProductEntity().productCode(req.getProductCode()));
ProductEntity productEntity = productService.selectOne(new ProductQuery().productCode(req.getProductCode()));
if (ObjectUtils.isEmpty(productEntity)) {
throw new AppException("所属产品编码不存在");
}
......@@ -543,14 +544,14 @@ public class DeviceApiController {
throw new AppException("当前平台编码为空!");
}
PlatformEntity platformEntity = platformService.selectOne(new PlatformEntity().platformSn(req.getPlatformCode()));
PlatformEntity platformEntity = platformService.selectOne(new PlatformQuery().platformSn(req.getPlatformCode()));
if (ObjectUtils.isEmpty(platformEntity)) {
throw new AppException("所属系统平台不存在!");
}
if (ObjectUtils.isEmpty(req.getPlatformCode())) {
throw new AppException("当前产品Code为空!");
}
ProductEntity productEntity = productService.selectOne(new ProductEntity().productCode(req.getProductCode()));
ProductEntity productEntity = productService.selectOne(new ProductQuery().productCode(req.getProductCode()));
if (ObjectUtils.isEmpty(productEntity)) {
throw new AppException("所属产品编码不存在");
}
......
......@@ -13,6 +13,7 @@ import com.mortals.xhx.common.code.DeviceMethodEnum;
import com.mortals.xhx.common.code.DeviceStatusEnum;
import com.mortals.xhx.common.key.ParamKey;
import com.mortals.xhx.module.device.model.DeviceLogEntity;
import com.mortals.xhx.module.device.model.DeviceLogQuery;
import com.mortals.xhx.module.device.service.DeviceLogService;
import com.mortals.xhx.module.device.service.DeviceService;
import com.mortals.xhx.module.platform.model.PlatformEntity;
......@@ -66,7 +67,7 @@ public class DeviceStatTaskImpl implements ITaskExcuteService {
deviceService.getCacheList().stream()
.filter(f -> f.getDeviceStatus() == DeviceStatusEnum.在线.getValue())
.peek(device -> {
DeviceLogEntity query = new DeviceLogEntity();
DeviceLogQuery query = new DeviceLogQuery();
query.setCreateTimeStart(DateUtils.getStrDateTime(new Date(System.currentTimeMillis() - timeout)));
DeviceLogEntity deviceLogEntity = deviceLogService.selectOne(query);
if (ObjectUtils.isEmpty(deviceLogEntity)) {
......@@ -99,7 +100,7 @@ public class DeviceStatTaskImpl implements ITaskExcuteService {
//默认保存30天日志
int timeout = -GlobalSysInfo.getParamIntValue(ParamKey.SYS_PARAM_LOG_TIME, 30);
try {
DeviceLogEntity query = new DeviceLogEntity();
DeviceLogQuery query = new DeviceLogQuery();
query.setCreateTimeEnd(DateUtils.getStrDateTime(DateUtils.addCurrDate(timeout)));
Long[] ids = deviceLogService.find(query).stream().map(DeviceLogEntity::getId).toArray(Long[]::new);
if (!ObjectUtils.isEmpty(ids)) {
......
......@@ -7,7 +7,7 @@ import java.util.List;
* 设备告警配置视图对象
*
* @author zxfei
* @date 2022-06-27
* @date 2022-07-01
*/
public class AlarmConfigVo extends BaseEntityLong {
......
......@@ -7,7 +7,7 @@ import java.util.List;
* 短信发送记录视图对象
*
* @author zxfei
* @date 2022-06-27
* @date 2022-07-01
*/
public class AlarmSmsSendVo extends BaseEntityLong {
......
......@@ -7,7 +7,7 @@ import java.util.List;
* 设备告警日志视图对象
*
* @author zxfei
* @date 2022-06-27
* @date 2022-07-01
*/
public class DeviceAlarmInfoVo extends BaseEntityLong {
......
......@@ -7,7 +7,7 @@ import java.util.List;
* 设备日志视图对象
*
* @author zxfei
* @date 2022-06-27
* @date 2022-07-01
*/
public class DeviceLogVo extends BaseEntityLong {
......
......@@ -7,7 +7,7 @@ import java.util.List;
* 设备模块使用频率视图对象
*
* @author zxfei
* @date 2022-06-27
* @date 2022-07-01
*/
public class DeviceModuleUseVo extends BaseEntityLong {
......
......@@ -7,7 +7,7 @@ import java.util.List;
* 设备模块信息视图对象
*
* @author zxfei
* @date 2022-06-27
* @date 2022-07-01
*/
public class DeviceModuleVo extends BaseEntityLong {
......
package com.mortals.xhx.module.device.model.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.device.model.DeviceEntity;
import lombok.Data;
import lombok.SneakyThrows;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 设备视图对象
*
* @author zxfei
* @date 2022-04-25
* @date 2022-07-01
*/
@Data
public class DeviceVo extends BaseEntityLong {
/**
* 唯一标识
*/
......@@ -42,15 +37,4 @@ public class DeviceVo extends BaseEntityLong {
* 是否通知第三方
*/
private Boolean switchSend=true;
@SneakyThrows
public static void main(String[] args) {
DeviceEntity deviceEntity = new DeviceEntity();
deviceEntity.initAttrValue();
deviceEntity.setOnlineTime(new Date());
ObjectMapper mapper = new ObjectMapper();
System.out.println(mapper.writeValueAsString(deviceEntity));
}
}
\ No newline at end of file
......@@ -16,6 +16,7 @@ import com.mortals.xhx.common.key.Constant;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.device.dao.DeviceDao;
import com.mortals.xhx.module.device.model.DeviceEntity;
import com.mortals.xhx.module.device.model.DeviceQuery;
import com.mortals.xhx.module.device.service.DeviceService;
import com.mortals.xhx.module.platform.model.PlatformEntity;
import com.mortals.xhx.module.platform.service.PlatformService;
......@@ -100,7 +101,7 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D
@Override
public ApiResp<String> sendDeviceMessage(List<Long> deviceIds, TopicPartitionInfo info, TbQueueMsgHeaders header, String message, Context context) {
ApiResp<String> resp = new ApiResp<>();
DeviceEntity deviceQuery = new DeviceEntity();
DeviceQuery deviceQuery = new DeviceQuery();
deviceQuery.setIdList(deviceIds);
List<DeviceEntity> deviceEntityList = this.find(deviceQuery);
for (DeviceEntity deviceEntity : deviceEntityList) {
......@@ -111,7 +112,7 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D
@Override
public void active(String deviceCode, Context context) {
DeviceEntity deviceEntity = this.selectOne(new DeviceEntity().deviceCode(deviceCode));
DeviceEntity deviceEntity = this.selectOne(new DeviceQuery().deviceCode(deviceCode));
if (ObjectUtils.isEmpty(deviceEntity)) throw new AppException("当前设备不存在!");
if (deviceEntity.getDeviceStatus() != DeviceStatusEnum.未激活.getValue()) throw new AppException("当前设备已激活!");
deviceEntity.setDeviceStatus(DeviceStatusEnum.离线.getValue());
......@@ -136,7 +137,7 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D
@Override
public void deviceEnabled(String deviceCode, Integer enabled, Context context) {
DeviceEntity deviceEntity = this.selectOne(new DeviceEntity().deviceCode(deviceCode));
DeviceEntity deviceEntity = this.selectOne(new DeviceQuery().deviceCode(deviceCode));
if (!ObjectUtils.isEmpty(deviceEntity)) throw new AppException("当前设备不存在!");
deviceEntity.setEnabled(enabled);
deviceEntity.setUpdateTime(new Date());
......@@ -285,7 +286,7 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D
@Override
protected void saveBefore(DeviceEntity entity, Context context) throws AppException {
//产品编码唯一
DeviceEntity deviceEntity = this.selectOne(new DeviceEntity().deviceCode(entity.getDeviceCode()));
DeviceEntity deviceEntity = this.selectOne(new DeviceQuery().deviceCode(entity.getDeviceCode()));
if (!ObjectUtils.isEmpty(deviceEntity)) {
throw new AppException("设备编码重复!");
}
......
......@@ -7,7 +7,7 @@ import java.util.List;
* 设备生产厂商视图对象
*
* @author zxfei
* @date 2022-06-27
* @date 2022-07-01
*/
public class FirmVo extends BaseEntityLong {
......
......@@ -7,7 +7,7 @@ import java.util.List;
* 平台系统视图对象
*
* @author zxfei
* @date 2022-06-27
* @date 2022-07-01
*/
public class PlatformVo extends BaseEntityLong {
......
......@@ -7,7 +7,7 @@ import java.util.List;
* 产品视图对象
*
* @author zxfei
* @date 2022-06-27
* @date 2022-07-01
*/
public class ProductVo extends BaseEntityLong {
......
......@@ -7,7 +7,7 @@ import java.util.List;
* 站点统计视图对象
*
* @author zxfei
* @date 2022-06-27
* @date 2022-07-01
*/
public class SitestatVo extends BaseEntityLong {
......
......@@ -15,7 +15,9 @@ import com.mortals.xhx.common.utils.MemoryPagination;
import com.mortals.xhx.feign.site.ISiteFeign;
import com.mortals.xhx.feign.user.IApiUserFeign;
import com.mortals.xhx.module.device.model.DeviceEntity;
import com.mortals.xhx.module.device.model.DeviceQuery;
import com.mortals.xhx.module.device.service.DeviceService;
import com.mortals.xhx.module.sitestat.model.SitestatQuery;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -106,7 +108,7 @@ public class SitestatServiceImpl extends AbstractCRUDServiceImpl<SitestatDao, Si
@Override
public void updateSiteStat(SitestatEntity entity, Context context) {
//更新统计信息,触发
List<DeviceEntity> deviceList = deviceService.find(new DeviceEntity().siteId(entity.getSiteId()));
List<DeviceEntity> deviceList = deviceService.find(new DeviceQuery().siteId(entity.getSiteId()));
//分别统计数据
entity.setDeviceTotal(deviceList.size());
......@@ -121,21 +123,19 @@ public class SitestatServiceImpl extends AbstractCRUDServiceImpl<SitestatDao, Si
entity.setUnActiveCount(unActiveCount.intValue());
//查询站点统计记录是否存在,如果存在则修改,否则新增
SitestatEntity sitestatEntity = this.selectOne(new SitestatEntity().siteId(entity.getSiteId()));
SitestatEntity sitestatEntity = this.selectOne(new SitestatQuery().siteId(entity.getSiteId()));
if (ObjectUtils.isEmpty(sitestatEntity)) {
//新增
entity.setCreateUserId(getContextUserId(context));
entity.setCreateTime(new Date());
this.save(entity, context);
} else {
//修改
entity.updateUserId(getContextUserId(context));
entity.setId(sitestatEntity.getId());
entity.setUpdateUserId(getContextUserId(context));
entity.setUpdateTime(new Date());
this.update(entity, context);
}
}
}
\ No newline at end of file
......@@ -308,22 +308,22 @@ data|object|数据对象|-
参数名称|类型|备注|必填|其它
---|---|---|---|---
deviceName|String||设备名称
deviceName|String||设备名称
deviceCode|String|是|设备编码,默认为MAC地址
siteId|Long|是|站点Id
siteCode|String|是|站点编号
siteName|String|是|站点名称
platformId|Long|是|平台系统Id
productId|Long|是|产品Id
deviceFirmId|Long||设备生产厂商ID
deviceFirmname|String||设备生产厂商名称
lon|String||经度
lati|String||经度
deviceFirmId|Long||设备生产厂商ID
deviceFirmname|String||设备生产厂商名称
lon|String||经度
lati|String||经度
deviceInBuilding|Integer|否|所属楼栋
deviceInFloor|Integer|否|所属楼层
defectsLiabilityPeriod|Date||保修期,如2020-08-12 15:00:00
leadingOfficial|String||负责人
leadingOfficialTelephone|String||联系电话
defectsLiabilityPeriod|Date||保修期,如2020-08-12 15:00:00
leadingOfficial|String||负责人
leadingOfficialTelephone|String||联系电话
**请求样例:**
```
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment