pageList = service.findLogPage(page, humidDevice);
+ return Result.OK(pageList);
+ }
+}
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/entity/HumidAlarm.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/entity/HumidAlarm.java
new file mode 100644
index 0000000..279b6f2
--- /dev/null
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/entity/HumidAlarm.java
@@ -0,0 +1,77 @@
+package com.nu.modules.yiweilian.humid.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * Class:易维联-温湿度计告警Entity
+ *
功能描述:功能描述
+ */
+@Data
+@TableName("nu_iot_yiweilian_humid_alarm")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="nu_iot_yiweilian_humid_alarm对象", description="易维联-温湿设备告警")
+public class HumidAlarm implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId(type = IdType.AUTO)
+ @ApiModelProperty(value = "主键")
+ private Integer id;
+ @Excel(name = "设备SN号", width = 15)
+ @ApiModelProperty(value = "设备SN号")
+ private String sn;
+ @Excel(name = "告警ID", width = 15)
+ @ApiModelProperty(value = "告警ID")
+ private String alarmId;
+ @Excel(name = "告警状态ID", width = 15)
+ @ApiModelProperty(value = "告警状态ID")
+ private String wrId;
+ @Excel(name = "告警数据", width = 15)
+ @ApiModelProperty(value = "告警数据")
+ private String wrData;
+ @Excel(name = "告警内容", width = 15)
+ @ApiModelProperty(value = "告警内容")
+ private String wrContent;
+ @Excel(name = "告警记录时间", width = 15)
+ @ApiModelProperty(value = "告警记录时间")
+ private String wrDate;
+ @Excel(name = "清除告警ID", width = 15)
+ @ApiModelProperty(value = "清除告警ID")
+ private String clearAlarmId;
+ @Excel(name = "清除告警状态ID", width = 15)
+ @ApiModelProperty(value = "清除告警状态ID")
+ private String clearId;
+ @Excel(name = "清除告警数据", width = 15)
+ @ApiModelProperty(value = "清除告警数据")
+ private String clearData;
+ @Excel(name = "清除告警内容", width = 15)
+ @ApiModelProperty(value = "清除告警内容")
+ private String clearContent;
+ @Excel(name = "清除告警记录时间", width = 15)
+ @ApiModelProperty(value = "清除告警记录时间")
+ private String clearDate;
+ @Excel(name = "状态", width = 15)
+ @ApiModelProperty(value = "状态")
+ private String status; //状态 0告警 1清除
+
+ @TableField(exist = false)
+ private Date alarmStartTime;
+ @TableField(exist = false)
+ private Date alarmEndTime;
+ @TableField(exist = false)
+ private Date clearStartTime;
+ @TableField(exist = false)
+ private Date clearEndTime;
+
+}
\ No newline at end of file
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/entity/HumidDevice.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/entity/HumidDevice.java
new file mode 100644
index 0000000..f28cdec
--- /dev/null
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/entity/HumidDevice.java
@@ -0,0 +1,114 @@
+package com.nu.modules.yiweilian.humid.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.io.Serializable;
+
+/**
+ *
Class:易维联-温湿度计Entity
+ *
功能描述:功能描述
+ */
+@Data
+@TableName("nu_iot_yiweilian_humid_device")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="nu_iot_yiweilian_humid_device对象", description="易维联-温湿设备")
+public class HumidDevice implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId(type = IdType.AUTO)
+ @ApiModelProperty(value = "主键")
+ private Integer id;
+ @Excel(name = "设备SN号", width = 15)
+ @ApiModelProperty(value = "设备SN号")
+ private String sn;
+ @Excel(name = "设备名称", width = 15)
+ @ApiModelProperty(value = "设备名称")
+ private String deviceName;
+ @Excel(name = "设备类型", width = 15)
+ @ApiModelProperty(value = "设备类型")
+ private String deviceTypes;//一共16位,第几位为1代表设备有该功能. 1位温度 2位湿度 15位电量
+ @Excel(name = "上报间隔", width = 15)
+ @ApiModelProperty(value = "上报间隔")
+ private String reportingInterval; //实时数据上报时间间隔 单位分钟
+ @Excel(name = "记录间隔", width = 15)
+ @ApiModelProperty(value = "记录间隔")
+ private String recordInterval; //记录时间间隔 单位分钟
+ @Excel(name = "历史数据上报时刻", width = 15)
+ @ApiModelProperty(value = "历史数据上报时刻")
+ private String historyReportTime; //历史数据上报时刻 00:00
+ @Excel(name = "历史数据上报间隔", width = 15)
+ @ApiModelProperty(value = "历史数据上报间隔")
+ private String historyInterval; //历史数据上报间隔 单位小时
+ @Excel(name = "温度预警范围 上限值", width = 15)
+ @ApiModelProperty(value = "温度预警范围 上限值")
+ private String temperatureHigh ; //温度预警范围-上限值
+ @Excel(name = "温度预警范围 下限值", width = 15)
+ @ApiModelProperty(value = "温度预警范围 下限值")
+ private String temperatureLow; //温度预警范围-下限值
+ @Excel(name = "温度缓冲值", width = 15)
+ @ApiModelProperty(value = "温度缓冲值")
+ private String temperatureBuffer; //温度缓冲值
+ @Excel(name = "湿度预警范围 上限值", width = 15)
+ @ApiModelProperty(value = "湿度预警范围 上限值")
+ private String humidityHigh; //湿度预警范围-上限值
+ @Excel(name = "湿度预警范围 下限值", width = 15)
+ @ApiModelProperty(value = "湿度预警范围 下限值")
+ private String humidityLow; //湿度预警范围-下限值
+ @Excel(name = "湿度缓冲值", width = 15)
+ @ApiModelProperty(value = "湿度缓冲值")
+ private String humidityBuffer; //湿度缓冲值
+ @Excel(name = "设备所在时区", width = 15)
+ @ApiModelProperty(value = "设备所在时区")
+ private String timeCode; //设备所在时区 01北京时间 02纽约时间
+ @Excel(name = "断电报警", width = 15)
+ @ApiModelProperty(value = "断电报警")
+ private String izOutages; //断电报警 0开启 1关闭
+ @Excel(name = "低电报警", width = 15)
+ @ApiModelProperty(value = "低电报警")
+ private String izLowBattery; //低电报警 0开启 1关闭
+ @Excel(name = "上下线通知", width = 15)
+ @ApiModelProperty(value = "上下线通知")
+ private String izOnline; //上下线通知 0开启 1关闭
+ @Excel(name = "温度", width = 15)
+ @ApiModelProperty(value = "温度")
+ private String temperature; //温度
+ @Excel(name = "湿度", width = 15)
+ @ApiModelProperty(value = "湿度")
+ private String humidity; //湿度
+ @Excel(name = "在线状态", width = 15)
+ @ApiModelProperty(value = "在线状态")
+ private String status; //在线状态,0在线 1离线
+ @Excel(name = "最新上报时间", width = 15)
+ @ApiModelProperty(value = "最新上报时间")
+ private String reportingTime; //最新上报时间
+ @Excel(name = "电量", width = 15)
+ @ApiModelProperty(value = "电量")
+ private String electricity; //电量 0~4
+
+ private String optType; //操作类型
+ private String optTime; //操作时间
+ private String optBy; //操作人
+
+ private Integer alarmCn; //告警数量
+
+ private String nuId;//护理单元ID
+ private String nuName;//护理单元
+ private String departId;//机构ID
+ private String departName;//机构名称
+ private String departServerUrl;//机构服务地址
+ private String oldServerUrl;//原机构服务地址
+ private String syncType;//是否同步 0 未同步 1已同步
+ private String oldDepartId;//原机构id
+ private String oldDepartName;//原机构名称
+
+}
\ No newline at end of file
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/job/HumidAlarmJob.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/job/HumidAlarmJob.java
new file mode 100644
index 0000000..f2110ca
--- /dev/null
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/job/HumidAlarmJob.java
@@ -0,0 +1,40 @@
+package com.nu.modules.yiweilian.humid.job;
+
+import com.nu.modules.yiweilian.humid.entity.HumidAlarm;
+import com.nu.modules.yiweilian.humid.service.IHumidAlarmService;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.util.DateUtils;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.Calendar;
+import java.util.List;
+
+/**
+ * 温湿度告警采集
+ */
+@Slf4j
+public class HumidAlarmJob implements Job {
+
+ @Autowired
+ IHumidAlarmService service;
+
+ /**
+ * 5分钟一次
+ * @param jobExecutionContext
+ * @throws JobExecutionException
+ */
+ @Override
+ public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+ Calendar ca = Calendar.getInstance();
+ HumidAlarm humidAlarm = new HumidAlarm();
+ humidAlarm.setAlarmEndTime(ca.getTime());
+ ca.add(Calendar.MINUTE,-6);
+ humidAlarm.setAlarmStartTime(ca.getTime());
+ String result = service.getAlarm(humidAlarm);
+ log.error("HumidAlarmJob:{}-{}", DateUtils.now(),result);
+ }
+}
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/job/HumidReadJob.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/job/HumidReadJob.java
new file mode 100644
index 0000000..05fb118
--- /dev/null
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/job/HumidReadJob.java
@@ -0,0 +1,33 @@
+package com.nu.modules.yiweilian.humid.job;
+
+import com.nu.modules.yiweilian.humid.entity.HumidDevice;
+import com.nu.modules.yiweilian.humid.service.IHumidDeviceService;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.DateUtils;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.Calendar;
+
+/**
+ * 温湿度采集
+ */
+@Slf4j
+public class HumidReadJob implements Job {
+
+ @Autowired
+ IHumidDeviceService service;
+
+ /**
+ * 5分钟一次
+ * @param jobExecutionContext
+ * @throws JobExecutionException
+ */
+ @Override
+ public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+ String result = service.updateDeviceRealTime(new HumidDevice());
+ log.error("HumidReadJob:{}-{}", DateUtils.now(),result);
+ }
+}
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/mapper/HumidAlarmMapper.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/mapper/HumidAlarmMapper.java
new file mode 100644
index 0000000..6d0661a
--- /dev/null
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/mapper/HumidAlarmMapper.java
@@ -0,0 +1,14 @@
+package com.nu.modules.yiweilian.humid.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.nu.modules.yiweilian.humid.entity.HumidAlarm;
+import org.apache.ibatis.annotations.Param;
+
+public interface HumidAlarmMapper extends BaseMapper {
+ IPage findPage(Page page, @Param("params") HumidAlarm HumidAlarm);
+ HumidAlarm getHumidAlarm(HumidAlarm HumidAlarm);
+ int insertAlarm(HumidAlarm HumidAlarm);
+ int updateAlarm(HumidAlarm HumidAlarm);
+}
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/mapper/HumidDeviceMapper.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/mapper/HumidDeviceMapper.java
new file mode 100644
index 0000000..ae13ef8
--- /dev/null
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/mapper/HumidDeviceMapper.java
@@ -0,0 +1,18 @@
+package com.nu.modules.yiweilian.humid.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.nu.modules.yiweilian.humid.entity.HumidDevice;
+import org.apache.ibatis.annotations.Param;
+
+public interface HumidDeviceMapper extends BaseMapper {
+ IPage findPage(Page page, @Param("params") HumidDevice humidDevice);
+ HumidDevice getHumidDevice(HumidDevice humidDevice);
+ int insertDevice(HumidDevice humidDevice);
+ int updateDevice(HumidDevice humidDevice);
+ int deleteDevice(HumidDevice humidDevice);
+ int updateValue(HumidDevice humidDevice);
+ int insertLog(HumidDevice humidDevice);
+ IPage findLogPage(Page page, @Param("params") HumidDevice humidDevice);
+}
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/mapper/xml/HumidAlarmMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/mapper/xml/HumidAlarmMapper.xml
new file mode 100644
index 0000000..68b8deb
--- /dev/null
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/mapper/xml/HumidAlarmMapper.xml
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
+ insert into nu_iot_yiweilian_humid_alarm(
+ sn,
+ alarm_id,
+ wr_id,
+ wr_data,
+ wr_content,
+ wr_date,
+ status,
+ create_time
+ )
+ values(
+ #{sn},
+ #{alarmId},
+ #{wrId},
+ #{wrData},
+ #{wrContent},
+ #{wrDate},
+ '0',
+ now()
+ )
+
+
+
+ update nu_iot_yiweilian_humid_alarm
+ set
+ clear_alarm_id = #{clearAlarmId},
+ clear_id = #{clearId},
+ clear_data = #{clearData},
+ clear_content = #{clearContent},
+ clear_date = #{clearDate},
+ status = '1',
+ update_time = now()
+ where status = '0'
+ and sn = #{sn}
+ and wr_id = #{wrId}
+ and wr_date <= #{clearDate}
+
+
+
\ No newline at end of file
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/mapper/xml/HumidDeviceMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/mapper/xml/HumidDeviceMapper.xml
new file mode 100644
index 0000000..13e122f
--- /dev/null
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/mapper/xml/HumidDeviceMapper.xml
@@ -0,0 +1,340 @@
+
+
+
+
+
+
+
+
+
+ insert into nu_iot_yiweilian_humid_device(
+ sn,
+ time_code,
+ device_name,
+ create_time
+ )
+ values(
+ #{sn},
+ #{timeCode},
+ #{deviceName},
+ now()
+ )
+
+
+
+ update nu_iot_yiweilian_humid_device
+ set
+ device_name = #{deviceName},
+ device_types = #{deviceTypes},
+ reporting_interval = #{reportingInterval},
+ record_interval = #{recordInterval},
+ history_report_time = #{historyReportTime},
+ history_interval = #{historyInterval},
+ temperature_high = #{temperatureHigh},
+ temperature_low = #{temperatureLow},
+ temperature_buffer = #{temperatureBuffer},
+ humidity_high = #{humidityHigh},
+ humidity_low = #{humidityLow},
+ humidity_buffer = #{humidityBuffer},
+ iz_outages = #{izOutages},
+ iz_low_battery = #{izLowBattery},
+ iz_online = #{izOnline},
+ time_code = #{timeCode},
+ update_time = now()
+ where sn = #{sn}
+
+
+
+ delete from nu_iot_yiweilian_humid_device where sn = #{sn}
+
+
+
+ update nu_iot_yiweilian_humid_device
+ set
+ temperature = #{temperature},
+ humidity = #{humidity},
+ status = #{status},
+ reporting_time = #{reportingTime},
+ electricity = #{electricity}
+ where sn = #{sn}
+
+
+
+ insert into nu_iot_yiweilian_humid_device_log(
+ sn,
+
+ time_code,
+
+
+ device_name,
+
+
+ device_types,
+
+
+ reporting_interval,
+
+
+ record_interval,
+
+
+ history_report_time,
+
+
+ history_interval,
+
+
+ temperature_high,
+
+
+ temperature_low,
+
+
+ temperature_buffer,
+
+
+ humidity_high,
+
+
+ humidity_low,
+
+
+ humidity_buffer,
+
+
+ iz_outages,
+
+
+ iz_low_battery,
+
+
+ iz_online,
+
+
+ temperature,
+
+
+ humidity,
+
+
+ status,
+
+
+ reporting_time,
+
+
+ electricity,
+
+ opt_time,
+
+ opt_by,
+
+ opt_type
+ )values(
+ #{sn},
+
+ #{timeCode},
+
+
+ #{deviceName},
+
+
+ #{deviceTypes},
+
+
+ #{reportingInterval},
+
+
+ #{recordInterval},
+
+
+ #{historyReportTime},
+
+
+ #{historyInterval},
+
+
+ #{temperatureHigh},
+
+
+ #{temperatureLow},
+
+
+ #{temperatureBuffer},
+
+
+ #{humidityHigh},
+
+
+ #{humidityLow},
+
+
+ #{humidityBuffer},
+
+
+ #{izOutages},
+
+
+ #{izLowBattery},
+
+
+ #{izOnline},
+
+
+ #{temperature},
+
+
+ #{humidity},
+
+
+ #{status},
+
+
+ #{reportingTime},
+
+
+ #{electricity},
+
+ now(),
+
+ #{optBy},
+
+ #{optType}
+ )
+
+
+
+
+
\ No newline at end of file
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/IHumidAlarmService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/IHumidAlarmService.java
new file mode 100644
index 0000000..096f192
--- /dev/null
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/IHumidAlarmService.java
@@ -0,0 +1,14 @@
+package com.nu.modules.yiweilian.humid.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.nu.modules.yiweilian.humid.entity.HumidAlarm;
+import org.jeecg.common.api.vo.Result;
+
+import java.util.List;
+
+public interface IHumidAlarmService extends IService {
+ IPage findPage(Page page, HumidAlarm humidAlarm);
+ String getAlarm(HumidAlarm humidAlarm);
+}
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/IHumidDeviceService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/IHumidDeviceService.java
new file mode 100644
index 0000000..3925949
--- /dev/null
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/IHumidDeviceService.java
@@ -0,0 +1,19 @@
+package com.nu.modules.yiweilian.humid.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.nu.modules.yiweilian.humid.entity.HumidDevice;
+import org.jeecg.common.api.vo.Result;
+
+public interface IHumidDeviceService extends IService {
+ IPage findPage(Page page, HumidDevice humidDevice);
+ Result insertDevice(HumidDevice humidDevice);
+ String updateDeviceParameters(HumidDevice humidDevice,String type);
+ String updateDeviceRealTime(HumidDevice humidDevice);
+ Result updateDevice(HumidDevice humidDevice);
+ Result deleteDevice(HumidDevice humidDevice);
+ Result getDeviceParameters(HumidDevice humidDevice);
+ IPage findLogPage(Page page, HumidDevice humidDevice);
+
+}
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/impl/HumidAlarmServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/impl/HumidAlarmServiceImpl.java
new file mode 100644
index 0000000..3e3ad9f
--- /dev/null
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/impl/HumidAlarmServiceImpl.java
@@ -0,0 +1,138 @@
+package com.nu.modules.yiweilian.humid.service.impl;
+
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.nu.modules.yiweilian.humid.entity.HumidAlarm;
+import com.nu.modules.yiweilian.humid.mapper.HumidAlarmMapper;
+import com.nu.modules.yiweilian.humid.service.IHumidAlarmService;
+import com.nu.modules.yiweilian.utils.YiweilianApi;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+
+@Slf4j
+@Service
+public class HumidAlarmServiceImpl extends ServiceImpl implements IHumidAlarmService {
+
+ @Autowired
+ YiweilianApi yiweilianApi;
+
+ public IPage findPage(Page page, HumidAlarm HumidAlarm){
+ return baseMapper.findPage(page,HumidAlarm);
+ }
+
+ /**
+ * 获取告警数据
+ * @param HumidAlarm
+ * @return
+ */
+ @Override
+ public String getAlarm(HumidAlarm HumidAlarm){
+ Map params = getParmas(0,1000,HumidAlarm);
+ return updateAlarm(params,HumidAlarm);
+ }
+
+ /**
+ * 获取接口请求参数
+ * @param page
+ * @param limit
+ * @param HumidAlarm
+ * @return
+ */
+ private Map getParmas(int page,int limit,HumidAlarm HumidAlarm){
+ Map params = new HashMap<>();
+ params.put("rows", limit);
+ params.put("page", page);
+ params.put("type", 2);//根据时间排序 1降序 2升序 ,此字段貌似不好使
+ if(HumidAlarm.getSn()!=null&&!HumidAlarm.getSn().equals("")){
+ params.put("sn", HumidAlarm.getSn());
+ }
+ if(HumidAlarm.getAlarmStartTime()!=null){
+ params.put("startTime", DateUtils.formatDate(HumidAlarm.getAlarmStartTime(),"yyyy-MM-dd HH:mm:ss"));
+ }
+ if(HumidAlarm.getAlarmEndTime()!=null){
+ params.put("endTime", DateUtils.formatDate(HumidAlarm.getAlarmEndTime(),"yyyy-MM-dd HH:mm:ss"));
+ }
+ return params;
+ }
+
+ /**
+ * 更新告警数据
+ * @param map
+ * @param HumidAlarm
+ * @return
+ */
+ private String updateAlarm(Map map,HumidAlarm HumidAlarm){
+ String errorMsg = "";
+ String responseStr = yiweilianApi.getWarningData(map);
+ JSONObject jsonObject = new JSONObject(responseStr);
+ Integer responseCode = jsonObject.getInt("code");
+ if(responseCode.equals(0)){
+ JSONObject dataObj = jsonObject.getJSONObject("data");
+ Integer count = dataObj.getInt("count");
+ Integer limit = dataObj.getInt("rows");
+ Integer page = dataObj.getInt("page");
+ JSONArray dataArr = dataObj.getJSONArray("dataList");
+ if(dataArr.size()>0){
+ List list = new ArrayList<>();
+ for (int i = 0; i < dataArr.size(); i++) {
+ list.add(dataArr.getJSONObject(i));
+ }
+ Collections.sort(list, (o1, o2) -> {
+ String name1 = o1.getStr("id");
+ String name2 = o2.getStr("id");
+ return name1.compareTo(name2);
+ });
+ dataArr = new JSONArray(list);
+ }
+ log.info("排序后:{}",dataArr.toString());
+ for(int i=0;i100){
+ wrIdint = wrIdint -100;
+ ha.setWrId(""+wrIdint);
+ ha.setClearAlarmId(alarmId);
+ ha.setClearId(wrId);
+ ha.setClearData(wrData);
+ ha.setClearContent(wrContent);
+ ha.setClearDate(wrDate);
+ baseMapper.updateAlarm(ha);
+ }else{
+ HumidAlarm entity = baseMapper.getHumidAlarm(ha);
+ if(entity == null){
+ ha.setWrId(wrId);
+ ha.setWrData(wrData);
+ ha.setWrContent(wrContent);
+ ha.setWrDate(wrDate);
+ baseMapper.insertAlarm(ha);
+ }
+ }
+ }
+ if((page+1)*limit params = getParmas(page+1,limit,HumidAlarm);
+ errorMsg += updateAlarm(params,HumidAlarm);
+ }
+ }else{
+ errorMsg = jsonObject.getStr("msg");
+ }
+ return errorMsg;
+ }
+}
+
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/impl/HumidDeviceServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/impl/HumidDeviceServiceImpl.java
new file mode 100644
index 0000000..098cd07
--- /dev/null
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/impl/HumidDeviceServiceImpl.java
@@ -0,0 +1,399 @@
+package com.nu.modules.yiweilian.humid.service.impl;
+
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.nu.modules.tq.utils.HttpTool;
+import com.nu.modules.yiweilian.humid.entity.HumidDevice;
+import com.nu.modules.yiweilian.humid.mapper.HumidDeviceMapper;
+import com.nu.modules.yiweilian.humid.service.IHumidDeviceService;
+import com.nu.modules.yiweilian.utils.YiweilianApi;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.vo.LoginUser;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+@Slf4j
+@Service
+public class HumidDeviceServiceImpl extends ServiceImpl implements IHumidDeviceService {
+
+ @Autowired
+ YiweilianApi yiweilianApi;
+
+ public IPage findPage(Page page, HumidDevice humidDevice){
+ return baseMapper.findPage(page,humidDevice);
+ }
+
+ /**
+ * 添加
+ */
+ @Override
+ public Result insertDevice(HumidDevice humidDevice){
+ Map params = new HashMap<>();
+ params.put("sn", humidDevice.getSn());
+ params.put("timeCode", humidDevice.getTimeCode());
+ params.put("deviceName", humidDevice.getDeviceName());
+ String responseStr = yiweilianApi.addDevice(params);
+ JSONObject jsonObject = new JSONObject(responseStr);
+ Integer responseCode = jsonObject.getInt("code");
+ if(responseCode.equals(10003)){
+ baseMapper.insertDevice(humidDevice);
+ humidDevice.setOptType("insert");
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+ if(sysUser!=null){
+ humidDevice.setOptBy(sysUser.getUsername());
+ }
+ baseMapper.insertLog(humidDevice);
+ String error = updateDeviceParameters(humidDevice,"insert");
+ if(!error.equals("")){
+ String result = "设备添加成功,但是获取配置参数错误:"+ error;
+ return Result.error(result);
+ }
+ String error2 = updateDeviceRealTime(humidDevice);
+ if(!error2.equals("")){
+ String result = "设备添加成功,但是获取实时数据错误:"+ error2;
+ return Result.error(result);
+ }
+ return Result.OK("添加成功");
+ }else{
+ String result = "添加失败:"+jsonObject.getStr("msg");
+ return Result.error(result);
+ }
+ }
+
+ /**
+ * 更新设备配置参数
+ * @param humidDevice
+ * @return
+ */
+ @Override
+ public String updateDeviceParameters(HumidDevice humidDevice,String type){
+ Map params = getParmas(0,100,humidDevice);
+ return updateDeviceConfigs(params,humidDevice,type);
+ }
+
+ /**
+ * 获取接口请求参数
+ * @param page
+ * @param limit
+ * @param humidDevice
+ * @return
+ */
+ private Map getParmas(int page,int limit,HumidDevice humidDevice){
+ Map params = new HashMap<>();
+ params.put("rows", limit);
+ params.put("page", page);
+ if(humidDevice.getSn()!=null&&!humidDevice.getSn().equals("")){
+ params.put("sn", humidDevice.getSn());
+ }
+ return params;
+ }
+
+ /**
+ * 调用接口更新设备配置参数
+ * @param map
+ * @param humidDevice
+ * @return
+ */
+ private String updateDeviceConfigs(Map map,HumidDevice humidDevice,String type){
+ String errorMsg = "";
+ String responseStr = yiweilianApi.getDeviceConfigs(map);
+ JSONObject jsonObject = new JSONObject(responseStr);
+ Integer responseCode = jsonObject.getInt("code");
+ if(responseCode.equals(0)){
+ JSONObject dataObj = jsonObject.getJSONObject("data");
+ Integer count = dataObj.getInt("count");
+ Integer limit = dataObj.getInt("rows");
+ Integer page = dataObj.getInt("page");
+ JSONArray dataArr = dataObj.getJSONArray("dataList");
+ for(int i=0;i params = getParmas(page+1,limit,humidDevice);
+ errorMsg += updateDeviceConfigs(params,humidDevice,type);
+ }
+ }else{
+ errorMsg = jsonObject.getStr("msg");
+ }
+ return errorMsg;
+ }
+
+ /**
+ * 更新设备实时数据(抄表)
+ * @param humidDevice
+ * @return
+ */
+ @Override
+ public String updateDeviceRealTime(HumidDevice humidDevice){
+ Map params = getRealTimeParmas(0,50,humidDevice);
+ return updateDeviceRealTimeData(params,humidDevice);
+ }
+ /**
+ * 获取实时数据接口请求参数
+ * @param page
+ * @param limit
+ * @param humidDevice
+ * @return
+ */
+ private Map getRealTimeParmas(int page,int limit,HumidDevice humidDevice){
+ Map params = new HashMap<>();
+ params.put("rows", limit);
+ params.put("page", page);
+ if(humidDevice.getSn()!=null&&!humidDevice.getSn().equals("")){
+ String[] str = new String[1];
+ str[0] = humidDevice.getSn();
+ params.put("snList", str);
+ }
+ return params;
+ }
+
+ /**
+ * 调用接口更新设备实时数据(抄表)
+ * @param map
+ * @param humidDevice
+ * @return
+ */
+ private String updateDeviceRealTimeData(Map map,HumidDevice humidDevice){
+ String errorMsg = "";
+ String responseStr = yiweilianApi.getRealTime(map);
+ JSONObject jsonObject = new JSONObject(responseStr);
+ Integer responseCode = jsonObject.getInt("code");
+ if(responseCode.equals(0)){
+ JSONObject dataObj = jsonObject.getJSONObject("data");
+ Integer count = dataObj.getInt("count");
+ Integer limit = dataObj.getInt("rows");
+ Integer page = dataObj.getInt("page");
+ JSONArray dataArr = dataObj.getJSONArray("dataList");
+ for(int i=0;i params = getParmas(page+1,limit,humidDevice);
+ errorMsg += updateDeviceRealTimeData(params,humidDevice);
+ }
+ }else{
+ errorMsg = jsonObject.getStr("msg");
+ }
+ return errorMsg;
+ }
+
+ private Map getUpdateParmas(HumidDevice humidDevice){
+ Map params = new HashMap<>();
+ params.put("sn", humidDevice.getSn());
+ params.put("timeCode", humidDevice.getTimeCode());
+ params.put("deviceName", humidDevice.getDeviceName());
+ params.put("reportingInterval", humidDevice.getReportingInterval());
+ params.put("recordInterval", humidDevice.getRecordInterval());
+ params.put("historyReportTime", humidDevice.getHistoryReportTime());
+ params.put("historyInterval", humidDevice.getHistoryInterval());
+ params.put("temperatureHigh", humidDevice.getTemperatureHigh());
+ params.put("temperatureLow", humidDevice.getTemperatureLow());
+ params.put("temperatureBuffer", humidDevice.getTemperatureBuffer());
+ params.put("humidityHigh", humidDevice.getHumidityHigh());
+ params.put("humidityLow", humidDevice.getHumidityLow());
+ params.put("humidityBuffer", humidDevice.getHumidityBuffer());
+ params.put("isOutages", humidDevice.getIzOutages());
+ params.put("isLowBattery", humidDevice.getIzLowBattery());
+ params.put("isOnline", humidDevice.getIzOnline());
+ return params;
+ }
+
+ /**
+ * 修改
+ */
+ @Override
+ public Result updateDevice(HumidDevice humidDevice){
+ Map params = getUpdateParmas(humidDevice);
+ String responseStr = yiweilianApi.updateDeviceConfig(params);
+ JSONObject jsonObject = new JSONObject(responseStr);
+ Integer responseCode = jsonObject.getInt("code");
+ if(responseCode.equals(0)){
+ baseMapper.updateDevice(humidDevice);
+ humidDevice.setOptType("update");
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+ humidDevice.setOptBy(sysUser.getUsername());
+ baseMapper.insertLog(humidDevice);
+ return Result.OK("修改成功");
+ }else{
+ String error = "修改失败:"+jsonObject.getStr("msg");
+ return Result.error(error);
+ }
+ }
+
+ /**
+ * 删除
+ */
+ @Override
+ public Result deleteDevice(HumidDevice humidDevice){
+ Map params = new HashMap<>();
+ params.put("sn", humidDevice.getSn());
+ String responseStr = yiweilianApi.deleteDevice(params);
+ JSONObject jsonObject = new JSONObject(responseStr);
+ Integer responseCode = jsonObject.getInt("code");
+ if(responseCode.equals(0)){
+ baseMapper.deleteDevice(humidDevice);
+ humidDevice.setOptType("delete");
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+ humidDevice.setOptBy(sysUser.getUsername());
+ baseMapper.insertLog(humidDevice);
+ return Result.OK("删除成功");
+ }else{
+ String error = "删除失败:"+jsonObject.getStr("msg");
+ return Result.error(error);
+ }
+ }
+
+ /**
+ * 获取设备配置参数
+ */
+ @Override
+ public Result getDeviceParameters(HumidDevice humidDevice){
+ if(humidDevice.getSn()==null||humidDevice.getSn().equals("")){
+ return Result.error("请指定设备SN号");
+ }
+ Map params = getParmas(0,1,humidDevice);
+ HumidDevice deviceParameters = getDeviceConfigs(params);
+ if(deviceParameters!=null){
+ return Result.OK(deviceParameters);
+ }else{
+ return Result.error("获取设备配置参数错误");
+ }
+ }
+
+ /**
+ * 调用接口获取设备配置参数
+ * @param map
+ * @return
+ */
+ private HumidDevice getDeviceConfigs(Map map){
+ HumidDevice dh = new HumidDevice();
+ String responseStr = yiweilianApi.getDeviceConfigs(map);
+ JSONObject jsonObject = new JSONObject(responseStr);
+ Integer responseCode = jsonObject.getInt("code");
+ if(responseCode.equals(0)){
+ JSONObject dataObj = jsonObject.getJSONObject("data");
+ JSONArray dataArr = dataObj.getJSONArray("dataList");
+ for(int i=0;i findLogPage(Page page, HumidDevice humidDevice){
+ return baseMapper.findLogPage(page,humidDevice);
+ }
+
+}
+
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/utils/HttpTool.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/utils/HttpTool.java
new file mode 100644
index 0000000..fae2706
--- /dev/null
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/utils/HttpTool.java
@@ -0,0 +1,85 @@
+package com.nu.modules.yiweilian.utils;
+
+import cn.hutool.json.JSONObject;
+import com.google.gson.Gson;
+import org.apache.http.HttpResponse;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.util.EntityUtils;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+public class HttpTool {
+
+ /**
+ * 发送http POST请求
+ * @param url
+ * @param map
+ * @return
+ * @throws Exception
+ */
+ public static String httpClientPost(String url, Map map){
+ String errorMsg = "";
+ Gson gson = new Gson();
+ String map2 = gson.toJson(map);
+ System.out.println(map2);
+ try {
+ URL obj = new URL(url);
+ HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+ // 设置请求方法为 POST
+ con.setRequestMethod("POST");
+ // 设置请求头
+ con.setRequestProperty("Content-Type", "application/json"); // 声明发送 JSON
+ con.setRequestProperty("Accept", "application/json"); // 声明期望接收 JSON
+ con.setDoOutput(true); // 允许写入请求体
+ // 写入 JSON 请求体
+ try (OutputStream os = con.getOutputStream()) {
+ byte[] input = map2.getBytes("utf-8");
+ os.write(input, 0, input.length);
+ }
+ // 获取响应码
+ int responseCode = con.getResponseCode();
+ System.out.println("Response Code: " + responseCode);
+ // 读取响应(成功时)
+ if (responseCode == HttpURLConnection.HTTP_OK) { // 200
+ try (BufferedReader br = new BufferedReader(
+ new InputStreamReader(con.getInputStream(), "UTF-8"))) {
+ StringBuilder response = new StringBuilder();
+ String responseLine;
+ while ((responseLine = br.readLine()) != null) {
+ response.append(responseLine.trim());
+ }
+ System.out.println("Response: " + response.toString());
+ errorMsg = response.toString();
+ }
+ } else { // 错误时读取错误流
+ try (BufferedReader br = new BufferedReader(
+ new InputStreamReader(con.getErrorStream(), "UTF-8"))) {
+ StringBuilder errorResponse = new StringBuilder();
+ String errorLine;
+ while ((errorLine = br.readLine()) != null) {
+ errorResponse.append(errorLine.trim());
+ }
+ System.out.println("Error Response: " + errorResponse.toString());
+ errorMsg = "{\"code\":"+responseCode+",\"msg\":\""+errorResponse.toString()+"\" }";
+ }
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return errorMsg;
+ }
+
+}
\ No newline at end of file
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/utils/YiweilianApi.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/utils/YiweilianApi.java
new file mode 100644
index 0000000..f4f063d
--- /dev/null
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/utils/YiweilianApi.java
@@ -0,0 +1,124 @@
+package com.nu.modules.yiweilian.utils;
+
+import com.nu.modules.yiweilian.common.entity.YiweilianConfig;
+import com.nu.modules.yiweilian.common.mapper.YiweilianConfigMapper;
+import com.nu.modules.yiweilian.enums.YiweilianApiEnum;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import java.util.Map;
+
+@Component
+@Slf4j
+public class YiweilianApi {
+
+ YiweilianConfig yiweilianConfig;
+
+ @Autowired
+ YiweilianConfigMapper yiweilianConfigMapper;
+
+ private void initYiweilianConfig(){
+ if(yiweilianConfig==null){
+ yiweilianConfig = yiweilianConfigMapper.getConfig();
+ }
+ }
+
+ public YiweilianConfig getYiweilianConfig(){
+ this.initYiweilianConfig();
+ return yiweilianConfig;
+ }
+
+ /**
+ * 添加设备
+ */
+ public String addDevice(Map params){
+ this.initYiweilianConfig();
+ params.put("clientId", yiweilianConfig.getClientId());
+ log.info("addDevice:request:{}",params);
+ String url = yiweilianConfig.getRequestUrl()+ YiweilianApiEnum.ADD_DEVICE.getValue();
+ String responseStr = HttpTool.httpClientPost(url, params);
+ log.info("addDevice:response:{}",responseStr);
+ return responseStr;
+ }
+
+
+ /**
+ * 修改设备配置
+ */
+ public String updateDeviceConfig(Map params){
+ this.initYiweilianConfig();
+ params.put("clientId", yiweilianConfig.getClientId());
+ log.info("updateDeviceConfig:request:{}",params);
+ String url = yiweilianConfig.getRequestUrl()+YiweilianApiEnum.UPDATE_DEVICE_CONFIG.getValue();
+ String responseStr = HttpTool.httpClientPost(url, params);
+ log.info("updateDeviceConfig:response:{}",responseStr);
+ return responseStr;
+ }
+
+ /**
+ * 删除设备
+ */
+ public String deleteDevice(Map params){
+ this.initYiweilianConfig();
+ params.put("clientId", yiweilianConfig.getClientId());
+ log.info("deleteDevice:request:{}",params);
+ String url = yiweilianConfig.getRequestUrl()+YiweilianApiEnum.DELETE_DEVICE.getValue();
+ String responseStr = HttpTool.httpClientPost(url, params);
+ log.info("deleteDevice:response:{}",responseStr);
+ return responseStr;
+ }
+
+ /**
+ * 查询设备列表(分页)
+ */
+// public String getDevices(Map params){
+// this.initYiweilianConfig();
+// params.put("clientId", yiweilianConfig.getClientId());
+// log.info("getDevices:request:{}",params);
+// String url = yiweilianConfig.getRequestUrl()+YiweilianApiEnum.GET_DEVICES.getValue();
+// String responseStr = HttpTool.httpClientPost(url, params);
+// log.info("getDevices:response:{}",responseStr);
+// return responseStr;
+// }
+
+ /**
+ * 查询设备列表含配置信息(分页)
+ */
+ public String getDeviceConfigs(Map params){
+ this.initYiweilianConfig();
+ params.put("clientId", yiweilianConfig.getClientId());
+ log.info("getDeviceConfigs:request:{}",params);
+ String url = yiweilianConfig.getRequestUrl()+YiweilianApiEnum.GET_DEVICE_CONFIGS.getValue();
+ String responseStr = HttpTool.httpClientPost(url, params);
+ log.info("getDeviceConfigs:response:{}",responseStr);
+ return responseStr;
+ }
+
+
+ /**
+ * 查询设备实时数据(分页)
+ */
+ public String getRealTime(Map params){
+ this.initYiweilianConfig();
+ params.put("clientId", yiweilianConfig.getClientId());
+ log.info("getRealTime:request:{}",params);
+ String url = yiweilianConfig.getRequestUrl()+YiweilianApiEnum.GET_REAL_TIME.getValue();
+ String responseStr = HttpTool.httpClientPost(url, params);
+ log.info("getRealTime:response:{}",responseStr);
+ return responseStr;
+ }
+
+ /**
+ * 查询告警记录(分页)
+ */
+ public String getWarningData(Map params){
+ this.initYiweilianConfig();
+ params.put("clientId", yiweilianConfig.getClientId());
+ log.info("getWarningData:request:{}",params);
+ String url = yiweilianConfig.getRequestUrl()+YiweilianApiEnum.GET_WARNING_DATA.getValue();
+ String responseStr = HttpTool.httpClientPost(url, params);
+ log.info("getWarningData:response:{}",responseStr);
+ return responseStr;
+ }
+
+}
From fa14ecc34c6757045744865673ac976da3b88ff9 Mon Sep 17 00:00:00 2001
From: yangjun <1173114630@qq.com>
Date: Thu, 19 Jun 2025 09:42:16 +0800
Subject: [PATCH 7/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8A=A4=E7=90=86?=
=?UTF-8?q?=E5=8D=95=E5=85=83=E7=9A=84=E5=8D=95=E5=85=83=E7=BC=96=E7=A0=81?=
=?UTF-8?q?=E5=AD=97=E6=AE=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/nu/modules/tplink/camera/entity/NuBaseInfo.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/NuBaseInfo.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/NuBaseInfo.java
index b56c5e9..d339904 100644
--- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/NuBaseInfo.java
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/NuBaseInfo.java
@@ -42,7 +42,7 @@ public class NuBaseInfo implements Serializable {
/**护理单元编码*/
@Excel(name = "护理单元编码", width = 15)
@ApiModelProperty(value = "护理单元编码")
- private String code;
+ private String nuId;
/**区域标签ID*/
@Excel(name = "区域标签ID", width = 15, dicCode = "nu_type")
@Dict(dicCode = "nu_type")
From c25e4e9c76ab853535840599330f26ce48417f77 Mon Sep 17 00:00:00 2001
From: yangjun <1173114630@qq.com>
Date: Thu, 19 Jun 2025 14:31:30 +0800
Subject: [PATCH 8/8] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B0=B4=E8=A1=A8?=
=?UTF-8?q?=EF=BC=8C=E6=B8=A9=E6=B9=BF=E5=BA=A6=E7=A1=AC=E4=BB=B6=E9=85=8D?=
=?UTF-8?q?=E7=BD=AE=E5=8F=8A=E5=90=8C=E6=AD=A5=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ElectricityMeterController.java | 9 +-
.../service/IElectricityMeterService.java | 2 +
.../impl/ElectricityMeterServiceImpl.java | 17 ++-
.../controller/WaterMeterController.java | 32 ++++-
.../modules/tq/water/entity/WaterMeter.java | 9 +-
.../tq/water/mapper/xml/WaterMeterMapper.xml | 6 +-
.../tq/water/service/IWaterMeterService.java | 4 +
.../service/impl/WaterMeterServiceImpl.java | 126 ++++++++++++++++++
.../controller/HumidDeviceController.java | 25 ++++
.../yiweilian/humid/entity/HumidDevice.java | 4 +
.../humid/service/IHumidDeviceService.java | 3 +
.../service/impl/HumidDeviceServiceImpl.java | 124 +++++++++++++++++
12 files changed, 348 insertions(+), 13 deletions(-)
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/controller/ElectricityMeterController.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/controller/ElectricityMeterController.java
index 4badd1a..c42699f 100644
--- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/controller/ElectricityMeterController.java
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/controller/ElectricityMeterController.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nu.modules.tq.electricity.entity.ElectricityMeter;
import com.nu.modules.tq.electricity.service.IElectricityMeterService;
+import com.nu.modules.tq.water.entity.WaterMeter;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
@@ -73,13 +74,19 @@ public class ElectricityMeterController extends JeecgController edit(@RequestBody ElectricityMeter electricityMeter) {
service.updateById(electricityMeter);
return Result.OK("编辑成功!");
}
+ @AutoLog(value = "修改电表的机构及护理单元信息")
+ @RequestMapping(value = "/editHldy", method = {RequestMethod.PUT,RequestMethod.POST})
+ public Result editHldy(@RequestBody ElectricityMeter electricityMeter) {
+ service.editHldy(electricityMeter);
+ return Result.OK("编辑成功!");
+ }
@AutoLog(value = "同步电表到业务系统")
@RequestMapping(value = "/syncElectricity", method = {RequestMethod.PUT,RequestMethod.POST})
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/IElectricityMeterService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/IElectricityMeterService.java
index 9be9315..592d643 100644
--- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/IElectricityMeterService.java
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/IElectricityMeterService.java
@@ -20,4 +20,6 @@ public interface IElectricityMeterService extends IService {
String eleReadNotify(String response_content, String timestamp, String sign);
void syncElectricity(String dataSourceCode, ElectricityMeter electricityMeter);
+
+ void editHldy(ElectricityMeter electricityMeter);
}
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/impl/ElectricityMeterServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/impl/ElectricityMeterServiceImpl.java
index d15b1a9..1e00653 100644
--- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/impl/ElectricityMeterServiceImpl.java
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/impl/ElectricityMeterServiceImpl.java
@@ -15,6 +15,7 @@ import com.nu.modules.tq.common.service.ITqApiLogService;
import com.nu.modules.tq.utils.HttpTool;
import com.nu.modules.tq.utils.SignTool;
import com.nu.modules.tq.utils.TqApi;
+import com.nu.modules.tq.water.entity.WaterMeter;
import lombok.extern.slf4j.Slf4j;
import com.nu.modules.tq.electricity.entity.ElectricityMeter;
import com.nu.modules.tq.electricity.mapper.ElectricityMeterMapper;
@@ -452,7 +453,7 @@ public class ElectricityMeterServiceImpl extends ServiceImpl edit(@RequestBody WaterMeter waterMeter) {
+ service.updateById(waterMeter);
+ return Result.OK("编辑成功!");
+ }
+
+
+ @AutoLog(value = "修改机构及护理单元信息")
+ @RequestMapping(value = "/editHldy", method = {RequestMethod.PUT,RequestMethod.POST})
+ public Result editHldy(@RequestBody WaterMeter waterMeter) {
+ service.editHldy(waterMeter);
+ return Result.OK("编辑成功!");
+ }
+
+
+ @AutoLog(value = "同步电表到业务系统")
+ @RequestMapping(value = "/syncElectricity", method = {RequestMethod.PUT,RequestMethod.POST})
+ public Result syncElectricity(@RequestBody WaterMeter waterMeter) {
+ String dataSourceCode = waterMeter.getDepartServerUrl();
+ service.syncElectricity(dataSourceCode,waterMeter);
+ return Result.OK("同步成功!");
+ }
}
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/entity/WaterMeter.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/entity/WaterMeter.java
index 70a4995..1e7ea6a 100644
--- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/entity/WaterMeter.java
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/entity/WaterMeter.java
@@ -70,12 +70,13 @@ public class WaterMeter implements Serializable {
@ApiModelProperty(value = "描述")
private String remark;
- @TableField(exist = false)
private String nuId;//护理单元ID
- @TableField(exist = false)
private String nuName;//护理单元
- @TableField(exist = false)
private String departId;//机构ID
- @TableField(exist = false)
private String departName;//机构名称
+ private String departServerUrl;//机构服务地址
+ private String oldServerUrl;//原机构服务地址
+ private String syncType;//是否同步 0 未同步 1已同步
+ private String oldDepartId;//原机构id
+ private String oldDepartName;//原机构名称
}
\ No newline at end of file
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/xml/WaterMeterMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/xml/WaterMeterMapper.xml
index d88b985..76c128f 100644
--- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/xml/WaterMeterMapper.xml
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/xml/WaterMeterMapper.xml
@@ -19,7 +19,11 @@
a.nu_id as nuId,
a.nu_name as nuName,
a.depart_id as departId,
- a.depart_name as departName
+ a.depart_name as departName,
+ a.depart_server_url as departServerUrl,
+ a.old_server_url as oldServerUrl,
+ a.old_depart_id as oldDepartId,
+ a.old_depart_name as oldDepartName
from nu_iot_tq_water_meter a
left join nu_iot_tq_collector b on a.cid = b.cid
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/IWaterMeterService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/IWaterMeterService.java
index 0661cd3..912c467 100644
--- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/IWaterMeterService.java
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/IWaterMeterService.java
@@ -18,4 +18,8 @@ public interface IWaterMeterService extends IService {
String waterResetNotify(String response_content, String timestamp, String sign);
String waterControlNotify(String response_content, String timestamp, String sign);
String waterReadNotify(String response_content, String timestamp, String sign);
+
+ void syncElectricity(String dataSourceCode, WaterMeter waterMeter);
+
+ void editHldy(WaterMeter waterMeter);
}
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/impl/WaterMeterServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/impl/WaterMeterServiceImpl.java
index 427b2dc..7c5820a 100644
--- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/impl/WaterMeterServiceImpl.java
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/impl/WaterMeterServiceImpl.java
@@ -3,11 +3,17 @@ package com.nu.modules.tq.water.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.nu.modules.nuIotTqElectricitySyncLog.entity.NuIotTqElectricitySyncLog;
+import com.nu.modules.nuIotTqElectricitySyncLog.service.INuIotTqElectricitySyncLogService;
import com.nu.modules.tq.common.entity.TqApiLog;
import com.nu.modules.tq.common.service.ITqApiLogService;
+import com.nu.modules.tq.electricity.entity.ElectricityMeter;
+import com.nu.modules.tq.electricity.service.impl.ElectricityMeterServiceImpl;
import com.nu.modules.tq.utils.HttpTool;
import com.nu.modules.tq.utils.SignTool;
import com.nu.modules.tq.utils.TqApi;
@@ -15,8 +21,10 @@ import com.nu.modules.tq.water.entity.WaterMeter;
import com.nu.modules.tq.water.mapper.WaterMeterMapper;
import com.nu.modules.tq.water.service.IWaterMeterService;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import java.util.*;
@@ -31,6 +39,14 @@ public class WaterMeterServiceImpl extends ServiceImpl findPage(Page page, WaterMeter waterMeter){
return baseMapper.findPage(page,waterMeter);
@@ -438,4 +454,114 @@ public class WaterMeterServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("cid",waterMeter.getCid());
+ WaterMeter oldParam = baseMapper.selectOne(queryWrapper);//查询数据库中该表号数据原始数据
+ if(oldParam == null){
+ baseMapper.insert(waterMeter);
+ }else{
+ baseMapper.updateById(waterMeter);
+ }
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ return true;
+ }
}
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/controller/HumidDeviceController.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/controller/HumidDeviceController.java
index 9762ecf..3bbd004 100644
--- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/controller/HumidDeviceController.java
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/controller/HumidDeviceController.java
@@ -2,10 +2,12 @@ package com.nu.modules.yiweilian.humid.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.nu.modules.tq.water.entity.WaterMeter;
import com.nu.modules.yiweilian.humid.entity.HumidDevice;
import com.nu.modules.yiweilian.humid.service.IHumidDeviceService;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -115,4 +117,27 @@ public class HumidDeviceController extends JeecgController pageList = service.findLogPage(page, humidDevice);
return Result.OK(pageList);
}
+ @AutoLog(value = "修改温湿度表信息")
+ @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+ public Result edit(@RequestBody HumidDevice humidDevice) {
+ service.updateById(humidDevice);
+ return Result.OK("编辑成功!");
+ }
+
+
+ @AutoLog(value = "修改温湿度表的机构及护理单元信息")
+ @RequestMapping(value = "/editHldy", method = {RequestMethod.PUT,RequestMethod.POST})
+ public Result editHldy(@RequestBody HumidDevice humidDevice) {
+ service.editHldy(humidDevice);
+ return Result.OK("编辑成功!");
+ }
+
+
+ @AutoLog(value = "同步电表到业务系统")
+ @RequestMapping(value = "/syncHumidDevice", method = {RequestMethod.PUT,RequestMethod.POST})
+ public Result syncHumidDevice(@RequestBody HumidDevice humidDevice) {
+ String dataSourceCode = humidDevice.getDepartServerUrl();
+ service.syncHumidDevice(dataSourceCode,humidDevice);
+ return Result.OK("同步成功!");
+ }
}
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/entity/HumidDevice.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/entity/HumidDevice.java
index f28cdec..04b06ab 100644
--- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/entity/HumidDevice.java
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/entity/HumidDevice.java
@@ -95,10 +95,14 @@ public class HumidDevice implements Serializable {
@ApiModelProperty(value = "电量")
private String electricity; //电量 0~4
+ @TableField(exist = false)
private String optType; //操作类型
+ @TableField(exist = false)
private String optTime; //操作时间
+ @TableField(exist = false)
private String optBy; //操作人
+ @TableField(exist = false)
private Integer alarmCn; //告警数量
private String nuId;//护理单元ID
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/IHumidDeviceService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/IHumidDeviceService.java
index 3925949..a28145d 100644
--- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/IHumidDeviceService.java
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/IHumidDeviceService.java
@@ -16,4 +16,7 @@ public interface IHumidDeviceService extends IService {
Result getDeviceParameters(HumidDevice humidDevice);
IPage findLogPage(Page page, HumidDevice humidDevice);
+ void syncHumidDevice(String dataSourceCode, HumidDevice humidDevice);
+
+ void editHldy(HumidDevice humidDevice);
}
diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/impl/HumidDeviceServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/impl/HumidDeviceServiceImpl.java
index 098cd07..00d5a00 100644
--- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/impl/HumidDeviceServiceImpl.java
+++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/impl/HumidDeviceServiceImpl.java
@@ -2,19 +2,27 @@ package com.nu.modules.yiweilian.humid.service.impl;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.nu.modules.nuIotTqElectricitySyncLog.entity.NuIotTqElectricitySyncLog;
+import com.nu.modules.nuIotTqElectricitySyncLog.service.INuIotTqElectricitySyncLogService;
import com.nu.modules.tq.utils.HttpTool;
+import com.nu.modules.tq.water.entity.WaterMeter;
+import com.nu.modules.tq.water.service.impl.WaterMeterServiceImpl;
import com.nu.modules.yiweilian.humid.entity.HumidDevice;
import com.nu.modules.yiweilian.humid.mapper.HumidDeviceMapper;
import com.nu.modules.yiweilian.humid.service.IHumidDeviceService;
import com.nu.modules.yiweilian.utils.YiweilianApi;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.vo.LoginUser;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import java.util.HashMap;
@@ -28,6 +36,13 @@ public class HumidDeviceServiceImpl extends ServiceImpl findPage(Page page, HumidDevice humidDevice){
return baseMapper.findPage(page,humidDevice);
}
@@ -395,5 +410,114 @@ public class HumidDeviceServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("sn",humidDevice.getSn());
+ HumidDevice oldParam = baseMapper.selectOne(queryWrapper);//查询数据库中该表号数据原始数据
+ if(oldParam == null){
+ baseMapper.insert(humidDevice);
+ }else{
+ baseMapper.updateById(humidDevice);
+ }
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ return true;
+ }
+
}