1.2.5场景管理/监控单元管理

master
zhouhy 2 years ago
parent 545f8536f5
commit c95c2ca727

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

@ -1,123 +0,0 @@
package com.ruoyi.basic.controller;
import com.ruoyi.basic.api.domain.HwTenant;
import com.ruoyi.basic.service.IHwTenantService;
import com.ruoyi.common.core.domain.R;
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.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.system.api.domain.SysUser;
import com.ruoyi.system.api.model.LoginUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
* Controller
*
* @author xins
* @date 2023-09-04
*/
@RestController
@RequestMapping("/tenant")
public class HwTenantController extends BaseController
{
@Autowired
private IHwTenantService hwTenantService;
/**
*
*/
@RequiresPermissions("business:tenant:list")
@GetMapping("/list")
public TableDataInfo list(HwTenant hwTenant)
{
List<HwTenant> list = new ArrayList<HwTenant>();
startPage();
//todo 放到add中
list = hwTenantService.selectHwTenantList(hwTenant);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("business:tenant:export")
@Log(title = "租户信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, HwTenant hwTenant)
{
List<HwTenant> list = hwTenantService.selectHwTenantList(hwTenant);
ExcelUtil<HwTenant> util = new ExcelUtil<HwTenant>(HwTenant.class);
util.exportExcel(response, list, "租户信息数据");
}
/**
*
*/
@RequiresPermissions("business:tenant:query")
@GetMapping(value = "/{tenantId}")
public AjaxResult getInfo(@PathVariable("tenantId") Long tenantId)
{
return success(hwTenantService.selectHwTenantByTenantId(tenantId));
}
/**
*
*/
@RequiresPermissions("business:tenant:add")
@Log(title = "租户信息", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody HwTenant hwTenant)
{
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = loginUser.getSysUser();
hwTenant.setIsRegister("0");
hwTenant.setCreateBy(sysUser.getNickName());
return toAjax(hwTenantService.insertHwTenant(hwTenant));
}
/**
*
*/
@RequiresPermissions("business:tenant:edit")
@Log(title = "租户信息", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody HwTenant hwTenant)
{LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = loginUser.getSysUser();
hwTenant.setUpdateBy(sysUser.getNickName());
return toAjax(hwTenantService.updateHwTenant(hwTenant));
}
/**
*
*/
@RequiresPermissions("business:tenant:remove")
@Log(title = "租户信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{tenantIds}")
public AjaxResult remove(@PathVariable Long[] tenantIds)
{
return toAjax(hwTenantService.deleteHwTenantByTenantIds(tenantIds));
}
/**
*
*/
@GetMapping("/getTenants")
public R<List<HwTenant>> getTenants(HwTenant hwTenant)
{
return R.ok(hwTenantService.selectHwTenantList(hwTenant));
}
}

@ -1,8 +1,21 @@
package com.ruoyi.business.controller;
import java.util.ArrayList;
import java.util.List;
import java.io.IOException;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.business.domain.HwScene;
import com.ruoyi.business.domain.VO.*;
import com.ruoyi.business.mapper.HwSceneMapper;
import com.ruoyi.business.service.IHwDeviceService;
import com.ruoyi.business.service.IHwElectronicFenceService;
import com.ruoyi.business.service.IHwSceneService;
import com.ruoyi.common.core.domain.R;
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.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@ -20,12 +33,13 @@ import com.ruoyi.business.service.IHwMonitorUnitService;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.core.web.page.TableDataInfo;
/**
* Controller
*
* @author xins
* @date 2023-09-14
* @author YINQ
* @date 2023-08-31
*/
@RestController
@RequestMapping("/monitorUnit")
@ -33,18 +47,28 @@ public class HwMonitorUnitController extends BaseController
{
@Autowired
private IHwMonitorUnitService hwMonitorUnitService;
@Autowired
private IHwDeviceService hwDeviceService;
@Autowired
private IHwSceneService hwSceneService;
@Autowired
private IHwElectronicFenceService hwElectronicFenceService;
/**
*
*/
@RequiresPermissions("business:monitorUnit:list")
@GetMapping("/list")
public AjaxResult list(HwMonitorUnit hwMonitorUnit)
public TableDataInfo list(HwMonitorUnit hwMonitorUnit)
{
// startPage();
List<HwMonitorUnit> list = hwMonitorUnitService.selectHwMonitorUnitList(hwMonitorUnit);
return success(list);
return getDataTable(list);
}
/**
*
*/
@ -68,6 +92,7 @@ public class HwMonitorUnitController extends BaseController
return success(hwMonitorUnitService.selectHwMonitorUnitByMonitorUnitId(monitorUnitId));
}
/**
*
*/
@ -76,8 +101,14 @@ public class HwMonitorUnitController extends BaseController
@PostMapping
public AjaxResult add(@RequestBody HwMonitorUnit hwMonitorUnit)
{
return toAjax(hwMonitorUnitService.insertHwMonitorUnit(hwMonitorUnit));
if (hwMonitorUnitService.insertHwMonitorUnit(hwMonitorUnit)!=0){
return AjaxResult.success();
}
else{
return AjaxResult.error("以关联设备不可作为父集设备");
}}
/**
*
@ -98,6 +129,25 @@ public class HwMonitorUnitController extends BaseController
@DeleteMapping("/{monitorUnitIds}")
public AjaxResult remove(@PathVariable Long[] monitorUnitIds)
{
return toAjax(hwMonitorUnitService.deleteHwMonitorUnitByMonitorUnitIds(monitorUnitIds));
if (hwMonitorUnitService.deleteHwMonitorUnitByMonitorUnitIds(monitorUnitIds)==0){
return AjaxResult.error("带有子集设备的监控单元不可删除");
}
else
return AjaxResult.success("删除成功");
}
/**
* id
* */
@GetMapping("/getMonitorIsRelevancy")
public String getMonitorIsRelevancy(Long monitorUnitId){
//如果关联设备 不能作为父级监控单元
if (hwMonitorUnitService.getMonitorIsRelevancy(monitorUnitId)==0){
return "y";
}
return "n";
}
}

@ -101,6 +101,11 @@ public class HwMonitorUnitTypeController extends BaseController
@DeleteMapping("/{monitorUnitTypeIds}")
public AjaxResult remove(@PathVariable Long[] monitorUnitTypeIds)
{
return toAjax(hwMonitorUnitTypeService.deleteHwMonitorUnitTypeByMonitorUnitTypeIds(monitorUnitTypeIds));
if (hwMonitorUnitTypeService.deleteHwMonitorUnitTypeByMonitorUnitTypeIds(monitorUnitTypeIds)==0){
return AjaxResult.error("该类型下仍有监控单元,不可删除");
}
else{
return toAjax(hwMonitorUnitTypeService.deleteHwMonitorUnitTypeByMonitorUnitTypeIds(monitorUnitTypeIds));
}}
}

@ -66,6 +66,16 @@ public class HwSceneController extends BaseController
return getDataTable(list);
}
/**
* id
* */
@GetMapping("/sceneIdAndName")
public TableDataInfo sceneIdAndName()
{
HwSceneVo hwScene = new HwSceneVo();
List<HwSceneVo> list = hwSceneService.selectHwSceneList2(hwScene);
return getDataTable(list);
}
/**
*
@ -140,13 +150,7 @@ public class HwSceneController extends BaseController
}
}
/**
* 使
*/
@GetMapping("/getScenes")
public AjaxResult getScenes(HwScene hwScene) {
return success(hwSceneService.selectHwSceneList(hwScene));
}
}

@ -54,6 +54,15 @@ public class HwTenantController extends BaseController
list = hwTenantService.selectHwTenantList(hwTenant);
return getDataTable(list);
}
/**
* id
* */
@GetMapping("/tenantIdAndName")
public TableDataInfo tenantIdAndName(){
HwTenant hwTenant = new HwTenant();
return getDataTable(hwTenantService.selectHwTenantList(hwTenant));
}
/**
*

@ -4,7 +4,6 @@ import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import com.ruoyi.system.api.domain.SysDept;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
@ -62,27 +61,26 @@ public class HwMonitorUnit extends BaseEntity
/** 预留字段 */
@Excel(name = "预留字段")
private String monitorUnitField;
private List<HwMonitorUnit> child = new ArrayList<HwMonitorUnit>();
/** 子部门 */
private List<HwMonitorUnit> children = new ArrayList<HwMonitorUnit>();
private Long tenantId;
private List<HwMonitorUnit> child = new ArrayList<HwMonitorUnit>();
public List<HwMonitorUnit> getChild() {
return child;
}
public Long getTenantId() {
return tenantId;
}
public void setTenantId(Long tenantId) {
this.tenantId = tenantId;
}
public void setChild(List<HwMonitorUnit> child) {
this.child = child;
}
public List<HwMonitorUnit> getChildren() {
return children;
}
public void setChildren(List<HwMonitorUnit> children) {
this.children = children;
}
public void setMonitorUnitId(Long monitorUnitId)
{
this.monitorUnitId = monitorUnitId;
@ -185,23 +183,20 @@ public class HwMonitorUnit extends BaseEntity
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("monitorUnitId", getMonitorUnitId())
.append("monitorUnitName", getMonitorUnitName())
.append("sceneId", getSceneId())
.append("parentId", getParentId())
.append("monitorUnitTypeId", getMonitorUnitTypeId())
.append("areaId", getAreaId())
.append("monitorAddress", getMonitorAddress())
.append("monitorPic", getMonitorPic())
.append("preserveTime", getPreserveTime())
.append("remark", getRemark())
.append("monitorUnitStatus", getMonitorUnitStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("monitorUnitField", getMonitorUnitField())
.toString();
return "HwMonitorUnit{" +
"monitorUnitId=" + monitorUnitId +
", monitorUnitName='" + monitorUnitName + '\'' +
", sceneId=" + sceneId +
", parentId=" + parentId +
", monitorUnitTypeId=" + monitorUnitTypeId +
", areaId=" + areaId +
", monitorAddress='" + monitorAddress + '\'' +
", monitorPic='" + monitorPic + '\'' +
", preserveTime=" + preserveTime +
", monitorUnitStatus=" + monitorUnitStatus +
", monitorUnitField='" + monitorUnitField + '\'' +
", tenantId=" + tenantId +
", child=" + child +
'}';
}
}

