Merge remote-tracking branch 'origin/master'

master
夜笙歌 6 months ago
commit f6db1a14d6

@ -63,8 +63,8 @@ public interface RemoteTdEngineService {
@PostMapping("/tdengine/getDeviceStatusList")
R<List<Map<String, Object>>> getDeviceStatusList(@Validated @RequestBody DeviceStatus queryDeviceStatus, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
@PostMapping("/tdengine/getDeviceLocation")
R<Map<String,Object>> getDeviceLocation(@Validated @RequestBody TdSelectDto tdSelectDto, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
@PostMapping("/tdengine/dropTable")
R<?> dropTable(@Validated @RequestBody TdTableDropVo tdTableDropVo, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}

@ -102,6 +102,11 @@ public class RemoteTdEngineFallbackFactory implements FallbackFactory<RemoteTdEn
return R.fail("获取设备状态信息失败:" + throwable.getMessage());
}
@Override
public R<Map<String, Object>> getDeviceLocation(TdSelectDto tdSelectDto, String source) {
return R.fail("获取设备位置失败:" + throwable.getMessage());
}
@Override
public R<?> dropTable(TdTableDropVo tdTableDropVo, String source) {
return R.fail("drop子表失败:" + throwable.getMessage());

@ -49,7 +49,7 @@ public class SysRole extends BaseEntity
@Excel(name = "角色状态", readConverterExp = "0=正常,1=停用")
private String status;
/** 删除标志0代表存在 2代表删除 */
/** 删除标志0代表存在 2代表删除 */
private String delFlag;
/** 用户是否存在此角色标识 默认不存在 */

@ -14,10 +14,12 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 175.27.215.92:8848
namespace: jrm_iot_dev
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 175.27.215.92:8848
namespace: jrm_iot_dev
# 配置文件格式
file-extension: yml
# 共享配置

@ -0,0 +1,38 @@
package com.ruoyi.common.core.constant;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Description:
* @ClassName: HwPortalConstants
* @Author : xins
* @Date :2023-12-18 15:20
* @Version :1.0
*/
public class HwPortalConstants {
/**
*
* (1 ++42+3+24+25+6+73,894)
*/
public static final String PRODUCT_INFO_CONFIG_MODAL_ONE = "1";
public static final String PRODUCT_INFO_CONFIG_MODAL_TWO = "2";
// public static final List<String> ABNDON_FUNCTION_IDENTIFIERS = Arrays.asList("ts","value1","type");
//
// public static final String DEFAULT_FIRST_FIELD_NAME_DISPLAY = "时间";//timestamp格式首字段的显示名称
// public static final Map<String, String> DEVICE_DATA_COLUMN_MAP = new HashMap<String, String>();
//
// static {
// DEVICE_DATA_COLUMN_MAP.put(ST_TAG_DEVICECODE, "设备编号");
// DEVICE_DATA_COLUMN_MAP.put(ST_TAG_DEVICENAME, "设备名称");
// DEVICE_DATA_COLUMN_MAP.put(DEFAULT_FIRST_FIELD_NAME, DEFAULT_FIRST_FIELD_NAME_DISPLAY);
// }
}

@ -0,0 +1,31 @@
package com.ruoyi.common.core.web.page;
import java.util.Map;
/**
* @ClassName : TableDataNameVo
* @Description :
* @Author :
* @Date: 2024-06-17 10:41
*/
public class TableDataNameVo {
private TableDataInfo tableDataInfo;
private Map<String, Object> mapName;
public TableDataInfo getTableDataInfo() {
return tableDataInfo;
}
public void setTableDataInfo(TableDataInfo tableDataInfo) {
this.tableDataInfo = tableDataInfo;
}
public Map<String, Object> getMapName() {
return mapName;
}
public void setMapName(Map<String, Object> mapName) {
this.mapName = mapName;
}
}

@ -148,7 +148,7 @@ public class DataScopeAspect {
StringBuilder sql = new StringBuilder();
Long tenantId = user.getTenantId();
if (!tenantId.equals(HwDictConstants.ADMINISTRATOR_TENANT_ID)) {
sql.append(StringUtils.format(" OR {}.tenant_id = {} ", tenantAlias, tenantId));
sql.append(StringUtils.format(" AND tenant_id = {} ", tenantId));
}
return sql;

@ -14,10 +14,12 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 175.27.215.92:8848
namespace: jrm_iot_dev
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 175.27.215.92:8848
namespace: jrm_iot_dev
# 配置文件格式
file-extension: yml
# 共享配置
@ -33,7 +35,8 @@ spring:
datasource:
ds1:
nacos:
server-addr: 127.0.0.1:8848
server-addr: 175.27.215.92:8848
namespace: jrm_iot_dev
dataId: sentinel-ruoyi-gateway
groupId: DEFAULT_GROUP
data-type: json

@ -0,0 +1,84 @@
package com.ruoyi.basic.controller;
import com.ruoyi.basic.domain.HwGlobalCfg;
import com.ruoyi.basic.service.HwGlobalCfgService;
import com.ruoyi.common.core.web.controller.BaseController;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* (HwGlobalCfg)
*
* @author makejava
* @since 2024-09-26 14:42:39
*/
@RestController
@RequestMapping("hwGlobalCfg")
public class HwGlobalCfgController extends BaseController {
/**
*
*/
@Resource
private HwGlobalCfgService hwGlobalCfgService;
/**
*
*
* @param hwGlobalCfg
* @return
*/
@GetMapping
public ResponseEntity<List<HwGlobalCfg>> queryByPage(HwGlobalCfg hwGlobalCfg) {
List<HwGlobalCfg> list = hwGlobalCfgService.queryAll(hwGlobalCfg);
return ResponseEntity.ok(list);
}
/**
*
*
* @param id
* @return
*/
@GetMapping("{id}")
public ResponseEntity<HwGlobalCfg> queryById(@PathVariable("id") Long id) {
return ResponseEntity.ok(this.hwGlobalCfgService.queryById(id));
}
/**
*
*
* @param hwGlobalCfg
* @return
*/
@PostMapping
public ResponseEntity<Integer> add(@RequestBody HwGlobalCfg hwGlobalCfg) {
return ResponseEntity.ok(this.hwGlobalCfgService.insert(hwGlobalCfg));
}
/**
*
*
* @param hwGlobalCfg
* @return
*/
@PutMapping
public ResponseEntity<HwGlobalCfg> edit(@RequestBody HwGlobalCfg hwGlobalCfg) {
return ResponseEntity.ok(this.hwGlobalCfgService.update(hwGlobalCfg));
}
/**
*
*
* @param id
* @return
*/
@DeleteMapping
public ResponseEntity<Boolean> deleteById(Long globalCfgId) {
return ResponseEntity.ok(this.hwGlobalCfgService.deleteById(globalCfgId));
}
}

@ -0,0 +1,125 @@
package com.ruoyi.basic.controller;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.basic.domain.HwTemplate;
import com.ruoyi.basic.domain.HwTemplateAchieve;
import com.ruoyi.basic.service.HwTemplateAchieveService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.file.FileUtils;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.system.api.RemoteFileService;
import com.ruoyi.system.api.domain.SysFile;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.Base64;
import java.util.List;
import java.util.Map;
/**
* (HwTemplateAchieve)
*
* @author makejava
* @since 2024-09-18 10:09:52
*/
@RestController
@RequestMapping("hwTemplateAchieve")
public class HwTemplateAchieveController extends BaseController {
/**
*
*/
@Resource
private HwTemplateAchieveService hwTemplateAchieveService;
@Autowired
private RemoteFileService remoteFileService;
/**
*
*
* @param hwTemplateAchieve
* @param
* @return
*/
@GetMapping
public TableDataInfo queryByPage(HwTemplateAchieve hwTemplateAchieve) {
startPage();
List<HwTemplateAchieve> list = hwTemplateAchieveService.queryAll(hwTemplateAchieve);
return getDataTable(list);
}
/**
*
*
* @param id
* @return
*/
@GetMapping("{id}")
public ResponseEntity<HwTemplateAchieve> queryById(@PathVariable("id") Long id) {
return ResponseEntity.ok(this.hwTemplateAchieveService.queryById(id));
}
/**
*
* @return
*/
@PostMapping
public AjaxResult add(@RequestBody Map<String,Object> templateAchieve) {
HwTemplateAchieve hwTemplateAchieve = new HwTemplateAchieve();
hwTemplateAchieve.setAchieveContent(templateAchieve.get("achieveContent").toString());
hwTemplateAchieve.setTemplateId((Long)templateAchieve.get("templateId"));
hwTemplateAchieve.setAchieveName(templateAchieve.get("achieveName").toString());
int insert = this.hwTemplateAchieveService.insert(hwTemplateAchieve);
if (insert == 0){
return AjaxResult.error("添加失败");
}
return AjaxResult.success("添加成功");
}
/**
*
*
* @param hwTemplateAchieve
* @return
*/
@PutMapping
public AjaxResult edit(@RequestBody HwTemplateAchieve hwTemplateAchieve) {
return AjaxResult.success(this.hwTemplateAchieveService.update(hwTemplateAchieve));
}
/**
*
*
* @param achieveId
* @return
*/
@DeleteMapping
public AjaxResult deleteById(Long achieveId) {
return AjaxResult.success(this.hwTemplateAchieveService.deleteById(achieveId));
}
@PostMapping("/saveImage")
public AjaxResult saveImage(@RequestParam("file") MultipartFile file){
R<SysFile> sysFileR = remoteFileService.upload(file);
SysFile sysFile = sysFileR.getData();
int count = hwTemplateAchieveService.saveImage(sysFile);
return AjaxResult.success(sysFile);
}
@PostMapping("/queryImage")
public AjaxResult queryImage(@RequestBody SysFile sysFile){
startPage();
List<SysFile> list = hwTemplateAchieveService.queryImage(sysFile);
return AjaxResult.success(getDataTable(list));
}
}

@ -0,0 +1,114 @@
package com.ruoyi.basic.controller;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.basic.domain.HwTemplate;
import com.ruoyi.basic.service.HwTemplateService;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.common.security.utils.SecurityUtils;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* (HwTemplate)
*
* @author makejava
* @since 2024-09-18 10:09:19
*/
@RestController
@RequestMapping("hwTemplate")
public class HwTemplateController extends BaseController {
/**
*
*/
@Resource
private HwTemplateService hwTemplateService;
/**
*
*
* @param hwTemplate
* @return
*/
@GetMapping
public TableDataInfo queryByPage(HwTemplate hwTemplate) {
startPage();
List<HwTemplate> list = hwTemplateService.queryAll(hwTemplate);
return getDataTable(list);
}
/**
*
*
* @param id
* @return
*/
@GetMapping("{id}")
public ResponseEntity<HwTemplate> queryById(@PathVariable("id") Long id) {
return ResponseEntity.ok(this.hwTemplateService.queryById(id));
}
/**
*
*
* @param
* @return
*/
@PostMapping
public AjaxResult add(@RequestBody Map<String,Object> template){
HwTemplate hwTemplate = new HwTemplate();
String templateName = template.get("templateName").toString();
template.remove("templateName");
hwTemplate.setTemplateName(templateName);
hwTemplate.setTemplateContent(template.get("templateContent").toString());
HwTemplate insert = hwTemplateService.insert(hwTemplate);
if (insert == null){
return AjaxResult.error("操作失败");
}
return AjaxResult.success();
}
/**
*
*
* @param hwTemplate
* @return
*/
@PutMapping
public AjaxResult edit(@RequestBody HwTemplate hwTemplate) {
hwTemplate.setUpdateBy(SecurityUtils.getUsername());
hwTemplate.setUpdateTime(new Date());
int update = hwTemplateService.update(hwTemplate);
if (update == 0) {
return AjaxResult.error("操作失败");
}
return AjaxResult.success();
}
/**
*
*
* @param templateId
* @return
*/
@DeleteMapping
public AjaxResult deleteById(Long templateId) {
boolean delete = hwTemplateService.deleteById(templateId);
if (delete == false) {
return AjaxResult.error("操作失败");
}
return AjaxResult.success();
}
}

@ -2,17 +2,27 @@ package com.ruoyi.basic.controller;
import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
import com.baomidou.dynamic.datasource.creator.DataSourceCreator;
import com.baomidou.dynamic.datasource.creator.DruidDataSourceCreator;
import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.basic.domain.LayoutConfig;
import com.ruoyi.basic.domain.LayoutDesc;
import com.ruoyi.basic.service.LayoutConfigService;
import com.ruoyi.basic.service.LayoutDescService;
import com.ruoyi.common.core.web.domain.AjaxResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.sql.DataSource;
import java.util.List;
import java.util.Map;
@ -30,6 +40,9 @@ public class LayoutConfigController {
*/
@Resource
private LayoutConfigService layoutConfigService;
@Autowired
private LayoutDescService layoutDescService;
/**
*
@ -89,10 +102,10 @@ public class LayoutConfigController {
// 添加组件新配置
@PostMapping("/insertLayoutConfig")
public AjaxResult insertLayoutConfig(@RequestBody Map<String,Object> config) throws JsonProcessingException {
System.out.println(config.get("items"));
List<Object> items = (List<Object>)config.get("items");
String option = config.get("option").toString();
return layoutConfigService.insertSceneConfig(items,option);
String layoutName = config.get("layoutDesc").toString();
return layoutConfigService.insertSceneConfig(items,option,layoutName);
}
// 查询所有场景
@ -106,6 +119,4 @@ public class LayoutConfigController {
public AjaxResult selectConfigById(String sceneId){
return layoutConfigService.selectConfigById(sceneId);
}
}

@ -81,5 +81,4 @@ public class LayoutDescController {
return ResponseEntity.ok(this.layoutDescService.deleteById(id));
}
}
}

@ -0,0 +1,88 @@
package com.ruoyi.basic.domain;
import java.io.Serializable;
/**
* (HwGlobalCfg)
*
* @author makejava
* @since 2024-09-26 14:42:42
*/
public class HwGlobalCfg implements Serializable {
private static final long serialVersionUID = 673640661217554284L;
/**
* ID
*/
private Long globalCfgId;
/**
*
*/
private String globalCfgName;
/**
*
*/
private String globalCfgType;
/**
*
*/
private String globalCfgDate;
/**
* (1true 2false)
*/
private String isDetail;
/**
*
*/
private String details;
public Long getGlobalCfgId() {
return globalCfgId;
}
public void setGlobalCfgId(Long globalCfgId) {
this.globalCfgId = globalCfgId;
}
public String getGlobalCfgName() {
return globalCfgName;
}
public void setGlobalCfgName(String globalCfgName) {
this.globalCfgName = globalCfgName;
}
public String getGlobalCfgType() {
return globalCfgType;
}
public void setGlobalCfgType(String globalCfgType) {
this.globalCfgType = globalCfgType;
}
public String getGlobalCfgDate() {
return globalCfgDate;
}
public void setGlobalCfgDate(String globalCfgDate) {
this.globalCfgDate = globalCfgDate;
}
public String getIsDetail() {
return isDetail;
}
public void setIsDetail(String isDetail) {
this.isDetail = isDetail;
}
public String getDetails() {
return details;
}
public void setDetails(String details) {
this.details = details;
}
}

@ -0,0 +1,113 @@
package com.ruoyi.basic.domain;
import java.io.Serializable;
import java.util.Date;
/**
* (HwTemplate)
*
* @author makejava
* @since 2024-09-18 10:09:21
*/
public class HwTemplate implements Serializable {
private static final long serialVersionUID = -58454096786541114L;
/**
* id
*/
private Long templateId;
/**
*
*/
private String templateName;
/**
*
*/
private String templateContent;
/**
*
*/
private String createBy;
/**
*
*/
private Date createTime;
/**
*
*/
private String updateBy;
/**
*
*/
private Date updateTime;
/**
*
*/
private String remark;
public Long getTemplateId() {
return templateId;
}
public void setTemplateId(Long templateId) {
this.templateId = templateId;
}
public String getTemplateName() {
return templateName;
}
public void setTemplateName(String templateName) {
this.templateName = templateName;
}
public String getTemplateContent() {
return templateContent;
}
public void setTemplateContent(String templateContent) {
this.templateContent = templateContent;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getUpdateBy() {
return updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}

@ -0,0 +1,129 @@
package com.ruoyi.basic.domain;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* (HwTemplateAchieve)
*
* @author makejava
* @since 2024-09-18 10:09:52
*/
@Data
public class HwTemplateAchieve implements Serializable {
private static final long serialVersionUID = 683594578695679743L;
/**
* id
*/
private Long achieveId;
/**
* id
*/
private Long templateId;
/**
*
*/
private String achieveName;
/**
*
*/
private String achieveContent;
private byte[] image;
/**
*
*/
private String createBy;
/**
*
*/
private Date createTime;
/**
*
*/
private String updateBy;
/**
*
*/
private Date updateTime;
/**
*
*/
private String remark;
public Long getAchieveId() {
return achieveId;
}
public void setAchieveId(Long achieveId) {
this.achieveId = achieveId;
}
public Long getTemplateId() {
return templateId;
}
public void setTemplateId(Long templateId) {
this.templateId = templateId;
}
public String getAchieveName() {
return achieveName;
}
public void setAchieveName(String achieveName) {
this.achieveName = achieveName;
}
public String getAchieveContent() {
return achieveContent;
}
public void setAchieveContent(String achieveContent) {
this.achieveContent = achieveContent;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getUpdateBy() {
return updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}

@ -0,0 +1,34 @@
package com.ruoyi.basic.domain;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* (HwTemplateAchieve)
*
* @author makejava
* @since 2024-09-18 10:09:52
*/
@Data
public class HwTemplateAchieveContent implements Serializable {
private static final long serialVersionUID = 683594578695679743L;
/**
* id
*/
private Long id;
/**
* id
*/
private Long achieveId;
/**
*
*/
private String achieveContent;
}

@ -116,5 +116,4 @@ public class LayoutConfig implements Serializable {
// this.updateTime = updateTime;
// }
}
}

@ -104,5 +104,4 @@ public class LayoutDesc implements Serializable {
// this.updateTime = updateTime;
// }
}
}

@ -0,0 +1,87 @@
package com.ruoyi.basic.mapper;
import com.ruoyi.basic.domain.HwGlobalCfg;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* (HwGlobalCfg)访
*
* @author makejava
* @since 2024-09-26 14:42:39
*/
public interface HwGlobalCfgDao {
/**
* ID
*
* @param globalCfgId
* @return
*/
HwGlobalCfg queryById(Long globalCfgId);
/**
*
*
* @param hwGlobalCfg
* @param pageable
* @return
*/
List<HwGlobalCfg> queryAllByLimit(HwGlobalCfg hwGlobalCfg, @Param("pageable") Pageable pageable);
/**
*
*
* @param hwGlobalCfg
* @return
*/
long count(HwGlobalCfg hwGlobalCfg);
/**
*
*
* @param hwGlobalCfg
* @return
*/
int insert(HwGlobalCfg hwGlobalCfg);
/**
* MyBatisforeach
*
* @param entities List<HwGlobalCfg>
* @return
*/
int insertBatch(@Param("entities") List<HwGlobalCfg> entities);
/**
* MyBatisforeach
*
* @param entities List<HwGlobalCfg>
* @return
* @throws org.springframework.jdbc.BadSqlGrammarException ListSQL
*/
int insertOrUpdateBatch(@Param("entities") List<HwGlobalCfg> entities);
/**
*
*
* @param hwGlobalCfg
* @return
*/
int update(HwGlobalCfg hwGlobalCfg);
/**
*
*
* @param globalCfgId
* @return
*/
int deleteById(Long globalCfgId);
List<HwGlobalCfg> queryAll(HwGlobalCfg hwGlobalCfg);
}

@ -0,0 +1,95 @@
package com.ruoyi.basic.mapper;
import com.ruoyi.basic.domain.HwTemplateAchieve;
import com.ruoyi.basic.domain.HwTemplateAchieveContent;
import com.ruoyi.system.api.domain.SysFile;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* (HwTemplateAchieve)访
*
* @author makejava
* @since 2024-09-18 10:09:52
*/
public interface HwTemplateAchieveDao {
/**
* ID
*
* @param achieveId
* @return
*/
HwTemplateAchieve queryById(Long achieveId);
/**
*
*
* @param hwTemplateAchieve
* @param pageable
* @return
*/
List<HwTemplateAchieve> queryAllByLimit(HwTemplateAchieve hwTemplateAchieve, @Param("pageable") Pageable pageable);
/**
*
*
* @param hwTemplateAchieve
* @return
*/
long count(HwTemplateAchieve hwTemplateAchieve);
/**
*
*
* @param hwTemplateAchieve
* @return
*/
int insert(HwTemplateAchieve hwTemplateAchieve);
/**
* MyBatisforeach
*
* @param entities List<HwTemplateAchieve>
* @return
*/
int insertBatch(@Param("entities") List<HwTemplateAchieve> entities);
/**
* MyBatisforeach
*
* @param entities List<HwTemplateAchieve>
* @return
* @throws org.springframework.jdbc.BadSqlGrammarException ListSQL
*/
int insertOrUpdateBatch(@Param("entities") List<HwTemplateAchieve> entities);
/**
*
*
* @param hwTemplateAchieve
* @return
*/
int update(@Param("entity") HwTemplateAchieve hwTemplateAchieve);
/**
*
*
* @param achieveId
* @return
*/
int deleteById(Long achieveId);
List<HwTemplateAchieve> queryAll(HwTemplateAchieve hwTemplateAchieve);
int insertContent(@Param("entity") HwTemplateAchieveContent content);
int deleteContentById(Long achieveId);
int saveImage(SysFile sysFile);
List<SysFile> queryImage(SysFile sysFile);
}

@ -0,0 +1,86 @@
package com.ruoyi.basic.mapper;
import com.ruoyi.basic.domain.HwTemplate;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* (HwTemplate)访
*
* @author makejava
* @since 2024-09-18 10:09:19
*/
public interface HwTemplateDao {
/**
* ID
*
* @param templateId
* @return
*/
HwTemplate queryById(Long templateId);
/**
*
*
* @param hwTemplate
* @param pageable
* @return
*/
List<HwTemplate> queryAllByLimit(HwTemplate hwTemplate, @Param("pageable") Pageable pageable);
/**
*
*
* @param hwTemplate
* @return
*/
long count(HwTemplate hwTemplate);
/**
*
*
* @param hwTemplate
* @return
*/
int insert(HwTemplate hwTemplate);
/**
* MyBatisforeach
*
* @param entities List<HwTemplate>
* @return
*/
int insertBatch(@Param("entities") List<HwTemplate> entities);
/**
* MyBatisforeach
*
* @param entities List<HwTemplate>
* @return
* @throws org.springframework.jdbc.BadSqlGrammarException ListSQL
*/
int insertOrUpdateBatch(@Param("entities") List<HwTemplate> entities);
/**
*
*
* @param hwTemplate
* @return
*/
int update(HwTemplate hwTemplate);
/**
*
*
* @param templateId
* @return
*/
int deleteById(Long templateId);
List<HwTemplate> queryAll(HwTemplate hwTemplate);
}

@ -84,5 +84,4 @@ public interface LayoutConfigDao {
List<LayoutConfig> selectConfigById(String sceneId);
List<LayoutDesc> selectAllScenes();
}
}

@ -4,6 +4,7 @@ package com.ruoyi.basic.mapper;
import com.ruoyi.basic.domain.LayoutDesc;
import java.util.List;
import java.util.Map;
/**
* (LayoutConfig)访
@ -18,5 +19,7 @@ public interface LayoutDescDao {
List<LayoutDesc> selectAllScenes();
}
LayoutDesc queryById();
}

@ -0,0 +1,61 @@
package com.ruoyi.basic.service;
import com.ruoyi.basic.domain.HwGlobalCfg;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import java.util.List;
/**
* (HwGlobalCfg)
*
* @author makejava
* @since 2024-09-26 14:42:44
*/
public interface HwGlobalCfgService {
/**
* ID
*
* @param globalCfgId
* @return
*/
HwGlobalCfg queryById(Long globalCfgId);
/**
*
*
* @param hwGlobalCfg
* @param pageRequest
* @return
*/
Page<HwGlobalCfg> queryByPage(HwGlobalCfg hwGlobalCfg, PageRequest pageRequest);
/**
*
*
* @param hwGlobalCfg
* @return
*/
int insert(HwGlobalCfg hwGlobalCfg);
/**
*
*
* @param hwGlobalCfg
* @return
*/
HwGlobalCfg update(HwGlobalCfg hwGlobalCfg);
/**
*
*
* @param globalCfgId
* @return
*/
boolean deleteById(Long globalCfgId);
List<HwGlobalCfg> queryAll(HwGlobalCfg hwGlobalCfg);
}

@ -0,0 +1,66 @@
package com.ruoyi.basic.service;
import com.ruoyi.basic.domain.HwTemplateAchieve;
import com.ruoyi.system.api.domain.SysFile;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import java.util.List;
/**
* (HwTemplateAchieve)
*
* @author makejava
* @since 2024-09-18 10:09:52
*/
public interface HwTemplateAchieveService {
/**
* ID
*
* @param achieveId
* @return
*/
HwTemplateAchieve queryById(Long achieveId);
/**
*
*
* @param hwTemplateAchieve
* @param pageRequest
* @return
*/
Page<HwTemplateAchieve> queryByPage(HwTemplateAchieve hwTemplateAchieve, PageRequest pageRequest);
/**
*
*
* @param hwTemplateAchieve
* @return
*/
int insert(HwTemplateAchieve hwTemplateAchieve);
/**
*
*
* @param hwTemplateAchieve
* @return
*/
int update(HwTemplateAchieve hwTemplateAchieve);
/**
*
*
* @param achieveId
* @return
*/
boolean deleteById(Long achieveId);
List<HwTemplateAchieve> queryAll(HwTemplateAchieve hwTemplateAchieve);
int saveImage(SysFile sysFile);
List<SysFile> queryImage(SysFile sysFile);
}

@ -0,0 +1,59 @@
package com.ruoyi.basic.service;
import com.ruoyi.basic.domain.HwTemplate;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import java.util.List;
/**
* (HwTemplate)
*
* @author makejava
* @since 2024-09-18 10:09:26
*/
public interface HwTemplateService {
/**
* ID
*
* @param templateId
* @return
*/
HwTemplate queryById(Long templateId);
/**
*
*
* @param hwTemplate
* @param pageRequest
* @return
*/
Page<HwTemplate> queryByPage(HwTemplate hwTemplate, PageRequest pageRequest);
/**
*
*
* @param hwTemplate
* @return
*/
HwTemplate insert(HwTemplate hwTemplate);
/**
*
*
* @param hwTemplate
* @return
*/
int update(HwTemplate hwTemplate);
/**
*
*
* @param templateId
* @return
*/
boolean deleteById(Long templateId);
List<HwTemplate> queryAll(HwTemplate hwTemplate);
}

@ -57,10 +57,11 @@ public interface LayoutConfigService {
*/
boolean deleteById(Long configId);
AjaxResult insertSceneConfig(List<Object> items, String option) throws JsonProcessingException;
AjaxResult insertSceneConfig(List<Object> items, String option,String layoutName) throws JsonProcessingException;
AjaxResult selectConfigById(String sceneId);
AjaxResult selectAllScenes();
}

@ -0,0 +1,90 @@
package com.ruoyi.basic.service.impl;
import com.ruoyi.basic.domain.HwGlobalCfg;
import com.ruoyi.basic.mapper.HwGlobalCfgDao;
import com.ruoyi.basic.service.HwGlobalCfgService;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import javax.annotation.Resource;
import java.util.List;
/**
* (HwGlobalCfg)
*
* @author makejava
* @since 2024-09-26 14:42:44
*/
@Service("hwGlobalCfgService")
public class HwGlobalCfgServiceImpl implements HwGlobalCfgService {
@Resource
private HwGlobalCfgDao hwGlobalCfgDao;
/**
* ID
*
* @param globalCfgId
* @return
*/
@Override
public HwGlobalCfg queryById(Long globalCfgId) {
return this.hwGlobalCfgDao.queryById(globalCfgId);
}
/**
*
*
* @param hwGlobalCfg
* @param pageRequest
* @return
*/
@Override
public Page<HwGlobalCfg> queryByPage(HwGlobalCfg hwGlobalCfg, PageRequest pageRequest) {
long total = this.hwGlobalCfgDao.count(hwGlobalCfg);
return new PageImpl<>(this.hwGlobalCfgDao.queryAllByLimit(hwGlobalCfg, pageRequest), pageRequest, total);
}
/**
*
*
* @param hwGlobalCfg
* @return
*/
@Override
public int insert(HwGlobalCfg hwGlobalCfg) {
int insert = this.hwGlobalCfgDao.insert(hwGlobalCfg);
return insert;
}
/**
*
*
* @param hwGlobalCfg
* @return
*/
@Override
public HwGlobalCfg update(HwGlobalCfg hwGlobalCfg) {
this.hwGlobalCfgDao.update(hwGlobalCfg);
return this.queryById(hwGlobalCfg.getGlobalCfgId());
}
@Override
public List<HwGlobalCfg> queryAll(HwGlobalCfg hwGlobalCfg) {
return hwGlobalCfgDao.queryAll(hwGlobalCfg);
}
/**
*
*
* @param globalCfgId
* @return
*/
@Override
public boolean deleteById(Long globalCfgId) {
return this.hwGlobalCfgDao.deleteById(globalCfgId) > 0;
}
}

@ -0,0 +1,112 @@
package com.ruoyi.basic.service.impl;
import com.ruoyi.basic.domain.HwTemplateAchieve;
import com.ruoyi.basic.domain.HwTemplateAchieveContent;
import com.ruoyi.basic.mapper.HwTemplateAchieveDao;
import com.ruoyi.basic.service.HwTemplateAchieveService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.domain.SysFile;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
* (HwTemplateAchieve)
*
* @author makejava
* @since 2024-09-18 10:09:52
*/
@Service("hwTemplateAchieveService")
public class HwTemplateAchieveServiceImpl implements HwTemplateAchieveService {
@Resource
private HwTemplateAchieveDao hwTemplateAchieveDao;
/**
* ID
*
* @param achieveId
* @return
*/
@Override
public HwTemplateAchieve queryById(Long achieveId) {
return this.hwTemplateAchieveDao.queryById(achieveId);
}
/**
*
*
* @param hwTemplateAchieve
* @param pageRequest
* @return
*/
@Override
public Page<HwTemplateAchieve> queryByPage(HwTemplateAchieve hwTemplateAchieve, PageRequest pageRequest) {
long total = this.hwTemplateAchieveDao.count(hwTemplateAchieve);
return new PageImpl<>(this.hwTemplateAchieveDao.queryAllByLimit(hwTemplateAchieve, pageRequest), pageRequest, total);
}
/**
*
*
* @param hwTemplateAchieve
* @return
*/
@Override
public int insert(HwTemplateAchieve hwTemplateAchieve) {
hwTemplateAchieve.setCreateBy(SecurityUtils.getUsername());
hwTemplateAchieve.setCreateTime(new Date());
HwTemplateAchieveContent content = new HwTemplateAchieveContent();
content.setAchieveContent(hwTemplateAchieve.getAchieveContent());
hwTemplateAchieve.setAchieveContent(null);
int insert = hwTemplateAchieveDao.insert(hwTemplateAchieve);
content.setAchieveId(hwTemplateAchieve.getAchieveId());
int count = hwTemplateAchieveDao.insertContent(content);
return count+insert;
}
/**
*
*
* @param hwTemplateAchieve
* @return
*/
@Override
public int update(HwTemplateAchieve hwTemplateAchieve) {
return hwTemplateAchieveDao.update(hwTemplateAchieve);
}
@Override
public List<SysFile> queryImage(SysFile sysFile) {
return hwTemplateAchieveDao.queryImage(sysFile);
}
@Override
public int saveImage(SysFile sysFile) {
return hwTemplateAchieveDao.saveImage(sysFile);
}
@Override
public List<HwTemplateAchieve> queryAll(HwTemplateAchieve hwTemplateAchieve) {
return hwTemplateAchieveDao.queryAll(hwTemplateAchieve);
}
/**
*
*
* @param achieveId
* @return
*/
@Override
public boolean deleteById(Long achieveId) {
int count = hwTemplateAchieveDao.deleteContentById(achieveId);
int delete = hwTemplateAchieveDao.deleteById(achieveId);
return count+delete > 0;
}
}

@ -0,0 +1,94 @@
package com.ruoyi.basic.service.impl;
import com.ruoyi.basic.domain.HwTemplate;
import com.ruoyi.basic.mapper.HwTemplateDao;
import com.ruoyi.basic.service.HwTemplateService;
import com.ruoyi.common.security.utils.SecurityUtils;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
* (HwTemplate)
*
* @author makejava
* @since 2024-09-18 10:09:26
*/
@Service("hwTemplateService")
public class HwTemplateServiceImpl implements HwTemplateService {
@Resource
private HwTemplateDao hwTemplateDao;
/**
* ID
*
* @param templateId
* @return
*/
@Override
public HwTemplate queryById(Long templateId) {
return this.hwTemplateDao.queryById(templateId);
}
/**
*
*
* @param hwTemplate
* @param pageRequest
* @return
*/
@Override
public Page<HwTemplate> queryByPage(HwTemplate hwTemplate, PageRequest pageRequest) {
long total = this.hwTemplateDao.count(hwTemplate);
return new PageImpl<>(this.hwTemplateDao.queryAllByLimit(hwTemplate, pageRequest), pageRequest, total);
}
/**
*
*
* @param hwTemplate
* @return
*/
@Override
public HwTemplate insert(HwTemplate hwTemplate) {
hwTemplate.setCreateBy(SecurityUtils.getUsername());
hwTemplate.setCreateTime(new Date());
this.hwTemplateDao.insert(hwTemplate);
return hwTemplate;
}
/**
*
*
* @param hwTemplate
* @return
*/
@Override
public int update(HwTemplate hwTemplate) {
int update = this.hwTemplateDao.update(hwTemplate);
return update;
}
@Override
public List<HwTemplate> queryAll(HwTemplate hwTemplate) {
return hwTemplateDao.queryAll(hwTemplate);
}
/**
*
*
* @param templateId
* @return
*/
@Override
public boolean deleteById(Long templateId) {
return this.hwTemplateDao.deleteById(templateId) > 0;
}
}

@ -20,10 +20,7 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.*;
/**
* (LayoutConfig)
@ -99,12 +96,13 @@ public class LayoutConfigServiceImpl implements LayoutConfigService {
}
@Override
public AjaxResult insertSceneConfig(List<Object> items, String option) throws JsonProcessingException {
public AjaxResult insertSceneConfig(List<Object> items, String option,String layoutName) throws JsonProcessingException {
String layoutId = UUID.randomUUID().toString().replaceAll("-", "");
LoginUser loginUser = SecurityUtils.getLoginUser();
LayoutDesc layoutDesc = new LayoutDesc();
layoutDesc.setLayoutId(layoutId);
layoutDesc.setSceneConfig(option);
layoutDesc.setLayoutDesc(layoutName);
// layoutDesc.setCreateBy(loginUser.getUsername());
Date date = new Date();
layoutDesc.setCreateTime(date);

@ -27,7 +27,7 @@ public class LayoutDescServiceImpl implements LayoutDescService {
@Override
public LayoutDesc queryById(Long layoutId) {
return null;
return layoutDescDao.queryById();
}
@Override

@ -14,10 +14,12 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 175.27.215.92:8848
namespace: jrm_iot_dev
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 175.27.215.92:8848
namespace: jrm_iot_dev
# 配置文件格式
file-extension: yml
# 共享配置

@ -0,0 +1,158 @@
<?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.HwGlobalCfgDao">
<resultMap type="com.ruoyi.basic.domain.HwGlobalCfg" id="HwGlobalCfgMap">
<result property="globalCfgId" column="global_cfg_id" jdbcType="INTEGER"/>
<result property="globalCfgName" column="global_cfg_name" jdbcType="VARCHAR"/>
<result property="globalCfgType" column="global_cfg_type" jdbcType="VARCHAR"/>
<result property="globalCfgDate" column="global_cfg_date" jdbcType="VARCHAR"/>
<result property="isDetail" column="is_detail" jdbcType="VARCHAR"/>
<result property="details" column="details" jdbcType="VARCHAR"/>
</resultMap>
<!--查询单个-->
<select id="queryById" resultMap="HwGlobalCfgMap">
select
global_cfg_id, global_cfg_name, global_cfg_type, global_cfg_date, is_detail, details
from hw_global_cfg
where global_cfg_id = #{globalCfgId}
</select>
<!--查询指定行数据-->
<select id="queryAllByLimit" resultMap="HwGlobalCfgMap">
select
global_cfg_id, global_cfg_name, global_cfg_type, global_cfg_date, is_detail, details
from hw_global_cfg
<where>
<if test="globalCfgId != null">
and global_cfg_id = #{globalCfgId}
</if>
<if test="globalCfgName != null and globalCfgName != ''">
and global_cfg_name = #{globalCfgName}
</if>
<if test="globalCfgType != null and globalCfgType != ''">
and global_cfg_type = #{globalCfgType}
</if>
<if test="globalCfgDate != null and globalCfgDate != ''">
and global_cfg_date = #{globalCfgDate}
</if>
<if test="isDetail != null and isDetail != ''">
and is_detail = #{isDetail}
</if>
<if test="details != null">
and details = #{details}
</if>
</where>
limit #{pageable.offset}, #{pageable.pageSize}
</select>
<!--统计总行数-->
<select id="count" resultType="java.lang.Long">
select count(1)
from hw_global_cfg
<where>
<if test="globalCfgId != null">
and global_cfg_id = #{globalCfgId}
</if>
<if test="globalCfgName != null and globalCfgName != ''">
and global_cfg_name = #{globalCfgName}
</if>
<if test="globalCfgType != null and globalCfgType != ''">
and global_cfg_type = #{globalCfgType}
</if>
<if test="globalCfgDate != null and globalCfgDate != ''">
and global_cfg_date = #{globalCfgDate}
</if>
<if test="isDetail != null and isDetail != ''">
and is_detail = #{isDetail}
</if>
<if test="details != null and details.size()>0">
and details = #{details}
</if>
</where>
</select>
<select id="queryAll" resultType="com.ruoyi.basic.domain.HwGlobalCfg"
parameterType="com.ruoyi.basic.domain.HwGlobalCfg">
select *
from hw_global_cfg
<where>
<if test="globalCfgId != null">
and global_cfg_id = #{globalCfgId}
</if>
<if test="globalCfgName != null and globalCfgName != ''">
and global_cfg_name = #{globalCfgName}
</if>
<if test="globalCfgType != null and globalCfgType != ''">
and global_cfg_type = #{globalCfgType}
</if>
<if test="globalCfgDate != null and globalCfgDate != ''">
and global_cfg_date = #{globalCfgDate}
</if>
<if test="isDetail != null and isDetail != ''">
and is_detail = #{isDetail}
</if>
<if test="details != null">
and details = #{details}
</if>
</where>
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="globalCfgId" useGeneratedKeys="true">
insert into hw_global_cfg(global_cfg_name, global_cfg_type, global_cfg_date, is_detail, details)
values (#{globalCfgName}, #{globalCfgType}, #{globalCfgDate}, #{isDetail}, #{details})
</insert>
<insert id="insertBatch" keyProperty="globalCfgId" useGeneratedKeys="true">
insert into hw_global_cfg(global_cfg_name, global_cfg_type, global_cfg_date, is_detail, details)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.globalCfgName}, #{entity.globalCfgType}, #{entity.globalCfgDate}, #{entity.isDetail}, #{entity.details})
</foreach>
</insert>
<insert id="insertOrUpdateBatch" keyProperty="globalCfgId" useGeneratedKeys="true">
insert into hw_global_cfg(global_cfg_name, global_cfg_type, global_cfg_date, is_detail, details)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.globalCfgName}, #{entity.globalCfgType}, #{entity.globalCfgDate}, #{entity.isDetail}, #{entity.details})
</foreach>
on duplicate key update
global_cfg_name = values(global_cfg_name),
global_cfg_type = values(global_cfg_type),
global_cfg_date = values(global_cfg_date),
is_detail = values(is_detail),
details = values(details)
</insert>
<!--通过主键修改数据-->
<update id="update">
update hw_global_cfg
<set>
<if test="globalCfgName != null and globalCfgName != ''">
global_cfg_name = #{globalCfgName},
</if>
<if test="globalCfgType != null and globalCfgType != ''">
global_cfg_type = #{globalCfgType},
</if>
<if test="globalCfgDate != null and globalCfgDate != ''">
global_cfg_date = #{globalCfgDate},
</if>
<if test="isDetail != null and isDetail != ''">
is_detail = #{isDetail},
</if>
<if test="details != null">
details = #{details},
</if>
</set>
where global_cfg_id = #{globalCfgId}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from hw_global_cfg where global_cfg_id = #{globalCfgId}
</delete>
</mapper>

@ -0,0 +1,200 @@
<?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.HwTemplateAchieveDao">
<resultMap type="com.ruoyi.basic.domain.HwTemplateAchieve" id="HwTemplateAchieveMap">
<result property="achieveId" column="achieve_id" jdbcType="INTEGER"/>
<result property="templateId" column="template_id" jdbcType="INTEGER"/>
<result property="achieveName" column="achieve_name" jdbcType="VARCHAR"/>
<result property="achieveContent" column="achieve_content" jdbcType="VARCHAR"/>
<result property="createBy" column="create_by" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="remark" column="remark" jdbcType="VARCHAR"/>
</resultMap>
<!--查询单个-->
<select id="queryById" resultMap="HwTemplateAchieveMap">
select
achieve_id, template_id, achieve_name, achieve_content, create_by, create_time, update_by, update_time, remark
from hw_template_achieve
where achieve_id = #{achieveId}
</select>
<!--查询指定行数据-->
<select id="queryAllByLimit" resultMap="HwTemplateAchieveMap">
select
achieve_id, template_id, achieve_name, achieve_content, create_by, create_time, update_by, update_time, remark
from hw_template_achieve
<where>
<if test="achieveId != null">
and achieve_id = #{achieveId}
</if>
<if test="templateId != null">
and template_id = #{templateId}
</if>
<if test="achieveName != null and achieveName != ''">
and achieve_name = #{achieveName}
</if>
<if test="achieveContent != null and achieveContent != ''">
and achieve_content = #{achieveContent}
</if>
<if test="createBy != null and createBy != ''">
and create_by = #{createBy}
</if>
<if test="createTime != null">
and create_time = #{createTime}
</if>
<if test="updateBy != null and updateBy != ''">
and update_by = #{updateBy}
</if>
<if test="updateTime != null">
and update_time = #{updateTime}
</if>
<if test="remark != null and remark != ''">
and remark = #{remark}
</if>
</where>
limit #{pageable.offset}, #{pageable.pageSize}
</select>
<!--统计总行数-->
<select id="count" resultType="java.lang.Long">
select count(1)
from hw_template_achieve
<where>
<if test="achieveId != null">
and achieve_id = #{achieveId}
</if>
<if test="templateId != null">
and template_id = #{templateId}
</if>
<if test="achieveName != null and achieveName != ''">
and achieve_name = #{achieveName}
</if>
<if test="achieveContent != null and achieveContent != ''">
and achieve_content = #{achieveContent}
</if>
<if test="createBy != null and createBy != ''">
and create_by = #{createBy}
</if>
<if test="createTime != null">
and create_time = #{createTime}
</if>
<if test="updateBy != null and updateBy != ''">
and update_by = #{updateBy}
</if>
<if test="updateTime != null">
and update_time = #{updateTime}
</if>
<if test="remark != null and remark != ''">
and remark = #{remark}
</if>
</where>
</select>
<select id="queryAll" resultType="com.ruoyi.basic.domain.HwTemplateAchieve"
parameterType="com.ruoyi.basic.domain.HwTemplateAchieve">
select a.achieve_id,a.achieve_name,b.achieve_content achieve_content
from hw_template_achieve a left join hw_template_achieve_content b on a.achieve_id = b.achieve_id
<where>
<if test="achieveId != null">
and a.achieve_id = #{achieveId}
</if>
<if test="achieveName != null and achieveName != ''">
and achieve_name like concat('%',#{achieveName},'%')
</if>
<if test="achieveContent != null and achieveContent != ''">
and achieve_content = #{achieveContent}
</if>
<if test="createBy != null and createBy != ''">
and create_by = #{createBy}
</if>
<if test="createTime != null">
and create_time = #{createTime}
</if>
<if test="updateBy != null and updateBy != ''">
and update_by = #{updateBy}
</if>
<if test="updateTime != null">
and update_time = #{updateTime}
</if>
<if test="remark != null and remark != ''">
and remark = #{remark}
</if>
</where>
</select>
<select id="queryImage" resultType="com.ruoyi.system.api.domain.SysFile"
parameterType="com.ruoyi.system.api.domain.SysFile">
select * from sys_file
<where>
<if test="name != null and name != ''">
and name like concat('%',#{name},'%')
</if>
<if test="url != null and url != ''">
and url = #{url}
</if>
</where>
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="achieveId" useGeneratedKeys="true">
insert into hw_template_achieve(template_id, achieve_name, create_by, create_time, update_by, update_time, remark)
values (#{templateId}, #{achieveName}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime}, #{remark})
</insert>
<insert id="insertBatch" keyProperty="achieveId" useGeneratedKeys="true">
insert into hw_template_achieve(template_id, achieve_name, achieve_content, create_by, create_time, update_by, update_time, remark)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.templateId}, #{entity.achieveName}, #{entity.achieveContent}, #{entity.createBy}, #{entity.createTime}, #{entity.updateBy}, #{entity.updateTime}, #{entity.remark})
</foreach>
</insert>
<insert id="insertOrUpdateBatch" keyProperty="achieveId" useGeneratedKeys="true">
insert into hw_template_achieve(template_id, achieve_name, achieve_content, create_by, create_time, update_by, update_time, remark)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.templateId}, #{entity.achieveName}, #{entity.achieveContent}, #{entity.createBy}, #{entity.createTime}, #{entity.updateBy}, #{entity.updateTime}, #{entity.remark})
</foreach>
on duplicate key update
template_id = values(template_id),
achieve_name = values(achieve_name),
achieve_content = values(achieve_content),
create_by = values(create_by),
create_time = values(create_time),
update_by = values(update_by),
update_time = values(update_time),
remark = values(remark)
</insert>
<insert id="insertContent" parameterType="com.ruoyi.basic.domain.HwTemplateAchieveContent">
insert into hw_template_achieve_content(achieve_id, achieve_content)
values
(#{entity.achieveId}, #{entity.achieveContent})
</insert>
<insert id="saveImage">
insert into sys_file(name,url)
values (#{name},#{url})
</insert>
<!--通过主键修改数据-->
<update id="update">
update hw_template_achieve_content
<set>
<if test="entity.achieveContent != null and entity.achieveContent != ''">
achieve_content = #{entity.achieveContent},
</if>
</set>
where achieve_id = #{entity.achieveId}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from hw_template_achieve where achieve_id = #{achieveId}
</delete>
<delete id="deleteContentById">
delete from hw_template_achieve_content where achieve_id = #{achieveId}
</delete>
</mapper>

@ -0,0 +1,156 @@
<?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.HwTemplateDao">
<resultMap type="com.ruoyi.basic.domain.HwTemplate" id="HwTemplateMap">
<result property="templateId" column="template_id" jdbcType="INTEGER"/>
<result property="templateName" column="template_name" jdbcType="VARCHAR"/>
<result property="templateContent" column="template_content" jdbcType="VARCHAR"/>
<result property="createBy" column="create_by" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="remark" column="remark" jdbcType="VARCHAR"/>
</resultMap>
<!--查询单个-->
<select id="queryById" resultMap="HwTemplateMap">
select
template_id, template_name, template_content, create_by, create_time, update_by, update_time, remark
from hw_template
where template_id = #{templateId}
</select>
<!--查询指定行数据-->
<select id="queryAllByLimit" resultMap="HwTemplateMap">
select
template_id, template_name, template_content, create_by, create_time, update_by, update_time, remark
from hw_template
<where>
<if test="templateId != null">
and template_id = #{templateId}
</if>
<if test="templateName != null and templateName != ''">
and template_name = #{templateName}
</if>
<if test="templateContent != null and templateContent != ''">
and template_content = #{templateContent}
</if>
<if test="createBy != null and createBy != ''">
and create_by = #{createBy}
</if>
<if test="createTime != null">
and create_time = #{createTime}
</if>
<if test="updateBy != null and updateBy != ''">
and update_by = #{updateBy}
</if>
<if test="updateTime != null">
and update_time = #{updateTime}
</if>
<if test="remark != null and remark != ''">
and remark = #{remark}
</if>
</where>
limit #{pageable.offset}, #{pageable.pageSize}
</select>
<!--统计总行数-->
<select id="queryAll" resultType="com.ruoyi.basic.domain.HwTemplate" parameterType="com.ruoyi.basic.domain.HwTemplate">
select *
from hw_template
<where>
<if test="templateId != null">
and template_id = #{templateId}
</if>
<if test="templateName != null and templateName != ''">
and template_name = #{templateName}
</if>
<if test="templateContent != null and templateContent != ''">
and template_content = #{templateContent}
</if>
<if test="createBy != null and createBy != ''">
and create_by = #{createBy}
</if>
<if test="createTime != null">
and create_time = #{createTime}
</if>
<if test="updateBy != null and updateBy != ''">
and update_by = #{updateBy}
</if>
<if test="updateTime != null">
and update_time = #{updateTime}
</if>
<if test="remark != null and remark != ''">
and remark = #{remark}
</if>
</where>
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="templateId" useGeneratedKeys="true">
insert into hw_template(template_name, template_content, create_by, create_time, update_by, update_time, remark)
values (#{templateName}, #{templateContent}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime}, #{remark})
</insert>
<insert id="insertBatch" keyProperty="templateId" useGeneratedKeys="true">
insert into hw_template(template_name, template_content, create_by, create_time, update_by, update_time, remark)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.templateName}, #{entity.templateContent}, #{entity.createBy}, #{entity.createTime}, #{entity.updateBy}, #{entity.updateTime}, #{entity.remark})
</foreach>
</insert>
<insert id="insertOrUpdateBatch" keyProperty="templateId" useGeneratedKeys="true">
insert into hw_template(template_name, template_content, create_by, create_time, update_by, update_time, remark)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.templateName}, #{entity.templateContent}, #{entity.createBy}, #{entity.createTime}, #{entity.updateBy}, #{entity.updateTime}, #{entity.remark})
</foreach>
on duplicate key update
template_name = values(template_name),
template_content = values(template_content),
create_by = values(create_by),
create_time = values(create_time),
update_by = values(update_by),
update_time = values(update_time),
remark = values(remark)
</insert>
<!--通过主键修改数据-->
<update id="update">
update hw_template
<set>
<if test="templateName != null and templateName != ''">
template_name = #{templateName},
</if>
<if test="templateContent != null and templateContent != ''">
template_content = #{templateContent},
</if>
<if test="createBy != null and createBy != ''">
create_by = #{createBy},
</if>
<if test="createTime != null">
create_time = #{createTime},
</if>
<if test="updateBy != null and updateBy != ''">
update_by = #{updateBy},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
<if test="remark != null and remark != ''">
remark = #{remark},
</if>
</set>
where template_id = #{templateId}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from hw_template where template_id = #{templateId}
</delete>
</mapper>

@ -157,5 +157,4 @@
delete from layout_config where config_id = #{configId}
</delete>
</mapper>
</mapper>

@ -13,11 +13,8 @@
</resultMap>
<!--查询单个-->
<select id="queryById" resultMap="LayoutDescMap">
select
layout_id, layout_desc, create_by, create_time, update_by, update_time
from layout_desc
where layout_id = #{layoutId}
<select id="queryById" resultType="com.ruoyi.basic.domain.LayoutDesc">
</select>
<!--查询指定行数据-->
@ -76,6 +73,9 @@
<select id="selectAllScenes" resultType="com.ruoyi.basic.domain.LayoutDesc">
select * from layout_desc
</select>
<select id="test" resultType="java.util.Map">
select * from base_line_loss
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="layoutId" useGeneratedKeys="true">
@ -133,5 +133,4 @@
delete from layout_desc where layout_id = #{layoutId}
</delete>
</mapper>
</mapper>

@ -16,6 +16,24 @@
</description>
<dependencies>
<!-- 文件上传 -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.7</version>
</dependency>
<!-- JSON -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.41</version>
</dependency>
<!-- POI -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.16</version>
</dependency>
<!-- SpringCloud Alibaba Nacos -->
<dependency>
@ -111,6 +129,12 @@
<scope>compile</scope>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.26</version>
</dependency>
</dependencies>
<build>

@ -0,0 +1,112 @@
package com.ruoyi.business.controller;
import java.util.ArrayList;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.business.domain.*;
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.service.IHwAlarmInfoService;
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 zangch
* @date 2024-09-05
*/
@RestController
@RequestMapping("/alarmInformation")
public class HwAlarmInfomationController extends BaseController
{
@Autowired
private IHwAlarmInfoService hwAlarmInfoService;
/**
*
*/
@RequiresPermissions("business:alarmInformation:list")
@GetMapping("/list")
public TableDataInfo list(HwAlarmInfo hwAlarmInfo)
{
startPage();
List<HwAlarmInfo> list = hwAlarmInfoService.selectHwAlarmInfoList(hwAlarmInfo);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("business:alarmInformation:export")
@Log(title = "报警信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, HwAlarmInfo hwAlarmInfo)
{
List<HwAlarmInfo> list = hwAlarmInfoService.selectHwAlarmInfoList(hwAlarmInfo);
ExcelUtil<HwAlarmInfo> util = new ExcelUtil<HwAlarmInfo>(HwAlarmInfo.class);
util.exportExcel(response, list, "报警信息数据");
}
/**
*
*/
@RequiresPermissions("business:alarmInformation:query")
@GetMapping(value = "/{alarmInfoId}")
public AjaxResult getInfo(@PathVariable("alarmInfoId") Long alarmInfoId)
{
return success(hwAlarmInfoService.selectHwAlarmInfoByAlarmInfoId(alarmInfoId));
}
/**
*
*/
@RequiresPermissions("business:alarmInformation:add")
@Log(title = "报警信息", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody HwAlarmInfo hwAlarmInfo)
{
return toAjax(hwAlarmInfoService.insertHwAlarmInfo(hwAlarmInfo));
}
/**
*
*/
@RequiresPermissions("business:alarmInformation:edit")
@Log(title = "报警信息", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody HwAlarmInfo hwAlarmInfo)
{
return toAjax(hwAlarmInfoService.updateHwAlarmInformation(hwAlarmInfo));
}
/**
*
*/
@RequiresPermissions("business:alarmInformation:remove")
@Log(title = "报警信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{alarmInfoIds}")
public AjaxResult remove(@PathVariable Long[] alarmInfoIds)
{
return toAjax(hwAlarmInfoService.deleteHwAlarmInfoByAlarmInfoIds(alarmInfoIds));
}
}

@ -138,14 +138,17 @@ public class HwAlarmRuleController extends BaseController {
alarmLevel.setSceneId(sceneId);
List<HwAlarmLevel> alarmLevels = hwAlarmLevelService.selectHwAlarmLevelList(alarmLevel);
HwDevice device = new HwDevice();
device.setSceneId(sceneId);
List<HwDevice> devices = hwDeviceService.selectHwDeviceListWithDeviceMode(device);
// HwDevice device = new HwDevice();
// device.setSceneId(sceneId);
// List<HwDevice> devices = hwDeviceService.selectHwDeviceListWithDeviceMode(device);
List<HwDeviceMode> models = hwDeviceModeService.selectModel(sceneId);
JSONObject result = new JSONObject();
result.put("alarmTypes", alarmTypes);
result.put("alarmLevels",alarmLevels);
result.put("devices",devices);
// result.put("devices",devices);
result.put("models",models);
return success(result);
}

@ -53,6 +53,7 @@ public class HwDeviceController extends BaseController {
@Autowired
private IHwSceneService hwSceneService;
/**
*
*/
@ -246,5 +247,15 @@ public class HwDeviceController extends BaseController {
public void computeOnlineDevicecCount(@PathVariable("days") int days) {
hwDeviceService.computeOnlineDevicecCount(days);
}
@GetMapping("/getDeviceByModel")
public AjaxResult getDeviceByModel(Long modelId){
return AjaxResult.success(hwDeviceModeService.getDeviceByModel(modelId));
}
@GetMapping("/getDeviceLocation")
private AjaxResult getDeviceLocation(Long deviceId){
Map deviceLocation = hwDeviceService.getDeviceLocation(deviceId);
return AjaxResult.success(deviceLocation);
}
}

@ -147,4 +147,6 @@ public class HwDeviceModeController extends BaseController {
public void rebuildTdSuperTables() {
hwDeviceModeService.rebuildTdSuperTables();
}
}

@ -1,23 +1,43 @@
package com.ruoyi.business.controller;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import com.ruoyi.business.domain.*;
import com.ruoyi.business.domain.VO.*;
import com.ruoyi.business.service.*;
import com.ruoyi.business.utils.ExcelUtils;
import com.ruoyi.business.utils.UnitExcelUtils;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.constant.HwDictConstants;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.common.core.web.page.TableDataNameVo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.tdengine.api.domain.TdReturnDataVo;
import io.micrometer.core.instrument.util.StringEscapeUtils;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.Field;
import java.sql.*;
import java.util.*;
import java.util.Date;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/monitorPlatform")
@ -35,6 +55,7 @@ public class HwMonitorPlatformController extends BaseController {
private IHwElectronicFenceService hwElectronicFenceService;
@Autowired
private IHwAlarmInfoService hwAlarmInfoService;
@Autowired HwMonitorUnitAttributeService hwMonitorUnitAttributeService;
@Autowired
private IHwMonitorPlatformService hwMonitorPlatformService;
@ -299,4 +320,242 @@ public class HwMonitorPlatformController extends BaseController {
return success(hwScenes);
}
/**
*
* */
@GetMapping("/selectDeviceLatitudeAndLongitude/{sceneId}")
public AjaxResult selectDeviceLatitudeAndLongitude(@PathVariable("sceneId") Long sceneId){
List<BeaconDevice> beaconDevices = hwDeviceService.selectDeviceLatitudeAndLongitude(sceneId);
return success(beaconDevices);
}
/**
* id
* */
@GetMapping("/selectBeaconDevicesHistory")
public TableDataInfo selectBeaconDevicesHistory(@RequestParam(required = false) Map map){
// List<BeaconDevice> beaconDevices = hwDeviceService.selectBeaconDevicesHistory(map);
List<Map<String, Object>> lists = hwDeviceService.selectBeaconDevicesHistory(map);
if(lists != null){
long total = Long.valueOf(lists.get(lists.size() - 1).get("total").toString());
lists.remove(lists.size() - 1);
TableDataInfo dataTable = getDataTable(lists);
dataTable.setTotal(total);
return dataTable;
}else {
return null;
}
}
/**
* id
* */
@GetMapping("/selectMonitorUnit/{deviceId}")
public AjaxResult selectMonitorUnit(@PathVariable("deviceId") Long deviceId){
HwMonitorUnit hwMonitorUnit = hwDeviceService.selectMonitorUnit(deviceId);
return success(hwMonitorUnit);
}
/**
* id
* */
@GetMapping("/selectMonitorElectronic/{deviceId}")
public AjaxResult selectMonitorElectronic(@PathVariable("deviceId") Long deviceId){
return success(hwDeviceService.selectMonitorElectronic(deviceId));
}
/**
*
* */
@GetMapping("/selectHistoryAndTrendAnalysis")
public TableDataNameVo selectHistoryDevice(@RequestParam(required = false) Map map){
List<Map<String, Object>> list = hwDeviceService.selectHistoryDevice(map);
TableDataInfo dataTable = getDataTable(list);
TableDataNameVo tableDataNameVo = new TableDataNameVo();
if (list.size()>1){
long total = Long.valueOf(list.get(list.size() - 1).get("total").toString());
Map<String, Object> mapName = new HashMap<>();
list.remove(list.size() - 1);
if (list.size()>0){
mapName = list.get(list.size() - 1);
list.remove(list.size() - 1);
}
Map<String, Object> mapTotal = new HashMap<String, Object>();
dataTable = getDataTable(list);
dataTable.setTotal(total);
tableDataNameVo.setTableDataInfo(dataTable);
tableDataNameVo.setMapName(mapName);
return tableDataNameVo;
}
else {
map.remove("startTime");
map.remove("endTime");
List<Map<String, Object>> listNull = hwDeviceService.selectHistoryDevice(map);
Map<String, Object> map1 = new HashMap<String, Object>();
if (listNull.size()>1){
map1 = listNull.get(listNull.size() - 2);
}
dataTable.setTotal(0);
list.get(0).remove("total");
tableDataNameVo.setMapName(map1);
tableDataNameVo.setTableDataInfo(dataTable);
return tableDataNameVo;
}
}
/**
*
* */
@GetMapping("/selectComparison")
public AjaxResult selectComparison(){
List<TreeDeviceVo> list = hwDeviceService.selectComparison();
return success(list);
}
/**
*
* */
@PostMapping("/export")
public void export(HttpServletResponse response,@RequestParam Map map)
{
List<Map<String, Object>> list = hwDeviceService.getExportDevice(map);
List<DeviceExport> exportList = new ArrayList<>();
for (int i = 0; i < list.size(); i++){
DeviceExport deviceExport = new DeviceExport();
if (list.get(i).containsKey("deviceId")){
deviceExport.setDeviceId(Long.valueOf(list.get(i).get("deviceId").toString()));
}
if (list.get(i).containsKey("value1")){
deviceExport.setValue1(list.get(i).get("value1").toString());
}
if (list.get(i).containsKey("voltage")){
deviceExport.setVoltage(list.get(i).get("voltage").toString());
}
if (list.get(i).containsKey("longitude")){
deviceExport.setLongitude(list.get(i).get("longitude").toString());
}
if (list.get(i).containsKey("latitude")){
deviceExport.setLatitude(list.get(i).get("latitude").toString());
}
if (list.get(i).containsKey("ts")){
deviceExport.setTs(list.get(i).get("ts").toString());
}
exportList.add(deviceExport);
}
ExcelUtil<DeviceExport> util = new ExcelUtil<DeviceExport>(DeviceExport.class);
System.out.println(exportList.size());
util.exportExcel(response,exportList,"历史数据导出");
}
/**
*
* */
@GetMapping("/getDeviceByAreaId/{tenantId}")
public AjaxResult getDeviceByAreaId(@PathVariable("tenantId") Long tenantId){
List<HwMonitorUnit> deviceList = hwDeviceService.getDeviceByAreaId(tenantId);
return success(deviceList);
}
/**
*
* */
@PostMapping("/AlarmInfosExport")
@RequiresPermissions("business:monitor:alarm")
public void AlarmInfosExport(HttpServletResponse response,Date startTime,Date endTime) throws IOException, NoSuchFieldException, IllegalAccessException {
List<Long> list1 = hwAlarmInfoService.selectUnitId();
HashMap<String, List<LinkedHashMap>> map = new HashMap<>();
for (Long unitId : list1) {
List<AlarmInfoExportVo> list2 = hwAlarmInfoService.selectAlarmInfoExport1(unitId,startTime,endTime);
List<HwMonitorUnitAttribute> attributes = hwMonitorUnitAttributeService.selectAttributes(unitId);
HwMonitorUnit hwMonitorUnit = hwMonitorUnitService.selectHwMonitorUnitByMonitorUnitId(unitId);
List<LinkedHashMap> excelMap = new ArrayList<LinkedHashMap>();
LinkedHashMap attributeMap = new LinkedHashMap();
for (HwMonitorUnitAttribute attribute : attributes) {
if (attribute!=null){
attributeMap.put(attribute.getAttributeName(),attribute.getAttributeValue());
}
}
for (AlarmInfoExportVo alarmInfo : list2) {
LinkedHashMap voMap = new LinkedHashMap<>();
Class<AlarmInfoExportVo> clazz = AlarmInfoExportVo.class;
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
Excel annotation = field.getAnnotation(Excel.class);
String name = annotation.name();
System.out.println(name);
field.setAccessible(true);
if (field.getName().equals("alarmInfoId")){
System.out.println(field);
// Long alarmInfoId =(Long)field.get(alarmInfo);
Long alarmInfoId = alarmInfo.getAlarmInfoId();
System.out.println(alarmInfoId);
voMap.put(name,alarmInfoId);
}else {
String value = null;
if (field.get(alarmInfo)!=null){
value = field.get(alarmInfo).toString();
}
voMap.put(name,value);
}
}
voMap.putAll(attributeMap);
excelMap.add(voMap);
}
if (CollectionUtil.isNotEmpty(excelMap)){
map.put(hwMonitorUnit.getMonitorUnitName(),excelMap);
}
}
UnitExcelUtils unitExcelUtils = new UnitExcelUtils();
unitExcelUtils.exportAlarmInfos(response,map);
// List<AlarmInfoExportVo> alarmInfoExportVos = hwAlarmInfoService.selectAlarmInfoExport(startTime,endTime);
// ExcelUtil<AlarmInfoExportVo> util = new ExcelUtil<AlarmInfoExportVo>(AlarmInfoExportVo.class);
// util.exportExcel(response,alarmInfoExportVos,"报警数据导出");
}
/**
* excelexcel
* */
@PostMapping("/import")
public JSONArray importUser(@RequestPart("file")MultipartFile file,Long tenantId) throws Exception {
JSONArray array = ExcelUtils.readMultipartFile(file);
// System.out.println("导入数据为:" + array);
hwDeviceService.insertRedis(array,tenantId);
return array;
}
/**
* idexcel
* */
@GetMapping("/getRedisFile/{tenantId}")
public JSONObject getRedisFile(@PathVariable("tenantId") Long tenantId)
{
JSONObject o = hwDeviceService.selectRedisFile(tenantId);
if (o!=null){
return o;
}
else{
return null;
}
}
/**
*
* */
@PostMapping("/selectDeviceByName")
public AjaxResult selectDeviceByName(@RequestBody Map map){
try {
List<HwDevice> deviceList = hwDeviceService.selectMonitorUnitAndDeviceByName(map);
return success(deviceList);
}catch (Exception ex){
return error(String.format("获取设备信息异常:%e",ex.getMessage()));
}
}
}

@ -0,0 +1,112 @@
package com.ruoyi.business.controller;
import com.ruoyi.business.domain.HwMonitorUnitAttribute;
import com.ruoyi.business.service.HwMonitorUnitAttributeService;
import com.ruoyi.common.core.web.domain.AjaxResult;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
/**
* (HwMonitorUnitAttribute)
*
* @author makejava
* @since 2024-09-04 13:20:30
*/
@RestController
@RequestMapping("hwMonitorUnitAttribute")
public class HwMonitorUnitAttributeController {
/**
*
*/
@Resource
private HwMonitorUnitAttributeService hwMonitorUnitAttributeService;
/**
*
*
* @param hwMonitorUnitAttribute
* @param pageRequest
* @return
*/
@GetMapping
public ResponseEntity<Page<HwMonitorUnitAttribute>> queryByPage(HwMonitorUnitAttribute hwMonitorUnitAttribute, PageRequest pageRequest) {
return ResponseEntity.ok(this.hwMonitorUnitAttributeService.queryByPage(hwMonitorUnitAttribute, pageRequest));
}
/**
*
*
* @param id
* @return
*/
@GetMapping("{id}")
public ResponseEntity<HwMonitorUnitAttribute> queryById(@PathVariable("id") Long id) {
return ResponseEntity.ok(this.hwMonitorUnitAttributeService.queryById(id));
}
/**
*
*
* @param hwMonitorUnitAttribute
* @return
*/
@PostMapping
public ResponseEntity<HwMonitorUnitAttribute> add(HwMonitorUnitAttribute hwMonitorUnitAttribute) {
return ResponseEntity.ok(this.hwMonitorUnitAttributeService.insert(hwMonitorUnitAttribute));
}
/**
*
*
* @param hwMonitorUnitAttribute
* @return
*/
@PutMapping
public ResponseEntity<HwMonitorUnitAttribute> edit(HwMonitorUnitAttribute hwMonitorUnitAttribute) {
return ResponseEntity.ok(this.hwMonitorUnitAttributeService.update(hwMonitorUnitAttribute));
}
/**
*
*
* @param id
* @return
*/
@DeleteMapping
public ResponseEntity<Boolean> deleteById(Long id) {
return ResponseEntity.ok(this.hwMonitorUnitAttributeService.deleteById(id));
}
@PostMapping("/addUnitAttribute")
public AjaxResult addUnitAttribute(@RequestBody HwMonitorUnitAttribute hwMonitorUnitAttribute){
int rows = hwMonitorUnitAttributeService.addUnitAttribute(hwMonitorUnitAttribute);
return AjaxResult.success(rows);
}
@GetMapping("/selectAttributeByUnitId")
public AjaxResult selectAttributeByUnitId(Long monitorUnitId){
List<HwMonitorUnitAttribute> attributes = hwMonitorUnitAttributeService.selectAttributeByUnitId(monitorUnitId);
if (attributes.size()==0){
return AjaxResult.success(Collections.emptyList());
}
return AjaxResult.success(attributes);
}
@PostMapping("/updateAttributeByUniitId")
public AjaxResult updateAttributeByUniitId(@RequestBody HwMonitorUnitAttribute hwMonitorUnitAttribute){
return AjaxResult.success(hwMonitorUnitAttributeService.updateAttributeByUniitId(hwMonitorUnitAttribute));
}
@DeleteMapping("/deleteAttributeByUniitId/{attributeId}")
public AjaxResult deleteAttributeByUniitId(@PathVariable Long attributeId){
return AjaxResult.success(hwMonitorUnitAttributeService.deleteAttributeByUniitId(attributeId));
}
}

@ -0,0 +1,42 @@
package com.ruoyi.business.controller;
import com.ruoyi.business.domain.HwOfflineRule;
import com.ruoyi.business.service.HwOfflineRuleService;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.page.TableDataInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/offlineRule")
public class HwOfflineRuleController extends BaseController {
@Autowired
private HwOfflineRuleService hwOfflineRuleService;
@GetMapping("list")
public TableDataInfo list(HwOfflineRule hwOfflineRule){
startPage();
List<HwOfflineRule> hwOfflineRules = hwOfflineRuleService.selectRuleList(hwOfflineRule);
return getDataTable(hwOfflineRules);
}
@GetMapping("/{offlineRuleId}")
public HwOfflineRule selectOfflineRuleById(@PathVariable("offlineRuleId") Long offlineRuleId){
HwOfflineRule hwOfflineRule = hwOfflineRuleService.selectOfflineRuleById(offlineRuleId);
return hwOfflineRule;
}
@DeleteMapping("/{offlineRuleId}")
public int deleteOfflineRuleById(@PathVariable("offlineRuleId") Long offlineRuleId){
return hwOfflineRuleService.deleteOfflineRuleById(offlineRuleId);
}
@PostMapping
public int addOfflineRule(@RequestBody HwOfflineRule hwOfflineRule){
return hwOfflineRuleService.addOfflineRule(hwOfflineRule);
}
}

@ -1,10 +1,13 @@
package com.ruoyi.business.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.http.HttpUtil;
import com.ruoyi.common.core.constant.HwDictConstants;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.domain.SysUser;
@ -110,4 +113,13 @@ public class HwTenantController extends BaseController
{
return toAjax(hwTenantService.deleteHwTenantByTenantIds(tenantIds));
}
@GetMapping("/getAliArea")
public AjaxResult getAliArea(Long areaCode)
{
String url = "https://geo.datav.aliyun.com/areas_v3/bound/"+areaCode+"_full.json";
String result= HttpUtil.get(url, CharsetUtil.CHARSET_UTF_8);
return success(result);
}
}

@ -0,0 +1,131 @@
package com.ruoyi.business.domain;
/**
* @ClassName : BeaconDevice
* @Description :
* @Author :
* @Date: 2024-06-06 15:31
*/
public class BeaconDevice {
private Long deviceId;
private String deviceName;
private Double latitude;
private Double longitude;
private String remark;
private String deviceLocation;
private Long deviceModeId;
private String deviceStatus;
private String ifAlarm;
private String monitorUnitName;
private Boolean alarmElectronFence;
public Boolean getAlarmElectronFence() {
return alarmElectronFence;
}
public void setAlarmElectronFence(Boolean alarmElectronFence) {
this.alarmElectronFence = alarmElectronFence;
}
public String getIfAlarm() {
return ifAlarm;
}
public void setIfAlarm(String ifAlarm) {
this.ifAlarm = ifAlarm;
}
public String getDeviceStatus() {
return deviceStatus;
}
public void setDeviceStatus(String deviceStatus) {
this.deviceStatus = deviceStatus;
}
public Long getDeviceModeId() {
return deviceModeId;
}
public void setDeviceModeId(Long deviceModeId) {
this.deviceModeId = deviceModeId;
}
public String getDeviceLocation() {
return deviceLocation;
}
public void setDeviceLocation(String deviceLocation) {
this.deviceLocation = deviceLocation;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public Long getDeviceId() {
return deviceId;
}
public void setDeviceId(Long deviceId) {
this.deviceId = deviceId;
}
public String getDeviceName() {
return deviceName;
}
public void setDeviceName(String deviceName) {
this.deviceName = deviceName;
}
public Double getLatitude() {
return latitude;
}
public void setLatitude(Double latitude) {
this.latitude = latitude;
}
public Double getLongitude() {
return longitude;
}
public void setLongitude(Double longitude) {
this.longitude = longitude;
}
public String getMonitorUnitName() {
return monitorUnitName;
}
public void setMonitorUnitName(String monitorUnitName) {
this.monitorUnitName = monitorUnitName;
}
@Override
public String toString() {
return "BeaconDevice{" +
"deviceId=" + deviceId +
", deviceName='" + deviceName + '\'' +
", latitude=" + latitude +
", longitude=" + longitude +
", remark='" + remark + '\'' +
", deviceLocation='" + deviceLocation + '\'' +
", deviceModeId=" + deviceModeId +
", deviceStatus='" + deviceStatus + '\'' +
'}';
}
}

@ -111,8 +111,8 @@ public class HwAlarmInfo extends BaseEntity {
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "实际报警时间", width = 30, dateFormat = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "实际报警时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date alarmTime;
/**
@ -125,6 +125,78 @@ public class HwAlarmInfo extends BaseEntity {
private String alarmLevelName;
private String alarmTypeName;
private String areaName;
private String monitorUnitTypeName;
/**
*
* */
private String ifDisposalAll;
private String deviceName;
private String tenantName;
private String sceneName;
private String alarmRuleName;
private String offlineRuleName;
private String electronicFenceName;
public String getDeviceName() {
return deviceName;
}
public void setDeviceName(String deviceName) {
this.deviceName = deviceName;
}
public String getTenantName() {
return tenantName;
}
public void setTenantName(String tenantName) {
this.tenantName = tenantName;
}
public String getSceneName() {
return sceneName;
}
public void setSceneName(String sceneName) {
this.sceneName = sceneName;
}
public String getAlarmRuleName() {
return alarmRuleName;
}
public void setAlarmRuleName(String alarmRuleName) {
this.alarmRuleName = alarmRuleName;
}
public String getOfflineRuleName() {
return offlineRuleName;
}
public void setOfflineRuleName(String offlineRuleName) {
this.offlineRuleName = offlineRuleName;
}
public String getElectronicFenceName() {
return electronicFenceName;
}
public void setElectronicFenceName(String electronicFenceName) {
this.electronicFenceName = electronicFenceName;
}
public String getIfDisposalAll() {
return ifDisposalAll;
}
public void setIfDisposalAll(String ifDisposalAll) {
this.ifDisposalAll = ifDisposalAll;
}
public void setAlarmInfoId(Long alarmInfoId) {
this.alarmInfoId = alarmInfoId;
}
@ -285,6 +357,22 @@ public class HwAlarmInfo extends BaseEntity {
this.alarmTypeName = alarmTypeName;
}
public String getAreaName() {
return areaName;
}
public void setAreaName(String areaName) {
this.areaName = areaName;
}
public String getMonitorUnitTypeName() {
return monitorUnitTypeName;
}
public void setMonitorUnitTypeName(String monitorUnitTypeName) {
this.monitorUnitTypeName = monitorUnitTypeName;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
@ -311,6 +399,16 @@ public class HwAlarmInfo extends BaseEntity {
.append("monitorUnitName", getMonitorUnitName())
.append("alarmLevelName", getAlarmLevelName())
.append("alarmTypeName", getAlarmTypeName())
.append("areaName", getAreaName())
.append("monitorUnitTypeName", getMonitorUnitTypeName())
.append("deviceName", getDeviceName())
.append("tenantName", getTenantName())
.append("sceneName", getSceneName())
.append("offlineRuleName", getOfflineRuleName())
.toString();
}
}

@ -93,6 +93,16 @@ public class HwAlarmRule extends BaseEntity
private Double triggerDataB;
/**
*
*/
private Long triggerTimeFrame;
/**
*
*/
private String phoneNumbers;
@Excel(name = "所属租户")
private String tenantName;
@ -384,6 +394,22 @@ public class HwAlarmRule extends BaseEntity
this.alarmInfoFlag = alarmInfoFlag;
}
public Long getTriggerTimeFrame() {
return triggerTimeFrame;
}
public void setTriggerTimeFrame(Long triggerTimeFrame) {
this.triggerTimeFrame = triggerTimeFrame;
}
public String getPhoneNumbers() {
return phoneNumbers;
}
public void setPhoneNumbers(String phoneNumbers) {
this.phoneNumbers = phoneNumbers;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

@ -47,6 +47,8 @@ public class HwDevice extends BaseEntity {
@Excel(name = "所属监控单元")
private Long monitorUnitId;
private String monitorUnitName;
/**
* 123
*/
@ -170,7 +172,24 @@ public class HwDevice extends BaseEntity {
// @Excel(name = "在线状态", readConverterExp = "1=在线,0离线")
private String onlineStatus;
private String monitorUnitName;
/**
*
* */
private Double longitude;
/**
*
* */
private Double latitude;
private String functionName;
public String getFunctionName() {
return functionName;
}
public void setFunctionName(String functionName) {
this.functionName = functionName;
}
private String sceneName;
private String deviceModeName;
@ -183,6 +202,43 @@ public class HwDevice extends BaseEntity {
private String deviceTypeStr;
private String publicTime;
//是否报警
private String ifAlarm;
public String getIfAlarm() {
return ifAlarm;
}
public void setIfAlarm(String ifAlarm) {
this.ifAlarm = ifAlarm;
}
public Double getLongitude() {
return longitude;
}
public void setLongitude(Double longitude) {
this.longitude = longitude;
}
public Double getLatitude() {
return latitude;
}
public void setLatitude(Double latitude) {
this.latitude = latitude;
}
public String getPublicTime() {
return publicTime;
}
public void setPublicTime(String publicTime) {
this.publicTime = publicTime;
}
public void setDeviceId(Long deviceId) {
this.deviceId = deviceId;
}

@ -98,6 +98,8 @@ public class HwDeviceMode extends BaseEntity {
private String sceneName;
private String deviceModelType;
/**
*
*/
@ -231,6 +233,14 @@ public class HwDeviceMode extends BaseEntity {
this.sceneName = sceneName;
}
public String getDeviceModelType() {
return deviceModelType;
}
public void setDeviceModelType(String deviceModelType) {
this.deviceModelType = deviceModelType;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

@ -113,6 +113,8 @@ public class HwDeviceModeFunction extends BaseEntity
// @Excel(name = "预留字段")
private String propertyField;
private String deviceModelType;
private List<HwDeviceModeParameter> inputParameters;
private List<HwDeviceModeParameter> outputParameters;
@ -316,6 +318,14 @@ public class HwDeviceModeFunction extends BaseEntity
this.outputParameters = outputParameters;
}
public String getDeviceModelType() {
return deviceModelType;
}
public void setDeviceModelType(String deviceModelType) {
this.deviceModelType = deviceModelType;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

@ -64,6 +64,8 @@ public class HwDeviceModeParameter extends BaseEntity
@Excel(name = "预留字段,步长")
private BigDecimal propertyStep;
private String deviceModelType;
public void setModeParameterId(Long modeParameterId)
{
this.modeParameterId = modeParameterId;
@ -155,6 +157,14 @@ public class HwDeviceModeParameter extends BaseEntity
return propertyStep;
}
public String getDeviceModelType() {
return deviceModelType;
}
public void setDeviceModelType(String deviceModelType) {
this.deviceModelType = deviceModelType;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

@ -8,7 +8,7 @@ import com.ruoyi.common.core.web.domain.BaseEntity;
/**
* hw_electronic_fence
*
*
* @author xins
* @date 2023-09-19
*/
@ -76,42 +76,21 @@ public class HwElectronicFence extends BaseEntity
private String circleAreaListStr;
private String alarmInfoFlag;//是否有报警信息关联标识
//电子围栏区域信息
private List<HwFenceArea> hwFenceAreaList;
private String deviceModeName;
private String deviceName;
private Long deviceModeId;
private Long deviceId;
public String getDeviceModeName() {
return deviceModeName;
public List<HwFenceArea> getHwFenceAreaList() {
return hwFenceAreaList;
}
public void setDeviceModeName(String deviceModeName) {
this.deviceModeName = deviceModeName;
}
public String getDeviceName() {
return deviceName;
}
public void setDeviceName(String deviceName) {
this.deviceName = deviceName;
}
public Long getDeviceModeId() {
return deviceModeId;
}
public void setDeviceModeId(Long deviceModeId) {
this.deviceModeId = deviceModeId;
}
public Long getDeviceId() {
return deviceId;
}
public void setDeviceId(Long deviceId) {
this.deviceId = deviceId;
public void setHwFenceAreaList(List<HwFenceArea> hwFenceAreaList) {
this.hwFenceAreaList = hwFenceAreaList;
}
public void setElectronicFenceId(Long electronicFenceId)
@ -119,115 +98,115 @@ public class HwElectronicFence extends BaseEntity
this.electronicFenceId = electronicFenceId;
}
public Long getElectronicFenceId()
public Long getElectronicFenceId()
{
return electronicFenceId;
}
public void setElectronicFenceName(String electronicFenceName)
public void setElectronicFenceName(String electronicFenceName)
{
this.electronicFenceName = electronicFenceName;
}
public String getElectronicFenceName()
public String getElectronicFenceName()
{
return electronicFenceName;
}
public void setTenantId(Long tenantId)
public void setTenantId(Long tenantId)
{
this.tenantId = tenantId;
}
public Long getTenantId()
public Long getTenantId()
{
return tenantId;
}
public void setSceneId(Long sceneId)
public void setSceneId(Long sceneId)
{
this.sceneId = sceneId;
}
public Long getSceneId()
public Long getSceneId()
{
return sceneId;
}
public void setFenceType(String fenceType)
public void setFenceType(String fenceType)
{
this.fenceType = fenceType;
}
public String getFenceType()
public String getFenceType()
{
return fenceType;
}
public void setEffectiveTimeFlag(String effectiveTimeFlag)
public void setEffectiveTimeFlag(String effectiveTimeFlag)
{
this.effectiveTimeFlag = effectiveTimeFlag;
}
public String getEffectiveTimeFlag()
public String getEffectiveTimeFlag()
{
return effectiveTimeFlag;
}
public void setTimeZone(String timeZone)
public void setTimeZone(String timeZone)
{
this.timeZone = timeZone;
}
public String getTimeZone()
public String getTimeZone()
{
return timeZone;
}
public void setEffectiveTime(String effectiveTime)
public void setEffectiveTime(String effectiveTime)
{
this.effectiveTime = effectiveTime;
}
public String getEffectiveTime()
public String getEffectiveTime()
{
return effectiveTime;
}
public void setTriggerStatus(String triggerStatus)
public void setTriggerStatus(String triggerStatus)
{
this.triggerStatus = triggerStatus;
}
public String getTriggerStatus()
public String getTriggerStatus()
{
return triggerStatus;
}
public void setFencePushFlag(String fencePushFlag)
public void setFencePushFlag(String fencePushFlag)
{
this.fencePushFlag = fencePushFlag;
}
public String getFencePushFlag()
public String getFencePushFlag()
{
return fencePushFlag;
}
public void setFencePushContent(String fencePushContent)
public void setFencePushContent(String fencePushContent)
{
this.fencePushContent = fencePushContent;
}
public String getFencePushContent()
public String getFencePushContent()
{
return fencePushContent;
}
public void setFenceRecoverContent(String fenceRecoverContent)
public void setFenceRecoverContent(String fenceRecoverContent)
{
this.fenceRecoverContent = fenceRecoverContent;
}
public String getFenceRecoverContent()
public String getFenceRecoverContent()
{
return fenceRecoverContent;
}
public void setFenceField(String fenceField)
public void setFenceField(String fenceField)
{
this.fenceField = fenceField;
}
public String getFenceField()
public String getFenceField()
{
return fenceField;
}
@ -274,6 +253,38 @@ public class HwElectronicFence extends BaseEntity
this.alarmInfoFlag = alarmInfoFlag;
}
public String getDeviceModeName() {
return deviceModeName;
}
public void setDeviceModeName(String deviceModeName) {
this.deviceModeName = deviceModeName;
}
public String getDeviceName() {
return deviceName;
}
public void setDeviceName(String deviceName) {
this.deviceName = deviceName;
}
public Long getDeviceModeId() {
return deviceModeId;
}
public void setDeviceModeId(Long deviceModeId) {
this.deviceModeId = deviceModeId;
}
public Long getDeviceId() {
return deviceId;
}
public void setDeviceId(Long deviceId) {
this.deviceId = deviceId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

@ -70,6 +70,16 @@ public class HwMonitorUnit extends BaseEntity
private String tenantName;
private boolean normalFlag;//是否正常(如果有报警未处理的则为异常)
private List<HwDevice> devicesList;
public List<HwDevice> getDevicesList() {
return devicesList;
}
public void setDevicesList(List<HwDevice> devicesList) {
this.devicesList = devicesList;
}
private List<HwMonitorUnit> child = new ArrayList<HwMonitorUnit>();
/** 子部门 */
@ -253,4 +263,4 @@ public class HwMonitorUnit extends BaseEntity
.append("monitorUnitField", getMonitorUnitField())
.toString();
}
}
}

@ -0,0 +1,114 @@
package com.ruoyi.business.domain;
import java.io.Serializable;
import java.util.Date;
/**
* (HwMonitorUnitAttribute)
*
* @author makejava
* @since 2024-09-04 13:20:33
*/
public class HwMonitorUnitAttribute implements Serializable {
private static final long serialVersionUID = -41167481835416588L;
/**
* ID
*/
private Long attributeId;
/**
* ID
*/
private Long monitorUnitId;
/**
*
*/
private String attributeName;
/**
*
*/
private String attributeValue;
/**
*
*/
private String createBy;
/**
*
*/
private Date createTime;
/**
*
*/
private String updateBy;
/**
*
*/
private Date updateTime;
public Long getAttributeId() {
return attributeId;
}
public void setAttributeId(Long attributeId) {
this.attributeId = attributeId;
}
public Long getMonitorUnitId() {
return monitorUnitId;
}
public void setMonitorUnitId(Long monitorUnitId) {
this.monitorUnitId = monitorUnitId;
}
public String getAttributeName() {
return attributeName;
}
public void setAttributeName(String attributeName) {
this.attributeName = attributeName;
}
public String getAttributeValue() {
return attributeValue;
}
public void setAttributeValue(String attributeValue) {
this.attributeValue = attributeValue;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getUpdateBy() {
return updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}

@ -1,6 +1,8 @@
package com.ruoyi.business.domain;
import java.math.BigDecimal;
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;
@ -10,7 +12,7 @@ import javax.validation.constraints.NotNull;
/**
* hw_scene
*
*
* @author xins
* @date 2023-08-23
*/
@ -83,138 +85,148 @@ public class HwScene extends BaseEntity
private String selectedDisable;
public void setSceneId(Long sceneId)
private List<HwMonitorUnit> unitList;
public List<HwMonitorUnit> getUnitList() {
return unitList;
}
public void setUnitList(List<HwMonitorUnit> unitList) {
this.unitList = unitList;
}
public void setSceneId(Long sceneId)
{
this.sceneId = sceneId;
}
public Long getSceneId()
public Long getSceneId()
{
return sceneId;
}
public void setSceneName(String sceneName)
public void setSceneName(String sceneName)
{
this.sceneName = sceneName;
}
public String getSceneName()
public String getSceneName()
{
return sceneName;
}
public void setTenantId(Long tenantId)
public void setTenantId(Long tenantId)
{
this.tenantId = tenantId;
}
public Long getTenantId()
public Long getTenantId()
{
return tenantId;
}
public void setSceneModeId(Long sceneModeId)
public void setSceneModeId(Long sceneModeId)
{
this.sceneModeId = sceneModeId;
}
public Long getSceneModeId()
public Long getSceneModeId()
{
return sceneModeId;
}
public void setScenePic(String scenePic)
public void setScenePic(String scenePic)
{
this.scenePic = scenePic;
}
public String getScenePic()
public String getScenePic()
{
return scenePic;
}
public void setDefaultFlag(String defaultFlag)
public void setDefaultFlag(String defaultFlag)
{
this.defaultFlag = defaultFlag;
}
public String getDefaultFlag()
public String getDefaultFlag()
{
return defaultFlag;
}
public void setSceneStatus(String sceneStatus)
public void setSceneStatus(String sceneStatus)
{
this.sceneStatus = sceneStatus;
}
public String getSceneStatus()
public String getSceneStatus()
{
return sceneStatus;
}
public void setAuthMode(String authMode)
public void setAuthMode(String authMode)
{
this.authMode = authMode;
}
public String getAuthMode()
public String getAuthMode()
{
return authMode;
}
public void setModeAccount(String modeAccount)
public void setModeAccount(String modeAccount)
{
this.modeAccount = modeAccount;
}
public String getModeAccount()
public String getModeAccount()
{
return modeAccount;
}
public void setModeKey(String modeKey)
public void setModeKey(String modeKey)
{
this.modeKey = modeKey;
}
public String getModeKey()
public String getModeKey()
{
return modeKey;
}
public void setModeSecret(String modeSecret)
public void setModeSecret(String modeSecret)
{
this.modeSecret = modeSecret;
}
public String getModeSecret()
public String getModeSecret()
{
return modeSecret;
}
public void setPreserveTime(BigDecimal preserveTime)
public void setPreserveTime(BigDecimal preserveTime)
{
this.preserveTime = preserveTime;
}
public BigDecimal getPreserveTime()
public BigDecimal getPreserveTime()
{
return preserveTime;
}
public void setTestPreserveTime(BigDecimal testPreserveTime)
public void setTestPreserveTime(BigDecimal testPreserveTime)
{
this.testPreserveTime = testPreserveTime;
}
public BigDecimal getTestPreserveTime()
public BigDecimal getTestPreserveTime()
{
return testPreserveTime;
}
public void setSceneEnvironment(String sceneEnvironment)
public void setSceneEnvironment(String sceneEnvironment)
{
this.sceneEnvironment = sceneEnvironment;
}
public String getSceneEnvironment()
public String getSceneEnvironment()
{
return sceneEnvironment;
}
public void setSceneField(String sceneField)
public void setSceneField(String sceneField)
{
this.sceneField = sceneField;
}
public String getSceneField()
public String getSceneField()
{
return sceneField;
}

@ -104,6 +104,18 @@ public class HwTenant extends BaseEntity {
// @Excel(name = "预留字段")
private String tenantField;
/**
*
*/
private String tenantMapCode;
public String getTenantMapCode() {
return tenantMapCode;
}
public void setTenantMapCode(String tenantMapCode) {
this.tenantMapCode = tenantMapCode;
}
public void setTenantId(Long tenantId) {
this.tenantId = tenantId;

@ -0,0 +1,125 @@
package com.ruoyi.business.domain.VO;
import com.ruoyi.common.core.annotation.Excel;
import lombok.Data;
import javax.validation.constraints.Email;
/**
* @ClassName : AlarmInfoExportVo
* @Description :
* @Author :
* @Date: 2024-06-14 09:52
*/
@Data
public class AlarmInfoExportVo {
@Excel(name = "报警id")
private Long alarmInfoId;
@Excel(name = "报警位置")
private String monitorUnitName;
// @Excel(name = "报警级别名称")
// private String alarmLevelName;
@Excel(name = "报警类型名称")
private String alarmTypeName;
@Excel(name = "报警时间")
private String alarmTime;
@Excel(name = "ID")
private String monitorUnitId;
@Excel(name = "状态")
private String monitorUnitStatus;
@Excel(name = "类型")
private String monitorUnitTypeName;
@Excel(name = "报警区域")
private String areaName;
// public Long getAlarmInfoId() {
// return alarmInfoId;
// }
//
// public void setAlarmInfoId(Long alarmInfoId) {
// this.alarmInfoId = alarmInfoId;
// }
//
// public String getAreaName() {
// return areaName;
// }
//
// public void setAreaName(String areaName) {
// this.areaName = areaName;
// }
//
// public String getMonitorUnitName() {
// return monitorUnitName;
// }
//
// public void setMonitorUnitName(String monitorUnitName) {
// this.monitorUnitName = monitorUnitName;
// }
//
// public String getAlarmLevelName() {
// return alarmLevelName;
// }
//
// public void setAlarmLevelName(String alarmLevelName) {
// this.alarmLevelName = alarmLevelName;
// }
//
// public String getAlarmTypeName() {
// return alarmTypeName;
// }
//
// public void setAlarmTypeName(String alarmTypeName) {
// this.alarmTypeName = alarmTypeName;
// }
//
// public String getAlarmTime() {
// return alarmTime;
// }
//
// public void setAlarmTime(String alarmTime) {
// this.alarmTime = alarmTime;
// }
// public String getMonitor_unit_id() {
// return monitor_unit_id;
// }
//
// public void setMonitor_unit_id(String monitor_unit_id) {
// this.monitor_unit_id = monitor_unit_id;
// }
//
// public String getMonitor_unit_status() {
// return monitor_unit_status;
// }
//
// public void setMonitor_unit_status(String monitor_unit_status) {
// this.monitor_unit_status = monitor_unit_status;
// }
//
// public String getMonitor_unit_type_name() {
// return monitor_unit_type_name;
// }
//
// public void setMonitor_unit_type_name(String monitor_unit_type_name) {
// this.monitor_unit_type_name = monitor_unit_type_name;
// }
// @Override
// public String toString() {
// return "AlarmInfoExportVo{" +
// "alarmInfoId=" + alarmInfoId +
// ", monitorUnitName='" + monitorUnitName + '\'' +
// ", alarmLevelName='" + alarmLevelName + '\'' +
// ", alarmTypeName='" + alarmTypeName + '\'' +
// ", alarmTime='" + alarmTime + '\'' +
// '}';
// }
}

@ -9,6 +9,7 @@ import java.util.List;
* @Date: 2023-09-04 09:00
*/
public class AllNumsVo {
private Integer beaconDeviceSum;
private String sceneId;
private Integer subSum;
private Integer sum;
@ -37,6 +38,14 @@ public class AllNumsVo {
this.sum = sum;
}
public Integer getBeaconDeviceSum() {
return beaconDeviceSum;
}
public void setBeaconDeviceSum(Integer beaconDeviceSum) {
this.beaconDeviceSum = beaconDeviceSum;
}
@Override
public String toString() {
return "AllNumsVo{" +

@ -0,0 +1,85 @@
package com.ruoyi.business.domain.VO;
import com.ruoyi.common.core.annotation.Excel;
import org.springframework.web.bind.annotation.ExceptionHandler;
/**
* @ClassName : DeviceExport
* @Description :
* @Author :
* @Date: 2024-06-12 13:26
*/
public class DeviceExport {
@Excel(name = "设备ID")
private Long deviceId;
@Excel(name = "温度")
private String value1;
@Excel(name = "电压")
private String voltage;
@Excel(name = "经度")
private String longitude;
@Excel(name = "纬度")
private String latitude;
@Excel(name = "记录时间")
private String ts;
public Long getDeviceId() {
return deviceId;
}
public void setDeviceId(Long deviceId) {
this.deviceId = deviceId;
}
public String getValue1() {
return value1;
}
public void setValue1(String value1) {
this.value1 = value1;
}
public String getVoltage() {
return voltage;
}
public void setVoltage(String voltage) {
this.voltage = voltage;
}
public String getLongitude() {
return longitude;
}
public void setLongitude(String longitude) {
this.longitude = longitude;
}
public String getLatitude() {
return latitude;
}
public void setLatitude(String latitude) {
this.latitude = latitude;
}
public String getTs() {
return ts;
}
public void setTs(String ts) {
this.ts = ts;
}
@Override
public String toString() {
return "DeviceExport{" +
"deviceId=" + deviceId +
", value1='" + value1 + '\'' +
", voltage='" + voltage + '\'' +
", longitude='" + longitude + '\'' +
", latitude='" + latitude + '\'' +
", ts='" + ts + '\'' +
'}';
}
}

@ -1,6 +1,7 @@
package com.ruoyi.business.domain.VO;
import com.ruoyi.business.domain.HwDeviceModeFunction;
import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
import java.util.List;
@ -14,7 +15,7 @@ import java.util.Map;
* @Version :1.0
*/
@Data
public class HwDeviceVo {
public class HwDeviceVo extends BaseEntity {
private Long deviceId;

@ -0,0 +1,115 @@
package com.ruoyi.business.domain.VO;
import com.ruoyi.business.domain.HwDevice;
import com.ruoyi.business.domain.HwMonitorUnit;
import com.ruoyi.common.core.web.domain.BaseEntity;
import java.util.List;
/**
* @ClassName : TreeAreaVo
* @Description :
* @Author :
* @Date: 2024-06-13 10:20
*/
public class TreeAreaVo {
private Long areaId;
private String areaName;
// private String ancestors;
//
// private Long parentId;
//
// private String areaStatus;
//
// private Long orderNum;
private List<TreeAreaVo> listArea;
private List<HwDevice> deviceList;
private List<HwMonitorUnit> monitorUnitList;
public List<HwMonitorUnit> getMonitorUnitList() {
return monitorUnitList;
}
public void setMonitorUnitList(List<HwMonitorUnit> monitorUnitList) {
this.monitorUnitList = monitorUnitList;
}
public List<HwDevice> getDeviceList() {
return deviceList;
}
public void setDeviceList(List<HwDevice> deviceList) {
this.deviceList = deviceList;
}
public Long getAreaId() {
return areaId;
}
public void setAreaId(Long areaId) {
this.areaId = areaId;
}
public String getAreaName() {
return areaName;
}
public void setAreaName(String areaName) {
this.areaName = areaName;
}
//
// public String getAncestors() {
// return ancestors;
// }
//
// public void setAncestors(String ancestors) {
// this.ancestors = ancestors;
// }
//
// public Long getParentId() {
// return parentId;
// }
//
// public void setParentId(Long parentId) {
// this.parentId = parentId;
// }
//
// public String getAreaStatus() {
// return areaStatus;
// }
//
// public void setAreaStatus(String areaStatus) {
// this.areaStatus = areaStatus;
// }
//
// public Long getOrderNum() {
// return orderNum;
// }
//
// public void setOrderNum(Long orderNum) {
// this.orderNum = orderNum;
// }
public List<TreeAreaVo> getListArea() {
return listArea;
}
public void setListArea(List<TreeAreaVo> listArea) {
this.listArea = listArea;
}
@Override
public String toString() {
return "TreeAreaVo{" +
"areaId=" + areaId +
", areaName='" + areaName + '\'' +
", listArea=" + listArea +
'}';
}
}

@ -0,0 +1,73 @@
package com.ruoyi.business.domain.VO;
import java.util.List;
/**
* @ClassName : TreeDeviceVo
* @Description :
* @Author :
* @Date: 2024-06-11 17:47
*/
public class TreeDeviceVo {
private Long voId;
private String voName;
private Long parentId;
private List<TreeDeviceVo> voList;
private String prop;
public String getProp() {
return prop;
}
public void setProp(String prop) {
this.prop = prop;
}
public Long getVoId() {
return voId;
}
public void setVoId(Long voId) {
this.voId = voId;
}
public String getVoName() {
return voName;
}
public void setVoName(String voName) {
this.voName = voName;
}
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public List<TreeDeviceVo> getVoList() {
return voList;
}
public void setVoList(List<TreeDeviceVo> voList) {
this.voList = voList;
}
@Override
public String toString() {
return "TreeDeviceVo{" +
"voId=" + voId +
", voName='" + voName + '\'' +
", parentId=" + parentId +
", voList=" + voList +
", prop=" + prop +
'}';
}
}

@ -1,21 +1,29 @@
package com.ruoyi.business.mapper;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import com.ruoyi.business.domain.HwAlarmInfo;
import com.ruoyi.business.domain.VO.AlarmInfoExportVo;
import com.ruoyi.business.domain.VO.AlarmInfoVo;
import com.ruoyi.business.domain.VO.AlarmTypeVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* Mapper
*
*
* @author xins
* @date 2023-09-15
*/
public interface HwAlarmInfoMapper
@Mapper
public interface HwAlarmInfoMapper
{
/**
*
*
*
* @param alarmInfoId
* @return
*/
@ -23,7 +31,7 @@ public interface HwAlarmInfoMapper
/**
*
*
*
* @param hwAlarmInfo
* @return
*/
@ -31,7 +39,7 @@ public interface HwAlarmInfoMapper
/**
*
*
*
* @param hwAlarmInfo
* @return
*/
@ -39,15 +47,16 @@ public interface HwAlarmInfoMapper
/**
*
*
*
* @param hwAlarmInfo
* @return
*/
public int updateHwAlarmInfo(HwAlarmInfo hwAlarmInfo);
/**
*
*
*
* @param alarmInfoId
* @return
*/
@ -55,7 +64,7 @@ public interface HwAlarmInfoMapper
/**
*
*
*
* @param alarmInfoIds
* @return
*/
@ -74,4 +83,21 @@ public interface HwAlarmInfoMapper
* @return int
*/
public int selectAlarmCountByMonitorUnitId(Long monitorUnitId);
/**
*
* */
List<AlarmInfoExportVo> selectAlarmInfoExport(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
/**
*
* */
public int updateHwAlarmInfoAllByDevice(HwAlarmInfo hwAlarmInfo);
// List<AlarmInfoExportVo> selectAlarmInfoExport1(@Param("monitorUnitId")Long monitorUnitId);
List<AlarmInfoExportVo> selectAlarmInfoExport1(@Param("monitorUnitId")Long monitorUnitId,@Param("startTime") Date startTime, @Param("endTime") Date endTime);
List<Long> selectUnitId();
int updateHwAlarmInformation(HwAlarmInfo hwAlarmInformation);
}

@ -3,6 +3,8 @@ package com.ruoyi.business.mapper;
import java.util.List;
import com.ruoyi.business.domain.HwAlarmRule;
import com.ruoyi.business.domain.HwAlarmRuleLink;
import com.ruoyi.business.domain.HwDevice;
import com.ruoyi.business.domain.HwDeviceMode;
/**
* Mapper
@ -18,7 +20,7 @@ public interface HwAlarmRuleMapper
* @param alarmRuleId
* @return
*/
public HwAlarmRule selectHwAlarmRuleByAlarmRuleId(Long alarmRuleId);
public List<HwAlarmRule> selectHwAlarmRuleByAlarmRuleId(Long alarmRuleId);
/**
*
@ -92,4 +94,6 @@ public interface HwAlarmRuleMapper
* @return
*/
public int deleteHwAlarmRuleLinkByAlarmRuleId(Long alarmRuleId);
HwDeviceMode selectModeByDeviceId(Long deviceId);
}

@ -1,9 +1,15 @@
package com.ruoyi.business.mapper;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.ruoyi.business.domain.HwDevice;
import com.ruoyi.business.domain.VO.DeviceModeVo;
import com.ruoyi.business.domain.VO.HwMonitorUnitVo;
import com.ruoyi.business.domain.VO.TreeAreaVo;
import com.ruoyi.business.domain.VO.TreeDeviceVo;
import org.apache.ibatis.annotations.Param;
/**
* Mapper
@ -26,7 +32,7 @@ public interface HwDeviceMapper
/**
* 3.
* */
public List<DeviceModeVo> selectDeviceModeNameVo();
public List<DeviceModeVo> selectDeviceModeNameVo(Long tenantId);
/**
*
*
@ -108,9 +114,9 @@ public interface HwDeviceMapper
* @return HwDevice
*/
public HwDevice selectHwDeviceByDeviceCode(String deviceCode);
public int selectDeviceNumCount(HwDevice hwDevice);
public int selectAbnormalDeviceNumCount(HwDevice hwDevice);
@ -134,4 +140,40 @@ public interface HwDeviceMapper
* @return List<HwDevice>
*/
public List<HwDevice> selectUnallocatedList(HwDevice hwDevice);
/**
*
* */
List<TreeDeviceVo> selectDeviceList();
/**
*
* */
public String selectPropBydeviceIdAndFunctionName(@Param(value = "deviceModeId") Long deviceModeId,@Param(value = "functionName") String functionName);
/**
*
* */
List<HwDevice> getDeviceByAreaId(@Param(value = "tenantId") Long tenantId,@Param(value = "areaId") Long areaId);
List<TreeAreaVo> getTreeArea(Long areaId);
/**
*
* */
List<HwDevice> getDeviceListInMonitorUnit(Long monitorUnitId);
/**
*
* */
String selectFunctionNameByFunctionIdentifier(@Param("functionIdentifier") String functionIdentifier,@Param("modeId") Long modeId);
/**
* id
* */
Long selectDeviceIfAlarm(Long deviceId);
List<HwDevice> getDeviceByModel(Long modelId);
Long selectDeviceIfAlarmElectronFence(Long deviceId);
Long selectModeIdByDeviceId(String deviceId);
}

@ -2,6 +2,7 @@ package com.ruoyi.business.mapper;
import java.util.List;
import com.ruoyi.business.domain.HwDeviceModeFunction;
import org.apache.ibatis.annotations.Param;
/**
* Mapper
@ -58,4 +59,7 @@ public interface HwDeviceModeFunctionMapper
* @return
*/
public int deleteHwDeviceModeFunctionByModeFunctionIds(Long[] modeFunctionIds);
String selectUbitByIdAndName(@Param("dataFunctionIdentifier") String dataFunctionIdentifier,@Param("modeId") Long modeId);
}

@ -143,4 +143,6 @@ public interface HwDeviceModeMapper
* @return
*/
public List<HwDeviceMode> selectHwDeviceModeJoinList(HwDeviceMode hwDeviceMode);
List<HwDeviceMode> selectModel(Long sceneId);
}

@ -114,4 +114,10 @@ public interface HwElectronicFenceMapper
* @return
*/
public int deleteHwFenceAreaByElectronicFenceId(Long electronicFenceId);
/**
* id
* */
List<HwElectronicFence> selectMonitorElectronic(Long deviceId);
}

@ -58,4 +58,6 @@ public interface HwFenceTargetMapper
* @return
*/
public int deleteHwFenceTargetByTargetIds(Long[] targetIds);
public int deleteHwFenceTargetByFenceId(Long[] electronicFenceIds);
}

@ -0,0 +1,92 @@
package com.ruoyi.business.mapper;
import com.ruoyi.business.domain.HwMonitorUnitAttribute;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* (HwMonitorUnitAttribute)访
*
* @author makejava
* @since 2024-09-04 13:20:30
*/
public interface HwMonitorUnitAttributeDao {
/**
* ID
*
* @param attributeId
* @return
*/
HwMonitorUnitAttribute queryById(Long attributeId);
/**
*
*
* @param hwMonitorUnitAttribute
* @param pageable
* @return
*/
List<HwMonitorUnitAttribute> queryAllByLimit(HwMonitorUnitAttribute hwMonitorUnitAttribute, @Param("pageable") Pageable pageable);
/**
*
*
* @param hwMonitorUnitAttribute
* @return
*/
long count(HwMonitorUnitAttribute hwMonitorUnitAttribute);
/**
*
*
* @param hwMonitorUnitAttribute
* @return
*/
int insert(HwMonitorUnitAttribute hwMonitorUnitAttribute);
/**
* MyBatisforeach
*
* @param entities List<HwMonitorUnitAttribute>
* @return
*/
int insertBatch(@Param("entities") List<HwMonitorUnitAttribute> entities);
/**
* MyBatisforeach
*
* @param entities List<HwMonitorUnitAttribute>
* @return
* @throws org.springframework.jdbc.BadSqlGrammarException ListSQL
*/
int insertOrUpdateBatch(@Param("entities") List<HwMonitorUnitAttribute> entities);
/**
*
*
* @param hwMonitorUnitAttribute
* @return
*/
int update(HwMonitorUnitAttribute hwMonitorUnitAttribute);
/**
*
*
* @param attributeId
* @return
*/
int deleteById(Long attributeId);
List<HwMonitorUnitAttribute> selectAttributeByUnitId(Long monitorUnitId);
int updateAttributeByUniitId(HwMonitorUnitAttribute hwMonitorUnitAttribute);
int deleteAttributeByUniitId(Long attributeId);
List<HwMonitorUnitAttribute> selectAttributes(Long unitId);
}

@ -1,11 +1,13 @@
package com.ruoyi.business.mapper;
import java.util.List;
import java.util.Map;
import com.alibaba.druid.support.http.MonitorClientContextListener;
import com.ruoyi.business.domain.HwMonitorUnit;
import com.ruoyi.business.domain.HwScene;
import com.ruoyi.business.domain.VO.*;
import org.apache.ibatis.annotations.Param;
/**
* Mapper
@ -25,22 +27,22 @@ public interface HwMonitorUnitMapper
/**
* ()
* */
public List<HwMonitorUnitVo> selectMonitorPercentage();
public List<HwMonitorUnitVo> selectMonitorPercentage(Long tenantId);
/**
*
* */
public List<AllNumsVo> selectAllNums();
public List<AllNumsVo> selectsum();
//查询id与name的结果集
List<HwMonitorUnitVo> selectSceneNameById();
Integer selectSubSetNums(Long sceneId);
List<HwMonitorUnitVo> selectSceneNameById(Long tenantId);
Integer selectSubSetNums(@Param("tenantId") Long tenantId,@Param("sceneId")Long sceneId);
/**
*
* */
public List<HwMonitorUnit> selectLimitSubMonitorUnit(HwMonitorUnit hwMonitorUnit);
Integer selectReleatedDeviceIdNums(Long deviceCode);
Integer selectDeviceNums(Long sceneId);
Integer selectDeviceNums(@Param("sceneId")Long sceneId,@Param("tenantId")Long tenantId);
Integer selectSubDeviceSum(Long sceneId);
/**
@ -155,4 +157,31 @@ public interface HwMonitorUnitMapper
*/
public int deleteMonitorUnitById(Long monitorUnitId);
}
/**
*
* */
Integer selectBeaconDeviceNums(Long sceneId);
/**
*
* */
Integer[] selectBeaconDeviceBySceneId(Long sceneId);
/**
* id
* */
HwMonitorUnit selectMonitorUnit(Long deviceId);
/**
* map
* */
List<TreeDeviceVo> selectMonitorUnitReturnMap();
/**
* id
* */
List<HwMonitorUnit> getMonitorUnitByAreaId(@Param(value = "tenantId") Long tenantId, @Param(value = "areaId") Long areaId);
List<HwMonitorUnit> selectMonitorUnitListHavAreaId(Long tenantId);
}

@ -0,0 +1,17 @@
package com.ruoyi.business.mapper;
import com.ruoyi.business.domain.HwOfflineRule;
import java.util.List;
public interface HwOfflineRuleMapper {
List<HwOfflineRule> selectHwOfflineRuleJoinList(HwOfflineRule hwOfflineRule);
HwOfflineRule selectOfflineRuleById(Long offlineRuleId);
int deleteOfflineRuleById(Long offlineRuleId);
int addOfflineRule(HwOfflineRule hwOfflineRule);
}

@ -1,8 +1,12 @@
package com.ruoyi.business.mapper;
import java.util.List;
import java.util.Map;
import com.ruoyi.business.domain.HwScene;
import com.ruoyi.business.domain.VO.HwSceneVo;
import com.ruoyi.business.domain.VO.TreeDeviceVo;
import org.apache.ibatis.annotations.Param;
/**
* Mapper
@ -66,4 +70,11 @@ public interface HwSceneMapper
* @return
*/
public int deleteHwSceneBySceneIds(Long[] sceneIds);
/**
*
* */
public List<TreeDeviceVo> selectHwSceneListReturnMap();
HwScene selectHwSceneByTenantId(@Param("tenantId") Long tenantId);
}

@ -0,0 +1,68 @@
package com.ruoyi.business.service;
import com.ruoyi.business.domain.HwMonitorUnitAttribute;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import java.util.List;
/**
* (HwMonitorUnitAttribute)
*
* @author makejava
* @since 2024-09-04 13:20:34
*/
public interface HwMonitorUnitAttributeService {
/**
* ID
*
* @param attributeId
* @return
*/
HwMonitorUnitAttribute queryById(Long attributeId);
/**
*
*
* @param hwMonitorUnitAttribute
* @param pageRequest
* @return
*/
Page<HwMonitorUnitAttribute> queryByPage(HwMonitorUnitAttribute hwMonitorUnitAttribute, PageRequest pageRequest);
/**
*
*
* @param hwMonitorUnitAttribute
* @return
*/
HwMonitorUnitAttribute insert(HwMonitorUnitAttribute hwMonitorUnitAttribute);
/**
*
*
* @param hwMonitorUnitAttribute
* @return
*/
HwMonitorUnitAttribute update(HwMonitorUnitAttribute hwMonitorUnitAttribute);
/**
*
*
* @param attributeId
* @return
*/
boolean deleteById(Long attributeId);
int addUnitAttribute(HwMonitorUnitAttribute hwMonitorUnitAttribute);
List<HwMonitorUnitAttribute> selectAttributeByUnitId(Long monitorUnitId);
int updateAttributeByUniitId(HwMonitorUnitAttribute hwMonitorUnitAttribute);
int deleteAttributeByUniitId(Long attributeId);
List<HwMonitorUnitAttribute> selectAttributes(Long unitId);
}

@ -0,0 +1,15 @@
package com.ruoyi.business.service;
import com.ruoyi.business.domain.HwOfflineRule;
import java.util.List;
public interface HwOfflineRuleService {
List<HwOfflineRule> selectRuleList(HwOfflineRule hwOfflineRule);
HwOfflineRule selectOfflineRuleById(Long offlineRuleId);
int deleteOfflineRuleById(Long offlineRuleId);
int addOfflineRule(HwOfflineRule hwOfflineRule);
}

@ -1,20 +1,25 @@
package com.ruoyi.business.service;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import com.ruoyi.business.domain.HwAlarmInfo;
import com.ruoyi.business.domain.VO.AlarmInfoExportVo;
import com.ruoyi.business.domain.VO.AlarmTypeVo;
/**
* Service
*
*
* @author xins
* @date 2023-09-15
*/
public interface IHwAlarmInfoService
public interface IHwAlarmInfoService
{
/**
*
*
*
* @param alarmInfoId
* @return
*/
@ -22,7 +27,7 @@ public interface IHwAlarmInfoService
/**
*
*
*
* @param hwAlarmInfo
* @return
*/
@ -30,7 +35,7 @@ public interface IHwAlarmInfoService
/**
*
*
*
* @param hwAlarmInfo
* @return
*/
@ -38,7 +43,7 @@ public interface IHwAlarmInfoService
/**
*
*
*
* @param hwAlarmInfo
* @return
*/
@ -46,7 +51,7 @@ public interface IHwAlarmInfoService
/**
*
*
*
* @param alarmInfoIds
* @return
*/
@ -54,7 +59,7 @@ public interface IHwAlarmInfoService
/**
*
*
*
* @param alarmInfoId
* @return
*/
@ -68,4 +73,15 @@ public interface IHwAlarmInfoService
* @return List<AlarmTypeVo>
*/
public List<AlarmTypeVo> selectAlarmsByAlarmType(Long sceneId);
/**
*
* */
List<AlarmInfoExportVo> selectAlarmInfoExport(Date startTime, Date endTime);
List<AlarmInfoExportVo> selectAlarmInfoExport1(Long monitorUnitId,Date startTime, Date endTime);
List<Long> selectUnitId();
int updateHwAlarmInformation(HwAlarmInfo hwAlarmInformation);
}

@ -3,6 +3,7 @@ package com.ruoyi.business.service;
import java.util.List;
import java.util.Map;
import com.ruoyi.business.domain.HwDevice;
import com.ruoyi.business.domain.HwDeviceMode;
import com.ruoyi.business.domain.HwDeviceModeFunction;
import com.ruoyi.business.domain.HwDeviceModeParameter;
@ -134,4 +135,9 @@ public interface IHwDeviceModeService
*/
public HwDeviceMode selectHwDeviceModeByDeviceId(Long deviceId);
List<HwDeviceMode> selectModel(Long sceneId);
List<HwDevice> getDeviceByModel(Long modelId);
// Map getDeviceLocation(Long deviceId);
}

@ -1,10 +1,12 @@
package com.ruoyi.business.service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.business.domain.HwDevice;
import com.ruoyi.business.domain.*;
import com.ruoyi.business.domain.VO.*;
import com.ruoyi.common.datascope.annotation.DataScope;
@ -213,4 +215,54 @@ public interface IHwDeviceService {
*/
public List<HwDevice> selectUnallocatedList(HwDevice device);
/**
*
* */
public List<BeaconDevice> selectDeviceLatitudeAndLongitude(Long sceneId);
/**
*
* */
public List<Map<String, Object>> selectBeaconDevicesHistory(Map map);
/**
*
* */
public HwMonitorUnit selectMonitorUnit(Long deviceId);
/**
*
* */
public List<Map<String,Object>> selectHistoryDevice(Map map);
/**
*
* */
public List<TreeDeviceVo> selectComparison();
/**
*
* */
List<Map<String, Object>> getExportDevice(Map map);
/**
*
* */
List<HwMonitorUnit> getDeviceByAreaId(Long tenantId);
/**
* id
* */
List<HwElectronicFence> selectMonitorElectronic(Long deviceId);
/**
* redis
* */
void insertRedis(JSONArray jsonArray,Long tenantId);
JSONObject selectRedisFile(Long tenantId);
/**
* /
* */
List<HwDevice>selectMonitorUnitAndDeviceByName(Map map);
Map getDeviceLocation(Long deviceId);
}

@ -1,16 +1,18 @@
package com.ruoyi.business.service.impl;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
import com.ruoyi.business.domain.HwAlarmType;
import com.ruoyi.business.domain.VO.AlarmInfoExportVo;
import com.ruoyi.business.domain.VO.AlarmTypeVo;
import com.ruoyi.business.mapper.HwAlarmTypeMapper;
import com.ruoyi.common.core.constant.HwDictConstants;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.datascope.annotation.DataScope;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.model.LoginUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.business.mapper.HwAlarmInfoMapper;
@ -51,6 +53,10 @@ public class HwAlarmInfoServiceImpl implements IHwAlarmInfoService {
@Override
@DataScope(tenantAlias = "hai")
public List<HwAlarmInfo> selectHwAlarmInfoList(HwAlarmInfo hwAlarmInfo) {
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = loginUser.getSysUser();
Long tenantId = sysUser.getTenantId();
hwAlarmInfo.setTenantId(tenantId);
return hwAlarmInfoMapper.selectHwAlarmInfoList(hwAlarmInfo);
}
@ -76,7 +82,14 @@ public class HwAlarmInfoServiceImpl implements IHwAlarmInfoService {
public int updateHwAlarmInfo(HwAlarmInfo hwAlarmInfo) {
hwAlarmInfo.setUpdateTime(DateUtils.getNowDate());
hwAlarmInfo.setHandleStatus(HwDictConstants.ALARM_HANDLE_STATUS_YES);
return hwAlarmInfoMapper.updateHwAlarmInfo(hwAlarmInfo);
if (hwAlarmInfo.getIfDisposalAll().equals("0")){
return hwAlarmInfoMapper.updateHwAlarmInfo(hwAlarmInfo);
}
else {
return hwAlarmInfoMapper.updateHwAlarmInfoAllByDevice(hwAlarmInfo);
}
}
/**
@ -142,4 +155,25 @@ public class HwAlarmInfoServiceImpl implements IHwAlarmInfoService {
}
return list;
}
@Override
public List<AlarmInfoExportVo> selectAlarmInfoExport(Date startTime, Date endTime) {
return hwAlarmInfoMapper.selectAlarmInfoExport(startTime,endTime);
}
@Override
public List<AlarmInfoExportVo> selectAlarmInfoExport1(Long monitorUnitId,Date startTime, Date endTime) {
return hwAlarmInfoMapper.selectAlarmInfoExport1(monitorUnitId,startTime,endTime);
}
@Override
public List<Long> selectUnitId() {
return hwAlarmInfoMapper.selectUnitId();
}
/* int updateHwAlarmInformation(HwAlarmInfo hwAlarmInformation);*/
@Override
public int updateHwAlarmInformation(HwAlarmInfo hwAlarmInformation) {
return hwAlarmInfoMapper.updateHwAlarmInformation(hwAlarmInformation);
}
}

@ -3,6 +3,7 @@ package com.ruoyi.business.service.impl;
import com.ruoyi.business.domain.HwAlarmInfo;
import com.ruoyi.business.domain.HwAlarmRule;
import com.ruoyi.business.domain.HwAlarmRuleLink;
import com.ruoyi.business.domain.HwDeviceMode;
import com.ruoyi.business.mapper.HwAlarmInfoMapper;
import com.ruoyi.business.mapper.HwAlarmRuleMapper;
import com.ruoyi.business.service.IHwAlarmRuleService;
@ -12,6 +13,8 @@ import com.ruoyi.common.core.utils.RegexUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.datascope.annotation.DataScope;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.model.LoginUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -40,7 +43,17 @@ public class HwAlarmRuleServiceImpl implements IHwAlarmRuleService {
*/
@Override
public HwAlarmRule selectHwAlarmRuleByAlarmRuleId(Long alarmRuleId) {
HwAlarmRule alarmRule = hwAlarmRuleMapper.selectHwAlarmRuleByAlarmRuleId(alarmRuleId);
List<HwAlarmRule> alarmRules = hwAlarmRuleMapper.selectHwAlarmRuleByAlarmRuleId(alarmRuleId);
ArrayList<Long> ruleDeviceIds = new ArrayList<>();
for (HwAlarmRule rule : alarmRules) {
ruleDeviceIds.add(rule.getRuleDeviceId());
}
HwDeviceMode hwDeviceMode = hwAlarmRuleMapper.selectModeByDeviceId(ruleDeviceIds.get(0));
HwAlarmRule alarmRule = alarmRules.get(0);
alarmRule.setRuleDeviceIds(ruleDeviceIds);
alarmRule.setDeviceModeId(hwDeviceMode.getDeviceModeId());
alarmRule.setDeviceModeName(alarmRule.getDeviceModeName());
// HwAlarmRule alarmRule = hwAlarmRuleMapper.selectHwAlarmRuleByAlarmRuleId(alarmRuleId);
String triggerExpression = alarmRule.getTriggerExpression();
String triggerCondition = "";
if (triggerExpression.indexOf("and") > 0) {
@ -105,7 +118,12 @@ public class HwAlarmRuleServiceImpl implements IHwAlarmRuleService {
@DataScope(tenantAlias = "har")
public List<HwAlarmRule> selectHwAlarmRuleJoinList(HwAlarmRule hwAlarmRule) {
hwAlarmRule.setRuleType(HwDictConstants.ALARM_RULE_RULE_TYPE_DEVICE);
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = loginUser.getSysUser();
Long tenantId = sysUser.getTenantId();
hwAlarmRule.setTenantId(tenantId);
return hwAlarmRuleMapper.selectHwAlarmRuleJoinList(hwAlarmRule);
}
/**
@ -117,14 +135,22 @@ public class HwAlarmRuleServiceImpl implements IHwAlarmRuleService {
@Transactional
@Override
public int insertHwAlarmRule(HwAlarmRule hwAlarmRule) {
String triggerExpression = this.getTriggerExpression(hwAlarmRule);
hwAlarmRule.setTriggerExpression(triggerExpression);
hwAlarmRule.setAlarmPushFlag(HwDictConstants.ALARM_PUSH_FLAG_NO);
hwAlarmRule.setCreateTime(DateUtils.getNowDate());
hwAlarmRule.setTenantId(SecurityUtils.getTenantId());
hwAlarmRule.setCreateBy(SecurityUtils.getUsername());
int rows = hwAlarmRuleMapper.insertHwAlarmRule(hwAlarmRule);
insertHwAlarmRuleLink(hwAlarmRule);
List<Long> ruleDeviceIds = hwAlarmRule.getRuleDeviceIds();
int rows = 0;
for (Long ruleDeviceId : ruleDeviceIds) {
hwAlarmRule.setRuleDeviceId(ruleDeviceId);
String triggerExpression = this.getTriggerExpression(hwAlarmRule);
hwAlarmRule.setTriggerExpression(triggerExpression);
hwAlarmRule.setAlarmPushFlag(HwDictConstants.ALARM_PUSH_FLAG_NO);
hwAlarmRule.setCreateTime(DateUtils.getNowDate());
hwAlarmRule.setTenantId(SecurityUtils.getTenantId());
hwAlarmRule.setCreateBy(SecurityUtils.getUsername());
hwAlarmRule.setAlarmLevelId(hwAlarmRule.getAlarmTypeId());
int rowsAdd = hwAlarmRuleMapper.insertHwAlarmRule(hwAlarmRule);
insertHwAlarmRuleLink(hwAlarmRule);
rows += rowsAdd;
}
return rows;
}
@ -138,25 +164,32 @@ public class HwAlarmRuleServiceImpl implements IHwAlarmRuleService {
@Transactional
@Override
public int updateHwAlarmRule(HwAlarmRule hwAlarmRule) {
hwAlarmRule.setUpdateTime(DateUtils.getNowDate());
hwAlarmRule.setUpdateBy(SecurityUtils.getUsername());
List<Long> ruleDeviceIds = hwAlarmRule.getRuleDeviceIds();
int updateRows = 0;
for (Long ruleDeviceId : ruleDeviceIds) {
hwAlarmRule.setRuleDeviceId(ruleDeviceId);
hwAlarmRule.setUpdateTime(DateUtils.getNowDate());
hwAlarmRule.setUpdateBy(SecurityUtils.getUsername());
HwAlarmInfo queryAlarmInfo = new HwAlarmInfo();
queryAlarmInfo.setAlarmInfoType(HwDictConstants.ALARM_INFO_TYPE_DEVICE);
queryAlarmInfo.setAlarmReleatedId(hwAlarmRule.getAlarmRuleId());
List<HwAlarmInfo> alarmInfos = hwAlarmInfoMapper.selectHwAlarmInfoList(queryAlarmInfo);
if (alarmInfos == null || alarmInfos.isEmpty()) {//没有关联报警信息,才能修改表达式
String triggerExpression = this.getTriggerExpression(hwAlarmRule);
hwAlarmRule.setTriggerExpression(triggerExpression);
} else {
hwAlarmRule.setTriggerExpression(null);
}
HwAlarmInfo queryAlarmInfo = new HwAlarmInfo();
queryAlarmInfo.setAlarmInfoType(HwDictConstants.ALARM_INFO_TYPE_DEVICE);
queryAlarmInfo.setAlarmReleatedId(hwAlarmRule.getAlarmRuleId());
List<HwAlarmInfo> alarmInfos = hwAlarmInfoMapper.selectHwAlarmInfoList(queryAlarmInfo);
if (alarmInfos == null || alarmInfos.isEmpty()) {//没有关联报警信息,才能修改表达式
String triggerExpression = this.getTriggerExpression(hwAlarmRule);
hwAlarmRule.setTriggerExpression(triggerExpression);
} else {
hwAlarmRule.setTriggerExpression(null);
hwAlarmRuleMapper.deleteHwAlarmRuleLinkByAlarmRuleId(hwAlarmRule.getAlarmRuleId());
if (hwAlarmRule.getLinkFlag().equals(HwDictConstants.ALARM_RULE_LINK_FLAG_YES)) {
insertHwAlarmRuleLink(hwAlarmRule);
}
int row = hwAlarmRuleMapper.updateHwAlarmRule(hwAlarmRule);
updateRows += row;
}
hwAlarmRuleMapper.deleteHwAlarmRuleLinkByAlarmRuleId(hwAlarmRule.getAlarmRuleId());
if (hwAlarmRule.getLinkFlag().equals(HwDictConstants.ALARM_RULE_LINK_FLAG_YES)) {
insertHwAlarmRuleLink(hwAlarmRule);
}
return hwAlarmRuleMapper.updateHwAlarmRule(hwAlarmRule);
return updateRows;
}
/**

@ -10,6 +10,8 @@ import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.datascope.annotation.DataScope;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.model.LoginUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -61,6 +63,10 @@ public class HwAlarmTypeServiceImpl implements IHwAlarmTypeService {
@Override
@DataScope(tenantAlias = "hat")
public List<HwAlarmType> selectHwAlarmTypeJoinList(HwAlarmType hwAlarmType) {
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = loginUser.getSysUser();
Long tenantId = sysUser.getTenantId();
hwAlarmType.setTenantId(tenantId);
return hwAlarmTypeMapper.selectHwAlarmTypeJoinList(hwAlarmType);
}

@ -20,8 +20,11 @@ import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.datascope.annotation.DataScope;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.RemoteConfigService;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.model.LoginUser;
import com.ruoyi.tdengine.api.RemoteTdEngineService;
import com.ruoyi.tdengine.api.domain.TdField;
import com.ruoyi.tdengine.api.domain.TdSelectDto;
import com.ruoyi.tdengine.api.domain.TdSuperTableVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -375,6 +378,10 @@ public class HwDeviceModeServiceImpl implements IHwDeviceModeService {
@Override
@DataScope(tenantAlias = "hdm")
public List<HwDeviceMode> selectHwDeviceModeJoinList(HwDeviceMode hwDeviceMode) {
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = loginUser.getSysUser();
Long tenantId = sysUser.getTenantId();
hwDeviceMode.setTenantId(tenantId);
return hwDeviceModeMapper.selectHwDeviceModeJoinList(hwDeviceMode);
}
@ -433,6 +440,25 @@ public class HwDeviceModeServiceImpl implements IHwDeviceModeService {
return deviceMode;
}
@Override
public List<HwDeviceMode> selectModel(Long sceneId) {
return hwDeviceModeMapper.selectModel(sceneId);
}
@Override
public List<HwDevice> getDeviceByModel(Long modelId) {
System.out.println(hwDeviceMapper.getDeviceByModel(modelId));
return hwDeviceMapper.getDeviceByModel(modelId);
}
// public Map getDeviceLocation(Long deviceId) {
// TdSelectDto tdSelectDto = new TdSelectDto();
// tdSelectDto.setDatabaseName("db_hwsaas");
// tdSelectDto.setTableName("t_device_"+deviceId);
// R<Map<String, Object>> deviceLocation = remoteTdEngineService.getDeviceLocation(tdSelectDto, SecurityConstants.FROM_SOURCE);
// Map<String, Object> data = deviceLocation.getData();
// return data;
// }
/**
* @param: hwDeviceModeFunction

@ -3,10 +3,12 @@ package com.ruoyi.business.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import com.ruoyi.business.domain.*;
import com.ruoyi.business.domain.VO.*;
import com.ruoyi.business.mapper.*;
import com.ruoyi.business.service.IHwDeviceService;
//import com.ruoyi.business.utils.GpsCoordinateUtils;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.constant.HwDictConstants;
import com.ruoyi.common.core.constant.SecurityConstants;
@ -19,8 +21,10 @@ import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.NumberUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.datascope.annotation.DataScope;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.model.LoginUser;
import com.ruoyi.tdengine.api.RemoteTdEngineService;
import com.ruoyi.tdengine.api.domain.*;
import org.springframework.beans.factory.annotation.Autowired;
@ -29,7 +33,11 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.sql.Timestamp;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
@ -56,7 +64,14 @@ public class HwDeviceServiceImpl implements IHwDeviceService {
private StringRedisTemplate redisTemplate;
@Autowired
private HwAlarmInfoMapper hwAlarmInfoMapper;
@Autowired
private HwElectronicFenceMapper hwElectronicFenceMapper;
@Autowired
private RedisService redisService;
@Autowired
private HwFenceAreaMapper hwFenceAreaMapper;
public static final String SEPARATOR_UNDERLINE = "_";
public static final String SEPARATOR_COMMA = ",";
/**
*
*
@ -65,7 +80,6 @@ public class HwDeviceServiceImpl implements IHwDeviceService {
*/
@Override
public HwDevice selectHwDeviceByDeviceId(Long deviceId) {
return hwDeviceMapper.selectHwDeviceByDeviceId(deviceId);
}
@ -97,6 +111,10 @@ public class HwDeviceServiceImpl implements IHwDeviceService {
// @DataScope(tenantAlias = "hd")
//todo 去掉上面注释
public List<HwDevice> selectHwDeviceList(HwDevice hwDevice) {
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = loginUser.getSysUser();
Long tenantId = sysUser.getTenantId();
hwDevice.setTenantId(tenantId);
return hwDeviceMapper.selectHwDeviceList(hwDevice);
}
@ -273,7 +291,10 @@ public class HwDeviceServiceImpl implements IHwDeviceService {
*/
@Override
public List<DeviceModeVo> selectDeviceModeNameVo() {
List<DeviceModeVo> list = hwDeviceMapper.selectDeviceModeNameVo();
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = loginUser.getSysUser();
Long tenantId = sysUser.getTenantId();
List<DeviceModeVo> list = hwDeviceMapper.selectDeviceModeNameVo(tenantId);
Integer value = 0;
if (list.size() > 10) {
for (int i = 9; i < list.size(); i++) {
@ -336,7 +357,7 @@ public class HwDeviceServiceImpl implements IHwDeviceService {
@Override
public int changeDeviceStatus(HwDevice hwDevice) {
HwDevice dbDevice = hwDeviceMapper.selectHwDeviceByDeviceId(hwDevice.getDeviceId());
if (dbDevice.getDeviceStatus().equals(HwDictConstants.DEVICE_STATUS_PUBLISH)) {
if (dbDevice.getDeviceStatus().equals(HwDictConstants.DEVICE_STATUS_PUBLISH) && !hwDevice.getDeviceStatus().equals("0")) {
throw new ServiceException("已发布状态不能修改");
}
hwDevice.setUpdateBy(SecurityUtils.getUsername());
@ -409,6 +430,27 @@ public class HwDeviceServiceImpl implements IHwDeviceService {
String databaseName = TdEngineConstants.getDatabaseName();
List<HwDevice> hwDevices = hwDeviceMapper.selectHwDeviceListByMonitor(queryHwDevice);
/* 获取该监控单元节点下的所有子孙节点的设备 */
//获取所有监控单元
List<HwMonitorUnit> hwMonitorUnits = hwMonitorUnitMapper.selectHwMonitorUnitList(new HwMonitorUnit());
Long targetNodeId = queryHwDevice.getMonitorUnitId();//目标节点,即父节点ID
//TODOzangch2024.10.16在hwDevices拼接子孙节点的设备列表数据库样本少未完全验证性能和有效性
//调用递归方法
List<HwMonitorUnit> descendants = getAllHwMonitorUnits(hwMonitorUnits,targetNodeId);
// 遍历所有监控单元
for (HwMonitorUnit hwMonitorUnit : descendants){
// 创建设备对象
HwDevice hwMonitorUnitDevice = new HwDevice();
// 设置监控单元ID
hwMonitorUnitDevice.setMonitorUnitId(hwMonitorUnit.getMonitorUnitId());
// 根据监控单元ID查询设备列表
List<HwDevice> hwDevicesByMonitor = hwDeviceMapper.selectHwDeviceListByMonitor(hwMonitorUnitDevice);
// 将查询到的设备列表添加到总列表中
hwDevices.addAll(hwDevicesByMonitor);
}
if (hwDevices.size()>0){
hwDevices.forEach(hwDevice -> {
Long deviceId = hwDevice.getDeviceId();
HwDeviceModeFunction queryDeviceModeFunction = new HwDeviceModeFunction();
@ -490,8 +532,20 @@ public class HwDeviceServiceImpl implements IHwDeviceService {
Set<String> functionIdentifiers = deviceLatestDataMap.keySet();
for (String dataFunctionIdentifier : functionIdentifiers) {
if (functionIndentifierNameMap.get(dataFunctionIdentifier) != null) {
String unit;
if (dataFunctionIdentifier.equals("value1")){
unit = hwDevieModeFunctionMapper.selectUbitByIdAndName("value",hwDevice.getDeviceModeId());
}else {
unit = hwDevieModeFunctionMapper.selectUbitByIdAndName(dataFunctionIdentifier,hwDevice.getDeviceModeId());
}
Object value;
if (unit == null){
value = deviceLatestDataMap.get(dataFunctionIdentifier);
}else {
value = deviceLatestDataMap.get(dataFunctionIdentifier) + unit;
}
ddValueMap.put(functionIndentifierNameMap.get(dataFunctionIdentifier),
deviceLatestDataMap.get(dataFunctionIdentifier));
value);
}
}
});
@ -505,9 +559,17 @@ public class HwDeviceServiceImpl implements IHwDeviceService {
hwDeviceVo.setDevicePic(hwDevice.getDevicePic());
hwDeviceVo.setDeviceType(HwDictConstants.ACQUISITION_DEVICE);
hwDeviceVo.setDeviceDataMap(ddValueMap);
if (deviceLatestDataMapList.size()>0){
String ts = deviceLatestDataMapList.get(0).get("ts").toString();
DateTimeFormatter dateTime = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
ZonedDateTime parse = ZonedDateTime.parse(ts, dateTime);
Date updateTime = Date.from(parse.toInstant());
hwDeviceVo.setUpdateTime(updateTime);
}
acquisitionDeviceVos.add(hwDeviceVo);
});
}
devicesMap.put(HwDictConstants.CONTROL_DEVICE_NAME, controlDeviceVos);
devicesMap.put(HwDictConstants.ACQUISITION_DEVICE_NAME, acquisitionDeviceVos);
@ -515,6 +577,26 @@ public class HwDeviceServiceImpl implements IHwDeviceService {
return devicesMap;
}
//TODOzangch2024.10.16:递归获取所有子孙节点,数据库数据太少没办法验证是否完全有效
/* 根据节点ID获取所有子孙节点*/
private List<HwMonitorUnit> getAllHwMonitorUnits(List<HwMonitorUnit> hwMonitorUnits,Long nodeId){
// 创建一个空的列表,用于存储所有子节点
List<HwMonitorUnit> hwMonitorUnitList = new ArrayList<>();
// 遍历所有节点
for(HwMonitorUnit node :hwMonitorUnits){
// 如果当前节点的父节点ID等于传入的节点ID
if (node.getParentId().equals(nodeId)){
// 当前节点是直接子节点,加入结果集并继续寻找其子孙节点
hwMonitorUnitList.add(node);
// 递归调用方法,获取当前节点的所有子孙节点
hwMonitorUnitList.addAll(getAllHwMonitorUnits(hwMonitorUnits, node.getMonitorUnitId()));
}
}
// 返回所有子节点
return hwMonitorUnitList;
}
/**
* ,join
*
@ -524,6 +606,10 @@ public class HwDeviceServiceImpl implements IHwDeviceService {
@Override
@DataScope(tenantAlias = "hd")
public List<HwDevice> selectHwDeviceJoinList(HwDevice hwDevice) {
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = loginUser.getSysUser();
Long tenantId = sysUser.getTenantId();
hwDevice.setTenantId(tenantId);
return hwDeviceMapper.selectHwDeviceJoinList(hwDevice);
}
@ -1124,4 +1210,504 @@ public class HwDeviceServiceImpl implements IHwDeviceService {
return hwDeviceMapper.selectUnallocatedList(device);
}
/**
*
*
* */
@Override
public List<BeaconDevice> selectDeviceLatitudeAndLongitude(Long sceneId) {
//根据场景查询下面的设备
HwDevice device = new HwDevice();
device.setSceneId(sceneId);
List<HwDevice> hwDevices = hwDeviceMapper.selectHwDeviceList(device);
Integer[] integers = hwMonitorUnitMapper.selectBeaconDeviceBySceneId(sceneId);
//调用tde查询每个设备的经纬度
if (integers.length!=0){
TdSelectDto tdSelectDto = new TdSelectDto();
tdSelectDto.setDatabaseName(TdEngineConstants.PLATFORM_DB_NAME);
TdField tdField = new TdField();
tdField.setFieldName("longitude");
TdField tdField1 = new TdField();
tdField1.setFieldName("latitude");
List<TdField> fields = new ArrayList<TdField>();
fields.add(tdField);
fields.add(tdField1);
tdSelectDto.setSchemaFieldValues(fields);
List<BeaconDevice> lists = new ArrayList<BeaconDevice>();
for (int i = 0;i<integers.length;i++){
tdSelectDto.setTableName(TdEngineConstants.DEFAULT_TABLE_NAME_PREFIX+integers[i]);
R<?> latestData = remoteTdEngineService.getLatestData(tdSelectDto, SecurityConstants.INNER);
Object data = latestData.getData();
String s = JSONObject.toJSONString(data);
if (latestData.getCode()!=500){
String substring = s.substring(1, s.length() - 1);
if (!substring.isEmpty()){
Map map = JSONObject.parseObject(substring, Map.class);
if (map.size()>0){
// BeaconDevice beaconDevice = new BeaconDevice();
// beaconDevice.setDeviceId(hwDevices.get(i).getDeviceId());
// beaconDevice.setDeviceName(hwDevices.get(i).getDeviceName());
// beaconDevice.setLatitude(Double.valueOf( map.get("latitude").toString()));
// beaconDevice.setLongitude(Double.valueOf( map.get("longitude").toString()));
// beaconDevice.setRemark(hwDevices.get(i).getRemark());
// beaconDevice.setDeviceLocation(hwDevices.get(i).getDeviceLocation());
// beaconDevice.setDeviceLocation("白银市");
// beaconDevice.setDeviceModeId(hwDevices.get(i).getDeviceModeId());
// beaconDevice.setMonitorUnitName(hwDevices.get(i).getMonitorUnitName());
// //查询是否报警
// Long integer = hwDeviceMapper.selectDeviceIfAlarm(hwDevices.get(i).getDeviceId());
// Long integer1 = hwDeviceMapper.selectDeviceIfAlarmElectronFence(hwDevices.get(i).getDeviceId());
String tableName = tdSelectDto.getTableName();
int underscoreIndex = tableName.lastIndexOf('_');
int deviceId = Integer.parseInt(tableName.substring(underscoreIndex + 1));
Optional<HwDevice> first = hwDevices.stream().filter(x -> x.getDeviceId() == deviceId).findFirst();
HwDevice hwDevice = new HwDevice();
if (first.isPresent()){
hwDevice = first.get();
}else {
continue;
}
// HwDevice hwDevice = hwDevices.stream().filter(x -> x.getDeviceId() == deviceId).findFirst().get();
// if(hwDevice == null){
// continue;
// }
BeaconDevice beaconDevice = new BeaconDevice();
beaconDevice.setDeviceId(hwDevice.getDeviceId());
beaconDevice.setDeviceName(hwDevice.getDeviceName());
beaconDevice.setLatitude(Double.valueOf( map.get("latitude").toString()));
beaconDevice.setLongitude(Double.valueOf( map.get("longitude").toString()));
beaconDevice.setRemark(hwDevice.getRemark());
beaconDevice.setDeviceLocation(hwDevice.getDeviceLocation());
beaconDevice.setDeviceLocation("白银市");
beaconDevice.setDeviceModeId(hwDevice.getDeviceModeId());
beaconDevice.setMonitorUnitName(hwDevice.getMonitorUnitName());
//查询是否报警
Long integer = hwDeviceMapper.selectDeviceIfAlarm(hwDevice.getDeviceId());
Long integer1 = hwDeviceMapper.selectDeviceIfAlarmElectronFence(hwDevice.getDeviceId());
Boolean alarmElectronFence = false;
String ifAlarm = new String();
if (integer>0){
//正常
ifAlarm="1";
}
else {
ifAlarm="0";
}
if (integer1>0){
alarmElectronFence = true;
}
beaconDevice.setIfAlarm(ifAlarm);
beaconDevice.setAlarmElectronFence(alarmElectronFence);
lists.add(beaconDevice);
}
}
}
}
return lists;
}
return null;
}
/**
* id
* */
@Override
public List<Map<String, Object>> selectBeaconDevicesHistory(Map map) {
try{
TdHistorySelectDto tdHistorySelectDto = new TdHistorySelectDto();
tdHistorySelectDto.setDatabaseName(TdEngineConstants.PLATFORM_DB_NAME);
tdHistorySelectDto.setTableName(TdEngineConstants.DEFAULT_TABLE_NAME_PREFIX+map.get("deviceId"));
tdHistorySelectDto.setFirstFieldName(TdEngineConstants.DEFAULT_FIRST_FIELD_NAME);
if (map.get("pageSize")!=null){
tdHistorySelectDto.setLimit(Integer.valueOf(map.get("pageSize").toString()));
}
if (map.get("pageSize")!=null&&map.get("pageNum")!=null){
tdHistorySelectDto.setOffset(Integer.valueOf(map.get("pageSize").toString())*(Integer.valueOf(map.get("pageNum").toString())-1));
}
tdHistorySelectDto.setOrderByFieldName(TdEngineConstants.DEFAULT_FIRST_FIELD_NAME);
tdHistorySelectDto.setSort(TdEngineConstants.DEFAULT_ORDER_BY_MODE);
if (map.containsKey("startTime")&&map.get("startTime")!=null){
tdHistorySelectDto.setStartTime(Timestamp.valueOf(map.get("startTime").toString()).getTime());
}
if (map.containsKey("endTime")&&map.get("endTime")!=null){
tdHistorySelectDto.setEndTime(Timestamp.valueOf(map.get("endTime").toString()).getTime());
}
R<TdReturnDataVo> historyData = remoteTdEngineService.getHistoryData(tdHistorySelectDto, SecurityConstants.INNER);
System.out.println("查询历史数据"+map.get("deviceId"));
List<Map<String, Object>> dataList = historyData.getData().dataList;
for (int i = 0; i < dataList.size(); i++){
dataList.get(i).put("deviceId",map.get("deviceId"));
}
int count = historyData.getData().count;
Map<String, Object> map1 = new HashMap<>();
map1.put("total",count);
dataList.add(map1);
return dataList;
}catch (Exception ex){
return null;
}
}
/**
* id
* */
@Override
public HwMonitorUnit selectMonitorUnit(Long deviceId) {
HwMonitorUnit hwMonitorUnit = hwMonitorUnitMapper.selectMonitorUnit(deviceId);
return hwMonitorUnit;
}
/**
*
* */
@Override
public List<Map<String, Object>> selectHistoryDevice(Map map) {
//1-趋势分析 2历史数据
//如果是趋势分析就删除分页
Long pageSize = 0l;
if (map.get("type")!=null){
if (map.get("type").toString().equals("1")){
map.remove("pageSize");
map.remove("pageNum");
}
else {
pageSize = Long.valueOf(map.get("pageSize").toString());
}
}
String deviceIds = map.get("deviceIds").toString();
String[] str = deviceIds.split(",");
map.replace("pageSize",pageSize/str.length);
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Long total = 0l;
for (int i = 0; i < str.length; i++) {
map.put("deviceId",str[i]);
if (i== str.length-2){
map.replace("pageSize",pageSize%str.length);
}
if (map.get("prop")!=null){
//查询类型的字段名
String s = hwDeviceMapper.selectPropBydeviceIdAndFunctionName(Long.valueOf(map.get("deviceId").toString())
, map.get("prop").toString());
map.put("functionIdentifier",s);
}
List<Map<String, Object>> list1 = this.selectBeaconDevicesHistory(map);
total = total+Long.valueOf(list1.get(list1.size()-1).get("total").toString());
list1.remove(list1.size()-1);
List<Map<String, Object>> list2 = new ArrayList<Map<String, Object>>();
//在弹出框中进行对比时,对历史数据进行过滤,根据传入的传感器类型
if (map.get("functionIdentifier")!=null) {
for (int x = 0; x < list1.size(); x++) {
//查看数据中是否拥有所需要的数据,没有进入下一循环
if (list1.get(i).get(map.get("functionIdentifier").toString())==null){
continue;
}
Map<String, Object> map2 = new HashMap<String, Object>();
//获取出需要的数据存入返回值中
map2.put("deviceId", list1.get(x).get("deviceId"));
map2.put("ts", list1.get(x).get("ts"));
map2.put("deviceName", list1.get(x).get("deviceName"));
map2.put("functionName", map.get("prop"));
map2.put("functionIdentifier",
list1.get(x).get(map.get("functionIdentifier").toString()));
list.add(map2);
}
}
else {
list.addAll(list1);
}
}
Long modeId = hwDeviceMapper.selectModeIdByDeviceId(deviceIds);
Map<String, Object> mapName = new HashMap<String, Object>();
if (list.size()>0){
Set<String> strings = list.get(0).keySet();
List<String> list2 = new ArrayList<String>();
list2.addAll(strings);
for (int i = 0; i < list2.size(); i++) {
//查询类型的字段名
String s = hwDeviceMapper.selectFunctionNameByFunctionIdentifier(list2.get(i),modeId);
mapName.put(list2.get(i),s);
}
list.add(mapName);
}
if (map.get("type")!=null&&map.get("type").equals("1") ){
for (int i = 0; i < list.size(); i++) {
if (list.get(i).containsKey("valid")){
list.get(i).remove("valid");
}
if (list.get(i).containsKey("acc")){
list.get(i).remove("acc");
}
if (list.get(i).containsKey("version")){
list.get(i).remove("version");
}
if (list.get(i).containsKey("speed")){
list.get(i).remove("speed");
}
}
}
Map<String, Object> mapTotal = new HashMap<String, Object>();
mapTotal.put("total", total);
list.add(mapTotal);
return list;
}
/**
*
* */
@Override
public List<TreeDeviceVo> selectComparison() {
List<TreeDeviceVo> sceneMap = hwSceneMapper.selectHwSceneListReturnMap();
List<TreeDeviceVo> unitMap = hwMonitorUnitMapper.selectMonitorUnitReturnMap();
List<TreeDeviceVo> deviceMap = hwDeviceMapper.selectDeviceList();
for (int i = 0; i < unitMap.size(); i++) {
List<TreeDeviceVo> list = new ArrayList<TreeDeviceVo>();
for (int j = 0; j < deviceMap.size(); j++) {
if (unitMap.get(i).getVoId().longValue() == deviceMap.get(j).getParentId().longValue()) {
list.add(deviceMap.get(j));
}
}
unitMap.get(i).setVoList(list);
}
for (int i = 0; i < sceneMap.size(); i++) {
List<TreeDeviceVo> list = new ArrayList<TreeDeviceVo>();
for (int j = 0; j < unitMap.size(); j++) {
if (sceneMap.get(i).getVoId().equals(unitMap.get(j).getParentId())) {
list.add(unitMap.get(j));
}
}
sceneMap.get(i).setVoList(list);
}
return sceneMap;
}
/**
* excel
* */
@Override
public List<Map<String, Object>> getExportDevice(Map map) {
map.remove("pageSize");
map.remove("pageNum");
String deviceIds = map.get("deviceIds").toString();
String[] str = deviceIds.split(",");
List<Map<String, Object>> exportList = new ArrayList<Map<String, Object>>();
for (int i = 0; i < str.length; i++) {
map.put("deviceId",str[i]);
List<Map<String, Object>> list1 = this.selectBeaconDevicesHistory(map);
list1.remove(list1.size()-1);
exportList.addAll(list1);
}
return exportList;
}
/**
*
* */
@Override
public List<HwMonitorUnit> getDeviceByAreaId(Long tenantId) {
//如果是管理员,则不对租户进行过滤,即可以看到城市下所有租户的设备信息
if (tenantId==1l)
{
tenantId = null;
}
/**
*
*id
*
* */
HwMonitorUnit hwMonitorUnit = new HwMonitorUnit();
hwMonitorUnit.setTenantId(tenantId);
List<HwMonitorUnit> unitList = hwMonitorUnitMapper.selectMonitorUnitListHavAreaId(tenantId);
for (int i = 0; i < unitList.size(); i++){
List<HwDevice> deviceList = this.getDeviceListInMonitorUnit(unitList.get(i).getMonitorUnitId());
unitList.get(i).setDevicesList(deviceList);
}
// List<TreeAreaVo> treeArea1 = hwDeviceMapper.getTreeArea(areaId);
// for (int i=0;i<treeArea1.size();i++){
// TreeAreaVo treeAreaVo = this.AreaRecursion(treeArea1.get(i),tenantId);
// treeArea.add(treeAreaVo);
// }
return unitList;
}
/**
*
* */
@Override
public List<HwElectronicFence> selectMonitorElectronic(Long deviceId) {
List<HwElectronicFence> hwElectronicFences = hwElectronicFenceMapper.selectMonitorElectronic(deviceId);
for (int i = 0; i < hwElectronicFences.size();i++){
HwFenceArea hwFenceArea = new HwFenceArea();
hwFenceArea.setElectronicFenceId(hwElectronicFences.get(i).getElectronicFenceId());
List<HwFenceArea> hwFenceAreaList = hwFenceAreaMapper.selectHwFenceAreaList(hwFenceArea);
// for (HwFenceArea fenceArea : hwFenceAreaList) {
// if (fenceArea.getAreaShapeFlag().equals("1")){
// String[] points = fenceArea.getAreaRange().split("_");
// StringBuilder areaRange = new StringBuilder();
// for (String point : points) {
// areaRange.append(SEPARATOR_UNDERLINE);
// String[] location = point.split(",");
// double longitude = Double.parseDouble(location[0]);
// double latitude = Double.parseDouble(location[1]);
// double[] doubles = GpsCoordinateUtils.calWGS84toGCJ02(latitude, longitude);
// areaRange.append(doubles[1]).append(SEPARATOR_COMMA)
// .append(doubles[0]);
// }
// fenceArea.setAreaRange(areaRange.toString().replaceFirst(SEPARATOR_UNDERLINE, ""));
// }
// if (fenceArea.getAreaShapeFlag().equals("2")){
// String areaRange = fenceArea.getAreaRange();
// String[] points = areaRange.split(",");
// double longitude = Double.parseDouble(points[0]);
// double latitude = Double.parseDouble(points[1]);
// double[] doubles = GpsCoordinateUtils.calWGS84toGCJ02(latitude, longitude);
// fenceArea.setAreaRange(longitude+","+latitude+","+points[2]);
// }
// }
hwElectronicFences.get(i).setHwFenceAreaList(hwFenceAreaList);
}
return hwElectronicFences;
}
//查询监控单元下的信标设备
public List<HwDevice> getDeviceListInMonitorUnit(Long monitorUnitId){
List<HwDevice> deviceListInMonitorUnit = hwDeviceMapper.getDeviceListInMonitorUnit(monitorUnitId);
Map<String, String> map = new HashMap<String, String>();
map.put("pageNum","1");
map.put("pageSize","1");
for (int i=0;i<deviceListInMonitorUnit.size();i++){
map.put("deviceId",deviceListInMonitorUnit.get(i).getDeviceId().toString());
//根据设备id查询该设备是否有报警信息
Long integer = hwDeviceMapper.selectDeviceIfAlarm(Long.valueOf(map.get("deviceId")));
String ifAlarm = new String();
if (integer>0){
//有未处理报警
ifAlarm="1";
}
else {
ifAlarm="0";
}
List<Map<String, Object>> list = this.selectBeaconDevicesHistory(map);
// list.remove(list.size()-1);
System.out.println(list);
for(int j=0;j<list.size();j++){
deviceListInMonitorUnit.get(i).setIfAlarm(ifAlarm);
// System.out.println(list.get(j).get("longitude"));
if (list.get(j).containsKey("longitude")){
System.out.println(deviceListInMonitorUnit.get(j).getDeviceId());
deviceListInMonitorUnit.get(i).setLongitude(Double.valueOf(list.get(j).get("longitude").toString()));
}
if (list.get(j).containsKey("latitude")){
deviceListInMonitorUnit.get(i).setLatitude(Double.valueOf(list.get(j).get("latitude").toString()));
}
}
}
return deviceListInMonitorUnit;
}
/**
* excel
* */
@Override
public void insertRedis(JSONArray jsonArray,Long tenantId){
// redisTemplate.opsForValue().set("test",jsonArray.toJSONString());
if (redisService.hasKey("file"+tenantId)) {
redisService.deleteObject("file"+tenantId);
}
redisService.setCacheObject("file"+tenantId,jsonArray.toJSONString(),99999l, TimeUnit.DAYS);
}
/**
* excel
* */
@Override
public JSONObject selectRedisFile(Long tenantId){
Object o = redisService.getCacheObject("file" + tenantId);
if (o == null){
return null;
}else {
JSONObject array = new JSONObject(true);
array.put("content",o.toString());
String s = o.toString();
String[] split = s.split("},\\{");
String s2 = split[0].substring(1) + "}";
Map<String, Object> map = JSON.parseObject(s2,LinkedHashMap.class, Feature.OrderedField);
Map<Long, String> linkedMap = new LinkedHashMap<Long, String>();
Long along = 1l;
for (String key : map.keySet()){
linkedMap.put(along, key);
along++;
}
array.put("Header",linkedMap);
return array;
}
}
@Override
public Map getDeviceLocation(Long deviceId) {
TdSelectDto tdSelectDto = new TdSelectDto();
tdSelectDto.setDatabaseName("db_hwsaas");
tdSelectDto.setTableName("t_device_"+deviceId);
// R<Map<String, Object>> deviceLocation = remoteTdEngineService.getDeviceLocation(tdSelectDto, SecurityConstants.INNER);
// Map<String, Object> data = deviceLocation.getData();
return null;
}
/**
*
* */
@Override
public List<HwDevice> selectMonitorUnitAndDeviceByName(Map map) {
String name = map.get("name").toString();
HwMonitorUnit hwMonitorUnit= new HwMonitorUnit();
// System.out.println(name);
hwMonitorUnit.setMonitorUnitName(name);
List<HwMonitorUnit> monitorUnits = hwMonitorUnitMapper.selectHwMonitorUnitList(hwMonitorUnit);
HwDevice hwDevice = new HwDevice();
hwDevice.setDeviceName(name);
List<HwDevice> deviceList = hwDeviceMapper.selectHwDeviceList(hwDevice);
List<Long> stringList = new ArrayList<Long>();
for (int i = 0; i < deviceList.size(); i++){
HwMonitorUnit hwMonitorUnit1 = hwMonitorUnitMapper.selectMonitorUnit(deviceList.get(i).getDeviceId());
monitorUnits.add(hwMonitorUnit1);
}
List<HwMonitorUnit> collect = monitorUnits.stream().collect(Collectors.collectingAndThen(
Collectors.toCollection(()->new TreeSet<>(Comparator.comparing(HwMonitorUnit::getMonitorUnitId))
),ArrayList::new));
List<HwDevice> deviceListReturn = new ArrayList<HwDevice>();
for (int i = 0; i < collect.size(); i++){
deviceListReturn.addAll(this.getDeviceListInMonitorUnit(collect.get(i).getMonitorUnitId()));
}
return deviceListReturn;
}
}

@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import com.ruoyi.business.domain.HwAlarmInfo;
import com.ruoyi.business.domain.HwElectronicFence;
import com.ruoyi.business.domain.HwFenceArea;
import com.ruoyi.business.domain.HwFenceTarget;
import com.ruoyi.business.domain.VO.AlarmInfoVo;
import com.ruoyi.business.domain.VO.ElectronicFenceVo;
import com.ruoyi.business.mapper.HwAlarmInfoMapper;
@ -17,6 +18,8 @@ import com.ruoyi.common.core.constant.HwDictConstants;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.datascope.annotation.DataScope;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.model.LoginUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -218,7 +221,12 @@ public class HwElectronicFenceServiceImpl implements IHwElectronicFenceService {
hwElectronicFence.setFencePushFlag(HwDictConstants.FENCE_PUSH_FLAG_NO);
hwElectronicFence.setFenceType(HwDictConstants.FENCE_TYPE_SCENE);
hwElectronicFence.setCreateTime(DateUtils.getNowDate());
HwFenceTarget hwFenceTarget = new HwFenceTarget();
int rows = hwElectronicFenceMapper.insertHwElectronicFence(hwElectronicFence);
hwFenceTarget.setElectronicFenceId(hwElectronicFence.getElectronicFenceId());
hwFenceTarget.setTargetId(hwElectronicFence.getDeviceId());
hwFenceTarget.setTargetType("1");
hwFenceTargetMapper.insertHwFenceTarget(hwFenceTarget);
this.batchInsertFenceArea(hwElectronicFence);
return rows;
}
@ -331,6 +339,7 @@ public class HwElectronicFenceServiceImpl implements IHwElectronicFenceService {
public int deleteHwElectronicFenceByElectronicFenceIds(Long[] electronicFenceIds) {
//逻辑删除修改触发状态为9
int rows = hwElectronicFenceMapper.deleteHwElectronicFenceByElectronicFenceIds(electronicFenceIds);
int targetRows = hwFenceTargetMapper.deleteHwFenceTargetByFenceId(electronicFenceIds);
// hwElectronicFenceMapper.deleteHwFenceAreaByElectronicFenceIds(electronicFenceIds);
return rows;
}
@ -356,6 +365,10 @@ public class HwElectronicFenceServiceImpl implements IHwElectronicFenceService {
@Override
@DataScope(tenantAlias = "hef")
public List<HwElectronicFence> selectHwElectronicFenceJoinList(HwElectronicFence hwElectronicFence) {
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = loginUser.getSysUser();
Long tenantId = sysUser.getTenantId();
hwElectronicFence.setTenantId(tenantId);
return hwElectronicFenceMapper.selectHwElectronicFenceJoinList(hwElectronicFence);
}

@ -124,6 +124,11 @@ public class HwMonitorPlatformServiceImpl implements IHwMonitorPlatformService {
}
}
deviceDataColumnVos.remove(3);
DeviceDataColumnVo deviceDataColumnVo = deviceDataColumnVos.get(5);
DeviceDataColumnVo deviceDataColumnVo1 = deviceDataColumnVos.get(deviceDataColumnVos.size()-1);
deviceDataColumnVos.set(5,deviceDataColumnVo1);
deviceDataColumnVos.set(deviceDataColumnVos.size()-1,deviceDataColumnVo);
returnObj.put("deviceDataColumns", deviceDataColumnVos);
returnObj.put("latestData", latestDataMaps);
return returnObj;

@ -0,0 +1,116 @@
package com.ruoyi.business.service.impl;
import com.ruoyi.business.domain.HwMonitorUnitAttribute;
import com.ruoyi.business.mapper.HwMonitorUnitAttributeDao;
import com.ruoyi.business.service.HwMonitorUnitAttributeService;
import com.ruoyi.common.security.utils.SecurityUtils;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
* (HwMonitorUnitAttribute)
*
* @author makejava
* @since 2024-09-04 13:20:34
*/
@Service("hwMonitorUnitAttributeService")
public class HwMonitorUnitAttributeServiceImpl implements HwMonitorUnitAttributeService {
@Resource
private HwMonitorUnitAttributeDao hwMonitorUnitAttributeDao;
/**
* ID
*
* @param attributeId
* @return
*/
@Override
public HwMonitorUnitAttribute queryById(Long attributeId) {
return this.hwMonitorUnitAttributeDao.queryById(attributeId);
}
/**
*
*
* @param hwMonitorUnitAttribute
* @param pageRequest
* @return
*/
@Override
public Page<HwMonitorUnitAttribute> queryByPage(HwMonitorUnitAttribute hwMonitorUnitAttribute, PageRequest pageRequest) {
long total = this.hwMonitorUnitAttributeDao.count(hwMonitorUnitAttribute);
return new PageImpl<>(this.hwMonitorUnitAttributeDao.queryAllByLimit(hwMonitorUnitAttribute, pageRequest), pageRequest, total);
}
/**
*
*
* @param hwMonitorUnitAttribute
* @return
*/
@Override
public HwMonitorUnitAttribute insert(HwMonitorUnitAttribute hwMonitorUnitAttribute) {
this.hwMonitorUnitAttributeDao.insert(hwMonitorUnitAttribute);
return hwMonitorUnitAttribute;
}
/**
*
*
* @param hwMonitorUnitAttribute
* @return
*/
@Override
public HwMonitorUnitAttribute update(HwMonitorUnitAttribute hwMonitorUnitAttribute) {
this.hwMonitorUnitAttributeDao.update(hwMonitorUnitAttribute);
return this.queryById(hwMonitorUnitAttribute.getAttributeId());
}
/**
*
*
* @param attributeId
* @return
*/
@Override
public boolean deleteById(Long attributeId) {
return this.hwMonitorUnitAttributeDao.deleteById(attributeId) > 0;
}
@Override
public int addUnitAttribute(HwMonitorUnitAttribute hwMonitorUnitAttribute) {
hwMonitorUnitAttribute.setCreateBy(SecurityUtils.getUsername());
hwMonitorUnitAttribute.setCreateTime(new Date());
return hwMonitorUnitAttributeDao.insert(hwMonitorUnitAttribute);
}
@Override
public List<HwMonitorUnitAttribute> selectAttributeByUnitId(Long monitorUnitId) {
return hwMonitorUnitAttributeDao.selectAttributeByUnitId(monitorUnitId);
}
@Override
public int updateAttributeByUniitId(HwMonitorUnitAttribute hwMonitorUnitAttribute) {
return hwMonitorUnitAttributeDao.updateAttributeByUniitId(hwMonitorUnitAttribute);
}
@Override
public List<HwMonitorUnitAttribute> selectAttributes(Long aLong) {
return hwMonitorUnitAttributeDao.selectAttributes(aLong);
}
@Override
public int deleteAttributeByUniitId(Long unitId) {
return hwMonitorUnitAttributeDao.deleteAttributeByUniitId(unitId);
}
}

@ -7,6 +7,7 @@ import com.ruoyi.business.domain.VO.*;
import com.ruoyi.business.mapper.HwAlarmInfoMapper;
import com.ruoyi.business.mapper.HwDeviceMapper;
import com.ruoyi.business.mapper.HwElectronicFenceMapper;
import com.ruoyi.business.mapper.HwMonitorUnitMapper;
import com.ruoyi.business.service.IHwMonitorUnitService;
import com.ruoyi.common.core.constant.HwDictConstants;
@ -15,6 +16,9 @@ import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.NumberUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.datascope.annotation.DataScope;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.model.LoginUser;
import com.ruoyi.tdengine.api.RemoteTdEngineService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -71,8 +75,11 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
// Integer value = monitorUnitMap.get(key);
// System.out.println(key+"\t"+value);
// }
List<HwMonitorUnitVo> list = hwMonitorUnitMapper.selectMonitorPercentage();
List<HwMonitorUnitVo> hwScenes = hwMonitorUnitMapper.selectSceneNameById();
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = loginUser.getSysUser();
Long tenantId = sysUser.getTenantId();
List<HwMonitorUnitVo> list = hwMonitorUnitMapper.selectMonitorPercentage(tenantId);
List<HwMonitorUnitVo> hwScenes = hwMonitorUnitMapper.selectSceneNameById(tenantId);
list.stream().forEach(l -> {
for (int i = 0; i < hwScenes.size(); i++) {
if (l.getSceneId().equals(hwScenes.get(i).getSceneId())) {
@ -125,13 +132,20 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
//获取总的设备数量与监控单元数量(标准场景使用)
@Override
public AllNumsVo selectAllNums(Long sceneId) {
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = loginUser.getSysUser();
Long tenantId = sysUser.getTenantId();
//监控单元数量
Integer monitor = hwMonitorUnitMapper.selectSubSetNums(sceneId) == null ? 0
: hwMonitorUnitMapper.selectSubSetNums(sceneId);
Integer monitor = hwMonitorUnitMapper.selectSubSetNums(tenantId,sceneId) == null ? 0
: hwMonitorUnitMapper.selectSubSetNums(tenantId,sceneId);
//查询设备数量(子设备和直连设备),不包括网关
Integer integer = hwMonitorUnitMapper.selectDeviceNums(sceneId) == null ? 0
: hwMonitorUnitMapper.selectDeviceNums(sceneId);
Integer integer = hwMonitorUnitMapper.selectDeviceNums(sceneId,tenantId) == null ? 0
: hwMonitorUnitMapper.selectDeviceNums(sceneId,tenantId);
//查询信标设备数量
Integer beaconNums = hwMonitorUnitMapper.selectBeaconDeviceNums(sceneId) ==null ? 0
:hwMonitorUnitMapper.selectBeaconDeviceNums(sceneId);
AllNumsVo vo = new AllNumsVo();
vo.setBeaconDeviceSum(beaconNums);
vo.setSubSum(monitor);
vo.setSum(integer);
return vo;
@ -175,10 +189,13 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
AllNumsVo numsVo = selectAllNums(sceneId);
//获取在线设备数量,获取已发布状态子设备并且关联网关为在线的数量以及在线状态发布状态的直连设备数量之和
int onlineDeviceNum = hwDeviceMapper.getOnlineDeviceNum(sceneId);
//查询信标设备数量
Integer beaconNums = hwMonitorUnitMapper.selectBeaconDeviceNums(sceneId) ==null ? 0
:hwMonitorUnitMapper.selectBeaconDeviceNums(sceneId);
SubDeviceSumVo subDeviceSumVo = new SubDeviceSumVo();
subDeviceSumVo.setSubSum(numsVo.getSubSum());//监控单元数量
subDeviceSumVo.setDeviceNum(numsVo.getSum());//设备数量
subDeviceSumVo.setDeviceNum(beaconNums);//信标设备数量
// subDeviceSumVo.setDeviceNum(numsVo.getSum());//设备数量
subDeviceSumVo.setOnlineDeviceNum(onlineDeviceNum);//在线设备数量
return subDeviceSumVo;
@ -421,6 +438,10 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
@DataScope(tenantAlias = "hmu")
public List<HwMonitorUnit> selectHwMonitorUnitJoinList(HwMonitorUnit hwMonitorUnit) {
hwMonitorUnit.setMonitorUnitStatus(HwDictConstants.MONITOR_UNIT_STATUS_NORMAL);
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = loginUser.getSysUser();
Long tenantId = sysUser.getTenantId();
hwMonitorUnit.setTenantId(tenantId);
return hwMonitorUnitMapper.selectHwMonitorUnitJoinList(hwMonitorUnit);
}

@ -8,6 +8,9 @@ import com.ruoyi.business.mapper.HwMonitorUnitMapper;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.datascope.annotation.DataScope;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.model.LoginUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.business.mapper.HwMonitorUnitTypeMapper;
@ -125,6 +128,9 @@ public class HwMonitorUnitTypeServiceImpl implements IHwMonitorUnitTypeService {
@Override
@DataScope(tenantAlias = "hmut")
public List<HwMonitorUnitType> selectHwMonitorUnitTypeJoinList(HwMonitorUnitType hwMonitorUnitType) {
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser user = loginUser.getSysUser();
hwMonitorUnitType.setTenantId(user.getTenantId());
return hwMonitorUnitTypeMapper.selectHwMonitorUnitTypeJoinList(hwMonitorUnitType);
}

@ -0,0 +1,34 @@
package com.ruoyi.business.service.impl;
import com.ruoyi.business.domain.HwOfflineRule;
import com.ruoyi.business.mapper.HwOfflineRuleMapper;
import com.ruoyi.business.service.HwOfflineRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class HwOfflineRuleServiceImpl implements HwOfflineRuleService {
@Autowired
private HwOfflineRuleMapper hwOfflineRuleMapper;
@Override
public List<HwOfflineRule> selectRuleList(HwOfflineRule hwOfflineRule) {
List<HwOfflineRule> hwOfflineRules = hwOfflineRuleMapper.selectHwOfflineRuleJoinList(hwOfflineRule);
return hwOfflineRules;
}
@Override
public HwOfflineRule selectOfflineRuleById(Long offlineRuleId) {
return hwOfflineRuleMapper.selectOfflineRuleById(offlineRuleId);
}
@Override
public int deleteOfflineRuleById(Long offlineRuleId) {
return hwOfflineRuleMapper.deleteOfflineRuleById(offlineRuleId);
}
@Override
public int addOfflineRule(HwOfflineRule hwOfflineRule) {
return hwOfflineRuleMapper.addOfflineRule(hwOfflineRule);
}
}

@ -80,6 +80,8 @@ public class HwSceneServiceImpl implements IHwSceneService {
@Override
public List<HwSceneVo> selectHwSceneJoinList(HwSceneVo hwScene) {
Long tenantId = SecurityUtils.getTenantId();
hwScene.setTenantId(tenantId);
hwScene.setSceneStatus(HwDictConstants.SCENE_STATUS_NORMAL);
return hwSceneMapper.selectHwSceneVoList(hwScene);
}
@ -249,6 +251,9 @@ public class HwSceneServiceImpl implements IHwSceneService {
* @date 2023-09-26 18:19
*/
private void updateDefaultFlag(HwScene hwScene) {
if (hwScene.getDefaultFlag() == null){
hwScene.setDefaultFlag("0");
}
if (hwScene.getDefaultFlag().equals(HwDictConstants.SCENE_DEFAULT_FLAG_YES)) {
HwScene queryScene = new HwScene();
queryScene.setTenantId(hwScene.getTenantId());

@ -0,0 +1,77 @@
package com.ruoyi.business.utils;
import java.util.LinkedHashMap;
/**
* @author sunnyzyq
* @date 2021/12/17
*/
public class ExcelClassField {
/** 字段名称 */
private String fieldName;
/** 表头名称 */
private String name;
/** 映射关系 */
private LinkedHashMap<String, String> kvMap;
/** 示例值 */
private Object example;
/** 排序 */
private int sort;
/** 是否为注解字段0-否1-是 */
private int hasAnnotation;
public String getFieldName() {
return fieldName;
}
public void setFieldName(String fieldName) {
this.fieldName = fieldName;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public LinkedHashMap<String, String> getKvMap() {
return kvMap;
}
public void setKvMap(LinkedHashMap<String, String> kvMap) {
this.kvMap = kvMap;
}
public Object getExample() {
return example;
}
public void setExample(Object example) {
this.example = example;
}
public int getSort() {
return sort;
}
public void setSort(int sort) {
this.sort = sort;
}
public int getHasAnnotation() {
return hasAnnotation;
}
public void setHasAnnotation(int hasAnnotation) {
this.hasAnnotation = hasAnnotation;
}
}

@ -0,0 +1,28 @@
package com.ruoyi.business.utils;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* @author sunnyzyq
* @date 2021/12/17
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ExcelExport {
/** 字段名称 */
String value();
/** 导出排序先后: 数字越小越靠前默认按Java类字段顺序导出 */
int sort() default 0;
/** 导出映射格式如0-未知;1-男;2-女 */
String kv() default "";
/** 导出模板示例值(有值的话,直接取该值,不做映射) */
String example() default "";
}

@ -0,0 +1,31 @@
package com.ruoyi.business.utils;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* @author sunnyzyq
* @date 2021/12/17
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ExcelImport {
/** 字段名称 */
String value();
/** 导出映射格式如0-未知;1-男;2-女 */
String kv() default "";
/** 是否为必填字段(默认为非必填) */
boolean required() default false;
/** 最大长度默认255 */
int maxLength() default 255;
/** 导入唯一性验证(多个字段则取联合验证) */
boolean unique() default false;
}

@ -0,0 +1,89 @@
package com.ruoyi.business.utils;
import com.ruoyi.business.mapper.HwAlarmInfoMapper;
import com.ruoyi.common.core.utils.DateUtils;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletResponse;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
public class UnitExcelUtils {
@Autowired
private HwAlarmInfoMapper hwAlarmInfoMapper;
public void exportAlarmInfos(HttpServletResponse response, HashMap<String, List<LinkedHashMap>> map) throws IOException {
Workbook bk = new XSSFWorkbook();
for (String aLong : map.keySet()) {
List<LinkedHashMap> list3 = map.get(aLong);
Sheet unitId = bk.createSheet(aLong);
int row = 0;
for (row = 0;row < list3.size();row++){
if (row == 0){
LinkedHashMap map1 = list3.get(row);
ArrayList list1 = new ArrayList<>(map1.keySet());
int size = map1.keySet().size();
int cellIndex = 0;
Row row1 = unitId.createRow(row);
Row row2 = unitId.createRow(1);
for (cellIndex = 0;cellIndex < size;cellIndex++){
String key = list1.get(cellIndex).toString();
row1.createCell(cellIndex).setCellValue(key);
Object value = map1.get(key);
if (value instanceof String){
row2.createCell(cellIndex).setCellValue((String) map1.get(key));
}else if (value instanceof Long){
row2.createCell(cellIndex).setCellValue((Long) map1.get(key));
}else if(value instanceof Date){
row2.createCell(cellIndex).setCellValue((Date) map1.get(key));
}else {
row2.createCell(cellIndex).setCellValue("");
}
}
}else {
LinkedHashMap map1 = list3.get(row);
ArrayList list1 = new ArrayList<>(map1.keySet());
int size = map1.keySet().size();
int cellIndex = 0;
Row row1 = unitId.createRow(row+1);
for (cellIndex = 0;cellIndex < size;cellIndex++){
String key = list1.get(cellIndex).toString();
Object value = map1.get(key);
if (value instanceof String){
row1.createCell(cellIndex).setCellValue((String) map1.get(key));
}else if (value instanceof Long){
row1.createCell(cellIndex).setCellValue((Long) map1.get(key));
}
else if(value instanceof Date){
row1.createCell(cellIndex).setCellValue((Date) map1.get(key));
}
else {
row1.createCell(cellIndex).setCellValue("");
}
}
}
}
}
try {
// FileOutputStream stream = new FileOutputStream("告警信息");
bk.write(response.getOutputStream());
} catch (Exception e) {
e.printStackTrace();
}
bk.close();
}
}

@ -3,7 +3,7 @@ server:
port: 9601
# Spring
spring:
spring:
application:
# 应用名称
name: hw-business
@ -14,10 +14,12 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 175.27.215.92:8848
namespace: jrm_iot_dev
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 175.27.215.92:8848
namespace: jrm_iot_dev
# 配置文件格式
file-extension: yml
# 共享配置

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

Loading…
Cancel
Save