diff --git a/ruoyi-api/hw-api-tdengine/src/main/java/com/ruoyi/tdengine/api/domain/DeviceStatus.java b/ruoyi-api/hw-api-tdengine/src/main/java/com/ruoyi/tdengine/api/domain/DeviceStatus.java index 2043d83..0fca5cb 100644 --- a/ruoyi-api/hw-api-tdengine/src/main/java/com/ruoyi/tdengine/api/domain/DeviceStatus.java +++ b/ruoyi-api/hw-api-tdengine/src/main/java/com/ruoyi/tdengine/api/domain/DeviceStatus.java @@ -2,6 +2,8 @@ package com.ruoyi.tdengine.api.domain; import com.ruoyi.common.core.web.domain.BaseEntity; +import java.util.List; + /** * @Description: 设备状态对象 * @ClassName: DeviceStatus @@ -26,6 +28,8 @@ public class DeviceStatus extends BaseEntity { private Long startTime; private Long endTime; + private List schemaFields; + public Long getTs() { return ts; } @@ -89,4 +93,12 @@ public class DeviceStatus extends BaseEntity { public void setEndTime(Long endTime) { this.endTime = endTime; } + + public List getSchemaFields() { + return schemaFields; + } + + public void setSchemaFields(List schemaFields) { + this.schemaFields = schemaFields; + } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java index f074cec..3f327d1 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java @@ -1,11 +1,7 @@ package com.ruoyi.system.api; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.*; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; @@ -40,4 +36,17 @@ public interface RemoteUserService */ @PostMapping("/user/register") public R registerUserInfo(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + + /** + * @param: tenantId + * @description 根据租户删除用户信息 + * @author xins + * @date 2023-09-27 9:58 + * @return R + */ + @PostMapping("/user/deleteUsersByTenantId/{tenantId}") + public R deleteUsersByTenantId(@PathVariable("tenantId") Long tenantId); + + } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java index 029b024..3308337 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java @@ -36,6 +36,11 @@ public class RemoteUserFallbackFactory implements FallbackFactory deleteUsersByTenantId(Long tenantId) { + return R.fail("删除用户失败:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/HwDictConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/HwDictConstants.java index 13da9ac..d9fc5e3 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/HwDictConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/HwDictConstants.java @@ -33,7 +33,7 @@ public class HwDictConstants { public static final String FUNCTION_MODE_SERVICE = "2";//设备模型功能模式服务 public static final String FUNCTION_MODE_EVENT = "3";//设备模型功能模式事件 - public static final String RW_FLAG_RW = "1";//读写 + public static final String RW_FLAG_RW = "1";//读写 public static final String RW_FLAG_READ = "2";//只读 public static final String DEVICE_STATUS_PUBLISH = "1";//设备状态:已发布 @@ -54,7 +54,7 @@ public class HwDictConstants { public static final String DEVICE_DEFAULT_FLAG_YES = "1";//默认是 public static final String DEVICE_DEFAULT_FLAG_NO = "0";//默认否 - public static final Long ADMINISTRATOR_TENANT_ID = 0L;//金瑞铭租户ID + public static final Long ADMINISTRATOR_TENANT_ID = 1L;//金瑞铭租户ID public static final String DEVICE_TYPE_GATEWAY_DEVICE = "1";//网关设备 public static final String DEVICE_TYPE_GATEWAY_SUB_EQUIPMENT = "2";//网关子设备 @@ -83,9 +83,33 @@ public class HwDictConstants { SCENE_MODE_ROUTER_MAP.put(SCENE_MODE_GPS, ROUTER_GPS); } - public static final String DEVICE_ONLINE_STATUS_ONLINE="1";//在线状态 - public static final String DEVICE_ONLINE_STATUS_OFFLINE="0"; //离线状态 + public static final String DEVICE_ONLINE_STATUS_ONLINE = "1";//在线状态 + public static final String DEVICE_ONLINE_STATUS_OFFLINE = "0"; //离线状态 public static final String ALARM_HANDLE_STATUS_YES = "1";//已处理 public static final String ALARM_HANDLE_STATUS_NO = "0";//未处理 + + public static final String SCENE_STATUS_NORMAL = "1";//场景正常状态 + public static final String SCENE_STATUS_DELETED = "9";//场景删除状态 + + public static final String CONTROL_COMMAND_REDIS_KEY = "mqtt:channel:down";//下发控制指令到redis的key + public static final String CONTROL_COMMAND_TOPIC_VALUE = "/v1/{}/device/command";//下发控制指令的topic + public static final String CONTROL_COMMAND_TOPIC_KEY = "TOPIC"; + public static final String CONTROL_COMMAND_PAYLOAD_KEY = "Payload"; + public static final String CONTROL_COMMAND_PAYLOAD_MID_KEY = "mid"; + public static final String CONTROL_COMMAND_PAYLOAD_TIMESTAMP_KEY = "timestamp"; + public static final String CONTROL_COMMAND_PAYLOAD_TYPE_KEY = "type"; + public static final String CONTROL_COMMAND_PAYLOAD_PARAM_KEY = "param"; + + public static final String DEVICEMODE_GPS_FLAG_NO="0";//设备模型,非定位模型 + + public static final String TENANT_STATUS_NORMAL = "1";//租户状态:正常 + public static final String TENANT_STATUS_DELETED = "9";//租户状态:正常 + public static final String TENANT_IS_REGISTER_EXTERNAL = "0";//租户是否外部注册:否 + + + public static final String MONITOR_UNIT_STATUS_NORMAL = "1";//监控单元状态:正常 + public static final String MONITORY_UNIT_STATUS_DELETE = "9";//监控单元状态,删除 + + } diff --git a/ruoyi-common/ruoyi-common-datascope/src/main/java/com/ruoyi/common/datascope/aspect/DataScopeAspect.java b/ruoyi-common/ruoyi-common-datascope/src/main/java/com/ruoyi/common/datascope/aspect/DataScopeAspect.java index ed41fb3..fcd0a66 100644 --- a/ruoyi-common/ruoyi-common-datascope/src/main/java/com/ruoyi/common/datascope/aspect/DataScopeAspect.java +++ b/ruoyi-common/ruoyi-common-datascope/src/main/java/com/ruoyi/common/datascope/aspect/DataScopeAspect.java @@ -130,8 +130,6 @@ public class DataScopeAspect { sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias)); } - - System.out.println("---"+ sqlString.toString()); Object params = joinPoint.getArgs()[0]; if (StringUtils.isNotNull(params) && params instanceof BaseEntity) { BaseEntity baseEntity = (BaseEntity) params; @@ -139,7 +137,6 @@ public class DataScopeAspect { baseEntity.getParams().put(DATA_SCOPE, " AND (" + sqlString.substring(4) + ")"); } StringBuilder tenantFilterSql = getTenantFilterSql(user, tenantAlias); - System.out.println("------"+tenantFilterSql.toString()); if (StringUtils.isNotBlank(tenantFilterSql.toString())) { baseEntity.getParams().put(TENANT_DATA_SCOPE, " AND (" + tenantFilterSql.substring(4) + ")"); } diff --git a/ruoyi-modules/hw-basic/src/main/java/com/ruoyi/basic/service/impl/HwTenantServiceImpl.java b/ruoyi-modules/hw-basic/src/main/java/com/ruoyi/basic/service/impl/HwTenantServiceImpl.java index d0cc649..fdcf27e 100644 --- a/ruoyi-modules/hw-basic/src/main/java/com/ruoyi/basic/service/impl/HwTenantServiceImpl.java +++ b/ruoyi-modules/hw-basic/src/main/java/com/ruoyi/basic/service/impl/HwTenantServiceImpl.java @@ -4,6 +4,7 @@ package com.ruoyi.basic.service.impl; import com.ruoyi.basic.api.domain.HwTenant; import com.ruoyi.basic.mapper.HwTenantMapper; import com.ruoyi.basic.service.IHwTenantService; +import com.ruoyi.common.core.constant.HwDictConstants; import com.ruoyi.common.core.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -43,6 +44,7 @@ public class HwTenantServiceImpl implements IHwTenantService @Override public List selectHwTenantList(HwTenant hwTenant) { + hwTenant.setTenantStatus(HwDictConstants.TENANT_STATUS_NORMAL); return hwTenantMapper.selectHwTenantList(hwTenant); } diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwDeviceController.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwDeviceController.java index 734d6bc..60b9dd0 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwDeviceController.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwDeviceController.java @@ -8,6 +8,7 @@ import javax.servlet.http.HttpServletResponse; import com.ruoyi.business.domain.HwDeviceMode; import com.ruoyi.business.domain.HwMonitorUnit; import com.ruoyi.business.domain.HwScene; +import com.ruoyi.business.domain.VO.DeviceControlVo; import com.ruoyi.business.domain.VO.DeviceModeVo; import com.ruoyi.business.domain.VO.HwMonitorUnitVo; import com.ruoyi.business.service.IHwDeviceModeService; @@ -46,8 +47,7 @@ import com.ruoyi.common.core.web.page.TableDataInfo; */ @RestController @RequestMapping("/device") -public class HwDeviceController extends BaseController -{ +public class HwDeviceController extends BaseController { @Autowired private IHwDeviceService hwDeviceService; @@ -65,24 +65,20 @@ public class HwDeviceController extends BaseController */ @RequiresPermissions("business:device:list") @GetMapping("/list") - public TableDataInfo list(HwDevice hwDevice) - { + public TableDataInfo list(HwDevice hwDevice) { startPage(); List list = hwDeviceService.selectHwDeviceJoinList(hwDevice); return getDataTable(list); } - - /** * 导出设备信息列表 */ @RequiresPermissions("business:device:export") @Log(title = "设备信息", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, HwDevice hwDevice) - { + public void export(HttpServletResponse response, HwDevice hwDevice) { List list = hwDeviceService.selectHwDeviceJoinList(hwDevice); ExcelUtil util = new ExcelUtil(HwDevice.class); util.exportExcel(response, list, "设备信息数据"); @@ -93,8 +89,7 @@ public class HwDeviceController extends BaseController */ @RequiresPermissions("business:device:query") @GetMapping(value = "/{deviceId}") - public AjaxResult getInfo(@PathVariable("deviceId") Long deviceId) - { + public AjaxResult getInfo(@PathVariable("deviceId") Long deviceId) { return success(hwDeviceService.selectHwDeviceByDeviceId(deviceId)); } @@ -104,8 +99,7 @@ public class HwDeviceController extends BaseController @RequiresPermissions("business:device:add") @Log(title = "设备信息", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody HwDevice hwDevice) - { + public AjaxResult add(@RequestBody HwDevice hwDevice) { LoginUser loginUser = SecurityUtils.getLoginUser(); SysUser user = loginUser.getSysUser(); hwDevice.setTenantId(user.getTenantId()); @@ -119,8 +113,7 @@ public class HwDeviceController extends BaseController @RequiresPermissions("business:device:edit") @Log(title = "设备信息", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@RequestBody HwDevice hwDevice) - { + public AjaxResult edit(@RequestBody HwDevice hwDevice) { hwDevice.setUpdateBy(SecurityUtils.getUsername()); return toAjax(hwDeviceService.updateHwDevice(hwDevice)); } @@ -130,24 +123,26 @@ public class HwDeviceController extends BaseController */ @RequiresPermissions("business:device:remove") @Log(title = "设备信息", businessType = BusinessType.DELETE) - @DeleteMapping("/{deviceIds}") - public AjaxResult remove(@PathVariable Long[] deviceIds) - { - return toAjax(hwDeviceService.deleteHwDeviceByDeviceIds(deviceIds)); + @DeleteMapping("/{deviceId}/{deviceType}") + public AjaxResult remove(@PathVariable("deviceId") Long deviceId + , @PathVariable("deviceType") String deviceType) { + if (deviceType.equals(HwDictConstants.DEVICE_TYPE_GATEWAY_DEVICE) + && hwDeviceService.checkExistSubDevice(deviceId)) { + return warn("存在子设备,不允许删除"); + } + + return toAjax(hwDeviceService.deleteHwDeviceByDeviceId(deviceId)); } - @RequiresPermissions("business:device:list") @GetMapping("/getScenes") - public AjaxResult getScenes(HwScene scene) - { + public AjaxResult getScenes(HwScene scene) { return success(hwSceneService.selectHwSceneList(scene)); } @RequiresPermissions("business:device:list") @GetMapping("/getEditedScenes") - public AjaxResult getEditedScenes(HwScene scene) - { + public AjaxResult getEditedScenes(HwScene scene) { return success(hwSceneService.selectHwSceneList4Select(scene)); } @@ -156,8 +151,7 @@ public class HwDeviceController extends BaseController */ @RequiresPermissions("business:device:list") @GetMapping(value = {"/monitorUnitTree/", "/monitorUnitTree/{sceneId}"}) - public AjaxResult monitorUnitTree(@PathVariable(value = "sceneId", required = false) Long sceneId) - { + public AjaxResult monitorUnitTree(@PathVariable(value = "sceneId", required = false) Long sceneId) { HwMonitorUnit queryMonitorUnit = new HwMonitorUnit(); queryMonitorUnit.setSceneId(sceneId); return success(hwMonitorUnitService.selectMonitorTreeList(queryMonitorUnit)); @@ -165,8 +159,7 @@ public class HwDeviceController extends BaseController @RequiresPermissions("business:device:list") @GetMapping(value = {"/getDeviceModes/", "/getDeviceModes/{sceneId}"}) - public AjaxResult getDeviceModes(@PathVariable(value = "sceneId", required = false) Long sceneId) - { + public AjaxResult getDeviceModes(@PathVariable(value = "sceneId", required = false) Long sceneId) { HwDeviceMode queryDeviceMode = new HwDeviceMode(); queryDeviceMode.setSceneId(sceneId); return success(hwDeviceModeService.selectHwDeviceModeList(queryDeviceMode)); @@ -174,8 +167,7 @@ public class HwDeviceController extends BaseController @RequiresPermissions("business:device:list") @GetMapping(value = {"/getGatewayDevices/", "/getGatewayDevices/{sceneId}"}) - public AjaxResult getGatewayDevices(@PathVariable(value = "sceneId", required = false) Long sceneId) - { + public AjaxResult getGatewayDevices(@PathVariable(value = "sceneId", required = false) Long sceneId) { HwDevice queryHwDevice = new HwDevice(); queryHwDevice.setSceneId(sceneId); queryHwDevice.setDeviceType(HwDictConstants.DEVICE_TYPE_GATEWAY_DEVICE); @@ -189,15 +181,25 @@ public class HwDeviceController extends BaseController @RequiresPermissions("business:device:edit") @Log(title = "设备管理", businessType = BusinessType.UPDATE) @PutMapping("/changeDeviceStatus") - public AjaxResult changeDeviceStatus(@RequestBody HwDevice device) - { + public AjaxResult changeDeviceStatus(@RequestBody HwDevice device) { device.setUpdateBy(SecurityUtils.getUsername()); device.setUpdateTime(new Date()); - return toAjax(hwDeviceService.updateHwDevice(device)); + return toAjax(hwDeviceService.changeDeviceStatus(device)); + } + + /** + * 状态修改 + */ + @RequiresPermissions("business:device:edit") + @Log(title = "下发设备控制指令", businessType = BusinessType.UPDATE) + @PutMapping("/publishControlCommand") + public AjaxResult publishControlCommand(@RequestBody DeviceControlVo deviceControlVo) { + hwDeviceService.publishControlCommand(deviceControlVo); + return success(); } @GetMapping("/computeOnlineDevicecCount/{days}") - public void computeOnlineDevicecCount(@PathVariable("days") int days){ + public void computeOnlineDevicecCount(@PathVariable("days") int days) { hwDeviceService.computeOnlineDevicecCount(days); } } diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwMonitorPlatformController.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwMonitorPlatformController.java index bbcb88d..062663c 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwMonitorPlatformController.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwMonitorPlatformController.java @@ -5,7 +5,6 @@ import com.ruoyi.business.domain.*; import com.ruoyi.business.domain.VO.*; import com.ruoyi.business.service.*; import com.ruoyi.common.core.constant.HwDictConstants; -import com.ruoyi.common.core.constant.TdEngineConstants; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.TableDataInfo; @@ -16,10 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; -import java.util.Date; import java.util.List; -import java.util.Map; @RestController @RequestMapping("/monitorPlatform") diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwMonitorUnitController.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwMonitorUnitController.java index 8935c84..afcf795 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwMonitorUnitController.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwMonitorUnitController.java @@ -113,10 +113,18 @@ public class HwMonitorUnitController extends BaseController */ @RequiresPermissions("business:monitorUnit:remove") @Log(title = "监控单元", businessType = BusinessType.DELETE) - @DeleteMapping("/{monitorUnitIds}") - public AjaxResult remove(@PathVariable Long[] monitorUnitIds) + @DeleteMapping("/{monitorUnitId}") + public AjaxResult remove(@PathVariable Long monitorUnitId) { - return toAjax(hwMonitorUnitService.deleteHwMonitorUnitByMonitorUnitIds(monitorUnitIds)); + if (hwMonitorUnitService.hasChildByMonitorUnitId(monitorUnitId)) + { + return warn("存在下级监单元,不允许删除"); + } + if (hwMonitorUnitService.checkMonitorUnitExistDevice(monitorUnitId)) + { + return warn("监控单元存在设备,不允许删除"); + } + return toAjax(hwMonitorUnitService.deleteHwMonitorUnitByMonitorUnitId(monitorUnitId)); } @@ -136,22 +144,14 @@ public class HwMonitorUnitController extends BaseController @RequiresPermissions("business:monitorUnit:list") - @GetMapping("/getMonitorUnitTypes") - public AjaxResult getMonitorUnitTypes(HwMonitorUnitType monitorUnitType) + @GetMapping(value = {"/getMonitorUnitTypes/", "/getMonitorUnitTypes/{sceneId}"}) + public AjaxResult getMonitorUnitTypes(@PathVariable(value = "sceneId", required = false) Long sceneId) { + HwMonitorUnitType monitorUnitType = new HwMonitorUnitType(); + monitorUnitType.setSceneId(sceneId); return success(monitorUnitTypeService.selectHwMonitorUnitTypeList(monitorUnitType)); } - @RequiresPermissions("business:monitorUnit:list") - @GetMapping("/getEditedMonitorUnitTypes") - public AjaxResult getEditedMonitorUnitTypes(HwMonitorUnitType monitorUnitType) - { - LoginUser loginUser = SecurityUtils.getLoginUser(); - SysUser user = loginUser.getSysUser(); - monitorUnitType.setTenantId(user.getTenantId()); - return success(monitorUnitTypeService.selectHwMonitorUnitTypeList4Select(monitorUnitType)); - } - /** * 查询监控单元列表供编辑 */ @@ -159,9 +159,10 @@ public class HwMonitorUnitController extends BaseController @GetMapping("/getEditedMonitorUnits") public AjaxResult getEditedMonitorUnits(HwMonitorUnit hwMonitorUnit) { - LoginUser loginUser = SecurityUtils.getLoginUser(); - SysUser user = loginUser.getSysUser(); - hwMonitorUnit.setTenantId(user.getTenantId()); +// LoginUser loginUser = SecurityUtils.getLoginUser(); +// SysUser user = loginUser.getSysUser(); +// hwMonitorUnit.setTenantId(user.getTenantId()); + //前端传场景ID,根据场景ID过滤 List list = hwMonitorUnitService.selectHwMonitorUnitList(hwMonitorUnit); return success(list); } diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwTenantController.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwTenantController.java index c375d39..9b94200 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwTenantController.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwTenantController.java @@ -5,6 +5,7 @@ import java.util.List; import java.io.IOException; import javax.servlet.http.HttpServletResponse; +import com.ruoyi.common.core.constant.HwDictConstants; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.model.LoginUser; @@ -47,12 +48,7 @@ public class HwTenantController extends BaseController @GetMapping("/list") public TableDataInfo list(HwTenant hwTenant) { - List list = new ArrayList(); - startPage(); - //todo 放到add中 - - list = hwTenantService.selectHwTenantList(hwTenant); - return getDataTable(list); + return getDataTable(hwTenantService.selectHwTenantList(hwTenant)); } /** @@ -86,10 +82,8 @@ public class HwTenantController extends BaseController @PostMapping public AjaxResult add(@RequestBody HwTenant hwTenant) { - LoginUser loginUser = SecurityUtils.getLoginUser(); - SysUser sysUser = loginUser.getSysUser(); - hwTenant.setIsRegister("0"); - hwTenant.setCreateBy(sysUser.getNickName()); + hwTenant.setIsRegister(HwDictConstants.TENANT_IS_REGISTER_EXTERNAL); + hwTenant.setCreateBy(SecurityUtils.getUsername()); return toAjax(hwTenantService.insertHwTenant(hwTenant)); } @@ -100,10 +94,8 @@ public class HwTenantController extends BaseController @Log(title = "租户信息", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody HwTenant hwTenant) - {LoginUser loginUser = SecurityUtils.getLoginUser(); - SysUser sysUser = loginUser.getSysUser(); - - hwTenant.setUpdateBy(sysUser.getNickName()); + { + hwTenant.setUpdateBy(SecurityUtils.getUsername()); return toAjax(hwTenantService.updateHwTenant(hwTenant)); } diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/domain/HwDevice.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/domain/HwDevice.java index a77b95c..916fd95 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/domain/HwDevice.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/domain/HwDevice.java @@ -168,6 +168,8 @@ public class HwDevice extends BaseEntity { private String deviceModeName; private String tenantName; + private String gpsFlag; + public void setDeviceId(Long deviceId) { this.deviceId = deviceId; @@ -393,6 +395,14 @@ public class HwDevice extends BaseEntity { this.tenantName = tenantName; } + public String getGpsFlag() { + return gpsFlag; + } + + public void setGpsFlag(String gpsFlag) { + this.gpsFlag = gpsFlag; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/domain/HwMonitorUnit.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/domain/HwMonitorUnit.java index 885517d..68fbb69 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/domain/HwMonitorUnit.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/domain/HwMonitorUnit.java @@ -59,7 +59,7 @@ public class HwMonitorUnit extends BaseEntity /** 状态 */ @Excel(name = "状态") - private Long monitorUnitStatus; + private String monitorUnitStatus; /** 预留字段 */ @Excel(name = "预留字段") @@ -181,12 +181,12 @@ public class HwMonitorUnit extends BaseEntity { return preserveTime; } - public void setMonitorUnitStatus(Long monitorUnitStatus) + public void setMonitorUnitStatus(String monitorUnitStatus) { this.monitorUnitStatus = monitorUnitStatus; } - public Long getMonitorUnitStatus() + public String getMonitorUnitStatus() { return monitorUnitStatus; } diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/mapper/HwDeviceMapper.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/mapper/HwDeviceMapper.java index ff8246e..f0801ac 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/mapper/HwDeviceMapper.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/mapper/HwDeviceMapper.java @@ -58,7 +58,7 @@ public interface HwDeviceMapper public int updateHwDevice(HwDevice hwDevice); /** - * 删除设备信息 + * 删除设备信息(逻辑更新状态) * * @param deviceId 设备信息主键 * @return 结果 @@ -66,7 +66,7 @@ public interface HwDeviceMapper public int deleteHwDeviceByDeviceId(Long deviceId); /** - * 批量删除设备信息 + * 批量删除设备信息(物理删除) * * @param deviceIds 需要删除的数据主键集合 * @return 结果 @@ -88,4 +88,14 @@ public interface HwDeviceMapper * @return 设备信息集合 */ public List selectHwDeviceJoinList(HwDevice hwDevice); + + + /** + * @param: releatedDeviceId + * @description 校验网关设备是否有子设备 + * @author xins + * @date 2023-09-27 15:29 + * @return int + */ + public int checkExistSubDevice(Long releatedDeviceId); } diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/mapper/HwElectronicFenceMapper.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/mapper/HwElectronicFenceMapper.java index 6932694..2e504fa 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/mapper/HwElectronicFenceMapper.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/mapper/HwElectronicFenceMapper.java @@ -68,6 +68,14 @@ public interface HwElectronicFenceMapper */ public int deleteHwElectronicFenceByElectronicFenceId(Long electronicFenceId); + /** + * @param: electronicFenceIds + * @description 删除fencearea + * @author xins + * @date 2023-09-27 16:10 + * @return int + */ + public int deleteHwFenceAreaByElectronicFenceIds(Long[] electronicFenceIds); /** * 批量删除电子围栏 * diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/mapper/HwMonitorUnitMapper.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/mapper/HwMonitorUnitMapper.java index ebf9580..059de52 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/mapper/HwMonitorUnitMapper.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/mapper/HwMonitorUnitMapper.java @@ -138,4 +138,29 @@ public interface HwMonitorUnitMapper */ public HwMonitorUnit selectHwMonitorUnitJoinByMonitorUnitId(Long monitorUnitId); + + /** + * 是否存在子节点 + * + * @param monitorUnitId 监控单元ID + * @return 结果 + */ + public int hasChildByMonitorUnitId(Long monitorUnitId); + + /** + * 查询部门是否存在用户 + * + * @param monitorUnitId 监控单元ID + * @return 结果 + */ + public int checkMonitorUnitExistDevice(Long monitorUnitId); + + /** + * 删除部门管理信息 + * + * @param monitorUnitId 监控单元ID + * @return 结果 + */ + public int deleteMonitorUnitById(Long monitorUnitId); + } \ No newline at end of file diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/IHwDeviceService.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/IHwDeviceService.java index 1446bfd..5ef469b 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/IHwDeviceService.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/IHwDeviceService.java @@ -73,6 +73,14 @@ public interface IHwDeviceService */ public int updateHwDevice(HwDevice hwDevice); + /** + * 修改设备状态 + * + * @param hwDevice 设备信息 + * @return 结果 + */ + public int changeDeviceStatus(HwDevice hwDevice); + /** * 批量删除设备信息 * @@ -81,6 +89,14 @@ public interface IHwDeviceService */ public int deleteHwDeviceByDeviceIds(Long[] deviceIds); + /** + * 查询网关设备是否存在子设备 + * + * @param releatedDeviceId 网关设备ID + * @return 结果 true 存在 false 不存在 + */ + public boolean checkExistSubDevice(Long releatedDeviceId); + /** * 删除设备信息信息 * @@ -89,7 +105,6 @@ public interface IHwDeviceService */ public int deleteHwDeviceByDeviceId(Long deviceId); - /** * @return Map> * @description 设备监测页面,根据监控单元获取设备监控信息 diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/IHwMonitorUnitService.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/IHwMonitorUnitService.java index 4b57930..57e44dd 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/IHwMonitorUnitService.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/IHwMonitorUnitService.java @@ -90,6 +90,30 @@ public interface IHwMonitorUnitService */ public int updateHwMonitorUnit(HwMonitorUnit hwMonitorUnit); + /** + * 是否存在子节点 + * + * @param monitorUnitId 监控单元ID + * @return 结果 + */ + public boolean hasChildByMonitorUnitId(Long monitorUnitId); + + /** + * 查询部门是否存在用户 + * + * @param monitorUnitId 监控单元ID + * @return 结果 true 存在 false 不存在 + */ + public boolean checkMonitorUnitExistDevice(Long monitorUnitId); + + /** + * 删除部门管理信息 + * + * @param monitorUnitId 监控单元ID + * @return 结果 + */ + public int deleteMonitorUnitById(Long monitorUnitId); + /** * 批量删除监控单元 * diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/IHwSceneService.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/IHwSceneService.java index 48388eb..fdf7f25 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/IHwSceneService.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/IHwSceneService.java @@ -20,9 +20,6 @@ public interface IHwSceneService */ public HwScene selectHwSceneBySceneId(Long sceneId); - - public List selectHwSceneBySceneModeId(Long sceneModeId); - /** * 查询场景信息列表 * diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwDeviceModeServiceImpl.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwDeviceModeServiceImpl.java index 55e04aa..79e6616 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwDeviceModeServiceImpl.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwDeviceModeServiceImpl.java @@ -263,10 +263,12 @@ public class HwDeviceModeServiceImpl implements IHwDeviceModeService { queryHwDevice.setDeviceStatus(HwDictConstants.DEVICE_STATUS_PUBLISH); List hwDevices = hwDeviceMapper.selectHwDeviceList(queryHwDevice); if (hwDevices.size() > 0) { - throw new ServiceException("已有已发布状态设备关联,不能修改"); + throw new ServiceException("此设备模型已存在设备,不能修改"); } + //校验有没有重复标识符 checkDuplicateIdentifiers(hwDeviceModeFunction); + hwDeviceModeMapper.deleteHwDeviceModeParameterByModeFunctionId(hwDeviceModeFunction.getModeFunctionId()); List hwDeviceModeFunctions = new ArrayList<>(); hwDeviceModeFunctions.add(hwDeviceModeFunction); diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwDeviceServiceImpl.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwDeviceServiceImpl.java index 812f75b..98ff80f 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwDeviceServiceImpl.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwDeviceServiceImpl.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.shaded.com.google.gson.JsonObject; import com.ruoyi.business.domain.HwDevice; +import com.ruoyi.business.domain.HwDeviceMode; import com.ruoyi.business.domain.HwDeviceModeFunction; import com.ruoyi.business.domain.HwScene; import com.ruoyi.business.domain.VO.DeviceControlVo; @@ -12,6 +13,7 @@ import com.ruoyi.business.domain.VO.DeviceModeVo; import com.ruoyi.business.domain.VO.HwDeviceVo; import com.ruoyi.business.mapper.HwDeviceMapper; import com.ruoyi.business.mapper.HwDeviceModeFunctionMapper; +import com.ruoyi.business.mapper.HwDeviceModeMapper; import com.ruoyi.business.mapper.HwSceneMapper; import com.ruoyi.business.service.IHwDeviceService; import com.ruoyi.common.core.constant.Constants; @@ -46,6 +48,8 @@ public class HwDeviceServiceImpl implements IHwDeviceService { @Autowired private HwDeviceMapper hwDeviceMapper; @Autowired + private HwDeviceModeMapper hwDeviceModeMapper; + @Autowired private HwSceneMapper hwSceneMapper; @Autowired private HwDeviceModeFunctionMapper hwDevieModeFunctionMapper; @@ -75,7 +79,13 @@ public class HwDeviceServiceImpl implements IHwDeviceService { @Override public HwDevice selectHwDeviceJoinByDeviceId(Long deviceId) { - return hwDeviceMapper.selectHwDeviceJoinByDeviceId(deviceId); + HwDevice device = hwDeviceMapper.selectHwDeviceJoinByDeviceId(deviceId); + Long deviceModeId = device.getDeviceModeId(); + if (deviceModeId != null) { + HwDeviceMode mode = hwDeviceModeMapper.selectHwDeviceModeByDeviceModeId(deviceModeId); + device.setGpsFlag(mode != null ? mode.getGpsFlag() : HwDictConstants.DEVICEMODE_GPS_FLAG_NO); + } + return device; } /** @@ -317,6 +327,58 @@ public class HwDeviceServiceImpl implements IHwDeviceService { return rows; } + /** + * 修改设备状态 + * + * @param hwDevice 设备信息 + * @return 结果 + */ + @Override + public int changeDeviceStatus(HwDevice hwDevice) { + HwDevice dbDevice = hwDeviceMapper.selectHwDeviceByDeviceId(hwDevice.getDeviceId()); + if (dbDevice.getDeviceStatus().equals(HwDictConstants.DEVICE_STATUS_PUBLISH)) { + throw new ServiceException("已发布状态不能修改"); + } + hwDevice.setUpdateTime(DateUtils.getNowDate()); + return hwDeviceMapper.updateHwDevice(hwDevice); + } + + /** + * @param: deviceControlVo + * @description 下发当网关,主题带设备编号 + * @author xins + * @date 2023-09-25 14:56 + */ + @Override + public void publishControlCommand(DeviceControlVo deviceControlVo) { + JSONObject controlCommandJson = new JSONObject(); + StringBuilder controlCommandTopic = new StringBuilder(); + Long deviceId = deviceControlVo.getDeviceId(); + HwDevice device = hwDeviceMapper.selectHwDeviceByDeviceId(deviceId); + String deviceType = device.getDeviceType(); + if (deviceType.equals(HwDictConstants.DEVICE_TYPE_GATEWAY_SUB_EQUIPMENT)) { + Long gatewayDeviceId = device.getReleatedDeviceId(); + HwDevice gatewayDevice = hwDeviceMapper.selectHwDeviceByDeviceId(gatewayDeviceId); + controlCommandTopic.append(StringUtils + .format(HwDictConstants.CONTROL_COMMAND_TOPIC_VALUE, gatewayDevice.getDeviceCode())); + } else { + controlCommandTopic.append(StringUtils + .format(HwDictConstants.CONTROL_COMMAND_TOPIC_VALUE, device.getDeviceCode())); + } + JSONObject payloadJson = new JSONObject(); + payloadJson.put(HwDictConstants.CONTROL_COMMAND_PAYLOAD_MID_KEY, device.getDeviceCode()); + payloadJson.put(HwDictConstants.CONTROL_COMMAND_PAYLOAD_TIMESTAMP_KEY, System.currentTimeMillis() / 1000);//单位:s + payloadJson.put(HwDictConstants.CONTROL_COMMAND_PAYLOAD_TYPE_KEY, deviceControlVo.getType()); + payloadJson.put(HwDictConstants.CONTROL_COMMAND_PAYLOAD_PARAM_KEY, "{}"); + + controlCommandJson.put(HwDictConstants.CONTROL_COMMAND_TOPIC_KEY, controlCommandTopic.toString()); + controlCommandJson.put(HwDictConstants.CONTROL_COMMAND_PAYLOAD_KEY, payloadJson.toString()); + + System.out.println("---" + controlCommandJson.toString()); + redisTemplate.convertAndSend(HwDictConstants.CONTROL_COMMAND_REDIS_KEY, controlCommandJson.toString()); + } + + /** * @param: hwDevice 前端传的对象 * @param: dbDevice 目前数据库的对象 @@ -384,13 +446,27 @@ public class HwDeviceServiceImpl implements IHwDeviceService { } /** - * 删除设备信息信息 + * 查询网关设备是否存在子设备 + * + * @param releatedDeviceId 网关设备ID + * @return 结果 true 存在 false 不存在 + */ + @Override + public boolean checkExistSubDevice(Long releatedDeviceId) + { + int result = hwDeviceMapper.checkExistSubDevice(releatedDeviceId); + return result > 0; + } + + /** + * 删除设备信息信息(逻辑更新状态) * * @param deviceId 设备信息主键 * @return 结果 */ @Override public int deleteHwDeviceByDeviceId(Long deviceId) { + return hwDeviceMapper.deleteHwDeviceByDeviceId(deviceId); } @@ -494,8 +570,6 @@ public class HwDeviceServiceImpl implements IHwDeviceService { hwDeviceVo.setDeviceName(hwDevice.getDeviceName()); hwDeviceVo.setDeviceType(HwDictConstants.ACQUISITION_DEVICE); hwDeviceVo.setDeviceDataMap(ddValueMap); - //TODO:去掉下边一行 - ddValueMap.put("ii", "http://175.27.215.92:9665/statics/2023/09/23/6793e53d7418643c6ea9abe29be2bdce_20230923183352A001.jpg"); acquisitionDeviceVos.add(hwDeviceVo); }); @@ -553,50 +627,76 @@ public class HwDeviceServiceImpl implements IHwDeviceService { } private Map computeDeviceCountPerDay(Long startTime, Long endTime) { + //先增加需要查询的字段名称(由于tdengine用last和last_row查询时字段显示有bug,所以需要设置要查询的字段) + List schemaFields = new ArrayList(); + TdField deviceTypeField = new TdField(); + deviceTypeField.setFieldName(TdEngineConstants.ST_TAG_DEVICETYPE); + + TdField onlineStatusField = new TdField(); + onlineStatusField.setFieldName(TdEngineConstants.ST_TAG_ONLINESTATUS); + + schemaFields.add(deviceTypeField); + schemaFields.add(onlineStatusField); + DeviceStatus queryGroupStatus = new DeviceStatus(); queryGroupStatus.setStartTime(startTime); queryGroupStatus.setEndTime(endTime); + queryGroupStatus.setSchemaFields(schemaFields); DeviceStatus queryLastStatus = new DeviceStatus(); queryLastStatus.setEndTime(startTime); + queryLastStatus.setSchemaFields(schemaFields); +// System.out.println(DateUtils.dateTime(new Date(startTime)) + "----" + DateUtils.dateTime(new Date(endTime))); Map onlineDeviceCountByDay = new HashMap(); + //先获取starttime和endtime时间范围内在线的设备状态信息 Map> groupDeviceStatuMapList = (Map>) this.remoteTdEngineService.getOnlineDevicesGroupByDay(queryGroupStatus).getData(); if (groupDeviceStatuMapList == null) { groupDeviceStatuMapList = new HashMap<>(); } + //获取在endtime之前最后的设备状态信息(有些设备会一直在线,没有连续的上线下线记录,所以要获取最近的设备状态信息来补齐后面的设备在线情况) List> lastDeviceStatuMapList = (List>) this.remoteTdEngineService.getLastOnlineDevices(queryLastStatus).getData(); - for (Map groupDeviceStatuMap : lastDeviceStatuMapList) { - DeviceStatus ds = new DeviceStatus(); - for (Map.Entry entry : groupDeviceStatuMap.entrySet()) { - if (entry.getKey().equals(TdEngineConstants.ST_TAG_DEVICEID)) { - ds.setDeviceId((long) (Integer) entry.getValue()); - } else if (entry.getKey().equals(TdEngineConstants.ST_TAG_DEVICETYPE)) { - ds.setDeviceType((Integer) entry.getValue()); - } else if (entry.getKey().equals(TdEngineConstants.ST_TAG_ONLINESTATUS)) { - ds.setOnlineStatus((Integer) entry.getValue()); + if (lastDeviceStatuMapList == null || lastDeviceStatuMapList.isEmpty()) { + onlineDeviceCountByDay.put(startTime, 0); + } else { + for (Map groupDeviceStatuMap : lastDeviceStatuMapList) { + DeviceStatus ds = new DeviceStatus(); + for (Map.Entry entry : groupDeviceStatuMap.entrySet()) { + switch (entry.getKey()) { + case TdEngineConstants.ST_TAG_DEVICEID: + ds.setDeviceId((long) (Integer) entry.getValue()); + break; + case TdEngineConstants.ST_TAG_DEVICETYPE: + ds.setDeviceType((Integer) entry.getValue()); + break; + case TdEngineConstants.ST_TAG_ONLINESTATUS: + ds.setOnlineStatus((Integer) entry.getValue()); + break; + default: + break; + } } - } - List dss = groupDeviceStatuMapList.get(ds.getDeviceId()); - int count = 0; - if (dss == null) { - if (String.valueOf(ds.getOnlineStatus()) - .equals(HwDictConstants.DEVICE_ONLINE_STATUS_ONLINE)) { - count = this.getDeviceCount(ds); + List dss = groupDeviceStatuMapList.get(ds.getDeviceId()); + int count = 0; + if (dss == null) { + if (String.valueOf(ds.getOnlineStatus()) + .equals(HwDictConstants.DEVICE_ONLINE_STATUS_ONLINE)) { + count = this.getDeviceCount(ds); + } + } else { + count = this.getDeviceCount(dss.get(0)); } - } else { - count = this.getDeviceCount(dss.get(0)); - } - if (onlineDeviceCountByDay.get(startTime) == null) { - onlineDeviceCountByDay.put(startTime, count); - } else { - onlineDeviceCountByDay.put(startTime, onlineDeviceCountByDay.get(startTime) + count); + if (onlineDeviceCountByDay.get(startTime) == null) { + onlineDeviceCountByDay.put(startTime, count); + } else { + onlineDeviceCountByDay.put(startTime, onlineDeviceCountByDay.get(startTime) + count); + } } } @@ -646,16 +746,4 @@ public class HwDeviceServiceImpl implements IHwDeviceService { } - /** - * @param: deviceControlVo - * @description 下发当网关,主题带设备编号 - * @author xins - * @date 2023-09-25 14:56 - */ - @Override - public void publishControlCommand(DeviceControlVo deviceControlVo) { - String channel = ""; - String message = ""; - redisTemplate.convertAndSend(channel, message); - } } diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwElectronicFenceServiceImpl.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwElectronicFenceServiceImpl.java index a4ba245..2a83f04 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwElectronicFenceServiceImpl.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwElectronicFenceServiceImpl.java @@ -312,8 +312,11 @@ public class HwElectronicFenceServiceImpl implements IHwElectronicFenceService { * @return 结果 */ @Override + @Transactional public int deleteHwElectronicFenceByElectronicFenceIds(Long[] electronicFenceIds) { - return hwElectronicFenceMapper.deleteHwElectronicFenceByElectronicFenceIds(electronicFenceIds); + int rows = hwElectronicFenceMapper.deleteHwElectronicFenceByElectronicFenceIds(electronicFenceIds); + hwElectronicFenceMapper.deleteHwFenceAreaByElectronicFenceIds(electronicFenceIds); + return rows; } /** diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwMonitorUnitServiceImpl.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwMonitorUnitServiceImpl.java index c75d35d..f792dd7 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwMonitorUnitServiceImpl.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwMonitorUnitServiceImpl.java @@ -9,6 +9,7 @@ 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; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.NumberUtils; @@ -172,6 +173,7 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService { */ @Override public List selectHwMonitorUnitList(HwMonitorUnit hwMonitorUnit) { + hwMonitorUnit.setMonitorUnitStatus(HwDictConstants.MONITOR_UNIT_STATUS_NORMAL); return hwMonitorUnitMapper.selectHwMonitorUnitList(hwMonitorUnit); } @@ -250,6 +252,9 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService { public int insertHwMonitorUnit(HwMonitorUnit hwMonitorUnit) { this.checkRelatedDevices(hwMonitorUnit); hwMonitorUnit.setCreateTime(DateUtils.getNowDate()); + if(hwMonitorUnit.getParentId()==null){ + hwMonitorUnit.setParentId(0L); + } return hwMonitorUnitMapper.insertHwMonitorUnit(hwMonitorUnit); } @@ -266,6 +271,44 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService { return hwMonitorUnitMapper.updateHwMonitorUnit(hwMonitorUnit); } + /** + * 是否存在子节点 + * + * @param monitorUnitId 监控单元ID + * @return 结果 + */ + @Override + public boolean hasChildByMonitorUnitId(Long monitorUnitId) + { + int result = hwMonitorUnitMapper.hasChildByMonitorUnitId(monitorUnitId); + return result > 0; + } + + /** + * 查询部门是否存在用户 + * + * @param monitorUnitId 监控单元ID + * @return 结果 true 存在 false 不存在 + */ + @Override + public boolean checkMonitorUnitExistDevice(Long monitorUnitId) + { + int result = hwMonitorUnitMapper.checkMonitorUnitExistDevice(monitorUnitId); + return result > 0; + } + + /** + * 删除部门管理信息 + * + * @param monitorUnitId 监控单元ID + * @return 结果 + */ + @Override + public int deleteMonitorUnitById(Long monitorUnitId) + { + return hwMonitorUnitMapper.deleteMonitorUnitById(monitorUnitId); + } + /** * 批量删除监控单元 * @@ -384,6 +427,7 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService { @Override @DataScope(tenantAlias = "hmu") public List selectHwMonitorUnitJoinList(HwMonitorUnit hwMonitorUnit) { + hwMonitorUnit.setMonitorUnitStatus(HwDictConstants.MONITOR_UNIT_STATUS_NORMAL); return hwMonitorUnitMapper.selectHwMonitorUnitJoinList(hwMonitorUnit); } diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwMonitorUnitTypeServiceImpl.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwMonitorUnitTypeServiceImpl.java index e553497..16e8c46 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwMonitorUnitTypeServiceImpl.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwMonitorUnitTypeServiceImpl.java @@ -2,7 +2,10 @@ package com.ruoyi.business.service.impl; import java.util.List; +import com.ruoyi.business.domain.HwMonitorUnit; import com.ruoyi.business.domain.VO.HwMonitorUnitVo; +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 org.springframework.beans.factory.annotation.Autowired; @@ -18,11 +21,13 @@ import com.ruoyi.business.service.IHwMonitorUnitTypeService; * @date 2023-08-31 */ @Service -public class HwMonitorUnitTypeServiceImpl implements IHwMonitorUnitTypeService -{ +public class HwMonitorUnitTypeServiceImpl implements IHwMonitorUnitTypeService { @Autowired private HwMonitorUnitTypeMapper hwMonitorUnitTypeMapper; + @Autowired + private HwMonitorUnitMapper hwMonitorUnitMapper; + /** * 查询监控单元类型 * @@ -30,8 +35,7 @@ public class HwMonitorUnitTypeServiceImpl implements IHwMonitorUnitTypeService * @return 监控单元类型 */ @Override - public HwMonitorUnitType selectHwMonitorUnitTypeByMonitorUnitTypeId(Long monitorUnitTypeId) - { + public HwMonitorUnitType selectHwMonitorUnitTypeByMonitorUnitTypeId(Long monitorUnitTypeId) { return hwMonitorUnitTypeMapper.selectHwMonitorUnitTypeByMonitorUnitTypeId(monitorUnitTypeId); } @@ -43,8 +47,7 @@ public class HwMonitorUnitTypeServiceImpl implements IHwMonitorUnitTypeService */ @Override @DataScope(tenantAlias = "hmut") - public List selectHwMonitorUnitTypeList(HwMonitorUnitType hwMonitorUnitType) - { + public List selectHwMonitorUnitTypeList(HwMonitorUnitType hwMonitorUnitType) { return hwMonitorUnitTypeMapper.selectHwMonitorUnitTypeList(hwMonitorUnitType); } @@ -56,8 +59,7 @@ public class HwMonitorUnitTypeServiceImpl implements IHwMonitorUnitTypeService * @return 结果 */ @Override - public int insertHwMonitorUnitType(HwMonitorUnitType hwMonitorUnitType) - { + public int insertHwMonitorUnitType(HwMonitorUnitType hwMonitorUnitType) { hwMonitorUnitType.setCreateTime(DateUtils.getNowDate()); return hwMonitorUnitTypeMapper.insertHwMonitorUnitType(hwMonitorUnitType); } @@ -69,8 +71,7 @@ public class HwMonitorUnitTypeServiceImpl implements IHwMonitorUnitTypeService * @return 结果 */ @Override - public int updateHwMonitorUnitType(HwMonitorUnitType hwMonitorUnitType) - { + public int updateHwMonitorUnitType(HwMonitorUnitType hwMonitorUnitType) { hwMonitorUnitType.setUpdateTime(DateUtils.getNowDate()); return hwMonitorUnitTypeMapper.updateHwMonitorUnitType(hwMonitorUnitType); } @@ -82,8 +83,15 @@ public class HwMonitorUnitTypeServiceImpl implements IHwMonitorUnitTypeService * @return 结果 */ @Override - public int deleteHwMonitorUnitTypeByMonitorUnitTypeIds(Long[] monitorUnitTypeIds) - { + public int deleteHwMonitorUnitTypeByMonitorUnitTypeIds(Long[] monitorUnitTypeIds) { + for (Long monitorUnitTypeId : monitorUnitTypeIds) { + HwMonitorUnit queryMonitorUnit = new HwMonitorUnit(); + queryMonitorUnit.setMonitorUnitTypeId(monitorUnitTypeId); + List monitorUnits = hwMonitorUnitMapper.selectHwMonitorUnitList(queryMonitorUnit); + if (monitorUnits != null && monitorUnits.size() > 0) { + throw new ServiceException("所选择删除的监控单元类型已关联监控单元,不能删除"); + } + } return hwMonitorUnitTypeMapper.deleteHwMonitorUnitTypeByMonitorUnitTypeIds(monitorUnitTypeIds); } @@ -94,8 +102,7 @@ public class HwMonitorUnitTypeServiceImpl implements IHwMonitorUnitTypeService * @return 结果 */ @Override - public int deleteHwMonitorUnitTypeByMonitorUnitTypeId(Long monitorUnitTypeId) - { + public int deleteHwMonitorUnitTypeByMonitorUnitTypeId(Long monitorUnitTypeId) { return hwMonitorUnitTypeMapper.deleteHwMonitorUnitTypeByMonitorUnitTypeId(monitorUnitTypeId); } @@ -105,7 +112,7 @@ public class HwMonitorUnitTypeServiceImpl implements IHwMonitorUnitTypeService * @param hwMonitorUnitType 监控单元类型 * @return 监控单元类型集合 */ - public List selectHwMonitorUnitTypeList4Select(HwMonitorUnitType hwMonitorUnitType){ + public List selectHwMonitorUnitTypeList4Select(HwMonitorUnitType hwMonitorUnitType) { return hwMonitorUnitTypeMapper.selectHwMonitorUnitTypeList(hwMonitorUnitType); } @@ -117,8 +124,7 @@ public class HwMonitorUnitTypeServiceImpl implements IHwMonitorUnitTypeService */ @Override @DataScope(tenantAlias = "hmut") - public List selectHwMonitorUnitTypeJoinList(HwMonitorUnitType hwMonitorUnitType) - { + public List selectHwMonitorUnitTypeJoinList(HwMonitorUnitType hwMonitorUnitType) { return hwMonitorUnitTypeMapper.selectHwMonitorUnitTypeJoinList(hwMonitorUnitType); } diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwSceneServiceImpl.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwSceneServiceImpl.java index cecaff3..5ffc531 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwSceneServiceImpl.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwSceneServiceImpl.java @@ -64,12 +64,6 @@ public class HwSceneServiceImpl implements IHwSceneService { return hwSceneMapper.selectHwSceneBySceneId(sceneId); } - @Override - public List selectHwSceneBySceneModeId(Long sceneModeId) { - List hwScenes = hwSceneMapper.selectHwSceneBySceneModeId(sceneModeId); - - return hwScenes; - } /** * 查询场景信息列表 @@ -80,6 +74,7 @@ public class HwSceneServiceImpl implements IHwSceneService { @Override @DataScope(tenantAlias = "hs") public List selectHwSceneList(HwScene hwScene) { + hwScene.setSceneStatus(HwDictConstants.SCENE_STATUS_NORMAL); List scenes = hwSceneMapper.selectHwSceneList(hwScene); boolean defaultFlag = false; for (HwScene scene : scenes) { @@ -97,6 +92,7 @@ public class HwSceneServiceImpl implements IHwSceneService { @Override public List selectHwSceneJoinList(HwSceneVo hwScene) { + hwScene.setSceneStatus(HwDictConstants.SCENE_STATUS_NORMAL); return hwSceneMapper.selectHwSceneVoList(hwScene); } @@ -112,7 +108,6 @@ public class HwSceneServiceImpl implements IHwSceneService { LoginUser loginUser = SecurityUtils.getLoginUser(); SysUser sysUser = loginUser.getSysUser(); hwScene.setCreateBy(sysUser.getUserName()); - hwScene.setTenantId(sysUser.getTenantId()); if (hwScene.getPreserveTime() == null) { hwScene.setPreserveTime(new BigDecimal(90)); @@ -120,13 +115,16 @@ public class HwSceneServiceImpl implements IHwSceneService { if (hwScene.getTestPreserveTime() == null) { hwScene.setTestPreserveTime(new BigDecimal(30)); } -// String randomKey = RandomStringUtils.random(12, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"); -// String randomSecret = RandomStringUtils.random(16, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"); -// hwScene.setModeKey(randomKey); -// hwScene.setModeSecret(randomSecret); + + String randomAccount = RandomStringUtils.random(6, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"); + String randomKey = RandomStringUtils.random(12, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"); + hwScene.setModeAccount(randomAccount); + hwScene.setModeKey(randomKey); + hwScene.setCreateTime(DateUtils.getNowDate()); int rows = hwSceneMapper.insertHwScene(hwScene); + this.updateDefaultFlag(hwScene); this.createTdDatabase(hwScene); return rows; } @@ -148,20 +146,10 @@ public class HwSceneServiceImpl implements IHwSceneService { @Override @Transactional public int updateHwScene(HwScene hwScene) { - if (hwScene.getDefaultFlag().equals(HwDictConstants.SCENE_DEFAULT_FLAG_YES)) { - HwScene queryScene = new HwScene(); - queryScene.setTenantId(hwScene.getTenantId()); - List dbScenes = hwSceneMapper.selectHwSceneList(queryScene); - if (dbScenes != null && dbScenes.isEmpty()) { - dbScenes.forEach(dbScene -> { - dbScene.setDefaultFlag(HwDictConstants.SCENE_DEFAULT_FLAG_NO); - hwSceneMapper.updateHwScene(dbScene); - }); - } - } + this.updateDefaultFlag(hwScene); hwScene.setUpdateTime(DateUtils.getNowDate()); - int rows = hwSceneMapper.updateHwScene(hwScene); + int rows = hwSceneMapper.updateHwScene(hwScene); this.updateRedisAuth(hwScene); return rows; } @@ -222,11 +210,13 @@ public class HwSceneServiceImpl implements IHwSceneService { */ @Override public int deleteHwSceneBySceneIds(Long[] sceneIds) { - List list = new ArrayList<>(); - for (int i = 0; i < sceneIds.length; i++) { - list.add(sceneIds[i]); + for (Long sceneId : sceneIds) { + HwScene scene = hwSceneMapper.selectHwSceneBySceneId(sceneId); + scene.setSceneStatus(HwDictConstants.SCENE_STATUS_DELETED); + hwSceneMapper.updateHwScene(scene); + //TODO:后面可以增加更新redis的auth信息,并且删除tdengine的database } - return hwSceneMapper.deleteHwSceneBySceneIds(sceneIds); + return 1; } /** @@ -250,16 +240,44 @@ public class HwSceneServiceImpl implements IHwSceneService { public List selectHwSceneList4Select(HwScene hwScene) { LoginUser loginUser = SecurityUtils.getLoginUser(); SysUser user = loginUser.getSysUser(); - hwScene.setTenantId(user.getTenantId()); - - List scenes = hwSceneMapper.selectHwSceneList(hwScene); - scenes.forEach(s ->{ - if(!s.getTenantId().equals( user.getTenantId())){ - s.setSelectedDisable("1"); - } - }); + //如果不是管理租户,需要过滤 + if(!user.getTenantId().equals(HwDictConstants.ADMINISTRATOR_TENANT_ID)){ + hwScene.setTenantId(user.getTenantId()); + } + List scenes = hwSceneMapper.selectHwSceneList(hwScene); + //如果是管理员租户,则需要过滤不是自己的只能显示,不能选择 + if(user.getTenantId().equals(HwDictConstants.ADMINISTRATOR_TENANT_ID)) { + scenes.forEach(s -> { + if (!s.getTenantId().equals(user.getTenantId())) { + s.setSelectedDisable("1"); + } + }); + } return scenes; } + /** + * @param: hwScene + * @description 更新场景默认标识,一个租户只能有一个默认场景 + * @author xins + * @date 2023-09-26 18:19 + */ + private void updateDefaultFlag(HwScene hwScene) { + if (hwScene.getDefaultFlag().equals(HwDictConstants.SCENE_DEFAULT_FLAG_YES)) { + HwScene queryScene = new HwScene(); + queryScene.setTenantId(hwScene.getTenantId()); + List dbScenes = hwSceneMapper.selectHwSceneList(queryScene); + if (dbScenes != null && !dbScenes.isEmpty()) { + dbScenes.forEach(dbScene -> { + if (hwScene.getSceneId() == null || (hwScene.getSceneId() != null && + !hwScene.getSceneId().equals(dbScene.getSceneId()))) { + dbScene.setDefaultFlag(HwDictConstants.SCENE_DEFAULT_FLAG_NO); + hwSceneMapper.updateHwScene(dbScene); + } + }); + } + } + } + } diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwTenantServiceImpl.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwTenantServiceImpl.java index 5c856e3..d8c8a62 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwTenantServiceImpl.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwTenantServiceImpl.java @@ -1,96 +1,118 @@ package com.ruoyi.business.service.impl; -import java.util.List; +import com.ruoyi.business.domain.HwTenant; +import com.ruoyi.business.mapper.HwTenantMapper; +import com.ruoyi.business.service.IHwTenantService; +import com.ruoyi.common.core.constant.HwDictConstants; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.datascope.annotation.DataScope; +import com.ruoyi.system.api.RemoteUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ruoyi.business.mapper.HwTenantMapper; -import com.ruoyi.business.domain.HwTenant; -import com.ruoyi.business.service.IHwTenantService; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; /** * 租户信息Service业务层处理 - * + * * @author xins * @date 2023-09-04 */ @Service -public class HwTenantServiceImpl implements IHwTenantService -{ +public class HwTenantServiceImpl implements IHwTenantService { @Autowired private HwTenantMapper hwTenantMapper; + @Resource + private RemoteUserService remoteUserService; + /** * 查询租户信息 - * + * * @param tenantId 租户信息主键 * @return 租户信息 */ @Override - public HwTenant selectHwTenantByTenantId(Long tenantId) - { + public HwTenant selectHwTenantByTenantId(Long tenantId) { return hwTenantMapper.selectHwTenantByTenantId(tenantId); } /** * 查询租户信息列表 - * + * * @param hwTenant 租户信息 * @return 租户信息 */ @Override - public List selectHwTenantList(HwTenant hwTenant) - { + @DataScope(tenantAlias = "ht") + public List selectHwTenantList(HwTenant hwTenant) { + hwTenant.setTenantStatus(HwDictConstants.TENANT_STATUS_NORMAL); return hwTenantMapper.selectHwTenantList(hwTenant); } /** * 新增租户信息 - * + * * @param hwTenant 租户信息 * @return 结果 */ @Override - public int insertHwTenant(HwTenant hwTenant) - { + public int insertHwTenant(HwTenant hwTenant) { hwTenant.setCreateTime(DateUtils.getNowDate()); return hwTenantMapper.insertHwTenant(hwTenant); } /** * 修改租户信息 - * + * * @param hwTenant 租户信息 * @return 结果 */ @Override - public int updateHwTenant(HwTenant hwTenant) - { + public int updateHwTenant(HwTenant hwTenant) { hwTenant.setUpdateTime(DateUtils.getNowDate()); return hwTenantMapper.updateHwTenant(hwTenant); } /** * 批量删除租户信息 - * + * * @param tenantIds 需要删除的租户信息主键 * @return 结果 */ @Override - public int deleteHwTenantByTenantIds(Long[] tenantIds) - { - return hwTenantMapper.deleteHwTenantByTenantIds(tenantIds); + @Transactional + public int deleteHwTenantByTenantIds(Long[] tenantIds) { + for (Long tenantId : tenantIds) { + if(tenantId.equals(HwDictConstants.ADMINISTRATOR_TENANT_ID)){ + throw new ServiceException("管理租户不能删除"); + } + + R deleteResult = this.remoteUserService.deleteUsersByTenantId(tenantId); + if (R.FAIL == deleteResult.getCode()) { + throw new ServiceException(deleteResult.getMsg()); + } + + HwTenant tenant = hwTenantMapper.selectHwTenantByTenantId(tenantId); + tenant.setTenantStatus(HwDictConstants.TENANT_STATUS_DELETED); + hwTenantMapper.updateHwTenant(tenant); + } + + return 1; } /** * 删除租户信息信息 - * + * * @param tenantId 租户信息主键 * @return 结果 */ @Override - public int deleteHwTenantByTenantId(Long tenantId) - { + public int deleteHwTenantByTenantId(Long tenantId) { return hwTenantMapper.deleteHwTenantByTenantId(tenantId); } } diff --git a/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwDeviceMapper.xml b/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwDeviceMapper.xml index be36095..a619e5f 100644 --- a/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwDeviceMapper.xml +++ b/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwDeviceMapper.xml @@ -217,7 +217,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from hw_device where device_id = #{deviceId} + update hw_device set device_status = '9' where device_id = #{deviceId} @@ -233,7 +233,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select hd.device_code,hd.device_name, hd.device_status,hd.online_status, hd.device_pic,hd.active_time, + select hd.device_code,hd.device_name, hd.device_status,hd.online_status, hd.device_pic,hd.active_time,hd.device_mode_id, hmu.monitor_unit_name from hw_device hd left join hw_monitor_unit hmu on hd.monitor_unit_id = hmu.monitor_unit_id @@ -260,6 +260,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join hw_device_mode hdmf on hd.device_mode_id = hdmf.device_mode_id left join hw_tenant ht on hd.tenant_id=ht.tenant_id + and hd.device_status != '9' and hd.device_code like concat('%', #{deviceCode}, '%') and hd.device_name like concat('%', #{deviceName}, '%') and hd.scene_id = #{sceneId} @@ -273,7 +274,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ${params.tenantDataScope} + order by hd.device_id desc + \ No newline at end of file diff --git a/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwElectronicFenceMapper.xml b/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwElectronicFenceMapper.xml index 7324b3f..da75e1b 100644 --- a/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwElectronicFenceMapper.xml +++ b/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwElectronicFenceMapper.xml @@ -142,7 +142,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{electronicFenceId} - + + + delete from hw_fence_area where electronic_fence_id in + + #{electronicFenceId} + + + delete from hw_fence_target where electronic_fence_id in @@ -201,6 +208,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ${params.tenantDataScope} + order by hef.electronic_fence_id desc \ No newline at end of file diff --git a/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwMonitorUnitMapper.xml b/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwMonitorUnitMapper.xml index 9fb0b4e..f4580e5 100644 --- a/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwMonitorUnitMapper.xml +++ b/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwMonitorUnitMapper.xml @@ -321,6 +321,17 @@ + + + + + update hw_monitor_unit set monitor_unit_status = '9' where monitor_unit_id = #{monitorUnitId} + \ No newline at end of file diff --git a/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwSceneMapper.xml b/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwSceneMapper.xml index 705156c..fc55935 100644 --- a/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwSceneMapper.xml +++ b/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwSceneMapper.xml @@ -67,7 +67,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and b.contact_phone like concat('%', #{contactPhone}, '%') and a.scene_mode_id = #{sceneModeId} and a.default_flag = #{defaultFlag} - and a.tenant_id = #{tenantId} + and a.tenant_id = #{tenantId} + and scene_status = #{sceneStatus} order by a.scene_id desc @@ -75,7 +76,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and scene_name like concat('%', #{sceneName}, '%') - and tenant_id = #{tenantId} + and tenant_id = #{tenantId} and scene_mode_id = #{sceneModeId} and scene_pic = #{scenePic} and default_flag = #{defaultFlag} diff --git a/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwTenantMapper.xml b/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwTenantMapper.xml index 5015283..26f8d25 100644 --- a/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwTenantMapper.xml +++ b/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwTenantMapper.xml @@ -26,7 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select tenant_id, tenant_type, tenant_name, tenant_industry, contact_name, contact_phone, email, area_id, contact_address, remark, tenant_status, is_register, create_by, create_time, update_by, update_time, tenant_grade, tenant_field from hw_tenant + select tenant_id, tenant_type, tenant_name, tenant_industry, contact_name, contact_phone, email, area_id, contact_address, remark, tenant_status, is_register, create_by, create_time, update_by, update_time, tenant_grade, tenant_field from hw_tenant ht - select last_row(*),last_row(deviceid) from #{params.databaseName}.#{params.superTableName} + select last_row(${item.fieldName}),last_row(deviceid) from #{params.databaseName}.#{params.superTableName} and ts <= #{endTime} diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/RyTask.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/RyTask.java index d32938e..325b053 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/RyTask.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/RyTask.java @@ -29,7 +29,7 @@ public class RyTask { } - public void computeOnlineDevicecCount(int days) { + public void computeOnlineDevicesCount(Integer days) { this.remoteBusinessService.computeOnlineDevicecCount(days); } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java index 997780f..9f70fb4 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java @@ -1,26 +1,7 @@ package com.ruoyi.system.controller; -import java.io.IOException; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; - import com.ruoyi.basic.api.RemoteBasicService; -import com.ruoyi.system.domain.SysPost; -import org.apache.commons.lang3.ArrayUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; +import com.ruoyi.common.core.constant.HwDictConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.poi.ExcelUtil; @@ -36,12 +17,20 @@ import com.ruoyi.system.api.domain.SysDept; import com.ruoyi.system.api.domain.SysRole; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.model.LoginUser; -import com.ruoyi.system.service.ISysConfigService; -import com.ruoyi.system.service.ISysDeptService; -import com.ruoyi.system.service.ISysPermissionService; -import com.ruoyi.system.service.ISysPostService; -import com.ruoyi.system.service.ISysRoleService; -import com.ruoyi.system.service.ISysUserService; +import com.ruoyi.system.domain.SysPost; +import com.ruoyi.system.service.*; +import org.apache.commons.lang3.ArrayUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; /** * 用户信息 @@ -223,7 +212,8 @@ public class SysUserController extends BaseController { user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); LoginUser loginUser = SecurityUtils.getLoginUser(); SysUser loginSysUser = loginUser.getSysUser(); - if(!loginSysUser.getTenantId().equals(0L)){ + //如果不是admin的租户,则就保存为登录用户的租户id,如果是adimin,则需要保存admin在创建时选择的租户ID + if(!loginSysUser.getTenantId().equals(HwDictConstants.ADMINISTRATOR_TENANT_ID)){ user.setTenantId(loginSysUser.getTenantId()); } @@ -336,10 +326,32 @@ public class SysUserController extends BaseController { LoginUser loginUser = SecurityUtils.getLoginUser(); SysUser user = loginUser.getSysUser(); Long tenantId = user.getTenantId(); - if (tenantId.equals(0L)) { + if (tenantId.equals(HwDictConstants.ADMINISTRATOR_TENANT_ID)) { return success(remoteBasicService.getTenants().getData()); } else { return success(); } } + + + /** + * 根据租户ID删除用户,供外部调用 + */ + @PostMapping("/deleteUsersByTenantId/{tenantId}") + public R deleteUsersByTenantId(@PathVariable Long tenantId) { + Long[] userIds = userService.getUserIdsByTenantId(tenantId); + if(userIds.length == 0) { + return R.ok(); + } + if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) { + return R.fail("当前用户不能删除"); + } + try{ + userService.deleteUserByIds(userIds); + return R.ok(); + }catch(Exception e){ + return R.fail(e.getMessage()); + } + } + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java index 8f30fa3..2035685 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java @@ -203,4 +203,13 @@ public interface ISysUserService * @return 结果 */ public String importUser(List userList, Boolean isUpdateSupport, String operName); + + /** + * @param: tenantId + * @description 根据租户ID获取用户ID数组 + * @author xins + * @date 2023-09-27 10:08 + * @return Long[] + */ + public Long[] getUserIdsByTenantId(Long tenantId); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index c34c362..1816213 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import javax.validation.Validator; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -32,12 +33,11 @@ import com.ruoyi.system.service.ISysUserService; /** * 用户 业务层处理 - * + * * @author ruoyi */ @Service -public class SysUserServiceImpl implements ISysUserService -{ +public class SysUserServiceImpl implements ISysUserService { private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class); @Autowired @@ -63,79 +63,72 @@ public class SysUserServiceImpl implements ISysUserService /** * 根据条件分页查询用户列表 - * + * * @param user 用户信息 * @return 用户信息集合信息 */ @Override - @DataScope(deptAlias = "d", userAlias = "u",tenantAlias = "u") - public List selectUserList(SysUser user) - { + @DataScope(deptAlias = "d", userAlias = "u", tenantAlias = "u") + public List selectUserList(SysUser user) { return userMapper.selectUserList(user); } /** * 根据条件分页查询已分配用户角色列表 - * + * * @param user 用户信息 * @return 用户信息集合信息 */ @Override @DataScope(deptAlias = "d", userAlias = "u") - public List selectAllocatedList(SysUser user) - { + public List selectAllocatedList(SysUser user) { return userMapper.selectAllocatedList(user); } /** * 根据条件分页查询未分配用户角色列表 - * + * * @param user 用户信息 * @return 用户信息集合信息 */ @Override @DataScope(deptAlias = "d", userAlias = "u") - public List selectUnallocatedList(SysUser user) - { + public List selectUnallocatedList(SysUser user) { return userMapper.selectUnallocatedList(user); } /** * 通过用户名查询用户 - * + * * @param userName 用户名 * @return 用户对象信息 */ @Override - public SysUser selectUserByUserName(String userName) - { + public SysUser selectUserByUserName(String userName) { return userMapper.selectUserByUserName(userName); } /** * 通过用户ID查询用户 - * + * * @param userId 用户ID * @return 用户对象信息 */ @Override - public SysUser selectUserById(Long userId) - { + public SysUser selectUserById(Long userId) { return userMapper.selectUserById(userId); } /** * 查询用户所属角色组 - * + * * @param userName 用户名 * @return 结果 */ @Override - public String selectUserRoleGroup(String userName) - { + public String selectUserRoleGroup(String userName) { List list = roleMapper.selectRolesByUserName(userName); - if (CollectionUtils.isEmpty(list)) - { + if (CollectionUtils.isEmpty(list)) { return StringUtils.EMPTY; } return list.stream().map(SysRole::getRoleName).collect(Collectors.joining(",")); @@ -143,16 +136,14 @@ public class SysUserServiceImpl implements ISysUserService /** * 查询用户所属岗位组 - * + * * @param userName 用户名 * @return 结果 */ @Override - public String selectUserPostGroup(String userName) - { + public String selectUserPostGroup(String userName) { List list = postMapper.selectPostsByUserName(userName); - if (CollectionUtils.isEmpty(list)) - { + if (CollectionUtils.isEmpty(list)) { return StringUtils.EMPTY; } return list.stream().map(SysPost::getPostName).collect(Collectors.joining(",")); @@ -160,17 +151,15 @@ public class SysUserServiceImpl implements ISysUserService /** * 校验用户名称是否唯一 - * + * * @param user 用户信息 * @return 结果 */ @Override - public boolean checkUserNameUnique(SysUser user) - { + public boolean checkUserNameUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checkUserNameUnique(user.getUserName()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) - { + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -183,12 +172,10 @@ public class SysUserServiceImpl implements ISysUserService * @return */ @Override - public boolean checkPhoneUnique(SysUser user) - { + public boolean checkPhoneUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) - { + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -201,12 +188,10 @@ public class SysUserServiceImpl implements ISysUserService * @return */ @Override - public boolean checkEmailUnique(SysUser user) - { + public boolean checkEmailUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checkEmailUnique(user.getEmail()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) - { + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -214,33 +199,28 @@ public class SysUserServiceImpl implements ISysUserService /** * 校验用户是否允许操作 - * + * * @param user 用户信息 */ @Override - public void checkUserAllowed(SysUser user) - { - if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) - { + public void checkUserAllowed(SysUser user) { + if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) { throw new ServiceException("不允许操作超级管理员用户"); } } /** * 校验用户是否有数据权限 - * + * * @param userId 用户id */ @Override - public void checkUserDataScope(Long userId) - { - if (!SysUser.isAdmin(SecurityUtils.getUserId())) - { + public void checkUserDataScope(Long userId) { + if (!SysUser.isAdmin(SecurityUtils.getUserId())) { SysUser user = new SysUser(); user.setUserId(userId); List users = SpringUtils.getAopProxy(this).selectUserList(user); - if (StringUtils.isEmpty(users)) - { + if (StringUtils.isEmpty(users)) { throw new ServiceException("没有权限访问用户数据!"); } } @@ -248,14 +228,13 @@ public class SysUserServiceImpl implements ISysUserService /** * 新增保存用户信息 - * + * * @param user 用户信息 * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) - public int insertUser(SysUser user) - { + public int insertUser(SysUser user) { // 新增用户信息 int rows = userMapper.insertUser(user); // 新增用户岗位关联 @@ -267,26 +246,24 @@ public class SysUserServiceImpl implements ISysUserService /** * 注册用户信息 - * + * * @param user 用户信息 * @return 结果 */ @Override - public boolean registerUser(SysUser user) - { + public boolean registerUser(SysUser user) { return userMapper.insertUser(user) > 0; } /** * 修改保存用户信息 - * + * * @param user 用户信息 * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) - public int updateUser(SysUser user) - { + public int updateUser(SysUser user) { Long userId = user.getUserId(); // 删除用户与角色关联 userRoleMapper.deleteUserRoleByUserId(userId); @@ -301,104 +278,94 @@ public class SysUserServiceImpl implements ISysUserService /** * 用户授权角色 - * - * @param userId 用户ID + * + * @param userId 用户ID * @param roleIds 角色组 */ @Override @Transactional(rollbackFor = Exception.class) - public void insertUserAuth(Long userId, Long[] roleIds) - { + public void insertUserAuth(Long userId, Long[] roleIds) { userRoleMapper.deleteUserRoleByUserId(userId); insertUserRole(userId, roleIds); } /** * 修改用户状态 - * + * * @param user 用户信息 * @return 结果 */ @Override - public int updateUserStatus(SysUser user) - { + public int updateUserStatus(SysUser user) { return userMapper.updateUser(user); } /** * 修改用户基本信息 - * + * * @param user 用户信息 * @return 结果 */ @Override - public int updateUserProfile(SysUser user) - { + public int updateUserProfile(SysUser user) { return userMapper.updateUser(user); } /** * 修改用户头像 - * + * * @param userName 用户名 - * @param avatar 头像地址 + * @param avatar 头像地址 * @return 结果 */ @Override - public boolean updateUserAvatar(String userName, String avatar) - { + public boolean updateUserAvatar(String userName, String avatar) { return userMapper.updateUserAvatar(userName, avatar) > 0; } /** * 重置用户密码 - * + * * @param user 用户信息 * @return 结果 */ @Override - public int resetPwd(SysUser user) - { + public int resetPwd(SysUser user) { return userMapper.updateUser(user); } /** * 重置用户密码 - * + * * @param userName 用户名 * @param password 密码 * @return 结果 */ @Override - public int resetUserPwd(String userName, String password) - { + public int resetUserPwd(String userName, String password) { return userMapper.resetUserPwd(userName, password); } /** * 新增用户角色信息 - * + * * @param user 用户对象 */ - public void insertUserRole(SysUser user) - { + public void insertUserRole(SysUser user) { this.insertUserRole(user.getUserId(), user.getRoleIds()); } /** * 新增用户岗位信息 - * + * * @param user 用户对象 */ - public void insertUserPost(SysUser user) - { + public void insertUserPost(SysUser user) { Long[] posts = user.getPostIds(); - if (StringUtils.isNotEmpty(posts)) - { + if (StringUtils.isNotEmpty(posts)) { // 新增用户与岗位管理 List list = new ArrayList(); - for (Long postId : posts) - { + for (Long postId : posts) { SysUserPost up = new SysUserPost(); up.setUserId(user.getUserId()); up.setPostId(postId); @@ -410,18 +377,15 @@ public class SysUserServiceImpl implements ISysUserService /** * 新增用户角色信息 - * - * @param userId 用户ID + * + * @param userId 用户ID * @param roleIds 角色组 */ - public void insertUserRole(Long userId, Long[] roleIds) - { - if (StringUtils.isNotEmpty(roleIds)) - { + public void insertUserRole(Long userId, Long[] roleIds) { + if (StringUtils.isNotEmpty(roleIds)) { // 新增用户与角色管理 List list = new ArrayList(); - for (Long roleId : roleIds) - { + for (Long roleId : roleIds) { SysUserRole ur = new SysUserRole(); ur.setUserId(userId); ur.setRoleId(roleId); @@ -433,14 +397,13 @@ public class SysUserServiceImpl implements ISysUserService /** * 通过用户ID删除用户 - * + * * @param userId 用户ID * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) - public int deleteUserById(Long userId) - { + public int deleteUserById(Long userId) { // 删除用户与角色关联 userRoleMapper.deleteUserRoleByUserId(userId); // 删除用户与岗位表 @@ -450,16 +413,14 @@ public class SysUserServiceImpl implements ISysUserService /** * 批量删除用户信息 - * + * * @param userIds 需要删除的用户ID * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) - public int deleteUserByIds(Long[] userIds) - { - for (Long userId : userIds) - { + public int deleteUserByIds(Long[] userIds) { + for (Long userId : userIds) { checkUserAllowed(new SysUser(userId)); checkUserDataScope(userId); } @@ -472,17 +433,15 @@ public class SysUserServiceImpl implements ISysUserService /** * 导入用户数据 - * - * @param userList 用户数据列表 + * + * @param userList 用户数据列表 * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 - * @param operName 操作用户 + * @param operName 操作用户 * @return 结果 */ @Override - public String importUser(List userList, Boolean isUpdateSupport, String operName) - { - if (StringUtils.isNull(userList) || userList.size() == 0) - { + public String importUser(List userList, Boolean isUpdateSupport, String operName) { + if (StringUtils.isNull(userList) || userList.size() == 0) { throw new ServiceException("导入用户数据不能为空!"); } int successNum = 0; @@ -490,23 +449,18 @@ public class SysUserServiceImpl implements ISysUserService StringBuilder successMsg = new StringBuilder(); StringBuilder failureMsg = new StringBuilder(); String password = configService.selectConfigByKey("sys.user.initPassword"); - for (SysUser user : userList) - { - try - { + for (SysUser user : userList) { + try { // 验证是否存在这个用户 SysUser u = userMapper.selectUserByUserName(user.getUserName()); - if (StringUtils.isNull(u)) - { + if (StringUtils.isNull(u)) { BeanValidators.validateWithException(validator, user); user.setPassword(SecurityUtils.encryptPassword(password)); user.setCreateBy(operName); userMapper.insertUser(user); successNum++; successMsg.append("
" + successNum + "、账号 " + user.getUserName() + " 导入成功"); - } - else if (isUpdateSupport) - { + } else if (isUpdateSupport) { BeanValidators.validateWithException(validator, user); checkUserAllowed(u); checkUserDataScope(u.getUserId()); @@ -515,31 +469,43 @@ public class SysUserServiceImpl implements ISysUserService userMapper.updateUser(user); successNum++; successMsg.append("
" + successNum + "、账号 " + user.getUserName() + " 更新成功"); - } - else - { + } else { failureNum++; failureMsg.append("
" + failureNum + "、账号 " + user.getUserName() + " 已存在"); } - } - catch (Exception e) - { + } catch (Exception e) { failureNum++; String msg = "
" + failureNum + "、账号 " + user.getUserName() + " 导入失败:"; failureMsg.append(msg + e.getMessage()); log.error(msg, e); } } - if (failureNum > 0) - { + if (failureNum > 0) { failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); throw new ServiceException(failureMsg.toString()); - } - else - { + } else { successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); } return successMsg.toString(); } + /** + * @param: tenantId + * @description 根据租户ID获取用户ID数组 + * @author xins + * @date 2023-09-27 10:08 + * @return Long[] + */ + @Override + public Long[] getUserIdsByTenantId(Long tenantId) { + SysUser queryUser = new SysUser(); + queryUser.setTenantId(tenantId); + List users = userMapper.selectUserList(queryUser); + if (users != null && !users.isEmpty()) { + return users.stream(). + map(SysUser::getUserId).toArray(Long[]::new); + } + return new Long[0]; + } + } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index a0209d8..95c20df 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -66,6 +66,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND u.user_id = #{userId} + + AND u.tenant_id = #{tenantId} + AND u.user_name like concat('%', #{userName}, '%') diff --git a/ruoyi-ui/src/api/business/device.js b/ruoyi-ui/src/api/business/device.js index 21adee4..461f1c4 100644 --- a/ruoyi-ui/src/api/business/device.js +++ b/ruoyi-ui/src/api/business/device.js @@ -37,9 +37,9 @@ export function updateDevice(data) { } // 删除设备信息 -export function delDevice(deviceId) { +export function delDevice(deviceId, deviceType) { return request({ - url: '/business/device/' + deviceId, + url: '/business/device/' + deviceId + "/" + deviceType, method: 'delete' }) } @@ -101,3 +101,15 @@ export function changeDeviceStatus(deviceId, deviceStatus) { data: data }) } + +export function publishControlCommand(deviceId, type) { + const data = { + deviceId, + type + } + return request({ + url: '/business/device/publishControlCommand', + method: 'put', + data: data + }) +} diff --git a/ruoyi-ui/src/api/business/monitorUnit.js b/ruoyi-ui/src/api/business/monitorUnit.js index 5bce847..6829e9a 100644 --- a/ruoyi-ui/src/api/business/monitorUnit.js +++ b/ruoyi-ui/src/api/business/monitorUnit.js @@ -1,4 +1,5 @@ -import request from '@/utils/request' +import request from '@/utils/request'; +import {parseStrEmpty} from "@/utils/ruoyi"; // 查询监控单元列表 export function listMonitorUnit(query) { @@ -63,20 +64,10 @@ export function getEditedScenes(query) { } // 查询监控单元类型供查询页面选择使用 -export function getMonitorUnitTypes(query) { +export function getMonitorUnitTypes(sceneId) { return request({ - url: '/business/monitorUnit/getMonitorUnitTypes', - method: 'get', - params: query - }) -} - -// 查询监控单元类型供编辑页面选择使用 -export function getEditedMonitorUnitTypes(query) { - return request({ - url: '/business/monitorUnit/getEditedMonitorUnitTypes', - method: 'get', - params: query + url: '/business/monitorUnit/getMonitorUnitTypes/' + parseStrEmpty(sceneId), + method: 'get' }) } diff --git a/ruoyi-ui/src/views/business/device/index.vue b/ruoyi-ui/src/views/business/device/index.vue index 3a28373..502f662 100644 --- a/ruoyi-ui/src/views/business/device/index.vue +++ b/ruoyi-ui/src/views/business/device/index.vue @@ -28,7 +28,7 @@ - + - - - - - - - 搜索 重置 @@ -166,6 +154,23 @@