@ -41,6 +41,8 @@ public class HwMonitorUnitType extends BaseEntity
/** 所属场景 */
@Excel(name = "所属场景")
private Long sceneId;
//租户id
private Long tenantId;
/** 监控单元类型图标 */
@Excel(name = "监控单元类型图标")
@ -50,6 +52,15 @@ public class HwMonitorUnitType extends BaseEntity
@Excel(name = "预留字段")
private String unitTypeField;
public Long getTenantId() {
return tenantId;
}
public void setTenantId(Long tenantId) {
this.tenantId = tenantId;
}
public void setMonitorUnitTypeId(Long monitorUnitTypeId)
{
this.monitorUnitTypeId = monitorUnitTypeId;
@ -149,6 +160,7 @@ public class HwMonitorUnitType extends BaseEntity
.append("updateTime", getUpdateTime())
.append("unitTypeIcon", getUnitTypeIcon())
.append("unitTypeField", getUnitTypeField())
.append("tenantId", getTenantId())
.toString();
}
}

@ -9,26 +9,26 @@ package com.ruoyi.business.domain.VO;
public class HwMonitorUnitVo {
public String sceneName;
public Long sceneId;
public String sceneId;
public Integer sum;
public Integer err;
public String percentage;
public Double percentage;
public String getPercentage() {
public Double getPercentage() {
return percentage;
}
public void setPercentage(String percentage) {
public void setPercentage(Double percentage) {
this.percentage = percentage;
}
public Long getSceneId() {
public String getSceneId() {
return sceneId;
}
public void setSceneId(Long sceneId) {
public void setSceneId(String sceneId) {
this.sceneId = sceneId;
}

@ -33,20 +33,20 @@ public interface HwMonitorUnitMapper
public List<AllNumsVo> selectsum();
//查询id与name的结果集
List<HwMonitorUnitVo> selectSceneNameById();
Integer selectSubSetNums(Long sceneId);
String selectSubSetNums();
/**
*
* */
public List<HwMonitorUnit> selectLimitSubMonitorUnit();
Integer selectReleatedDeviceIdNums(Long deviceCode);
Integer selectDeviceNums(Long sceneId);
String selectDeviceNums();
Integer selectSubDeviceSum(Long sceneId);
/**
*
* */
public List<AlarmStatsVo> selectAlarmStats(Long sceneId);
public List<AlarmStatsVo> selectAlarmStats();
/**
* 线
* */
@ -113,12 +113,10 @@ public interface HwMonitorUnitMapper
*/
public int deleteHwMonitorUnitByMonitorUnitIds(Long[] monitorUnitIds);
/**
* join
*
* @param hwMonitorUnit
* @return
*/
public List<HwMonitorUnit> selectHwMonitorUnitListJoinScene(HwMonitorUnit hwMonitorUnit);
int selectIsParent(Long monitorUnitId);
//查询设备是否关联了该监控单元
Integer selectDeviceRelevancyMontiorUnit(Long monitorUnitId);
//查询电子围栏是否关联了该监控单元
Integer selectElectronicFenceRelevancyMonitorUnit(Long monitorUnitId);
}

@ -62,4 +62,6 @@ public interface HwMonitorUnitTypeMapper
* @return
*/
public int deleteHwMonitorUnitTypeByMonitorUnitTypeIds(Long[] monitorUnitTypeIds);
public int getNumsHwMonitorUnitTypeByMonitorUnitTypeId(Long monitorUnitTypeId);
}

@ -22,6 +22,7 @@ public interface HwSceneMapper
public List<HwScene> selectHwSceneBySceneModeId(Long sceneModeId);
public List<HwScene> selectHwSceneByTenantId0(Long tenantId);
public List<HwScene> selectHwSceneByTenantIdNot0(Long tenantId);
List<HwSceneVo> selectHwSceneVoListByTenantId(Long tenantId);
/**

@ -2,7 +2,6 @@ package com.ruoyi.business.service;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.ruoyi.business.domain.HwMonitorUnit;
import com.ruoyi.business.domain.VO.*;
@ -31,25 +30,21 @@ public interface IHwMonitorUnitService
/**
*
* */
public AllNumsVo selectAllNums(Long sceneId);
// public List<AllNumsVo> selectSenceAllNums();
public AllNumsVo selectAllNums();
public List<AllNumsVo> selectSenceAllNums();
/**
*
* */
public List<HwMonitorUnit> selectLimitSubMonitorUnit();
/**
*
* */
/**
*
* */
public List<AlarmStatsVo> selectAlarmStats(Long sceneId);
public List<AlarmStatsVo> selectAlarmStats();
/**
*
*
@ -62,7 +57,10 @@ public interface IHwMonitorUnitService
* 线
* */
public SubDeviceSumVo selectSubDeviceSum(Long sceneId);
/**
*
* */
public Integer selectElectronicNum(Long sceneId);
/**
*
* */
@ -71,6 +69,16 @@ public interface IHwMonitorUnitService
*
* */
public HwMonitorUnit selectHwmonitorUnitSub(Long monitorUnitId);
/**
* tdengine
*
* @return*/
public Map<Object, Integer> selectTdengine(String beginTime, String endTime, Long sceneId);
/**
*
*
* @return*/
public R<Map<String, Map<String, Object>>> selectLatestDataByTags(Long monitorUnitId);
/**
@ -106,27 +114,9 @@ public interface IHwMonitorUnitService
public int deleteHwMonitorUnitByMonitorUnitId(Long monitorUnitId);
/**
*
*
* @param hwMonitorUnit
* @return
*/
public List<TreeSelectVo> selectMonitorTreeList(HwMonitorUnit hwMonitorUnit);
/**
*
*
* @param hwMonitorUnits
* @return
*/
public List<TreeSelectVo> buildMonitorUnitTreeSelect(List<HwMonitorUnit> hwMonitorUnits);
/**
*
*
* @param hwMonitorUnits
* @return
*/
public List<HwMonitorUnit> buildMonitorUnitTree(List<HwMonitorUnit> hwMonitorUnits);
* id
* */
int getMonitorIsRelevancy(Long monitorUnitId);
}

@ -23,6 +23,8 @@ public interface IHwSceneService
public List<HwScene> selectHwSceneBySceneModeId(Long sceneModeId);
//场景选择
List<HwScene> selectHwSceneByTenantId(Long tenantId);
/**
*
*

@ -1,27 +1,5 @@
package com.ruoyi.business.service.impl;
import com.ruoyi.business.domain.HwAlarmInfo;
import com.ruoyi.business.domain.HwDevice;
import com.ruoyi.business.domain.HwMonitorUnit;
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.TdEngineConstants;
import com.ruoyi.common.core.domain.R;
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.tdengine.api.RemoteTdEngineService;
import com.ruoyi.tdengine.api.domain.DeviceStatus;
import com.ruoyi.tdengine.api.domain.TdSelectDto;
import com.ruoyi.tdengine.api.domain.TdSuperTableSelectVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
@ -30,6 +8,26 @@ import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
import com.ruoyi.business.domain.HwDevice;
import com.ruoyi.business.domain.VO.*;
import com.ruoyi.business.mapper.HwDeviceMapper;
import com.ruoyi.business.mapper.HwElectronicFenceMapper;
import com.ruoyi.common.core.constant.TdEngineConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.StringUtils;
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.DeviceStatus;
import com.ruoyi.tdengine.api.domain.TdSelectDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.business.mapper.HwMonitorUnitMapper;
import com.ruoyi.business.domain.HwMonitorUnit;
import com.ruoyi.business.service.IHwMonitorUnitService;
/**
* Service
*
@ -37,7 +35,8 @@ import java.util.stream.Collectors;
* @date 2023-08-31
*/
@Service
public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService
{
@Autowired
private HwMonitorUnitMapper hwMonitorUnitMapper;
@Autowired
@ -46,8 +45,9 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
private RemoteTdEngineService remoteTdEgineService;
@Autowired
private HwDeviceMapper hwDeviceMapper;
@Autowired
private HwAlarmInfoMapper hwAlarmInfoMapper;
/**
*
@ -56,106 +56,106 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
* @return
*/
@Override
public HwMonitorUnit selectHwMonitorUnitByMonitorUnitId(Long monitorUnitId) {
public HwMonitorUnit selectHwMonitorUnitByMonitorUnitId(Long monitorUnitId)
{
return hwMonitorUnitMapper.selectHwMonitorUnitByMonitorUnitId(monitorUnitId);
}
/**
*
*/
* */
@Override
public List<HwMonitorUnitVo> selectMonitorPercentage() {
// HwMonitorUnit queryMonitorUnit = new HwMonitorUnit();
// List<HwMonitorUnit> list = hwMonitorUnitMapper.selectHwMonitorUnitListJoinScene(queryMonitorUnit);
// Map<Long, List<HwMonitorUnit>> monitorUnitMap = list.stream()
// .collect(Collectors.groupingBy(HwMonitorUnit::getSceneId));
// List<HwMonitorUnitVo> monitorUnitVoList = new ArrayList<>();
//
//
// Set<Long> keys = monitorUnitMap.keySet();
// for(Long key:keys){
// Integer value = monitorUnitMap.get(key);
// System.out.println(key+"\t"+value);
// }
List<HwMonitorUnitVo> list = hwMonitorUnitMapper.selectMonitorPercentage();
List<HwMonitorUnitVo> hwScenes = hwMonitorUnitMapper.selectSceneNameById();
list.stream().forEach(l -> {
for (int i = 0; i < hwScenes.size(); i++) {
if (l.getSceneId().equals(hwScenes.get(i).getSceneId())) {
l.setSceneName(hwScenes.get(i).getSceneName());
int count = hwScenes.size();
if (list.size()<=hwScenes.size()) {
count = list.size();
}
for (int i = 0; i < count; i++) {
for (int j = 0;j<count;j++){
if (list.get(i).getSceneId().equals(hwScenes.get(i).getSceneId())){
list.get(i).setSceneName(hwScenes.get(i).getSceneName());
}
}
}
});
Integer value = 0;
//
Integer sums = 0;
// if (list.size() > 5) {
// for (int i = 4; i < list.size(); i++) {//这是剩下的总数
// if (list.get(i).sum == null) {
// list.get(i).sum = 0;
// }
// value = value + list.get(i).sum;
// }
// }
for (int i = 0; i < list.size(); i++) {
if (list.get(i).sum == null) {
if (list.size()>5){
for (int i = 4; i < list.size(); i++){
if (list.get(i).sum==null){
list.get(i).sum = 0;
}
sums = sums + list.get(i).sum;
value = value+list.get(i).sum;
}
for (int i = 0; i < list.size(); i++) {
HwMonitorUnitVo hwMonitorUnitVo = list.get(i);
hwMonitorUnitVo.setPercentage(NumberUtils.getPercentage(list.get(i).getSum(), sums));
Long sceneId = hwMonitorUnitVo.getSceneId();
HwAlarmInfo queryAlarmInfo = new HwAlarmInfo();
queryAlarmInfo.setSceneId(sceneId);
List<HwAlarmInfo> alarmInfos = hwAlarmInfoMapper.selectHwAlarmInfoList(queryAlarmInfo);
Integer alarmInfoSize = alarmInfos == null ? 0 : alarmInfos.size();
hwMonitorUnitVo.setErr(alarmInfoSize);
}
for (int i = 0; i < list.size();i++){
if (list.get(i).sum==null){
list.get(i).sum = 0;
}
sums = sums+list.get(i).sum;
}
for (int i=0;i<list.size();i++){
list.get(i).setPercentage((double) (list.get(i).getSum()/sums));
}
HwMonitorUnitVo hwMonitorUnitVo = new HwMonitorUnitVo();
hwMonitorUnitVo.setSceneName("其他");
hwMonitorUnitVo.setSum(value);
// HwMonitorUnitVo hwMonitorUnitVo = new HwMonitorUnitVo();
// hwMonitorUnitVo.setSceneName("其他");
// hwMonitorUnitVo.setSum(value);
// if (list.size() > 5) {
// list.add(5, hwMonitorUnitVo);
// return list.subList(0, 5);
// } else {
// return list;
// }
if (list.size()>5){
list.add(5,hwMonitorUnitVo);
return list.subList(0,5);
}
else {
return list;
}
}
//获取总的设备数量与监控单元数量
@Override
public AllNumsVo selectAllNums(Long sceneId) {
public AllNumsVo selectAllNums() {
//监控单元
Integer monitor = hwMonitorUnitMapper.selectSubSetNums(sceneId) == null ? 0
: hwMonitorUnitMapper.selectSubSetNums(sceneId);
Integer integer = hwMonitorUnitMapper.selectDeviceNums(sceneId) == null ? 0
: hwMonitorUnitMapper.selectDeviceNums(sceneId);
String monitor = hwMonitorUnitMapper.selectSubSetNums();
String integer = hwMonitorUnitMapper.selectDeviceNums();
System.out.println(monitor+" dsaas "+integer);
Integer monitor1 = 0;
Integer monitor2 = 0;
AllNumsVo vo = new AllNumsVo();
vo.setSubSum(monitor);
vo.setSum(integer);
if (monitor == null){
monitor1 = 0;
}
else {
monitor1 = Integer.valueOf(monitor);
}
if (integer == null){
monitor2 = 0;
}
else {
monitor2 = Integer.valueOf(integer);
}
vo.setSubSum(monitor1);
vo.setSum(monitor2);
return vo;
}
// @Override
// public List<AllNumsVo> selectSenceAllNums() {
// List<AllNumsVo> allNumsVos = hwMonitorUnitMapper.selectAllNums();
// List<AllNumsVo> allNums = hwMonitorUnitMapper.selectsum();
// for (int i = 0; i < allNums.size(); i++) {
// for (int j = 0; j < allNums.size(); j++) {
// if (allNums.get(i).getSceneId().equals(allNumsVos.get(i).getSceneId())) {
// allNums.get(i).setSubSum(allNumsVos.get(i).getSubSum());
// }
// }
// }
// return allNums;
// }
@Override
public List<AllNumsVo> selectSenceAllNums() {
List<AllNumsVo> allNumsVos = hwMonitorUnitMapper.selectAllNums();
List<AllNumsVo> allNums = hwMonitorUnitMapper.selectsum();
for (int i=0;i< allNums.size();i++){
for (int j=0;j< allNums.size();j++){
if (allNums.get(i).getSceneId().equals(allNumsVos.get(i).getSceneId())){
allNums.get(i).setSubSum(allNumsVos.get(i).getSubSum());
}
}
}
return allNums;
}
@Override
public List<HwMonitorUnit> selectLimitSubMonitorUnit() {
@ -165,8 +165,8 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
}
@Override
public List<AlarmStatsVo> selectAlarmStats(Long sceneId) {
return hwMonitorUnitMapper.selectAlarmStats(sceneId);
public List<AlarmStatsVo> selectAlarmStats() {
return hwMonitorUnitMapper.selectAlarmStats();
}
@ -177,22 +177,35 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
* @return
*/
@Override
public List<HwMonitorUnit> selectHwMonitorUnitList(HwMonitorUnit hwMonitorUnit) {
public List<HwMonitorUnit> selectHwMonitorUnitList(HwMonitorUnit hwMonitorUnit)
{
return hwMonitorUnitMapper.selectHwMonitorUnitList(hwMonitorUnit);
}
@Override
public SubDeviceSumVo selectSubDeviceSum(Long sceneId) {
AllNumsVo numsVo = selectAllNums(sceneId);
int onlineDeviceNum = hwDeviceMapper.getOnlineDeviceNum(sceneId);
int SubSum = hwMonitorUnitMapper.selectSubDeviceSum(sceneId);
List<HwDevice> hwDevices = hwDeviceMapper.selectDeviceNum(sceneId);
int onlineDevice = 0;
for (int i = 0;i<hwDevices.size();i++){
if (hwDevices.get(i).getActiveStatus().equals("1")&&hwDevices.get(i).getDeviceStatus().equals("1")){
onlineDevice = onlineDevice+1;
}
}
SubDeviceSumVo subDeviceSumVo = new SubDeviceSumVo();
subDeviceSumVo.setSubSum(numsVo.getSubSum());//监控单元数量
subDeviceSumVo.setDeviceNum(numsVo.getSum());//设备数量
subDeviceSumVo.setOnlineDeviceNum(onlineDeviceNum);//在线设备数量
subDeviceSumVo.setSubSum(String.valueOf(SubSum));
subDeviceSumVo.setDeviceNum(String.valueOf(hwDevices.size()));
subDeviceSumVo.setOnlineDeviceNum(String.valueOf(onlineDevice));
return subDeviceSumVo;
}
//todo 电子围栏
@Override
public Integer selectElectronicNum(Long sceneId) {
List<Long> longs = hwMonitorUnitMapper.selectEleInScene(sceneId);
return null;
}
@Override
@ -200,49 +213,119 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
return hwMonitorUnitMapper.selectHwMonitorUnitByMonitorUnitId(monitorUnitId);
}
//todo SysDeptServiceImpl类中的递归方法recursionFn(以实现)
@Override
public List<HwMonitorUnit> selectTreeList(List<HwMonitorUnit> hwMonitorUnits) {
// 加一个begintime参数endtime参数 stream时间戳 从开始时间0点开始结束时间23.59.59结束
public Map<Object, Integer> selectTdengine(String beginTime, String endTime, Long sceneId) {
DeviceStatus queryDeviceStatus = new DeviceStatus();
Map<String, Object> params = queryDeviceStatus.getParams();
DateTimeFormatter ofPattern = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.CHINA);
System.out.println(ofPattern);
LocalDate parse = LocalDate.parse(beginTime, ofPattern);
long begintime = parse.atStartOfDay().toInstant(ZoneOffset.of("+8")).toEpochMilli();
DateTimeFormatter ofPattern1 = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.CHINA);
LocalDate parse1 = LocalDate.parse(endTime, ofPattern);
long endtime = LocalDateTime.of(parse1, LocalTime.MAX).toInstant(ZoneOffset.of("+8")).toEpochMilli();
params.put("beginTime",begintime);
params.put("endTime", endtime);
queryDeviceStatus.setParams(params);
if (sceneId != null) {
queryDeviceStatus.setSceneId(sceneId);
}
int sum = 0;
int values[] = new int[10];
Map<Object,Integer> valuesMap = new HashMap<>();
//todo 使用id(以解决)
//map key时间戳value List<DeviceStatus> 对象
R<?> r = remoteTdEgineService.getOnlineDevicesGroupByDay(queryDeviceStatus);
Map<Long, List<DeviceStatus>> deviceStatusMap = (Map<Long, List<DeviceStatus>>) r.getData();
List<DeviceStatus> list = (List<DeviceStatus>) remoteTdEgineService.getOnlineDevicesGroupByDay(queryDeviceStatus);
Set<Long> longs = deviceStatusMap.keySet();
for (Object key:longs){
List<DeviceStatus> deviceStatuses = deviceStatusMap.get(key);
for (int i=0;i<deviceStatuses.size();i++){
if (deviceStatuses.get(i).getDeviceType()==1){
sum=sum+hwMonitorUnitMapper.selectReleatedDeviceIdNums(list.get(i).getDeviceId());
}
else {
sum = sum+1;
}
valuesMap.put(key,sum);
}
}
return valuesMap;
//设备类型==网关 根据releated_device_id = 网关设备设备id查询个数
//网关子设备数+非网关设备数getDeviceType()=1
}
@Override
public R<Map<String, Map<String, Object>>> selectLatestDataByTags(Long monitorUnitId) {
//
R<Map<String, Map<String, Object>>> latestDataByTags = new R<Map<String,Map<String, Object>>>();
List<HwDevice> hwDevices = hwDeviceMapper.selectDeviceByMonitorId(monitorUnitId);
TdSelectDto tdSelectDto = new TdSelectDto();
for (int i = 0; i < hwDevices.size(); i++){
tdSelectDto.setDatabaseName(TdEngineConstants.PLATFORM_DB_NAME);
tdSelectDto.setTableName(TdEngineConstants.getDeviceDataTableName(hwDevices.get(i).getDeviceId()));
tdSelectDto.setTagsName(hwDevices.get(i).getDeviceCode());
latestDataByTags = remoteTdEgineService.getLatestDataByTags(tdSelectDto);
}
return latestDataByTags;
}
//todo SysDeptServiceImpl类中的递归方法recursionFn(以实现)
@Override
public List<HwMonitorUnit> selectTreeList(List<HwMonitorUnit> hwMonitorUnits) {
List<HwMonitorUnit> returnList = new ArrayList<>();
List<Long> tempList = hwMonitorUnits.stream().map(HwMonitorUnit::getMonitorUnitId).collect(Collectors.toList());
List<HwMonitorUnit> treeList = new ArrayList<>();
for (HwMonitorUnit hwMonitorUnit : hwMonitorUnits) {
for (HwMonitorUnit hwMonitorUnit:hwMonitorUnits){
if (!tempList.contains(hwMonitorUnit.getParentId()))
recursionFn(hwMonitorUnits, hwMonitorUnit);
recursionFn(hwMonitorUnits,hwMonitorUnit);
returnList.add(hwMonitorUnit);
}
for (int i = 0; i < returnList.size(); i++) {
if (returnList.get(i).getParentId() == null) {
for (int i = 0; i < returnList.size(); i++){
if (returnList.get(i).getParentId()==null){
treeList.add(returnList.get(i));
}
}
return treeList;
}
private void recursionFn(List<HwMonitorUnit> list, HwMonitorUnit t) {
}
private void recursionFn(List<HwMonitorUnit> list, HwMonitorUnit t)
{
// 得到子节点列表
List<HwMonitorUnit> childList = getChildList(list, t);
t.setChild(childList);
for (HwMonitorUnit tChild : childList) {
if (hasChild(list, tChild)) {
for (HwMonitorUnit tChild : childList)
{
if (hasChild(list, tChild))
{
recursionFn(list, tChild);
}
}
}
private List<HwMonitorUnit> getChildList(List<HwMonitorUnit> list, HwMonitorUnit t) {
private List<HwMonitorUnit> getChildList(List<HwMonitorUnit> list, HwMonitorUnit t)
{
List<HwMonitorUnit> tlist = new ArrayList<HwMonitorUnit>();
Iterator<HwMonitorUnit> it = list.iterator();
while (it.hasNext()) {
while (it.hasNext())
{
HwMonitorUnit n = (HwMonitorUnit) it.next();
if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getMonitorUnitId().longValue()) {
if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getMonitorUnitId().longValue())
{
tlist.add(n);
}
}
return tlist;
}
private boolean hasChild(List<HwMonitorUnit> list, HwMonitorUnit t) {
private boolean hasChild(List<HwMonitorUnit> list, HwMonitorUnit t)
{
return getChildList(list, t).size() > 0 ? true : false;
}
@ -253,10 +336,33 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
* @return
*/
@Override
public int insertHwMonitorUnit(HwMonitorUnit hwMonitorUnit) {
public int insertHwMonitorUnit(HwMonitorUnit hwMonitorUnit)
{
//少一个离线报警规则 todo
//根据父级监控单元id查询是否关联了设备若关联则不能添加
if (
hwMonitorUnitMapper.selectDeviceRelevancyMontiorUnit(hwMonitorUnit.getParentId())==0
&& hwMonitorUnitMapper.selectElectronicFenceRelevancyMonitorUnit(hwMonitorUnit.getParentId())==0
){ //如果是无父级的监控单元后台赋null前端赋null会报错
if (hwMonitorUnit.getParentId()==0){
hwMonitorUnit.setParentId(null);
}
//如果该监控单元拥有父级监控单元,则场景继承其父级监控单元
else if (hwMonitorUnit.getParentId()!=0&&hwMonitorUnit.getParentId()!=null){
hwMonitorUnit.setSceneId(
hwMonitorUnitMapper.selectHwMonitorUnitByMonitorUnitId(
hwMonitorUnit.getParentId()).getSceneId());
}
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = loginUser.getSysUser();
hwMonitorUnit.setTenantId(sysUser.getTenantId());
hwMonitorUnit.setCreateTime(DateUtils.getNowDate());
return hwMonitorUnitMapper.insertHwMonitorUnit(hwMonitorUnit);
}
return 0;
}
/**
*
@ -265,7 +371,8 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
* @return
*/
@Override
public int updateHwMonitorUnit(HwMonitorUnit hwMonitorUnit) {
public int updateHwMonitorUnit(HwMonitorUnit hwMonitorUnit)
{
hwMonitorUnit.setUpdateTime(DateUtils.getNowDate());
return hwMonitorUnitMapper.updateHwMonitorUnit(hwMonitorUnit);
}
@ -277,7 +384,18 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
* @return
*/
@Override
public int deleteHwMonitorUnitByMonitorUnitIds(Long[] monitorUnitIds) {
public int deleteHwMonitorUnitByMonitorUnitIds(Long[] monitorUnitIds)
{
//先查询是否有子集如果有返回error 如果没有则逻辑删除
for (Long monitorUnitId : monitorUnitIds){
if (hwMonitorUnitMapper.selectIsParent(monitorUnitId)!=0){
return 0;
}
else{
hwMonitorUnitMapper.deleteHwMonitorUnitByMonitorUnitId(monitorUnitId);
return 1;
}
}
return hwMonitorUnitMapper.deleteHwMonitorUnitByMonitorUnitIds(monitorUnitIds);
}
@ -288,93 +406,38 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
* @return
*/
@Override
public int deleteHwMonitorUnitByMonitorUnitId(Long monitorUnitId) {
public int deleteHwMonitorUnitByMonitorUnitId(Long monitorUnitId)
{
return hwMonitorUnitMapper.deleteHwMonitorUnitByMonitorUnitId(monitorUnitId);
}
/**
*
*
* @param hwMonitorUnit
* @return
*/
@Override
@DataScope(tenantAlias = "hmu")
public List<TreeSelectVo> selectMonitorTreeList(HwMonitorUnit hwMonitorUnit) {
List<HwMonitorUnit> hwMonitorUnits = this.selectHwMonitorUnitList(hwMonitorUnit);
return buildMonitorUnitTreeSelect(hwMonitorUnits);
public int getMonitorIsRelevancy(Long monitorUnitId) {
if (hwMonitorUnitMapper.selectDeviceRelevancyMontiorUnit(monitorUnitId)==0
&& hwMonitorUnitMapper.selectElectronicFenceRelevancyMonitorUnit(monitorUnitId)==0
){
return 1;
}
/**
*
*
* @param hwMonitorUnits
* @return
*/
@Override
public List<TreeSelectVo> buildMonitorUnitTreeSelect(List<HwMonitorUnit> hwMonitorUnits) {
List<HwMonitorUnit> monitorUnitTrees = buildMonitorUnitTree(hwMonitorUnits);
return monitorUnitTrees.stream().map(TreeSelectVo::new).collect(Collectors.toList());
}
/**
*
*
* @param hwMonitorUnits
* @return
*/
@Override
public List<HwMonitorUnit> buildMonitorUnitTree(List<HwMonitorUnit> hwMonitorUnits) {
List<HwMonitorUnit> returnList = new ArrayList<HwMonitorUnit>();
List<Long> tempList = hwMonitorUnits.stream().map(HwMonitorUnit::getMonitorUnitId).collect(Collectors.toList());
for (HwMonitorUnit monitorUnit : hwMonitorUnits) {
// 如果是顶级节点, 遍历该父节点的所有子节点
if (!tempList.contains(monitorUnit.getParentId())) {
recursionFn1(hwMonitorUnits, monitorUnit);
returnList.add(monitorUnit);
}
}
if (returnList.isEmpty()) {
returnList = hwMonitorUnits;
}
return returnList;
}
/**
*
*/
private void recursionFn1(List<HwMonitorUnit> list, HwMonitorUnit t) {
// 得到子节点列表
List<HwMonitorUnit> childList = getChildList1(list, t);
t.setChildren(childList);
for (HwMonitorUnit tChild : childList) {
if (hasChild1(list, tChild)) {
recursionFn1(list, tChild);
}
}
}
/**
*
*/
private List<HwMonitorUnit> getChildList1(List<HwMonitorUnit> list, HwMonitorUnit t) {
List<HwMonitorUnit> tlist = new ArrayList<HwMonitorUnit>();
Iterator<HwMonitorUnit> it = list.iterator();
while (it.hasNext()) {
HwMonitorUnit n = (HwMonitorUnit) it.next();
if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getMonitorUnitId().longValue()) {
tlist.add(n);
}
}
return tlist;
}
/**
*
*/
private boolean hasChild1(List<HwMonitorUnit> list, HwMonitorUnit t) {
return getChildList1(list, t).size() > 0 ? true : false;
return 0;
}
}
//remoteTdEngineSevice.getOnlineDevicesGroupByDay方法获取
// 参数实例:
// // params.put("beginTime", beginTime);
//// params.put("endTime", endTime);
//// queryDeviceStatus.setParams(params);
//// if (sceneId != null) {
//// queryDeviceStatus.setSceneId(sceneId);
//// }
//
// 这是IDEA参数传的参数Content-Type: application/json
// {
// "params": { "beginTime":1666666666666,"endTime":1766666666666 }
//
// }
//
// 如果在IDEA测试可以{
// "params": {"databaseName":"db_scene_1","superTableName":"st_ds_1",
// "beginTime":1666666666666,"endTime":1766666666666 }
// }

@ -4,6 +4,9 @@ import java.util.List;
import com.ruoyi.business.domain.VO.HwMonitorUnitVo;
import com.ruoyi.common.core.utils.DateUtils;
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;
@ -43,6 +46,11 @@ public class HwMonitorUnitTypeServiceImpl implements IHwMonitorUnitTypeService
@Override
public List<HwMonitorUnitType> selectHwMonitorUnitTypeList(HwMonitorUnitType hwMonitorUnitType)
{
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = loginUser.getSysUser();
if (!sysUser.getUserName().equals("admin")){
hwMonitorUnitType.setTenantId(sysUser.getTenantId());
}
return hwMonitorUnitTypeMapper.selectHwMonitorUnitTypeList(hwMonitorUnitType);
}
@ -56,6 +64,12 @@ public class HwMonitorUnitTypeServiceImpl implements IHwMonitorUnitTypeService
@Override
public int insertHwMonitorUnitType(HwMonitorUnitType hwMonitorUnitType)
{
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = loginUser.getSysUser();
hwMonitorUnitType.setMonitorUnitTypeStatus("1");
hwMonitorUnitType.setCommonFlag("1");
hwMonitorUnitType.setTenantId(sysUser.getTenantId());
hwMonitorUnitType.setCreateBy(sysUser.getNickName());
hwMonitorUnitType.setCreateTime(DateUtils.getNowDate());
return hwMonitorUnitTypeMapper.insertHwMonitorUnitType(hwMonitorUnitType);
}
@ -69,6 +83,9 @@ public class HwMonitorUnitTypeServiceImpl implements IHwMonitorUnitTypeService
@Override
public int updateHwMonitorUnitType(HwMonitorUnitType hwMonitorUnitType)
{
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = loginUser.getSysUser();
hwMonitorUnitType.setCreateBy(sysUser.getNickName());
hwMonitorUnitType.setUpdateTime(DateUtils.getNowDate());
return hwMonitorUnitTypeMapper.updateHwMonitorUnitType(hwMonitorUnitType);
}
@ -82,6 +99,12 @@ public class HwMonitorUnitTypeServiceImpl implements IHwMonitorUnitTypeService
@Override
public int deleteHwMonitorUnitTypeByMonitorUnitTypeIds(Long[] monitorUnitTypeIds)
{
for (Long monitorUnitTypeId : monitorUnitTypeIds){
if (hwMonitorUnitTypeMapper.getNumsHwMonitorUnitTypeByMonitorUnitTypeId(monitorUnitTypeId)!=0){
return 0;
}
}
return hwMonitorUnitTypeMapper.deleteHwMonitorUnitTypeByMonitorUnitTypeIds(monitorUnitTypeIds);
}
@ -94,6 +117,11 @@ public class HwMonitorUnitTypeServiceImpl implements IHwMonitorUnitTypeService
@Override
public int deleteHwMonitorUnitTypeByMonitorUnitTypeId(Long monitorUnitTypeId)
{
if (hwMonitorUnitTypeMapper.getNumsHwMonitorUnitTypeByMonitorUnitTypeId(monitorUnitTypeId)!=0){
System.out.println(hwMonitorUnitTypeMapper.getNumsHwMonitorUnitTypeByMonitorUnitTypeId(monitorUnitTypeId));
return 0;
}
return hwMonitorUnitTypeMapper.deleteHwMonitorUnitTypeByMonitorUnitTypeId(monitorUnitTypeId);
}
}

@ -7,9 +7,7 @@ import java.util.List;
import com.ruoyi.business.domain.HwSceneMode;
import com.ruoyi.business.domain.VO.HwSceneVo;
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.redis.service.RedisService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.domain.SysUser;
@ -28,7 +26,8 @@ import com.ruoyi.business.service.IHwSceneService;
* @date 2023-08-23
*/
@Service
public class HwSceneServiceImpl implements IHwSceneService {
public class HwSceneServiceImpl implements IHwSceneService
{
@Autowired
private HwSceneMapper hwSceneMapper;
@Autowired
@ -42,7 +41,8 @@ public class HwSceneServiceImpl implements IHwSceneService {
* @return
*/
@Override
public HwScene selectHwSceneBySceneId(Long sceneId) {
public HwScene selectHwSceneBySceneId(Long sceneId)
{
return hwSceneMapper.selectHwSceneBySceneId(sceneId);
}
@ -53,6 +53,17 @@ public class HwSceneServiceImpl implements IHwSceneService {
return hwScenes;
}
@Override
public List<HwScene> selectHwSceneByTenantId(Long tenantId) {
if (tenantId == 0){
return hwSceneMapper.selectHwSceneByTenantId0(tenantId);
}
else
return hwSceneMapper.selectHwSceneByTenantIdNot0(tenantId);
}
/**
*
*
@ -60,25 +71,21 @@ public class HwSceneServiceImpl implements IHwSceneService {
* @return
*/
@Override
@DataScope(tenantAlias = "hs")
public List<HwScene> selectHwSceneList(HwScene hwScene) {
List<HwScene> scenes = hwSceneMapper.selectHwSceneList(hwScene);
boolean defaultFlag = false;
for (HwScene scene : scenes) {
if (defaultFlag) {
scene.setDefaultFlag(HwDictConstants.DEVICE_DEFAULT_FLAG_NO);
} else {
if (scene.getDefaultFlag().equalsIgnoreCase(HwDictConstants.DEVICE_DEFAULT_FLAG_YES)) {
defaultFlag = true;
}
}
}
return scenes;
public List<HwScene> selectHwSceneList(HwScene hwScene)
{
return hwSceneMapper.selectHwSceneList(hwScene);
}
@Override
public List<HwSceneVo> selectHwSceneList2(HwSceneVo hwScene) {
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = loginUser.getSysUser();
if (sysUser.getUserName().equals("admin"))
return hwSceneMapper.selectHwSceneVoList(hwScene);
else
{
return hwSceneMapper.selectHwSceneVoListByTenantId(sysUser.getTenantId());
}
}
@ -89,8 +96,9 @@ public class HwSceneServiceImpl implements IHwSceneService {
* @return
*/
@Override
public int insertHwScene(HwScene hwScene) {
if (hwScene.getDefaultFlag() == "1") {
public int insertHwScene(HwScene hwScene)
{
if(hwScene.getDefaultFlag() == "1"){
hwSceneMapper.updateDefaultFlag(hwScene.getTenantId());
}
hwScene.setDefaultFlag("1");
@ -101,20 +109,20 @@ public class HwSceneServiceImpl implements IHwSceneService {
hwScene.setSceneId(lon);
hwScene.setCreateBy(sysUser.getNickName());
if (hwScene.getPreserveTime() == null) {
if (hwScene.getPreserveTime()==null){
hwScene.setPreserveTime(new BigDecimal(90));
}
if (hwScene.getTestPreserveTime() == null) {
if (hwScene.getTestPreserveTime()==null){
hwScene.setTestPreserveTime(new BigDecimal(30));
}
String randomKey = RandomStringUtils.random(12, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789");
String randomSecret = RandomStringUtils.random(16, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789");
String randomSecret = RandomStringUtils.random(16,"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789");
hwScene.setModeKey(randomKey);
hwScene.setModeSecret(randomSecret);
hwScene.setCreateTime(DateUtils.getNowDate());
List<HwScene> list = new ArrayList<HwScene>();
list.add(hwScene);
redisService.setCacheList(hwScene.getSceneId() + "", list);
redisService.setCacheList(hwScene.getSceneId()+"",list);
return hwSceneMapper.insertHwScene(hwScene);
}
@ -126,15 +134,16 @@ public class HwSceneServiceImpl implements IHwSceneService {
* @return
*/
@Override
public int updateHwScene(HwScene hwScene) {
if (hwScene.getDefaultFlag() == "1") {
public int updateHwScene(HwScene hwScene)
{
if(hwScene.getDefaultFlag() == "1"){
hwSceneMapper.updateDefaultFlag(hwScene.getTenantId());
}
hwScene.setDefaultFlag("1");
hwScene.setUpdateTime(DateUtils.getNowDate());
List<HwScene> list = new ArrayList<HwScene>();
list.add(hwScene);
redisService.setCacheList(hwScene.getSceneId() + "", list);
redisService.setCacheList(hwScene.getSceneId()+"",list);
return hwSceneMapper.updateHwScene(hwScene);
}
@ -145,12 +154,13 @@ public class HwSceneServiceImpl implements IHwSceneService {
* @return
*/
@Override
public int deleteHwSceneBySceneIds(Long[] sceneIds) {
public int deleteHwSceneBySceneIds(Long[] sceneIds)
{
List<Long> list = new ArrayList<>();
for (int i = 0; i < sceneIds.length; i++) {
for (int i = 0; i < sceneIds.length;i++){
list.add(sceneIds[i]);
}
redisService.deleteObject(sceneIds + "");
redisService.deleteObject(sceneIds+"");
return hwSceneMapper.deleteHwSceneBySceneIds(sceneIds);
}
@ -161,8 +171,9 @@ public class HwSceneServiceImpl implements IHwSceneService {
* @return
*/
@Override
public int deleteHwSceneBySceneId(Long sceneId) {
redisService.deleteObject(sceneId + "");
public int deleteHwSceneBySceneId(Long sceneId)
{
redisService.deleteObject(sceneId+"");
return hwSceneMapper.deleteHwSceneBySceneId(sceneId);
}
}

@ -79,6 +79,7 @@ public class HwTenantServiceImpl implements IHwTenantService
@Override
public int deleteHwTenantByTenantIds(Long[] tenantIds)
{
return hwTenantMapper.deleteHwTenantByTenantIds(tenantIds);
}
@ -91,6 +92,7 @@ public class HwTenantServiceImpl implements IHwTenantService
@Override
public int deleteHwTenantByTenantId(Long tenantId)
{
return hwTenantMapper.deleteHwTenantByTenantId(tenantId);
}
}

@ -1,12 +1,13 @@
<?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">
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.business.mapper.HwMonitorUnitMapper">
<resultMap type="HwMonitorUnit" id="HwMonitorUnitResult">
<result property="monitorUnitId" column="monitor_unit_id" />
<result property="monitorUnitName" column="monitor_unit_name" />
<result property="sceneId" column="scene_id" />
<result property="tenantId" column="tenant_id" />
<result property="parentId" column="parent_id" />
<result property="monitorUnitTypeId" column="monitor_unit_type_id" />
<result property="areaId" column="area_id" />
@ -20,7 +21,6 @@
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="monitorUnitField" column="monitor_unit_field" />
<result property="sceneName" column="scene_name" />
</resultMap>
<resultMap type="HwMonitorUnitVo" id="HwMonitorUnitVoResult" >
<result property="sceneName" column="scene_name"/>
@ -58,17 +58,8 @@
</resultMap>
<sql id="selectHwMonitorUnitVo">
select monitor_unit_id, monitor_unit_name, scene_id, parent_id, monitor_unit_type_id, area_id, monitor_address, monitor_pic, preserve_time, remark, monitor_unit_status, create_by, create_time, update_by, update_time, monitor_unit_field from hw_monitor_unit hmu
select monitor_unit_id, monitor_unit_name, scene_id, parent_id, monitor_unit_type_id, area_id, monitor_address, monitor_pic, preserve_time, remark, monitor_unit_status, create_by, create_time, update_by, update_time, monitor_unit_field from hw_monitor_unit
</sql>
<sql id="selectHwMonitorUnitJoinScene">
select hmu.monitor_unit_id, hmu.monitor_unit_name, hmu.scene_id, hmu.parent_id,
hmu.monitor_unit_type_id, hmu.area_id, hmu.monitor_address, hmu.monitor_pic,
hmu.preserve_time, hmu.monitor_unit_status, hc.scene_name
from hw_monitor_unit hmu left join hw_scene hc on hmu.scene_id = hc.scene_id
</sql>
<select id="selectHaveEleDevice" parameterType="Long" resultMap="MonitorUnitNumVoResult">
SELECT monitor_unit_id,count(*) as num from hw_device where monitor_unit_id
= (select monitor_unit_id from hw_monitor_unit where monitor_unit_id =
@ -85,50 +76,48 @@
</select>
<select id="selectHwMonitorUnitList" parameterType="HwMonitorUnit" resultMap="HwMonitorUnitResult">
<include refid="selectHwMonitorUnitVo"/>
<where>
<if test="monitorUnitName != null and monitorUnitName != ''"> and monitor_unit_name like concat('%', #{monitorUnitName}, '%')</if>
<if test="sceneId != null "> and scene_id = #{sceneId}</if>
<if test="tenantId != null "> and tenant_id = #{tenantId}</if>
<if test="parentId != null "> and parent_id = #{parentId}</if>
<if test="monitorUnitTypeId != null "> and monitor_unit_type_id = #{monitorUnitTypeId}</if>
<if test="areaId != null "> and area_id = #{areaId}</if>
<if test="monitorAddress != null and monitorAddress != ''"> and monitor_address = #{monitorAddress}</if>
<if test="monitorPic != null and monitorPic != ''"> and monitor_pic = #{monitorPic}</if>
<if test="preserveTime != null "> and preserve_time = #{preserveTime}</if>
<if test="monitorUnitStatus != null "> and monitor_unit_status = #{monitorUnitStatus}</if>
<if test="monitorUnitStatus==monitorUnitStatus"> and monitor_unit_status = '1'</if>
<if test="monitorUnitField != null and monitorUnitField != ''"> and monitor_unit_field = #{monitorUnitField}</if>
<!-- 租户数据范围过滤 -->
<!-- todo ${params.tenantDataScope}-->
</where>
</select>
</select>
<select id="selectHwMonitorUnitByMonitorUnitId" parameterType="Long" resultMap="HwMonitorUnitResult">
<select id="selectHwMonitorUnitByMonitorUnitId" parameterType="Long" resultMap="HwMonitorUnitResult">
<include refid="selectHwMonitorUnitVo"/>
where monitor_unit_id = #{monitorUnitId}
</select>
<!--查询最子集监控单元以场景进行分组-->
</select>
<!--查询最子集监控单元以场景进行分组-->
<select id="selectAllNums" resultMap="AllNumsVoResult">
select scene_id,count(*) as sub_sum from
(select monitor_unit_id,scene_id from hw_monitor_unit
where monitor_unit_id not in (select parent_id from hw_monitor_unit where parent_id is not null))as temp
GROUP BY scene_id
</select>
<select id="selectSubSetNums" resultType="Integer">
<select id="selectSubSetNums" resultType="String">
select count(*)from hw_monitor_unit
where monitor_unit_id not in (select parent_id from hw_monitor_unit where parent_id is not null)
<if test="sceneId != null "> and scene_id = #{sceneId}</if>
</select>
<select id="selectDeviceNums" resultType="Integer">
<select id="selectDeviceNums" resultType="String">
select count(*) as sum from hw_device
where device_status = '1'
<if test="sceneId != null "> and scene_id = #{sceneId}</if>
where device_status = '1'
</select>
<!-- 通过场景分组,查询设备数量 todo 已解决 -->
<!-- 通过场景分组,查询设备数量 todo 已解决 -->
<select id="selectsum" resultMap="AllNumsVoResult">
select scene_id,count(*) as sum from hw_device
where device_status = '1'GROUP BY scene_id
select scene_id,count(*) as sum from hw_device
where device_status = '1'GROUP BY scene_id
</select>
<!-- 通过id查询子集并返回-->
<!-- 通过id查询子集并返回-->
<select id="selectHwMonitorUnitByParent" parameterType="Long" resultMap="HwMonitorUnitResult">
<include refid="selectHwMonitorUnitVo"/>
where parent_id = #{monitorUnitId}
@ -137,11 +126,11 @@
select count(*) from hw_device where releated_device_id = #{deviceId}
</select>
<!-- 查询该监控单元是否为最小单元-->
<!-- 查询该监控单元是否为最小单元-->
<select id="selectHwMonitorUnitIsParent" parameterType="Long" resultType="String">
SELECT count(*) from hw_monitor_unit where parent_id = #{monitorUnitId} GROUP BY parent_id
</select>
<!-- todo 查询最小单元详细信息根据主键 byid 已解决-->
<!-- todo 查询最小单元详细信息根据主键 byid 已解决-->
<select id="selectHwmonitorUnitSub" resultType="Long" resultMap="HwMonitorUnitResult">
<include refid="selectHwMonitorUnitVo"/>
where monitor_unit_id = #{monitorUnitId}
@ -150,25 +139,25 @@
<select id="selectSceneNameById" resultMap="HwMonitorUnitVoResult">
select scene_id,scene_name from hw_scene
</select>
<!-- 分页查询在impl实现分页-->
<!-- 分页查询在impl实现分页-->
<select id="selectLimitSubMonitorUnit" resultMap="HwMonitorUnitResult">
select * from hw_monitor_unit where monitor_unit_id
not in (select parent_id from hw_monitor_unit where parent_id is not null)
</select>
<!-- 查询最子集监控单元使用sceneid进行分组-->
<!-- 查询最子集监控单元使用sceneid进行分组-->
<select id="selectMonitorPercentage" resultMap="HwMonitorUnitVoResult">
select scene_id,count(*) as sum from (select monitor_unit_id,scene_id
from hw_monitor_unit where monitor_unit_id not in
(select parent_id from hw_monitor_unit where parent_id is not null))as temp
GROUP BY scene_id order by sum desc
</select>
<!-- 先通过报警信息表查询报警的监控单元id与数量在查询监控单元的名字-->
<!-- 先通过报警信息表查询报警的监控单元id与数量在查询监控单元的名字-->
<select id="selectAlarmStats" resultMap="AlarmStatsResult">
select b.monitor_unit_id,b.monitor_unit_name,sum from
(select monitor_unit_id,count(*)as sum from hw_alarm_info where scene_id = #{sceneId} GROUP BY monitor_unit_id
select b.monitor_unit_id,b.monitor_unit_name,sum from
(select monitor_unit_id,count(*)as sum from hw_alarm_info GROUP BY monitor_unit_id
)as a left join hw_monitor_unit b on a.monitor_unit_id = b.monitor_unit_id order BY sum
</select>
<!-- sub_sum 最子集监控单元数量device_num 设备数量 online_device_num在线设备数量 todo 传一个sceneid 监控单元和设备数量拆开查询 设备拿全部在后端判断 orderby 主键 -->
<!-- sub_sum 最子集监控单元数量device_num 设备数量 online_device_num在线设备数量 todo 传一个sceneid 监控单元和设备数量拆开查询 设备拿全部在后端判断 orderby 主键 -->
<select id="selectSubDeviceSum" parameterType="Long" resultType="Integer">
select count(*) from (select monitor_unit_id,scene_id
from hw_monitor_unit where monitor_unit_id not in
@ -176,16 +165,16 @@
</select>
<!-- 先查询监控单元/设备的总量与报警未处理数量再通过场景id与电子围栏相连接-->
<!-- 先查询监控单元/设备的总量与报警未处理数量再通过场景id与电子围栏相连接-->
<select id="selectElectronicNum" resultMap="ElectronicNumVoResult">
select a.electronic_fence_id,a.electronic_fence_name,a.area_shape_flag,a.area_range,a.fence_type,b.num,b.alarm_num
from hw_electronic_fence as a left join ( select scene_id,count(*)as num,count(case when handle_status = '0' then 1 end ) as alarm_num from hw_alarm_info GROUP BY scene_id) as b on a.scene_id = b.scene_id
</select>
<select id="selectEleInScene" parameterType="Long" resultType="List">
select electronic_fence_id from hw_electronic_fence where scene_id = #{sceneId}
select electronic_fence_id from hw_electronic_fence where scene_id = #{sceneId}
</select>
<select id="selectEleType2" parameterType="Long" resultType="String">
select count(*) from hw_device where monitor_unit_id = (select target_id from hw_fence_target where target_type='2' and electronic_fence_id = #{electronicFenceId})
select count(*) from hw_device where monitor_unit_id = (select target_id from hw_fence_target where target_type='2' and electronic_fence_id = #{electronicFenceId})
</select>
<select id="selectEleType3" parameterType="Long" resultType="String">
select count(*) from hw_device where scene_id = #{sceneId}
@ -200,6 +189,7 @@
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="monitorUnitName != null and monitorUnitName != ''">monitor_unit_name,</if>
<if test="sceneId != null">scene_id,</if>
<if test="tenantId != null">tenant_id,</if>
<if test="parentId != null">parent_id,</if>
<if test="monitorUnitTypeId != null">monitor_unit_type_id,</if>
<if test="areaId != null">area_id,</if>
@ -217,6 +207,7 @@
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="monitorUnitName != null and monitorUnitName != ''">#{monitorUnitName},</if>
<if test="sceneId != null">#{sceneId},</if>
<if test="tenantId != null">#{tenantId},</if>
<if test="parentId != null">#{parentId},</if>
<if test="monitorUnitTypeId != null">#{monitorUnitTypeId},</if>
<if test="areaId != null">#{areaId},</if>
@ -238,6 +229,7 @@
<trim prefix="SET" suffixOverrides=",">
<if test="monitorUnitName != null and monitorUnitName != ''">monitor_unit_name = #{monitorUnitName},</if>
<if test="sceneId != null">scene_id = #{sceneId},</if>
<if test="tenantId != null">scene_id = #{tenantId},</if>
<if test="parentId != null">parent_id = #{parentId},</if>
<if test="monitorUnitTypeId != null">monitor_unit_type_id = #{monitorUnitTypeId},</if>
<if test="areaId != null">area_id = #{areaId},</if>
@ -256,32 +248,23 @@
</update>
<delete id="deleteHwMonitorUnitByMonitorUnitId" parameterType="Long">
delete from hw_monitor_unit where monitor_unit_id = #{monitorUnitId}
UPDATE hw_monitor_unit SET monitor_unit_status='9' where monitor_unit_id= #{monitorUnitId}
</delete>
<delete id="deleteHwMonitorUnitByMonitorUnitIds" parameterType="String">
delete from hw_monitor_unit where monitor_unit_id in
UPDATE hw_monitor_unit SET monitor_unit_status='9' where monitor_unit_id =
<foreach item="monitorUnitId" collection="array" open="(" separator="," close=")">
#{monitorUnitId}
</foreach>
</delete>
<select id="selectHwMonitorUnitListJoinScene" parameterType="HwMonitorUnit" resultMap="HwMonitorUnitResult">
<include refid="selectHwMonitorUnitJoinScene"/>
<where>
hmu.monitor_unit_id not in (select parent_id from hw_monitor_unit where parent_id is not null)
<if test="monitorUnitName != null and monitorUnitName != ''"> and monitor_unit_name like concat('%', #{monitorUnitName}, '%')</if>
<if test="sceneId != null "> and scene_id = #{sceneId}</if>
<if test="parentId != null "> and parent_id = #{parentId}</if>
<if test="monitorUnitTypeId != null "> and monitor_unit_type_id = #{monitorUnitTypeId}</if>
<if test="areaId != null "> and area_id = #{areaId}</if>
<if test="monitorAddress != null and monitorAddress != ''"> and monitor_address = #{monitorAddress}</if>
<if test="monitorPic != null and monitorPic != ''"> and monitor_pic = #{monitorPic}</if>
<if test="preserveTime != null "> and preserve_time = #{preserveTime}</if>
<if test="monitorUnitStatus != null "> and monitor_unit_status = #{monitorUnitStatus}</if>
<if test="monitorUnitField != null and monitorUnitField != ''"> and monitor_unit_field = #{monitorUnitField}</if>
</where>
<select id="selectIsParent" parameterType="Long" resultType="Integer">
select count(*) from hw_monitor_unit where parent_id = #{monitorUnitId}
</select>
<select id="selectDeviceRelevancyMontiorUnit" parameterType="Long" resultType="Integer" >
SELECT count(*) from hw_device where monitor_unit_id = #{monitorUnitId}
</select>
<select id="selectElectronicFenceRelevancyMonitorUnit" parameterType="Long" resultType="Integer" >
SELECT count(*) from hw_fence_target where target_type = '2' and target_id = #{monitorUnitId}
</select>
</mapper>

@ -12,6 +12,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="languageCode" column="language_code" />
<result property="commonFlag" column="common_flag" />
<result property="sceneId" column="scene_id" />
<result property="tenantId" column="tenant_id" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
@ -22,7 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectHwMonitorUnitTypeVo">
select monitor_unit_type_id, monitor_unit_type_name, vitual_flag, monitor_unit_type_status, language_code, common_flag, scene_id, remark, create_by, create_time, update_by, update_time, unit_type_icon, unit_type_field from hw_monitor_unit_type
select monitor_unit_type_id, monitor_unit_type_name, vitual_flag, monitor_unit_type_status, language_code, common_flag, scene_id,tenant_id, remark, create_by, create_time, update_by, update_time, unit_type_icon, unit_type_field from hw_monitor_unit_type
</sql>
<select id="selectHwMonitorUnitTypeByMonitorUnitTypeId" parameterType="Long" resultMap="HwMonitorUnitTypeResult">
@ -31,6 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="selectHwMonitorUnitTypeList" parameterType="HwMonitorUnitType" resultMap="HwMonitorUnitTypeResult">
<include refid="selectHwMonitorUnitTypeVo"/>
<where>
<if test="monitorUnitTypeName != null and monitorUnitTypeName != ''"> and monitor_unit_type_name like concat('%', #{monitorUnitTypeName}, '%')</if>
<if test="vitualFlag != null and vitualFlag != ''"> and vitual_flag = #{vitualFlag}</if>
@ -38,8 +40,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="languageCode != null and languageCode != ''"> and language_code = #{languageCode}</if>
<if test="commonFlag != null and commonFlag != ''"> and common_flag = #{commonFlag}</if>
<if test="sceneId != null "> and scene_id = #{sceneId}</if>
<if test="tenantId != null "> and tenant_id = #{tenantId}</if>
<if test="unitTypeIcon != null and unitTypeIcon != ''"> and unit_type_icon = #{unitTypeIcon}</if>
<if test="unitTypeField != null and unitTypeField != ''"> and unit_type_field = #{unitTypeField}</if>
<if test="monitorUnitTypeStatus == null"> and monitor_unit_type_status = '1'</if>
</where>
</select>
@ -56,6 +60,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="languageCode != null">language_code,</if>
<if test="commonFlag != null and commonFlag != ''">common_flag,</if>
<if test="sceneId != null">scene_id,</if>
<if test="tenantId != null ">tenant_id,</if>
<if test="remark != null">remark,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
@ -71,6 +76,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="languageCode != null">#{languageCode},</if>
<if test="commonFlag != null and commonFlag != ''">#{commonFlag},</if>
<if test="sceneId != null">#{sceneId},</if>
<if test="tenantId != null ">#{tenantId},</if>
<if test="remark != null">#{remark},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
@ -90,6 +96,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="languageCode != null">language_code = #{languageCode},</if>
<if test="commonFlag != null and commonFlag != ''">common_flag = #{commonFlag},</if>
<if test="sceneId != null">scene_id = #{sceneId},</if>
<if test="tenantId != null ">tenant_id = #{tenantId},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
@ -102,13 +109,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</update>
<delete id="deleteHwMonitorUnitTypeByMonitorUnitTypeId" parameterType="Long">
delete from hw_monitor_unit_type where monitor_unit_type_id = #{monitorUnitTypeId}
update hw_monitor_unit_type set monitor_unit_type_status = '9' where monitor_unit_type_id = #{monitorUnitTypeId}
</delete>
<delete id="deleteHwMonitorUnitTypeByMonitorUnitTypeIds" parameterType="String">
delete from hw_monitor_unit_type where monitor_unit_type_id in
update hw_monitor_unit_type set monitor_unit_type_status = '9' where monitor_unit_type_id in
<foreach item="monitorUnitTypeId" collection="array" open="(" separator="," close=")">
#{monitorUnitTypeId}
</foreach>
</delete>
<select id="getNumsHwMonitorUnitTypeByMonitorUnitTypeId" parameterType="Long" resultType="int">
select count(*) from hw_monitor_unit where monitor_unit_type_id = #{monitorUnitTypeId}
</select>
</mapper>

@ -54,13 +54,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectHwSceneVo">
select scene_id, scene_name, tenant_id, scene_mode_id, scene_pic, default_flag, scene_status, auth_mode, mode_account, mode_key, mode_secret, preserve_time, test_preserve_time, remark, create_by, create_time, update_by, update_time, scene_environment, scene_field from hw_scene hs
select scene_id, scene_name, tenant_id, scene_mode_id, scene_pic, default_flag, scene_status, auth_mode, mode_account, mode_key, mode_secret, preserve_time, test_preserve_time, remark, create_by, create_time, update_by, update_time, scene_environment, scene_field from hw_scene
</sql>
<select id="selectHwSceneVoList" parameterType="HwSceneVo" resultMap="HwSceneVoResult">
select a.*,b.tenant_name,c.scene_mode_name from hw_scene as a
left join hw_tenant as b on a.tenant_id = b.tenant_id
left join hw_scene_mode as c on a.scene_mode_id = c.scene_mode_id
where a.scene_status = '1'
<where>
<if test="sceneName != null and sceneName != ''"> and a.scene_name like concat('%', #{sceneName}, '%')</if>
<if test="contactName != null and contactName != ''"> and b.contact_name like concat('%', #{contactName}, '%')</if>
@ -87,10 +88,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="testPreserveTime != null "> and test_preserve_time = #{testPreserveTime}</if>
<if test="sceneEnvironment != null and sceneEnvironment != ''"> and scene_environment = #{sceneEnvironment}</if>
<if test="sceneField != null and sceneField != ''"> and scene_field = #{sceneField}</if>
<!-- 租户数据范围过滤 -->
${params.tenantDataScope}
</where>
order by scene_id desc
</select>
<select id="selectHwSceneByTenantId0" parameterType="Long" resultMap="HwSceneResult">
<include refid="selectHwSceneVo"/>
@ -99,7 +97,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectHwSceneByTenantIdNot0" parameterType="Long" resultMap="HwSceneResult">
<include refid="selectHwSceneVo"/>
where tenant_id = #{tenantId}
order by update_time desc
</select>
<select id="selectHwSceneBySceneId" parameterType="Long" resultMap="HwSceneResult">
@ -191,9 +188,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteHwSceneBySceneIds" parameterType="String">
update hw_scene set scene_status = '9' where scene_id = in
update hw_scene set scene_status = '9' where scene_id in
<foreach item="sceneId" collection="array" open="(" separator="," close=")">
#{sceneId}
</foreach>
</delete>
<select id="selectHwSceneVoListByTenantId" parameterType="Long" resultMap="HwSceneVoResult">
select scene_id,scene_name from hw_scene where tenant_id = #{tenantId}
</select>
</mapper>

@ -71,5 +71,3 @@ export function createTdeDb(data){
data: data
})
}

@ -1,6 +1,4 @@
import Vue from 'vue'
import less from 'less'
import AMapLoader from "@amap/amap-jsapi-loader";
import Cookies from 'js-cookie'
@ -63,18 +61,9 @@ Vue.component('FileUpload', FileUpload)
Vue.component('ImageUpload', ImageUpload)
Vue.component('ImagePreview', ImagePreview)
AMapLoader.load({
'key': '268909dc36fd438908a64ebe057bfb17',
'version': '2.0',
'plugins': ['AMap.Scale','AMap.GeoJSON','AMap.MarkerClusterer','AMap.PolygonEditor','AMap.Polygon','AMap.CircleEditor']
}).then((AMap) => {
Vue.use(AMap)
})
Vue.use(directive)
Vue.use(plugins)
Vue.use(VueMeta)
Vue.use(less)
DictData.install()
/**

@ -162,20 +162,6 @@ export const dynamicRoutes = [
}
]
},
{
path: '/deviceMode/mode-add',
component: Layout,
hidden: true,
permissions: ['business:deviceMode:add'],
children: [
{
path: 'index',
component: () => import('@/views/business/deviceMode/editDeviceMode'),
name: 'ModeAdd',
meta: { title: '添加设备模型', activeMenu: '/business/deviceMode' }
}
]
},
{
path: '/deviceMode/mode-edit',
component: Layout,

Loading…
Cancel
Save