Merge remote-tracking branch 'origin/master'

# Conflicts:
#	ruoyi-modules/hw-mqtt-broker/src/main/java/com/hw/mqtt/HwMqttBrokerApplication.java
#	ruoyi-modules/hw-mqtt-broker/src/main/resources/bootstrap.yml
master
Wen JY 2 years ago
commit 2431cdee2e

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

@ -213,6 +213,13 @@
<version>${ruoyi.version}</version>
</dependency>
<!-- tdegin接口 -->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>hw-api-tdengine</artifactId>
<version>${ruoyi.version}</version>
</dependency>
</dependencies>
</dependencyManagement>

@ -51,5 +51,6 @@ public interface RemoteTdEngineService {
@PostMapping("/tdengine/getCountOfHistoryData")
R<?> getCountOfHistoryData(@Validated @RequestBody TdHistorySelectDto tdHistorySelectDto);
@PostMapping("/tdengine/getOnlineDevicesGroupByDay")
R<?> getOnlineDevicesGroupByDay(@Validated @RequestBody DeviceStatus queryDeviceStatus);
}

@ -0,0 +1,63 @@
package com.ruoyi.tdengine.api.domain;
import com.ruoyi.common.core.web.domain.BaseEntity;
/**
* @Description:
* @ClassName: DeviceStatus
* @Author : xins
* @Date :2023-09-05 11:35
* @Version :1.0
*/
public class DeviceStatus extends BaseEntity {
private Long ts;
private String deviceCode;
private int deviceType;
private int onlineStatus;
private Long sceneId;
public Long getTs() {
return ts;
}
public void setTs(Long ts) {
this.ts = ts;
}
public String getDeviceCode() {
return deviceCode;
}
public void setDeviceCode(String deviceCode) {
this.deviceCode = deviceCode;
}
public int getDeviceType() {
return deviceType;
}
public void setDeviceType(int deviceType) {
this.deviceType = deviceType;
}
public int getOnlineStatus() {
return onlineStatus;
}
public void setOnlineStatus(int onlineStatus) {
this.onlineStatus = onlineStatus;
}
public Long getSceneId() {
return sceneId;
}
public void setSceneId(Long sceneId) {
this.sceneId = sceneId;
}
}

@ -10,6 +10,13 @@ import org.springframework.stereotype.Component;
import java.util.Map;
/**
* @Description: TDengine
* @ClassName: RemoteTdEngineFallbackFactory
* @Author : xins
* @Date :2023-09-01 14:14
* @Version :1.0
*/
@Component
public class RemoteTdEngineFallbackFactory implements FallbackFactory<RemoteTdEngineService> {
@ -73,6 +80,11 @@ public class RemoteTdEngineFallbackFactory implements FallbackFactory<RemoteTdEn
return R.fail("获取历史数据数量失败:" + throwable.getMessage());
}
@Override
public R<?> getOnlineDevicesGroupByDay(DeviceStatus queryDeviceStatus) {
return R.fail("获取设备状态失败:" + throwable.getMessage());
}
};
}
}

@ -0,0 +1,6 @@
public class test {
public static void main(String[] args) {
System.out.println(System.currentTimeMillis());
}
}

@ -49,18 +49,18 @@ public class I18nConfig implements WebMvcConfigurer
return lci;
}
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasenames("classpath:i18n/messages");
messageSource.setDefaultEncoding("utf-8");
//设置缓存时间1个小时 1*60*60*1000毫秒
//可以设置成-1表示永久缓存设置成0表示每次都从文件中读取
messageSource.setCacheMillis(1*60*60*1000);
messageSource.setFallbackToSystemLocale(true);
return messageSource;
}
// @Bean
// public MessageSource messageSource() {
// ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
// messageSource.setBasenames("classpath:i18n/messages");
// messageSource.setDefaultEncoding("utf-8");
// //设置缓存时间1个小时 1*60*60*1000毫秒
// //可以设置成-1表示永久缓存设置成0表示每次都从文件中读取
// messageSource.setCacheMillis(1*60*60*1000);
// messageSource.setFallbackToSystemLocale(true);
//
// return messageSource;
// }
@Override

@ -0,0 +1,29 @@
package com.ruoyi.common.core.constant;
/**
* @Description:
* @ClassName: HwDictConstants
* @Author : xins
* @Date :2023-09-03 12:27
* @Version :1.0
*/
public class HwDictConstants {
public static final String EFFECTIVE_TIME_FLAG_LONG = "1";//长期有效
public static final String EFFECTIVE_TIME_FLAG_RANGE = "2";//时间范围
public static final String AREA_SHAPE_FLAG_POLYGN = "1";//多边形
public static final String AREA_SHAPE_FLAG_CIRCULA = "2";//圆形
public static final String DEFAULT_FUNCTION_LONGITUDE_IDENTIFIER = "longitude";//经度标识符
public static final String DEFAULT_FUNCTION_LATITUDE_IDENTIFIER = "latitude";//纬度标识符
public static final String ELECTRONIC_FENCE_TRIGGER_STATUS_EXIT = "1";//电子围栏触发状态:出界
public static final String ELECTRONIC_FENCE_TRIGGER_STATUS_ENTRY = "2";//电子围栏触发状态:入界
public static final String ALARM_INFO_TYPE_DEVICE = "1";//设备报警
public static final String ALARM_INFO_TYPE_MONITOR_UNIT = "2";//监控单元
public static final String ALARM_INFO_TYPE_OFFLINE = "3";//离线报警
public static final String ALARM_INFO_TYPE_ELECTRONIC_FENCE = "4";//电子围栏
}

@ -1,8 +1,67 @@
package com.ruoyi.common.core.constant;
import java.util.HashMap;
import java.util.Map;
/**
* @Description: TdEngine
* @ClassName: TdEngineConstants
* @Author : xins
* @Date :2023-09-05 9:47
* @Version :1.0
*/
public class TdEngineConstants {
public static final String DEFAULT_FIRST_FIELD_NAME = "ts";
public static final String DEFAULT_FIRST_FIELD_NAME = "ts";//timestamp格式首字段必须
public static final String DEFAULT_ORDER_BY_MODE = "desc";//默认排序方式,逆序
public static final String PAYLOAD_TS = "timestamp";//协议上传ts的key
public static final String PAYLOAD_PARAM = "param";//协议上传的param key
public static final String PAYLOAD_DATAVALUE = "datavalue";//协议上传数据的key
public static final String PAYLOAD_DEVICE_CODE = "uid";//协议上传设备编号的key
public static final String DEFAULT_DB_NAME_PREFIX = "db_scene_";//数据库名称前缀
public static final String DEFAULT_TABLE_NAME_PREFIX = "t_device_";//数据表名称前缀
public static final String DEFAULT_DEVICE_STATUS_SUPER_TABLE_NAME= "st_ds";//设备状态超级表名称
public static final String DEFAULT_DEVICE_STATUS_TABLE_NAME_PREFIX = "t_ds_";//设备状态数据表名称前缀
public static final String PLATFORM_DB_NAME = "db_hwsaas";//全局数据库名称
/**
* key
*/
public static final Map<String, String> TDENGINE_KEY_TRANSFER_MAP = new HashMap<String, String>();
static {
TDENGINE_KEY_TRANSFER_MAP.put("value", "value1");
}
/**
* @return String
* @param: sceneId
* @description
* @author xins
* @date 2023-09-05 9:42
*/
public static String getDatabaseName(Long sceneId) {
return DEFAULT_DB_NAME_PREFIX + sceneId;
}
/**
* @param: deviceId
* @return String
* @description
* @author xins
* @date 2023-09-05 9:42
*/
public static String getDeviceDataTableName(Long deviceId) {
return DEFAULT_TABLE_NAME_PREFIX + deviceId;
}
public static final String DEFAULT_ORDER_BY_MODE = "desc";
}

@ -0,0 +1,35 @@
package com.ruoyi.common.core.enums;
/**
* @Description:
* @ClassName: ResultEnums
* @Author : xins
* @Date :2023-09-01 13:40
* @Version :1.0
*/
public enum ResultEnums {
SUCCESS(200,"成功"),FAIL(500,"失败");
public Integer code;
public String message;
ResultEnums(Integer code, String message) {
this.code = code;
this.message = message;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}

@ -0,0 +1,103 @@
package com.ruoyi.basic.controller;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
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.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.basic.domain.HwArea;
import com.ruoyi.basic.service.IHwAreaService;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
/**
* Controller
*
* @author YINQ
* @date 2023-08-30
*/
@RestController
@RequestMapping("/area")
public class HwAreaController extends BaseController
{
@Autowired
private IHwAreaService hwAreaService;
/**
*
*/
@RequiresPermissions("basic:area:list")
@GetMapping("/list")
public AjaxResult list(HwArea hwArea)
{
List<HwArea> list = hwAreaService.selectHwAreaList(hwArea);
return success(list);
}
/**
*
*/
@RequiresPermissions("basic:area:export")
@Log(title = "区域管理", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, HwArea hwArea)
{
List<HwArea> list = hwAreaService.selectHwAreaList(hwArea);
ExcelUtil<HwArea> util = new ExcelUtil<HwArea>(HwArea.class);
util.exportExcel(response, list, "区域管理数据");
}
/**
*
*/
@RequiresPermissions("basic:area:query")
@GetMapping(value = "/{areaId}")
public AjaxResult getInfo(@PathVariable("areaId") Long areaId)
{
return success(hwAreaService.selectHwAreaByAreaId(areaId));
}
/**
*
*/
@RequiresPermissions("basic:area:add")
@Log(title = "区域管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody HwArea hwArea)
{
return toAjax(hwAreaService.insertHwArea(hwArea));
}
/**
*
*/
@RequiresPermissions("basic:area:edit")
@Log(title = "区域管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody HwArea hwArea)
{
return toAjax(hwAreaService.updateHwArea(hwArea));
}
/**
*
*/
@RequiresPermissions("basic:area:remove")
@Log(title = "区域管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{areaIds}")
public AjaxResult remove(@PathVariable Long[] areaIds)
{
return toAjax(hwAreaService.deleteHwAreaByAreaIds(areaIds));
}
}

@ -0,0 +1,72 @@
package com.ruoyi.basic.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.TreeEntity;
/**
* hw_area
*
* @author YINQ
* @date 2023-08-30
*/
public class HwArea extends TreeEntity
{
private static final long serialVersionUID = 1L;
/** 区域ID */
private Long areaId;
/** 区域名称 */
@Excel(name = "区域名称")
private String areaName;
/** 区域状态 */
@Excel(name = "区域状态")
private Long areaStatus;
public void setAreaId(Long areaId)
{
this.areaId = areaId;
}
public Long getAreaId()
{
return areaId;
}
public void setAreaName(String areaName)
{
this.areaName = areaName;
}
public String getAreaName()
{
return areaName;
}
public void setAreaStatus(Long areaStatus)
{
this.areaStatus = areaStatus;
}
public Long getAreaStatus()
{
return areaStatus;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("areaId", getAreaId())
.append("areaName", getAreaName())
.append("ancestors", getAncestors())
.append("parentId", getParentId())
.append("areaStatus", getAreaStatus())
.append("orderNum", getOrderNum())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.toString();
}
}

@ -0,0 +1,61 @@
package com.ruoyi.basic.mapper;
import java.util.List;
import com.ruoyi.basic.domain.HwArea;
/**
* Mapper
*
* @author YINQ
* @date 2023-08-30
*/
public interface HwAreaMapper
{
/**
*
*
* @param areaId
* @return
*/
public HwArea selectHwAreaByAreaId(Long areaId);
/**
*
*
* @param hwArea
* @return
*/
public List<HwArea> selectHwAreaList(HwArea hwArea);
/**
*
*
* @param hwArea
* @return
*/
public int insertHwArea(HwArea hwArea);
/**
*
*
* @param hwArea
* @return
*/
public int updateHwArea(HwArea hwArea);
/**
*
*
* @param areaId
* @return
*/
public int deleteHwAreaByAreaId(Long areaId);
/**
*
*
* @param areaIds
* @return
*/
public int deleteHwAreaByAreaIds(Long[] areaIds);
}

@ -0,0 +1,61 @@
package com.ruoyi.basic.service;
import java.util.List;
import com.ruoyi.basic.domain.HwArea;
/**
* Service
*
* @author YINQ
* @date 2023-08-30
*/
public interface IHwAreaService
{
/**
*
*
* @param areaId
* @return
*/
public HwArea selectHwAreaByAreaId(Long areaId);
/**
*
*
* @param hwArea
* @return
*/
public List<HwArea> selectHwAreaList(HwArea hwArea);
/**
*
*
* @param hwArea
* @return
*/
public int insertHwArea(HwArea hwArea);
/**
*
*
* @param hwArea
* @return
*/
public int updateHwArea(HwArea hwArea);
/**
*
*
* @param areaIds
* @return
*/
public int deleteHwAreaByAreaIds(Long[] areaIds);
/**
*
*
* @param areaId
* @return
*/
public int deleteHwAreaByAreaId(Long areaId);
}

@ -0,0 +1,96 @@
package com.ruoyi.basic.service.impl;
import java.util.List;
import com.ruoyi.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.basic.mapper.HwAreaMapper;
import com.ruoyi.basic.domain.HwArea;
import com.ruoyi.basic.service.IHwAreaService;
/**
* Service
*
* @author YINQ
* @date 2023-08-30
*/
@Service
public class HwAreaServiceImpl implements IHwAreaService
{
@Autowired
private HwAreaMapper hwAreaMapper;
/**
*
*
* @param areaId
* @return
*/
@Override
public HwArea selectHwAreaByAreaId(Long areaId)
{
return hwAreaMapper.selectHwAreaByAreaId(areaId);
}
/**
*
*
* @param hwArea
* @return
*/
@Override
public List<HwArea> selectHwAreaList(HwArea hwArea)
{
return hwAreaMapper.selectHwAreaList(hwArea);
}
/**
*
*
* @param hwArea
* @return
*/
@Override
public int insertHwArea(HwArea hwArea)
{
hwArea.setCreateTime(DateUtils.getNowDate());
return hwAreaMapper.insertHwArea(hwArea);
}
/**
*
*
* @param hwArea
* @return
*/
@Override
public int updateHwArea(HwArea hwArea)
{
hwArea.setUpdateTime(DateUtils.getNowDate());
return hwAreaMapper.updateHwArea(hwArea);
}
/**
*
*
* @param areaIds
* @return
*/
@Override
public int deleteHwAreaByAreaIds(Long[] areaIds)
{
return hwAreaMapper.deleteHwAreaByAreaIds(areaIds);
}
/**
*
*
* @param areaId
* @return
*/
@Override
public int deleteHwAreaByAreaId(Long areaId)
{
return hwAreaMapper.deleteHwAreaByAreaId(areaId);
}
}

@ -0,0 +1,92 @@
<?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.ruoyi.basic.mapper.HwAreaMapper">
<resultMap type="HwArea" id="HwAreaResult">
<result property="areaId" column="area_id" />
<result property="areaName" column="area_name" />
<result property="ancestors" column="ancestors" />
<result property="parentId" column="parent_id" />
<result property="areaStatus" column="area_status" />
<result property="orderNum" column="order_num" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectHwAreaVo">
select area_id, area_name, ancestors, parent_id, area_status, order_num, create_by, create_time, update_by, update_time from hw_area
</sql>
<select id="selectHwAreaList" parameterType="HwArea" resultMap="HwAreaResult">
<include refid="selectHwAreaVo"/>
<where>
<if test="areaName != null and areaName != ''"> and area_name like concat('%', #{areaName}, '%')</if>
<if test="ancestors != null and ancestors != ''"> and ancestors = #{ancestors}</if>
<if test="parentId != null "> and parent_id = #{parentId}</if>
<if test="areaStatus != null "> and area_status = #{areaStatus}</if>
<if test="orderNum != null "> and order_num = #{orderNum}</if>
</where>
</select>
<select id="selectHwAreaByAreaId" parameterType="Long" resultMap="HwAreaResult">
<include refid="selectHwAreaVo"/>
where area_id = #{areaId}
</select>
<insert id="insertHwArea" parameterType="HwArea" useGeneratedKeys="true" keyProperty="areaId">
insert into hw_area
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="areaName != null and areaName != ''">area_name,</if>
<if test="ancestors != null">ancestors,</if>
<if test="parentId != null">parent_id,</if>
<if test="areaStatus != null">area_status,</if>
<if test="orderNum != null">order_num,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="areaName != null and areaName != ''">#{areaName},</if>
<if test="ancestors != null">#{ancestors},</if>
<if test="parentId != null">#{parentId},</if>
<if test="areaStatus != null">#{areaStatus},</if>
<if test="orderNum != null">#{orderNum},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateHwArea" parameterType="HwArea">
update hw_area
<trim prefix="SET" suffixOverrides=",">
<if test="areaName != null and areaName != ''">area_name = #{areaName},</if>
<if test="ancestors != null">ancestors = #{ancestors},</if>
<if test="parentId != null">parent_id = #{parentId},</if>
<if test="areaStatus != null">area_status = #{areaStatus},</if>
<if test="orderNum != null">order_num = #{orderNum},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where area_id = #{areaId}
</update>
<delete id="deleteHwAreaByAreaId" parameterType="Long">
delete from hw_area where area_id = #{areaId}
</delete>
<delete id="deleteHwAreaByAreaIds" parameterType="String">
delete from hw_area where area_id in
<foreach item="areaId" collection="array" open="(" separator="," close=")">
#{areaId}
</foreach>
</delete>
</mapper>

@ -1,66 +0,0 @@
<?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.ruoyi.basic.mapper.HwDictDataLanguageMapper">
<resultMap type="HwDictDataLanguage" id="HwDictDataLanguageResult">
<result property="dataLanguageId" column="data_language_id" />
<result property="dictCode" column="dict_code" />
<result property="dictLabel" column="dict_label" />
<result property="languageCode" column="language_code" />
</resultMap>
<sql id="selectHwDictDataLanguageVo">
select data_language_id, dict_code, dict_label, language_code from hw_dict_data_language
</sql>
<select id="selectHwDictDataLanguageList" parameterType="HwDictDataLanguage" resultMap="HwDictDataLanguageResult">
<include refid="selectHwDictDataLanguageVo"/>
<where>
<if test="dictCode != null "> and dict_code = #{dictCode}</if>
<if test="dictLabel != null and dictLabel != ''"> and dict_label = #{dictLabel}</if>
<if test="languageCode != null and languageCode != ''"> and language_code = #{languageCode}</if>
</where>
</select>
<select id="selectHwDictDataLanguageByDataLanguageId" parameterType="Long" resultMap="HwDictDataLanguageResult">
<include refid="selectHwDictDataLanguageVo"/>
where data_language_id = #{dataLanguageId}
</select>
<insert id="insertHwDictDataLanguage" parameterType="HwDictDataLanguage" useGeneratedKeys="true" keyProperty="dataLanguageId">
insert into hw_dict_data_language
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="dictCode != null">dict_code,</if>
<if test="dictLabel != null">dict_label,</if>
<if test="languageCode != null and languageCode != ''">language_code,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="dictCode != null">#{dictCode},</if>
<if test="dictLabel != null">#{dictLabel},</if>
<if test="languageCode != null and languageCode != ''">#{languageCode},</if>
</trim>
</insert>
<update id="updateHwDictDataLanguage" parameterType="HwDictDataLanguage">
update hw_dict_data_language
<trim prefix="SET" suffixOverrides=",">
<if test="dictCode != null">dict_code = #{dictCode},</if>
<if test="dictLabel != null">dict_label = #{dictLabel},</if>
<if test="languageCode != null and languageCode != ''">language_code = #{languageCode},</if>
</trim>
where data_language_id = #{dataLanguageId}
</update>
<delete id="deleteHwDictDataLanguageByDataLanguageId" parameterType="Long">
delete from hw_dict_data_language where data_language_id = #{dataLanguageId}
</delete>
<delete id="deleteHwDictDataLanguageByDataLanguageIds" parameterType="String">
delete from hw_dict_data_language where data_language_id in
<foreach item="dataLanguageId" collection="array" open="(" separator="," close=")">
#{dataLanguageId}
</foreach>
</delete>
</mapper>

@ -1,118 +0,0 @@
<?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.ruoyi.basic.mapper.HwDictDataMapper">
<resultMap type="HwDictData" id="HwDictDataResult">
<result property="dictCode" column="dict_code" />
<result property="dictSort" column="dict_sort" />
<result property="dictLabel" column="dict_label" />
<result property="dictValue" column="dict_value" />
<result property="dictType" column="dict_type" />
<result property="cssClass" column="css_class" />
<result property="listClass" column="list_class" />
<result property="isDefault" column="is_default" />
<result property="status" column="status" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectHwDictDataVo">
select dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark from hw_dict_data
</sql>
<select id="selectHwDictDataByType" parameterType="HwDictData" resultMap="HwDictDataResult">
<include refid="selectHwDictDataVo"/>
where status = '1' and dict_type = #{dictType} order by dict_sort asc
</select>
<select id="selectHwDictDataList" parameterType="HwDictData" resultMap="HwDictDataResult">
<include refid="selectHwDictDataVo"/>
<where>
<if test="dictSort != null "> and dict_sort = #{dictSort}</if>
<if test="dictLabel != null and dictLabel != ''"> and dict_label = #{dictLabel}</if>
<if test="dictValue != null and dictValue != ''"> and dict_value = #{dictValue}</if>
<if test="dictType != null and dictType != ''"> and dict_type = #{dictType}</if>
<if test="cssClass != null and cssClass != ''"> and css_class = #{cssClass}</if>
<if test="listClass != null and listClass != ''"> and list_class = #{listClass}</if>
<if test="isDefault != null and isDefault != ''"> and is_default = #{isDefault}</if>
<if test="status != null and status != ''"> and status = #{status}</if>
</where>
</select>
<select id="selectHwDictDataByDictCode" parameterType="Long" resultMap="HwDictDataResult">
<include refid="selectHwDictDataVo"/>
where dict_code = #{dictCode}
</select>
<insert id="insertHwDictData" parameterType="HwDictData" useGeneratedKeys="true" keyProperty="dictCode">
insert into hw_dict_data
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="dictSort != null">dict_sort,</if>
<if test="dictLabel != null">dict_label,</if>
<if test="dictValue != null">dict_value,</if>
<if test="dictType != null">dict_type,</if>
<if test="cssClass != null">css_class,</if>
<if test="listClass != null">list_class,</if>
<if test="isDefault != null">is_default,</if>
<if test="status != null">status,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="dictSort != null">#{dictSort},</if>
<if test="dictLabel != null">#{dictLabel},</if>
<if test="dictValue != null">#{dictValue},</if>
<if test="dictType != null">#{dictType},</if>
<if test="cssClass != null">#{cssClass},</if>
<if test="listClass != null">#{listClass},</if>
<if test="isDefault != null">#{isDefault},</if>
<if test="status != null">#{status},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateHwDictData" parameterType="HwDictData">
update hw_dict_data
<trim prefix="SET" suffixOverrides=",">
<if test="dictSort != null">dict_sort = #{dictSort},</if>
<if test="dictLabel != null">dict_label = #{dictLabel},</if>
<if test="dictValue != null">dict_value = #{dictValue},</if>
<if test="dictType != null">dict_type = #{dictType},</if>
<if test="cssClass != null">css_class = #{cssClass},</if>
<if test="listClass != null">list_class = #{listClass},</if>
<if test="isDefault != null">is_default = #{isDefault},</if>
<if test="status != null">status = #{status},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where dict_code = #{dictCode}
</update>
<delete id="deleteHwDictDataByDictCode" parameterType="Long">
delete from hw_dict_data where dict_code = #{dictCode}
</delete>
<delete id="deleteHwDictDataByDictCodes" parameterType="String">
delete from hw_dict_data where dict_code in
<foreach item="dictCode" collection="array" open="(" separator="," close=")">
#{dictCode}
</foreach>
</delete>
</mapper>

@ -1,86 +0,0 @@
<?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.ruoyi.basic.mapper.HwDictTypeMapper">
<resultMap type="HwDictType" id="HwDictTypeResult">
<result property="dictId" column="dict_id" />
<result property="dictName" column="dict_name" />
<result property="dictType" column="dict_type" />
<result property="status" column="status" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectHwDictTypeVo">
select dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark from hw_dict_type
</sql>
<select id="selectHwDictTypeList" parameterType="HwDictType" resultMap="HwDictTypeResult">
<include refid="selectHwDictTypeVo"/>
<where>
<if test="dictName != null and dictName != ''"> and dict_name like concat('%', #{dictName}, '%')</if>
<if test="dictType != null and dictType != ''"> and dict_type = #{dictType}</if>
<if test="status != null and status != ''"> and status = #{status}</if>
</where>
</select>
<select id="selectHwDictTypeByDictId" parameterType="Long" resultMap="HwDictTypeResult">
<include refid="selectHwDictTypeVo"/>
where dict_id = #{dictId}
</select>
<insert id="insertHwDictType" parameterType="HwDictType" useGeneratedKeys="true" keyProperty="dictId">
insert into hw_dict_type
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="dictName != null">dict_name,</if>
<if test="dictType != null">dict_type,</if>
<if test="status != null">status,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="dictName != null">#{dictName},</if>
<if test="dictType != null">#{dictType},</if>
<if test="status != null">#{status},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateHwDictType" parameterType="HwDictType">
update hw_dict_type
<trim prefix="SET" suffixOverrides=",">
<if test="dictName != null">dict_name = #{dictName},</if>
<if test="dictType != null">dict_type = #{dictType},</if>
<if test="status != null">status = #{status},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where dict_id = #{dictId}
</update>
<delete id="deleteHwDictTypeByDictId" parameterType="Long">
delete from hw_dict_type where dict_id = #{dictId}
</delete>
<delete id="deleteHwDictTypeByDictIds" parameterType="String">
delete from hw_dict_type where dict_id in
<foreach item="dictId" collection="array" open="(" separator="," close=")">
#{dictId}
</foreach>
</delete>
</mapper>

@ -1,22 +0,0 @@
package com.ruoyi;
import com.ruoyi.i18n.utils.MessageUtils;
// Press Shift twice to open the Search Everywhere dialog and type `show whitespaces`,
// then press Enter. You can now see whitespace characters in your code.
public class Main {
public static void main(String[] args) {
// Press Alt+Enter with your caret at the highlighted text to see how
// IntelliJ IDEA suggests fixing it.
System.out.printf("Hello and welcome!");
String dd = MessageUtils.getMessages("user.login.username");
System.out.println("dddd:"+dd);
// Press Shift+F10 or click the green arrow button in the gutter to run the code.
for (int i = 1; i <= 5; i++) {
// Press Shift+F9 to start debugging your code. We have set one breakpoint
// for you, but you can always add more by pressing Ctrl+F8.
System.out.println("i = " + i);
}
}
}

@ -0,0 +1,40 @@
package com.ruoyi.business.controller;
import com.ruoyi.business.domain.HwMonitorUnit;
import com.ruoyi.business.service.IHwMonitorUnitService;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Description: Controller
* @ClassName: HwAppController
* @Date :2023-08-31 17:46
* @Version :1.0
*/
@RestController
@RequestMapping("/app")
public class HwAppController extends BaseController {
@Autowired
private IHwMonitorUnitService hwMonitorUnitService;
/**
*
*/
@RequiresPermissions("business:monitorUnit:list")
@GetMapping("/monitorUnit/list")
public TableDataInfo monitorUnitList(HwMonitorUnit hwMonitorUnit)
{
startPage();
List<HwMonitorUnit> list = hwMonitorUnitService.selectHwMonitorUnitList(hwMonitorUnit);
return getDataTable(list);
}
}

@ -0,0 +1,105 @@
package com.ruoyi.business.controller;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
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.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.business.domain.HwDeviceMode;
import com.ruoyi.business.service.IHwDeviceModeService;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.core.web.page.TableDataInfo;
/**
* Controller
*
* @author xins
* @date 2023-09-04
*/
@RestController
@RequestMapping("/deviceMode")
public class HwDeviceModeController extends BaseController
{
@Autowired
private IHwDeviceModeService hwDeviceModeService;
/**
*
*/
@RequiresPermissions("business:deviceMode:list")
@GetMapping("/list")
public TableDataInfo list(HwDeviceMode hwDeviceMode)
{
startPage();
List<HwDeviceMode> list = hwDeviceModeService.selectHwDeviceModeList(hwDeviceMode);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("business:deviceMode:export")
@Log(title = "设备模型", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, HwDeviceMode hwDeviceMode)
{
List<HwDeviceMode> list = hwDeviceModeService.selectHwDeviceModeList(hwDeviceMode);
ExcelUtil<HwDeviceMode> util = new ExcelUtil<HwDeviceMode>(HwDeviceMode.class);
util.exportExcel(response, list, "设备模型数据");
}
/**
*
*/
@RequiresPermissions("business:deviceMode:query")
@GetMapping(value = "/{deviceModeId}")
public AjaxResult getInfo(@PathVariable("deviceModeId") Long deviceModeId)
{
return success(hwDeviceModeService.selectHwDeviceModeByDeviceModeId(deviceModeId));
}
/**
*
*/
@RequiresPermissions("business:deviceMode:add")
@Log(title = "设备模型", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody HwDeviceMode hwDeviceMode)
{
return toAjax(hwDeviceModeService.insertHwDeviceMode(hwDeviceMode));
}
/**
*
*/
@RequiresPermissions("business:deviceMode:edit")
@Log(title = "设备模型", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody HwDeviceMode hwDeviceMode)
{
return toAjax(hwDeviceModeService.updateHwDeviceMode(hwDeviceMode));
}
/**
*
*/
@RequiresPermissions("business:deviceMode:remove")
@Log(title = "设备模型", businessType = BusinessType.DELETE)
@DeleteMapping("/{deviceModeIds}")
public AjaxResult remove(@PathVariable Long[] deviceModeIds)
{
return toAjax(hwDeviceModeService.deleteHwDeviceModeByDeviceModeIds(deviceModeIds));
}
}

@ -0,0 +1,105 @@
package com.ruoyi.business.controller;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
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.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.business.domain.HwDeviceModeFunction;
import com.ruoyi.business.service.IHwDeviceModeFunctionService;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.core.web.page.TableDataInfo;
/**
* Controller
*
* @author xins
* @date 2023-09-05
*/
@RestController
@RequestMapping("/deviceModeFunction")
public class HwDeviceModeFunctionController extends BaseController
{
@Autowired
private IHwDeviceModeFunctionService hwDeviceModeFunctionService;
/**
*
*/
@RequiresPermissions("business:deviceModeFunction:list")
@GetMapping("/list")
public TableDataInfo list(HwDeviceModeFunction hwDeviceModeFunction)
{
startPage();
List<HwDeviceModeFunction> list = hwDeviceModeFunctionService.selectHwDeviceModeFunctionList(hwDeviceModeFunction);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("business:deviceModeFunction:export")
@Log(title = "设备模型功能", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, HwDeviceModeFunction hwDeviceModeFunction)
{
List<HwDeviceModeFunction> list = hwDeviceModeFunctionService.selectHwDeviceModeFunctionList(hwDeviceModeFunction);
ExcelUtil<HwDeviceModeFunction> util = new ExcelUtil<HwDeviceModeFunction>(HwDeviceModeFunction.class);
util.exportExcel(response, list, "设备模型功能数据");
}
/**
*
*/
@RequiresPermissions("business:deviceModeFunction:query")
@GetMapping(value = "/{modeFunctionId}")
public AjaxResult getInfo(@PathVariable("modeFunctionId") Long modeFunctionId)
{
return success(hwDeviceModeFunctionService.selectHwDeviceModeFunctionByModeFunctionId(modeFunctionId));
}
/**
*
*/
@RequiresPermissions("business:deviceModeFunction:add")
@Log(title = "设备模型功能", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody HwDeviceModeFunction hwDeviceModeFunction)
{
return toAjax(hwDeviceModeFunctionService.insertHwDeviceModeFunction(hwDeviceModeFunction));
}
/**
*
*/
@RequiresPermissions("business:deviceModeFunction:edit")
@Log(title = "设备模型功能", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody HwDeviceModeFunction hwDeviceModeFunction)
{
return toAjax(hwDeviceModeFunctionService.updateHwDeviceModeFunction(hwDeviceModeFunction));
}
/**
*
*/
@RequiresPermissions("business:deviceModeFunction:remove")
@Log(title = "设备模型功能", businessType = BusinessType.DELETE)
@DeleteMapping("/{modeFunctionIds}")
public AjaxResult remove(@PathVariable Long[] modeFunctionIds)
{
return toAjax(hwDeviceModeFunctionService.deleteHwDeviceModeFunctionByModeFunctionIds(modeFunctionIds));
}
}

@ -0,0 +1,105 @@
package com.ruoyi.business.controller;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
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.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.business.domain.HwElectronicFence;
import com.ruoyi.business.service.IHwElectronicFenceService;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.core.web.page.TableDataInfo;
/**
* Controller
*
* @author xins
* @date 2023-09-04
*/
@RestController
@RequestMapping("/electronicFence")
public class HwElectronicFenceController extends BaseController
{
@Autowired
private IHwElectronicFenceService hwElectronicFenceService;
/**
*
*/
@RequiresPermissions("business:electronicFence:list")
@GetMapping("/list")
public TableDataInfo list(HwElectronicFence hwElectronicFence)
{
startPage();
List<HwElectronicFence> list = hwElectronicFenceService.selectHwElectronicFenceList(hwElectronicFence);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("business:electronicFence:export")
@Log(title = "电子围栏", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, HwElectronicFence hwElectronicFence)
{
List<HwElectronicFence> list = hwElectronicFenceService.selectHwElectronicFenceList(hwElectronicFence);
ExcelUtil<HwElectronicFence> util = new ExcelUtil<HwElectronicFence>(HwElectronicFence.class);
util.exportExcel(response, list, "电子围栏数据");
}
/**
*
*/
@RequiresPermissions("business:electronicFence:query")
@GetMapping(value = "/{electronicFenceId}")
public AjaxResult getInfo(@PathVariable("electronicFenceId") Long electronicFenceId)
{
return success(hwElectronicFenceService.selectHwElectronicFenceByElectronicFenceId(electronicFenceId));
}
/**
*
*/
@RequiresPermissions("business:electronicFence:add")
@Log(title = "电子围栏", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody HwElectronicFence hwElectronicFence)
{
return toAjax(hwElectronicFenceService.insertHwElectronicFence(hwElectronicFence));
}
/**
*
*/
@RequiresPermissions("business:electronicFence:edit")
@Log(title = "电子围栏", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody HwElectronicFence hwElectronicFence)
{
return toAjax(hwElectronicFenceService.updateHwElectronicFence(hwElectronicFence));
}
/**
*
*/
@RequiresPermissions("business:electronicFence:remove")
@Log(title = "电子围栏", businessType = BusinessType.DELETE)
@DeleteMapping("/{electronicFenceIds}")
public AjaxResult remove(@PathVariable Long[] electronicFenceIds)
{
return toAjax(hwElectronicFenceService.deleteHwElectronicFenceByElectronicFenceIds(electronicFenceIds));
}
}

@ -0,0 +1,105 @@
package com.ruoyi.business.controller;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
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.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.business.domain.HwFenceTarget;
import com.ruoyi.business.service.IHwFenceTargetService;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.core.web.page.TableDataInfo;
/**
* Controller
*
* @author xins
* @date 2023-09-04
*/
@RestController
@RequestMapping("/fenceTarget")
public class HwFenceTargetController extends BaseController
{
@Autowired
private IHwFenceTargetService hwFenceTargetService;
/**
*
*/
@RequiresPermissions("business:fenceTarget:list")
@GetMapping("/list")
public TableDataInfo list(HwFenceTarget hwFenceTarget)
{
startPage();
List<HwFenceTarget> list = hwFenceTargetService.selectHwFenceTargetList(hwFenceTarget);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("business:fenceTarget:export")
@Log(title = "电子围栏目标", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, HwFenceTarget hwFenceTarget)
{
List<HwFenceTarget> list = hwFenceTargetService.selectHwFenceTargetList(hwFenceTarget);
ExcelUtil<HwFenceTarget> util = new ExcelUtil<HwFenceTarget>(HwFenceTarget.class);
util.exportExcel(response, list, "电子围栏目标数据");
}
/**
*
*/
@RequiresPermissions("business:fenceTarget:query")
@GetMapping(value = "/{targetId}")
public AjaxResult getInfo(@PathVariable("targetId") Long targetId)
{
return success(hwFenceTargetService.selectHwFenceTargetByTargetId(targetId));
}
/**
*
*/
@RequiresPermissions("business:fenceTarget:add")
@Log(title = "电子围栏目标", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody HwFenceTarget hwFenceTarget)
{
return toAjax(hwFenceTargetService.insertHwFenceTarget(hwFenceTarget));
}
/**
*
*/
@RequiresPermissions("business:fenceTarget:edit")
@Log(title = "电子围栏目标", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody HwFenceTarget hwFenceTarget)
{
return toAjax(hwFenceTargetService.updateHwFenceTarget(hwFenceTarget));
}
/**
*
*/
@RequiresPermissions("business:fenceTarget:remove")
@Log(title = "电子围栏目标", businessType = BusinessType.DELETE)
@DeleteMapping("/{targetIds}")
public AjaxResult remove(@PathVariable Long[] targetIds)
{
return toAjax(hwFenceTargetService.deleteHwFenceTargetByTargetIds(targetIds));
}
}

@ -0,0 +1,9 @@
package com.ruoyi.business.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/monitorPlatform")
public class HwMonitorPlatformController {
}

@ -0,0 +1,105 @@
package com.ruoyi.business.controller;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
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.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.business.domain.HwMonitorUnit;
import com.ruoyi.business.service.IHwMonitorUnitService;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.core.web.page.TableDataInfo;
/**
* Controller
*
* @author YINQ
* @date 2023-08-31
*/
@RestController
@RequestMapping("/monitorUnit")
public class HwMonitorUnitController extends BaseController
{
@Autowired
private IHwMonitorUnitService hwMonitorUnitService;
/**
*
*/
@RequiresPermissions("business:monitorUnit:list")
@GetMapping("/list")
public TableDataInfo list(HwMonitorUnit hwMonitorUnit)
{
startPage();
List<HwMonitorUnit> list = hwMonitorUnitService.selectHwMonitorUnitList(hwMonitorUnit);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("business:monitorUnit:export")
@Log(title = "监控单元", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, HwMonitorUnit hwMonitorUnit)
{
List<HwMonitorUnit> list = hwMonitorUnitService.selectHwMonitorUnitList(hwMonitorUnit);
ExcelUtil<HwMonitorUnit> util = new ExcelUtil<HwMonitorUnit>(HwMonitorUnit.class);
util.exportExcel(response, list, "监控单元数据");
}
/**
*
*/
@RequiresPermissions("business:monitorUnit:query")
@GetMapping(value = "/{monitorUnitId}")
public AjaxResult getInfo(@PathVariable("monitorUnitId") Long monitorUnitId)
{
return success(hwMonitorUnitService.selectHwMonitorUnitByMonitorUnitId(monitorUnitId));
}
/**
*
*/
@RequiresPermissions("business:monitorUnit:add")
@Log(title = "监控单元", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody HwMonitorUnit hwMonitorUnit)
{
return toAjax(hwMonitorUnitService.insertHwMonitorUnit(hwMonitorUnit));
}
/**
*
*/
@RequiresPermissions("business:monitorUnit:edit")
@Log(title = "监控单元", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody HwMonitorUnit hwMonitorUnit)
{
return toAjax(hwMonitorUnitService.updateHwMonitorUnit(hwMonitorUnit));
}
/**
*
*/
@RequiresPermissions("business:monitorUnit:remove")
@Log(title = "监控单元", businessType = BusinessType.DELETE)
@DeleteMapping("/{monitorUnitIds}")
public AjaxResult remove(@PathVariable Long[] monitorUnitIds)
{
return toAjax(hwMonitorUnitService.deleteHwMonitorUnitByMonitorUnitIds(monitorUnitIds));
}
}

@ -0,0 +1,105 @@
package com.ruoyi.business.controller;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
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.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.business.domain.HwMonitorUnitType;
import com.ruoyi.business.service.IHwMonitorUnitTypeService;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.core.web.page.TableDataInfo;
/**
* Controller
*
* @author YINQ
* @date 2023-08-31
*/
@RestController
@RequestMapping("/monitorUnitType")
public class HwMonitorUnitTypeController extends BaseController
{
@Autowired
private IHwMonitorUnitTypeService hwMonitorUnitTypeService;
/**
*
*/
@RequiresPermissions("business:monitorUnitType:list")
@GetMapping("/list")
public TableDataInfo list(HwMonitorUnitType hwMonitorUnitType)
{
startPage();
List<HwMonitorUnitType> list = hwMonitorUnitTypeService.selectHwMonitorUnitTypeList(hwMonitorUnitType);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("business:monitorUnitType:export")
@Log(title = "监控单元类型", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, HwMonitorUnitType hwMonitorUnitType)
{
List<HwMonitorUnitType> list = hwMonitorUnitTypeService.selectHwMonitorUnitTypeList(hwMonitorUnitType);
ExcelUtil<HwMonitorUnitType> util = new ExcelUtil<HwMonitorUnitType>(HwMonitorUnitType.class);
util.exportExcel(response, list, "监控单元类型数据");
}
/**
*
*/
@RequiresPermissions("business:monitorUnitType:query")
@GetMapping(value = "/{monitorUnitTypeId}")
public AjaxResult getInfo(@PathVariable("monitorUnitTypeId") Long monitorUnitTypeId)
{
return success(hwMonitorUnitTypeService.selectHwMonitorUnitTypeByMonitorUnitTypeId(monitorUnitTypeId));
}
/**
*
*/
@RequiresPermissions("business:monitorUnitType:add")
@Log(title = "监控单元类型", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody HwMonitorUnitType hwMonitorUnitType)
{
return toAjax(hwMonitorUnitTypeService.insertHwMonitorUnitType(hwMonitorUnitType));
}
/**
*
*/
@RequiresPermissions("business:monitorUnitType:edit")
@Log(title = "监控单元类型", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody HwMonitorUnitType hwMonitorUnitType)
{
return toAjax(hwMonitorUnitTypeService.updateHwMonitorUnitType(hwMonitorUnitType));
}
/**
*
*/
@RequiresPermissions("business:monitorUnitType:remove")
@Log(title = "监控单元类型", businessType = BusinessType.DELETE)
@DeleteMapping("/{monitorUnitTypeIds}")
public AjaxResult remove(@PathVariable Long[] monitorUnitTypeIds)
{
return toAjax(hwMonitorUnitTypeService.deleteHwMonitorUnitTypeByMonitorUnitTypeIds(monitorUnitTypeIds));
}
}

@ -0,0 +1,105 @@
package com.ruoyi.business.controller;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
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.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.business.domain.HwSceneMode;
import com.ruoyi.business.service.IHwSceneModeService;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.core.web.page.TableDataInfo;
/**
* Controller
*
* @author YINQ
* @date 2023-08-31
*/
@RestController
@RequestMapping("/sceneMode")
public class HwSceneModeController extends BaseController
{
@Autowired
private IHwSceneModeService hwSceneModeService;
/**
*
*/
@RequiresPermissions("business:sceneMode:list")
@GetMapping("/list")
public TableDataInfo list(HwSceneMode hwSceneMode)
{
startPage();
List<HwSceneMode> list = hwSceneModeService.selectHwSceneModeList(hwSceneMode);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("business:sceneMode:export")
@Log(title = "场景类型", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, HwSceneMode hwSceneMode)
{
List<HwSceneMode> list = hwSceneModeService.selectHwSceneModeList(hwSceneMode);
ExcelUtil<HwSceneMode> util = new ExcelUtil<HwSceneMode>(HwSceneMode.class);
util.exportExcel(response, list, "场景类型数据");
}
/**
*
*/
@RequiresPermissions("business:sceneMode:query")
@GetMapping(value = "/{sceneModeId}")
public AjaxResult getInfo(@PathVariable("sceneModeId") Long sceneModeId)
{
return success(hwSceneModeService.selectHwSceneModeBySceneModeId(sceneModeId));
}
/**
*
*/
@RequiresPermissions("business:sceneMode:add")
@Log(title = "场景类型", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody HwSceneMode hwSceneMode)
{
return toAjax(hwSceneModeService.insertHwSceneMode(hwSceneMode));
}
/**
*
*/
@RequiresPermissions("business:sceneMode:edit")
@Log(title = "场景类型", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody HwSceneMode hwSceneMode)
{
return toAjax(hwSceneModeService.updateHwSceneMode(hwSceneMode));
}
/**
*
*/
@RequiresPermissions("business:sceneMode:remove")
@Log(title = "场景类型", businessType = BusinessType.DELETE)
@DeleteMapping("/{sceneModeIds}")
public AjaxResult remove(@PathVariable Long[] sceneModeIds)
{
return toAjax(hwSceneModeService.deleteHwSceneModeBySceneModeIds(sceneModeIds));
}
}

@ -0,0 +1,105 @@
package com.ruoyi.business.controller;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
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.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.business.domain.HwTenant;
import com.ruoyi.business.service.IHwTenantService;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.core.web.page.TableDataInfo;
/**
* Controller
*
* @author xins
* @date 2023-09-04
*/
@RestController
@RequestMapping("/tenant")
public class HwTenantController extends BaseController
{
@Autowired
private IHwTenantService hwTenantService;
/**
*
*/
@RequiresPermissions("business:tenant:list")
@GetMapping("/list")
public TableDataInfo list(HwTenant hwTenant)
{
startPage();
List<HwTenant> list = hwTenantService.selectHwTenantList(hwTenant);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("business:tenant:export")
@Log(title = "租户信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, HwTenant hwTenant)
{
List<HwTenant> list = hwTenantService.selectHwTenantList(hwTenant);
ExcelUtil<HwTenant> util = new ExcelUtil<HwTenant>(HwTenant.class);
util.exportExcel(response, list, "租户信息数据");
}
/**
*
*/
@RequiresPermissions("business:tenant:query")
@GetMapping(value = "/{tenantId}")
public AjaxResult getInfo(@PathVariable("tenantId") Long tenantId)
{
return success(hwTenantService.selectHwTenantByTenantId(tenantId));
}
/**
*
*/
@RequiresPermissions("business:tenant:add")
@Log(title = "租户信息", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody HwTenant hwTenant)
{
return toAjax(hwTenantService.insertHwTenant(hwTenant));
}
/**
*
*/
@RequiresPermissions("business:tenant:edit")
@Log(title = "租户信息", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody HwTenant hwTenant)
{
return toAjax(hwTenantService.updateHwTenant(hwTenant));
}
/**
*
*/
@RequiresPermissions("business:tenant:remove")
@Log(title = "租户信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{tenantIds}")
public AjaxResult remove(@PathVariable Long[] tenantIds)
{
return toAjax(hwTenantService.deleteHwTenantByTenantIds(tenantIds));
}
}

@ -0,0 +1,211 @@
package com.ruoyi.business.domain;
import java.util.List;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
/**
* hw_device_mode
*
* @author xins
* @date 2023-09-04
*/
public class HwDeviceMode extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 设备模型ID */
private Long deviceModeId;
/** 设备模型名称 */
@Excel(name = "设备模型名称")
private String deviceModeName;
/** 租户ID关联hw_tenant的tenant_id */
@Excel(name = "租户ID关联hw_tenant的tenant_id")
private Long tenantId;
/** 所属场景关联hw_scene表的scene_id字段 */
@Excel(name = "所属场景关联hw_scene表的scene_id字段")
private Long sceneId;
/** 语言code,关联表hw_language的language_code字段 */
@Excel(name = "语言code,关联表hw_language的language_code字段")
private String languageCode;
/** 定位标识10 */
@Excel(name = "定位标识", readConverterExp = "1=0否")
private String gpsFlag;
/** 设备模型状态1启用9删除 */
@Excel(name = "设备模型状态", readConverterExp = "1=启用9删除")
private String deviceModeStatus;
/** 是否通用物模型1、是0 */
@Excel(name = "是否通用物模型", readConverterExp = "1=、是0否")
private String commonFlag;
/** 模型分类(在平台字典数据表中定义) */
@Excel(name = "模型分类", readConverterExp = "在=平台字典数据表中定义")
private Long modeClassfication;
/** 设备模型图片地址 */
@Excel(name = "设备模型图片地址")
private String deviceModePic;
/** 预留字段,数据校验级别 */
@Excel(name = "预留字段,数据校验级别")
private String dataVerifyLevel;
/** 预留字段 */
@Excel(name = "预留字段")
private String deviceModeField;
/** 设备模型功能信息 */
private List<HwDeviceModeFunction> hwDeviceModeFunctionList;
public void setDeviceModeId(Long deviceModeId)
{
this.deviceModeId = deviceModeId;
}
public Long getDeviceModeId()
{
return deviceModeId;
}
public void setDeviceModeName(String deviceModeName)
{
this.deviceModeName = deviceModeName;
}
public String getDeviceModeName()
{
return deviceModeName;
}
public void setTenantId(Long tenantId)
{
this.tenantId = tenantId;
}
public Long getTenantId()
{
return tenantId;
}
public void setSceneId(Long sceneId)
{
this.sceneId = sceneId;
}
public Long getSceneId()
{
return sceneId;
}
public void setLanguageCode(String languageCode)
{
this.languageCode = languageCode;
}
public String getLanguageCode()
{
return languageCode;
}
public void setGpsFlag(String gpsFlag)
{
this.gpsFlag = gpsFlag;
}
public String getGpsFlag()
{
return gpsFlag;
}
public void setDeviceModeStatus(String deviceModeStatus)
{
this.deviceModeStatus = deviceModeStatus;
}
public String getDeviceModeStatus()
{
return deviceModeStatus;
}
public void setCommonFlag(String commonFlag)
{
this.commonFlag = commonFlag;
}
public String getCommonFlag()
{
return commonFlag;
}
public void setModeClassfication(Long modeClassfication)
{
this.modeClassfication = modeClassfication;
}
public Long getModeClassfication()
{
return modeClassfication;
}
public void setDeviceModePic(String deviceModePic)
{
this.deviceModePic = deviceModePic;
}
public String getDeviceModePic()
{
return deviceModePic;
}
public void setDataVerifyLevel(String dataVerifyLevel)
{
this.dataVerifyLevel = dataVerifyLevel;
}
public String getDataVerifyLevel()
{
return dataVerifyLevel;
}
public void setDeviceModeField(String deviceModeField)
{
this.deviceModeField = deviceModeField;
}
public String getDeviceModeField()
{
return deviceModeField;
}
public List<HwDeviceModeFunction> getHwDeviceModeFunctionList()
{
return hwDeviceModeFunctionList;
}
public void setHwDeviceModeFunctionList(List<HwDeviceModeFunction> hwDeviceModeFunctionList)
{
this.hwDeviceModeFunctionList = hwDeviceModeFunctionList;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("deviceModeId", getDeviceModeId())
.append("deviceModeName", getDeviceModeName())
.append("tenantId", getTenantId())
.append("sceneId", getSceneId())
.append("languageCode", getLanguageCode())
.append("gpsFlag", getGpsFlag())
.append("deviceModeStatus", getDeviceModeStatus())
.append("commonFlag", getCommonFlag())
.append("modeClassfication", getModeClassfication())
.append("deviceModePic", getDeviceModePic())
.append("dataVerifyLevel", getDataVerifyLevel())
.append("remark", getRemark())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("deviceModeField", getDeviceModeField())
.append("hwDeviceModeFunctionList", getHwDeviceModeFunctionList())
.toString();
}
}

@ -0,0 +1,320 @@
package com.ruoyi.business.domain;
import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
/**
* hw_device_mode_function
*
* @author xins
* @date 2023-09-04
*/
public class HwDeviceModeFunction extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 设备模型功能ID */
private Long modeFunctionId;
/** 设备模型ID关联表hw_device_mode的device_mode_id */
@Excel(name = "设备模型ID关联表hw_device_mode的device_mode_id")
private Long deviceModeId;
/** 功能模式1、属性2、服务3、事件 */
@Excel(name = "功能模式", readConverterExp = "1=、属性2、服务3、事件")
private String functionMode;
/** 坐标标识1、经度2、纬度 */
@Excel(name = "坐标标识", readConverterExp = "1=、经度2、纬度")
private String coordinate;
/** 功能名称 */
@Excel(name = "功能名称")
private String functionName;
/** 标识符支持大小写字母、数字和下划线对外暂时不超过50个字符 */
@Excel(name = "标识符", readConverterExp = "支=持大小写字母、数字和下划线对外暂时不超过50个字符")
private String functionIdentifier;
/** 功能类型(1、直采变量 2、手录变量 3、运算性变量) */
@Excel(name = "功能类型(1、直采变量 2、手录变量 3、运算性变量)")
private String functionType;
/** 数据类型2、int4、float5、double6、binary(image/base64),9、bool10、string */
@Excel(name = "数据类型", readConverterExp = "2=、int4、float5、double6、binary(image/base64),9、bool10、string")
private Long dataType;
/** json
1{'minValue':1,'maxValue':100},
2
{'1':'','2','','3','}
3bool
{'0':'关','1','开'}
4Text
{'dataLength'1024}
5String
{'dateFormat':'StringUTC'} */
@Excel(name = "数据定义按json保存示例如下1、取值范围{'minValue':1,'maxValue':100},2、枚举型{'1':'成功','2','失败','3','提示}3、bool型 {'0':'关','1','开'}4、Text型{'dataLength'1024}5、String类型", readConverterExp = "此=类型需要定义在数据字典中,支持多语言")
private String dataDefinition;
/** 运算性变量公式标识符1*标识符2*100 */
@Excel(name = "运算性变量公式", readConverterExp = "标=识符1*标识符2*100")
private String functionFormula;
/** 单位 */
@Excel(name = "单位")
private String propertyUnit;
/** 显示标识0、不显示1、显示2、可累积显示 */
@Excel(name = "显示标识", readConverterExp = "0=、不显示1、显示2、可累积显示")
private String displayFlag;
/** 读写标识1、读写2、只读 */
@Excel(name = "读写标识", readConverterExp = "1=、读写2、只读")
private String rwFlag;
/** 调用方式1、异步2、同步当功能模式为服务时必填 */
@Excel(name = "调用方式", readConverterExp = "1=、异步2、同步")
private String invokeMethod;
/** 事件类型1、信息2、告警3、故障当功能类型为事件时必填 */
@Excel(name = "事件类型", readConverterExp = "1=、信息2、告警3、故障")
private String eventType;
/** %s
%s+10
%s-10
%s10
%s/10
%s%10 */
@Excel(name = "预留字段,采集公式:设备上行数据经采集公式计算后显示,公式中的%s为占位符是固定字段。如%s+10减%s-10乘%s10除%s/10余数%s%10")
private String acquisitionFormula;
/** 预留字段,顺序 */
@Excel(name = "预留字段,顺序")
private Long orderFlag;
/** 预留字段,寄存器 */
@Excel(name = "预留字段,寄存器")
private String deviceRegister;
/** 预留字段,步长 */
@Excel(name = "预留字段,步长")
private BigDecimal propertyStep;
/** 预留字段 */
@Excel(name = "预留字段")
private String propertyField;
public void setModeFunctionId(Long modeFunctionId)
{
this.modeFunctionId = modeFunctionId;
}
public Long getModeFunctionId()
{
return modeFunctionId;
}
public void setDeviceModeId(Long deviceModeId)
{
this.deviceModeId = deviceModeId;
}
public Long getDeviceModeId()
{
return deviceModeId;
}
public void setFunctionMode(String functionMode)
{
this.functionMode = functionMode;
}
public String getFunctionMode()
{
return functionMode;
}
public void setCoordinate(String coordinate)
{
this.coordinate = coordinate;
}
public String getCoordinate()
{
return coordinate;
}
public void setFunctionName(String functionName)
{
this.functionName = functionName;
}
public String getFunctionName()
{
return functionName;
}
public void setFunctionIdentifier(String functionIdentifier)
{
this.functionIdentifier = functionIdentifier;
}
public String getFunctionIdentifier()
{
return functionIdentifier;
}
public void setFunctionType(String functionType)
{
this.functionType = functionType;
}
public String getFunctionType()
{
return functionType;
}
public void setDataType(Long dataType)
{
this.dataType = dataType;
}
public Long getDataType()
{
return dataType;
}
public void setDataDefinition(String dataDefinition)
{
this.dataDefinition = dataDefinition;
}
public String getDataDefinition()
{
return dataDefinition;
}
public void setFunctionFormula(String functionFormula)
{
this.functionFormula = functionFormula;
}
public String getFunctionFormula()
{
return functionFormula;
}
public void setPropertyUnit(String propertyUnit)
{
this.propertyUnit = propertyUnit;
}
public String getPropertyUnit()
{
return propertyUnit;
}
public void setDisplayFlag(String displayFlag)
{
this.displayFlag = displayFlag;
}
public String getDisplayFlag()
{
return displayFlag;
}
public void setRwFlag(String rwFlag)
{
this.rwFlag = rwFlag;
}
public String getRwFlag()
{
return rwFlag;
}
public void setInvokeMethod(String invokeMethod)
{
this.invokeMethod = invokeMethod;
}
public String getInvokeMethod()
{
return invokeMethod;
}
public void setEventType(String eventType)
{
this.eventType = eventType;
}
public String getEventType()
{
return eventType;
}
public void setAcquisitionFormula(String acquisitionFormula)
{
this.acquisitionFormula = acquisitionFormula;
}
public String getAcquisitionFormula()
{
return acquisitionFormula;
}
public void setOrderFlag(Long orderFlag)
{
this.orderFlag = orderFlag;
}
public Long getOrderFlag()
{
return orderFlag;
}
public void setDeviceRegister(String deviceRegister)
{
this.deviceRegister = deviceRegister;
}
public String getDeviceRegister()
{
return deviceRegister;
}
public void setPropertyStep(BigDecimal propertyStep)
{
this.propertyStep = propertyStep;
}
public BigDecimal getPropertyStep()
{
return propertyStep;
}
public void setPropertyField(String propertyField)
{
this.propertyField = propertyField;
}
public String getPropertyField()
{
return propertyField;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("modeFunctionId", getModeFunctionId())
.append("deviceModeId", getDeviceModeId())
.append("functionMode", getFunctionMode())
.append("coordinate", getCoordinate())
.append("functionName", getFunctionName())
.append("functionIdentifier", getFunctionIdentifier())
.append("functionType", getFunctionType())
.append("dataType", getDataType())
.append("dataDefinition", getDataDefinition())
.append("functionFormula", getFunctionFormula())
.append("propertyUnit", getPropertyUnit())
.append("displayFlag", getDisplayFlag())
.append("rwFlag", getRwFlag())
.append("invokeMethod", getInvokeMethod())
.append("eventType", getEventType())
.append("remark", getRemark())
.append("acquisitionFormula", getAcquisitionFormula())
.append("orderFlag", getOrderFlag())
.append("deviceRegister", getDeviceRegister())
.append("propertyStep", getPropertyStep())
.append("propertyField", getPropertyField())
.toString();
}
}

@ -0,0 +1,224 @@
package com.ruoyi.business.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
/**
* hw_electronic_fence
*
* @author xins
* @date 2023-09-04
*/
public class HwElectronicFence extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 电子围栏ID */
private Long electronicFenceId;
/** 电子围栏名称 */
@Excel(name = "电子围栏名称")
private String electronicFenceName;
/** 所属场景关联hw_scene表的scene_id字段 */
@Excel(name = "所属场景关联hw_scene表的scene_id字段")
private Long sceneId;
/** 规则类型1、设备2、监控单元3、场景 */
@Excel(name = "规则类型", readConverterExp = "1=、设备2、监控单元3、场景")
private String fenceType;
/** 生效时间标识1、长期有效2、时间范围 */
@Excel(name = "生效时间标识", readConverterExp = "1=、长期有效2、时间范围")
private String effectiveTimeFlag;
/** 时区 */
@Excel(name = "时区")
private String timeZone;
/** 格式开始时间_结束时间_状态多个用|隔开例如00:00_05:00_1|06:00_08:00_0,状态1、开启、2、关闭 */
@Excel(name = "格式开始时间_结束时间_状态多个用|隔开", readConverterExp = "例=如00:00_05:00_1|06:00_08:00_0")
private String effectiveTime;
/** 触发状态0、关闭1、出界2、入界3、双向 */
@Excel(name = "触发状态", readConverterExp = "0=、关闭1、出界2、入界3、双向")
private String triggerStatus;
/** 区域形状1、多边形2、圆形 */
@Excel(name = "区域形状", readConverterExp = "1=、多边形2、圆形")
private String areaShapeFlag;
/** 区域范围为多边形时保存格式经度_纬度多个以|隔开;为圆形时的中心点和半径,下划线隔开 */
@Excel(name = "区域范围为多边形时保存格式经度_纬度多个以|隔开;为圆形时的中心点和半径,下划线隔开")
private String areaRange;
/** 报警推送标识(1、是0、否 */
@Excel(name = "报警推送标识(1、是0、否")
private String fencePushFlag;
/** 报警推送内容 */
@Excel(name = "报警推送内容")
private String fencePushContent;
/** 恢复正常推送内容 */
@Excel(name = "恢复正常推送内容")
private String fenceRecoverContent;
/** 预留字段 */
@Excel(name = "预留字段")
private String fenceField;
public void setElectronicFenceId(Long electronicFenceId)
{
this.electronicFenceId = electronicFenceId;
}
public Long getElectronicFenceId()
{
return electronicFenceId;
}
public void setElectronicFenceName(String electronicFenceName)
{
this.electronicFenceName = electronicFenceName;
}
public String getElectronicFenceName()
{
return electronicFenceName;
}
public void setSceneId(Long sceneId)
{
this.sceneId = sceneId;
}
public Long getSceneId()
{
return sceneId;
}
public void setFenceType(String fenceType)
{
this.fenceType = fenceType;
}
public String getFenceType()
{
return fenceType;
}
public void setEffectiveTimeFlag(String effectiveTimeFlag)
{
this.effectiveTimeFlag = effectiveTimeFlag;
}
public String getEffectiveTimeFlag()
{
return effectiveTimeFlag;
}
public void setTimeZone(String timeZone)
{
this.timeZone = timeZone;
}
public String getTimeZone()
{
return timeZone;
}
public void setEffectiveTime(String effectiveTime)
{
this.effectiveTime = effectiveTime;
}
public String getEffectiveTime()
{
return effectiveTime;
}
public void setTriggerStatus(String triggerStatus)
{
this.triggerStatus = triggerStatus;
}
public String getTriggerStatus()
{
return triggerStatus;
}
public void setAreaShapeFlag(String areaShapeFlag)
{
this.areaShapeFlag = areaShapeFlag;
}
public String getAreaShapeFlag()
{
return areaShapeFlag;
}
public void setAreaRange(String areaRange)
{
this.areaRange = areaRange;
}
public String getAreaRange()
{
return areaRange;
}
public void setFencePushFlag(String fencePushFlag)
{
this.fencePushFlag = fencePushFlag;
}
public String getFencePushFlag()
{
return fencePushFlag;
}
public void setFencePushContent(String fencePushContent)
{
this.fencePushContent = fencePushContent;
}
public String getFencePushContent()
{
return fencePushContent;
}
public void setFenceRecoverContent(String fenceRecoverContent)
{
this.fenceRecoverContent = fenceRecoverContent;
}
public String getFenceRecoverContent()
{
return fenceRecoverContent;
}
public void setFenceField(String fenceField)
{
this.fenceField = fenceField;
}
public String getFenceField()
{
return fenceField;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("electronicFenceId", getElectronicFenceId())
.append("electronicFenceName", getElectronicFenceName())
.append("sceneId", getSceneId())
.append("fenceType", getFenceType())
.append("effectiveTimeFlag", getEffectiveTimeFlag())
.append("timeZone", getTimeZone())
.append("effectiveTime", getEffectiveTime())
.append("triggerStatus", getTriggerStatus())
.append("areaShapeFlag", getAreaShapeFlag())
.append("areaRange", getAreaRange())
.append("fencePushFlag", getFencePushFlag())
.append("fencePushContent", getFencePushContent())
.append("fenceRecoverContent", getFenceRecoverContent())
.append("remark", getRemark())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("fenceField", getFenceField())
.toString();
}
}

@ -0,0 +1,66 @@
package com.ruoyi.business.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
/**
* hw_fence_target
*
* @author xins
* @date 2023-09-04
*/
public class HwFenceTarget extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 电子围栏ID */
@Excel(name = "电子围栏ID")
private Long electronicFenceId;
/** 目标类型1、设备2、监控单元 */
@Excel(name = "目标类型", readConverterExp = "1=、设备2、监控单元")
private String targetType;
/** target_type1hw_devicedevice_id
target_type2hw_monitor_unitmonitor_unit_id */
private Long targetId;
public void setElectronicFenceId(Long electronicFenceId)
{
this.electronicFenceId = electronicFenceId;
}
public Long getElectronicFenceId()
{
return electronicFenceId;
}
public void setTargetType(String targetType)
{
this.targetType = targetType;
}
public String getTargetType()
{
return targetType;
}
public void setTargetId(Long targetId)
{
this.targetId = targetId;
}
public Long getTargetId()
{
return targetId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("electronicFenceId", getElectronicFenceId())
.append("targetType", getTargetType())
.append("targetId", getTargetId())
.toString();
}
}

@ -0,0 +1,183 @@
package com.ruoyi.business.domain;
import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
/**
* hw_monitor_unit
*
* @author YINQ
* @date 2023-08-31
*/
public class HwMonitorUnit extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 监控单元ID */
private Long monitorUnitId;
/** 监控单元名称 */
@Excel(name = "监控单元名称")
private String monitorUnitName;
/** 所属场景 */
@Excel(name = "所属场景")
private Long sceneId;
/** 父级监控单元ID */
@Excel(name = "父级监控单元ID")
private Long parentId;
/** 监控单元类型ID */
@Excel(name = "监控单元类型ID")
private Long monitorUnitTypeId;
/** 区域ID */
@Excel(name = "区域ID")
private Long areaId;
/** 详细地址 */
@Excel(name = "详细地址")
private String monitorAddress;
/** 监控单元图片地址 */
@Excel(name = "监控单元图片地址")
private String monitorPic;
/** 保存周期 */
@Excel(name = "保存周期")
private BigDecimal preserveTime;
/** 状态 */
@Excel(name = "状态")
private Long monitorUnitStatus;
/** 预留字段 */
@Excel(name = "预留字段")
private String monitorUnitField;
public void setMonitorUnitId(Long monitorUnitId)
{
this.monitorUnitId = monitorUnitId;
}
public Long getMonitorUnitId()
{
return monitorUnitId;
}
public void setMonitorUnitName(String monitorUnitName)
{
this.monitorUnitName = monitorUnitName;
}
public String getMonitorUnitName()
{
return monitorUnitName;
}
public void setSceneId(Long sceneId)
{
this.sceneId = sceneId;
}
public Long getSceneId()
{
return sceneId;
}
public void setParentId(Long parentId)
{
this.parentId = parentId;
}
public Long getParentId()
{
return parentId;
}
public void setMonitorUnitTypeId(Long monitorUnitTypeId)
{
this.monitorUnitTypeId = monitorUnitTypeId;
}
public Long getMonitorUnitTypeId()
{
return monitorUnitTypeId;
}
public void setAreaId(Long areaId)
{
this.areaId = areaId;
}
public Long getAreaId()
{
return areaId;
}
public void setMonitorAddress(String monitorAddress)
{
this.monitorAddress = monitorAddress;
}
public String getMonitorAddress()
{
return monitorAddress;
}
public void setMonitorPic(String monitorPic)
{
this.monitorPic = monitorPic;
}
public String getMonitorPic()
{
return monitorPic;
}
public void setPreserveTime(BigDecimal preserveTime)
{
this.preserveTime = preserveTime;
}
public BigDecimal getPreserveTime()
{
return preserveTime;
}
public void setMonitorUnitStatus(Long monitorUnitStatus)
{
this.monitorUnitStatus = monitorUnitStatus;
}
public Long getMonitorUnitStatus()
{
return monitorUnitStatus;
}
public void setMonitorUnitField(String monitorUnitField)
{
this.monitorUnitField = monitorUnitField;
}
public String getMonitorUnitField()
{
return monitorUnitField;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("monitorUnitId", getMonitorUnitId())
.append("monitorUnitName", getMonitorUnitName())
.append("sceneId", getSceneId())
.append("parentId", getParentId())
.append("monitorUnitTypeId", getMonitorUnitTypeId())
.append("areaId", getAreaId())
.append("monitorAddress", getMonitorAddress())
.append("monitorPic", getMonitorPic())
.append("preserveTime", getPreserveTime())
.append("remark", getRemark())
.append("monitorUnitStatus", getMonitorUnitStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("monitorUnitField", getMonitorUnitField())
.toString();
}
}

@ -0,0 +1,154 @@
package com.ruoyi.business.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
/**
* hw_monitor_unit_type
*
* @author YINQ
* @date 2023-08-31
*/
public class HwMonitorUnitType extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 监控单元类型ID */
private Long monitorUnitTypeId;
/** 监控单元类型名称 */
@Excel(name = "监控单元类型名称")
private String monitorUnitTypeName;
/** 虚拟标识 */
@Excel(name = "虚拟标识")
private String vitualFlag;
/** 状态 */
@Excel(name = "状态")
private String monitorUnitTypeStatus;
/** 语言code */
@Excel(name = "语言code")
private String languageCode;
/** 通用标识10 */
@Excel(name = "通用标识", readConverterExp = "1=0否")
private String commonFlag;
/** 所属场景 */
@Excel(name = "所属场景")
private Long sceneId;
/** 监控单元类型图标 */
@Excel(name = "监控单元类型图标")
private String unitTypeIcon;
/** 预留字段 */
@Excel(name = "预留字段")
private String unitTypeField;
public void setMonitorUnitTypeId(Long monitorUnitTypeId)
{
this.monitorUnitTypeId = monitorUnitTypeId;
}
public Long getMonitorUnitTypeId()
{
return monitorUnitTypeId;
}
public void setMonitorUnitTypeName(String monitorUnitTypeName)
{
this.monitorUnitTypeName = monitorUnitTypeName;
}
public String getMonitorUnitTypeName()
{
return monitorUnitTypeName;
}
public void setVitualFlag(String vitualFlag)
{
this.vitualFlag = vitualFlag;
}
public String getVitualFlag()
{
return vitualFlag;
}
public void setMonitorUnitTypeStatus(String monitorUnitTypeStatus)
{
this.monitorUnitTypeStatus = monitorUnitTypeStatus;
}
public String getMonitorUnitTypeStatus()
{
return monitorUnitTypeStatus;
}
public void setLanguageCode(String languageCode)
{
this.languageCode = languageCode;
}
public String getLanguageCode()
{
return languageCode;
}
public void setCommonFlag(String commonFlag)
{
this.commonFlag = commonFlag;
}
public String getCommonFlag()
{
return commonFlag;
}
public void setSceneId(Long sceneId)
{
this.sceneId = sceneId;
}
public Long getSceneId()
{
return sceneId;
}
public void setUnitTypeIcon(String unitTypeIcon)
{
this.unitTypeIcon = unitTypeIcon;
}
public String getUnitTypeIcon()
{
return unitTypeIcon;
}
public void setUnitTypeField(String unitTypeField)
{
this.unitTypeField = unitTypeField;
}
public String getUnitTypeField()
{
return unitTypeField;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("monitorUnitTypeId", getMonitorUnitTypeId())
.append("monitorUnitTypeName", getMonitorUnitTypeName())
.append("vitualFlag", getVitualFlag())
.append("monitorUnitTypeStatus", getMonitorUnitTypeStatus())
.append("languageCode", getLanguageCode())
.append("commonFlag", getCommonFlag())
.append("sceneId", getSceneId())
.append("remark", getRemark())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("unitTypeIcon", getUnitTypeIcon())
.append("unitTypeField", getUnitTypeField())
.toString();
}
}

@ -0,0 +1,126 @@
package com.ruoyi.business.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
/**
* hw_scene_mode
*
* @author YINQ
* @date 2023-08-31
*/
public class HwSceneMode extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 类型ID */
private Long sceneModeId;
/** 类型名称 */
@Excel(name = "类型名称")
private String sceneModeName;
/** 自定义标识 */
@Excel(name = "自定义标识")
private Long customFlag;
/** 租户ID */
@Excel(name = "租户ID")
private Long tenantId;
/** 语言code */
@Excel(name = "语言code")
private String languageCode;
/** 状态 */
@Excel(name = "状态")
private Long sceneModeStatus;
/** 预留字段 */
@Excel(name = "预留字段")
private String sceneModeField;
public void setSceneModeId(Long sceneModeId)
{
this.sceneModeId = sceneModeId;
}
public Long getSceneModeId()
{
return sceneModeId;
}
public void setSceneModeName(String sceneModeName)
{
this.sceneModeName = sceneModeName;
}
public String getSceneModeName()
{
return sceneModeName;
}
public void setCustomFlag(Long customFlag)
{
this.customFlag = customFlag;
}
public Long getCustomFlag()
{
return customFlag;
}
public void setTenantId(Long tenantId)
{
this.tenantId = tenantId;
}
public Long getTenantId()
{
return tenantId;
}
public void setLanguageCode(String languageCode)
{
this.languageCode = languageCode;
}
public String getLanguageCode()
{
return languageCode;
}
public void setSceneModeStatus(Long sceneModeStatus)
{
this.sceneModeStatus = sceneModeStatus;
}
public Long getSceneModeStatus()
{
return sceneModeStatus;
}
public void setSceneModeField(String sceneModeField)
{
this.sceneModeField = sceneModeField;
}
public String getSceneModeField()
{
return sceneModeField;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("sceneModeId", getSceneModeId())
.append("sceneModeName", getSceneModeName())
.append("customFlag", getCustomFlag())
.append("tenantId", getTenantId())
.append("languageCode", getLanguageCode())
.append("remark", getRemark())
.append("sceneModeStatus", getSceneModeStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("sceneModeField", getSceneModeField())
.toString();
}
}

@ -0,0 +1,210 @@
package com.ruoyi.business.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
/**
* hw_tenant
*
* @author xins
* @date 2023-09-04
*/
public class HwTenant extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 租户ID */
private Long tenantId;
/** 租户类型,(1、企业2、个人) */
@Excel(name = "租户类型,(1、企业2、个人)")
private String tenantType;
/** 租户名称 */
@Excel(name = "租户名称")
private String tenantName;
/** 行业类型关联sys_dict_data的dict_type是hw_tenant_industry的dict_value */
@Excel(name = "行业类型关联sys_dict_data的dict_type是hw_tenant_industry的dict_value")
private Long tenantIndustry;
/** 联系人姓名 */
@Excel(name = "联系人姓名")
private String contactName;
/** 联系人电话 */
@Excel(name = "联系人电话")
private String contactPhone;
/** 邮箱地址 */
@Excel(name = "邮箱地址")
private String email;
/** 区域ID管理区域hw_area */
@Excel(name = "区域ID管理区域hw_area")
private Long areaId;
/** 联系人地址 */
@Excel(name = "联系人地址")
private String contactAddress;
/** 状态1、正常 9、删除 */
@Excel(name = "状态", readConverterExp = "1=、正常,9=、删除")
private String tenantStatus;
/** 是否外部注册1、是 0、否 */
@Excel(name = "是否外部注册", readConverterExp = "1=、是,0=、否")
private String isRegister;
/** 租户等级,预留字段 */
@Excel(name = "租户等级,预留字段")
private Long tenantGrade;
/** 预留字段 */
@Excel(name = "预留字段")
private String tenantField;
public void setTenantId(Long tenantId)
{
this.tenantId = tenantId;
}
public Long getTenantId()
{
return tenantId;
}
public void setTenantType(String tenantType)
{
this.tenantType = tenantType;
}
public String getTenantType()
{
return tenantType;
}
public void setTenantName(String tenantName)
{
this.tenantName = tenantName;
}
public String getTenantName()
{
return tenantName;
}
public void setTenantIndustry(Long tenantIndustry)
{
this.tenantIndustry = tenantIndustry;
}
public Long getTenantIndustry()
{
return tenantIndustry;
}
public void setContactName(String contactName)
{
this.contactName = contactName;
}
public String getContactName()
{
return contactName;
}
public void setContactPhone(String contactPhone)
{
this.contactPhone = contactPhone;
}
public String getContactPhone()
{
return contactPhone;
}
public void setEmail(String email)
{
this.email = email;
}
public String getEmail()
{
return email;
}
public void setAreaId(Long areaId)
{
this.areaId = areaId;
}
public Long getAreaId()
{
return areaId;
}
public void setContactAddress(String contactAddress)
{
this.contactAddress = contactAddress;
}
public String getContactAddress()
{
return contactAddress;
}
public void setTenantStatus(String tenantStatus)
{
this.tenantStatus = tenantStatus;
}
public String getTenantStatus()
{
return tenantStatus;
}
public void setIsRegister(String isRegister)
{
this.isRegister = isRegister;
}
public String getIsRegister()
{
return isRegister;
}
public void setTenantGrade(Long tenantGrade)
{
this.tenantGrade = tenantGrade;
}
public Long getTenantGrade()
{
return tenantGrade;
}
public void setTenantField(String tenantField)
{
this.tenantField = tenantField;
}
public String getTenantField()
{
return tenantField;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("tenantId", getTenantId())
.append("tenantType", getTenantType())
.append("tenantName", getTenantName())
.append("tenantIndustry", getTenantIndustry())
.append("contactName", getContactName())
.append("contactPhone", getContactPhone())
.append("email", getEmail())
.append("areaId", getAreaId())
.append("contactAddress", getContactAddress())
.append("remark", getRemark())
.append("tenantStatus", getTenantStatus())
.append("isRegister", getIsRegister())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("tenantGrade", getTenantGrade())
.append("tenantField", getTenantField())
.toString();
}
}

@ -0,0 +1,61 @@
package com.ruoyi.business.mapper;
import java.util.List;
import com.ruoyi.business.domain.HwDeviceModeFunction;
/**
* Mapper
*
* @author xins
* @date 2023-09-05
*/
public interface HwDeviceModeFunctionMapper
{
/**
*
*
* @param modeFunctionId
* @return
*/
public HwDeviceModeFunction selectHwDeviceModeFunctionByModeFunctionId(Long modeFunctionId);
/**
*
*
* @param hwDeviceModeFunction
* @return
*/
public List<HwDeviceModeFunction> selectHwDeviceModeFunctionList(HwDeviceModeFunction hwDeviceModeFunction);
/**
*
*
* @param hwDeviceModeFunction
* @return
*/
public int insertHwDeviceModeFunction(HwDeviceModeFunction hwDeviceModeFunction);
/**
*
*
* @param hwDeviceModeFunction
* @return
*/
public int updateHwDeviceModeFunction(HwDeviceModeFunction hwDeviceModeFunction);
/**
*
*
* @param modeFunctionId
* @return
*/
public int deleteHwDeviceModeFunctionByModeFunctionId(Long modeFunctionId);
/**
*
*
* @param modeFunctionIds
* @return
*/
public int deleteHwDeviceModeFunctionByModeFunctionIds(Long[] modeFunctionIds);
}

@ -0,0 +1,87 @@
package com.ruoyi.business.mapper;
import java.util.List;
import com.ruoyi.business.domain.HwDeviceMode;
import com.ruoyi.business.domain.HwDeviceModeFunction;
/**
* Mapper
*
* @author xins
* @date 2023-09-04
*/
public interface HwDeviceModeMapper
{
/**
*
*
* @param deviceModeId
* @return
*/
public HwDeviceMode selectHwDeviceModeByDeviceModeId(Long deviceModeId);
/**
*
*
* @param hwDeviceMode
* @return
*/
public List<HwDeviceMode> selectHwDeviceModeList(HwDeviceMode hwDeviceMode);
/**
*
*
* @param hwDeviceMode
* @return
*/
public int insertHwDeviceMode(HwDeviceMode hwDeviceMode);
/**
*
*
* @param hwDeviceMode
* @return
*/
public int updateHwDeviceMode(HwDeviceMode hwDeviceMode);
/**
*
*
* @param deviceModeId
* @return
*/
public int deleteHwDeviceModeByDeviceModeId(Long deviceModeId);
/**
*
*
* @param deviceModeIds
* @return
*/
public int deleteHwDeviceModeByDeviceModeIds(Long[] deviceModeIds);
/**
*
*
* @param deviceModeIds
* @return
*/
public int deleteHwDeviceModeFunctionByDeviceModeIds(Long[] deviceModeIds);
/**
*
*
* @param hwDeviceModeFunctionList
* @return
*/
public int batchHwDeviceModeFunction(List<HwDeviceModeFunction> hwDeviceModeFunctionList);
/**
*
*
* @param deviceModeId ID
* @return
*/
public int deleteHwDeviceModeFunctionByDeviceModeId(Long deviceModeId);
}

@ -0,0 +1,61 @@
package com.ruoyi.business.mapper;
import java.util.List;
import com.ruoyi.business.domain.HwElectronicFence;
/**
* Mapper
*
* @author xins
* @date 2023-09-04
*/
public interface HwElectronicFenceMapper
{
/**
*
*
* @param electronicFenceId
* @return
*/
public HwElectronicFence selectHwElectronicFenceByElectronicFenceId(Long electronicFenceId);
/**
*
*
* @param hwElectronicFence
* @return
*/
public List<HwElectronicFence> selectHwElectronicFenceList(HwElectronicFence hwElectronicFence);
/**
*
*
* @param hwElectronicFence
* @return
*/
public int insertHwElectronicFence(HwElectronicFence hwElectronicFence);
/**
*
*
* @param hwElectronicFence
* @return
*/
public int updateHwElectronicFence(HwElectronicFence hwElectronicFence);
/**
*
*
* @param electronicFenceId
* @return
*/
public int deleteHwElectronicFenceByElectronicFenceId(Long electronicFenceId);
/**
*
*
* @param electronicFenceIds
* @return
*/
public int deleteHwElectronicFenceByElectronicFenceIds(Long[] electronicFenceIds);
}

@ -0,0 +1,61 @@
package com.ruoyi.business.mapper;
import java.util.List;
import com.ruoyi.business.domain.HwFenceTarget;
/**
* Mapper
*
* @author xins
* @date 2023-09-04
*/
public interface HwFenceTargetMapper
{
/**
*
*
* @param targetId
* @return
*/
public HwFenceTarget selectHwFenceTargetByTargetId(Long targetId);
/**
*
*
* @param hwFenceTarget
* @return
*/
public List<HwFenceTarget> selectHwFenceTargetList(HwFenceTarget hwFenceTarget);
/**
*
*
* @param hwFenceTarget
* @return
*/
public int insertHwFenceTarget(HwFenceTarget hwFenceTarget);
/**
*
*
* @param hwFenceTarget
* @return
*/
public int updateHwFenceTarget(HwFenceTarget hwFenceTarget);
/**
*
*
* @param targetId
* @return
*/
public int deleteHwFenceTargetByTargetId(Long targetId);
/**
*
*
* @param targetIds
* @return
*/
public int deleteHwFenceTargetByTargetIds(Long[] targetIds);
}

@ -0,0 +1,61 @@
package com.ruoyi.business.mapper;
import java.util.List;
import com.ruoyi.business.domain.HwMonitorUnit;
/**
* Mapper
*
* @author YINQ
* @date 2023-08-31
*/
public interface HwMonitorUnitMapper
{
/**
*
*
* @param monitorUnitId
* @return
*/
public HwMonitorUnit selectHwMonitorUnitByMonitorUnitId(Long monitorUnitId);
/**
*
*
* @param hwMonitorUnit
* @return
*/
public List<HwMonitorUnit> selectHwMonitorUnitList(HwMonitorUnit hwMonitorUnit);
/**
*
*
* @param hwMonitorUnit
* @return
*/
public int insertHwMonitorUnit(HwMonitorUnit hwMonitorUnit);
/**
*
*
* @param hwMonitorUnit
* @return
*/
public int updateHwMonitorUnit(HwMonitorUnit hwMonitorUnit);
/**
*
*
* @param monitorUnitId
* @return
*/
public int deleteHwMonitorUnitByMonitorUnitId(Long monitorUnitId);
/**
*
*
* @param monitorUnitIds
* @return
*/
public int deleteHwMonitorUnitByMonitorUnitIds(Long[] monitorUnitIds);
}

@ -0,0 +1,61 @@
package com.ruoyi.business.mapper;
import java.util.List;
import com.ruoyi.business.domain.HwMonitorUnitType;
/**
* Mapper
*
* @author YINQ
* @date 2023-08-31
*/
public interface HwMonitorUnitTypeMapper
{
/**
*
*
* @param monitorUnitTypeId
* @return
*/
public HwMonitorUnitType selectHwMonitorUnitTypeByMonitorUnitTypeId(Long monitorUnitTypeId);
/**
*
*
* @param hwMonitorUnitType
* @return
*/
public List<HwMonitorUnitType> selectHwMonitorUnitTypeList(HwMonitorUnitType hwMonitorUnitType);
/**
*
*
* @param hwMonitorUnitType
* @return
*/
public int insertHwMonitorUnitType(HwMonitorUnitType hwMonitorUnitType);
/**
*
*
* @param hwMonitorUnitType
* @return
*/
public int updateHwMonitorUnitType(HwMonitorUnitType hwMonitorUnitType);
/**
*
*
* @param monitorUnitTypeId
* @return
*/
public int deleteHwMonitorUnitTypeByMonitorUnitTypeId(Long monitorUnitTypeId);
/**
*
*
* @param monitorUnitTypeIds
* @return
*/
public int deleteHwMonitorUnitTypeByMonitorUnitTypeIds(Long[] monitorUnitTypeIds);
}

@ -0,0 +1,61 @@
package com.ruoyi.business.mapper;
import java.util.List;
import com.ruoyi.business.domain.HwSceneMode;
/**
* Mapper
*
* @author YINQ
* @date 2023-08-31
*/
public interface HwSceneModeMapper
{
/**
*
*
* @param sceneModeId
* @return
*/
public HwSceneMode selectHwSceneModeBySceneModeId(Long sceneModeId);
/**
*
*
* @param hwSceneMode
* @return
*/
public List<HwSceneMode> selectHwSceneModeList(HwSceneMode hwSceneMode);
/**
*
*
* @param hwSceneMode
* @return
*/
public int insertHwSceneMode(HwSceneMode hwSceneMode);
/**
*
*
* @param hwSceneMode
* @return
*/
public int updateHwSceneMode(HwSceneMode hwSceneMode);
/**
*
*
* @param sceneModeId
* @return
*/
public int deleteHwSceneModeBySceneModeId(Long sceneModeId);
/**
*
*
* @param sceneModeIds
* @return
*/
public int deleteHwSceneModeBySceneModeIds(Long[] sceneModeIds);
}

@ -0,0 +1,61 @@
package com.ruoyi.business.mapper;
import java.util.List;
import com.ruoyi.business.domain.HwTenant;
/**
* Mapper
*
* @author xins
* @date 2023-09-04
*/
public interface HwTenantMapper
{
/**
*
*
* @param tenantId
* @return
*/
public HwTenant selectHwTenantByTenantId(Long tenantId);
/**
*
*
* @param hwTenant
* @return
*/
public List<HwTenant> selectHwTenantList(HwTenant hwTenant);
/**
*
*
* @param hwTenant
* @return
*/
public int insertHwTenant(HwTenant hwTenant);
/**
*
*
* @param hwTenant
* @return
*/
public int updateHwTenant(HwTenant hwTenant);
/**
*
*
* @param tenantId
* @return
*/
public int deleteHwTenantByTenantId(Long tenantId);
/**
*
*
* @param tenantIds
* @return
*/
public int deleteHwTenantByTenantIds(Long[] tenantIds);
}

@ -0,0 +1,61 @@
package com.ruoyi.business.service;
import java.util.List;
import com.ruoyi.business.domain.HwDeviceModeFunction;
/**
* Service
*
* @author xins
* @date 2023-09-05
*/
public interface IHwDeviceModeFunctionService
{
/**
*
*
* @param modeFunctionId
* @return
*/
public HwDeviceModeFunction selectHwDeviceModeFunctionByModeFunctionId(Long modeFunctionId);
/**
*
*
* @param hwDeviceModeFunction
* @return
*/
public List<HwDeviceModeFunction> selectHwDeviceModeFunctionList(HwDeviceModeFunction hwDeviceModeFunction);
/**
*
*
* @param hwDeviceModeFunction
* @return
*/
public int insertHwDeviceModeFunction(HwDeviceModeFunction hwDeviceModeFunction);
/**
*
*
* @param hwDeviceModeFunction
* @return
*/
public int updateHwDeviceModeFunction(HwDeviceModeFunction hwDeviceModeFunction);
/**
*
*
* @param modeFunctionIds
* @return
*/
public int deleteHwDeviceModeFunctionByModeFunctionIds(Long[] modeFunctionIds);
/**
*
*
* @param modeFunctionId
* @return
*/
public int deleteHwDeviceModeFunctionByModeFunctionId(Long modeFunctionId);
}

@ -0,0 +1,61 @@
package com.ruoyi.business.service;
import java.util.List;
import com.ruoyi.business.domain.HwDeviceMode;
/**
* Service
*
* @author xins
* @date 2023-09-04
*/
public interface IHwDeviceModeService
{
/**
*
*
* @param deviceModeId
* @return
*/
public HwDeviceMode selectHwDeviceModeByDeviceModeId(Long deviceModeId);
/**
*
*
* @param hwDeviceMode
* @return
*/
public List<HwDeviceMode> selectHwDeviceModeList(HwDeviceMode hwDeviceMode);
/**
*
*
* @param hwDeviceMode
* @return
*/
public int insertHwDeviceMode(HwDeviceMode hwDeviceMode);
/**
*
*
* @param hwDeviceMode
* @return
*/
public int updateHwDeviceMode(HwDeviceMode hwDeviceMode);
/**
*
*
* @param deviceModeIds
* @return
*/
public int deleteHwDeviceModeByDeviceModeIds(Long[] deviceModeIds);
/**
*
*
* @param deviceModeId
* @return
*/
public int deleteHwDeviceModeByDeviceModeId(Long deviceModeId);
}

@ -0,0 +1,61 @@
package com.ruoyi.business.service;
import java.util.List;
import com.ruoyi.business.domain.HwElectronicFence;
/**
* Service
*
* @author xins
* @date 2023-09-04
*/
public interface IHwElectronicFenceService
{
/**
*
*
* @param electronicFenceId
* @return
*/
public HwElectronicFence selectHwElectronicFenceByElectronicFenceId(Long electronicFenceId);
/**
*
*
* @param hwElectronicFence
* @return
*/
public List<HwElectronicFence> selectHwElectronicFenceList(HwElectronicFence hwElectronicFence);
/**
*
*
* @param hwElectronicFence
* @return
*/
public int insertHwElectronicFence(HwElectronicFence hwElectronicFence);
/**
*
*
* @param hwElectronicFence
* @return
*/
public int updateHwElectronicFence(HwElectronicFence hwElectronicFence);
/**
*
*
* @param electronicFenceIds
* @return
*/
public int deleteHwElectronicFenceByElectronicFenceIds(Long[] electronicFenceIds);
/**
*
*
* @param electronicFenceId
* @return
*/
public int deleteHwElectronicFenceByElectronicFenceId(Long electronicFenceId);
}

@ -0,0 +1,61 @@
package com.ruoyi.business.service;
import java.util.List;
import com.ruoyi.business.domain.HwFenceTarget;
/**
* Service
*
* @author xins
* @date 2023-09-04
*/
public interface IHwFenceTargetService
{
/**
*
*
* @param targetId
* @return
*/
public HwFenceTarget selectHwFenceTargetByTargetId(Long targetId);
/**
*
*
* @param hwFenceTarget
* @return
*/
public List<HwFenceTarget> selectHwFenceTargetList(HwFenceTarget hwFenceTarget);
/**
*
*
* @param hwFenceTarget
* @return
*/
public int insertHwFenceTarget(HwFenceTarget hwFenceTarget);
/**
*
*
* @param hwFenceTarget
* @return
*/
public int updateHwFenceTarget(HwFenceTarget hwFenceTarget);
/**
*
*
* @param targetIds
* @return
*/
public int deleteHwFenceTargetByTargetIds(Long[] targetIds);
/**
*
*
* @param targetId
* @return
*/
public int deleteHwFenceTargetByTargetId(Long targetId);
}

@ -0,0 +1,61 @@
package com.ruoyi.business.service;
import java.util.List;
import com.ruoyi.business.domain.HwMonitorUnit;
/**
* Service
*
* @author YINQ
* @date 2023-08-31
*/
public interface IHwMonitorUnitService
{
/**
*
*
* @param monitorUnitId
* @return
*/
public HwMonitorUnit selectHwMonitorUnitByMonitorUnitId(Long monitorUnitId);
/**
*
*
* @param hwMonitorUnit
* @return
*/
public List<HwMonitorUnit> selectHwMonitorUnitList(HwMonitorUnit hwMonitorUnit);
/**
*
*
* @param hwMonitorUnit
* @return
*/
public int insertHwMonitorUnit(HwMonitorUnit hwMonitorUnit);
/**
*
*
* @param hwMonitorUnit
* @return
*/
public int updateHwMonitorUnit(HwMonitorUnit hwMonitorUnit);
/**
*
*
* @param monitorUnitIds
* @return
*/
public int deleteHwMonitorUnitByMonitorUnitIds(Long[] monitorUnitIds);
/**
*
*
* @param monitorUnitId
* @return
*/
public int deleteHwMonitorUnitByMonitorUnitId(Long monitorUnitId);
}

@ -0,0 +1,61 @@
package com.ruoyi.business.service;
import java.util.List;
import com.ruoyi.business.domain.HwMonitorUnitType;
/**
* Service
*
* @author YINQ
* @date 2023-08-31
*/
public interface IHwMonitorUnitTypeService
{
/**
*
*
* @param monitorUnitTypeId
* @return
*/
public HwMonitorUnitType selectHwMonitorUnitTypeByMonitorUnitTypeId(Long monitorUnitTypeId);
/**
*
*
* @param hwMonitorUnitType
* @return
*/
public List<HwMonitorUnitType> selectHwMonitorUnitTypeList(HwMonitorUnitType hwMonitorUnitType);
/**
*
*
* @param hwMonitorUnitType
* @return
*/
public int insertHwMonitorUnitType(HwMonitorUnitType hwMonitorUnitType);
/**
*
*
* @param hwMonitorUnitType
* @return
*/
public int updateHwMonitorUnitType(HwMonitorUnitType hwMonitorUnitType);
/**
*
*
* @param monitorUnitTypeIds
* @return
*/
public int deleteHwMonitorUnitTypeByMonitorUnitTypeIds(Long[] monitorUnitTypeIds);
/**
*
*
* @param monitorUnitTypeId
* @return
*/
public int deleteHwMonitorUnitTypeByMonitorUnitTypeId(Long monitorUnitTypeId);
}

@ -0,0 +1,61 @@
package com.ruoyi.business.service;
import java.util.List;
import com.ruoyi.business.domain.HwSceneMode;
/**
* Service
*
* @author YINQ
* @date 2023-08-31
*/
public interface IHwSceneModeService
{
/**
*
*
* @param sceneModeId
* @return
*/
public HwSceneMode selectHwSceneModeBySceneModeId(Long sceneModeId);
/**
*
*
* @param hwSceneMode
* @return
*/
public List<HwSceneMode> selectHwSceneModeList(HwSceneMode hwSceneMode);
/**
*
*
* @param hwSceneMode
* @return
*/
public int insertHwSceneMode(HwSceneMode hwSceneMode);
/**
*
*
* @param hwSceneMode
* @return
*/
public int updateHwSceneMode(HwSceneMode hwSceneMode);
/**
*
*
* @param sceneModeIds
* @return
*/
public int deleteHwSceneModeBySceneModeIds(Long[] sceneModeIds);
/**
*
*
* @param sceneModeId
* @return
*/
public int deleteHwSceneModeBySceneModeId(Long sceneModeId);
}

@ -0,0 +1,61 @@
package com.ruoyi.business.service;
import java.util.List;
import com.ruoyi.business.domain.HwTenant;
/**
* Service
*
* @author xins
* @date 2023-09-04
*/
public interface IHwTenantService
{
/**
*
*
* @param tenantId
* @return
*/
public HwTenant selectHwTenantByTenantId(Long tenantId);
/**
*
*
* @param hwTenant
* @return
*/
public List<HwTenant> selectHwTenantList(HwTenant hwTenant);
/**
*
*
* @param hwTenant
* @return
*/
public int insertHwTenant(HwTenant hwTenant);
/**
*
*
* @param hwTenant
* @return
*/
public int updateHwTenant(HwTenant hwTenant);
/**
*
*
* @param tenantIds
* @return
*/
public int deleteHwTenantByTenantIds(Long[] tenantIds);
/**
*
*
* @param tenantId
* @return
*/
public int deleteHwTenantByTenantId(Long tenantId);
}

@ -0,0 +1,93 @@
package com.ruoyi.business.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.business.mapper.HwDeviceModeFunctionMapper;
import com.ruoyi.business.domain.HwDeviceModeFunction;
import com.ruoyi.business.service.IHwDeviceModeFunctionService;
/**
* Service
*
* @author xins
* @date 2023-09-05
*/
@Service
public class HwDeviceModeFunctionServiceImpl implements IHwDeviceModeFunctionService
{
@Autowired
private HwDeviceModeFunctionMapper hwDeviceModeFunctionMapper;
/**
*
*
* @param modeFunctionId
* @return
*/
@Override
public HwDeviceModeFunction selectHwDeviceModeFunctionByModeFunctionId(Long modeFunctionId)
{
return hwDeviceModeFunctionMapper.selectHwDeviceModeFunctionByModeFunctionId(modeFunctionId);
}
/**
*
*
* @param hwDeviceModeFunction
* @return
*/
@Override
public List<HwDeviceModeFunction> selectHwDeviceModeFunctionList(HwDeviceModeFunction hwDeviceModeFunction)
{
return hwDeviceModeFunctionMapper.selectHwDeviceModeFunctionList(hwDeviceModeFunction);
}
/**
*
*
* @param hwDeviceModeFunction
* @return
*/
@Override
public int insertHwDeviceModeFunction(HwDeviceModeFunction hwDeviceModeFunction)
{
return hwDeviceModeFunctionMapper.insertHwDeviceModeFunction(hwDeviceModeFunction);
}
/**
*
*
* @param hwDeviceModeFunction
* @return
*/
@Override
public int updateHwDeviceModeFunction(HwDeviceModeFunction hwDeviceModeFunction)
{
return hwDeviceModeFunctionMapper.updateHwDeviceModeFunction(hwDeviceModeFunction);
}
/**
*
*
* @param modeFunctionIds
* @return
*/
@Override
public int deleteHwDeviceModeFunctionByModeFunctionIds(Long[] modeFunctionIds)
{
return hwDeviceModeFunctionMapper.deleteHwDeviceModeFunctionByModeFunctionIds(modeFunctionIds);
}
/**
*
*
* @param modeFunctionId
* @return
*/
@Override
public int deleteHwDeviceModeFunctionByModeFunctionId(Long modeFunctionId)
{
return hwDeviceModeFunctionMapper.deleteHwDeviceModeFunctionByModeFunctionId(modeFunctionId);
}
}

@ -0,0 +1,134 @@
package com.ruoyi.business.service.impl;
import java.util.List;
import com.ruoyi.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import com.ruoyi.common.core.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.business.domain.HwDeviceModeFunction;
import com.ruoyi.business.mapper.HwDeviceModeMapper;
import com.ruoyi.business.domain.HwDeviceMode;
import com.ruoyi.business.service.IHwDeviceModeService;
/**
* Service
*
* @author xins
* @date 2023-09-04
*/
@Service
public class HwDeviceModeServiceImpl implements IHwDeviceModeService
{
@Autowired
private HwDeviceModeMapper hwDeviceModeMapper;
/**
*
*
* @param deviceModeId
* @return
*/
@Override
public HwDeviceMode selectHwDeviceModeByDeviceModeId(Long deviceModeId)
{
return hwDeviceModeMapper.selectHwDeviceModeByDeviceModeId(deviceModeId);
}
/**
*
*
* @param hwDeviceMode
* @return
*/
@Override
public List<HwDeviceMode> selectHwDeviceModeList(HwDeviceMode hwDeviceMode)
{
return hwDeviceModeMapper.selectHwDeviceModeList(hwDeviceMode);
}
/**
*
*
* @param hwDeviceMode
* @return
*/
@Transactional
@Override
public int insertHwDeviceMode(HwDeviceMode hwDeviceMode)
{
hwDeviceMode.setCreateTime(DateUtils.getNowDate());
int rows = hwDeviceModeMapper.insertHwDeviceMode(hwDeviceMode);
insertHwDeviceModeFunction(hwDeviceMode);
return rows;
}
/**
*
*
* @param hwDeviceMode
* @return
*/
@Transactional
@Override
public int updateHwDeviceMode(HwDeviceMode hwDeviceMode)
{
hwDeviceMode.setUpdateTime(DateUtils.getNowDate());
hwDeviceModeMapper.deleteHwDeviceModeFunctionByDeviceModeId(hwDeviceMode.getDeviceModeId());
insertHwDeviceModeFunction(hwDeviceMode);
return hwDeviceModeMapper.updateHwDeviceMode(hwDeviceMode);
}
/**
*
*
* @param deviceModeIds
* @return
*/
@Transactional
@Override
public int deleteHwDeviceModeByDeviceModeIds(Long[] deviceModeIds)
{
hwDeviceModeMapper.deleteHwDeviceModeFunctionByDeviceModeIds(deviceModeIds);
return hwDeviceModeMapper.deleteHwDeviceModeByDeviceModeIds(deviceModeIds);
}
/**
*
*
* @param deviceModeId
* @return
*/
@Transactional
@Override
public int deleteHwDeviceModeByDeviceModeId(Long deviceModeId)
{
hwDeviceModeMapper.deleteHwDeviceModeFunctionByDeviceModeId(deviceModeId);
return hwDeviceModeMapper.deleteHwDeviceModeByDeviceModeId(deviceModeId);
}
/**
*
*
* @param hwDeviceMode
*/
public void insertHwDeviceModeFunction(HwDeviceMode hwDeviceMode)
{
List<HwDeviceModeFunction> hwDeviceModeFunctionList = hwDeviceMode.getHwDeviceModeFunctionList();
Long deviceModeId = hwDeviceMode.getDeviceModeId();
if (StringUtils.isNotNull(hwDeviceModeFunctionList))
{
List<HwDeviceModeFunction> list = new ArrayList<HwDeviceModeFunction>();
for (HwDeviceModeFunction hwDeviceModeFunction : hwDeviceModeFunctionList)
{
hwDeviceModeFunction.setDeviceModeId(deviceModeId);
list.add(hwDeviceModeFunction);
}
if (list.size() > 0)
{
hwDeviceModeMapper.batchHwDeviceModeFunction(list);
}
}
}
}

@ -0,0 +1,96 @@
package com.ruoyi.business.service.impl;
import java.util.List;
import com.ruoyi.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.business.mapper.HwElectronicFenceMapper;
import com.ruoyi.business.domain.HwElectronicFence;
import com.ruoyi.business.service.IHwElectronicFenceService;
/**
* Service
*
* @author xins
* @date 2023-09-04
*/
@Service
public class HwElectronicFenceServiceImpl implements IHwElectronicFenceService
{
@Autowired
private HwElectronicFenceMapper hwElectronicFenceMapper;
/**
*
*
* @param electronicFenceId
* @return
*/
@Override
public HwElectronicFence selectHwElectronicFenceByElectronicFenceId(Long electronicFenceId)
{
return hwElectronicFenceMapper.selectHwElectronicFenceByElectronicFenceId(electronicFenceId);
}
/**
*
*
* @param hwElectronicFence
* @return
*/
@Override
public List<HwElectronicFence> selectHwElectronicFenceList(HwElectronicFence hwElectronicFence)
{
return hwElectronicFenceMapper.selectHwElectronicFenceList(hwElectronicFence);
}
/**
*
*
* @param hwElectronicFence
* @return
*/
@Override
public int insertHwElectronicFence(HwElectronicFence hwElectronicFence)
{
hwElectronicFence.setCreateTime(DateUtils.getNowDate());
return hwElectronicFenceMapper.insertHwElectronicFence(hwElectronicFence);
}
/**
*
*
* @param hwElectronicFence
* @return
*/
@Override
public int updateHwElectronicFence(HwElectronicFence hwElectronicFence)
{
hwElectronicFence.setUpdateTime(DateUtils.getNowDate());
return hwElectronicFenceMapper.updateHwElectronicFence(hwElectronicFence);
}
/**
*
*
* @param electronicFenceIds
* @return
*/
@Override
public int deleteHwElectronicFenceByElectronicFenceIds(Long[] electronicFenceIds)
{
return hwElectronicFenceMapper.deleteHwElectronicFenceByElectronicFenceIds(electronicFenceIds);
}
/**
*
*
* @param electronicFenceId
* @return
*/
@Override
public int deleteHwElectronicFenceByElectronicFenceId(Long electronicFenceId)
{
return hwElectronicFenceMapper.deleteHwElectronicFenceByElectronicFenceId(electronicFenceId);
}
}

@ -0,0 +1,93 @@
package com.ruoyi.business.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.business.mapper.HwFenceTargetMapper;
import com.ruoyi.business.domain.HwFenceTarget;
import com.ruoyi.business.service.IHwFenceTargetService;
/**
* Service
*
* @author xins
* @date 2023-09-04
*/
@Service
public class HwFenceTargetServiceImpl implements IHwFenceTargetService
{
@Autowired
private HwFenceTargetMapper hwFenceTargetMapper;
/**
*
*
* @param targetId
* @return
*/
@Override
public HwFenceTarget selectHwFenceTargetByTargetId(Long targetId)
{
return hwFenceTargetMapper.selectHwFenceTargetByTargetId(targetId);
}
/**
*
*
* @param hwFenceTarget
* @return
*/
@Override
public List<HwFenceTarget> selectHwFenceTargetList(HwFenceTarget hwFenceTarget)
{
return hwFenceTargetMapper.selectHwFenceTargetList(hwFenceTarget);
}
/**
*
*
* @param hwFenceTarget
* @return
*/
@Override
public int insertHwFenceTarget(HwFenceTarget hwFenceTarget)
{
return hwFenceTargetMapper.insertHwFenceTarget(hwFenceTarget);
}
/**
*
*
* @param hwFenceTarget
* @return
*/
@Override
public int updateHwFenceTarget(HwFenceTarget hwFenceTarget)
{
return hwFenceTargetMapper.updateHwFenceTarget(hwFenceTarget);
}
/**
*
*
* @param targetIds
* @return
*/
@Override
public int deleteHwFenceTargetByTargetIds(Long[] targetIds)
{
return hwFenceTargetMapper.deleteHwFenceTargetByTargetIds(targetIds);
}
/**
*
*
* @param targetId
* @return
*/
@Override
public int deleteHwFenceTargetByTargetId(Long targetId)
{
return hwFenceTargetMapper.deleteHwFenceTargetByTargetId(targetId);
}
}

@ -0,0 +1,96 @@
package com.ruoyi.business.service.impl;
import java.util.List;
import com.ruoyi.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.business.mapper.HwMonitorUnitMapper;
import com.ruoyi.business.domain.HwMonitorUnit;
import com.ruoyi.business.service.IHwMonitorUnitService;
/**
* Service
*
* @author YINQ
* @date 2023-08-31
*/
@Service
public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService
{
@Autowired
private HwMonitorUnitMapper hwMonitorUnitMapper;
/**
*
*
* @param monitorUnitId
* @return
*/
@Override
public HwMonitorUnit selectHwMonitorUnitByMonitorUnitId(Long monitorUnitId)
{
return hwMonitorUnitMapper.selectHwMonitorUnitByMonitorUnitId(monitorUnitId);
}
/**
*
*
* @param hwMonitorUnit
* @return
*/
@Override
public List<HwMonitorUnit> selectHwMonitorUnitList(HwMonitorUnit hwMonitorUnit)
{
return hwMonitorUnitMapper.selectHwMonitorUnitList(hwMonitorUnit);
}
/**
*
*
* @param hwMonitorUnit
* @return
*/
@Override
public int insertHwMonitorUnit(HwMonitorUnit hwMonitorUnit)
{
hwMonitorUnit.setCreateTime(DateUtils.getNowDate());
return hwMonitorUnitMapper.insertHwMonitorUnit(hwMonitorUnit);
}
/**
*
*
* @param hwMonitorUnit
* @return
*/
@Override
public int updateHwMonitorUnit(HwMonitorUnit hwMonitorUnit)
{
hwMonitorUnit.setUpdateTime(DateUtils.getNowDate());
return hwMonitorUnitMapper.updateHwMonitorUnit(hwMonitorUnit);
}
/**
*
*
* @param monitorUnitIds
* @return
*/
@Override
public int deleteHwMonitorUnitByMonitorUnitIds(Long[] monitorUnitIds)
{
return hwMonitorUnitMapper.deleteHwMonitorUnitByMonitorUnitIds(monitorUnitIds);
}
/**
*
*
* @param monitorUnitId
* @return
*/
@Override
public int deleteHwMonitorUnitByMonitorUnitId(Long monitorUnitId)
{
return hwMonitorUnitMapper.deleteHwMonitorUnitByMonitorUnitId(monitorUnitId);
}
}

@ -0,0 +1,96 @@
package com.ruoyi.business.service.impl;
import java.util.List;
import com.ruoyi.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.business.mapper.HwMonitorUnitTypeMapper;
import com.ruoyi.business.domain.HwMonitorUnitType;
import com.ruoyi.business.service.IHwMonitorUnitTypeService;
/**
* Service
*
* @author YINQ
* @date 2023-08-31
*/
@Service
public class HwMonitorUnitTypeServiceImpl implements IHwMonitorUnitTypeService
{
@Autowired
private HwMonitorUnitTypeMapper hwMonitorUnitTypeMapper;
/**
*
*
* @param monitorUnitTypeId
* @return
*/
@Override
public HwMonitorUnitType selectHwMonitorUnitTypeByMonitorUnitTypeId(Long monitorUnitTypeId)
{
return hwMonitorUnitTypeMapper.selectHwMonitorUnitTypeByMonitorUnitTypeId(monitorUnitTypeId);
}
/**
*
*
* @param hwMonitorUnitType
* @return
*/
@Override
public List<HwMonitorUnitType> selectHwMonitorUnitTypeList(HwMonitorUnitType hwMonitorUnitType)
{
return hwMonitorUnitTypeMapper.selectHwMonitorUnitTypeList(hwMonitorUnitType);
}
/**
*
*
* @param hwMonitorUnitType
* @return
*/
@Override
public int insertHwMonitorUnitType(HwMonitorUnitType hwMonitorUnitType)
{
hwMonitorUnitType.setCreateTime(DateUtils.getNowDate());
return hwMonitorUnitTypeMapper.insertHwMonitorUnitType(hwMonitorUnitType);
}
/**
*
*
* @param hwMonitorUnitType
* @return
*/
@Override
public int updateHwMonitorUnitType(HwMonitorUnitType hwMonitorUnitType)
{
hwMonitorUnitType.setUpdateTime(DateUtils.getNowDate());
return hwMonitorUnitTypeMapper.updateHwMonitorUnitType(hwMonitorUnitType);
}
/**
*
*
* @param monitorUnitTypeIds
* @return
*/
@Override
public int deleteHwMonitorUnitTypeByMonitorUnitTypeIds(Long[] monitorUnitTypeIds)
{
return hwMonitorUnitTypeMapper.deleteHwMonitorUnitTypeByMonitorUnitTypeIds(monitorUnitTypeIds);
}
/**
*
*
* @param monitorUnitTypeId
* @return
*/
@Override
public int deleteHwMonitorUnitTypeByMonitorUnitTypeId(Long monitorUnitTypeId)
{
return hwMonitorUnitTypeMapper.deleteHwMonitorUnitTypeByMonitorUnitTypeId(monitorUnitTypeId);
}
}

@ -0,0 +1,96 @@
package com.ruoyi.business.service.impl;
import java.util.List;
import com.ruoyi.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.business.mapper.HwSceneModeMapper;
import com.ruoyi.business.domain.HwSceneMode;
import com.ruoyi.business.service.IHwSceneModeService;
/**
* Service
*
* @author YINQ
* @date 2023-08-31
*/
@Service
public class HwSceneModeServiceImpl implements IHwSceneModeService
{
@Autowired
private HwSceneModeMapper hwSceneModeMapper;
/**
*
*
* @param sceneModeId
* @return
*/
@Override
public HwSceneMode selectHwSceneModeBySceneModeId(Long sceneModeId)
{
return hwSceneModeMapper.selectHwSceneModeBySceneModeId(sceneModeId);
}
/**
*
*
* @param hwSceneMode
* @return
*/
@Override
public List<HwSceneMode> selectHwSceneModeList(HwSceneMode hwSceneMode)
{
return hwSceneModeMapper.selectHwSceneModeList(hwSceneMode);
}
/**
*
*
* @param hwSceneMode
* @return
*/
@Override
public int insertHwSceneMode(HwSceneMode hwSceneMode)
{
hwSceneMode.setCreateTime(DateUtils.getNowDate());
return hwSceneModeMapper.insertHwSceneMode(hwSceneMode);
}
/**
*
*
* @param hwSceneMode
* @return
*/
@Override
public int updateHwSceneMode(HwSceneMode hwSceneMode)
{
hwSceneMode.setUpdateTime(DateUtils.getNowDate());
return hwSceneModeMapper.updateHwSceneMode(hwSceneMode);
}
/**
*
*
* @param sceneModeIds
* @return
*/
@Override
public int deleteHwSceneModeBySceneModeIds(Long[] sceneModeIds)
{
return hwSceneModeMapper.deleteHwSceneModeBySceneModeIds(sceneModeIds);
}
/**
*
*
* @param sceneModeId
* @return
*/
@Override
public int deleteHwSceneModeBySceneModeId(Long sceneModeId)
{
return hwSceneModeMapper.deleteHwSceneModeBySceneModeId(sceneModeId);
}
}

@ -0,0 +1,96 @@
package com.ruoyi.business.service.impl;
import java.util.List;
import com.ruoyi.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.business.mapper.HwTenantMapper;
import com.ruoyi.business.domain.HwTenant;
import com.ruoyi.business.service.IHwTenantService;
/**
* Service
*
* @author xins
* @date 2023-09-04
*/
@Service
public class HwTenantServiceImpl implements IHwTenantService
{
@Autowired
private HwTenantMapper hwTenantMapper;
/**
*
*
* @param tenantId
* @return
*/
@Override
public HwTenant selectHwTenantByTenantId(Long tenantId)
{
return hwTenantMapper.selectHwTenantByTenantId(tenantId);
}
/**
*
*
* @param hwTenant
* @return
*/
@Override
public List<HwTenant> selectHwTenantList(HwTenant hwTenant)
{
return hwTenantMapper.selectHwTenantList(hwTenant);
}
/**
*
*
* @param hwTenant
* @return
*/
@Override
public int insertHwTenant(HwTenant hwTenant)
{
hwTenant.setCreateTime(DateUtils.getNowDate());
return hwTenantMapper.insertHwTenant(hwTenant);
}
/**
*
*
* @param hwTenant
* @return
*/
@Override
public int updateHwTenant(HwTenant hwTenant)
{
hwTenant.setUpdateTime(DateUtils.getNowDate());
return hwTenantMapper.updateHwTenant(hwTenant);
}
/**
*
*
* @param tenantIds
* @return
*/
@Override
public int deleteHwTenantByTenantIds(Long[] tenantIds)
{
return hwTenantMapper.deleteHwTenantByTenantIds(tenantIds);
}
/**
*
*
* @param tenantId
* @return
*/
@Override
public int deleteHwTenantByTenantId(Long tenantId)
{
return hwTenantMapper.deleteHwTenantByTenantId(tenantId);
}
}

@ -0,0 +1,150 @@
<?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.ruoyi.business.mapper.HwDeviceModeFunctionMapper">
<resultMap type="HwDeviceModeFunction" id="HwDeviceModeFunctionResult">
<result property="modeFunctionId" column="mode_function_id" />
<result property="deviceModeId" column="device_mode_id" />
<result property="functionMode" column="function_mode" />
<result property="coordinate" column="coordinate" />
<result property="functionName" column="function_name" />
<result property="functionIdentifier" column="function_identifier" />
<result property="functionType" column="function_type" />
<result property="dataType" column="data_type" />
<result property="dataDefinition" column="data_definition" />
<result property="functionFormula" column="function_formula" />
<result property="propertyUnit" column="property_unit" />
<result property="displayFlag" column="display_flag" />
<result property="rwFlag" column="rw_flag" />
<result property="invokeMethod" column="invoke_method" />
<result property="eventType" column="event_type" />
<result property="remark" column="remark" />
<result property="acquisitionFormula" column="acquisition_formula" />
<result property="orderFlag" column="order_flag" />
<result property="deviceRegister" column="device_register" />
<result property="propertyStep" column="property_step" />
<result property="propertyField" column="property_field" />
</resultMap>
<sql id="selectHwDeviceModeFunctionVo">
select mode_function_id, device_mode_id, function_mode, coordinate, function_name, function_identifier, function_type, data_type, data_definition, function_formula, property_unit, display_flag, rw_flag, invoke_method, event_type, remark, acquisition_formula, order_flag, device_register, property_step, property_field from hw_device_mode_function
</sql>
<select id="selectHwDeviceModeFunctionList" parameterType="HwDeviceModeFunction" resultMap="HwDeviceModeFunctionResult">
<include refid="selectHwDeviceModeFunctionVo"/>
<where>
<if test="deviceModeId != null "> and device_mode_id = #{deviceModeId}</if>
<if test="functionMode != null and functionMode != ''"> and function_mode = #{functionMode}</if>
<if test="coordinate != null and coordinate != ''"> and coordinate = #{coordinate}</if>
<if test="functionName != null and functionName != ''"> and function_name like concat('%', #{functionName}, '%')</if>
<if test="functionIdentifier != null and functionIdentifier != ''"> and function_identifier = #{functionIdentifier}</if>
<if test="functionType != null and functionType != ''"> and function_type = #{functionType}</if>
<if test="dataType != null "> and data_type = #{dataType}</if>
<if test="dataDefinition != null and dataDefinition != ''"> and data_definition = #{dataDefinition}</if>
<if test="functionFormula != null and functionFormula != ''"> and function_formula = #{functionFormula}</if>
<if test="propertyUnit != null and propertyUnit != ''"> and property_unit = #{propertyUnit}</if>
<if test="displayFlag != null and displayFlag != ''"> and display_flag = #{displayFlag}</if>
<if test="rwFlag != null and rwFlag != ''"> and rw_flag = #{rwFlag}</if>
<if test="invokeMethod != null and invokeMethod != ''"> and invoke_method = #{invokeMethod}</if>
<if test="eventType != null and eventType != ''"> and event_type = #{eventType}</if>
<if test="acquisitionFormula != null and acquisitionFormula != ''"> and acquisition_formula = #{acquisitionFormula}</if>
<if test="orderFlag != null "> and order_flag = #{orderFlag}</if>
<if test="deviceRegister != null and deviceRegister != ''"> and device_register = #{deviceRegister}</if>
<if test="propertyStep != null "> and property_step = #{propertyStep}</if>
<if test="propertyField != null and propertyField != ''"> and property_field = #{propertyField}</if>
</where>
</select>
<select id="selectHwDeviceModeFunctionByModeFunctionId" parameterType="Long" resultMap="HwDeviceModeFunctionResult">
<include refid="selectHwDeviceModeFunctionVo"/>
where mode_function_id = #{modeFunctionId}
</select>
<insert id="insertHwDeviceModeFunction" parameterType="HwDeviceModeFunction" useGeneratedKeys="true" keyProperty="modeFunctionId">
insert into hw_device_mode_function
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="deviceModeId != null">device_mode_id,</if>
<if test="functionMode != null and functionMode != ''">function_mode,</if>
<if test="coordinate != null">coordinate,</if>
<if test="functionName != null and functionName != ''">function_name,</if>
<if test="functionIdentifier != null and functionIdentifier != ''">function_identifier,</if>
<if test="functionType != null">function_type,</if>
<if test="dataType != null">data_type,</if>
<if test="dataDefinition != null">data_definition,</if>
<if test="functionFormula != null">function_formula,</if>
<if test="propertyUnit != null">property_unit,</if>
<if test="displayFlag != null">display_flag,</if>
<if test="rwFlag != null">rw_flag,</if>
<if test="invokeMethod != null">invoke_method,</if>
<if test="eventType != null">event_type,</if>
<if test="remark != null">remark,</if>
<if test="acquisitionFormula != null">acquisition_formula,</if>
<if test="orderFlag != null">order_flag,</if>
<if test="deviceRegister != null">device_register,</if>
<if test="propertyStep != null">property_step,</if>
<if test="propertyField != null">property_field,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="deviceModeId != null">#{deviceModeId},</if>
<if test="functionMode != null and functionMode != ''">#{functionMode},</if>
<if test="coordinate != null">#{coordinate},</if>
<if test="functionName != null and functionName != ''">#{functionName},</if>
<if test="functionIdentifier != null and functionIdentifier != ''">#{functionIdentifier},</if>
<if test="functionType != null">#{functionType},</if>
<if test="dataType != null">#{dataType},</if>
<if test="dataDefinition != null">#{dataDefinition},</if>
<if test="functionFormula != null">#{functionFormula},</if>
<if test="propertyUnit != null">#{propertyUnit},</if>
<if test="displayFlag != null">#{displayFlag},</if>
<if test="rwFlag != null">#{rwFlag},</if>
<if test="invokeMethod != null">#{invokeMethod},</if>
<if test="eventType != null">#{eventType},</if>
<if test="remark != null">#{remark},</if>
<if test="acquisitionFormula != null">#{acquisitionFormula},</if>
<if test="orderFlag != null">#{orderFlag},</if>
<if test="deviceRegister != null">#{deviceRegister},</if>
<if test="propertyStep != null">#{propertyStep},</if>
<if test="propertyField != null">#{propertyField},</if>
</trim>
</insert>
<update id="updateHwDeviceModeFunction" parameterType="HwDeviceModeFunction">
update hw_device_mode_function
<trim prefix="SET" suffixOverrides=",">
<if test="deviceModeId != null">device_mode_id = #{deviceModeId},</if>
<if test="functionMode != null and functionMode != ''">function_mode = #{functionMode},</if>
<if test="coordinate != null">coordinate = #{coordinate},</if>
<if test="functionName != null and functionName != ''">function_name = #{functionName},</if>
<if test="functionIdentifier != null and functionIdentifier != ''">function_identifier = #{functionIdentifier},</if>
<if test="functionType != null">function_type = #{functionType},</if>
<if test="dataType != null">data_type = #{dataType},</if>
<if test="dataDefinition != null">data_definition = #{dataDefinition},</if>
<if test="functionFormula != null">function_formula = #{functionFormula},</if>
<if test="propertyUnit != null">property_unit = #{propertyUnit},</if>
<if test="displayFlag != null">display_flag = #{displayFlag},</if>
<if test="rwFlag != null">rw_flag = #{rwFlag},</if>
<if test="invokeMethod != null">invoke_method = #{invokeMethod},</if>
<if test="eventType != null">event_type = #{eventType},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="acquisitionFormula != null">acquisition_formula = #{acquisitionFormula},</if>
<if test="orderFlag != null">order_flag = #{orderFlag},</if>
<if test="deviceRegister != null">device_register = #{deviceRegister},</if>
<if test="propertyStep != null">property_step = #{propertyStep},</if>
<if test="propertyField != null">property_field = #{propertyField},</if>
</trim>
where mode_function_id = #{modeFunctionId}
</update>
<delete id="deleteHwDeviceModeFunctionByModeFunctionId" parameterType="Long">
delete from hw_device_mode_function where mode_function_id = #{modeFunctionId}
</delete>
<delete id="deleteHwDeviceModeFunctionByModeFunctionIds" parameterType="String">
delete from hw_device_mode_function where mode_function_id in
<foreach item="modeFunctionId" collection="array" open="(" separator="," close=")">
#{modeFunctionId}
</foreach>
</delete>
</mapper>

@ -0,0 +1,175 @@
<?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.ruoyi.business.mapper.HwDeviceModeMapper">
<resultMap type="HwDeviceMode" id="HwDeviceModeResult">
<result property="deviceModeId" column="device_mode_id" />
<result property="deviceModeName" column="device_mode_name" />
<result property="tenantId" column="tenant_id" />
<result property="sceneId" column="scene_id" />
<result property="languageCode" column="language_code" />
<result property="gpsFlag" column="gps_flag" />
<result property="deviceModeStatus" column="device_mode_status" />
<result property="commonFlag" column="common_flag" />
<result property="modeClassfication" column="mode_classfication" />
<result property="deviceModePic" column="device_mode_pic" />
<result property="dataVerifyLevel" column="data_verify_level" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="deviceModeField" column="device_mode_field" />
</resultMap>
<resultMap id="HwDeviceModeHwDeviceModeFunctionResult" type="HwDeviceMode" extends="HwDeviceModeResult">
<collection property="hwDeviceModeFunctionList" notNullColumn="sub_mode_function_id" javaType="java.util.List" resultMap="HwDeviceModeFunctionResult" />
</resultMap>
<resultMap type="HwDeviceModeFunction" id="HwDeviceModeFunctionResult">
<result property="modeFunctionId" column="sub_mode_function_id" />
<result property="deviceModeId" column="sub_device_mode_id" />
<result property="functionMode" column="sub_function_mode" />
<result property="coordinate" column="sub_coordinate" />
<result property="functionName" column="sub_function_name" />
<result property="functionIdentifier" column="sub_function_identifier" />
<result property="functionType" column="sub_function_type" />
<result property="dataType" column="sub_data_type" />
<result property="dataDefinition" column="sub_data_definition" />
<result property="functionFormula" column="sub_function_formula" />
<result property="propertyUnit" column="sub_property_unit" />
<result property="displayFlag" column="sub_display_flag" />
<result property="rwFlag" column="sub_rw_flag" />
<result property="invokeMethod" column="sub_invoke_method" />
<result property="eventType" column="sub_event_type" />
<result property="remark" column="sub_remark" />
<result property="acquisitionFormula" column="sub_acquisition_formula" />
<result property="orderFlag" column="sub_order_flag" />
<result property="deviceRegister" column="sub_device_register" />
<result property="propertyStep" column="sub_property_step" />
<result property="propertyField" column="sub_property_field" />
</resultMap>
<sql id="selectHwDeviceModeVo">
select device_mode_id, device_mode_name, tenant_id, scene_id, language_code, gps_flag, device_mode_status, common_flag, mode_classfication, device_mode_pic, data_verify_level, remark, create_by, create_time, update_by, update_time, device_mode_field from hw_device_mode
</sql>
<select id="selectHwDeviceModeList" parameterType="HwDeviceMode" resultMap="HwDeviceModeResult">
<include refid="selectHwDeviceModeVo"/>
<where>
<if test="deviceModeName != null and deviceModeName != ''"> and device_mode_name like concat('%', #{deviceModeName}, '%')</if>
<if test="tenantId != null "> and tenant_id = #{tenantId}</if>
<if test="sceneId != null "> and scene_id = #{sceneId}</if>
<if test="languageCode != null and languageCode != ''"> and language_code = #{languageCode}</if>
<if test="gpsFlag != null and gpsFlag != ''"> and gps_flag = #{gpsFlag}</if>
<if test="deviceModeStatus != null and deviceModeStatus != ''"> and device_mode_status = #{deviceModeStatus}</if>
<if test="commonFlag != null and commonFlag != ''"> and common_flag = #{commonFlag}</if>
<if test="modeClassfication != null "> and mode_classfication = #{modeClassfication}</if>
<if test="deviceModePic != null and deviceModePic != ''"> and device_mode_pic = #{deviceModePic}</if>
<if test="dataVerifyLevel != null and dataVerifyLevel != ''"> and data_verify_level = #{dataVerifyLevel}</if>
<if test="deviceModeField != null and deviceModeField != ''"> and device_mode_field = #{deviceModeField}</if>
</where>
</select>
<select id="selectHwDeviceModeByDeviceModeId" parameterType="Long" resultMap="HwDeviceModeHwDeviceModeFunctionResult">
select a.device_mode_id, a.device_mode_name, a.tenant_id, a.scene_id, a.language_code, a.gps_flag, a.device_mode_status, a.common_flag, a.mode_classfication, a.device_mode_pic, a.data_verify_level, a.remark, a.create_by, a.create_time, a.update_by, a.update_time, a.device_mode_field,
b.mode_function_id as sub_mode_function_id, b.device_mode_id as sub_device_mode_id, b.function_mode as sub_function_mode, b.coordinate as sub_coordinate, b.function_name as sub_function_name, b.function_identifier as sub_function_identifier, b.function_type as sub_function_type, b.data_type as sub_data_type, b.data_definition as sub_data_definition, b.function_formula as sub_function_formula, b.property_unit as sub_property_unit, b.display_flag as sub_display_flag, b.rw_flag as sub_rw_flag, b.invoke_method as sub_invoke_method, b.event_type as sub_event_type, b.remark as sub_remark, b.acquisition_formula as sub_acquisition_formula, b.order_flag as sub_order_flag, b.device_register as sub_device_register, b.property_step as sub_property_step, b.property_field as sub_property_field
from hw_device_mode a
left join hw_device_mode_function b on b.device_mode_id = a.device_mode_id
where a.device_mode_id = #{deviceModeId}
</select>
<insert id="insertHwDeviceMode" parameterType="HwDeviceMode" useGeneratedKeys="true" keyProperty="deviceModeId">
insert into hw_device_mode
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="deviceModeName != null and deviceModeName != ''">device_mode_name,</if>
<if test="tenantId != null">tenant_id,</if>
<if test="sceneId != null">scene_id,</if>
<if test="languageCode != null">language_code,</if>
<if test="gpsFlag != null and gpsFlag != ''">gps_flag,</if>
<if test="deviceModeStatus != null and deviceModeStatus != ''">device_mode_status,</if>
<if test="commonFlag != null and commonFlag != ''">common_flag,</if>
<if test="modeClassfication != null">mode_classfication,</if>
<if test="deviceModePic != null">device_mode_pic,</if>
<if test="dataVerifyLevel != null">data_verify_level,</if>
<if test="remark != null">remark,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="deviceModeField != null">device_mode_field,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="deviceModeName != null and deviceModeName != ''">#{deviceModeName},</if>
<if test="tenantId != null">#{tenantId},</if>
<if test="sceneId != null">#{sceneId},</if>
<if test="languageCode != null">#{languageCode},</if>
<if test="gpsFlag != null and gpsFlag != ''">#{gpsFlag},</if>
<if test="deviceModeStatus != null and deviceModeStatus != ''">#{deviceModeStatus},</if>
<if test="commonFlag != null and commonFlag != ''">#{commonFlag},</if>
<if test="modeClassfication != null">#{modeClassfication},</if>
<if test="deviceModePic != null">#{deviceModePic},</if>
<if test="dataVerifyLevel != null">#{dataVerifyLevel},</if>
<if test="remark != null">#{remark},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="deviceModeField != null">#{deviceModeField},</if>
</trim>
</insert>
<update id="updateHwDeviceMode" parameterType="HwDeviceMode">
update hw_device_mode
<trim prefix="SET" suffixOverrides=",">
<if test="deviceModeName != null and deviceModeName != ''">device_mode_name = #{deviceModeName},</if>
<if test="tenantId != null">tenant_id = #{tenantId},</if>
<if test="sceneId != null">scene_id = #{sceneId},</if>
<if test="languageCode != null">language_code = #{languageCode},</if>
<if test="gpsFlag != null and gpsFlag != ''">gps_flag = #{gpsFlag},</if>
<if test="deviceModeStatus != null and deviceModeStatus != ''">device_mode_status = #{deviceModeStatus},</if>
<if test="commonFlag != null and commonFlag != ''">common_flag = #{commonFlag},</if>
<if test="modeClassfication != null">mode_classfication = #{modeClassfication},</if>
<if test="deviceModePic != null">device_mode_pic = #{deviceModePic},</if>
<if test="dataVerifyLevel != null">data_verify_level = #{dataVerifyLevel},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="deviceModeField != null">device_mode_field = #{deviceModeField},</if>
</trim>
where device_mode_id = #{deviceModeId}
</update>
<delete id="deleteHwDeviceModeByDeviceModeId" parameterType="Long">
delete from hw_device_mode where device_mode_id = #{deviceModeId}
</delete>
<delete id="deleteHwDeviceModeByDeviceModeIds" parameterType="String">
delete from hw_device_mode where device_mode_id in
<foreach item="deviceModeId" collection="array" open="(" separator="," close=")">
#{deviceModeId}
</foreach>
</delete>
<delete id="deleteHwDeviceModeFunctionByDeviceModeIds" parameterType="String">
delete from hw_device_mode_function where device_mode_id in
<foreach item="deviceModeId" collection="array" open="(" separator="," close=")">
#{deviceModeId}
</foreach>
</delete>
<delete id="deleteHwDeviceModeFunctionByDeviceModeId" parameterType="Long">
delete from hw_device_mode_function where device_mode_id = #{deviceModeId}
</delete>
<insert id="batchHwDeviceModeFunction">
insert into hw_device_mode_function( mode_function_id, device_mode_id, function_mode, coordinate, function_name, function_identifier, function_type, data_type, data_definition, function_formula, property_unit, display_flag, rw_flag, invoke_method, event_type, remark, acquisition_formula, order_flag, device_register, property_step, property_field) values
<foreach item="item" index="index" collection="list" separator=",">
( #{item.modeFunctionId}, #{item.deviceModeId}, #{item.functionMode}, #{item.coordinate}, #{item.functionName}, #{item.functionIdentifier}, #{item.functionType}, #{item.dataType}, #{item.dataDefinition}, #{item.functionFormula}, #{item.propertyUnit}, #{item.displayFlag}, #{item.rwFlag}, #{item.invokeMethod}, #{item.eventType}, #{item.remark}, #{item.acquisitionFormula}, #{item.orderFlag}, #{item.deviceRegister}, #{item.propertyStep}, #{item.propertyField})
</foreach>
</insert>
</mapper>

@ -0,0 +1,136 @@
<?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.ruoyi.business.mapper.HwElectronicFenceMapper">
<resultMap type="HwElectronicFence" id="HwElectronicFenceResult">
<result property="electronicFenceId" column="electronic_fence_id" />
<result property="electronicFenceName" column="electronic_fence_name" />
<result property="sceneId" column="scene_id" />
<result property="fenceType" column="fence_type" />
<result property="effectiveTimeFlag" column="effective_time_flag" />
<result property="timeZone" column="time_zone" />
<result property="effectiveTime" column="effective_time" />
<result property="triggerStatus" column="trigger_status" />
<result property="areaShapeFlag" column="area_shape_flag" />
<result property="areaRange" column="area_range" />
<result property="fencePushFlag" column="fence_push_flag" />
<result property="fencePushContent" column="fence_push_content" />
<result property="fenceRecoverContent" column="fence_recover_content" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="fenceField" column="fence_field" />
</resultMap>
<sql id="selectHwElectronicFenceVo">
select electronic_fence_id, electronic_fence_name, scene_id, fence_type, effective_time_flag, time_zone, effective_time, trigger_status, area_shape_flag, area_range, fence_push_flag, fence_push_content, fence_recover_content, remark, create_by, create_time, update_by, update_time, fence_field from hw_electronic_fence
</sql>
<select id="selectHwElectronicFenceList" parameterType="HwElectronicFence" resultMap="HwElectronicFenceResult">
<include refid="selectHwElectronicFenceVo"/>
<where>
<if test="electronicFenceName != null and electronicFenceName != ''"> and electronic_fence_name like concat('%', #{electronicFenceName}, '%')</if>
<if test="sceneId != null "> and scene_id = #{sceneId}</if>
<if test="fenceType != null and fenceType != ''"> and fence_type = #{fenceType}</if>
<if test="effectiveTimeFlag != null and effectiveTimeFlag != ''"> and effective_time_flag = #{effectiveTimeFlag}</if>
<if test="timeZone != null and timeZone != ''"> and time_zone = #{timeZone}</if>
<if test="effectiveTime != null and effectiveTime != ''"> and effective_time = #{effectiveTime}</if>
<if test="triggerStatus != null and triggerStatus != ''"> and trigger_status = #{triggerStatus}</if>
<if test="areaShapeFlag != null and areaShapeFlag != ''"> and area_shape_flag = #{areaShapeFlag}</if>
<if test="areaRange != null and areaRange != ''"> and area_range = #{areaRange}</if>
<if test="fencePushFlag != null and fencePushFlag != ''"> and fence_push_flag = #{fencePushFlag}</if>
<if test="fencePushContent != null and fencePushContent != ''"> and fence_push_content = #{fencePushContent}</if>
<if test="fenceRecoverContent != null and fenceRecoverContent != ''"> and fence_recover_content = #{fenceRecoverContent}</if>
<if test="fenceField != null and fenceField != ''"> and fence_field = #{fenceField}</if>
</where>
</select>
<select id="selectHwElectronicFenceByElectronicFenceId" parameterType="Long" resultMap="HwElectronicFenceResult">
<include refid="selectHwElectronicFenceVo"/>
where electronic_fence_id = #{electronicFenceId}
</select>
<insert id="insertHwElectronicFence" parameterType="HwElectronicFence" useGeneratedKeys="true" keyProperty="electronicFenceId">
insert into hw_electronic_fence
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="electronicFenceName != null and electronicFenceName != ''">electronic_fence_name,</if>
<if test="sceneId != null">scene_id,</if>
<if test="fenceType != null and fenceType != ''">fence_type,</if>
<if test="effectiveTimeFlag != null and effectiveTimeFlag != ''">effective_time_flag,</if>
<if test="timeZone != null">time_zone,</if>
<if test="effectiveTime != null and effectiveTime != ''">effective_time,</if>
<if test="triggerStatus != null and triggerStatus != ''">trigger_status,</if>
<if test="areaShapeFlag != null and areaShapeFlag != ''">area_shape_flag,</if>
<if test="areaRange != null">area_range,</if>
<if test="fencePushFlag != null and fencePushFlag != ''">fence_push_flag,</if>
<if test="fencePushContent != null">fence_push_content,</if>
<if test="fenceRecoverContent != null">fence_recover_content,</if>
<if test="remark != null">remark,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="fenceField != null">fence_field,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="electronicFenceName != null and electronicFenceName != ''">#{electronicFenceName},</if>
<if test="sceneId != null">#{sceneId},</if>
<if test="fenceType != null and fenceType != ''">#{fenceType},</if>
<if test="effectiveTimeFlag != null and effectiveTimeFlag != ''">#{effectiveTimeFlag},</if>
<if test="timeZone != null">#{timeZone},</if>
<if test="effectiveTime != null and effectiveTime != ''">#{effectiveTime},</if>
<if test="triggerStatus != null and triggerStatus != ''">#{triggerStatus},</if>
<if test="areaShapeFlag != null and areaShapeFlag != ''">#{areaShapeFlag},</if>
<if test="areaRange != null">#{areaRange},</if>
<if test="fencePushFlag != null and fencePushFlag != ''">#{fencePushFlag},</if>
<if test="fencePushContent != null">#{fencePushContent},</if>
<if test="fenceRecoverContent != null">#{fenceRecoverContent},</if>
<if test="remark != null">#{remark},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="fenceField != null">#{fenceField},</if>
</trim>
</insert>
<update id="updateHwElectronicFence" parameterType="HwElectronicFence">
update hw_electronic_fence
<trim prefix="SET" suffixOverrides=",">
<if test="electronicFenceName != null and electronicFenceName != ''">electronic_fence_name = #{electronicFenceName},</if>
<if test="sceneId != null">scene_id = #{sceneId},</if>
<if test="fenceType != null and fenceType != ''">fence_type = #{fenceType},</if>
<if test="effectiveTimeFlag != null and effectiveTimeFlag != ''">effective_time_flag = #{effectiveTimeFlag},</if>
<if test="timeZone != null">time_zone = #{timeZone},</if>
<if test="effectiveTime != null and effectiveTime != ''">effective_time = #{effectiveTime},</if>
<if test="triggerStatus != null and triggerStatus != ''">trigger_status = #{triggerStatus},</if>
<if test="areaShapeFlag != null and areaShapeFlag != ''">area_shape_flag = #{areaShapeFlag},</if>
<if test="areaRange != null">area_range = #{areaRange},</if>
<if test="fencePushFlag != null and fencePushFlag != ''">fence_push_flag = #{fencePushFlag},</if>
<if test="fencePushContent != null">fence_push_content = #{fencePushContent},</if>
<if test="fenceRecoverContent != null">fence_recover_content = #{fenceRecoverContent},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="fenceField != null">fence_field = #{fenceField},</if>
</trim>
where electronic_fence_id = #{electronicFenceId}
</update>
<delete id="deleteHwElectronicFenceByElectronicFenceId" parameterType="Long">
delete from hw_electronic_fence where electronic_fence_id = #{electronicFenceId}
</delete>
<delete id="deleteHwElectronicFenceByElectronicFenceIds" parameterType="String">
delete from hw_electronic_fence where electronic_fence_id in
<foreach item="electronicFenceId" collection="array" open="(" separator="," close=")">
#{electronicFenceId}
</foreach>
</delete>
</mapper>

@ -0,0 +1,63 @@
<?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.ruoyi.business.mapper.HwFenceTargetMapper">
<resultMap type="HwFenceTarget" id="HwFenceTargetResult">
<result property="electronicFenceId" column="electronic_fence_id" />
<result property="targetType" column="target_type" />
<result property="targetId" column="target_id" />
</resultMap>
<sql id="selectHwFenceTargetVo">
select electronic_fence_id, target_type, target_id from hw_fence_target
</sql>
<select id="selectHwFenceTargetList" parameterType="HwFenceTarget" resultMap="HwFenceTargetResult">
<include refid="selectHwFenceTargetVo"/>
<where>
<if test="electronicFenceId != null "> and electronic_fence_id = #{electronicFenceId}</if>
<if test="targetType != null and targetType != ''"> and target_type = #{targetType}</if>
</where>
</select>
<select id="selectHwFenceTargetByTargetId" parameterType="Long" resultMap="HwFenceTargetResult">
<include refid="selectHwFenceTargetVo"/>
where target_id = #{targetId}
</select>
<insert id="insertHwFenceTarget" parameterType="HwFenceTarget">
insert into hw_fence_target
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="electronicFenceId != null">electronic_fence_id,</if>
<if test="targetType != null and targetType != ''">target_type,</if>
<if test="targetId != null">target_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="electronicFenceId != null">#{electronicFenceId},</if>
<if test="targetType != null and targetType != ''">#{targetType},</if>
<if test="targetId != null">#{targetId},</if>
</trim>
</insert>
<update id="updateHwFenceTarget" parameterType="HwFenceTarget">
update hw_fence_target
<trim prefix="SET" suffixOverrides=",">
<if test="electronicFenceId != null">electronic_fence_id = #{electronicFenceId},</if>
<if test="targetType != null and targetType != ''">target_type = #{targetType},</if>
</trim>
where target_id = #{targetId}
</update>
<delete id="deleteHwFenceTargetByTargetId" parameterType="Long">
delete from hw_fence_target where target_id = #{targetId}
</delete>
<delete id="deleteHwFenceTargetByTargetIds" parameterType="String">
delete from hw_fence_target where target_id in
<foreach item="targetId" collection="array" open="(" separator="," close=")">
#{targetId}
</foreach>
</delete>
</mapper>

@ -0,0 +1,121 @@
<?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.ruoyi.business.mapper.HwMonitorUnitMapper">
<resultMap type="HwMonitorUnit" id="HwMonitorUnitResult">
<result property="monitorUnitId" column="monitor_unit_id" />
<result property="monitorUnitName" column="monitor_unit_name" />
<result property="sceneId" column="scene_id" />
<result property="parentId" column="parent_id" />
<result property="monitorUnitTypeId" column="monitor_unit_type_id" />
<result property="areaId" column="area_id" />
<result property="monitorAddress" column="monitor_address" />
<result property="monitorPic" column="monitor_pic" />
<result property="preserveTime" column="preserve_time" />
<result property="remark" column="remark" />
<result property="monitorUnitStatus" column="monitor_unit_status" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="monitorUnitField" column="monitor_unit_field" />
</resultMap>
<sql id="selectHwMonitorUnitVo">
select monitor_unit_id, monitor_unit_name, scene_id, parent_id, monitor_unit_type_id, area_id, monitor_address, monitor_pic, preserve_time, remark, monitor_unit_status, create_by, create_time, update_by, update_time, monitor_unit_field from hw_monitor_unit
</sql>
<select id="selectHwMonitorUnitList" parameterType="HwMonitorUnit" resultMap="HwMonitorUnitResult">
<include refid="selectHwMonitorUnitVo"/>
<where>
<if test="monitorUnitName != null and monitorUnitName != ''"> and monitor_unit_name like concat('%', #{monitorUnitName}, '%')</if>
<if test="sceneId != null "> and scene_id = #{sceneId}</if>
<if test="parentId != null "> and parent_id = #{parentId}</if>
<if test="monitorUnitTypeId != null "> and monitor_unit_type_id = #{monitorUnitTypeId}</if>
<if test="areaId != null "> and area_id = #{areaId}</if>
<if test="monitorAddress != null and monitorAddress != ''"> and monitor_address = #{monitorAddress}</if>
<if test="monitorPic != null and monitorPic != ''"> and monitor_pic = #{monitorPic}</if>
<if test="preserveTime != null "> and preserve_time = #{preserveTime}</if>
<if test="monitorUnitStatus != null "> and monitor_unit_status = #{monitorUnitStatus}</if>
<if test="monitorUnitField != null and monitorUnitField != ''"> and monitor_unit_field = #{monitorUnitField}</if>
</where>
</select>
<select id="selectHwMonitorUnitByMonitorUnitId" parameterType="Long" resultMap="HwMonitorUnitResult">
<include refid="selectHwMonitorUnitVo"/>
where monitor_unit_id = #{monitorUnitId}
</select>
<insert id="insertHwMonitorUnit" parameterType="HwMonitorUnit" useGeneratedKeys="true" keyProperty="monitorUnitId">
insert into hw_monitor_unit
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="monitorUnitName != null and monitorUnitName != ''">monitor_unit_name,</if>
<if test="sceneId != null">scene_id,</if>
<if test="parentId != null">parent_id,</if>
<if test="monitorUnitTypeId != null">monitor_unit_type_id,</if>
<if test="areaId != null">area_id,</if>
<if test="monitorAddress != null">monitor_address,</if>
<if test="monitorPic != null">monitor_pic,</if>
<if test="preserveTime != null">preserve_time,</if>
<if test="remark != null">remark,</if>
<if test="monitorUnitStatus != null">monitor_unit_status,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="monitorUnitField != null">monitor_unit_field,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="monitorUnitName != null and monitorUnitName != ''">#{monitorUnitName},</if>
<if test="sceneId != null">#{sceneId},</if>
<if test="parentId != null">#{parentId},</if>
<if test="monitorUnitTypeId != null">#{monitorUnitTypeId},</if>
<if test="areaId != null">#{areaId},</if>
<if test="monitorAddress != null">#{monitorAddress},</if>
<if test="monitorPic != null">#{monitorPic},</if>
<if test="preserveTime != null">#{preserveTime},</if>
<if test="remark != null">#{remark},</if>
<if test="monitorUnitStatus != null">#{monitorUnitStatus},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="monitorUnitField != null">#{monitorUnitField},</if>
</trim>
</insert>
<update id="updateHwMonitorUnit" parameterType="HwMonitorUnit">
update hw_monitor_unit
<trim prefix="SET" suffixOverrides=",">
<if test="monitorUnitName != null and monitorUnitName != ''">monitor_unit_name = #{monitorUnitName},</if>
<if test="sceneId != null">scene_id = #{sceneId},</if>
<if test="parentId != null">parent_id = #{parentId},</if>
<if test="monitorUnitTypeId != null">monitor_unit_type_id = #{monitorUnitTypeId},</if>
<if test="areaId != null">area_id = #{areaId},</if>
<if test="monitorAddress != null">monitor_address = #{monitorAddress},</if>
<if test="monitorPic != null">monitor_pic = #{monitorPic},</if>
<if test="preserveTime != null">preserve_time = #{preserveTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="monitorUnitStatus != null">monitor_unit_status = #{monitorUnitStatus},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="monitorUnitField != null">monitor_unit_field = #{monitorUnitField},</if>
</trim>
where monitor_unit_id = #{monitorUnitId}
</update>
<delete id="deleteHwMonitorUnitByMonitorUnitId" parameterType="Long">
delete from hw_monitor_unit where monitor_unit_id = #{monitorUnitId}
</delete>
<delete id="deleteHwMonitorUnitByMonitorUnitIds" parameterType="String">
delete from hw_monitor_unit where monitor_unit_id in
<foreach item="monitorUnitId" collection="array" open="(" separator="," close=")">
#{monitorUnitId}
</foreach>
</delete>
</mapper>

@ -0,0 +1,111 @@
<?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.ruoyi.business.mapper.HwMonitorUnitTypeMapper">
<resultMap type="HwMonitorUnitType" id="HwMonitorUnitTypeResult">
<result property="monitorUnitTypeId" column="monitor_unit_type_id" />
<result property="monitorUnitTypeName" column="monitor_unit_type_name" />
<result property="vitualFlag" column="vitual_flag" />
<result property="monitorUnitTypeStatus" column="monitor_unit_type_status" />
<result property="languageCode" column="language_code" />
<result property="commonFlag" column="common_flag" />
<result property="sceneId" column="scene_id" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="unitTypeIcon" column="unit_type_icon" />
<result property="unitTypeField" column="unit_type_field" />
</resultMap>
<sql id="selectHwMonitorUnitTypeVo">
select monitor_unit_type_id, monitor_unit_type_name, vitual_flag, monitor_unit_type_status, language_code, common_flag, scene_id, remark, create_by, create_time, update_by, update_time, unit_type_icon, unit_type_field from hw_monitor_unit_type
</sql>
<select id="selectHwMonitorUnitTypeList" parameterType="HwMonitorUnitType" resultMap="HwMonitorUnitTypeResult">
<include refid="selectHwMonitorUnitTypeVo"/>
<where>
<if test="monitorUnitTypeName != null and monitorUnitTypeName != ''"> and monitor_unit_type_name like concat('%', #{monitorUnitTypeName}, '%')</if>
<if test="vitualFlag != null and vitualFlag != ''"> and vitual_flag = #{vitualFlag}</if>
<if test="monitorUnitTypeStatus != null and monitorUnitTypeStatus != ''"> and monitor_unit_type_status = #{monitorUnitTypeStatus}</if>
<if test="languageCode != null and languageCode != ''"> and language_code = #{languageCode}</if>
<if test="commonFlag != null and commonFlag != ''"> and common_flag = #{commonFlag}</if>
<if test="sceneId != null "> and scene_id = #{sceneId}</if>
<if test="unitTypeIcon != null and unitTypeIcon != ''"> and unit_type_icon = #{unitTypeIcon}</if>
<if test="unitTypeField != null and unitTypeField != ''"> and unit_type_field = #{unitTypeField}</if>
</where>
</select>
<select id="selectHwMonitorUnitTypeByMonitorUnitTypeId" parameterType="Long" resultMap="HwMonitorUnitTypeResult">
<include refid="selectHwMonitorUnitTypeVo"/>
where monitor_unit_type_id = #{monitorUnitTypeId}
</select>
<insert id="insertHwMonitorUnitType" parameterType="HwMonitorUnitType" useGeneratedKeys="true" keyProperty="monitorUnitTypeId">
insert into hw_monitor_unit_type
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="monitorUnitTypeName != null and monitorUnitTypeName != ''">monitor_unit_type_name,</if>
<if test="vitualFlag != null and vitualFlag != ''">vitual_flag,</if>
<if test="monitorUnitTypeStatus != null and monitorUnitTypeStatus != ''">monitor_unit_type_status,</if>
<if test="languageCode != null">language_code,</if>
<if test="commonFlag != null and commonFlag != ''">common_flag,</if>
<if test="sceneId != null">scene_id,</if>
<if test="remark != null">remark,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="unitTypeIcon != null">unit_type_icon,</if>
<if test="unitTypeField != null">unit_type_field,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="monitorUnitTypeName != null and monitorUnitTypeName != ''">#{monitorUnitTypeName},</if>
<if test="vitualFlag != null and vitualFlag != ''">#{vitualFlag},</if>
<if test="monitorUnitTypeStatus != null and monitorUnitTypeStatus != ''">#{monitorUnitTypeStatus},</if>
<if test="languageCode != null">#{languageCode},</if>
<if test="commonFlag != null and commonFlag != ''">#{commonFlag},</if>
<if test="sceneId != null">#{sceneId},</if>
<if test="remark != null">#{remark},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="unitTypeIcon != null">#{unitTypeIcon},</if>
<if test="unitTypeField != null">#{unitTypeField},</if>
</trim>
</insert>
<update id="updateHwMonitorUnitType" parameterType="HwMonitorUnitType">
update hw_monitor_unit_type
<trim prefix="SET" suffixOverrides=",">
<if test="monitorUnitTypeName != null and monitorUnitTypeName != ''">monitor_unit_type_name = #{monitorUnitTypeName},</if>
<if test="vitualFlag != null and vitualFlag != ''">vitual_flag = #{vitualFlag},</if>
<if test="monitorUnitTypeStatus != null and monitorUnitTypeStatus != ''">monitor_unit_type_status = #{monitorUnitTypeStatus},</if>
<if test="languageCode != null">language_code = #{languageCode},</if>
<if test="commonFlag != null and commonFlag != ''">common_flag = #{commonFlag},</if>
<if test="sceneId != null">scene_id = #{sceneId},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="unitTypeIcon != null">unit_type_icon = #{unitTypeIcon},</if>
<if test="unitTypeField != null">unit_type_field = #{unitTypeField},</if>
</trim>
where monitor_unit_type_id = #{monitorUnitTypeId}
</update>
<delete id="deleteHwMonitorUnitTypeByMonitorUnitTypeId" parameterType="Long">
delete from hw_monitor_unit_type where monitor_unit_type_id = #{monitorUnitTypeId}
</delete>
<delete id="deleteHwMonitorUnitTypeByMonitorUnitTypeIds" parameterType="String">
delete from hw_monitor_unit_type where monitor_unit_type_id in
<foreach item="monitorUnitTypeId" collection="array" open="(" separator="," close=")">
#{monitorUnitTypeId}
</foreach>
</delete>
</mapper>

@ -0,0 +1,101 @@
<?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.ruoyi.business.mapper.HwSceneModeMapper">
<resultMap type="HwSceneMode" id="HwSceneModeResult">
<result property="sceneModeId" column="scene_mode_id" />
<result property="sceneModeName" column="scene_mode_name" />
<result property="customFlag" column="custom_flag" />
<result property="tenantId" column="tenant_id" />
<result property="languageCode" column="language_code" />
<result property="remark" column="remark" />
<result property="sceneModeStatus" column="scene_mode_status" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="sceneModeField" column="scene_mode_field" />
</resultMap>
<sql id="selectHwSceneModeVo">
select scene_mode_id, scene_mode_name, custom_flag, tenant_id, language_code, remark, scene_mode_status, create_by, create_time, update_by, update_time, scene_mode_field from hw_scene_mode
</sql>
<select id="selectHwSceneModeList" parameterType="HwSceneMode" resultMap="HwSceneModeResult">
<include refid="selectHwSceneModeVo"/>
<where>
<if test="sceneModeName != null and sceneModeName != ''"> and scene_mode_name like concat('%', #{sceneModeName}, '%')</if>
<if test="customFlag != null "> and custom_flag = #{customFlag}</if>
<if test="tenantId != null "> and tenant_id = #{tenantId}</if>
<if test="languageCode != null and languageCode != ''"> and language_code = #{languageCode}</if>
<if test="sceneModeStatus != null "> and scene_mode_status = #{sceneModeStatus}</if>
<if test="sceneModeField != null and sceneModeField != ''"> and scene_mode_field = #{sceneModeField}</if>
</where>
</select>
<select id="selectHwSceneModeBySceneModeId" parameterType="Long" resultMap="HwSceneModeResult">
<include refid="selectHwSceneModeVo"/>
where scene_mode_id = #{sceneModeId}
</select>
<insert id="insertHwSceneMode" parameterType="HwSceneMode" useGeneratedKeys="true" keyProperty="sceneModeId">
insert into hw_scene_mode
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="sceneModeName != null and sceneModeName != ''">scene_mode_name,</if>
<if test="customFlag != null">custom_flag,</if>
<if test="tenantId != null">tenant_id,</if>
<if test="languageCode != null and languageCode != ''">language_code,</if>
<if test="remark != null">remark,</if>
<if test="sceneModeStatus != null">scene_mode_status,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="sceneModeField != null">scene_mode_field,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="sceneModeName != null and sceneModeName != ''">#{sceneModeName},</if>
<if test="customFlag != null">#{customFlag},</if>
<if test="tenantId != null">#{tenantId},</if>
<if test="languageCode != null and languageCode != ''">#{languageCode},</if>
<if test="remark != null">#{remark},</if>
<if test="sceneModeStatus != null">#{sceneModeStatus},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="sceneModeField != null">#{sceneModeField},</if>
</trim>
</insert>
<update id="updateHwSceneMode" parameterType="HwSceneMode">
update hw_scene_mode
<trim prefix="SET" suffixOverrides=",">
<if test="sceneModeName != null and sceneModeName != ''">scene_mode_name = #{sceneModeName},</if>
<if test="customFlag != null">custom_flag = #{customFlag},</if>
<if test="tenantId != null">tenant_id = #{tenantId},</if>
<if test="languageCode != null and languageCode != ''">language_code = #{languageCode},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="sceneModeStatus != null">scene_mode_status = #{sceneModeStatus},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="sceneModeField != null">scene_mode_field = #{sceneModeField},</if>
</trim>
where scene_mode_id = #{sceneModeId}
</update>
<delete id="deleteHwSceneModeBySceneModeId" parameterType="Long">
delete from hw_scene_mode where scene_mode_id = #{sceneModeId}
</delete>
<delete id="deleteHwSceneModeBySceneModeIds" parameterType="String">
delete from hw_scene_mode where scene_mode_id in
<foreach item="sceneModeId" collection="array" open="(" separator="," close=")">
#{sceneModeId}
</foreach>
</delete>
</mapper>

@ -0,0 +1,131 @@
<?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.ruoyi.business.mapper.HwTenantMapper">
<resultMap type="HwTenant" id="HwTenantResult">
<result property="tenantId" column="tenant_id" />
<result property="tenantType" column="tenant_type" />
<result property="tenantName" column="tenant_name" />
<result property="tenantIndustry" column="tenant_industry" />
<result property="contactName" column="contact_name" />
<result property="contactPhone" column="contact_phone" />
<result property="email" column="email" />
<result property="areaId" column="area_id" />
<result property="contactAddress" column="contact_address" />
<result property="remark" column="remark" />
<result property="tenantStatus" column="tenant_status" />
<result property="isRegister" column="is_register" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="tenantGrade" column="tenant_grade" />
<result property="tenantField" column="tenant_field" />
</resultMap>
<sql id="selectHwTenantVo">
select tenant_id, tenant_type, tenant_name, tenant_industry, contact_name, contact_phone, email, area_id, contact_address, remark, tenant_status, is_register, create_by, create_time, update_by, update_time, tenant_grade, tenant_field from hw_tenant
</sql>
<select id="selectHwTenantList" parameterType="HwTenant" resultMap="HwTenantResult">
<include refid="selectHwTenantVo"/>
<where>
<if test="tenantType != null and tenantType != ''"> and tenant_type = #{tenantType}</if>
<if test="tenantName != null and tenantName != ''"> and tenant_name like concat('%', #{tenantName}, '%')</if>
<if test="tenantIndustry != null "> and tenant_industry = #{tenantIndustry}</if>
<if test="contactName != null and contactName != ''"> and contact_name like concat('%', #{contactName}, '%')</if>
<if test="contactPhone != null and contactPhone != ''"> and contact_phone = #{contactPhone}</if>
<if test="email != null and email != ''"> and email = #{email}</if>
<if test="areaId != null "> and area_id = #{areaId}</if>
<if test="contactAddress != null and contactAddress != ''"> and contact_address = #{contactAddress}</if>
<if test="tenantStatus != null and tenantStatus != ''"> and tenant_status = #{tenantStatus}</if>
<if test="isRegister != null and isRegister != ''"> and is_register = #{isRegister}</if>
<if test="tenantGrade != null "> and tenant_grade = #{tenantGrade}</if>
<if test="tenantField != null and tenantField != ''"> and tenant_field = #{tenantField}</if>
</where>
</select>
<select id="selectHwTenantByTenantId" parameterType="Long" resultMap="HwTenantResult">
<include refid="selectHwTenantVo"/>
where tenant_id = #{tenantId}
</select>
<insert id="insertHwTenant" parameterType="HwTenant" useGeneratedKeys="true" keyProperty="tenantId">
insert into hw_tenant
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="tenantType != null and tenantType != ''">tenant_type,</if>
<if test="tenantName != null and tenantName != ''">tenant_name,</if>
<if test="tenantIndustry != null">tenant_industry,</if>
<if test="contactName != null and contactName != ''">contact_name,</if>
<if test="contactPhone != null and contactPhone != ''">contact_phone,</if>
<if test="email != null">email,</if>
<if test="areaId != null">area_id,</if>
<if test="contactAddress != null">contact_address,</if>
<if test="remark != null">remark,</if>
<if test="tenantStatus != null and tenantStatus != ''">tenant_status,</if>
<if test="isRegister != null and isRegister != ''">is_register,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="tenantGrade != null">tenant_grade,</if>
<if test="tenantField != null">tenant_field,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="tenantType != null and tenantType != ''">#{tenantType},</if>
<if test="tenantName != null and tenantName != ''">#{tenantName},</if>
<if test="tenantIndustry != null">#{tenantIndustry},</if>
<if test="contactName != null and contactName != ''">#{contactName},</if>
<if test="contactPhone != null and contactPhone != ''">#{contactPhone},</if>
<if test="email != null">#{email},</if>
<if test="areaId != null">#{areaId},</if>
<if test="contactAddress != null">#{contactAddress},</if>
<if test="remark != null">#{remark},</if>
<if test="tenantStatus != null and tenantStatus != ''">#{tenantStatus},</if>
<if test="isRegister != null and isRegister != ''">#{isRegister},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="tenantGrade != null">#{tenantGrade},</if>
<if test="tenantField != null">#{tenantField},</if>
</trim>
</insert>
<update id="updateHwTenant" parameterType="HwTenant">
update hw_tenant
<trim prefix="SET" suffixOverrides=",">
<if test="tenantType != null and tenantType != ''">tenant_type = #{tenantType},</if>
<if test="tenantName != null and tenantName != ''">tenant_name = #{tenantName},</if>
<if test="tenantIndustry != null">tenant_industry = #{tenantIndustry},</if>
<if test="contactName != null and contactName != ''">contact_name = #{contactName},</if>
<if test="contactPhone != null and contactPhone != ''">contact_phone = #{contactPhone},</if>
<if test="email != null">email = #{email},</if>
<if test="areaId != null">area_id = #{areaId},</if>
<if test="contactAddress != null">contact_address = #{contactAddress},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="tenantStatus != null and tenantStatus != ''">tenant_status = #{tenantStatus},</if>
<if test="isRegister != null and isRegister != ''">is_register = #{isRegister},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="tenantGrade != null">tenant_grade = #{tenantGrade},</if>
<if test="tenantField != null">tenant_field = #{tenantField},</if>
</trim>
where tenant_id = #{tenantId}
</update>
<delete id="deleteHwTenantByTenantId" parameterType="Long">
delete from hw_tenant where tenant_id = #{tenantId}
</delete>
<delete id="deleteHwTenantByTenantIds" parameterType="String">
delete from hw_tenant where tenant_id in
<foreach item="tenantId" collection="array" open="(" separator="," close=")">
#{tenantId}
</foreach>
</delete>
</mapper>

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-modules</artifactId>
<version>3.6.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ruoyi-modules-dataprocess</artifactId>
<description>
ruoyi-modules-dataprocess数据处理模块
</description>
<dependencies>
<!-- SpringCloud Alibaba Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- SpringCloud Alibaba Nacos Config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- SpringCloud Alibaba Sentinel -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<!-- SpringBoot Actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- Swagger UI -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.fox.version}</version>
</dependency>
<!-- Mysql Connector -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
<!-- RuoYi Common DataSource -->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common-datasource</artifactId>
</dependency>
<!-- RuoYi Common DataScope -->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common-datascope</artifactId>
</dependency>
<!-- RuoYi Common Log -->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common-log</artifactId>
</dependency>
<!-- RuoYi Common Swagger -->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common-swagger</artifactId>
</dependency>
<!--Mica-Mqtt-->
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-mqtt-client-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<!-- HW API TDENGINE-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>hw-api-tdengine</artifactId>
</dependency>
<dependency>
<groupId>org.locationtech.jts</groupId>
<artifactId>jts-core</artifactId>
<version>1.19.0</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

@ -0,0 +1,34 @@
package com.ruoyi.dataprocess;
import com.ruoyi.common.security.annotation.EnableCustomConfig;
import com.ruoyi.common.security.annotation.EnableRyFeignClients;
import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
*
*
* @author xins
*/
@EnableCustomConfig
@EnableCustomSwagger2
@EnableRyFeignClients
@SpringBootApplication
public class HwDataProcessApplication
{
public static void main(String[] args)
{
SpringApplication.run(HwDataProcessApplication.class, args);
System.out.println("(♥◠‿◠)ノ゙ 数据处理模块启动成功 ლ(´ڡ`ლ)゙ \n" +
" .-------. ____ __ \n" +
" | _ _ \\ \\ \\ / / \n" +
" | ( ' ) | \\ _. / ' \n" +
" |(_ o _) / _( )_ .' \n" +
" | (_,_).' __ ___(_ o _)' \n" +
" | |\\ \\ | || |(_,_)' \n" +
" | | \\ `' /| `-' / \n" +
" | | \\ / \\ / \n" +
" ''-' `'-' `-..-' ");
}
}

@ -0,0 +1,46 @@
package com.ruoyi.dataprocess.amap;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* @Description: list
* @ClassName: LocationVo
* @Author : xins
* @Date :2023-09-02 11:22
* @Version :1.0
*/
@Data
public class LocationVo implements Serializable {
private static final long serialVersionUID = 1L;
public static final int MARKER_TYPE_POLYGON = 1;//多边形
public static final int MARKER_TYPE_CIRCULAR = 2;//圆形
//经度
private Double longitude;
//纬度
private Double latitude;
/**
*
*/
// @ApiModelProperty(value = "半径")
private Double radius;
/**
* 12
*/
// @ApiModelProperty(value = "标记类型1圆2多边形")
private int markerType;
/**
*
*/
private List<List<PositionVo>> polygonList;
}

@ -0,0 +1,185 @@
package com.ruoyi.dataprocess.amap;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.GeometryFactory;
import org.locationtech.jts.geom.Point;
import org.locationtech.jts.geom.Polygon;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
public class PositionUtils {
/**
* @return boolean
* @param: locationVo
* @param: lng
* @param: lat
* @description LocationVo
* @author xins
* @date 2023-09-02 12:47
*/
public static boolean checkAddressInLocation(LocationVo locationVo, Double lng, Double lat) {
if (locationVo == null) {
return false;
}
if (lng != null && lat != null && lng.compareTo(0.000000000000) > 0 && lat.compareTo(0.000000000000) > 0) {
if (locationVo.getMarkerType() == LocationVo.MARKER_TYPE_CIRCULAR) {//如果是圆
double distance = calculateLineDistance(lng,lat,locationVo.getLongitude(), locationVo.getLatitude());
System.out.println("dis:"+distance);
return (distance - locationVo.getRadius()) <=0;
} else if (locationVo.getMarkerType() == LocationVo.MARKER_TYPE_POLYGON) {
//多个多边形点集合字符串
List<List<PositionVo>> coordinates = locationVo.getPolygonList();
if (coordinates == null || coordinates.isEmpty()) {
return false;
}
//可以传好几个多边形
for (List<PositionVo> positionVos : coordinates) {
Coordinate[] coordinates1 = new Coordinate[positionVos.size() + 1];
for (int i = 0; i < positionVos.size(); i++) {
BigDecimal longitudeB = positionVos.get(i).getLongitude();
BigDecimal latitudeB = positionVos.get(i).getLatitude();
if (longitudeB == null || latitudeB == null) {//数据异常
return false;
}
Double longitude = longitudeB.doubleValue();
Double latitude = latitudeB.doubleValue();
Coordinate coordinate = new Coordinate(longitude, latitude);
coordinates1[i] = coordinate;
}
//是起点也是终点
coordinates1[positionVos.size()] = new Coordinate(positionVos.get(0).getLongitude().doubleValue(),
positionVos.get(0).getLatitude().doubleValue());
if (isPointInPolygon(lat.doubleValue(), lng.doubleValue(), coordinates1)) {
return true;//只需要定位在其中一个的多边形范围内
}
}
return false;
}
return false;
} else {
return false;
}
}
// public static boolean checkWithinTheCircula(LocationVo circulaVo, Double lng, Double lat) {//判断点与圆心之间的距离和圆半径的关系
//
// System.out.println(lng.subtract(circulaVo.getLongitude()).doubleValue());
// System.out.println(lat.subtract(circulaVo.getLatitude()).doubleValue());
// double d2 = Math.hypot(lng.subtract(circulaVo.getLongitude()), lat.subtract(circulaVo.getLatitude()).doubleValue());
//
// System.out.println("d2==" + d2);
//
// double r = circulaVo.getRadius();
// //圆外
// if (d2 > r) {
// return false;
// } else {//圆内或圆上
// return true;
// }
// }
/**
*
* Android
*
* @param longitude
* @param latitude
* @param centerLon
* @param centerLat
* @return
*/
public static Double calculateLineDistance(double longitude, double latitude, double centerLon, double centerLat) {
if (longitude == 0 || latitude == 0 || centerLat == 0 || centerLon == 0) {
return -1.0;
}
longitude *= 0.01745329251994329;
latitude *= 0.01745329251994329;
centerLon *= 0.01745329251994329;
centerLat *= 0.01745329251994329;
double var10 = Math.sin(longitude);
double var12 = Math.sin(latitude);
double var14 = Math.cos(longitude);
double var16 = Math.cos(latitude);
double var18 = Math.sin(centerLon);
double var20 = Math.sin(centerLat);
double var22 = Math.cos(centerLon);
double var24 = Math.cos(centerLat);
double[] var28 = new double[3];
double[] var29 = new double[3];
var28[0] = var16 * var14;
var28[1] = var16 * var10;
var28[2] = var12;
var29[0] = var24 * var22;
var29[1] = var24 * var18;
var29[2] = var20;
double distance = Math.asin(Math.sqrt((var28[0] - var29[0]) * (var28[0] - var29[0]) + (var28[1] - var29[1]) * (var28[1] - var29[1]) + (var28[2] - var29[2]) * (var28[2] - var29[2])) / 2.0) * 1.27420015798544E7;
return distance;
}
/**
*
*
* @param latitude
* @param longitude
* @param polygonCoordinates
* @return
*/
public static boolean isPointInPolygon(double latitude, double longitude, Coordinate[] polygonCoordinates) {
GeometryFactory geometryFactory = new GeometryFactory();
Point point = geometryFactory.createPoint(new Coordinate(longitude, latitude));
Polygon polygon = geometryFactory.createPolygon(polygonCoordinates);
return polygon.touches(point) || polygon.contains(point);
}
public static void main(String[] args) {
LocationVo locationVo = new LocationVo();
locationVo.setMarkerType(LocationVo.MARKER_TYPE_POLYGON);
List<List<PositionVo>> polygonList = new ArrayList<>();
List<PositionVo> postionList = new ArrayList<>();
//林和西地铁站
postionList.add(new PositionVo(new BigDecimal("113.323947"), new BigDecimal("23.141525")));
//五羊邨地铁站
postionList.add(new PositionVo(new BigDecimal(113.314119), new BigDecimal(23.119977)));
//体育中心南地铁站
postionList.add(new PositionVo(new BigDecimal(113.324247), new BigDecimal(23.134501)));
//猎德地铁站
postionList.add(new PositionVo(new BigDecimal(113.331972), new BigDecimal(23.118477)));
polygonList.add(postionList);
locationVo.setPolygonList(polygonList);
// boolean check1 = checkAddressInLocation(locationVo,new BigDecimal(113.323239),new BigDecimal(23.135428));
// System.out.println(check1);
// check1 = checkAddressInLocation(locationVo,new BigDecimal(113.321522),new BigDecimal(23.13381));
// System.out.println(check1);
// check1 = checkAddressInLocation(locationVo,new BigDecimal(113.324462),new BigDecimal(23.127002));
// System.out.println(check1);
// check1 = checkAddressInLocation(locationVo,new BigDecimal(113.324247),new BigDecimal(23.116188));
// System.out.println(check1);
// check1 = checkAddressInLocation(locationVo,new BigDecimal(113.319773),new BigDecimal(23.121664));
// System.out.println(check1);
// check1 = checkAddressInLocation(locationVo,new BigDecimal(113.307757),new BigDecimal(23.127249));
// System.out.println(check1);
LocationVo circulrVo = new LocationVo();
circulrVo.setRadius(9.0056);
circulrVo.setLongitude(116.404172);
circulrVo.setLatitude(39.916605);
circulrVo.setMarkerType(LocationVo.MARKER_TYPE_CIRCULAR);
boolean check2 = checkAddressInLocation(circulrVo, 116.404072, 39.916605);
System.out.println(check2);
}
}

@ -0,0 +1,24 @@
package com.ruoyi.dataprocess.amap;
import lombok.Data;
import java.math.BigDecimal;
/**
* @Description:
* @ClassName: PositionUtils.Postion
* @Author : xins
* @Date :2023-09-02 12:11
* @Version :1.0
*/
@Data
public class PositionVo{
private BigDecimal longitude;
private BigDecimal latitude;
public PositionVo(BigDecimal longitude, BigDecimal latitude) {
this.longitude = longitude;
this.latitude = latitude;
}
}

@ -0,0 +1,136 @@
package com.ruoyi.dataprocess.common;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* @Description:
* @ClassName: AmapUtils
* @Author : xins
* @Date :2023-09-02 11:13
* @Version :1.0
*/
public class AmapUtils {
public static class Poi{
private Double lat;
private Double lng;
public Poi(Double lng,Double lat){
this.lat = lat;
this.lng = lng;
}
}
/**
*
* @return
*/
public static BigDecimal getArea(List<Poi> ring){
double sJ = 6378137;
double Hq = 0.017453292519943295;
double c = sJ *Hq;
double d = 0;
if (3 > ring.size()) {
return new BigDecimal( 0);
}
for (int i = 0; i < ring.size() - 1; i ++){
Poi h = ring.get(i);
Poi k = ring.get(i + 1);
double u = h.lng * c * Math.cos(h.lat * Hq);
double hhh = h.lat * c;
double v = k.lng * c * Math.cos(k.lat *Hq);
d = d + (u * k.lat * c - v * hhh);
}
Poi g1 = ring.get(ring.size()-1);
Poi point = ring.get(0);
double eee = g1.lng * c * Math.cos(g1.lat * Hq);
double g2 = g1.lat * c;
double k = point.lng * c * Math.cos(point.lat * Hq);
d += eee * point.lat * c - k * g2;
return new BigDecimal( 0.5*Math.abs(d)).divide(new BigDecimal(1000000));
}
public static void main(String[] args) {
List<Poi> poiList = new ArrayList<Poi>();
//林和西地铁站
poiList.add(new Poi(113.323947,23.141525));
//五羊邨地铁站
poiList.add(new Poi(113.314119,23.119977));
//体育中心南地铁站
poiList.add(new Poi(113.324247,23.134501));
//猎德地铁站
poiList.add(new Poi(113.331972,23.118477));
BigDecimal area = getArea(poiList);
System.out.println( "面积:"+ area + "平方米" );
//天河体育馆
Poi inPoi = new Poi(113.323239,23.135428);
//天河路
Poi inPoi2 = new Poi(113.321522,23.13381);
//黄埔大道
Poi outPoi = new Poi(113.324462,23.127002);
// 大剧院
Poi outPoi2 = new Poi(113.324247,23.116188);
// 天河中学
Poi outPoi3 = new Poi(113.319773,23.121664);
// 杨箕地铁站
Poi outPoi4 = new Poi(113.307757,23.127249);
System.out.println("inPoi是否在圈内:" + IsPtInPoly(inPoi.lng,inPoi.lat,poiList) );
System.out.println("inPoi2是否在圈内:" + IsPtInPoly(inPoi2.lng,inPoi2.lat,poiList) );
System.out.println("outPoi是否在圈内:" + IsPtInPoly(outPoi.lng,outPoi.lat,poiList) );
System.out.println("outPoi2是否在圈内:" + IsPtInPoly(outPoi2.lng,outPoi2.lat,poiList) );
System.out.println("outPoi3是否在圈内:" + IsPtInPoly(outPoi3.lng,outPoi3.lat,poiList) );
System.out.println("outPoi4是否在圈内:" + IsPtInPoly(outPoi4.lng,outPoi4.lat,poiList) );
}
public static boolean IsPtInPoly(double ALon, double ALat, List<Poi> APoints)
{
int iSum = 0, iCount;
double dLon1, dLon2, dLat1, dLat2, dLon;
if (APoints.size() < 3)
return false;
iCount = APoints.size();
for (int i = 0; i < iCount - 1; i++)
{
if (i == iCount - 1)
{
dLon1 = APoints.get(i).lng;
dLat1 = APoints.get(i).lat;
dLon2 = APoints.get(0).lng;
dLat2 = APoints.get(0).lat;
}
else
{
dLon1 = APoints.get(i).lng;
dLat1 = APoints.get(i).lat;
dLon2 = APoints.get(i+1).lng;
dLat2 = APoints.get(i+1).lat;
}
//以下语句判断A点是否在边的两端点的水平平行线之间在则可能有交点开始判断交点是否在左射线上
if (((ALat >= dLat1) && (ALat < dLat2)) || ((ALat >= dLat2) && (ALat < dLat1)))
{
if (Math.abs(dLat1 - dLat2) > 0)
{
//得到 A点向左射线与边的交点的x坐标
dLon = dLon1 - ((dLon1 - dLon2) * (dLat1 - ALat)) / (dLat1 - dLat2);
// 如果交点在A点左侧说明是做射线与边的交点则射线与边的全部交点数加一
if (dLon < ALon)
iSum++;
}
}
}
if (iSum % 2 != 0)
return true;
return false;
}
}

@ -0,0 +1,155 @@
package com.ruoyi.dataprocess.common;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.uuid.UUID;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Base64;
import java.util.Date;
/**
* @Description:
* @ClassName: ImageUtils
* @Author : xins
* @Date :2023-09-04 15:57
* @Version :1.0
*/
public class ImageUtils {
public static final String BASE64_PREFIX = "data:image/";//base64图片前缀
public static final String BASE64_SUFFIX = ";base64";//base64图片后缀
/**
* @param imagePatternArr
* @return String
* @param: base64Str
* @description base64,
* @author xins
* @date 2023-09-04 16:05
*/
public static String getImageType(String base64Str, String[] imagePatternArr) {
for (String imagePattern : imagePatternArr) {
String base64Pattern = BASE64_PREFIX + imagePattern + BASE64_SUFFIX;
if (base64Str.indexOf(base64Pattern) > -1) {
return imagePattern;
}
}
return "";
}
/**
* @return String
* @param: imageFileName
* @description base64
* @author xins
* @date 2023-09-04 15:58
*/
public static String convertImageToBase64(String imageFileName) {
ByteArrayOutputStream baos = null;
try {
//获取图片类型
String suffix = imageFileName.substring(imageFileName.lastIndexOf(".") + 1);
//构建文件
File imageFile = new File(imageFileName);
//通过ImageIO把文件读取成BufferedImage对象
BufferedImage bufferedImage = ImageIO.read(imageFile);
//构建字节数组输出流
baos = new ByteArrayOutputStream();
//写入流
ImageIO.write(bufferedImage, suffix, baos);
//通过字节数组流获取字节数组
byte[] bytes = baos.toByteArray();
//获取JDK8里的编码器Base64.Encoder转为base64字符
return Base64.getEncoder().encodeToString(bytes);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (baos != null) {
baos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
/**
* @param: base64
* @param: imageFileName
* @description base64
* @author xins
* @date 2023-09-04 15:59
*/
public static String convertBase64ToImage(String base64Str, String imagePath, String imageType, Long deviceId) {
// 解密
try {
String fileName = UUID.randomUUID().toString().concat(".").concat(imageType);
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
Date date = new Date();
String dateStr = format.format(date);
String fullPath = imagePath + File.separator + deviceId
+ File.separator + dateStr;
File file = new File(fullPath);
if (!file.exists()) {
file.mkdirs();
}
// 去掉base64前缀 data:image/jpeg;base64,
String imageFileName = fullPath + File.separator + fileName;
base64Str = base64Str.substring(base64Str.indexOf(",", 1) + 1);
// 解密解密的结果是一个byte数组
Base64.Decoder decoder = Base64.getDecoder();
byte[] imgbytes = decoder.decode(base64Str);
for (int i = 0; i < imgbytes.length; ++i) {
if (imgbytes[i] < 0) {
imgbytes[i] += 256;
}
}
// 保存图片
OutputStream out = new FileOutputStream(imageFileName);
out.write(imgbytes);
out.flush();
out.close();
// 返回图片的相对路径 = 图片分类路径+图片名+图片后缀
return imageFileName;
} catch (IOException e) {
return null;
}
}
public static String getFileContent(FileInputStream fis, String encoding) throws IOException {
try (BufferedReader br = new BufferedReader(new InputStreamReader(fis, encoding))) {
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
}
return sb.toString();
}
}
public static void main(String[] args) throws IOException {
// 从txt文件中读取base64字符串
FileInputStream fis = new FileInputStream("e://base64test/base64test5.txt");
String base64Str = getFileContent(fis, "UTF-8");
String[] imagePatternArr = {"png", "jpg", "jpeg"};
String imageType = ImageUtils.getImageType(base64Str, imagePatternArr);
ImageUtils.convertBase64ToImage(base64Str,"images",imageType,2L);
// 将base64字符串翻译成图片
}
}

@ -0,0 +1,77 @@
package com.ruoyi.dataprocess.common;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Service;
@Service
public class SpringBeanUtils implements ApplicationContextAware, DisposableBean {
private static ApplicationContext applicationContext = null;
/**
* ApplicationContext.
*/
public static ApplicationContext getApplicationContext() {
assertContextInjected();
return applicationContext;
}
/**
* applicationContextBean, .
*/
@SuppressWarnings("unchecked")
public static <T> T getBean(String name) {
// log.debug("从SpringContextHolder中取出Bean:" + name);
assertContextInjected();
return (T) applicationContext.getBean(name);
}
/**
* applicationContextBean, .
*/
public static <T> T getBean(Class<T> requiredType) {
assertContextInjected();
return applicationContext.getBean(requiredType);
}
/**
* SpringContextHolderApplicationContextNull.
*/
public static void clearHolder() {
// log.debug("清除SpringContextHolder中的ApplicationContext:"
// + applicationContext);
applicationContext = null;
}
/**
* ApplicationContextAware, Context.
*/
@Override
public void setApplicationContext(ApplicationContext applicationContext) {
if (SpringBeanUtils.applicationContext != null) {
// log.warn("SpringContextHolder中的ApplicationContext被覆盖, 原有ApplicationContext为:" + SpringContextHolder.applicationContext);
}
SpringBeanUtils.applicationContext = applicationContext; // NOSONAR
}
/**
* DisposableBean, Context.
*/
@Override
public void destroy() throws Exception {
SpringBeanUtils.clearHolder();
}
/**
* ApplicationContext.
*/
private static void assertContextInjected() {
if (applicationContext == null) {
throw new IllegalStateException("applicaitonContext属性未注入, 请在applicationContext.xml中定义SpringBeanUtils.");
}
}
}

@ -0,0 +1,38 @@
package com.ruoyi.dataprocess.config;
import com.ruoyi.dataprocess.listener.RedisMessageListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.listener.PatternTopic;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import java.util.Arrays;
import java.util.List;
@Configuration
public class RedisMessageListenerConfig {
@Autowired
private RedisMessageListener redisMessageListener;
@Autowired
private RedisConnectionFactory redisConnectionFactory;
/**
*
*/
@Bean
public RedisMessageListenerContainer container() {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(redisConnectionFactory);
//订阅频道
List<PatternTopic> topicList = Arrays.asList(new PatternTopic("life.*"),new PatternTopic("*.life"));
container.addMessageListener(redisMessageListener, topicList);
return container;
}
}

@ -0,0 +1,257 @@
package com.ruoyi.dataprocess.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
/**
* hw_alarm_info
*
* @author xins
* @date 2023-09-04
*/
public class HwAlarmInfo extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 报警信息ID */
private Long alarmInfoId;
/** 报警信息类型1、设备报警2、监控单元报警3、离线报警4、电子围栏 */
@Excel(name = "报警信息类型", readConverterExp = "1=、设备报警2、监控单元报警3、离线报警4、电子围栏")
private String alarmInfoType;
/** 1alarm_rulealarm_rule_id
3hw_offline_ruleoffline_rule_id
4hw_electronic_fenceelectronic_fence_id */
@Excel(name = "报警信息类型是1关联表alarm_rule的字段alarm_rule_id" +
"报警信息类型是3关联表hw_offline_rule的字段offline_rule_id " +
"报警信息类型是4关联表hw_electronic_fence的字段electronic_fence_id。")
private Long alarmReleatedId;
/** 报警设备ID关联hw_device表的device_id字段 */
@Excel(name = "报警设备ID关联hw_device表的device_id字段")
private Long deviceId;
/** 所属监控单元Id关联表hw_monitor_unit字段monitor_unit_id */
@Excel(name = "所属监控单元Id关联表hw_monitor_unit字段monitor_unit_id")
private Long monitorUnitId;
/** 所属场景ID关联hw_scene的scene_id */
@Excel(name = "所属场景ID关联hw_scene的scene_id")
private Long sceneId;
/** 报警级别关联hw_alarm_level的字段alarm_level_id报警信息类型为1、2和3时保存 */
@Excel(name = "报警级别关联hw_alarm_level的字段alarm_level_id报警信息类型为1、2和3时保存")
private Long alarmLevelId;
/** 报警类型关联hw_alarm_type的字段alarm_type_id报警信息类型为1和2时保存 */
@Excel(name = "报警类型关联hw_alarm_type的字段alarm_type_id报警信息类型为1和2时保存")
private Long alarmTypeId;
/** 设备模型功能ID */
@Excel(name = "设备模型功能ID")
private Long modeFunctionId;
/** 功能名称 */
@Excel(name = "功能名称")
private String functionName;
/** 标识符 */
@Excel(name = "标识符")
private String functionIdentifier;
/** 最新的值如果是电子围栏则存经度_纬度 */
@Excel(name = "最新的值如果是电子围栏则存经度_纬度")
private String functionValue;
/** 触发状态1、出界2、入界3、双向报警信息类型为4时保存 */
@Excel(name = "触发状态", readConverterExp = "1=、出界2、入界3、双向")
private String triggerStatus;
/** 处理状态0、未处理 1、已处理 */
@Excel(name = "处理状态", readConverterExp = "0=、未处理,1=、已处理")
private String handleStatus;
/** 实际报警时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "实际报警时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date alarmTime;
/** 预留字段 */
@Excel(name = "预留字段")
private String alarmInfoField;
public void setAlarmInfoId(Long alarmInfoId)
{
this.alarmInfoId = alarmInfoId;
}
public Long getAlarmInfoId()
{
return alarmInfoId;
}
public void setAlarmInfoType(String alarmInfoType)
{
this.alarmInfoType = alarmInfoType;
}
public String getAlarmInfoType()
{
return alarmInfoType;
}
public void setAlarmReleatedId(Long alarmReleatedId)
{
this.alarmReleatedId = alarmReleatedId;
}
public Long getAlarmReleatedId()
{
return alarmReleatedId;
}
public void setDeviceId(Long deviceId)
{
this.deviceId = deviceId;
}
public Long getDeviceId()
{
return deviceId;
}
public void setMonitorUnitId(Long monitorUnitId)
{
this.monitorUnitId = monitorUnitId;
}
public Long getMonitorUnitId()
{
return monitorUnitId;
}
public void setSceneId(Long sceneId)
{
this.sceneId = sceneId;
}
public Long getSceneId()
{
return sceneId;
}
public void setAlarmLevelId(Long alarmLevelId)
{
this.alarmLevelId = alarmLevelId;
}
public Long getAlarmLevelId()
{
return alarmLevelId;
}
public void setAlarmTypeId(Long alarmTypeId)
{
this.alarmTypeId = alarmTypeId;
}
public Long getAlarmTypeId()
{
return alarmTypeId;
}
public void setModeFunctionId(Long modeFunctionId)
{
this.modeFunctionId = modeFunctionId;
}
public Long getModeFunctionId()
{
return modeFunctionId;
}
public void setFunctionName(String functionName)
{
this.functionName = functionName;
}
public String getFunctionName()
{
return functionName;
}
public void setFunctionIdentifier(String functionIdentifier)
{
this.functionIdentifier = functionIdentifier;
}
public String getFunctionIdentifier()
{
return functionIdentifier;
}
public void setFunctionValue(String functionValue)
{
this.functionValue = functionValue;
}
public String getFunctionValue()
{
return functionValue;
}
public void setTriggerStatus(String triggerStatus)
{
this.triggerStatus = triggerStatus;
}
public String getTriggerStatus()
{
return triggerStatus;
}
public void setHandleStatus(String handleStatus)
{
this.handleStatus = handleStatus;
}
public String getHandleStatus()
{
return handleStatus;
}
public void setAlarmTime(Date alarmTime)
{
this.alarmTime = alarmTime;
}
public Date getAlarmTime()
{
return alarmTime;
}
public void setAlarmInfoField(String alarmInfoField)
{
this.alarmInfoField = alarmInfoField;
}
public String getAlarmInfoField()
{
return alarmInfoField;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("alarmInfoId", getAlarmInfoId())
.append("alarmInfoType", getAlarmInfoType())
.append("alarmReleatedId", getAlarmReleatedId())
.append("deviceId", getDeviceId())
.append("monitorUnitId", getMonitorUnitId())
.append("sceneId", getSceneId())
.append("alarmLevelId", getAlarmLevelId())
.append("alarmTypeId", getAlarmTypeId())
.append("modeFunctionId", getModeFunctionId())
.append("functionName", getFunctionName())
.append("functionIdentifier", getFunctionIdentifier())
.append("functionValue", getFunctionValue())
.append("triggerStatus", getTriggerStatus())
.append("handleStatus", getHandleStatus())
.append("alarmTime", getAlarmTime())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("alarmInfoField", getAlarmInfoField())
.toString();
}
}

@ -0,0 +1,341 @@
package com.ruoyi.dataprocess.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
/**
* hw_device
*
* @author xins
* @date 2023-08-24
*/
public class HwDevice extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 设备ID */
private Long deviceId;
/** 设备编号 */
@Excel(name = "设备编号")
private String deviceCode;
/** 设备名称 */
@Excel(name = "设备名称")
private String deviceName;
/** 所属场景关联hw_scene表的scene_id字段 */
@Excel(name = "所属场景关联hw_scene表的scene_id字段")
private Long sceneId;
/** 所属监控单元关联表hw_monitor_unit字段monitor_unit_id */
@Excel(name = "所属监控单元关联表hw_monitor_unit字段monitor_unit_id")
private Long monitorUnitId;
/** 设备类型1网关设备2网关子设备3直连设备 */
@Excel(name = "设备类型", readConverterExp = "1=网关设备2网关子设备3直连设备")
private String deviceType;
/** 联网方式(1:Wi-Fi2、蜂窝(2G/3G/4G/5G),3、以太网4、其他) */
@Excel(name = "联网方式(1:Wi-Fi2、蜂窝(2G/3G/4G/5G),3、以太网4、其他)")
private String networkingMode;
/** 接入协议1、MQTT */
@Excel(name = "接入协议", readConverterExp = "1=、MQTT")
private Long accessProtocol;
/** 数据格式1、Json */
@Excel(name = "数据格式", readConverterExp = "1=、Json")
private Long dataFormat;
/** 关联设备hw_device表中国的device_id */
@Excel(name = "关联设备hw_device表中国的device_id")
private Long releatedDeviceId;
/** 设备模型关联表hw_device_mode的字段device_mode_id */
@Excel(name = "设备模型关联表hw_device_mode的字段device_mode_id")
private Long deviceModeId;
/** 1Modbus
OPC-UA,Modbus */
@Excel(name = "接入网关协议", readConverterExp = "1=、Modbus")
private Long accessGwProtocol;
/** 激活状态1、激活0、未激活 */
@Excel(name = "激活状态", readConverterExp = "1=、激活0、未激活")
private String activeStatus;
/** 设备状态0、测试1、发布9、删除 */
@Excel(name = "设备状态", readConverterExp = "0=、测试1、发布9、删除")
private String deviceStatus;
/** 设备激活时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "设备激活时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date activeTime;
/** 设备图片地址(如果为空则可以使用设备模型图片) */
@Excel(name = "设备图片地址", readConverterExp = "如=果为空则可以使用设备模型图片")
private String devicePic;
/** 网络地址 */
@Excel(name = "网络地址")
private String ipAddress;
/** 预留字段设备所在区域ID关联表hw_area字段area_id) */
@Excel(name = "预留字段设备所在区域ID关联表hw_area字段area_id)")
private Long areaId;
/** 预留字段设备位置手动定位在地图上选择设备所在的固定位置自动定位设备自动定位位置关联网关自动定位位置。目前仅G780V2(固件版本V2.2.0之后)、PLCNET510、G800 V2和ModbusRTU(云端轮询)定位型变量支持选择自动定位功能)) */
@Excel(name = "预留字段,设备位置", readConverterExp = "手=动定位(在地图上选择设备所在的固定位置")
private String deviceLocation;
/** 当前固件版本(Linux系统) */
@Excel(name = "当前固件版本(Linux系统)")
private String currentModuleVersion;
/** 当前单片机固件版本 */
@Excel(name = "当前单片机固件版本")
private String currentSinglechipVersion;
/** 预留字段 */
@Excel(name = "预留字段")
private String deviceField;
public void setDeviceId(Long deviceId)
{
this.deviceId = deviceId;
}
public Long getDeviceId()
{
return deviceId;
}
public void setDeviceCode(String deviceCode)
{
this.deviceCode = deviceCode;
}
public String getDeviceCode()
{
return deviceCode;
}
public void setDeviceName(String deviceName)
{
this.deviceName = deviceName;
}
public String getDeviceName()
{
return deviceName;
}
public void setSceneId(Long sceneId)
{
this.sceneId = sceneId;
}
public Long getSceneId()
{
return sceneId;
}
public void setMonitorUnitId(Long monitorUnitId)
{
this.monitorUnitId = monitorUnitId;
}
public Long getMonitorUnitId()
{
return monitorUnitId;
}
public void setDeviceType(String deviceType)
{
this.deviceType = deviceType;
}
public String getDeviceType()
{
return deviceType;
}
public void setNetworkingMode(String networkingMode)
{
this.networkingMode = networkingMode;
}
public String getNetworkingMode()
{
return networkingMode;
}
public void setAccessProtocol(Long accessProtocol)
{
this.accessProtocol = accessProtocol;
}
public Long getAccessProtocol()
{
return accessProtocol;
}
public void setDataFormat(Long dataFormat)
{
this.dataFormat = dataFormat;
}
public Long getDataFormat()
{
return dataFormat;
}
public void setReleatedDeviceId(Long releatedDeviceId)
{
this.releatedDeviceId = releatedDeviceId;
}
public Long getReleatedDeviceId()
{
return releatedDeviceId;
}
public void setDeviceModeId(Long deviceModeId)
{
this.deviceModeId = deviceModeId;
}
public Long getDeviceModeId()
{
return deviceModeId;
}
public void setAccessGwProtocol(Long accessGwProtocol)
{
this.accessGwProtocol = accessGwProtocol;
}
public Long getAccessGwProtocol()
{
return accessGwProtocol;
}
public void setActiveStatus(String activeStatus)
{
this.activeStatus = activeStatus;
}
public String getActiveStatus()
{
return activeStatus;
}
public void setDeviceStatus(String deviceStatus)
{
this.deviceStatus = deviceStatus;
}
public String getDeviceStatus()
{
return deviceStatus;
}
public void setActiveTime(Date activeTime)
{
this.activeTime = activeTime;
}
public Date getActiveTime()
{
return activeTime;
}
public void setDevicePic(String devicePic)
{
this.devicePic = devicePic;
}
public String getDevicePic()
{
return devicePic;
}
public void setIpAddress(String ipAddress)
{
this.ipAddress = ipAddress;
}
public String getIpAddress()
{
return ipAddress;
}
public void setAreaId(Long areaId)
{
this.areaId = areaId;
}
public Long getAreaId()
{
return areaId;
}
public void setDeviceLocation(String deviceLocation)
{
this.deviceLocation = deviceLocation;
}
public String getDeviceLocation()
{
return deviceLocation;
}
public void setCurrentModuleVersion(String currentModuleVersion)
{
this.currentModuleVersion = currentModuleVersion;
}
public String getCurrentModuleVersion()
{
return currentModuleVersion;
}
public void setCurrentSinglechipVersion(String currentSinglechipVersion)
{
this.currentSinglechipVersion = currentSinglechipVersion;
}
public String getCurrentSinglechipVersion()
{
return currentSinglechipVersion;
}
public void setDeviceField(String deviceField)
{
this.deviceField = deviceField;
}
public String getDeviceField()
{
return deviceField;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("deviceId", getDeviceId())
.append("deviceCode", getDeviceCode())
.append("deviceName", getDeviceName())
.append("sceneId", getSceneId())
.append("monitorUnitId", getMonitorUnitId())
.append("deviceType", getDeviceType())
.append("networkingMode", getNetworkingMode())
.append("accessProtocol", getAccessProtocol())
.append("dataFormat", getDataFormat())
.append("releatedDeviceId", getReleatedDeviceId())
.append("deviceModeId", getDeviceModeId())
.append("accessGwProtocol", getAccessGwProtocol())
.append("activeStatus", getActiveStatus())
.append("deviceStatus", getDeviceStatus())
.append("activeTime", getActiveTime())
.append("devicePic", getDevicePic())
.append("ipAddress", getIpAddress())
.append("areaId", getAreaId())
.append("deviceLocation", getDeviceLocation())
.append("currentModuleVersion", getCurrentModuleVersion())
.append("currentSinglechipVersion", getCurrentSinglechipVersion())
.append("remark", getRemark())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("deviceField", getDeviceField())
.toString();
}
}

@ -0,0 +1,205 @@
package com.ruoyi.dataprocess.domain;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
public class HwElectronicFence extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 电子围栏ID */
private Long electronicFenceId;
/** 电子围栏名称 */
@Excel(name = "电子围栏名称")
private String electronicFenceName;
/** 所属场景 */
@Excel(name = "所属场景")
private Long sceneId;
/** 规则类型 */
@Excel(name = "规则类型")
private Long fenceType;
/** 生效时间标识 */
@Excel(name = "生效时间标识")
private String effectiveTimeFlag;
/** 生效时间开始时间_结束时间_状态多个用|隔开例如00:00_05:00_1|06:00_08:00_0,状态1、开启、2、关闭 */
@Excel(name = "生效时间开始时间_结束时间_状态多个用|隔开", readConverterExp = "例=如00:00_05:00_1|06:00_08:00_0")
private String effectiveTime;
/** 触发状态0、关闭1、出界2、入界3、双向 */
@Excel(name = "触发状态", readConverterExp = "0=、关闭1、出界2、入界3、双向")
private String triggerStatus;
/** 区域形状1、多边形2、圆形 */
@Excel(name = "区域形状", readConverterExp = "1=、多边形2、圆形")
private String areaShapeFlag;
/** 区域范围为多边形时保存格式经度_纬度多个以|隔开;为圆形时的中心点和半径,下划线隔开 */
@Excel(name = "区域范围", readConverterExp = "为多边形时保存格式为经度_纬度多个以|隔开;为圆形时的中心点和半径,下划线")
private String areaRange;
/** 报警推送标识(1、是0、否 */
@Excel(name = "报警推送标识(1、是0、否")
private Long fencePushFlag;
/** 报警推送内容 */
@Excel(name = "报警推送内容")
private String fencePushContent;
/** 恢复正常推送内容 */
@Excel(name = "恢复正常推送内容")
private String fenceRecoverContent;
/** 预留字段 */
@Excel(name = "预留字段")
private String fenceField;
public void setElectronicFenceId(Long electronicFenceId)
{
this.electronicFenceId = electronicFenceId;
}
public Long getElectronicFenceId()
{
return electronicFenceId;
}
public void setElectronicFenceName(String electronicFenceName)
{
this.electronicFenceName = electronicFenceName;
}
public String getElectronicFenceName()
{
return electronicFenceName;
}
public void setSceneId(Long sceneId)
{
this.sceneId = sceneId;
}
public Long getSceneId()
{
return sceneId;
}
public void setFenceType(Long fenceType)
{
this.fenceType = fenceType;
}
public Long getFenceType()
{
return fenceType;
}
public void setEffectiveTimeFlag(String effectiveTimeFlag)
{
this.effectiveTimeFlag = effectiveTimeFlag;
}
public String getEffectiveTimeFlag()
{
return effectiveTimeFlag;
}
public void setEffectiveTime(String effectiveTime)
{
this.effectiveTime = effectiveTime;
}
public String getEffectiveTime()
{
return effectiveTime;
}
public void setTriggerStatus(String triggerStatus)
{
this.triggerStatus = triggerStatus;
}
public String getTriggerStatus()
{
return triggerStatus;
}
public void setAreaShapeFlag(String areaShapeFlag)
{
this.areaShapeFlag = areaShapeFlag;
}
public String getAreaShapeFlag()
{
return areaShapeFlag;
}
public void setAreaRange(String areaRange)
{
this.areaRange = areaRange;
}
public String getAreaRange()
{
return areaRange;
}
public void setFencePushFlag(Long fencePushFlag)
{
this.fencePushFlag = fencePushFlag;
}
public Long getFencePushFlag()
{
return fencePushFlag;
}
public void setFencePushContent(String fencePushContent)
{
this.fencePushContent = fencePushContent;
}
public String getFencePushContent()
{
return fencePushContent;
}
public void setFenceRecoverContent(String fenceRecoverContent)
{
this.fenceRecoverContent = fenceRecoverContent;
}
public String getFenceRecoverContent()
{
return fenceRecoverContent;
}
public void setFenceField(String fenceField)
{
this.fenceField = fenceField;
}
public String getFenceField()
{
return fenceField;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("electronicFenceId", getElectronicFenceId())
.append("electronicFenceName", getElectronicFenceName())
.append("sceneId", getSceneId())
.append("fenceType", getFenceType())
.append("effectiveTimeFlag", getEffectiveTimeFlag())
.append("effectiveTime", getEffectiveTime())
.append("triggerStatus", getTriggerStatus())
.append("areaShapeFlag", getAreaShapeFlag())
.append("areaRange", getAreaRange())
.append("fencePushFlag", getFencePushFlag())
.append("fencePushContent", getFencePushContent())
.append("fenceRecoverContent", getFenceRecoverContent())
.append("remark", getRemark())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("fenceField", getFenceField())
.toString();
}
}

@ -0,0 +1,30 @@
package com.ruoyi.dataprocess.listener;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.Message;
import org.springframework.data.redis.connection.MessageListener;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.stereotype.Component;
@Component
@Slf4j
public class RedisMessageListener implements MessageListener {
@Autowired
private RedisTemplate redisTemplate;
@Override
public void onMessage(Message message, byte[] pattern) {
RedisSerializer keySerializer = redisTemplate.getKeySerializer();
RedisSerializer valueSerializer = redisTemplate.getValueSerializer();
log.info("----------Life接收到发布者消息----------");
log.info("|频道:{}",keySerializer.deserialize(message.getChannel()));
log.info("|当前监听器绑定的pattern:{}",new String(pattern));
log.info("|消息内容:{}",valueSerializer.deserialize(message.getBody()));
log.info("---------------------------------");
}
}

@ -0,0 +1,20 @@
package com.ruoyi.dataprocess.mapper;
import com.ruoyi.dataprocess.domain.HwAlarmInfo;
/**
* Mapper
*
* @author xins
* @date 2023-09-04
*/
public interface HwAlarmInfoMapper {
/**
*
*
* @param hwAlarmInfo
* @return
*/
public int insertHwAlarmInfo(HwAlarmInfo hwAlarmInfo);
}

@ -0,0 +1,25 @@
package com.ruoyi.dataprocess.mapper;
import com.ruoyi.dataprocess.domain.HwDevice;
import java.util.List;
/**
* Mapper
*
* @author xins
* @date 2023-08-24
*/
public interface HwDeviceMapper
{
/**
*
*
* @param deviceCode
* @return
*/
public HwDevice selectHwDeviceByDeviceCode(String deviceCode);
}

@ -0,0 +1,50 @@
package com.ruoyi.dataprocess.mapper;
import com.ruoyi.dataprocess.domain.HwElectronicFence;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Description:
* @ClassName: HwElectronicFenceMapper
* @Author : xins
* @Date :2023-09-03 11:48
* @Version :1.0
*/
public interface HwElectronicFenceMapper {
public List<HwElectronicFence> selectSuitableElectronicFenceList(@Param("deviceId") Long deviceId,
@Param("monitorUnitId") Long monitorUnitId,
@Param("sceneId") Long sceneId);
/**
* @param: deviceId
* @description ID
* @author xins
* @date 2023-09-03 12:10
* @return List<HwElectronicFence>
*/
public List<HwElectronicFence> selectElectronicFencesByDeviceId(Long deviceId);
/**
* @param: monitorUnitId
* @description ID
* @author xins
* @date 2023-09-03 12:11
* @return List<HwElectronicFence>
*/
public List<HwElectronicFence> selectElectronicFencesByMonitorUnitId(Long monitorUnitId);
/**
* @param: sceneId
* @description Id
* @author xins
* @date 2023-09-03 12:11
* @return List<HwElectronicFence>
*/
public List<HwElectronicFence> selectElectronicFencesBySceneId(Long sceneId);
}

@ -0,0 +1,239 @@
package com.ruoyi.dataprocess.mqtt.client.config;
import com.ruoyi.dataprocess.mqtt.client.listener.MqttClientConnectListener;
import com.ruoyi.dataprocess.service.IDataProcessService;
import com.ruoyi.dataprocess.service.IDeviceStatusService;
import net.dreamlu.iot.mqtt.codec.MqttPublishMessage;
import net.dreamlu.iot.mqtt.codec.MqttQoS;
import net.dreamlu.iot.mqtt.codec.MqttSubAckMessage;
import net.dreamlu.iot.mqtt.core.client.IMqttClientMessageListener;
import net.dreamlu.iot.mqtt.core.client.MqttClient;
import net.dreamlu.iot.mqtt.core.client.MqttClientCreator;
import net.dreamlu.iot.mqtt.spring.client.MqttClientCustomizer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.tio.core.ChannelContext;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
//mqtt:
// client:
// enabled: true # 是否开启客户端默认false 使用到的场景有限,非必要请不要启用
// ip: 127.0.0.1 # 连接的服务端 ip 默认127.0.0.1
// port: 1883 # 端口默认1883
// name: Mica-Mqtt-Client # 名称默认Mica-Mqtt-Client
// clientId: 000001 # 客户端Id非常重要一般为设备 sn不可重复
// user-name: mica # 认证的用户名
// password: 123456 # 认证的密码
// timeout: 5 # 超时时间单位默认5秒
// reconnect: true # 是否重连默认true
// re-interval: 5000 # 重连时间,默认 5000 毫秒
// version: MQTT_5 # mqtt 协议版本默认3.1.1
// read-buffer-size: 8KB # 接收数据的 buffer size默认8k
// max-bytes-in-message: 10MB # 消息解析最大 bytes 长度默认10M
// buffer-allocator: heap # 堆内存和堆外内存,默认:堆内存
// keep-alive-secs: 60 # keep-alive 时间,单位:秒
// clean-session: true # mqtt clean session默认true
// use-ssl: false # 是否启用 ssl默认false
//todo:read-buffer-size
@Configuration
public class MqttConfiguration {
private static final Logger logger = LoggerFactory.getLogger(MqttConfiguration.class);
@Value("${mqtt.client.ip}")
String ip;
@Value("${mqtt.client.port}")
int port;
@Value("${mqtt.client.username}")
String username;
@Value("${mqtt.client.password}")
String password;
@Value("${mqtt.client.clientId}")
String clientId;
@Value("${mqtt.client.timeout}")
int timeOut;
@Value("${mqtt.client.keepalive}")
int keepAlive;
@Value("${mqtt.client.qos}")
int qos;
@Value("${mqtt.client.dataTopicFilter}")
String dataTopicFilter;
@Value("${mqtt.client.deviceStatusTopic}")
String deviceStatusTopic;
@Value("${mqtt.client.imagePath}")
String imagePath;
@Value("${mqtt.client.imagePatterns}")
String imagePatterns;
@Autowired
private IDataProcessService dataProcessService;
@Autowired
private IDeviceStatusService deviceStatusService;
@Bean//注入spring
public MqttClientCustomizer mqttClientCustomizer() {
return new MqttClientCustomizer() {
@Override
public void customize(MqttClientCreator creator) {
// 此处可自定义配置 creator会覆盖 yml 中的配置
System.out.println("----------------MqttServerCustomizer-----------------");
MqttClient client = creator.ip(ip)
.port(port)
.username(username)
.password(password)
.timeout(timeOut)
.keepAliveSecs(keepAlive)
// 如果包体过大,建议将此参数设置和 maxBytesInMessage 一样大
// .readBufferSize(1024 * 10)
// 最大包体长度,如果包体过大需要设置此参数
// .maxBytesInMessage(1024 * 10)
// .version(MqttVersion.MQTT_5)
// 连接监听
.connectListener(new MqttClientConnectListener())
.willMessage(builder -> {
builder.topic("/test/offline")
.messageText("down")
.retain(false)
.qos(MqttQoS.AT_MOST_ONCE); // 遗嘱消息
})
// 同步连接,也可以使用 connect() 异步(可以避免 broker 没启动照成启动卡住),但是下面的订阅和发布可能还没连接成功。
.connectSync();
String[] topicArr = {dataTopicFilter, deviceStatusTopic};
client.subscribe(topicArr, MqttQoS.valueOf(qos), new IMqttClientMessageListener() {
@Override
public void onSubscribed(ChannelContext context, String topicFilter, MqttQoS mqttQoS, MqttSubAckMessage message) {
IMqttClientMessageListener.super.onSubscribed(context, topicFilter, mqttQoS, message);
}
@Override
public void onSubscribed(ChannelContext context, String topicFilter, MqttQoS mqttQoS) {
IMqttClientMessageListener.super.onSubscribed(context, topicFilter, mqttQoS);
}
@Override
public void onMessage(ChannelContext channelContext, String topic, MqttPublishMessage mqttPublishMessage, ByteBuffer payload) {
System.out.println("dataprocessservice:" + dataProcessService);
String payloadString = new String(payload.array(), StandardCharsets.UTF_8);
System.out.println("paa:" + topic);
logger.info("topic:{} payload:{}", topic, payloadString);
System.out.println(topic+"----"+dataTopicFilter);
System.out.println(topic.startsWith(dataTopicFilter));
if (topic.startsWith(dataTopicFilter.replace("#",""))) {
dataProcessService.processBusinessData(payloadString, imagePath, imagePatterns);
} else if (topic.equals(deviceStatusTopic)) {
deviceStatusService.handleDeviceStatus();
}
}
});
// client.subscribe(topicArr,MqttQoS.valueOf(1),new MqttClientMessageListener());
// client.subQos0(dataTopic,new MqttClientMessageListener());
}
};
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getClientId() {
return clientId;
}
public void setClientId(String clientId) {
this.clientId = clientId;
}
public int getTimeOut() {
return timeOut;
}
public void setTimeOut(int timeOut) {
this.timeOut = timeOut;
}
public int getKeepAlive() {
return keepAlive;
}
public void setKeepAlive(int keepAlive) {
this.keepAlive = keepAlive;
}
public int getQos() {
return qos;
}
public void setQos(int qos) {
this.qos = qos;
}
public String getDataTopicFilter() {
return dataTopicFilter;
}
public void setDataTopicFilter(String dataTopicFilter) {
this.dataTopicFilter = dataTopicFilter;
}
public String getDeviceStatusTopic() {
return deviceStatusTopic;
}
public void setDeviceStatusTopic(String deviceStatusTopic) {
this.deviceStatusTopic = deviceStatusTopic;
}
public String getImagePath() {
return imagePath;
}
public void setImagePath(String imagePath) {
this.imagePath = imagePath;
}
public String getImagePatterns() {
return imagePatterns;
}
public void setImagePatterns(String imagePatterns) {
this.imagePatterns = imagePatterns;
}
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save