diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 890c069..151e5ee 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -22,10 +22,15 @@ artemis-http-client 1.1.3 + + + + + com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-group + ${admin.version} com.casic diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 890c069..151e5ee 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -22,10 +22,15 @@ artemis-http-client 1.1.3 + + + + + com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-group + ${admin.version} com.casic diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java index 371ec46..72af255 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java @@ -145,12 +145,7 @@ public ResponseDataDTO> listPage(BusDeviceInfoVO busDeviceInfoVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = busDeviceInfoVO.genQuery(); - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("dept_id", dataScope.getDeptIds()); - } + page = busDeviceInfoService.page(page, query); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 890c069..151e5ee 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -22,10 +22,15 @@ artemis-http-client 1.1.3 + + + + + com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-group + ${admin.version} com.casic diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java index 371ec46..72af255 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java @@ -145,12 +145,7 @@ public ResponseDataDTO> listPage(BusDeviceInfoVO busDeviceInfoVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = busDeviceInfoVO.genQuery(); - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("dept_id", dataScope.getDeptIds()); - } + page = busDeviceInfoService.page(page, query); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java index 08b7023..d999043 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.controller; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,14 +11,17 @@ import com.casic.missiles.model.form.IdForms; import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.dto.IdDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; -import com.casic.missiles.modular.device.vo.DeviceGroupInfoVO; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -38,21 +42,11 @@ this.deviceGroupInfoService = deviceGroupInfoService; } - @ApiIgnore - @ApiOperation(value = "列表查询") - @GetMapping(value = "/list") - public ResponseDataDTO> list(DeviceGroupInfoVO deviceGroupInfoVO) { - QueryWrapper query = deviceGroupInfoVO.genQuery(); - return ResponseDataDTO.success(deviceGroupInfoService.list(query)); - } - @BussinessLog(value = "设备分组管理分页查询") @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") - public ResponseDataDTO> listPage(DeviceGroupInfoVO deviceGroupInfoVO) { - Page page = PageFactory.defaultPage(); - QueryWrapper query = deviceGroupInfoVO.genQuery(); - page = deviceGroupInfoService.page(page, query); + public ResponseDataDTO> listPage(SysUserGroupVO deviceGroupInfoVO) { + Page page = deviceGroupInfoService.userGroupPage(deviceGroupInfoVO); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 890c069..151e5ee 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -22,10 +22,15 @@ artemis-http-client 1.1.3 + + + + + com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-group + ${admin.version} com.casic diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java index 371ec46..72af255 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java @@ -145,12 +145,7 @@ public ResponseDataDTO> listPage(BusDeviceInfoVO busDeviceInfoVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = busDeviceInfoVO.genQuery(); - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("dept_id", dataScope.getDeptIds()); - } + page = busDeviceInfoService.page(page, query); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java index 08b7023..d999043 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.controller; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,14 +11,17 @@ import com.casic.missiles.model.form.IdForms; import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.dto.IdDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; -import com.casic.missiles.modular.device.vo.DeviceGroupInfoVO; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -38,21 +42,11 @@ this.deviceGroupInfoService = deviceGroupInfoService; } - @ApiIgnore - @ApiOperation(value = "列表查询") - @GetMapping(value = "/list") - public ResponseDataDTO> list(DeviceGroupInfoVO deviceGroupInfoVO) { - QueryWrapper query = deviceGroupInfoVO.genQuery(); - return ResponseDataDTO.success(deviceGroupInfoService.list(query)); - } - @BussinessLog(value = "设备分组管理分页查询") @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") - public ResponseDataDTO> listPage(DeviceGroupInfoVO deviceGroupInfoVO) { - Page page = PageFactory.defaultPage(); - QueryWrapper query = deviceGroupInfoVO.genQuery(); - page = deviceGroupInfoService.page(page, query); + public ResponseDataDTO> listPage(SysUserGroupVO deviceGroupInfoVO) { + Page page = deviceGroupInfoService.userGroupPage(deviceGroupInfoVO); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java index 65edf87..cee5800 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java @@ -41,12 +41,12 @@ private final IBusDeviceInfoService busDeviceInfoService; private final IDeviceOnlineLogService onlineLogService; - private final AbstractPermissionContext abstractPermissionContext; - public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService, AbstractPermissionContext abstractPermissionContext) { + + public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService) { this.busDeviceInfoService = busDeviceInfoService; this.onlineLogService = onlineLogService; - this.abstractPermissionContext = abstractPermissionContext; + } @BussinessLog(value = "数据统计概况统计") @@ -97,14 +97,6 @@ endTimeDate = new Date(); } - //按日期求和 - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("b.dept_id", dataScope.getDeptIds()); - } - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("b.secret_level",user.getSecretLevel()); - List dtos = onlineLogService.selectDeviceLog(query); Map map = new HashMap<>(); if(CollectionUtil.isNotEmpty(dtos)){ diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 890c069..151e5ee 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -22,10 +22,15 @@ artemis-http-client 1.1.3 + + + + + com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-group + ${admin.version} com.casic diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java index 371ec46..72af255 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java @@ -145,12 +145,7 @@ public ResponseDataDTO> listPage(BusDeviceInfoVO busDeviceInfoVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = busDeviceInfoVO.genQuery(); - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("dept_id", dataScope.getDeptIds()); - } + page = busDeviceInfoService.page(page, query); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java index 08b7023..d999043 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.controller; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,14 +11,17 @@ import com.casic.missiles.model.form.IdForms; import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.dto.IdDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; -import com.casic.missiles.modular.device.vo.DeviceGroupInfoVO; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -38,21 +42,11 @@ this.deviceGroupInfoService = deviceGroupInfoService; } - @ApiIgnore - @ApiOperation(value = "列表查询") - @GetMapping(value = "/list") - public ResponseDataDTO> list(DeviceGroupInfoVO deviceGroupInfoVO) { - QueryWrapper query = deviceGroupInfoVO.genQuery(); - return ResponseDataDTO.success(deviceGroupInfoService.list(query)); - } - @BussinessLog(value = "设备分组管理分页查询") @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") - public ResponseDataDTO> listPage(DeviceGroupInfoVO deviceGroupInfoVO) { - Page page = PageFactory.defaultPage(); - QueryWrapper query = deviceGroupInfoVO.genQuery(); - page = deviceGroupInfoService.page(page, query); + public ResponseDataDTO> listPage(SysUserGroupVO deviceGroupInfoVO) { + Page page = deviceGroupInfoService.userGroupPage(deviceGroupInfoVO); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java index 65edf87..cee5800 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java @@ -41,12 +41,12 @@ private final IBusDeviceInfoService busDeviceInfoService; private final IDeviceOnlineLogService onlineLogService; - private final AbstractPermissionContext abstractPermissionContext; - public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService, AbstractPermissionContext abstractPermissionContext) { + + public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService) { this.busDeviceInfoService = busDeviceInfoService; this.onlineLogService = onlineLogService; - this.abstractPermissionContext = abstractPermissionContext; + } @BussinessLog(value = "数据统计概况统计") @@ -97,14 +97,6 @@ endTimeDate = new Date(); } - //按日期求和 - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("b.dept_id", dataScope.getDeptIds()); - } - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("b.secret_level",user.getSecretLevel()); - List dtos = onlineLogService.selectDeviceLog(query); Map map = new HashMap<>(); if(CollectionUtil.isNotEmpty(dtos)){ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java index 887171c..4f683ef 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java @@ -24,5 +24,5 @@ */ List selectBusDeviceInfoPage(@Param("page") Page page, @Param("ew") QueryWrapper query); - List searchStatusByArea(); + List searchStatusByArea(@Param("ew") QueryWrapper query); } diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 890c069..151e5ee 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -22,10 +22,15 @@ artemis-http-client 1.1.3 + + + + + com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-group + ${admin.version} com.casic diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java index 371ec46..72af255 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java @@ -145,12 +145,7 @@ public ResponseDataDTO> listPage(BusDeviceInfoVO busDeviceInfoVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = busDeviceInfoVO.genQuery(); - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("dept_id", dataScope.getDeptIds()); - } + page = busDeviceInfoService.page(page, query); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java index 08b7023..d999043 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.controller; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,14 +11,17 @@ import com.casic.missiles.model.form.IdForms; import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.dto.IdDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; -import com.casic.missiles.modular.device.vo.DeviceGroupInfoVO; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -38,21 +42,11 @@ this.deviceGroupInfoService = deviceGroupInfoService; } - @ApiIgnore - @ApiOperation(value = "列表查询") - @GetMapping(value = "/list") - public ResponseDataDTO> list(DeviceGroupInfoVO deviceGroupInfoVO) { - QueryWrapper query = deviceGroupInfoVO.genQuery(); - return ResponseDataDTO.success(deviceGroupInfoService.list(query)); - } - @BussinessLog(value = "设备分组管理分页查询") @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") - public ResponseDataDTO> listPage(DeviceGroupInfoVO deviceGroupInfoVO) { - Page page = PageFactory.defaultPage(); - QueryWrapper query = deviceGroupInfoVO.genQuery(); - page = deviceGroupInfoService.page(page, query); + public ResponseDataDTO> listPage(SysUserGroupVO deviceGroupInfoVO) { + Page page = deviceGroupInfoService.userGroupPage(deviceGroupInfoVO); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java index 65edf87..cee5800 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java @@ -41,12 +41,12 @@ private final IBusDeviceInfoService busDeviceInfoService; private final IDeviceOnlineLogService onlineLogService; - private final AbstractPermissionContext abstractPermissionContext; - public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService, AbstractPermissionContext abstractPermissionContext) { + + public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService) { this.busDeviceInfoService = busDeviceInfoService; this.onlineLogService = onlineLogService; - this.abstractPermissionContext = abstractPermissionContext; + } @BussinessLog(value = "数据统计概况统计") @@ -97,14 +97,6 @@ endTimeDate = new Date(); } - //按日期求和 - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("b.dept_id", dataScope.getDeptIds()); - } - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("b.secret_level",user.getSecretLevel()); - List dtos = onlineLogService.selectDeviceLog(query); Map map = new HashMap<>(); if(CollectionUtil.isNotEmpty(dtos)){ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java index 887171c..4f683ef 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java @@ -24,5 +24,5 @@ */ List selectBusDeviceInfoPage(@Param("page") Page page, @Param("ew") QueryWrapper query); - List searchStatusByArea(); + List searchStatusByArea(@Param("ew") QueryWrapper query); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml index 0eedcbd..5e198d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml @@ -112,8 +112,12 @@ sum(case when device_status = 1 then 1 ELSE 0 end ) as onlineNum, sum(case when device_status = 0 then 1 ELSE 0 end ) as offlineNum, sum(1) as total - FROM - bus_device_info + FROM bus_device_info + + + ${ew.sqlSegment} + + diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 890c069..151e5ee 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -22,10 +22,15 @@ artemis-http-client 1.1.3 + + + + + com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-group + ${admin.version} com.casic diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java index 371ec46..72af255 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java @@ -145,12 +145,7 @@ public ResponseDataDTO> listPage(BusDeviceInfoVO busDeviceInfoVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = busDeviceInfoVO.genQuery(); - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("dept_id", dataScope.getDeptIds()); - } + page = busDeviceInfoService.page(page, query); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java index 08b7023..d999043 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.controller; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,14 +11,17 @@ import com.casic.missiles.model.form.IdForms; import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.dto.IdDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; -import com.casic.missiles.modular.device.vo.DeviceGroupInfoVO; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -38,21 +42,11 @@ this.deviceGroupInfoService = deviceGroupInfoService; } - @ApiIgnore - @ApiOperation(value = "列表查询") - @GetMapping(value = "/list") - public ResponseDataDTO> list(DeviceGroupInfoVO deviceGroupInfoVO) { - QueryWrapper query = deviceGroupInfoVO.genQuery(); - return ResponseDataDTO.success(deviceGroupInfoService.list(query)); - } - @BussinessLog(value = "设备分组管理分页查询") @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") - public ResponseDataDTO> listPage(DeviceGroupInfoVO deviceGroupInfoVO) { - Page page = PageFactory.defaultPage(); - QueryWrapper query = deviceGroupInfoVO.genQuery(); - page = deviceGroupInfoService.page(page, query); + public ResponseDataDTO> listPage(SysUserGroupVO deviceGroupInfoVO) { + Page page = deviceGroupInfoService.userGroupPage(deviceGroupInfoVO); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java index 65edf87..cee5800 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java @@ -41,12 +41,12 @@ private final IBusDeviceInfoService busDeviceInfoService; private final IDeviceOnlineLogService onlineLogService; - private final AbstractPermissionContext abstractPermissionContext; - public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService, AbstractPermissionContext abstractPermissionContext) { + + public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService) { this.busDeviceInfoService = busDeviceInfoService; this.onlineLogService = onlineLogService; - this.abstractPermissionContext = abstractPermissionContext; + } @BussinessLog(value = "数据统计概况统计") @@ -97,14 +97,6 @@ endTimeDate = new Date(); } - //按日期求和 - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("b.dept_id", dataScope.getDeptIds()); - } - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("b.secret_level",user.getSecretLevel()); - List dtos = onlineLogService.selectDeviceLog(query); Map map = new HashMap<>(); if(CollectionUtil.isNotEmpty(dtos)){ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java index 887171c..4f683ef 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java @@ -24,5 +24,5 @@ */ List selectBusDeviceInfoPage(@Param("page") Page page, @Param("ew") QueryWrapper query); - List searchStatusByArea(); + List searchStatusByArea(@Param("ew") QueryWrapper query); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml index 0eedcbd..5e198d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml @@ -112,8 +112,12 @@ sum(case when device_status = 1 then 1 ELSE 0 end ) as onlineNum, sum(case when device_status = 0 then 1 ELSE 0 end ) as offlineNum, sum(1) as total - FROM - bus_device_info + FROM bus_device_info + + + ${ew.sqlSegment} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java index 3e0994e..72b4919 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java @@ -55,6 +55,9 @@ @ApiModelProperty(value = "分组相机id,用逗号隔开", dataType = "String") @TableField("camera_ids") private String cameraIds; + @ApiModelProperty(value = "用户id,用逗号隔开", dataType = "String") + @TableField(exist = false) + private String personIds; @ApiModelProperty(value = "相机url集合", dataType = "String") @TableField(exist = false) private List cameras; diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 890c069..151e5ee 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -22,10 +22,15 @@ artemis-http-client 1.1.3 + + + + + com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-group + ${admin.version} com.casic diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java index 371ec46..72af255 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java @@ -145,12 +145,7 @@ public ResponseDataDTO> listPage(BusDeviceInfoVO busDeviceInfoVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = busDeviceInfoVO.genQuery(); - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("dept_id", dataScope.getDeptIds()); - } + page = busDeviceInfoService.page(page, query); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java index 08b7023..d999043 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.controller; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,14 +11,17 @@ import com.casic.missiles.model.form.IdForms; import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.dto.IdDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; -import com.casic.missiles.modular.device.vo.DeviceGroupInfoVO; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -38,21 +42,11 @@ this.deviceGroupInfoService = deviceGroupInfoService; } - @ApiIgnore - @ApiOperation(value = "列表查询") - @GetMapping(value = "/list") - public ResponseDataDTO> list(DeviceGroupInfoVO deviceGroupInfoVO) { - QueryWrapper query = deviceGroupInfoVO.genQuery(); - return ResponseDataDTO.success(deviceGroupInfoService.list(query)); - } - @BussinessLog(value = "设备分组管理分页查询") @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") - public ResponseDataDTO> listPage(DeviceGroupInfoVO deviceGroupInfoVO) { - Page page = PageFactory.defaultPage(); - QueryWrapper query = deviceGroupInfoVO.genQuery(); - page = deviceGroupInfoService.page(page, query); + public ResponseDataDTO> listPage(SysUserGroupVO deviceGroupInfoVO) { + Page page = deviceGroupInfoService.userGroupPage(deviceGroupInfoVO); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java index 65edf87..cee5800 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java @@ -41,12 +41,12 @@ private final IBusDeviceInfoService busDeviceInfoService; private final IDeviceOnlineLogService onlineLogService; - private final AbstractPermissionContext abstractPermissionContext; - public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService, AbstractPermissionContext abstractPermissionContext) { + + public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService) { this.busDeviceInfoService = busDeviceInfoService; this.onlineLogService = onlineLogService; - this.abstractPermissionContext = abstractPermissionContext; + } @BussinessLog(value = "数据统计概况统计") @@ -97,14 +97,6 @@ endTimeDate = new Date(); } - //按日期求和 - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("b.dept_id", dataScope.getDeptIds()); - } - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("b.secret_level",user.getSecretLevel()); - List dtos = onlineLogService.selectDeviceLog(query); Map map = new HashMap<>(); if(CollectionUtil.isNotEmpty(dtos)){ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java index 887171c..4f683ef 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java @@ -24,5 +24,5 @@ */ List selectBusDeviceInfoPage(@Param("page") Page page, @Param("ew") QueryWrapper query); - List searchStatusByArea(); + List searchStatusByArea(@Param("ew") QueryWrapper query); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml index 0eedcbd..5e198d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml @@ -112,8 +112,12 @@ sum(case when device_status = 1 then 1 ELSE 0 end ) as onlineNum, sum(case when device_status = 0 then 1 ELSE 0 end ) as offlineNum, sum(1) as total - FROM - bus_device_info + FROM bus_device_info + + + ${ew.sqlSegment} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java index 3e0994e..72b4919 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java @@ -55,6 +55,9 @@ @ApiModelProperty(value = "分组相机id,用逗号隔开", dataType = "String") @TableField("camera_ids") private String cameraIds; + @ApiModelProperty(value = "用户id,用逗号隔开", dataType = "String") + @TableField(exist = false) + private String personIds; @ApiModelProperty(value = "相机url集合", dataType = "String") @TableField(exist = false) private List cameras; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java index 02c64c9..fd65c83 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java @@ -3,7 +3,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import java.util.List; @@ -21,4 +24,6 @@ * 设备分组管理 分页检索 */ List selectDeviceGroupInfoPage(Page page, QueryWrapper query); + + Page userGroupPage(SysUserGroupVO deviceGroupInfoVO); } diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 890c069..151e5ee 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -22,10 +22,15 @@ artemis-http-client 1.1.3 + + + + + com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-group + ${admin.version} com.casic diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java index 371ec46..72af255 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java @@ -145,12 +145,7 @@ public ResponseDataDTO> listPage(BusDeviceInfoVO busDeviceInfoVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = busDeviceInfoVO.genQuery(); - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("dept_id", dataScope.getDeptIds()); - } + page = busDeviceInfoService.page(page, query); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java index 08b7023..d999043 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.controller; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,14 +11,17 @@ import com.casic.missiles.model.form.IdForms; import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.dto.IdDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; -import com.casic.missiles.modular.device.vo.DeviceGroupInfoVO; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -38,21 +42,11 @@ this.deviceGroupInfoService = deviceGroupInfoService; } - @ApiIgnore - @ApiOperation(value = "列表查询") - @GetMapping(value = "/list") - public ResponseDataDTO> list(DeviceGroupInfoVO deviceGroupInfoVO) { - QueryWrapper query = deviceGroupInfoVO.genQuery(); - return ResponseDataDTO.success(deviceGroupInfoService.list(query)); - } - @BussinessLog(value = "设备分组管理分页查询") @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") - public ResponseDataDTO> listPage(DeviceGroupInfoVO deviceGroupInfoVO) { - Page page = PageFactory.defaultPage(); - QueryWrapper query = deviceGroupInfoVO.genQuery(); - page = deviceGroupInfoService.page(page, query); + public ResponseDataDTO> listPage(SysUserGroupVO deviceGroupInfoVO) { + Page page = deviceGroupInfoService.userGroupPage(deviceGroupInfoVO); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java index 65edf87..cee5800 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java @@ -41,12 +41,12 @@ private final IBusDeviceInfoService busDeviceInfoService; private final IDeviceOnlineLogService onlineLogService; - private final AbstractPermissionContext abstractPermissionContext; - public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService, AbstractPermissionContext abstractPermissionContext) { + + public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService) { this.busDeviceInfoService = busDeviceInfoService; this.onlineLogService = onlineLogService; - this.abstractPermissionContext = abstractPermissionContext; + } @BussinessLog(value = "数据统计概况统计") @@ -97,14 +97,6 @@ endTimeDate = new Date(); } - //按日期求和 - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("b.dept_id", dataScope.getDeptIds()); - } - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("b.secret_level",user.getSecretLevel()); - List dtos = onlineLogService.selectDeviceLog(query); Map map = new HashMap<>(); if(CollectionUtil.isNotEmpty(dtos)){ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java index 887171c..4f683ef 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java @@ -24,5 +24,5 @@ */ List selectBusDeviceInfoPage(@Param("page") Page page, @Param("ew") QueryWrapper query); - List searchStatusByArea(); + List searchStatusByArea(@Param("ew") QueryWrapper query); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml index 0eedcbd..5e198d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml @@ -112,8 +112,12 @@ sum(case when device_status = 1 then 1 ELSE 0 end ) as onlineNum, sum(case when device_status = 0 then 1 ELSE 0 end ) as offlineNum, sum(1) as total - FROM - bus_device_info + FROM bus_device_info + + + ${ew.sqlSegment} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java index 3e0994e..72b4919 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java @@ -55,6 +55,9 @@ @ApiModelProperty(value = "分组相机id,用逗号隔开", dataType = "String") @TableField("camera_ids") private String cameraIds; + @ApiModelProperty(value = "用户id,用逗号隔开", dataType = "String") + @TableField(exist = false) + private String personIds; @ApiModelProperty(value = "相机url集合", dataType = "String") @TableField(exist = false) private List cameras; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java index 02c64c9..fd65c83 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java @@ -3,7 +3,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import java.util.List; @@ -21,4 +24,6 @@ * 设备分组管理 分页检索 */ List selectDeviceGroupInfoPage(Page page, QueryWrapper query); + + Page userGroupPage(SysUserGroupVO deviceGroupInfoVO); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java index 2a4a9fc..fd6bce8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java @@ -35,6 +35,7 @@ import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.service.IAreaService; import com.casic.missiles.modular.video.dto.DeviceDTO; +import org.apache.ibatis.annotations.Param; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -69,7 +70,36 @@ this.hikService = hikService; } + @Override + public > E page(E page) { + return super.page(page); + } + @Override + public > E page(E page, Wrapper query) { + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + QueryWrapper pageQuery = query((QueryWrapper) query, "id", user.getId()); + pageQuery.le("secret_level", user.getSecretLevel()); + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + pageQuery.in("dept_id", dataScope.getDeptIds()); + } + + IPage infoIPage = super.page(page, pageQuery); + infoIPage.getRecords().forEach(this::wrapInfo); + return (E) infoIPage; + } + + private QueryWrapper query(QueryWrapper query, String column, Long userId) { + return query.inSql(column, "SELECT\n" + + "device_id\n" + + "FROM\n" + + "\tsys_user_group a\n" + + "\tINNER JOIN sys_group_rel_user b ON a.id = b.group_id\n" + + "\tINNER JOIN sys_group_device c on a.id = c.group_id\n" + + "\tWHERE b.user_id = " + userId + "\n" + + "\tGROUP BY c.device_id"); + } @Override public List selectBusDeviceInfoPage(Page page, QueryWrapper query) { @@ -78,7 +108,9 @@ @Override public List list(Wrapper queryWrapper) { - List busDeviceInfos = super.list(queryWrapper); + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + QueryWrapper pageQuery = query((QueryWrapper) queryWrapper, "id", user.getId()); + List busDeviceInfos = super.list(pageQuery); busDeviceInfos.forEach(this::wrapInfo); return busDeviceInfos; } @@ -92,13 +124,6 @@ return busDeviceInfo; } - @Override - public > E page(E page, Wrapper queryWrapper) { - IPage infoIPage = super.page(page, queryWrapper); - infoIPage.getRecords().forEach(this::wrapInfo); - return (E) infoIPage; - } - private void wrapInfo(BusDeviceInfo busDeviceInfo) { Area area = areaService.getById(busDeviceInfo.getArea()); if (area != null) { @@ -114,19 +139,19 @@ @Override public TotalDataDTO total(QueryWrapper query) { AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); + query.le("secret_level", user.getSecretLevel()); DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); //根据数据权限读取组织下用户信息 if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { query.in("dept_id", dataScope.getDeptIds()); } - query.select("count(1) as totalNum", "sum(case device_status when 1 then 1 else 0 end ) as onLineNum"); - + query.select("count(1) as TOTALNUM", "sum(case device_status when 1 then 1 else 0 end ) as ONLINENUM"); + query(query,"id",user.getId()); List> maps = this.baseMapper.selectMaps(query); TotalDataDTO dataDTO = new TotalDataDTO(); maps.forEach(map -> { - dataDTO.setDevTotal(Convert.toInt(map.getOrDefault("totalNum", 0))); - dataDTO.setOnlineNum(Convert.toInt(map.getOrDefault("onLineNum", 0))); + dataDTO.setDevTotal(Convert.toInt(map.getOrDefault("TOTALNUM", 0))); + dataDTO.setOnlineNum(Convert.toInt(map.getOrDefault("ONLINENUM", 0))); if (dataDTO.getDevTotal() == 0) { dataDTO.setOnlineRate(0D); } else { @@ -143,8 +168,8 @@ List> maps = getAreaData(query); Map areaMap = maps.stream().map(map -> { AreaDataDTO areaDataDTO = new AreaDataDTO(); - areaDataDTO.setValue(Convert.toInt(map.getOrDefault("totalNum", 0))); - areaDataDTO.setCode(Convert.toStr(map.get("area"))); + areaDataDTO.setValue(Convert.toInt(map.getOrDefault("TOTALNUM", 0))); + areaDataDTO.setCode(Convert.toStr(map.get("AREA"))); return areaDataDTO; }).collect(Collectors.toMap(AreaDataDTO::getCode, AreaDataDTO::getValue)); return areaMapToList(DataConstants.DICT_AREA, areaMap); @@ -156,8 +181,8 @@ List> maps = getAreaData(query); Map areaMap = maps.stream().map(map -> { AreaDataDTO areaDataDTO = new AreaDataDTO(); - areaDataDTO.setValue(Convert.toInt(map.getOrDefault("onLineNum", 0))); - areaDataDTO.setCode(Convert.toStr(map.get("area"))); + areaDataDTO.setValue(Convert.toInt(map.getOrDefault("ONLINENUM", 0))); + areaDataDTO.setCode(Convert.toStr(map.get("AREA"))); return areaDataDTO; }).collect(Collectors.toMap(AreaDataDTO::getCode, AreaDataDTO::getValue)); return areaMapToList(DataConstants.DICT_AREA, areaMap); @@ -189,10 +214,10 @@ normalIds.add(dept.getId()); //挂载设备信息 - LambdaQueryWrapper deviceQuery = new LambdaQueryWrapper<>(); - deviceQuery.eq(BusDeviceInfo::getDeptId, deptDTO.getId()); + QueryWrapper deviceQuery = new QueryWrapper<>(); + deviceQuery.eq("dept_id", deptDTO.getId()); //判定只可查看以下密级 - deviceQuery.le(BusDeviceInfo::getSecretLevel,user.getSecretLevel()); + deviceQuery.le("secret_level", user.getSecretLevel()); List deviceInfos = this.list(deviceQuery); deptDTO.setChildrenNodes(deviceInfos.stream().map(this::createDeptDTO).collect(Collectors.toList())); } @@ -251,7 +276,7 @@ } if (StrUtil.isEmpty(result.getCameraIndexCode())) { - errors.add("第" + index + "行设备编号不能为空!"); + errors.add("第" + index + "行设备国标号不能为空!"); } importDTOS.add(result); index++; @@ -323,7 +348,17 @@ @Override public List searchStatusByArea() { - return this.baseMapper.searchStatusByArea(); + QueryWrapper query = new QueryWrapper<>(); + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + //根据数据权限读取组织下用户信息 + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + query.in("dept_id", dataScope.getDeptIds()); + } + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + query.le("secret_level", user.getSecretLevel()); + query(query,"id",user.getId()); + + return this.baseMapper.searchStatusByArea(query); } /** @@ -349,10 +384,12 @@ if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { query.in("dept_id", dataScope.getDeptIds()); } + query.select("AREA", "count(1) as TOTALNUM", "sum(case device_status when 1 then 1 else 0 end) as ONLINENUM"); AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - query.select("area", "count(1) as totalNum", "sum(case device_status when 1 then 1 else 0 end) as onLineNum"); - query.groupBy("area"); + query.le("secret_level", user.getSecretLevel()); + query(query,"id",user.getId()); + + query.groupBy("AREA"); List> maps = this.baseMapper.selectMaps(query); return maps; } @@ -376,6 +413,7 @@ /** * 设备接口实现 + * * @param id 设备主键 * @return */ @@ -386,7 +424,6 @@ } /** - * * @param deviceId 设备ID * @return */ diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 890c069..151e5ee 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -22,10 +22,15 @@ artemis-http-client 1.1.3 + + + + + com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-group + ${admin.version} com.casic diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java index 371ec46..72af255 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java @@ -145,12 +145,7 @@ public ResponseDataDTO> listPage(BusDeviceInfoVO busDeviceInfoVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = busDeviceInfoVO.genQuery(); - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("dept_id", dataScope.getDeptIds()); - } + page = busDeviceInfoService.page(page, query); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java index 08b7023..d999043 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.controller; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,14 +11,17 @@ import com.casic.missiles.model.form.IdForms; import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.dto.IdDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; -import com.casic.missiles.modular.device.vo.DeviceGroupInfoVO; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -38,21 +42,11 @@ this.deviceGroupInfoService = deviceGroupInfoService; } - @ApiIgnore - @ApiOperation(value = "列表查询") - @GetMapping(value = "/list") - public ResponseDataDTO> list(DeviceGroupInfoVO deviceGroupInfoVO) { - QueryWrapper query = deviceGroupInfoVO.genQuery(); - return ResponseDataDTO.success(deviceGroupInfoService.list(query)); - } - @BussinessLog(value = "设备分组管理分页查询") @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") - public ResponseDataDTO> listPage(DeviceGroupInfoVO deviceGroupInfoVO) { - Page page = PageFactory.defaultPage(); - QueryWrapper query = deviceGroupInfoVO.genQuery(); - page = deviceGroupInfoService.page(page, query); + public ResponseDataDTO> listPage(SysUserGroupVO deviceGroupInfoVO) { + Page page = deviceGroupInfoService.userGroupPage(deviceGroupInfoVO); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java index 65edf87..cee5800 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java @@ -41,12 +41,12 @@ private final IBusDeviceInfoService busDeviceInfoService; private final IDeviceOnlineLogService onlineLogService; - private final AbstractPermissionContext abstractPermissionContext; - public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService, AbstractPermissionContext abstractPermissionContext) { + + public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService) { this.busDeviceInfoService = busDeviceInfoService; this.onlineLogService = onlineLogService; - this.abstractPermissionContext = abstractPermissionContext; + } @BussinessLog(value = "数据统计概况统计") @@ -97,14 +97,6 @@ endTimeDate = new Date(); } - //按日期求和 - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("b.dept_id", dataScope.getDeptIds()); - } - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("b.secret_level",user.getSecretLevel()); - List dtos = onlineLogService.selectDeviceLog(query); Map map = new HashMap<>(); if(CollectionUtil.isNotEmpty(dtos)){ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java index 887171c..4f683ef 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java @@ -24,5 +24,5 @@ */ List selectBusDeviceInfoPage(@Param("page") Page page, @Param("ew") QueryWrapper query); - List searchStatusByArea(); + List searchStatusByArea(@Param("ew") QueryWrapper query); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml index 0eedcbd..5e198d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml @@ -112,8 +112,12 @@ sum(case when device_status = 1 then 1 ELSE 0 end ) as onlineNum, sum(case when device_status = 0 then 1 ELSE 0 end ) as offlineNum, sum(1) as total - FROM - bus_device_info + FROM bus_device_info + + + ${ew.sqlSegment} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java index 3e0994e..72b4919 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java @@ -55,6 +55,9 @@ @ApiModelProperty(value = "分组相机id,用逗号隔开", dataType = "String") @TableField("camera_ids") private String cameraIds; + @ApiModelProperty(value = "用户id,用逗号隔开", dataType = "String") + @TableField(exist = false) + private String personIds; @ApiModelProperty(value = "相机url集合", dataType = "String") @TableField(exist = false) private List cameras; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java index 02c64c9..fd65c83 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java @@ -3,7 +3,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import java.util.List; @@ -21,4 +24,6 @@ * 设备分组管理 分页检索 */ List selectDeviceGroupInfoPage(Page page, QueryWrapper query); + + Page userGroupPage(SysUserGroupVO deviceGroupInfoVO); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java index 2a4a9fc..fd6bce8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java @@ -35,6 +35,7 @@ import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.service.IAreaService; import com.casic.missiles.modular.video.dto.DeviceDTO; +import org.apache.ibatis.annotations.Param; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -69,7 +70,36 @@ this.hikService = hikService; } + @Override + public > E page(E page) { + return super.page(page); + } + @Override + public > E page(E page, Wrapper query) { + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + QueryWrapper pageQuery = query((QueryWrapper) query, "id", user.getId()); + pageQuery.le("secret_level", user.getSecretLevel()); + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + pageQuery.in("dept_id", dataScope.getDeptIds()); + } + + IPage infoIPage = super.page(page, pageQuery); + infoIPage.getRecords().forEach(this::wrapInfo); + return (E) infoIPage; + } + + private QueryWrapper query(QueryWrapper query, String column, Long userId) { + return query.inSql(column, "SELECT\n" + + "device_id\n" + + "FROM\n" + + "\tsys_user_group a\n" + + "\tINNER JOIN sys_group_rel_user b ON a.id = b.group_id\n" + + "\tINNER JOIN sys_group_device c on a.id = c.group_id\n" + + "\tWHERE b.user_id = " + userId + "\n" + + "\tGROUP BY c.device_id"); + } @Override public List selectBusDeviceInfoPage(Page page, QueryWrapper query) { @@ -78,7 +108,9 @@ @Override public List list(Wrapper queryWrapper) { - List busDeviceInfos = super.list(queryWrapper); + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + QueryWrapper pageQuery = query((QueryWrapper) queryWrapper, "id", user.getId()); + List busDeviceInfos = super.list(pageQuery); busDeviceInfos.forEach(this::wrapInfo); return busDeviceInfos; } @@ -92,13 +124,6 @@ return busDeviceInfo; } - @Override - public > E page(E page, Wrapper queryWrapper) { - IPage infoIPage = super.page(page, queryWrapper); - infoIPage.getRecords().forEach(this::wrapInfo); - return (E) infoIPage; - } - private void wrapInfo(BusDeviceInfo busDeviceInfo) { Area area = areaService.getById(busDeviceInfo.getArea()); if (area != null) { @@ -114,19 +139,19 @@ @Override public TotalDataDTO total(QueryWrapper query) { AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); + query.le("secret_level", user.getSecretLevel()); DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); //根据数据权限读取组织下用户信息 if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { query.in("dept_id", dataScope.getDeptIds()); } - query.select("count(1) as totalNum", "sum(case device_status when 1 then 1 else 0 end ) as onLineNum"); - + query.select("count(1) as TOTALNUM", "sum(case device_status when 1 then 1 else 0 end ) as ONLINENUM"); + query(query,"id",user.getId()); List> maps = this.baseMapper.selectMaps(query); TotalDataDTO dataDTO = new TotalDataDTO(); maps.forEach(map -> { - dataDTO.setDevTotal(Convert.toInt(map.getOrDefault("totalNum", 0))); - dataDTO.setOnlineNum(Convert.toInt(map.getOrDefault("onLineNum", 0))); + dataDTO.setDevTotal(Convert.toInt(map.getOrDefault("TOTALNUM", 0))); + dataDTO.setOnlineNum(Convert.toInt(map.getOrDefault("ONLINENUM", 0))); if (dataDTO.getDevTotal() == 0) { dataDTO.setOnlineRate(0D); } else { @@ -143,8 +168,8 @@ List> maps = getAreaData(query); Map areaMap = maps.stream().map(map -> { AreaDataDTO areaDataDTO = new AreaDataDTO(); - areaDataDTO.setValue(Convert.toInt(map.getOrDefault("totalNum", 0))); - areaDataDTO.setCode(Convert.toStr(map.get("area"))); + areaDataDTO.setValue(Convert.toInt(map.getOrDefault("TOTALNUM", 0))); + areaDataDTO.setCode(Convert.toStr(map.get("AREA"))); return areaDataDTO; }).collect(Collectors.toMap(AreaDataDTO::getCode, AreaDataDTO::getValue)); return areaMapToList(DataConstants.DICT_AREA, areaMap); @@ -156,8 +181,8 @@ List> maps = getAreaData(query); Map areaMap = maps.stream().map(map -> { AreaDataDTO areaDataDTO = new AreaDataDTO(); - areaDataDTO.setValue(Convert.toInt(map.getOrDefault("onLineNum", 0))); - areaDataDTO.setCode(Convert.toStr(map.get("area"))); + areaDataDTO.setValue(Convert.toInt(map.getOrDefault("ONLINENUM", 0))); + areaDataDTO.setCode(Convert.toStr(map.get("AREA"))); return areaDataDTO; }).collect(Collectors.toMap(AreaDataDTO::getCode, AreaDataDTO::getValue)); return areaMapToList(DataConstants.DICT_AREA, areaMap); @@ -189,10 +214,10 @@ normalIds.add(dept.getId()); //挂载设备信息 - LambdaQueryWrapper deviceQuery = new LambdaQueryWrapper<>(); - deviceQuery.eq(BusDeviceInfo::getDeptId, deptDTO.getId()); + QueryWrapper deviceQuery = new QueryWrapper<>(); + deviceQuery.eq("dept_id", deptDTO.getId()); //判定只可查看以下密级 - deviceQuery.le(BusDeviceInfo::getSecretLevel,user.getSecretLevel()); + deviceQuery.le("secret_level", user.getSecretLevel()); List deviceInfos = this.list(deviceQuery); deptDTO.setChildrenNodes(deviceInfos.stream().map(this::createDeptDTO).collect(Collectors.toList())); } @@ -251,7 +276,7 @@ } if (StrUtil.isEmpty(result.getCameraIndexCode())) { - errors.add("第" + index + "行设备编号不能为空!"); + errors.add("第" + index + "行设备国标号不能为空!"); } importDTOS.add(result); index++; @@ -323,7 +348,17 @@ @Override public List searchStatusByArea() { - return this.baseMapper.searchStatusByArea(); + QueryWrapper query = new QueryWrapper<>(); + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + //根据数据权限读取组织下用户信息 + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + query.in("dept_id", dataScope.getDeptIds()); + } + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + query.le("secret_level", user.getSecretLevel()); + query(query,"id",user.getId()); + + return this.baseMapper.searchStatusByArea(query); } /** @@ -349,10 +384,12 @@ if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { query.in("dept_id", dataScope.getDeptIds()); } + query.select("AREA", "count(1) as TOTALNUM", "sum(case device_status when 1 then 1 else 0 end) as ONLINENUM"); AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - query.select("area", "count(1) as totalNum", "sum(case device_status when 1 then 1 else 0 end) as onLineNum"); - query.groupBy("area"); + query.le("secret_level", user.getSecretLevel()); + query(query,"id",user.getId()); + + query.groupBy("AREA"); List> maps = this.baseMapper.selectMaps(query); return maps; } @@ -376,6 +413,7 @@ /** * 设备接口实现 + * * @param id 设备主键 * @return */ @@ -386,7 +424,6 @@ } /** - * * @param deviceId 设备ID * @return */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java index 69710d6..9ce8fbd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java @@ -1,25 +1,42 @@ package com.casic.missiles.modular.device.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.modular.data.constants.DataConstants; import com.casic.missiles.modular.device.dao.DeviceGroupInfoMapper; import com.casic.missiles.modular.device.dto.CameraDTO; +import com.casic.missiles.modular.device.dto.GroupRelDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.BusDeviceInfo; import com.casic.missiles.modular.device.model.DeviceGroupInfo; +import com.casic.missiles.modular.device.model.SysGroupDevice; import com.casic.missiles.modular.device.service.IBusDeviceInfoService; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysGroupRelUser; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.service.ISysGroupRelUserService; +import com.casic.missiles.modular.system.service.ISysUserGroupService; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.Serializable; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** @@ -34,10 +51,18 @@ public class DeviceGroupInfoServiceImpl extends ServiceImpl implements IDeviceGroupInfoService { private final AbstractDictService dictService; private final IBusDeviceInfoService deviceInfoService; + private final ISysUserGroupService groupService; + private final AbstractPermissionContext permissionContext; + private final ISysGroupDeviceService sysGroupDeviceService; + private final ISysGroupRelUserService groupRelUserService; - public DeviceGroupInfoServiceImpl(AbstractDictService dictService, IBusDeviceInfoService deviceInfoService) { + public DeviceGroupInfoServiceImpl(AbstractDictService dictService, IBusDeviceInfoService deviceInfoService, ISysUserGroupService groupService, AbstractPermissionContext permissionContext, ISysGroupDeviceService sysGroupDeviceService, ISysGroupRelUserService groupRelUserService) { this.dictService = dictService; this.deviceInfoService = deviceInfoService; + this.groupService = groupService; + this.permissionContext = permissionContext; + this.sysGroupDeviceService = sysGroupDeviceService; + this.groupRelUserService = groupRelUserService; } @Override @@ -45,6 +70,88 @@ return this.baseMapper.selectDeviceGroupInfoPage(page, query); } + @Override + public boolean updateById(DeviceGroupInfo entity) { + AuthUser user = permissionContext.getAuthService().getLoginUser(); + SysUserGroup sysUserGroup = BeanUtil.copyProperties(entity,SysUserGroup.class); + sysUserGroup.setCreateId(user.getId()); + sysUserGroup.setDeptId(user.getDeptId()); + batchSave(entity,sysUserGroup.getId()); + return groupService.updateById(sysUserGroup); + } + private void batchSave(DeviceGroupInfo entity,Long groupId){ + GroupRelDTO groupRelDTO = new GroupRelDTO(); + groupRelDTO.setGroupId(groupId); + if(StrUtil.isNotEmpty(entity.getCameraIds())){ + long[] longs = StrUtil.splitToLong(entity.getCameraIds(),","); + List devices = new ArrayList<>(); + for (long aLong : longs) { + devices.add(aLong); + } + groupRelDTO.setDeviceIds(devices); + } + if(StrUtil.isNotEmpty(entity.getPersonIds())){ + long[] longs = StrUtil.splitToLong(entity.getPersonIds(),","); + List persons = new ArrayList<>(); + for (long aLong : longs) { + persons.add(aLong); + } + groupRelDTO.setUserIds(persons); + } + sysGroupDeviceService.batchAdd(groupRelDTO); + } + @Transactional + @Override + public boolean save(DeviceGroupInfo entity) { + AuthUser user = permissionContext.getAuthService().getLoginUser(); + SysUserGroup sysUserGroup = BeanUtil.copyProperties(entity,SysUserGroup.class); + sysUserGroup.setCreateId(user.getId()); + sysUserGroup.setDeptId(user.getDeptId()); + groupService.save(sysUserGroup); + batchSave(entity,sysUserGroup.getId()); + return true; + } + + @Transactional + @Override + public Page userGroupPage(SysUserGroupVO deviceGroupInfoVO) { + + Page page = PageFactory.defaultPage(); + QueryWrapper query = deviceGroupInfoVO.genQuery(); + List sysUserGroups = groupService.selectSysUserGroupPage(page, query); + + List sysUserGroupDTOS = new ArrayList<>(); + for (SysUserGroup record : sysUserGroups) { + record.setSafeName(dictService.getDictNameByCode(DataConstants.DICT_SECRET_LEVEL_TYPE, record.getSafe() + "")); + SysUserGroupDTO dto = BeanUtil.copyProperties(record, SysUserGroupDTO.class); + sysUserGroupDTOS.add(dto); + //查询关联设备 + LambdaQueryWrapper deviceQuery = new LambdaQueryWrapper<>(); + deviceQuery.eq(SysGroupDevice::getGroupId, record.getId()); + List devices = sysGroupDeviceService.list(deviceQuery); + if (devices != null) { + List deviceList = devices.stream().map(SysGroupDevice::getDeviceId).collect(Collectors.toList()); + dto.setCameraIds(StrUtil.join(",", deviceList)); + dto.setCameraNum(deviceList.size()); + } + + //查询关联人员 + LambdaQueryWrapper personQuery = new LambdaQueryWrapper<>(); + personQuery.eq(SysGroupRelUser::getGroupId, record.getId()); + List persons = groupRelUserService.list(personQuery); + if (persons != null) { + List personIds = persons.stream().map(SysGroupRelUser::getUserId).collect(Collectors.toList()); + dto.setPersonIds(StrUtil.join(",", personIds)); + } + + } + Page pageRes = PageFactory.defaultPage(); + pageRes.setTotal(page.getTotal()); + pageRes.setRecords(sysUserGroupDTOS); + page.setRecords(sysUserGroups); + return pageRes; + } + @Transactional @Override public > E page(E page, Wrapper queryWrapper) { diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 890c069..151e5ee 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -22,10 +22,15 @@ artemis-http-client 1.1.3 + + + + + com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-group + ${admin.version} com.casic diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java index 371ec46..72af255 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java @@ -145,12 +145,7 @@ public ResponseDataDTO> listPage(BusDeviceInfoVO busDeviceInfoVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = busDeviceInfoVO.genQuery(); - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("dept_id", dataScope.getDeptIds()); - } + page = busDeviceInfoService.page(page, query); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java index 08b7023..d999043 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.controller; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,14 +11,17 @@ import com.casic.missiles.model.form.IdForms; import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.dto.IdDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; -import com.casic.missiles.modular.device.vo.DeviceGroupInfoVO; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -38,21 +42,11 @@ this.deviceGroupInfoService = deviceGroupInfoService; } - @ApiIgnore - @ApiOperation(value = "列表查询") - @GetMapping(value = "/list") - public ResponseDataDTO> list(DeviceGroupInfoVO deviceGroupInfoVO) { - QueryWrapper query = deviceGroupInfoVO.genQuery(); - return ResponseDataDTO.success(deviceGroupInfoService.list(query)); - } - @BussinessLog(value = "设备分组管理分页查询") @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") - public ResponseDataDTO> listPage(DeviceGroupInfoVO deviceGroupInfoVO) { - Page page = PageFactory.defaultPage(); - QueryWrapper query = deviceGroupInfoVO.genQuery(); - page = deviceGroupInfoService.page(page, query); + public ResponseDataDTO> listPage(SysUserGroupVO deviceGroupInfoVO) { + Page page = deviceGroupInfoService.userGroupPage(deviceGroupInfoVO); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java index 65edf87..cee5800 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java @@ -41,12 +41,12 @@ private final IBusDeviceInfoService busDeviceInfoService; private final IDeviceOnlineLogService onlineLogService; - private final AbstractPermissionContext abstractPermissionContext; - public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService, AbstractPermissionContext abstractPermissionContext) { + + public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService) { this.busDeviceInfoService = busDeviceInfoService; this.onlineLogService = onlineLogService; - this.abstractPermissionContext = abstractPermissionContext; + } @BussinessLog(value = "数据统计概况统计") @@ -97,14 +97,6 @@ endTimeDate = new Date(); } - //按日期求和 - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("b.dept_id", dataScope.getDeptIds()); - } - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("b.secret_level",user.getSecretLevel()); - List dtos = onlineLogService.selectDeviceLog(query); Map map = new HashMap<>(); if(CollectionUtil.isNotEmpty(dtos)){ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java index 887171c..4f683ef 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java @@ -24,5 +24,5 @@ */ List selectBusDeviceInfoPage(@Param("page") Page page, @Param("ew") QueryWrapper query); - List searchStatusByArea(); + List searchStatusByArea(@Param("ew") QueryWrapper query); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml index 0eedcbd..5e198d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml @@ -112,8 +112,12 @@ sum(case when device_status = 1 then 1 ELSE 0 end ) as onlineNum, sum(case when device_status = 0 then 1 ELSE 0 end ) as offlineNum, sum(1) as total - FROM - bus_device_info + FROM bus_device_info + + + ${ew.sqlSegment} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java index 3e0994e..72b4919 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java @@ -55,6 +55,9 @@ @ApiModelProperty(value = "分组相机id,用逗号隔开", dataType = "String") @TableField("camera_ids") private String cameraIds; + @ApiModelProperty(value = "用户id,用逗号隔开", dataType = "String") + @TableField(exist = false) + private String personIds; @ApiModelProperty(value = "相机url集合", dataType = "String") @TableField(exist = false) private List cameras; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java index 02c64c9..fd65c83 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java @@ -3,7 +3,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import java.util.List; @@ -21,4 +24,6 @@ * 设备分组管理 分页检索 */ List selectDeviceGroupInfoPage(Page page, QueryWrapper query); + + Page userGroupPage(SysUserGroupVO deviceGroupInfoVO); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java index 2a4a9fc..fd6bce8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java @@ -35,6 +35,7 @@ import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.service.IAreaService; import com.casic.missiles.modular.video.dto.DeviceDTO; +import org.apache.ibatis.annotations.Param; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -69,7 +70,36 @@ this.hikService = hikService; } + @Override + public > E page(E page) { + return super.page(page); + } + @Override + public > E page(E page, Wrapper query) { + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + QueryWrapper pageQuery = query((QueryWrapper) query, "id", user.getId()); + pageQuery.le("secret_level", user.getSecretLevel()); + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + pageQuery.in("dept_id", dataScope.getDeptIds()); + } + + IPage infoIPage = super.page(page, pageQuery); + infoIPage.getRecords().forEach(this::wrapInfo); + return (E) infoIPage; + } + + private QueryWrapper query(QueryWrapper query, String column, Long userId) { + return query.inSql(column, "SELECT\n" + + "device_id\n" + + "FROM\n" + + "\tsys_user_group a\n" + + "\tINNER JOIN sys_group_rel_user b ON a.id = b.group_id\n" + + "\tINNER JOIN sys_group_device c on a.id = c.group_id\n" + + "\tWHERE b.user_id = " + userId + "\n" + + "\tGROUP BY c.device_id"); + } @Override public List selectBusDeviceInfoPage(Page page, QueryWrapper query) { @@ -78,7 +108,9 @@ @Override public List list(Wrapper queryWrapper) { - List busDeviceInfos = super.list(queryWrapper); + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + QueryWrapper pageQuery = query((QueryWrapper) queryWrapper, "id", user.getId()); + List busDeviceInfos = super.list(pageQuery); busDeviceInfos.forEach(this::wrapInfo); return busDeviceInfos; } @@ -92,13 +124,6 @@ return busDeviceInfo; } - @Override - public > E page(E page, Wrapper queryWrapper) { - IPage infoIPage = super.page(page, queryWrapper); - infoIPage.getRecords().forEach(this::wrapInfo); - return (E) infoIPage; - } - private void wrapInfo(BusDeviceInfo busDeviceInfo) { Area area = areaService.getById(busDeviceInfo.getArea()); if (area != null) { @@ -114,19 +139,19 @@ @Override public TotalDataDTO total(QueryWrapper query) { AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); + query.le("secret_level", user.getSecretLevel()); DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); //根据数据权限读取组织下用户信息 if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { query.in("dept_id", dataScope.getDeptIds()); } - query.select("count(1) as totalNum", "sum(case device_status when 1 then 1 else 0 end ) as onLineNum"); - + query.select("count(1) as TOTALNUM", "sum(case device_status when 1 then 1 else 0 end ) as ONLINENUM"); + query(query,"id",user.getId()); List> maps = this.baseMapper.selectMaps(query); TotalDataDTO dataDTO = new TotalDataDTO(); maps.forEach(map -> { - dataDTO.setDevTotal(Convert.toInt(map.getOrDefault("totalNum", 0))); - dataDTO.setOnlineNum(Convert.toInt(map.getOrDefault("onLineNum", 0))); + dataDTO.setDevTotal(Convert.toInt(map.getOrDefault("TOTALNUM", 0))); + dataDTO.setOnlineNum(Convert.toInt(map.getOrDefault("ONLINENUM", 0))); if (dataDTO.getDevTotal() == 0) { dataDTO.setOnlineRate(0D); } else { @@ -143,8 +168,8 @@ List> maps = getAreaData(query); Map areaMap = maps.stream().map(map -> { AreaDataDTO areaDataDTO = new AreaDataDTO(); - areaDataDTO.setValue(Convert.toInt(map.getOrDefault("totalNum", 0))); - areaDataDTO.setCode(Convert.toStr(map.get("area"))); + areaDataDTO.setValue(Convert.toInt(map.getOrDefault("TOTALNUM", 0))); + areaDataDTO.setCode(Convert.toStr(map.get("AREA"))); return areaDataDTO; }).collect(Collectors.toMap(AreaDataDTO::getCode, AreaDataDTO::getValue)); return areaMapToList(DataConstants.DICT_AREA, areaMap); @@ -156,8 +181,8 @@ List> maps = getAreaData(query); Map areaMap = maps.stream().map(map -> { AreaDataDTO areaDataDTO = new AreaDataDTO(); - areaDataDTO.setValue(Convert.toInt(map.getOrDefault("onLineNum", 0))); - areaDataDTO.setCode(Convert.toStr(map.get("area"))); + areaDataDTO.setValue(Convert.toInt(map.getOrDefault("ONLINENUM", 0))); + areaDataDTO.setCode(Convert.toStr(map.get("AREA"))); return areaDataDTO; }).collect(Collectors.toMap(AreaDataDTO::getCode, AreaDataDTO::getValue)); return areaMapToList(DataConstants.DICT_AREA, areaMap); @@ -189,10 +214,10 @@ normalIds.add(dept.getId()); //挂载设备信息 - LambdaQueryWrapper deviceQuery = new LambdaQueryWrapper<>(); - deviceQuery.eq(BusDeviceInfo::getDeptId, deptDTO.getId()); + QueryWrapper deviceQuery = new QueryWrapper<>(); + deviceQuery.eq("dept_id", deptDTO.getId()); //判定只可查看以下密级 - deviceQuery.le(BusDeviceInfo::getSecretLevel,user.getSecretLevel()); + deviceQuery.le("secret_level", user.getSecretLevel()); List deviceInfos = this.list(deviceQuery); deptDTO.setChildrenNodes(deviceInfos.stream().map(this::createDeptDTO).collect(Collectors.toList())); } @@ -251,7 +276,7 @@ } if (StrUtil.isEmpty(result.getCameraIndexCode())) { - errors.add("第" + index + "行设备编号不能为空!"); + errors.add("第" + index + "行设备国标号不能为空!"); } importDTOS.add(result); index++; @@ -323,7 +348,17 @@ @Override public List searchStatusByArea() { - return this.baseMapper.searchStatusByArea(); + QueryWrapper query = new QueryWrapper<>(); + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + //根据数据权限读取组织下用户信息 + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + query.in("dept_id", dataScope.getDeptIds()); + } + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + query.le("secret_level", user.getSecretLevel()); + query(query,"id",user.getId()); + + return this.baseMapper.searchStatusByArea(query); } /** @@ -349,10 +384,12 @@ if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { query.in("dept_id", dataScope.getDeptIds()); } + query.select("AREA", "count(1) as TOTALNUM", "sum(case device_status when 1 then 1 else 0 end) as ONLINENUM"); AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - query.select("area", "count(1) as totalNum", "sum(case device_status when 1 then 1 else 0 end) as onLineNum"); - query.groupBy("area"); + query.le("secret_level", user.getSecretLevel()); + query(query,"id",user.getId()); + + query.groupBy("AREA"); List> maps = this.baseMapper.selectMaps(query); return maps; } @@ -376,6 +413,7 @@ /** * 设备接口实现 + * * @param id 设备主键 * @return */ @@ -386,7 +424,6 @@ } /** - * * @param deviceId 设备ID * @return */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java index 69710d6..9ce8fbd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java @@ -1,25 +1,42 @@ package com.casic.missiles.modular.device.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.modular.data.constants.DataConstants; import com.casic.missiles.modular.device.dao.DeviceGroupInfoMapper; import com.casic.missiles.modular.device.dto.CameraDTO; +import com.casic.missiles.modular.device.dto.GroupRelDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.BusDeviceInfo; import com.casic.missiles.modular.device.model.DeviceGroupInfo; +import com.casic.missiles.modular.device.model.SysGroupDevice; import com.casic.missiles.modular.device.service.IBusDeviceInfoService; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysGroupRelUser; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.service.ISysGroupRelUserService; +import com.casic.missiles.modular.system.service.ISysUserGroupService; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.Serializable; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** @@ -34,10 +51,18 @@ public class DeviceGroupInfoServiceImpl extends ServiceImpl implements IDeviceGroupInfoService { private final AbstractDictService dictService; private final IBusDeviceInfoService deviceInfoService; + private final ISysUserGroupService groupService; + private final AbstractPermissionContext permissionContext; + private final ISysGroupDeviceService sysGroupDeviceService; + private final ISysGroupRelUserService groupRelUserService; - public DeviceGroupInfoServiceImpl(AbstractDictService dictService, IBusDeviceInfoService deviceInfoService) { + public DeviceGroupInfoServiceImpl(AbstractDictService dictService, IBusDeviceInfoService deviceInfoService, ISysUserGroupService groupService, AbstractPermissionContext permissionContext, ISysGroupDeviceService sysGroupDeviceService, ISysGroupRelUserService groupRelUserService) { this.dictService = dictService; this.deviceInfoService = deviceInfoService; + this.groupService = groupService; + this.permissionContext = permissionContext; + this.sysGroupDeviceService = sysGroupDeviceService; + this.groupRelUserService = groupRelUserService; } @Override @@ -45,6 +70,88 @@ return this.baseMapper.selectDeviceGroupInfoPage(page, query); } + @Override + public boolean updateById(DeviceGroupInfo entity) { + AuthUser user = permissionContext.getAuthService().getLoginUser(); + SysUserGroup sysUserGroup = BeanUtil.copyProperties(entity,SysUserGroup.class); + sysUserGroup.setCreateId(user.getId()); + sysUserGroup.setDeptId(user.getDeptId()); + batchSave(entity,sysUserGroup.getId()); + return groupService.updateById(sysUserGroup); + } + private void batchSave(DeviceGroupInfo entity,Long groupId){ + GroupRelDTO groupRelDTO = new GroupRelDTO(); + groupRelDTO.setGroupId(groupId); + if(StrUtil.isNotEmpty(entity.getCameraIds())){ + long[] longs = StrUtil.splitToLong(entity.getCameraIds(),","); + List devices = new ArrayList<>(); + for (long aLong : longs) { + devices.add(aLong); + } + groupRelDTO.setDeviceIds(devices); + } + if(StrUtil.isNotEmpty(entity.getPersonIds())){ + long[] longs = StrUtil.splitToLong(entity.getPersonIds(),","); + List persons = new ArrayList<>(); + for (long aLong : longs) { + persons.add(aLong); + } + groupRelDTO.setUserIds(persons); + } + sysGroupDeviceService.batchAdd(groupRelDTO); + } + @Transactional + @Override + public boolean save(DeviceGroupInfo entity) { + AuthUser user = permissionContext.getAuthService().getLoginUser(); + SysUserGroup sysUserGroup = BeanUtil.copyProperties(entity,SysUserGroup.class); + sysUserGroup.setCreateId(user.getId()); + sysUserGroup.setDeptId(user.getDeptId()); + groupService.save(sysUserGroup); + batchSave(entity,sysUserGroup.getId()); + return true; + } + + @Transactional + @Override + public Page userGroupPage(SysUserGroupVO deviceGroupInfoVO) { + + Page page = PageFactory.defaultPage(); + QueryWrapper query = deviceGroupInfoVO.genQuery(); + List sysUserGroups = groupService.selectSysUserGroupPage(page, query); + + List sysUserGroupDTOS = new ArrayList<>(); + for (SysUserGroup record : sysUserGroups) { + record.setSafeName(dictService.getDictNameByCode(DataConstants.DICT_SECRET_LEVEL_TYPE, record.getSafe() + "")); + SysUserGroupDTO dto = BeanUtil.copyProperties(record, SysUserGroupDTO.class); + sysUserGroupDTOS.add(dto); + //查询关联设备 + LambdaQueryWrapper deviceQuery = new LambdaQueryWrapper<>(); + deviceQuery.eq(SysGroupDevice::getGroupId, record.getId()); + List devices = sysGroupDeviceService.list(deviceQuery); + if (devices != null) { + List deviceList = devices.stream().map(SysGroupDevice::getDeviceId).collect(Collectors.toList()); + dto.setCameraIds(StrUtil.join(",", deviceList)); + dto.setCameraNum(deviceList.size()); + } + + //查询关联人员 + LambdaQueryWrapper personQuery = new LambdaQueryWrapper<>(); + personQuery.eq(SysGroupRelUser::getGroupId, record.getId()); + List persons = groupRelUserService.list(personQuery); + if (persons != null) { + List personIds = persons.stream().map(SysGroupRelUser::getUserId).collect(Collectors.toList()); + dto.setPersonIds(StrUtil.join(",", personIds)); + } + + } + Page pageRes = PageFactory.defaultPage(); + pageRes.setTotal(page.getTotal()); + pageRes.setRecords(sysUserGroupDTOS); + page.setRecords(sysUserGroups); + return pageRes; + } + @Transactional @Override public > E page(E page, Wrapper queryWrapper) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java index e12c638..496ef2e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java @@ -3,7 +3,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dao.DeviceOnlineLogMapper; +import com.casic.missiles.modular.device.model.BusDeviceInfo; import com.casic.missiles.modular.device.model.DeviceOnlineLog; import com.casic.missiles.modular.device.service.IDeviceOnlineLogService; import org.springframework.stereotype.Service; @@ -21,6 +26,12 @@ */ @Service public class DeviceOnlineLogServiceImpl extends ServiceImpl implements IDeviceOnlineLogService { + private final AbstractPermissionContext abstractPermissionContext; + + public DeviceOnlineLogServiceImpl(AbstractPermissionContext abstractPermissionContext) { + this.abstractPermissionContext = abstractPermissionContext; + } + @Override public List selectDeviceOnlineLogPage(Page page, QueryWrapper query) { return this.baseMapper.selectDeviceOnlineLogPage(page, query); @@ -28,6 +39,27 @@ @Override public List selectDeviceLog(QueryWrapper query) { + + //按日期求和 + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + query.in("b.dept_id", dataScope.getDeptIds()); + } + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + query.le("b.secret_level",user.getSecretLevel()); + + query(query,"b.id",user.getId()); return this.baseMapper.selectDeviceLog(query); } + + private QueryWrapper query(QueryWrapper query, String column, Long userId) { + return query.inSql(column, "SELECT\n" + + "device_id\n" + + "FROM\n" + + "\tsys_user_group a\n" + + "\tINNER JOIN sys_group_rel_user b ON a.id = b.group_id\n" + + "\tINNER JOIN sys_group_device c on a.id = c.group_id\n" + + "\tWHERE b.user_id = " + userId + "\n" + + "\tGROUP BY c.device_id"); + } } \ No newline at end of file diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 890c069..151e5ee 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -22,10 +22,15 @@ artemis-http-client 1.1.3 + + + + + com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-group + ${admin.version} com.casic diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java index 371ec46..72af255 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java @@ -145,12 +145,7 @@ public ResponseDataDTO> listPage(BusDeviceInfoVO busDeviceInfoVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = busDeviceInfoVO.genQuery(); - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("dept_id", dataScope.getDeptIds()); - } + page = busDeviceInfoService.page(page, query); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java index 08b7023..d999043 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.controller; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,14 +11,17 @@ import com.casic.missiles.model.form.IdForms; import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.dto.IdDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; -import com.casic.missiles.modular.device.vo.DeviceGroupInfoVO; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -38,21 +42,11 @@ this.deviceGroupInfoService = deviceGroupInfoService; } - @ApiIgnore - @ApiOperation(value = "列表查询") - @GetMapping(value = "/list") - public ResponseDataDTO> list(DeviceGroupInfoVO deviceGroupInfoVO) { - QueryWrapper query = deviceGroupInfoVO.genQuery(); - return ResponseDataDTO.success(deviceGroupInfoService.list(query)); - } - @BussinessLog(value = "设备分组管理分页查询") @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") - public ResponseDataDTO> listPage(DeviceGroupInfoVO deviceGroupInfoVO) { - Page page = PageFactory.defaultPage(); - QueryWrapper query = deviceGroupInfoVO.genQuery(); - page = deviceGroupInfoService.page(page, query); + public ResponseDataDTO> listPage(SysUserGroupVO deviceGroupInfoVO) { + Page page = deviceGroupInfoService.userGroupPage(deviceGroupInfoVO); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java index 65edf87..cee5800 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java @@ -41,12 +41,12 @@ private final IBusDeviceInfoService busDeviceInfoService; private final IDeviceOnlineLogService onlineLogService; - private final AbstractPermissionContext abstractPermissionContext; - public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService, AbstractPermissionContext abstractPermissionContext) { + + public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService) { this.busDeviceInfoService = busDeviceInfoService; this.onlineLogService = onlineLogService; - this.abstractPermissionContext = abstractPermissionContext; + } @BussinessLog(value = "数据统计概况统计") @@ -97,14 +97,6 @@ endTimeDate = new Date(); } - //按日期求和 - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("b.dept_id", dataScope.getDeptIds()); - } - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("b.secret_level",user.getSecretLevel()); - List dtos = onlineLogService.selectDeviceLog(query); Map map = new HashMap<>(); if(CollectionUtil.isNotEmpty(dtos)){ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java index 887171c..4f683ef 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java @@ -24,5 +24,5 @@ */ List selectBusDeviceInfoPage(@Param("page") Page page, @Param("ew") QueryWrapper query); - List searchStatusByArea(); + List searchStatusByArea(@Param("ew") QueryWrapper query); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml index 0eedcbd..5e198d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml @@ -112,8 +112,12 @@ sum(case when device_status = 1 then 1 ELSE 0 end ) as onlineNum, sum(case when device_status = 0 then 1 ELSE 0 end ) as offlineNum, sum(1) as total - FROM - bus_device_info + FROM bus_device_info + + + ${ew.sqlSegment} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java index 3e0994e..72b4919 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java @@ -55,6 +55,9 @@ @ApiModelProperty(value = "分组相机id,用逗号隔开", dataType = "String") @TableField("camera_ids") private String cameraIds; + @ApiModelProperty(value = "用户id,用逗号隔开", dataType = "String") + @TableField(exist = false) + private String personIds; @ApiModelProperty(value = "相机url集合", dataType = "String") @TableField(exist = false) private List cameras; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java index 02c64c9..fd65c83 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java @@ -3,7 +3,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import java.util.List; @@ -21,4 +24,6 @@ * 设备分组管理 分页检索 */ List selectDeviceGroupInfoPage(Page page, QueryWrapper query); + + Page userGroupPage(SysUserGroupVO deviceGroupInfoVO); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java index 2a4a9fc..fd6bce8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java @@ -35,6 +35,7 @@ import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.service.IAreaService; import com.casic.missiles.modular.video.dto.DeviceDTO; +import org.apache.ibatis.annotations.Param; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -69,7 +70,36 @@ this.hikService = hikService; } + @Override + public > E page(E page) { + return super.page(page); + } + @Override + public > E page(E page, Wrapper query) { + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + QueryWrapper pageQuery = query((QueryWrapper) query, "id", user.getId()); + pageQuery.le("secret_level", user.getSecretLevel()); + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + pageQuery.in("dept_id", dataScope.getDeptIds()); + } + + IPage infoIPage = super.page(page, pageQuery); + infoIPage.getRecords().forEach(this::wrapInfo); + return (E) infoIPage; + } + + private QueryWrapper query(QueryWrapper query, String column, Long userId) { + return query.inSql(column, "SELECT\n" + + "device_id\n" + + "FROM\n" + + "\tsys_user_group a\n" + + "\tINNER JOIN sys_group_rel_user b ON a.id = b.group_id\n" + + "\tINNER JOIN sys_group_device c on a.id = c.group_id\n" + + "\tWHERE b.user_id = " + userId + "\n" + + "\tGROUP BY c.device_id"); + } @Override public List selectBusDeviceInfoPage(Page page, QueryWrapper query) { @@ -78,7 +108,9 @@ @Override public List list(Wrapper queryWrapper) { - List busDeviceInfos = super.list(queryWrapper); + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + QueryWrapper pageQuery = query((QueryWrapper) queryWrapper, "id", user.getId()); + List busDeviceInfos = super.list(pageQuery); busDeviceInfos.forEach(this::wrapInfo); return busDeviceInfos; } @@ -92,13 +124,6 @@ return busDeviceInfo; } - @Override - public > E page(E page, Wrapper queryWrapper) { - IPage infoIPage = super.page(page, queryWrapper); - infoIPage.getRecords().forEach(this::wrapInfo); - return (E) infoIPage; - } - private void wrapInfo(BusDeviceInfo busDeviceInfo) { Area area = areaService.getById(busDeviceInfo.getArea()); if (area != null) { @@ -114,19 +139,19 @@ @Override public TotalDataDTO total(QueryWrapper query) { AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); + query.le("secret_level", user.getSecretLevel()); DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); //根据数据权限读取组织下用户信息 if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { query.in("dept_id", dataScope.getDeptIds()); } - query.select("count(1) as totalNum", "sum(case device_status when 1 then 1 else 0 end ) as onLineNum"); - + query.select("count(1) as TOTALNUM", "sum(case device_status when 1 then 1 else 0 end ) as ONLINENUM"); + query(query,"id",user.getId()); List> maps = this.baseMapper.selectMaps(query); TotalDataDTO dataDTO = new TotalDataDTO(); maps.forEach(map -> { - dataDTO.setDevTotal(Convert.toInt(map.getOrDefault("totalNum", 0))); - dataDTO.setOnlineNum(Convert.toInt(map.getOrDefault("onLineNum", 0))); + dataDTO.setDevTotal(Convert.toInt(map.getOrDefault("TOTALNUM", 0))); + dataDTO.setOnlineNum(Convert.toInt(map.getOrDefault("ONLINENUM", 0))); if (dataDTO.getDevTotal() == 0) { dataDTO.setOnlineRate(0D); } else { @@ -143,8 +168,8 @@ List> maps = getAreaData(query); Map areaMap = maps.stream().map(map -> { AreaDataDTO areaDataDTO = new AreaDataDTO(); - areaDataDTO.setValue(Convert.toInt(map.getOrDefault("totalNum", 0))); - areaDataDTO.setCode(Convert.toStr(map.get("area"))); + areaDataDTO.setValue(Convert.toInt(map.getOrDefault("TOTALNUM", 0))); + areaDataDTO.setCode(Convert.toStr(map.get("AREA"))); return areaDataDTO; }).collect(Collectors.toMap(AreaDataDTO::getCode, AreaDataDTO::getValue)); return areaMapToList(DataConstants.DICT_AREA, areaMap); @@ -156,8 +181,8 @@ List> maps = getAreaData(query); Map areaMap = maps.stream().map(map -> { AreaDataDTO areaDataDTO = new AreaDataDTO(); - areaDataDTO.setValue(Convert.toInt(map.getOrDefault("onLineNum", 0))); - areaDataDTO.setCode(Convert.toStr(map.get("area"))); + areaDataDTO.setValue(Convert.toInt(map.getOrDefault("ONLINENUM", 0))); + areaDataDTO.setCode(Convert.toStr(map.get("AREA"))); return areaDataDTO; }).collect(Collectors.toMap(AreaDataDTO::getCode, AreaDataDTO::getValue)); return areaMapToList(DataConstants.DICT_AREA, areaMap); @@ -189,10 +214,10 @@ normalIds.add(dept.getId()); //挂载设备信息 - LambdaQueryWrapper deviceQuery = new LambdaQueryWrapper<>(); - deviceQuery.eq(BusDeviceInfo::getDeptId, deptDTO.getId()); + QueryWrapper deviceQuery = new QueryWrapper<>(); + deviceQuery.eq("dept_id", deptDTO.getId()); //判定只可查看以下密级 - deviceQuery.le(BusDeviceInfo::getSecretLevel,user.getSecretLevel()); + deviceQuery.le("secret_level", user.getSecretLevel()); List deviceInfos = this.list(deviceQuery); deptDTO.setChildrenNodes(deviceInfos.stream().map(this::createDeptDTO).collect(Collectors.toList())); } @@ -251,7 +276,7 @@ } if (StrUtil.isEmpty(result.getCameraIndexCode())) { - errors.add("第" + index + "行设备编号不能为空!"); + errors.add("第" + index + "行设备国标号不能为空!"); } importDTOS.add(result); index++; @@ -323,7 +348,17 @@ @Override public List searchStatusByArea() { - return this.baseMapper.searchStatusByArea(); + QueryWrapper query = new QueryWrapper<>(); + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + //根据数据权限读取组织下用户信息 + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + query.in("dept_id", dataScope.getDeptIds()); + } + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + query.le("secret_level", user.getSecretLevel()); + query(query,"id",user.getId()); + + return this.baseMapper.searchStatusByArea(query); } /** @@ -349,10 +384,12 @@ if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { query.in("dept_id", dataScope.getDeptIds()); } + query.select("AREA", "count(1) as TOTALNUM", "sum(case device_status when 1 then 1 else 0 end) as ONLINENUM"); AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - query.select("area", "count(1) as totalNum", "sum(case device_status when 1 then 1 else 0 end) as onLineNum"); - query.groupBy("area"); + query.le("secret_level", user.getSecretLevel()); + query(query,"id",user.getId()); + + query.groupBy("AREA"); List> maps = this.baseMapper.selectMaps(query); return maps; } @@ -376,6 +413,7 @@ /** * 设备接口实现 + * * @param id 设备主键 * @return */ @@ -386,7 +424,6 @@ } /** - * * @param deviceId 设备ID * @return */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java index 69710d6..9ce8fbd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java @@ -1,25 +1,42 @@ package com.casic.missiles.modular.device.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.modular.data.constants.DataConstants; import com.casic.missiles.modular.device.dao.DeviceGroupInfoMapper; import com.casic.missiles.modular.device.dto.CameraDTO; +import com.casic.missiles.modular.device.dto.GroupRelDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.BusDeviceInfo; import com.casic.missiles.modular.device.model.DeviceGroupInfo; +import com.casic.missiles.modular.device.model.SysGroupDevice; import com.casic.missiles.modular.device.service.IBusDeviceInfoService; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysGroupRelUser; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.service.ISysGroupRelUserService; +import com.casic.missiles.modular.system.service.ISysUserGroupService; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.Serializable; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** @@ -34,10 +51,18 @@ public class DeviceGroupInfoServiceImpl extends ServiceImpl implements IDeviceGroupInfoService { private final AbstractDictService dictService; private final IBusDeviceInfoService deviceInfoService; + private final ISysUserGroupService groupService; + private final AbstractPermissionContext permissionContext; + private final ISysGroupDeviceService sysGroupDeviceService; + private final ISysGroupRelUserService groupRelUserService; - public DeviceGroupInfoServiceImpl(AbstractDictService dictService, IBusDeviceInfoService deviceInfoService) { + public DeviceGroupInfoServiceImpl(AbstractDictService dictService, IBusDeviceInfoService deviceInfoService, ISysUserGroupService groupService, AbstractPermissionContext permissionContext, ISysGroupDeviceService sysGroupDeviceService, ISysGroupRelUserService groupRelUserService) { this.dictService = dictService; this.deviceInfoService = deviceInfoService; + this.groupService = groupService; + this.permissionContext = permissionContext; + this.sysGroupDeviceService = sysGroupDeviceService; + this.groupRelUserService = groupRelUserService; } @Override @@ -45,6 +70,88 @@ return this.baseMapper.selectDeviceGroupInfoPage(page, query); } + @Override + public boolean updateById(DeviceGroupInfo entity) { + AuthUser user = permissionContext.getAuthService().getLoginUser(); + SysUserGroup sysUserGroup = BeanUtil.copyProperties(entity,SysUserGroup.class); + sysUserGroup.setCreateId(user.getId()); + sysUserGroup.setDeptId(user.getDeptId()); + batchSave(entity,sysUserGroup.getId()); + return groupService.updateById(sysUserGroup); + } + private void batchSave(DeviceGroupInfo entity,Long groupId){ + GroupRelDTO groupRelDTO = new GroupRelDTO(); + groupRelDTO.setGroupId(groupId); + if(StrUtil.isNotEmpty(entity.getCameraIds())){ + long[] longs = StrUtil.splitToLong(entity.getCameraIds(),","); + List devices = new ArrayList<>(); + for (long aLong : longs) { + devices.add(aLong); + } + groupRelDTO.setDeviceIds(devices); + } + if(StrUtil.isNotEmpty(entity.getPersonIds())){ + long[] longs = StrUtil.splitToLong(entity.getPersonIds(),","); + List persons = new ArrayList<>(); + for (long aLong : longs) { + persons.add(aLong); + } + groupRelDTO.setUserIds(persons); + } + sysGroupDeviceService.batchAdd(groupRelDTO); + } + @Transactional + @Override + public boolean save(DeviceGroupInfo entity) { + AuthUser user = permissionContext.getAuthService().getLoginUser(); + SysUserGroup sysUserGroup = BeanUtil.copyProperties(entity,SysUserGroup.class); + sysUserGroup.setCreateId(user.getId()); + sysUserGroup.setDeptId(user.getDeptId()); + groupService.save(sysUserGroup); + batchSave(entity,sysUserGroup.getId()); + return true; + } + + @Transactional + @Override + public Page userGroupPage(SysUserGroupVO deviceGroupInfoVO) { + + Page page = PageFactory.defaultPage(); + QueryWrapper query = deviceGroupInfoVO.genQuery(); + List sysUserGroups = groupService.selectSysUserGroupPage(page, query); + + List sysUserGroupDTOS = new ArrayList<>(); + for (SysUserGroup record : sysUserGroups) { + record.setSafeName(dictService.getDictNameByCode(DataConstants.DICT_SECRET_LEVEL_TYPE, record.getSafe() + "")); + SysUserGroupDTO dto = BeanUtil.copyProperties(record, SysUserGroupDTO.class); + sysUserGroupDTOS.add(dto); + //查询关联设备 + LambdaQueryWrapper deviceQuery = new LambdaQueryWrapper<>(); + deviceQuery.eq(SysGroupDevice::getGroupId, record.getId()); + List devices = sysGroupDeviceService.list(deviceQuery); + if (devices != null) { + List deviceList = devices.stream().map(SysGroupDevice::getDeviceId).collect(Collectors.toList()); + dto.setCameraIds(StrUtil.join(",", deviceList)); + dto.setCameraNum(deviceList.size()); + } + + //查询关联人员 + LambdaQueryWrapper personQuery = new LambdaQueryWrapper<>(); + personQuery.eq(SysGroupRelUser::getGroupId, record.getId()); + List persons = groupRelUserService.list(personQuery); + if (persons != null) { + List personIds = persons.stream().map(SysGroupRelUser::getUserId).collect(Collectors.toList()); + dto.setPersonIds(StrUtil.join(",", personIds)); + } + + } + Page pageRes = PageFactory.defaultPage(); + pageRes.setTotal(page.getTotal()); + pageRes.setRecords(sysUserGroupDTOS); + page.setRecords(sysUserGroups); + return pageRes; + } + @Transactional @Override public > E page(E page, Wrapper queryWrapper) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java index e12c638..496ef2e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java @@ -3,7 +3,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dao.DeviceOnlineLogMapper; +import com.casic.missiles.modular.device.model.BusDeviceInfo; import com.casic.missiles.modular.device.model.DeviceOnlineLog; import com.casic.missiles.modular.device.service.IDeviceOnlineLogService; import org.springframework.stereotype.Service; @@ -21,6 +26,12 @@ */ @Service public class DeviceOnlineLogServiceImpl extends ServiceImpl implements IDeviceOnlineLogService { + private final AbstractPermissionContext abstractPermissionContext; + + public DeviceOnlineLogServiceImpl(AbstractPermissionContext abstractPermissionContext) { + this.abstractPermissionContext = abstractPermissionContext; + } + @Override public List selectDeviceOnlineLogPage(Page page, QueryWrapper query) { return this.baseMapper.selectDeviceOnlineLogPage(page, query); @@ -28,6 +39,27 @@ @Override public List selectDeviceLog(QueryWrapper query) { + + //按日期求和 + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + query.in("b.dept_id", dataScope.getDeptIds()); + } + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + query.le("b.secret_level",user.getSecretLevel()); + + query(query,"b.id",user.getId()); return this.baseMapper.selectDeviceLog(query); } + + private QueryWrapper query(QueryWrapper query, String column, Long userId) { + return query.inSql(column, "SELECT\n" + + "device_id\n" + + "FROM\n" + + "\tsys_user_group a\n" + + "\tINNER JOIN sys_group_rel_user b ON a.id = b.group_id\n" + + "\tINNER JOIN sys_group_device c on a.id = c.group_id\n" + + "\tWHERE b.user_id = " + userId + "\n" + + "\tGROUP BY c.device_id"); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java index 8333f16..c40eb6e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java @@ -17,6 +17,8 @@ import com.casic.missiles.modular.wvp.dto.device.WvpChannelDTO; import com.casic.missiles.modular.wvp.dto.device.WvpDeviceDTO; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -44,7 +46,8 @@ private String dhType; @Resource private IBusDeviceInfoService deviceInfoService; - @Resource(name = "dhSdkService") + @Qualifier("dhSdkService") + @Autowired(required = false) private IVideoSdkService sdkService; @Transactional @@ -92,7 +95,7 @@ //读取设备信息 List list = deviceInfoService.list(); List newList = list.stream().filter(info -> dhType.contains(info.getNvrManufacture())).distinct().collect(Collectors.toList()); - + if(sdkService!=null){ Set set = new HashSet<>(); List channelDTOS = new ArrayList<>(); for (BusDeviceInfo busDeviceInfo : newList) { @@ -125,6 +128,7 @@ } } } + } } @Resource diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 890c069..151e5ee 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -22,10 +22,15 @@ artemis-http-client 1.1.3 + + + + + com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-group + ${admin.version} com.casic diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java index 371ec46..72af255 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java @@ -145,12 +145,7 @@ public ResponseDataDTO> listPage(BusDeviceInfoVO busDeviceInfoVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = busDeviceInfoVO.genQuery(); - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("dept_id", dataScope.getDeptIds()); - } + page = busDeviceInfoService.page(page, query); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java index 08b7023..d999043 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.controller; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,14 +11,17 @@ import com.casic.missiles.model.form.IdForms; import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.dto.IdDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; -import com.casic.missiles.modular.device.vo.DeviceGroupInfoVO; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -38,21 +42,11 @@ this.deviceGroupInfoService = deviceGroupInfoService; } - @ApiIgnore - @ApiOperation(value = "列表查询") - @GetMapping(value = "/list") - public ResponseDataDTO> list(DeviceGroupInfoVO deviceGroupInfoVO) { - QueryWrapper query = deviceGroupInfoVO.genQuery(); - return ResponseDataDTO.success(deviceGroupInfoService.list(query)); - } - @BussinessLog(value = "设备分组管理分页查询") @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") - public ResponseDataDTO> listPage(DeviceGroupInfoVO deviceGroupInfoVO) { - Page page = PageFactory.defaultPage(); - QueryWrapper query = deviceGroupInfoVO.genQuery(); - page = deviceGroupInfoService.page(page, query); + public ResponseDataDTO> listPage(SysUserGroupVO deviceGroupInfoVO) { + Page page = deviceGroupInfoService.userGroupPage(deviceGroupInfoVO); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java index 65edf87..cee5800 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java @@ -41,12 +41,12 @@ private final IBusDeviceInfoService busDeviceInfoService; private final IDeviceOnlineLogService onlineLogService; - private final AbstractPermissionContext abstractPermissionContext; - public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService, AbstractPermissionContext abstractPermissionContext) { + + public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService) { this.busDeviceInfoService = busDeviceInfoService; this.onlineLogService = onlineLogService; - this.abstractPermissionContext = abstractPermissionContext; + } @BussinessLog(value = "数据统计概况统计") @@ -97,14 +97,6 @@ endTimeDate = new Date(); } - //按日期求和 - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("b.dept_id", dataScope.getDeptIds()); - } - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("b.secret_level",user.getSecretLevel()); - List dtos = onlineLogService.selectDeviceLog(query); Map map = new HashMap<>(); if(CollectionUtil.isNotEmpty(dtos)){ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java index 887171c..4f683ef 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java @@ -24,5 +24,5 @@ */ List selectBusDeviceInfoPage(@Param("page") Page page, @Param("ew") QueryWrapper query); - List searchStatusByArea(); + List searchStatusByArea(@Param("ew") QueryWrapper query); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml index 0eedcbd..5e198d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml @@ -112,8 +112,12 @@ sum(case when device_status = 1 then 1 ELSE 0 end ) as onlineNum, sum(case when device_status = 0 then 1 ELSE 0 end ) as offlineNum, sum(1) as total - FROM - bus_device_info + FROM bus_device_info + + + ${ew.sqlSegment} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java index 3e0994e..72b4919 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java @@ -55,6 +55,9 @@ @ApiModelProperty(value = "分组相机id,用逗号隔开", dataType = "String") @TableField("camera_ids") private String cameraIds; + @ApiModelProperty(value = "用户id,用逗号隔开", dataType = "String") + @TableField(exist = false) + private String personIds; @ApiModelProperty(value = "相机url集合", dataType = "String") @TableField(exist = false) private List cameras; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java index 02c64c9..fd65c83 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java @@ -3,7 +3,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import java.util.List; @@ -21,4 +24,6 @@ * 设备分组管理 分页检索 */ List selectDeviceGroupInfoPage(Page page, QueryWrapper query); + + Page userGroupPage(SysUserGroupVO deviceGroupInfoVO); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java index 2a4a9fc..fd6bce8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java @@ -35,6 +35,7 @@ import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.service.IAreaService; import com.casic.missiles.modular.video.dto.DeviceDTO; +import org.apache.ibatis.annotations.Param; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -69,7 +70,36 @@ this.hikService = hikService; } + @Override + public > E page(E page) { + return super.page(page); + } + @Override + public > E page(E page, Wrapper query) { + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + QueryWrapper pageQuery = query((QueryWrapper) query, "id", user.getId()); + pageQuery.le("secret_level", user.getSecretLevel()); + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + pageQuery.in("dept_id", dataScope.getDeptIds()); + } + + IPage infoIPage = super.page(page, pageQuery); + infoIPage.getRecords().forEach(this::wrapInfo); + return (E) infoIPage; + } + + private QueryWrapper query(QueryWrapper query, String column, Long userId) { + return query.inSql(column, "SELECT\n" + + "device_id\n" + + "FROM\n" + + "\tsys_user_group a\n" + + "\tINNER JOIN sys_group_rel_user b ON a.id = b.group_id\n" + + "\tINNER JOIN sys_group_device c on a.id = c.group_id\n" + + "\tWHERE b.user_id = " + userId + "\n" + + "\tGROUP BY c.device_id"); + } @Override public List selectBusDeviceInfoPage(Page page, QueryWrapper query) { @@ -78,7 +108,9 @@ @Override public List list(Wrapper queryWrapper) { - List busDeviceInfos = super.list(queryWrapper); + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + QueryWrapper pageQuery = query((QueryWrapper) queryWrapper, "id", user.getId()); + List busDeviceInfos = super.list(pageQuery); busDeviceInfos.forEach(this::wrapInfo); return busDeviceInfos; } @@ -92,13 +124,6 @@ return busDeviceInfo; } - @Override - public > E page(E page, Wrapper queryWrapper) { - IPage infoIPage = super.page(page, queryWrapper); - infoIPage.getRecords().forEach(this::wrapInfo); - return (E) infoIPage; - } - private void wrapInfo(BusDeviceInfo busDeviceInfo) { Area area = areaService.getById(busDeviceInfo.getArea()); if (area != null) { @@ -114,19 +139,19 @@ @Override public TotalDataDTO total(QueryWrapper query) { AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); + query.le("secret_level", user.getSecretLevel()); DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); //根据数据权限读取组织下用户信息 if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { query.in("dept_id", dataScope.getDeptIds()); } - query.select("count(1) as totalNum", "sum(case device_status when 1 then 1 else 0 end ) as onLineNum"); - + query.select("count(1) as TOTALNUM", "sum(case device_status when 1 then 1 else 0 end ) as ONLINENUM"); + query(query,"id",user.getId()); List> maps = this.baseMapper.selectMaps(query); TotalDataDTO dataDTO = new TotalDataDTO(); maps.forEach(map -> { - dataDTO.setDevTotal(Convert.toInt(map.getOrDefault("totalNum", 0))); - dataDTO.setOnlineNum(Convert.toInt(map.getOrDefault("onLineNum", 0))); + dataDTO.setDevTotal(Convert.toInt(map.getOrDefault("TOTALNUM", 0))); + dataDTO.setOnlineNum(Convert.toInt(map.getOrDefault("ONLINENUM", 0))); if (dataDTO.getDevTotal() == 0) { dataDTO.setOnlineRate(0D); } else { @@ -143,8 +168,8 @@ List> maps = getAreaData(query); Map areaMap = maps.stream().map(map -> { AreaDataDTO areaDataDTO = new AreaDataDTO(); - areaDataDTO.setValue(Convert.toInt(map.getOrDefault("totalNum", 0))); - areaDataDTO.setCode(Convert.toStr(map.get("area"))); + areaDataDTO.setValue(Convert.toInt(map.getOrDefault("TOTALNUM", 0))); + areaDataDTO.setCode(Convert.toStr(map.get("AREA"))); return areaDataDTO; }).collect(Collectors.toMap(AreaDataDTO::getCode, AreaDataDTO::getValue)); return areaMapToList(DataConstants.DICT_AREA, areaMap); @@ -156,8 +181,8 @@ List> maps = getAreaData(query); Map areaMap = maps.stream().map(map -> { AreaDataDTO areaDataDTO = new AreaDataDTO(); - areaDataDTO.setValue(Convert.toInt(map.getOrDefault("onLineNum", 0))); - areaDataDTO.setCode(Convert.toStr(map.get("area"))); + areaDataDTO.setValue(Convert.toInt(map.getOrDefault("ONLINENUM", 0))); + areaDataDTO.setCode(Convert.toStr(map.get("AREA"))); return areaDataDTO; }).collect(Collectors.toMap(AreaDataDTO::getCode, AreaDataDTO::getValue)); return areaMapToList(DataConstants.DICT_AREA, areaMap); @@ -189,10 +214,10 @@ normalIds.add(dept.getId()); //挂载设备信息 - LambdaQueryWrapper deviceQuery = new LambdaQueryWrapper<>(); - deviceQuery.eq(BusDeviceInfo::getDeptId, deptDTO.getId()); + QueryWrapper deviceQuery = new QueryWrapper<>(); + deviceQuery.eq("dept_id", deptDTO.getId()); //判定只可查看以下密级 - deviceQuery.le(BusDeviceInfo::getSecretLevel,user.getSecretLevel()); + deviceQuery.le("secret_level", user.getSecretLevel()); List deviceInfos = this.list(deviceQuery); deptDTO.setChildrenNodes(deviceInfos.stream().map(this::createDeptDTO).collect(Collectors.toList())); } @@ -251,7 +276,7 @@ } if (StrUtil.isEmpty(result.getCameraIndexCode())) { - errors.add("第" + index + "行设备编号不能为空!"); + errors.add("第" + index + "行设备国标号不能为空!"); } importDTOS.add(result); index++; @@ -323,7 +348,17 @@ @Override public List searchStatusByArea() { - return this.baseMapper.searchStatusByArea(); + QueryWrapper query = new QueryWrapper<>(); + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + //根据数据权限读取组织下用户信息 + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + query.in("dept_id", dataScope.getDeptIds()); + } + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + query.le("secret_level", user.getSecretLevel()); + query(query,"id",user.getId()); + + return this.baseMapper.searchStatusByArea(query); } /** @@ -349,10 +384,12 @@ if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { query.in("dept_id", dataScope.getDeptIds()); } + query.select("AREA", "count(1) as TOTALNUM", "sum(case device_status when 1 then 1 else 0 end) as ONLINENUM"); AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - query.select("area", "count(1) as totalNum", "sum(case device_status when 1 then 1 else 0 end) as onLineNum"); - query.groupBy("area"); + query.le("secret_level", user.getSecretLevel()); + query(query,"id",user.getId()); + + query.groupBy("AREA"); List> maps = this.baseMapper.selectMaps(query); return maps; } @@ -376,6 +413,7 @@ /** * 设备接口实现 + * * @param id 设备主键 * @return */ @@ -386,7 +424,6 @@ } /** - * * @param deviceId 设备ID * @return */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java index 69710d6..9ce8fbd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java @@ -1,25 +1,42 @@ package com.casic.missiles.modular.device.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.modular.data.constants.DataConstants; import com.casic.missiles.modular.device.dao.DeviceGroupInfoMapper; import com.casic.missiles.modular.device.dto.CameraDTO; +import com.casic.missiles.modular.device.dto.GroupRelDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.BusDeviceInfo; import com.casic.missiles.modular.device.model.DeviceGroupInfo; +import com.casic.missiles.modular.device.model.SysGroupDevice; import com.casic.missiles.modular.device.service.IBusDeviceInfoService; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysGroupRelUser; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.service.ISysGroupRelUserService; +import com.casic.missiles.modular.system.service.ISysUserGroupService; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.Serializable; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** @@ -34,10 +51,18 @@ public class DeviceGroupInfoServiceImpl extends ServiceImpl implements IDeviceGroupInfoService { private final AbstractDictService dictService; private final IBusDeviceInfoService deviceInfoService; + private final ISysUserGroupService groupService; + private final AbstractPermissionContext permissionContext; + private final ISysGroupDeviceService sysGroupDeviceService; + private final ISysGroupRelUserService groupRelUserService; - public DeviceGroupInfoServiceImpl(AbstractDictService dictService, IBusDeviceInfoService deviceInfoService) { + public DeviceGroupInfoServiceImpl(AbstractDictService dictService, IBusDeviceInfoService deviceInfoService, ISysUserGroupService groupService, AbstractPermissionContext permissionContext, ISysGroupDeviceService sysGroupDeviceService, ISysGroupRelUserService groupRelUserService) { this.dictService = dictService; this.deviceInfoService = deviceInfoService; + this.groupService = groupService; + this.permissionContext = permissionContext; + this.sysGroupDeviceService = sysGroupDeviceService; + this.groupRelUserService = groupRelUserService; } @Override @@ -45,6 +70,88 @@ return this.baseMapper.selectDeviceGroupInfoPage(page, query); } + @Override + public boolean updateById(DeviceGroupInfo entity) { + AuthUser user = permissionContext.getAuthService().getLoginUser(); + SysUserGroup sysUserGroup = BeanUtil.copyProperties(entity,SysUserGroup.class); + sysUserGroup.setCreateId(user.getId()); + sysUserGroup.setDeptId(user.getDeptId()); + batchSave(entity,sysUserGroup.getId()); + return groupService.updateById(sysUserGroup); + } + private void batchSave(DeviceGroupInfo entity,Long groupId){ + GroupRelDTO groupRelDTO = new GroupRelDTO(); + groupRelDTO.setGroupId(groupId); + if(StrUtil.isNotEmpty(entity.getCameraIds())){ + long[] longs = StrUtil.splitToLong(entity.getCameraIds(),","); + List devices = new ArrayList<>(); + for (long aLong : longs) { + devices.add(aLong); + } + groupRelDTO.setDeviceIds(devices); + } + if(StrUtil.isNotEmpty(entity.getPersonIds())){ + long[] longs = StrUtil.splitToLong(entity.getPersonIds(),","); + List persons = new ArrayList<>(); + for (long aLong : longs) { + persons.add(aLong); + } + groupRelDTO.setUserIds(persons); + } + sysGroupDeviceService.batchAdd(groupRelDTO); + } + @Transactional + @Override + public boolean save(DeviceGroupInfo entity) { + AuthUser user = permissionContext.getAuthService().getLoginUser(); + SysUserGroup sysUserGroup = BeanUtil.copyProperties(entity,SysUserGroup.class); + sysUserGroup.setCreateId(user.getId()); + sysUserGroup.setDeptId(user.getDeptId()); + groupService.save(sysUserGroup); + batchSave(entity,sysUserGroup.getId()); + return true; + } + + @Transactional + @Override + public Page userGroupPage(SysUserGroupVO deviceGroupInfoVO) { + + Page page = PageFactory.defaultPage(); + QueryWrapper query = deviceGroupInfoVO.genQuery(); + List sysUserGroups = groupService.selectSysUserGroupPage(page, query); + + List sysUserGroupDTOS = new ArrayList<>(); + for (SysUserGroup record : sysUserGroups) { + record.setSafeName(dictService.getDictNameByCode(DataConstants.DICT_SECRET_LEVEL_TYPE, record.getSafe() + "")); + SysUserGroupDTO dto = BeanUtil.copyProperties(record, SysUserGroupDTO.class); + sysUserGroupDTOS.add(dto); + //查询关联设备 + LambdaQueryWrapper deviceQuery = new LambdaQueryWrapper<>(); + deviceQuery.eq(SysGroupDevice::getGroupId, record.getId()); + List devices = sysGroupDeviceService.list(deviceQuery); + if (devices != null) { + List deviceList = devices.stream().map(SysGroupDevice::getDeviceId).collect(Collectors.toList()); + dto.setCameraIds(StrUtil.join(",", deviceList)); + dto.setCameraNum(deviceList.size()); + } + + //查询关联人员 + LambdaQueryWrapper personQuery = new LambdaQueryWrapper<>(); + personQuery.eq(SysGroupRelUser::getGroupId, record.getId()); + List persons = groupRelUserService.list(personQuery); + if (persons != null) { + List personIds = persons.stream().map(SysGroupRelUser::getUserId).collect(Collectors.toList()); + dto.setPersonIds(StrUtil.join(",", personIds)); + } + + } + Page pageRes = PageFactory.defaultPage(); + pageRes.setTotal(page.getTotal()); + pageRes.setRecords(sysUserGroupDTOS); + page.setRecords(sysUserGroups); + return pageRes; + } + @Transactional @Override public > E page(E page, Wrapper queryWrapper) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java index e12c638..496ef2e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java @@ -3,7 +3,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dao.DeviceOnlineLogMapper; +import com.casic.missiles.modular.device.model.BusDeviceInfo; import com.casic.missiles.modular.device.model.DeviceOnlineLog; import com.casic.missiles.modular.device.service.IDeviceOnlineLogService; import org.springframework.stereotype.Service; @@ -21,6 +26,12 @@ */ @Service public class DeviceOnlineLogServiceImpl extends ServiceImpl implements IDeviceOnlineLogService { + private final AbstractPermissionContext abstractPermissionContext; + + public DeviceOnlineLogServiceImpl(AbstractPermissionContext abstractPermissionContext) { + this.abstractPermissionContext = abstractPermissionContext; + } + @Override public List selectDeviceOnlineLogPage(Page page, QueryWrapper query) { return this.baseMapper.selectDeviceOnlineLogPage(page, query); @@ -28,6 +39,27 @@ @Override public List selectDeviceLog(QueryWrapper query) { + + //按日期求和 + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + query.in("b.dept_id", dataScope.getDeptIds()); + } + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + query.le("b.secret_level",user.getSecretLevel()); + + query(query,"b.id",user.getId()); return this.baseMapper.selectDeviceLog(query); } + + private QueryWrapper query(QueryWrapper query, String column, Long userId) { + return query.inSql(column, "SELECT\n" + + "device_id\n" + + "FROM\n" + + "\tsys_user_group a\n" + + "\tINNER JOIN sys_group_rel_user b ON a.id = b.group_id\n" + + "\tINNER JOIN sys_group_device c on a.id = c.group_id\n" + + "\tWHERE b.user_id = " + userId + "\n" + + "\tGROUP BY c.device_id"); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java index 8333f16..c40eb6e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java @@ -17,6 +17,8 @@ import com.casic.missiles.modular.wvp.dto.device.WvpChannelDTO; import com.casic.missiles.modular.wvp.dto.device.WvpDeviceDTO; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -44,7 +46,8 @@ private String dhType; @Resource private IBusDeviceInfoService deviceInfoService; - @Resource(name = "dhSdkService") + @Qualifier("dhSdkService") + @Autowired(required = false) private IVideoSdkService sdkService; @Transactional @@ -92,7 +95,7 @@ //读取设备信息 List list = deviceInfoService.list(); List newList = list.stream().filter(info -> dhType.contains(info.getNvrManufacture())).distinct().collect(Collectors.toList()); - + if(sdkService!=null){ Set set = new HashSet<>(); List channelDTOS = new ArrayList<>(); for (BusDeviceInfo busDeviceInfo : newList) { @@ -125,6 +128,7 @@ } } } + } } @Resource diff --git a/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java b/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java index 13072fb..80320e0 100644 --- a/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java +++ b/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java @@ -56,6 +56,8 @@ currentFold = getLibraryFold(); if (dynamicParseUtil == null) { try { + System.out.println("curr:"+LibraryLoad.class.getClassLoader().getResource("dynamic-lib-load.xml")); + System.out.println(currentFold); dynamicParseUtil = new DynamicParseUtil( LibraryLoad.class.getClassLoader().getResourceAsStream("dynamic-lib-load.xml")); diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 890c069..151e5ee 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -22,10 +22,15 @@ artemis-http-client 1.1.3 + + + + + com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-group + ${admin.version} com.casic diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java index 371ec46..72af255 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java @@ -145,12 +145,7 @@ public ResponseDataDTO> listPage(BusDeviceInfoVO busDeviceInfoVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = busDeviceInfoVO.genQuery(); - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("dept_id", dataScope.getDeptIds()); - } + page = busDeviceInfoService.page(page, query); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java index 08b7023..d999043 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.controller; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,14 +11,17 @@ import com.casic.missiles.model.form.IdForms; import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.dto.IdDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; -import com.casic.missiles.modular.device.vo.DeviceGroupInfoVO; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -38,21 +42,11 @@ this.deviceGroupInfoService = deviceGroupInfoService; } - @ApiIgnore - @ApiOperation(value = "列表查询") - @GetMapping(value = "/list") - public ResponseDataDTO> list(DeviceGroupInfoVO deviceGroupInfoVO) { - QueryWrapper query = deviceGroupInfoVO.genQuery(); - return ResponseDataDTO.success(deviceGroupInfoService.list(query)); - } - @BussinessLog(value = "设备分组管理分页查询") @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") - public ResponseDataDTO> listPage(DeviceGroupInfoVO deviceGroupInfoVO) { - Page page = PageFactory.defaultPage(); - QueryWrapper query = deviceGroupInfoVO.genQuery(); - page = deviceGroupInfoService.page(page, query); + public ResponseDataDTO> listPage(SysUserGroupVO deviceGroupInfoVO) { + Page page = deviceGroupInfoService.userGroupPage(deviceGroupInfoVO); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java index 65edf87..cee5800 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java @@ -41,12 +41,12 @@ private final IBusDeviceInfoService busDeviceInfoService; private final IDeviceOnlineLogService onlineLogService; - private final AbstractPermissionContext abstractPermissionContext; - public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService, AbstractPermissionContext abstractPermissionContext) { + + public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService) { this.busDeviceInfoService = busDeviceInfoService; this.onlineLogService = onlineLogService; - this.abstractPermissionContext = abstractPermissionContext; + } @BussinessLog(value = "数据统计概况统计") @@ -97,14 +97,6 @@ endTimeDate = new Date(); } - //按日期求和 - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("b.dept_id", dataScope.getDeptIds()); - } - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("b.secret_level",user.getSecretLevel()); - List dtos = onlineLogService.selectDeviceLog(query); Map map = new HashMap<>(); if(CollectionUtil.isNotEmpty(dtos)){ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java index 887171c..4f683ef 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java @@ -24,5 +24,5 @@ */ List selectBusDeviceInfoPage(@Param("page") Page page, @Param("ew") QueryWrapper query); - List searchStatusByArea(); + List searchStatusByArea(@Param("ew") QueryWrapper query); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml index 0eedcbd..5e198d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml @@ -112,8 +112,12 @@ sum(case when device_status = 1 then 1 ELSE 0 end ) as onlineNum, sum(case when device_status = 0 then 1 ELSE 0 end ) as offlineNum, sum(1) as total - FROM - bus_device_info + FROM bus_device_info + + + ${ew.sqlSegment} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java index 3e0994e..72b4919 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java @@ -55,6 +55,9 @@ @ApiModelProperty(value = "分组相机id,用逗号隔开", dataType = "String") @TableField("camera_ids") private String cameraIds; + @ApiModelProperty(value = "用户id,用逗号隔开", dataType = "String") + @TableField(exist = false) + private String personIds; @ApiModelProperty(value = "相机url集合", dataType = "String") @TableField(exist = false) private List cameras; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java index 02c64c9..fd65c83 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java @@ -3,7 +3,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import java.util.List; @@ -21,4 +24,6 @@ * 设备分组管理 分页检索 */ List selectDeviceGroupInfoPage(Page page, QueryWrapper query); + + Page userGroupPage(SysUserGroupVO deviceGroupInfoVO); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java index 2a4a9fc..fd6bce8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java @@ -35,6 +35,7 @@ import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.service.IAreaService; import com.casic.missiles.modular.video.dto.DeviceDTO; +import org.apache.ibatis.annotations.Param; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -69,7 +70,36 @@ this.hikService = hikService; } + @Override + public > E page(E page) { + return super.page(page); + } + @Override + public > E page(E page, Wrapper query) { + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + QueryWrapper pageQuery = query((QueryWrapper) query, "id", user.getId()); + pageQuery.le("secret_level", user.getSecretLevel()); + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + pageQuery.in("dept_id", dataScope.getDeptIds()); + } + + IPage infoIPage = super.page(page, pageQuery); + infoIPage.getRecords().forEach(this::wrapInfo); + return (E) infoIPage; + } + + private QueryWrapper query(QueryWrapper query, String column, Long userId) { + return query.inSql(column, "SELECT\n" + + "device_id\n" + + "FROM\n" + + "\tsys_user_group a\n" + + "\tINNER JOIN sys_group_rel_user b ON a.id = b.group_id\n" + + "\tINNER JOIN sys_group_device c on a.id = c.group_id\n" + + "\tWHERE b.user_id = " + userId + "\n" + + "\tGROUP BY c.device_id"); + } @Override public List selectBusDeviceInfoPage(Page page, QueryWrapper query) { @@ -78,7 +108,9 @@ @Override public List list(Wrapper queryWrapper) { - List busDeviceInfos = super.list(queryWrapper); + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + QueryWrapper pageQuery = query((QueryWrapper) queryWrapper, "id", user.getId()); + List busDeviceInfos = super.list(pageQuery); busDeviceInfos.forEach(this::wrapInfo); return busDeviceInfos; } @@ -92,13 +124,6 @@ return busDeviceInfo; } - @Override - public > E page(E page, Wrapper queryWrapper) { - IPage infoIPage = super.page(page, queryWrapper); - infoIPage.getRecords().forEach(this::wrapInfo); - return (E) infoIPage; - } - private void wrapInfo(BusDeviceInfo busDeviceInfo) { Area area = areaService.getById(busDeviceInfo.getArea()); if (area != null) { @@ -114,19 +139,19 @@ @Override public TotalDataDTO total(QueryWrapper query) { AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); + query.le("secret_level", user.getSecretLevel()); DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); //根据数据权限读取组织下用户信息 if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { query.in("dept_id", dataScope.getDeptIds()); } - query.select("count(1) as totalNum", "sum(case device_status when 1 then 1 else 0 end ) as onLineNum"); - + query.select("count(1) as TOTALNUM", "sum(case device_status when 1 then 1 else 0 end ) as ONLINENUM"); + query(query,"id",user.getId()); List> maps = this.baseMapper.selectMaps(query); TotalDataDTO dataDTO = new TotalDataDTO(); maps.forEach(map -> { - dataDTO.setDevTotal(Convert.toInt(map.getOrDefault("totalNum", 0))); - dataDTO.setOnlineNum(Convert.toInt(map.getOrDefault("onLineNum", 0))); + dataDTO.setDevTotal(Convert.toInt(map.getOrDefault("TOTALNUM", 0))); + dataDTO.setOnlineNum(Convert.toInt(map.getOrDefault("ONLINENUM", 0))); if (dataDTO.getDevTotal() == 0) { dataDTO.setOnlineRate(0D); } else { @@ -143,8 +168,8 @@ List> maps = getAreaData(query); Map areaMap = maps.stream().map(map -> { AreaDataDTO areaDataDTO = new AreaDataDTO(); - areaDataDTO.setValue(Convert.toInt(map.getOrDefault("totalNum", 0))); - areaDataDTO.setCode(Convert.toStr(map.get("area"))); + areaDataDTO.setValue(Convert.toInt(map.getOrDefault("TOTALNUM", 0))); + areaDataDTO.setCode(Convert.toStr(map.get("AREA"))); return areaDataDTO; }).collect(Collectors.toMap(AreaDataDTO::getCode, AreaDataDTO::getValue)); return areaMapToList(DataConstants.DICT_AREA, areaMap); @@ -156,8 +181,8 @@ List> maps = getAreaData(query); Map areaMap = maps.stream().map(map -> { AreaDataDTO areaDataDTO = new AreaDataDTO(); - areaDataDTO.setValue(Convert.toInt(map.getOrDefault("onLineNum", 0))); - areaDataDTO.setCode(Convert.toStr(map.get("area"))); + areaDataDTO.setValue(Convert.toInt(map.getOrDefault("ONLINENUM", 0))); + areaDataDTO.setCode(Convert.toStr(map.get("AREA"))); return areaDataDTO; }).collect(Collectors.toMap(AreaDataDTO::getCode, AreaDataDTO::getValue)); return areaMapToList(DataConstants.DICT_AREA, areaMap); @@ -189,10 +214,10 @@ normalIds.add(dept.getId()); //挂载设备信息 - LambdaQueryWrapper deviceQuery = new LambdaQueryWrapper<>(); - deviceQuery.eq(BusDeviceInfo::getDeptId, deptDTO.getId()); + QueryWrapper deviceQuery = new QueryWrapper<>(); + deviceQuery.eq("dept_id", deptDTO.getId()); //判定只可查看以下密级 - deviceQuery.le(BusDeviceInfo::getSecretLevel,user.getSecretLevel()); + deviceQuery.le("secret_level", user.getSecretLevel()); List deviceInfos = this.list(deviceQuery); deptDTO.setChildrenNodes(deviceInfos.stream().map(this::createDeptDTO).collect(Collectors.toList())); } @@ -251,7 +276,7 @@ } if (StrUtil.isEmpty(result.getCameraIndexCode())) { - errors.add("第" + index + "行设备编号不能为空!"); + errors.add("第" + index + "行设备国标号不能为空!"); } importDTOS.add(result); index++; @@ -323,7 +348,17 @@ @Override public List searchStatusByArea() { - return this.baseMapper.searchStatusByArea(); + QueryWrapper query = new QueryWrapper<>(); + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + //根据数据权限读取组织下用户信息 + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + query.in("dept_id", dataScope.getDeptIds()); + } + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + query.le("secret_level", user.getSecretLevel()); + query(query,"id",user.getId()); + + return this.baseMapper.searchStatusByArea(query); } /** @@ -349,10 +384,12 @@ if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { query.in("dept_id", dataScope.getDeptIds()); } + query.select("AREA", "count(1) as TOTALNUM", "sum(case device_status when 1 then 1 else 0 end) as ONLINENUM"); AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - query.select("area", "count(1) as totalNum", "sum(case device_status when 1 then 1 else 0 end) as onLineNum"); - query.groupBy("area"); + query.le("secret_level", user.getSecretLevel()); + query(query,"id",user.getId()); + + query.groupBy("AREA"); List> maps = this.baseMapper.selectMaps(query); return maps; } @@ -376,6 +413,7 @@ /** * 设备接口实现 + * * @param id 设备主键 * @return */ @@ -386,7 +424,6 @@ } /** - * * @param deviceId 设备ID * @return */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java index 69710d6..9ce8fbd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java @@ -1,25 +1,42 @@ package com.casic.missiles.modular.device.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.modular.data.constants.DataConstants; import com.casic.missiles.modular.device.dao.DeviceGroupInfoMapper; import com.casic.missiles.modular.device.dto.CameraDTO; +import com.casic.missiles.modular.device.dto.GroupRelDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.BusDeviceInfo; import com.casic.missiles.modular.device.model.DeviceGroupInfo; +import com.casic.missiles.modular.device.model.SysGroupDevice; import com.casic.missiles.modular.device.service.IBusDeviceInfoService; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysGroupRelUser; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.service.ISysGroupRelUserService; +import com.casic.missiles.modular.system.service.ISysUserGroupService; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.Serializable; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** @@ -34,10 +51,18 @@ public class DeviceGroupInfoServiceImpl extends ServiceImpl implements IDeviceGroupInfoService { private final AbstractDictService dictService; private final IBusDeviceInfoService deviceInfoService; + private final ISysUserGroupService groupService; + private final AbstractPermissionContext permissionContext; + private final ISysGroupDeviceService sysGroupDeviceService; + private final ISysGroupRelUserService groupRelUserService; - public DeviceGroupInfoServiceImpl(AbstractDictService dictService, IBusDeviceInfoService deviceInfoService) { + public DeviceGroupInfoServiceImpl(AbstractDictService dictService, IBusDeviceInfoService deviceInfoService, ISysUserGroupService groupService, AbstractPermissionContext permissionContext, ISysGroupDeviceService sysGroupDeviceService, ISysGroupRelUserService groupRelUserService) { this.dictService = dictService; this.deviceInfoService = deviceInfoService; + this.groupService = groupService; + this.permissionContext = permissionContext; + this.sysGroupDeviceService = sysGroupDeviceService; + this.groupRelUserService = groupRelUserService; } @Override @@ -45,6 +70,88 @@ return this.baseMapper.selectDeviceGroupInfoPage(page, query); } + @Override + public boolean updateById(DeviceGroupInfo entity) { + AuthUser user = permissionContext.getAuthService().getLoginUser(); + SysUserGroup sysUserGroup = BeanUtil.copyProperties(entity,SysUserGroup.class); + sysUserGroup.setCreateId(user.getId()); + sysUserGroup.setDeptId(user.getDeptId()); + batchSave(entity,sysUserGroup.getId()); + return groupService.updateById(sysUserGroup); + } + private void batchSave(DeviceGroupInfo entity,Long groupId){ + GroupRelDTO groupRelDTO = new GroupRelDTO(); + groupRelDTO.setGroupId(groupId); + if(StrUtil.isNotEmpty(entity.getCameraIds())){ + long[] longs = StrUtil.splitToLong(entity.getCameraIds(),","); + List devices = new ArrayList<>(); + for (long aLong : longs) { + devices.add(aLong); + } + groupRelDTO.setDeviceIds(devices); + } + if(StrUtil.isNotEmpty(entity.getPersonIds())){ + long[] longs = StrUtil.splitToLong(entity.getPersonIds(),","); + List persons = new ArrayList<>(); + for (long aLong : longs) { + persons.add(aLong); + } + groupRelDTO.setUserIds(persons); + } + sysGroupDeviceService.batchAdd(groupRelDTO); + } + @Transactional + @Override + public boolean save(DeviceGroupInfo entity) { + AuthUser user = permissionContext.getAuthService().getLoginUser(); + SysUserGroup sysUserGroup = BeanUtil.copyProperties(entity,SysUserGroup.class); + sysUserGroup.setCreateId(user.getId()); + sysUserGroup.setDeptId(user.getDeptId()); + groupService.save(sysUserGroup); + batchSave(entity,sysUserGroup.getId()); + return true; + } + + @Transactional + @Override + public Page userGroupPage(SysUserGroupVO deviceGroupInfoVO) { + + Page page = PageFactory.defaultPage(); + QueryWrapper query = deviceGroupInfoVO.genQuery(); + List sysUserGroups = groupService.selectSysUserGroupPage(page, query); + + List sysUserGroupDTOS = new ArrayList<>(); + for (SysUserGroup record : sysUserGroups) { + record.setSafeName(dictService.getDictNameByCode(DataConstants.DICT_SECRET_LEVEL_TYPE, record.getSafe() + "")); + SysUserGroupDTO dto = BeanUtil.copyProperties(record, SysUserGroupDTO.class); + sysUserGroupDTOS.add(dto); + //查询关联设备 + LambdaQueryWrapper deviceQuery = new LambdaQueryWrapper<>(); + deviceQuery.eq(SysGroupDevice::getGroupId, record.getId()); + List devices = sysGroupDeviceService.list(deviceQuery); + if (devices != null) { + List deviceList = devices.stream().map(SysGroupDevice::getDeviceId).collect(Collectors.toList()); + dto.setCameraIds(StrUtil.join(",", deviceList)); + dto.setCameraNum(deviceList.size()); + } + + //查询关联人员 + LambdaQueryWrapper personQuery = new LambdaQueryWrapper<>(); + personQuery.eq(SysGroupRelUser::getGroupId, record.getId()); + List persons = groupRelUserService.list(personQuery); + if (persons != null) { + List personIds = persons.stream().map(SysGroupRelUser::getUserId).collect(Collectors.toList()); + dto.setPersonIds(StrUtil.join(",", personIds)); + } + + } + Page pageRes = PageFactory.defaultPage(); + pageRes.setTotal(page.getTotal()); + pageRes.setRecords(sysUserGroupDTOS); + page.setRecords(sysUserGroups); + return pageRes; + } + @Transactional @Override public > E page(E page, Wrapper queryWrapper) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java index e12c638..496ef2e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java @@ -3,7 +3,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dao.DeviceOnlineLogMapper; +import com.casic.missiles.modular.device.model.BusDeviceInfo; import com.casic.missiles.modular.device.model.DeviceOnlineLog; import com.casic.missiles.modular.device.service.IDeviceOnlineLogService; import org.springframework.stereotype.Service; @@ -21,6 +26,12 @@ */ @Service public class DeviceOnlineLogServiceImpl extends ServiceImpl implements IDeviceOnlineLogService { + private final AbstractPermissionContext abstractPermissionContext; + + public DeviceOnlineLogServiceImpl(AbstractPermissionContext abstractPermissionContext) { + this.abstractPermissionContext = abstractPermissionContext; + } + @Override public List selectDeviceOnlineLogPage(Page page, QueryWrapper query) { return this.baseMapper.selectDeviceOnlineLogPage(page, query); @@ -28,6 +39,27 @@ @Override public List selectDeviceLog(QueryWrapper query) { + + //按日期求和 + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + query.in("b.dept_id", dataScope.getDeptIds()); + } + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + query.le("b.secret_level",user.getSecretLevel()); + + query(query,"b.id",user.getId()); return this.baseMapper.selectDeviceLog(query); } + + private QueryWrapper query(QueryWrapper query, String column, Long userId) { + return query.inSql(column, "SELECT\n" + + "device_id\n" + + "FROM\n" + + "\tsys_user_group a\n" + + "\tINNER JOIN sys_group_rel_user b ON a.id = b.group_id\n" + + "\tINNER JOIN sys_group_device c on a.id = c.group_id\n" + + "\tWHERE b.user_id = " + userId + "\n" + + "\tGROUP BY c.device_id"); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java index 8333f16..c40eb6e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java @@ -17,6 +17,8 @@ import com.casic.missiles.modular.wvp.dto.device.WvpChannelDTO; import com.casic.missiles.modular.wvp.dto.device.WvpDeviceDTO; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -44,7 +46,8 @@ private String dhType; @Resource private IBusDeviceInfoService deviceInfoService; - @Resource(name = "dhSdkService") + @Qualifier("dhSdkService") + @Autowired(required = false) private IVideoSdkService sdkService; @Transactional @@ -92,7 +95,7 @@ //读取设备信息 List list = deviceInfoService.list(); List newList = list.stream().filter(info -> dhType.contains(info.getNvrManufacture())).distinct().collect(Collectors.toList()); - + if(sdkService!=null){ Set set = new HashSet<>(); List channelDTOS = new ArrayList<>(); for (BusDeviceInfo busDeviceInfo : newList) { @@ -125,6 +128,7 @@ } } } + } } @Resource diff --git a/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java b/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java index 13072fb..80320e0 100644 --- a/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java +++ b/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java @@ -56,6 +56,8 @@ currentFold = getLibraryFold(); if (dynamicParseUtil == null) { try { + System.out.println("curr:"+LibraryLoad.class.getClassLoader().getResource("dynamic-lib-load.xml")); + System.out.println(currentFold); dynamicParseUtil = new DynamicParseUtil( LibraryLoad.class.getClassLoader().getResourceAsStream("dynamic-lib-load.xml")); diff --git a/casic-video-sdk/casic-video-sdk-support/src/main/java/com/casic/missiles/modular/video/service/IDeviceInfoSupportService.java b/casic-video-sdk/casic-video-sdk-support/src/main/java/com/casic/missiles/modular/video/service/IDeviceInfoSupportService.java index c6a9759..a8a0309 100644 --- a/casic-video-sdk/casic-video-sdk-support/src/main/java/com/casic/missiles/modular/video/service/IDeviceInfoSupportService.java +++ b/casic-video-sdk/casic-video-sdk-support/src/main/java/com/casic/missiles/modular/video/service/IDeviceInfoSupportService.java @@ -8,6 +8,13 @@ */ public interface IDeviceInfoSupportService { /** + * 根据IP查找设备信息 + * + * @param deviceId 设备ID + * @return + */ + DeviceDTO selectByDeviceIp(String deviceId); + /** * 设备信息读取服务 * * @param id 设备主键 @@ -15,11 +22,5 @@ */ DeviceDTO getByDeviceId(Long id); - /** - * 根据IP查找设备信息 - * - * @param deviceId 设备ID - * @return - */ - DeviceDTO selectByDeviceIp(String deviceId); + } diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 890c069..151e5ee 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -22,10 +22,15 @@ artemis-http-client 1.1.3 + + + + + com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-group + ${admin.version} com.casic diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java index 371ec46..72af255 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java @@ -145,12 +145,7 @@ public ResponseDataDTO> listPage(BusDeviceInfoVO busDeviceInfoVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = busDeviceInfoVO.genQuery(); - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("dept_id", dataScope.getDeptIds()); - } + page = busDeviceInfoService.page(page, query); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java index 08b7023..d999043 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.controller; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,14 +11,17 @@ import com.casic.missiles.model.form.IdForms; import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.dto.IdDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; -import com.casic.missiles.modular.device.vo.DeviceGroupInfoVO; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -38,21 +42,11 @@ this.deviceGroupInfoService = deviceGroupInfoService; } - @ApiIgnore - @ApiOperation(value = "列表查询") - @GetMapping(value = "/list") - public ResponseDataDTO> list(DeviceGroupInfoVO deviceGroupInfoVO) { - QueryWrapper query = deviceGroupInfoVO.genQuery(); - return ResponseDataDTO.success(deviceGroupInfoService.list(query)); - } - @BussinessLog(value = "设备分组管理分页查询") @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") - public ResponseDataDTO> listPage(DeviceGroupInfoVO deviceGroupInfoVO) { - Page page = PageFactory.defaultPage(); - QueryWrapper query = deviceGroupInfoVO.genQuery(); - page = deviceGroupInfoService.page(page, query); + public ResponseDataDTO> listPage(SysUserGroupVO deviceGroupInfoVO) { + Page page = deviceGroupInfoService.userGroupPage(deviceGroupInfoVO); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java index 65edf87..cee5800 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java @@ -41,12 +41,12 @@ private final IBusDeviceInfoService busDeviceInfoService; private final IDeviceOnlineLogService onlineLogService; - private final AbstractPermissionContext abstractPermissionContext; - public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService, AbstractPermissionContext abstractPermissionContext) { + + public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService) { this.busDeviceInfoService = busDeviceInfoService; this.onlineLogService = onlineLogService; - this.abstractPermissionContext = abstractPermissionContext; + } @BussinessLog(value = "数据统计概况统计") @@ -97,14 +97,6 @@ endTimeDate = new Date(); } - //按日期求和 - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("b.dept_id", dataScope.getDeptIds()); - } - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("b.secret_level",user.getSecretLevel()); - List dtos = onlineLogService.selectDeviceLog(query); Map map = new HashMap<>(); if(CollectionUtil.isNotEmpty(dtos)){ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java index 887171c..4f683ef 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java @@ -24,5 +24,5 @@ */ List selectBusDeviceInfoPage(@Param("page") Page page, @Param("ew") QueryWrapper query); - List searchStatusByArea(); + List searchStatusByArea(@Param("ew") QueryWrapper query); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml index 0eedcbd..5e198d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml @@ -112,8 +112,12 @@ sum(case when device_status = 1 then 1 ELSE 0 end ) as onlineNum, sum(case when device_status = 0 then 1 ELSE 0 end ) as offlineNum, sum(1) as total - FROM - bus_device_info + FROM bus_device_info + + + ${ew.sqlSegment} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java index 3e0994e..72b4919 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java @@ -55,6 +55,9 @@ @ApiModelProperty(value = "分组相机id,用逗号隔开", dataType = "String") @TableField("camera_ids") private String cameraIds; + @ApiModelProperty(value = "用户id,用逗号隔开", dataType = "String") + @TableField(exist = false) + private String personIds; @ApiModelProperty(value = "相机url集合", dataType = "String") @TableField(exist = false) private List cameras; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java index 02c64c9..fd65c83 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java @@ -3,7 +3,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import java.util.List; @@ -21,4 +24,6 @@ * 设备分组管理 分页检索 */ List selectDeviceGroupInfoPage(Page page, QueryWrapper query); + + Page userGroupPage(SysUserGroupVO deviceGroupInfoVO); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java index 2a4a9fc..fd6bce8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java @@ -35,6 +35,7 @@ import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.service.IAreaService; import com.casic.missiles.modular.video.dto.DeviceDTO; +import org.apache.ibatis.annotations.Param; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -69,7 +70,36 @@ this.hikService = hikService; } + @Override + public > E page(E page) { + return super.page(page); + } + @Override + public > E page(E page, Wrapper query) { + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + QueryWrapper pageQuery = query((QueryWrapper) query, "id", user.getId()); + pageQuery.le("secret_level", user.getSecretLevel()); + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + pageQuery.in("dept_id", dataScope.getDeptIds()); + } + + IPage infoIPage = super.page(page, pageQuery); + infoIPage.getRecords().forEach(this::wrapInfo); + return (E) infoIPage; + } + + private QueryWrapper query(QueryWrapper query, String column, Long userId) { + return query.inSql(column, "SELECT\n" + + "device_id\n" + + "FROM\n" + + "\tsys_user_group a\n" + + "\tINNER JOIN sys_group_rel_user b ON a.id = b.group_id\n" + + "\tINNER JOIN sys_group_device c on a.id = c.group_id\n" + + "\tWHERE b.user_id = " + userId + "\n" + + "\tGROUP BY c.device_id"); + } @Override public List selectBusDeviceInfoPage(Page page, QueryWrapper query) { @@ -78,7 +108,9 @@ @Override public List list(Wrapper queryWrapper) { - List busDeviceInfos = super.list(queryWrapper); + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + QueryWrapper pageQuery = query((QueryWrapper) queryWrapper, "id", user.getId()); + List busDeviceInfos = super.list(pageQuery); busDeviceInfos.forEach(this::wrapInfo); return busDeviceInfos; } @@ -92,13 +124,6 @@ return busDeviceInfo; } - @Override - public > E page(E page, Wrapper queryWrapper) { - IPage infoIPage = super.page(page, queryWrapper); - infoIPage.getRecords().forEach(this::wrapInfo); - return (E) infoIPage; - } - private void wrapInfo(BusDeviceInfo busDeviceInfo) { Area area = areaService.getById(busDeviceInfo.getArea()); if (area != null) { @@ -114,19 +139,19 @@ @Override public TotalDataDTO total(QueryWrapper query) { AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); + query.le("secret_level", user.getSecretLevel()); DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); //根据数据权限读取组织下用户信息 if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { query.in("dept_id", dataScope.getDeptIds()); } - query.select("count(1) as totalNum", "sum(case device_status when 1 then 1 else 0 end ) as onLineNum"); - + query.select("count(1) as TOTALNUM", "sum(case device_status when 1 then 1 else 0 end ) as ONLINENUM"); + query(query,"id",user.getId()); List> maps = this.baseMapper.selectMaps(query); TotalDataDTO dataDTO = new TotalDataDTO(); maps.forEach(map -> { - dataDTO.setDevTotal(Convert.toInt(map.getOrDefault("totalNum", 0))); - dataDTO.setOnlineNum(Convert.toInt(map.getOrDefault("onLineNum", 0))); + dataDTO.setDevTotal(Convert.toInt(map.getOrDefault("TOTALNUM", 0))); + dataDTO.setOnlineNum(Convert.toInt(map.getOrDefault("ONLINENUM", 0))); if (dataDTO.getDevTotal() == 0) { dataDTO.setOnlineRate(0D); } else { @@ -143,8 +168,8 @@ List> maps = getAreaData(query); Map areaMap = maps.stream().map(map -> { AreaDataDTO areaDataDTO = new AreaDataDTO(); - areaDataDTO.setValue(Convert.toInt(map.getOrDefault("totalNum", 0))); - areaDataDTO.setCode(Convert.toStr(map.get("area"))); + areaDataDTO.setValue(Convert.toInt(map.getOrDefault("TOTALNUM", 0))); + areaDataDTO.setCode(Convert.toStr(map.get("AREA"))); return areaDataDTO; }).collect(Collectors.toMap(AreaDataDTO::getCode, AreaDataDTO::getValue)); return areaMapToList(DataConstants.DICT_AREA, areaMap); @@ -156,8 +181,8 @@ List> maps = getAreaData(query); Map areaMap = maps.stream().map(map -> { AreaDataDTO areaDataDTO = new AreaDataDTO(); - areaDataDTO.setValue(Convert.toInt(map.getOrDefault("onLineNum", 0))); - areaDataDTO.setCode(Convert.toStr(map.get("area"))); + areaDataDTO.setValue(Convert.toInt(map.getOrDefault("ONLINENUM", 0))); + areaDataDTO.setCode(Convert.toStr(map.get("AREA"))); return areaDataDTO; }).collect(Collectors.toMap(AreaDataDTO::getCode, AreaDataDTO::getValue)); return areaMapToList(DataConstants.DICT_AREA, areaMap); @@ -189,10 +214,10 @@ normalIds.add(dept.getId()); //挂载设备信息 - LambdaQueryWrapper deviceQuery = new LambdaQueryWrapper<>(); - deviceQuery.eq(BusDeviceInfo::getDeptId, deptDTO.getId()); + QueryWrapper deviceQuery = new QueryWrapper<>(); + deviceQuery.eq("dept_id", deptDTO.getId()); //判定只可查看以下密级 - deviceQuery.le(BusDeviceInfo::getSecretLevel,user.getSecretLevel()); + deviceQuery.le("secret_level", user.getSecretLevel()); List deviceInfos = this.list(deviceQuery); deptDTO.setChildrenNodes(deviceInfos.stream().map(this::createDeptDTO).collect(Collectors.toList())); } @@ -251,7 +276,7 @@ } if (StrUtil.isEmpty(result.getCameraIndexCode())) { - errors.add("第" + index + "行设备编号不能为空!"); + errors.add("第" + index + "行设备国标号不能为空!"); } importDTOS.add(result); index++; @@ -323,7 +348,17 @@ @Override public List searchStatusByArea() { - return this.baseMapper.searchStatusByArea(); + QueryWrapper query = new QueryWrapper<>(); + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + //根据数据权限读取组织下用户信息 + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + query.in("dept_id", dataScope.getDeptIds()); + } + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + query.le("secret_level", user.getSecretLevel()); + query(query,"id",user.getId()); + + return this.baseMapper.searchStatusByArea(query); } /** @@ -349,10 +384,12 @@ if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { query.in("dept_id", dataScope.getDeptIds()); } + query.select("AREA", "count(1) as TOTALNUM", "sum(case device_status when 1 then 1 else 0 end) as ONLINENUM"); AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - query.select("area", "count(1) as totalNum", "sum(case device_status when 1 then 1 else 0 end) as onLineNum"); - query.groupBy("area"); + query.le("secret_level", user.getSecretLevel()); + query(query,"id",user.getId()); + + query.groupBy("AREA"); List> maps = this.baseMapper.selectMaps(query); return maps; } @@ -376,6 +413,7 @@ /** * 设备接口实现 + * * @param id 设备主键 * @return */ @@ -386,7 +424,6 @@ } /** - * * @param deviceId 设备ID * @return */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java index 69710d6..9ce8fbd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java @@ -1,25 +1,42 @@ package com.casic.missiles.modular.device.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.modular.data.constants.DataConstants; import com.casic.missiles.modular.device.dao.DeviceGroupInfoMapper; import com.casic.missiles.modular.device.dto.CameraDTO; +import com.casic.missiles.modular.device.dto.GroupRelDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.BusDeviceInfo; import com.casic.missiles.modular.device.model.DeviceGroupInfo; +import com.casic.missiles.modular.device.model.SysGroupDevice; import com.casic.missiles.modular.device.service.IBusDeviceInfoService; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysGroupRelUser; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.service.ISysGroupRelUserService; +import com.casic.missiles.modular.system.service.ISysUserGroupService; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.Serializable; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** @@ -34,10 +51,18 @@ public class DeviceGroupInfoServiceImpl extends ServiceImpl implements IDeviceGroupInfoService { private final AbstractDictService dictService; private final IBusDeviceInfoService deviceInfoService; + private final ISysUserGroupService groupService; + private final AbstractPermissionContext permissionContext; + private final ISysGroupDeviceService sysGroupDeviceService; + private final ISysGroupRelUserService groupRelUserService; - public DeviceGroupInfoServiceImpl(AbstractDictService dictService, IBusDeviceInfoService deviceInfoService) { + public DeviceGroupInfoServiceImpl(AbstractDictService dictService, IBusDeviceInfoService deviceInfoService, ISysUserGroupService groupService, AbstractPermissionContext permissionContext, ISysGroupDeviceService sysGroupDeviceService, ISysGroupRelUserService groupRelUserService) { this.dictService = dictService; this.deviceInfoService = deviceInfoService; + this.groupService = groupService; + this.permissionContext = permissionContext; + this.sysGroupDeviceService = sysGroupDeviceService; + this.groupRelUserService = groupRelUserService; } @Override @@ -45,6 +70,88 @@ return this.baseMapper.selectDeviceGroupInfoPage(page, query); } + @Override + public boolean updateById(DeviceGroupInfo entity) { + AuthUser user = permissionContext.getAuthService().getLoginUser(); + SysUserGroup sysUserGroup = BeanUtil.copyProperties(entity,SysUserGroup.class); + sysUserGroup.setCreateId(user.getId()); + sysUserGroup.setDeptId(user.getDeptId()); + batchSave(entity,sysUserGroup.getId()); + return groupService.updateById(sysUserGroup); + } + private void batchSave(DeviceGroupInfo entity,Long groupId){ + GroupRelDTO groupRelDTO = new GroupRelDTO(); + groupRelDTO.setGroupId(groupId); + if(StrUtil.isNotEmpty(entity.getCameraIds())){ + long[] longs = StrUtil.splitToLong(entity.getCameraIds(),","); + List devices = new ArrayList<>(); + for (long aLong : longs) { + devices.add(aLong); + } + groupRelDTO.setDeviceIds(devices); + } + if(StrUtil.isNotEmpty(entity.getPersonIds())){ + long[] longs = StrUtil.splitToLong(entity.getPersonIds(),","); + List persons = new ArrayList<>(); + for (long aLong : longs) { + persons.add(aLong); + } + groupRelDTO.setUserIds(persons); + } + sysGroupDeviceService.batchAdd(groupRelDTO); + } + @Transactional + @Override + public boolean save(DeviceGroupInfo entity) { + AuthUser user = permissionContext.getAuthService().getLoginUser(); + SysUserGroup sysUserGroup = BeanUtil.copyProperties(entity,SysUserGroup.class); + sysUserGroup.setCreateId(user.getId()); + sysUserGroup.setDeptId(user.getDeptId()); + groupService.save(sysUserGroup); + batchSave(entity,sysUserGroup.getId()); + return true; + } + + @Transactional + @Override + public Page userGroupPage(SysUserGroupVO deviceGroupInfoVO) { + + Page page = PageFactory.defaultPage(); + QueryWrapper query = deviceGroupInfoVO.genQuery(); + List sysUserGroups = groupService.selectSysUserGroupPage(page, query); + + List sysUserGroupDTOS = new ArrayList<>(); + for (SysUserGroup record : sysUserGroups) { + record.setSafeName(dictService.getDictNameByCode(DataConstants.DICT_SECRET_LEVEL_TYPE, record.getSafe() + "")); + SysUserGroupDTO dto = BeanUtil.copyProperties(record, SysUserGroupDTO.class); + sysUserGroupDTOS.add(dto); + //查询关联设备 + LambdaQueryWrapper deviceQuery = new LambdaQueryWrapper<>(); + deviceQuery.eq(SysGroupDevice::getGroupId, record.getId()); + List devices = sysGroupDeviceService.list(deviceQuery); + if (devices != null) { + List deviceList = devices.stream().map(SysGroupDevice::getDeviceId).collect(Collectors.toList()); + dto.setCameraIds(StrUtil.join(",", deviceList)); + dto.setCameraNum(deviceList.size()); + } + + //查询关联人员 + LambdaQueryWrapper personQuery = new LambdaQueryWrapper<>(); + personQuery.eq(SysGroupRelUser::getGroupId, record.getId()); + List persons = groupRelUserService.list(personQuery); + if (persons != null) { + List personIds = persons.stream().map(SysGroupRelUser::getUserId).collect(Collectors.toList()); + dto.setPersonIds(StrUtil.join(",", personIds)); + } + + } + Page pageRes = PageFactory.defaultPage(); + pageRes.setTotal(page.getTotal()); + pageRes.setRecords(sysUserGroupDTOS); + page.setRecords(sysUserGroups); + return pageRes; + } + @Transactional @Override public > E page(E page, Wrapper queryWrapper) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java index e12c638..496ef2e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java @@ -3,7 +3,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dao.DeviceOnlineLogMapper; +import com.casic.missiles.modular.device.model.BusDeviceInfo; import com.casic.missiles.modular.device.model.DeviceOnlineLog; import com.casic.missiles.modular.device.service.IDeviceOnlineLogService; import org.springframework.stereotype.Service; @@ -21,6 +26,12 @@ */ @Service public class DeviceOnlineLogServiceImpl extends ServiceImpl implements IDeviceOnlineLogService { + private final AbstractPermissionContext abstractPermissionContext; + + public DeviceOnlineLogServiceImpl(AbstractPermissionContext abstractPermissionContext) { + this.abstractPermissionContext = abstractPermissionContext; + } + @Override public List selectDeviceOnlineLogPage(Page page, QueryWrapper query) { return this.baseMapper.selectDeviceOnlineLogPage(page, query); @@ -28,6 +39,27 @@ @Override public List selectDeviceLog(QueryWrapper query) { + + //按日期求和 + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + query.in("b.dept_id", dataScope.getDeptIds()); + } + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + query.le("b.secret_level",user.getSecretLevel()); + + query(query,"b.id",user.getId()); return this.baseMapper.selectDeviceLog(query); } + + private QueryWrapper query(QueryWrapper query, String column, Long userId) { + return query.inSql(column, "SELECT\n" + + "device_id\n" + + "FROM\n" + + "\tsys_user_group a\n" + + "\tINNER JOIN sys_group_rel_user b ON a.id = b.group_id\n" + + "\tINNER JOIN sys_group_device c on a.id = c.group_id\n" + + "\tWHERE b.user_id = " + userId + "\n" + + "\tGROUP BY c.device_id"); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java index 8333f16..c40eb6e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java @@ -17,6 +17,8 @@ import com.casic.missiles.modular.wvp.dto.device.WvpChannelDTO; import com.casic.missiles.modular.wvp.dto.device.WvpDeviceDTO; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -44,7 +46,8 @@ private String dhType; @Resource private IBusDeviceInfoService deviceInfoService; - @Resource(name = "dhSdkService") + @Qualifier("dhSdkService") + @Autowired(required = false) private IVideoSdkService sdkService; @Transactional @@ -92,7 +95,7 @@ //读取设备信息 List list = deviceInfoService.list(); List newList = list.stream().filter(info -> dhType.contains(info.getNvrManufacture())).distinct().collect(Collectors.toList()); - + if(sdkService!=null){ Set set = new HashSet<>(); List channelDTOS = new ArrayList<>(); for (BusDeviceInfo busDeviceInfo : newList) { @@ -125,6 +128,7 @@ } } } + } } @Resource diff --git a/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java b/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java index 13072fb..80320e0 100644 --- a/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java +++ b/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java @@ -56,6 +56,8 @@ currentFold = getLibraryFold(); if (dynamicParseUtil == null) { try { + System.out.println("curr:"+LibraryLoad.class.getClassLoader().getResource("dynamic-lib-load.xml")); + System.out.println(currentFold); dynamicParseUtil = new DynamicParseUtil( LibraryLoad.class.getClassLoader().getResourceAsStream("dynamic-lib-load.xml")); diff --git a/casic-video-sdk/casic-video-sdk-support/src/main/java/com/casic/missiles/modular/video/service/IDeviceInfoSupportService.java b/casic-video-sdk/casic-video-sdk-support/src/main/java/com/casic/missiles/modular/video/service/IDeviceInfoSupportService.java index c6a9759..a8a0309 100644 --- a/casic-video-sdk/casic-video-sdk-support/src/main/java/com/casic/missiles/modular/video/service/IDeviceInfoSupportService.java +++ b/casic-video-sdk/casic-video-sdk-support/src/main/java/com/casic/missiles/modular/video/service/IDeviceInfoSupportService.java @@ -8,6 +8,13 @@ */ public interface IDeviceInfoSupportService { /** + * 根据IP查找设备信息 + * + * @param deviceId 设备ID + * @return + */ + DeviceDTO selectByDeviceIp(String deviceId); + /** * 设备信息读取服务 * * @param id 设备主键 @@ -15,11 +22,5 @@ */ DeviceDTO getByDeviceId(Long id); - /** - * 根据IP查找设备信息 - * - * @param deviceId 设备ID - * @return - */ - DeviceDTO selectByDeviceIp(String deviceId); + } diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 0c00793..073c0ff 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -136,11 +136,21 @@ com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-export + ${admin.version} com.casic + casic-admin-group + ${admin.version} + + + + + + + + com.casic casic-video-sdk-hik ${pro.version} diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 890c069..151e5ee 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -22,10 +22,15 @@ artemis-http-client 1.1.3 + + + + + com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-group + ${admin.version} com.casic diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java index 371ec46..72af255 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java @@ -145,12 +145,7 @@ public ResponseDataDTO> listPage(BusDeviceInfoVO busDeviceInfoVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = busDeviceInfoVO.genQuery(); - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("dept_id", dataScope.getDeptIds()); - } + page = busDeviceInfoService.page(page, query); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java index 08b7023..d999043 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.controller; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,14 +11,17 @@ import com.casic.missiles.model.form.IdForms; import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.dto.IdDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; -import com.casic.missiles.modular.device.vo.DeviceGroupInfoVO; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -38,21 +42,11 @@ this.deviceGroupInfoService = deviceGroupInfoService; } - @ApiIgnore - @ApiOperation(value = "列表查询") - @GetMapping(value = "/list") - public ResponseDataDTO> list(DeviceGroupInfoVO deviceGroupInfoVO) { - QueryWrapper query = deviceGroupInfoVO.genQuery(); - return ResponseDataDTO.success(deviceGroupInfoService.list(query)); - } - @BussinessLog(value = "设备分组管理分页查询") @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") - public ResponseDataDTO> listPage(DeviceGroupInfoVO deviceGroupInfoVO) { - Page page = PageFactory.defaultPage(); - QueryWrapper query = deviceGroupInfoVO.genQuery(); - page = deviceGroupInfoService.page(page, query); + public ResponseDataDTO> listPage(SysUserGroupVO deviceGroupInfoVO) { + Page page = deviceGroupInfoService.userGroupPage(deviceGroupInfoVO); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java index 65edf87..cee5800 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java @@ -41,12 +41,12 @@ private final IBusDeviceInfoService busDeviceInfoService; private final IDeviceOnlineLogService onlineLogService; - private final AbstractPermissionContext abstractPermissionContext; - public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService, AbstractPermissionContext abstractPermissionContext) { + + public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService) { this.busDeviceInfoService = busDeviceInfoService; this.onlineLogService = onlineLogService; - this.abstractPermissionContext = abstractPermissionContext; + } @BussinessLog(value = "数据统计概况统计") @@ -97,14 +97,6 @@ endTimeDate = new Date(); } - //按日期求和 - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("b.dept_id", dataScope.getDeptIds()); - } - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("b.secret_level",user.getSecretLevel()); - List dtos = onlineLogService.selectDeviceLog(query); Map map = new HashMap<>(); if(CollectionUtil.isNotEmpty(dtos)){ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java index 887171c..4f683ef 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java @@ -24,5 +24,5 @@ */ List selectBusDeviceInfoPage(@Param("page") Page page, @Param("ew") QueryWrapper query); - List searchStatusByArea(); + List searchStatusByArea(@Param("ew") QueryWrapper query); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml index 0eedcbd..5e198d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml @@ -112,8 +112,12 @@ sum(case when device_status = 1 then 1 ELSE 0 end ) as onlineNum, sum(case when device_status = 0 then 1 ELSE 0 end ) as offlineNum, sum(1) as total - FROM - bus_device_info + FROM bus_device_info + + + ${ew.sqlSegment} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java index 3e0994e..72b4919 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java @@ -55,6 +55,9 @@ @ApiModelProperty(value = "分组相机id,用逗号隔开", dataType = "String") @TableField("camera_ids") private String cameraIds; + @ApiModelProperty(value = "用户id,用逗号隔开", dataType = "String") + @TableField(exist = false) + private String personIds; @ApiModelProperty(value = "相机url集合", dataType = "String") @TableField(exist = false) private List cameras; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java index 02c64c9..fd65c83 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java @@ -3,7 +3,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import java.util.List; @@ -21,4 +24,6 @@ * 设备分组管理 分页检索 */ List selectDeviceGroupInfoPage(Page page, QueryWrapper query); + + Page userGroupPage(SysUserGroupVO deviceGroupInfoVO); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java index 2a4a9fc..fd6bce8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java @@ -35,6 +35,7 @@ import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.service.IAreaService; import com.casic.missiles.modular.video.dto.DeviceDTO; +import org.apache.ibatis.annotations.Param; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -69,7 +70,36 @@ this.hikService = hikService; } + @Override + public > E page(E page) { + return super.page(page); + } + @Override + public > E page(E page, Wrapper query) { + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + QueryWrapper pageQuery = query((QueryWrapper) query, "id", user.getId()); + pageQuery.le("secret_level", user.getSecretLevel()); + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + pageQuery.in("dept_id", dataScope.getDeptIds()); + } + + IPage infoIPage = super.page(page, pageQuery); + infoIPage.getRecords().forEach(this::wrapInfo); + return (E) infoIPage; + } + + private QueryWrapper query(QueryWrapper query, String column, Long userId) { + return query.inSql(column, "SELECT\n" + + "device_id\n" + + "FROM\n" + + "\tsys_user_group a\n" + + "\tINNER JOIN sys_group_rel_user b ON a.id = b.group_id\n" + + "\tINNER JOIN sys_group_device c on a.id = c.group_id\n" + + "\tWHERE b.user_id = " + userId + "\n" + + "\tGROUP BY c.device_id"); + } @Override public List selectBusDeviceInfoPage(Page page, QueryWrapper query) { @@ -78,7 +108,9 @@ @Override public List list(Wrapper queryWrapper) { - List busDeviceInfos = super.list(queryWrapper); + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + QueryWrapper pageQuery = query((QueryWrapper) queryWrapper, "id", user.getId()); + List busDeviceInfos = super.list(pageQuery); busDeviceInfos.forEach(this::wrapInfo); return busDeviceInfos; } @@ -92,13 +124,6 @@ return busDeviceInfo; } - @Override - public > E page(E page, Wrapper queryWrapper) { - IPage infoIPage = super.page(page, queryWrapper); - infoIPage.getRecords().forEach(this::wrapInfo); - return (E) infoIPage; - } - private void wrapInfo(BusDeviceInfo busDeviceInfo) { Area area = areaService.getById(busDeviceInfo.getArea()); if (area != null) { @@ -114,19 +139,19 @@ @Override public TotalDataDTO total(QueryWrapper query) { AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); + query.le("secret_level", user.getSecretLevel()); DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); //根据数据权限读取组织下用户信息 if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { query.in("dept_id", dataScope.getDeptIds()); } - query.select("count(1) as totalNum", "sum(case device_status when 1 then 1 else 0 end ) as onLineNum"); - + query.select("count(1) as TOTALNUM", "sum(case device_status when 1 then 1 else 0 end ) as ONLINENUM"); + query(query,"id",user.getId()); List> maps = this.baseMapper.selectMaps(query); TotalDataDTO dataDTO = new TotalDataDTO(); maps.forEach(map -> { - dataDTO.setDevTotal(Convert.toInt(map.getOrDefault("totalNum", 0))); - dataDTO.setOnlineNum(Convert.toInt(map.getOrDefault("onLineNum", 0))); + dataDTO.setDevTotal(Convert.toInt(map.getOrDefault("TOTALNUM", 0))); + dataDTO.setOnlineNum(Convert.toInt(map.getOrDefault("ONLINENUM", 0))); if (dataDTO.getDevTotal() == 0) { dataDTO.setOnlineRate(0D); } else { @@ -143,8 +168,8 @@ List> maps = getAreaData(query); Map areaMap = maps.stream().map(map -> { AreaDataDTO areaDataDTO = new AreaDataDTO(); - areaDataDTO.setValue(Convert.toInt(map.getOrDefault("totalNum", 0))); - areaDataDTO.setCode(Convert.toStr(map.get("area"))); + areaDataDTO.setValue(Convert.toInt(map.getOrDefault("TOTALNUM", 0))); + areaDataDTO.setCode(Convert.toStr(map.get("AREA"))); return areaDataDTO; }).collect(Collectors.toMap(AreaDataDTO::getCode, AreaDataDTO::getValue)); return areaMapToList(DataConstants.DICT_AREA, areaMap); @@ -156,8 +181,8 @@ List> maps = getAreaData(query); Map areaMap = maps.stream().map(map -> { AreaDataDTO areaDataDTO = new AreaDataDTO(); - areaDataDTO.setValue(Convert.toInt(map.getOrDefault("onLineNum", 0))); - areaDataDTO.setCode(Convert.toStr(map.get("area"))); + areaDataDTO.setValue(Convert.toInt(map.getOrDefault("ONLINENUM", 0))); + areaDataDTO.setCode(Convert.toStr(map.get("AREA"))); return areaDataDTO; }).collect(Collectors.toMap(AreaDataDTO::getCode, AreaDataDTO::getValue)); return areaMapToList(DataConstants.DICT_AREA, areaMap); @@ -189,10 +214,10 @@ normalIds.add(dept.getId()); //挂载设备信息 - LambdaQueryWrapper deviceQuery = new LambdaQueryWrapper<>(); - deviceQuery.eq(BusDeviceInfo::getDeptId, deptDTO.getId()); + QueryWrapper deviceQuery = new QueryWrapper<>(); + deviceQuery.eq("dept_id", deptDTO.getId()); //判定只可查看以下密级 - deviceQuery.le(BusDeviceInfo::getSecretLevel,user.getSecretLevel()); + deviceQuery.le("secret_level", user.getSecretLevel()); List deviceInfos = this.list(deviceQuery); deptDTO.setChildrenNodes(deviceInfos.stream().map(this::createDeptDTO).collect(Collectors.toList())); } @@ -251,7 +276,7 @@ } if (StrUtil.isEmpty(result.getCameraIndexCode())) { - errors.add("第" + index + "行设备编号不能为空!"); + errors.add("第" + index + "行设备国标号不能为空!"); } importDTOS.add(result); index++; @@ -323,7 +348,17 @@ @Override public List searchStatusByArea() { - return this.baseMapper.searchStatusByArea(); + QueryWrapper query = new QueryWrapper<>(); + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + //根据数据权限读取组织下用户信息 + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + query.in("dept_id", dataScope.getDeptIds()); + } + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + query.le("secret_level", user.getSecretLevel()); + query(query,"id",user.getId()); + + return this.baseMapper.searchStatusByArea(query); } /** @@ -349,10 +384,12 @@ if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { query.in("dept_id", dataScope.getDeptIds()); } + query.select("AREA", "count(1) as TOTALNUM", "sum(case device_status when 1 then 1 else 0 end) as ONLINENUM"); AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - query.select("area", "count(1) as totalNum", "sum(case device_status when 1 then 1 else 0 end) as onLineNum"); - query.groupBy("area"); + query.le("secret_level", user.getSecretLevel()); + query(query,"id",user.getId()); + + query.groupBy("AREA"); List> maps = this.baseMapper.selectMaps(query); return maps; } @@ -376,6 +413,7 @@ /** * 设备接口实现 + * * @param id 设备主键 * @return */ @@ -386,7 +424,6 @@ } /** - * * @param deviceId 设备ID * @return */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java index 69710d6..9ce8fbd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java @@ -1,25 +1,42 @@ package com.casic.missiles.modular.device.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.modular.data.constants.DataConstants; import com.casic.missiles.modular.device.dao.DeviceGroupInfoMapper; import com.casic.missiles.modular.device.dto.CameraDTO; +import com.casic.missiles.modular.device.dto.GroupRelDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.BusDeviceInfo; import com.casic.missiles.modular.device.model.DeviceGroupInfo; +import com.casic.missiles.modular.device.model.SysGroupDevice; import com.casic.missiles.modular.device.service.IBusDeviceInfoService; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysGroupRelUser; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.service.ISysGroupRelUserService; +import com.casic.missiles.modular.system.service.ISysUserGroupService; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.Serializable; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** @@ -34,10 +51,18 @@ public class DeviceGroupInfoServiceImpl extends ServiceImpl implements IDeviceGroupInfoService { private final AbstractDictService dictService; private final IBusDeviceInfoService deviceInfoService; + private final ISysUserGroupService groupService; + private final AbstractPermissionContext permissionContext; + private final ISysGroupDeviceService sysGroupDeviceService; + private final ISysGroupRelUserService groupRelUserService; - public DeviceGroupInfoServiceImpl(AbstractDictService dictService, IBusDeviceInfoService deviceInfoService) { + public DeviceGroupInfoServiceImpl(AbstractDictService dictService, IBusDeviceInfoService deviceInfoService, ISysUserGroupService groupService, AbstractPermissionContext permissionContext, ISysGroupDeviceService sysGroupDeviceService, ISysGroupRelUserService groupRelUserService) { this.dictService = dictService; this.deviceInfoService = deviceInfoService; + this.groupService = groupService; + this.permissionContext = permissionContext; + this.sysGroupDeviceService = sysGroupDeviceService; + this.groupRelUserService = groupRelUserService; } @Override @@ -45,6 +70,88 @@ return this.baseMapper.selectDeviceGroupInfoPage(page, query); } + @Override + public boolean updateById(DeviceGroupInfo entity) { + AuthUser user = permissionContext.getAuthService().getLoginUser(); + SysUserGroup sysUserGroup = BeanUtil.copyProperties(entity,SysUserGroup.class); + sysUserGroup.setCreateId(user.getId()); + sysUserGroup.setDeptId(user.getDeptId()); + batchSave(entity,sysUserGroup.getId()); + return groupService.updateById(sysUserGroup); + } + private void batchSave(DeviceGroupInfo entity,Long groupId){ + GroupRelDTO groupRelDTO = new GroupRelDTO(); + groupRelDTO.setGroupId(groupId); + if(StrUtil.isNotEmpty(entity.getCameraIds())){ + long[] longs = StrUtil.splitToLong(entity.getCameraIds(),","); + List devices = new ArrayList<>(); + for (long aLong : longs) { + devices.add(aLong); + } + groupRelDTO.setDeviceIds(devices); + } + if(StrUtil.isNotEmpty(entity.getPersonIds())){ + long[] longs = StrUtil.splitToLong(entity.getPersonIds(),","); + List persons = new ArrayList<>(); + for (long aLong : longs) { + persons.add(aLong); + } + groupRelDTO.setUserIds(persons); + } + sysGroupDeviceService.batchAdd(groupRelDTO); + } + @Transactional + @Override + public boolean save(DeviceGroupInfo entity) { + AuthUser user = permissionContext.getAuthService().getLoginUser(); + SysUserGroup sysUserGroup = BeanUtil.copyProperties(entity,SysUserGroup.class); + sysUserGroup.setCreateId(user.getId()); + sysUserGroup.setDeptId(user.getDeptId()); + groupService.save(sysUserGroup); + batchSave(entity,sysUserGroup.getId()); + return true; + } + + @Transactional + @Override + public Page userGroupPage(SysUserGroupVO deviceGroupInfoVO) { + + Page page = PageFactory.defaultPage(); + QueryWrapper query = deviceGroupInfoVO.genQuery(); + List sysUserGroups = groupService.selectSysUserGroupPage(page, query); + + List sysUserGroupDTOS = new ArrayList<>(); + for (SysUserGroup record : sysUserGroups) { + record.setSafeName(dictService.getDictNameByCode(DataConstants.DICT_SECRET_LEVEL_TYPE, record.getSafe() + "")); + SysUserGroupDTO dto = BeanUtil.copyProperties(record, SysUserGroupDTO.class); + sysUserGroupDTOS.add(dto); + //查询关联设备 + LambdaQueryWrapper deviceQuery = new LambdaQueryWrapper<>(); + deviceQuery.eq(SysGroupDevice::getGroupId, record.getId()); + List devices = sysGroupDeviceService.list(deviceQuery); + if (devices != null) { + List deviceList = devices.stream().map(SysGroupDevice::getDeviceId).collect(Collectors.toList()); + dto.setCameraIds(StrUtil.join(",", deviceList)); + dto.setCameraNum(deviceList.size()); + } + + //查询关联人员 + LambdaQueryWrapper personQuery = new LambdaQueryWrapper<>(); + personQuery.eq(SysGroupRelUser::getGroupId, record.getId()); + List persons = groupRelUserService.list(personQuery); + if (persons != null) { + List personIds = persons.stream().map(SysGroupRelUser::getUserId).collect(Collectors.toList()); + dto.setPersonIds(StrUtil.join(",", personIds)); + } + + } + Page pageRes = PageFactory.defaultPage(); + pageRes.setTotal(page.getTotal()); + pageRes.setRecords(sysUserGroupDTOS); + page.setRecords(sysUserGroups); + return pageRes; + } + @Transactional @Override public > E page(E page, Wrapper queryWrapper) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java index e12c638..496ef2e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java @@ -3,7 +3,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dao.DeviceOnlineLogMapper; +import com.casic.missiles.modular.device.model.BusDeviceInfo; import com.casic.missiles.modular.device.model.DeviceOnlineLog; import com.casic.missiles.modular.device.service.IDeviceOnlineLogService; import org.springframework.stereotype.Service; @@ -21,6 +26,12 @@ */ @Service public class DeviceOnlineLogServiceImpl extends ServiceImpl implements IDeviceOnlineLogService { + private final AbstractPermissionContext abstractPermissionContext; + + public DeviceOnlineLogServiceImpl(AbstractPermissionContext abstractPermissionContext) { + this.abstractPermissionContext = abstractPermissionContext; + } + @Override public List selectDeviceOnlineLogPage(Page page, QueryWrapper query) { return this.baseMapper.selectDeviceOnlineLogPage(page, query); @@ -28,6 +39,27 @@ @Override public List selectDeviceLog(QueryWrapper query) { + + //按日期求和 + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + query.in("b.dept_id", dataScope.getDeptIds()); + } + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + query.le("b.secret_level",user.getSecretLevel()); + + query(query,"b.id",user.getId()); return this.baseMapper.selectDeviceLog(query); } + + private QueryWrapper query(QueryWrapper query, String column, Long userId) { + return query.inSql(column, "SELECT\n" + + "device_id\n" + + "FROM\n" + + "\tsys_user_group a\n" + + "\tINNER JOIN sys_group_rel_user b ON a.id = b.group_id\n" + + "\tINNER JOIN sys_group_device c on a.id = c.group_id\n" + + "\tWHERE b.user_id = " + userId + "\n" + + "\tGROUP BY c.device_id"); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java index 8333f16..c40eb6e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java @@ -17,6 +17,8 @@ import com.casic.missiles.modular.wvp.dto.device.WvpChannelDTO; import com.casic.missiles.modular.wvp.dto.device.WvpDeviceDTO; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -44,7 +46,8 @@ private String dhType; @Resource private IBusDeviceInfoService deviceInfoService; - @Resource(name = "dhSdkService") + @Qualifier("dhSdkService") + @Autowired(required = false) private IVideoSdkService sdkService; @Transactional @@ -92,7 +95,7 @@ //读取设备信息 List list = deviceInfoService.list(); List newList = list.stream().filter(info -> dhType.contains(info.getNvrManufacture())).distinct().collect(Collectors.toList()); - + if(sdkService!=null){ Set set = new HashSet<>(); List channelDTOS = new ArrayList<>(); for (BusDeviceInfo busDeviceInfo : newList) { @@ -125,6 +128,7 @@ } } } + } } @Resource diff --git a/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java b/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java index 13072fb..80320e0 100644 --- a/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java +++ b/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java @@ -56,6 +56,8 @@ currentFold = getLibraryFold(); if (dynamicParseUtil == null) { try { + System.out.println("curr:"+LibraryLoad.class.getClassLoader().getResource("dynamic-lib-load.xml")); + System.out.println(currentFold); dynamicParseUtil = new DynamicParseUtil( LibraryLoad.class.getClassLoader().getResourceAsStream("dynamic-lib-load.xml")); diff --git a/casic-video-sdk/casic-video-sdk-support/src/main/java/com/casic/missiles/modular/video/service/IDeviceInfoSupportService.java b/casic-video-sdk/casic-video-sdk-support/src/main/java/com/casic/missiles/modular/video/service/IDeviceInfoSupportService.java index c6a9759..a8a0309 100644 --- a/casic-video-sdk/casic-video-sdk-support/src/main/java/com/casic/missiles/modular/video/service/IDeviceInfoSupportService.java +++ b/casic-video-sdk/casic-video-sdk-support/src/main/java/com/casic/missiles/modular/video/service/IDeviceInfoSupportService.java @@ -8,6 +8,13 @@ */ public interface IDeviceInfoSupportService { /** + * 根据IP查找设备信息 + * + * @param deviceId 设备ID + * @return + */ + DeviceDTO selectByDeviceIp(String deviceId); + /** * 设备信息读取服务 * * @param id 设备主键 @@ -15,11 +22,5 @@ */ DeviceDTO getByDeviceId(Long id); - /** - * 根据IP查找设备信息 - * - * @param deviceId 设备ID - * @return - */ - DeviceDTO selectByDeviceIp(String deviceId); + } diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 0c00793..073c0ff 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -136,11 +136,21 @@ com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-export + ${admin.version} com.casic + casic-admin-group + ${admin.version} + + + + + + + + com.casic casic-video-sdk-hik ${pro.version} diff --git a/casic-web/src/main/java/com/casic/missiles/config/InitUtils.java b/casic-web/src/main/java/com/casic/missiles/config/InitUtils.java index fc60708..b8c2d86 100644 --- a/casic-web/src/main/java/com/casic/missiles/config/InitUtils.java +++ b/casic-web/src/main/java/com/casic/missiles/config/InitUtils.java @@ -1,66 +1,66 @@ -package com.casic.missiles.config; - -import com.netsdk.common.Res; -import com.netsdk.demo.module.LoginModule; -import com.netsdk.lib.NetSDKLib; -import com.netsdk.lib.ToolKits; -import com.sun.jna.Pointer; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import javax.annotation.PostConstruct; -import java.nio.ByteBuffer; - -/** - * 初始化 - * - * @author Yan Xu - * @version 1.0 - * @date 2021/8/6 - * Copyright © goodits - */ -@Component -@Slf4j -public class InitUtils { - - /** - * // 设备断线回调: 通过 CLIENT_Init 设置该回调函数,当设备出现断线时,SDK会调用该函数 - */ - private static class DisConnect implements NetSDKLib.fDisConnect { - @Override - public void invoke(NetSDKLib.LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { - log.info("Device[{}}] Port[{}}] DisConnect!\n", pchDVRIP, nDVRPort); - // 断线提示 - log.info(Res.string() + " : " + Res.string().getDisConnectReconnecting()); - } - } - - /** - * // 网络连接恢复,设备重连成功回调 - * // 通过 CLIENT_SetAutoReconnect 设置该回调函数,当已断线的设备重连成功时,SDK会调用该函数 - */ - private static class HaveReConnect implements NetSDKLib.fHaveReConnect { - @Override - public void invoke(NetSDKLib.LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { - log.info("ReConnect Device[{}] Port[{}]\n", pchDVRIP, nDVRPort); - // 重连提示 - log.info(Res.string() + " : " + Res.string().getOnline()); - } - } - - /** - * 设备断线通知回调 - */ - private static final DisConnect DIS_CONNECT = new DisConnect(){}; - - /** - * 网络连接恢复 - */ - private static final HaveReConnect HAVE_RE_CONNECT = new HaveReConnect(); - - - @PostConstruct - void init() { - LoginModule.init(DIS_CONNECT, HAVE_RE_CONNECT); - } -} +//package com.casic.missiles.config; +// +//import com.netsdk.common.Res; +//import com.netsdk.demo.module.LoginModule; +//import com.netsdk.lib.NetSDKLib; +//import com.netsdk.lib.ToolKits; +//import com.sun.jna.Pointer; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.stereotype.Component; +// +//import javax.annotation.PostConstruct; +//import java.nio.ByteBuffer; +// +///** +// * 初始化 +// * +// * @author Yan Xu +// * @version 1.0 +// * @date 2021/8/6 +// * Copyright © goodits +// */ +//@Component +//@Slf4j +//public class InitUtils { +// +// /** +// * // 设备断线回调: 通过 CLIENT_Init 设置该回调函数,当设备出现断线时,SDK会调用该函数 +// */ +// private static class DisConnect implements NetSDKLib.fDisConnect { +// @Override +// public void invoke(NetSDKLib.LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { +// log.info("Device[{}}] Port[{}}] DisConnect!\n", pchDVRIP, nDVRPort); +// // 断线提示 +// log.info(Res.string() + " : " + Res.string().getDisConnectReconnecting()); +// } +// } +// +// /** +// * // 网络连接恢复,设备重连成功回调 +// * // 通过 CLIENT_SetAutoReconnect 设置该回调函数,当已断线的设备重连成功时,SDK会调用该函数 +// */ +// private static class HaveReConnect implements NetSDKLib.fHaveReConnect { +// @Override +// public void invoke(NetSDKLib.LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { +// log.info("ReConnect Device[{}] Port[{}]\n", pchDVRIP, nDVRPort); +// // 重连提示 +// log.info(Res.string() + " : " + Res.string().getOnline()); +// } +// } +// +// /** +// * 设备断线通知回调 +// */ +// private static final DisConnect DIS_CONNECT = new DisConnect(){}; +// +// /** +// * 网络连接恢复 +// */ +// private static final HaveReConnect HAVE_RE_CONNECT = new HaveReConnect(); +// +// +// @PostConstruct +// void init() { +// LoginModule.init(DIS_CONNECT, HAVE_RE_CONNECT); +// } +//} diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 890c069..151e5ee 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -22,10 +22,15 @@ artemis-http-client 1.1.3 + + + + + com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-group + ${admin.version} com.casic diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java index 371ec46..72af255 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceInfoController.java @@ -145,12 +145,7 @@ public ResponseDataDTO> listPage(BusDeviceInfoVO busDeviceInfoVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = busDeviceInfoVO.genQuery(); - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("dept_id", dataScope.getDeptIds()); - } + page = busDeviceInfoService.page(page, query); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java index 08b7023..d999043 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/DeviceGroupInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.controller; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,14 +11,17 @@ import com.casic.missiles.model.form.IdForms; import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.dto.IdDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; -import com.casic.missiles.modular.device.vo.DeviceGroupInfoVO; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -38,21 +42,11 @@ this.deviceGroupInfoService = deviceGroupInfoService; } - @ApiIgnore - @ApiOperation(value = "列表查询") - @GetMapping(value = "/list") - public ResponseDataDTO> list(DeviceGroupInfoVO deviceGroupInfoVO) { - QueryWrapper query = deviceGroupInfoVO.genQuery(); - return ResponseDataDTO.success(deviceGroupInfoService.list(query)); - } - @BussinessLog(value = "设备分组管理分页查询") @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") - public ResponseDataDTO> listPage(DeviceGroupInfoVO deviceGroupInfoVO) { - Page page = PageFactory.defaultPage(); - QueryWrapper query = deviceGroupInfoVO.genQuery(); - page = deviceGroupInfoService.page(page, query); + public ResponseDataDTO> listPage(SysUserGroupVO deviceGroupInfoVO) { + Page page = deviceGroupInfoService.userGroupPage(deviceGroupInfoVO); return ResponseDataDTO.success(super.packForBT(page)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java index 65edf87..cee5800 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java @@ -41,12 +41,12 @@ private final IBusDeviceInfoService busDeviceInfoService; private final IDeviceOnlineLogService onlineLogService; - private final AbstractPermissionContext abstractPermissionContext; - public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService, AbstractPermissionContext abstractPermissionContext) { + + public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IDeviceOnlineLogService onlineLogService) { this.busDeviceInfoService = busDeviceInfoService; this.onlineLogService = onlineLogService; - this.abstractPermissionContext = abstractPermissionContext; + } @BussinessLog(value = "数据统计概况统计") @@ -97,14 +97,6 @@ endTimeDate = new Date(); } - //按日期求和 - DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); - if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { - query.in("b.dept_id", dataScope.getDeptIds()); - } - AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("b.secret_level",user.getSecretLevel()); - List dtos = onlineLogService.selectDeviceLog(query); Map map = new HashMap<>(); if(CollectionUtil.isNotEmpty(dtos)){ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java index 887171c..4f683ef 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/BusDeviceInfoMapper.java @@ -24,5 +24,5 @@ */ List selectBusDeviceInfoPage(@Param("page") Page page, @Param("ew") QueryWrapper query); - List searchStatusByArea(); + List searchStatusByArea(@Param("ew") QueryWrapper query); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml index 0eedcbd..5e198d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceInfoMapper.xml @@ -112,8 +112,12 @@ sum(case when device_status = 1 then 1 ELSE 0 end ) as onlineNum, sum(case when device_status = 0 then 1 ELSE 0 end ) as offlineNum, sum(1) as total - FROM - bus_device_info + FROM bus_device_info + + + ${ew.sqlSegment} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java index 3e0994e..72b4919 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/model/DeviceGroupInfo.java @@ -55,6 +55,9 @@ @ApiModelProperty(value = "分组相机id,用逗号隔开", dataType = "String") @TableField("camera_ids") private String cameraIds; + @ApiModelProperty(value = "用户id,用逗号隔开", dataType = "String") + @TableField(exist = false) + private String personIds; @ApiModelProperty(value = "相机url集合", dataType = "String") @TableField(exist = false) private List cameras; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java index 02c64c9..fd65c83 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/IDeviceGroupInfoService.java @@ -3,7 +3,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.DeviceGroupInfo; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import java.util.List; @@ -21,4 +24,6 @@ * 设备分组管理 分页检索 */ List selectDeviceGroupInfoPage(Page page, QueryWrapper query); + + Page userGroupPage(SysUserGroupVO deviceGroupInfoVO); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java index 2a4a9fc..fd6bce8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceInfoServiceImpl.java @@ -35,6 +35,7 @@ import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.service.IAreaService; import com.casic.missiles.modular.video.dto.DeviceDTO; +import org.apache.ibatis.annotations.Param; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -69,7 +70,36 @@ this.hikService = hikService; } + @Override + public > E page(E page) { + return super.page(page); + } + @Override + public > E page(E page, Wrapper query) { + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + QueryWrapper pageQuery = query((QueryWrapper) query, "id", user.getId()); + pageQuery.le("secret_level", user.getSecretLevel()); + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + pageQuery.in("dept_id", dataScope.getDeptIds()); + } + + IPage infoIPage = super.page(page, pageQuery); + infoIPage.getRecords().forEach(this::wrapInfo); + return (E) infoIPage; + } + + private QueryWrapper query(QueryWrapper query, String column, Long userId) { + return query.inSql(column, "SELECT\n" + + "device_id\n" + + "FROM\n" + + "\tsys_user_group a\n" + + "\tINNER JOIN sys_group_rel_user b ON a.id = b.group_id\n" + + "\tINNER JOIN sys_group_device c on a.id = c.group_id\n" + + "\tWHERE b.user_id = " + userId + "\n" + + "\tGROUP BY c.device_id"); + } @Override public List selectBusDeviceInfoPage(Page page, QueryWrapper query) { @@ -78,7 +108,9 @@ @Override public List list(Wrapper queryWrapper) { - List busDeviceInfos = super.list(queryWrapper); + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + QueryWrapper pageQuery = query((QueryWrapper) queryWrapper, "id", user.getId()); + List busDeviceInfos = super.list(pageQuery); busDeviceInfos.forEach(this::wrapInfo); return busDeviceInfos; } @@ -92,13 +124,6 @@ return busDeviceInfo; } - @Override - public > E page(E page, Wrapper queryWrapper) { - IPage infoIPage = super.page(page, queryWrapper); - infoIPage.getRecords().forEach(this::wrapInfo); - return (E) infoIPage; - } - private void wrapInfo(BusDeviceInfo busDeviceInfo) { Area area = areaService.getById(busDeviceInfo.getArea()); if (area != null) { @@ -114,19 +139,19 @@ @Override public TotalDataDTO total(QueryWrapper query) { AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); + query.le("secret_level", user.getSecretLevel()); DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); //根据数据权限读取组织下用户信息 if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { query.in("dept_id", dataScope.getDeptIds()); } - query.select("count(1) as totalNum", "sum(case device_status when 1 then 1 else 0 end ) as onLineNum"); - + query.select("count(1) as TOTALNUM", "sum(case device_status when 1 then 1 else 0 end ) as ONLINENUM"); + query(query,"id",user.getId()); List> maps = this.baseMapper.selectMaps(query); TotalDataDTO dataDTO = new TotalDataDTO(); maps.forEach(map -> { - dataDTO.setDevTotal(Convert.toInt(map.getOrDefault("totalNum", 0))); - dataDTO.setOnlineNum(Convert.toInt(map.getOrDefault("onLineNum", 0))); + dataDTO.setDevTotal(Convert.toInt(map.getOrDefault("TOTALNUM", 0))); + dataDTO.setOnlineNum(Convert.toInt(map.getOrDefault("ONLINENUM", 0))); if (dataDTO.getDevTotal() == 0) { dataDTO.setOnlineRate(0D); } else { @@ -143,8 +168,8 @@ List> maps = getAreaData(query); Map areaMap = maps.stream().map(map -> { AreaDataDTO areaDataDTO = new AreaDataDTO(); - areaDataDTO.setValue(Convert.toInt(map.getOrDefault("totalNum", 0))); - areaDataDTO.setCode(Convert.toStr(map.get("area"))); + areaDataDTO.setValue(Convert.toInt(map.getOrDefault("TOTALNUM", 0))); + areaDataDTO.setCode(Convert.toStr(map.get("AREA"))); return areaDataDTO; }).collect(Collectors.toMap(AreaDataDTO::getCode, AreaDataDTO::getValue)); return areaMapToList(DataConstants.DICT_AREA, areaMap); @@ -156,8 +181,8 @@ List> maps = getAreaData(query); Map areaMap = maps.stream().map(map -> { AreaDataDTO areaDataDTO = new AreaDataDTO(); - areaDataDTO.setValue(Convert.toInt(map.getOrDefault("onLineNum", 0))); - areaDataDTO.setCode(Convert.toStr(map.get("area"))); + areaDataDTO.setValue(Convert.toInt(map.getOrDefault("ONLINENUM", 0))); + areaDataDTO.setCode(Convert.toStr(map.get("AREA"))); return areaDataDTO; }).collect(Collectors.toMap(AreaDataDTO::getCode, AreaDataDTO::getValue)); return areaMapToList(DataConstants.DICT_AREA, areaMap); @@ -189,10 +214,10 @@ normalIds.add(dept.getId()); //挂载设备信息 - LambdaQueryWrapper deviceQuery = new LambdaQueryWrapper<>(); - deviceQuery.eq(BusDeviceInfo::getDeptId, deptDTO.getId()); + QueryWrapper deviceQuery = new QueryWrapper<>(); + deviceQuery.eq("dept_id", deptDTO.getId()); //判定只可查看以下密级 - deviceQuery.le(BusDeviceInfo::getSecretLevel,user.getSecretLevel()); + deviceQuery.le("secret_level", user.getSecretLevel()); List deviceInfos = this.list(deviceQuery); deptDTO.setChildrenNodes(deviceInfos.stream().map(this::createDeptDTO).collect(Collectors.toList())); } @@ -251,7 +276,7 @@ } if (StrUtil.isEmpty(result.getCameraIndexCode())) { - errors.add("第" + index + "行设备编号不能为空!"); + errors.add("第" + index + "行设备国标号不能为空!"); } importDTOS.add(result); index++; @@ -323,7 +348,17 @@ @Override public List searchStatusByArea() { - return this.baseMapper.searchStatusByArea(); + QueryWrapper query = new QueryWrapper<>(); + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + //根据数据权限读取组织下用户信息 + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + query.in("dept_id", dataScope.getDeptIds()); + } + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + query.le("secret_level", user.getSecretLevel()); + query(query,"id",user.getId()); + + return this.baseMapper.searchStatusByArea(query); } /** @@ -349,10 +384,12 @@ if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { query.in("dept_id", dataScope.getDeptIds()); } + query.select("AREA", "count(1) as TOTALNUM", "sum(case device_status when 1 then 1 else 0 end) as ONLINENUM"); AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); - query.le("secret_level",user.getSecretLevel()); - query.select("area", "count(1) as totalNum", "sum(case device_status when 1 then 1 else 0 end) as onLineNum"); - query.groupBy("area"); + query.le("secret_level", user.getSecretLevel()); + query(query,"id",user.getId()); + + query.groupBy("AREA"); List> maps = this.baseMapper.selectMaps(query); return maps; } @@ -376,6 +413,7 @@ /** * 设备接口实现 + * * @param id 设备主键 * @return */ @@ -386,7 +424,6 @@ } /** - * * @param deviceId 设备ID * @return */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java index 69710d6..9ce8fbd 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceGroupInfoServiceImpl.java @@ -1,25 +1,42 @@ package com.casic.missiles.modular.device.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.modular.data.constants.DataConstants; import com.casic.missiles.modular.device.dao.DeviceGroupInfoMapper; import com.casic.missiles.modular.device.dto.CameraDTO; +import com.casic.missiles.modular.device.dto.GroupRelDTO; +import com.casic.missiles.modular.device.dto.SysUserGroupDTO; import com.casic.missiles.modular.device.model.BusDeviceInfo; import com.casic.missiles.modular.device.model.DeviceGroupInfo; +import com.casic.missiles.modular.device.model.SysGroupDevice; import com.casic.missiles.modular.device.service.IBusDeviceInfoService; import com.casic.missiles.modular.device.service.IDeviceGroupInfoService; +import com.casic.missiles.modular.device.service.ISysGroupDeviceService; +import com.casic.missiles.modular.system.model.SysGroupRelUser; +import com.casic.missiles.modular.system.model.SysUserGroup; +import com.casic.missiles.modular.system.service.ISysGroupRelUserService; +import com.casic.missiles.modular.system.service.ISysUserGroupService; +import com.casic.missiles.modular.system.vo.SysUserGroupVO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.Serializable; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** @@ -34,10 +51,18 @@ public class DeviceGroupInfoServiceImpl extends ServiceImpl implements IDeviceGroupInfoService { private final AbstractDictService dictService; private final IBusDeviceInfoService deviceInfoService; + private final ISysUserGroupService groupService; + private final AbstractPermissionContext permissionContext; + private final ISysGroupDeviceService sysGroupDeviceService; + private final ISysGroupRelUserService groupRelUserService; - public DeviceGroupInfoServiceImpl(AbstractDictService dictService, IBusDeviceInfoService deviceInfoService) { + public DeviceGroupInfoServiceImpl(AbstractDictService dictService, IBusDeviceInfoService deviceInfoService, ISysUserGroupService groupService, AbstractPermissionContext permissionContext, ISysGroupDeviceService sysGroupDeviceService, ISysGroupRelUserService groupRelUserService) { this.dictService = dictService; this.deviceInfoService = deviceInfoService; + this.groupService = groupService; + this.permissionContext = permissionContext; + this.sysGroupDeviceService = sysGroupDeviceService; + this.groupRelUserService = groupRelUserService; } @Override @@ -45,6 +70,88 @@ return this.baseMapper.selectDeviceGroupInfoPage(page, query); } + @Override + public boolean updateById(DeviceGroupInfo entity) { + AuthUser user = permissionContext.getAuthService().getLoginUser(); + SysUserGroup sysUserGroup = BeanUtil.copyProperties(entity,SysUserGroup.class); + sysUserGroup.setCreateId(user.getId()); + sysUserGroup.setDeptId(user.getDeptId()); + batchSave(entity,sysUserGroup.getId()); + return groupService.updateById(sysUserGroup); + } + private void batchSave(DeviceGroupInfo entity,Long groupId){ + GroupRelDTO groupRelDTO = new GroupRelDTO(); + groupRelDTO.setGroupId(groupId); + if(StrUtil.isNotEmpty(entity.getCameraIds())){ + long[] longs = StrUtil.splitToLong(entity.getCameraIds(),","); + List devices = new ArrayList<>(); + for (long aLong : longs) { + devices.add(aLong); + } + groupRelDTO.setDeviceIds(devices); + } + if(StrUtil.isNotEmpty(entity.getPersonIds())){ + long[] longs = StrUtil.splitToLong(entity.getPersonIds(),","); + List persons = new ArrayList<>(); + for (long aLong : longs) { + persons.add(aLong); + } + groupRelDTO.setUserIds(persons); + } + sysGroupDeviceService.batchAdd(groupRelDTO); + } + @Transactional + @Override + public boolean save(DeviceGroupInfo entity) { + AuthUser user = permissionContext.getAuthService().getLoginUser(); + SysUserGroup sysUserGroup = BeanUtil.copyProperties(entity,SysUserGroup.class); + sysUserGroup.setCreateId(user.getId()); + sysUserGroup.setDeptId(user.getDeptId()); + groupService.save(sysUserGroup); + batchSave(entity,sysUserGroup.getId()); + return true; + } + + @Transactional + @Override + public Page userGroupPage(SysUserGroupVO deviceGroupInfoVO) { + + Page page = PageFactory.defaultPage(); + QueryWrapper query = deviceGroupInfoVO.genQuery(); + List sysUserGroups = groupService.selectSysUserGroupPage(page, query); + + List sysUserGroupDTOS = new ArrayList<>(); + for (SysUserGroup record : sysUserGroups) { + record.setSafeName(dictService.getDictNameByCode(DataConstants.DICT_SECRET_LEVEL_TYPE, record.getSafe() + "")); + SysUserGroupDTO dto = BeanUtil.copyProperties(record, SysUserGroupDTO.class); + sysUserGroupDTOS.add(dto); + //查询关联设备 + LambdaQueryWrapper deviceQuery = new LambdaQueryWrapper<>(); + deviceQuery.eq(SysGroupDevice::getGroupId, record.getId()); + List devices = sysGroupDeviceService.list(deviceQuery); + if (devices != null) { + List deviceList = devices.stream().map(SysGroupDevice::getDeviceId).collect(Collectors.toList()); + dto.setCameraIds(StrUtil.join(",", deviceList)); + dto.setCameraNum(deviceList.size()); + } + + //查询关联人员 + LambdaQueryWrapper personQuery = new LambdaQueryWrapper<>(); + personQuery.eq(SysGroupRelUser::getGroupId, record.getId()); + List persons = groupRelUserService.list(personQuery); + if (persons != null) { + List personIds = persons.stream().map(SysGroupRelUser::getUserId).collect(Collectors.toList()); + dto.setPersonIds(StrUtil.join(",", personIds)); + } + + } + Page pageRes = PageFactory.defaultPage(); + pageRes.setTotal(page.getTotal()); + pageRes.setRecords(sysUserGroupDTOS); + page.setRecords(sysUserGroups); + return pageRes; + } + @Transactional @Override public > E page(E page, Wrapper queryWrapper) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java index e12c638..496ef2e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/device/service/impl/DeviceOnlineLogServiceImpl.java @@ -3,7 +3,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dao.DeviceOnlineLogMapper; +import com.casic.missiles.modular.device.model.BusDeviceInfo; import com.casic.missiles.modular.device.model.DeviceOnlineLog; import com.casic.missiles.modular.device.service.IDeviceOnlineLogService; import org.springframework.stereotype.Service; @@ -21,6 +26,12 @@ */ @Service public class DeviceOnlineLogServiceImpl extends ServiceImpl implements IDeviceOnlineLogService { + private final AbstractPermissionContext abstractPermissionContext; + + public DeviceOnlineLogServiceImpl(AbstractPermissionContext abstractPermissionContext) { + this.abstractPermissionContext = abstractPermissionContext; + } + @Override public List selectDeviceOnlineLogPage(Page page, QueryWrapper query) { return this.baseMapper.selectDeviceOnlineLogPage(page, query); @@ -28,6 +39,27 @@ @Override public List selectDeviceLog(QueryWrapper query) { + + //按日期求和 + DataScope dataScope = abstractPermissionContext.getAuthService().getLoginUserDataScope(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(dataScope.getScopeEnums().getCode())) { + query.in("b.dept_id", dataScope.getDeptIds()); + } + AuthUser user = abstractPermissionContext.getAuthService().getLoginUser(); + query.le("b.secret_level",user.getSecretLevel()); + + query(query,"b.id",user.getId()); return this.baseMapper.selectDeviceLog(query); } + + private QueryWrapper query(QueryWrapper query, String column, Long userId) { + return query.inSql(column, "SELECT\n" + + "device_id\n" + + "FROM\n" + + "\tsys_user_group a\n" + + "\tINNER JOIN sys_group_rel_user b ON a.id = b.group_id\n" + + "\tINNER JOIN sys_group_device c on a.id = c.group_id\n" + + "\tWHERE b.user_id = " + userId + "\n" + + "\tGROUP BY c.device_id"); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java index 8333f16..c40eb6e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/hik/service/impl/DeviceStatusServiceImpl.java @@ -17,6 +17,8 @@ import com.casic.missiles.modular.wvp.dto.device.WvpChannelDTO; import com.casic.missiles.modular.wvp.dto.device.WvpDeviceDTO; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -44,7 +46,8 @@ private String dhType; @Resource private IBusDeviceInfoService deviceInfoService; - @Resource(name = "dhSdkService") + @Qualifier("dhSdkService") + @Autowired(required = false) private IVideoSdkService sdkService; @Transactional @@ -92,7 +95,7 @@ //读取设备信息 List list = deviceInfoService.list(); List newList = list.stream().filter(info -> dhType.contains(info.getNvrManufacture())).distinct().collect(Collectors.toList()); - + if(sdkService!=null){ Set set = new HashSet<>(); List channelDTOS = new ArrayList<>(); for (BusDeviceInfo busDeviceInfo : newList) { @@ -125,6 +128,7 @@ } } } + } } @Resource diff --git a/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java b/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java index 13072fb..80320e0 100644 --- a/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java +++ b/casic-video-sdk/casic-video-sdk-dh/src/main/java/com/netsdk/lib/LibraryLoad.java @@ -56,6 +56,8 @@ currentFold = getLibraryFold(); if (dynamicParseUtil == null) { try { + System.out.println("curr:"+LibraryLoad.class.getClassLoader().getResource("dynamic-lib-load.xml")); + System.out.println(currentFold); dynamicParseUtil = new DynamicParseUtil( LibraryLoad.class.getClassLoader().getResourceAsStream("dynamic-lib-load.xml")); diff --git a/casic-video-sdk/casic-video-sdk-support/src/main/java/com/casic/missiles/modular/video/service/IDeviceInfoSupportService.java b/casic-video-sdk/casic-video-sdk-support/src/main/java/com/casic/missiles/modular/video/service/IDeviceInfoSupportService.java index c6a9759..a8a0309 100644 --- a/casic-video-sdk/casic-video-sdk-support/src/main/java/com/casic/missiles/modular/video/service/IDeviceInfoSupportService.java +++ b/casic-video-sdk/casic-video-sdk-support/src/main/java/com/casic/missiles/modular/video/service/IDeviceInfoSupportService.java @@ -8,6 +8,13 @@ */ public interface IDeviceInfoSupportService { /** + * 根据IP查找设备信息 + * + * @param deviceId 设备ID + * @return + */ + DeviceDTO selectByDeviceIp(String deviceId); + /** * 设备信息读取服务 * * @param id 设备主键 @@ -15,11 +22,5 @@ */ DeviceDTO getByDeviceId(Long id); - /** - * 根据IP查找设备信息 - * - * @param deviceId 设备ID - * @return - */ - DeviceDTO selectByDeviceIp(String deviceId); + } diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 0c00793..073c0ff 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -136,11 +136,21 @@ com.casic - casic-video-sdk-dh - ${pro.version} + casic-admin-export + ${admin.version} com.casic + casic-admin-group + ${admin.version} + + + + + + + + com.casic casic-video-sdk-hik ${pro.version} diff --git a/casic-web/src/main/java/com/casic/missiles/config/InitUtils.java b/casic-web/src/main/java/com/casic/missiles/config/InitUtils.java index fc60708..b8c2d86 100644 --- a/casic-web/src/main/java/com/casic/missiles/config/InitUtils.java +++ b/casic-web/src/main/java/com/casic/missiles/config/InitUtils.java @@ -1,66 +1,66 @@ -package com.casic.missiles.config; - -import com.netsdk.common.Res; -import com.netsdk.demo.module.LoginModule; -import com.netsdk.lib.NetSDKLib; -import com.netsdk.lib.ToolKits; -import com.sun.jna.Pointer; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import javax.annotation.PostConstruct; -import java.nio.ByteBuffer; - -/** - * 初始化 - * - * @author Yan Xu - * @version 1.0 - * @date 2021/8/6 - * Copyright © goodits - */ -@Component -@Slf4j -public class InitUtils { - - /** - * // 设备断线回调: 通过 CLIENT_Init 设置该回调函数,当设备出现断线时,SDK会调用该函数 - */ - private static class DisConnect implements NetSDKLib.fDisConnect { - @Override - public void invoke(NetSDKLib.LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { - log.info("Device[{}}] Port[{}}] DisConnect!\n", pchDVRIP, nDVRPort); - // 断线提示 - log.info(Res.string() + " : " + Res.string().getDisConnectReconnecting()); - } - } - - /** - * // 网络连接恢复,设备重连成功回调 - * // 通过 CLIENT_SetAutoReconnect 设置该回调函数,当已断线的设备重连成功时,SDK会调用该函数 - */ - private static class HaveReConnect implements NetSDKLib.fHaveReConnect { - @Override - public void invoke(NetSDKLib.LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { - log.info("ReConnect Device[{}] Port[{}]\n", pchDVRIP, nDVRPort); - // 重连提示 - log.info(Res.string() + " : " + Res.string().getOnline()); - } - } - - /** - * 设备断线通知回调 - */ - private static final DisConnect DIS_CONNECT = new DisConnect(){}; - - /** - * 网络连接恢复 - */ - private static final HaveReConnect HAVE_RE_CONNECT = new HaveReConnect(); - - - @PostConstruct - void init() { - LoginModule.init(DIS_CONNECT, HAVE_RE_CONNECT); - } -} +//package com.casic.missiles.config; +// +//import com.netsdk.common.Res; +//import com.netsdk.demo.module.LoginModule; +//import com.netsdk.lib.NetSDKLib; +//import com.netsdk.lib.ToolKits; +//import com.sun.jna.Pointer; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.stereotype.Component; +// +//import javax.annotation.PostConstruct; +//import java.nio.ByteBuffer; +// +///** +// * 初始化 +// * +// * @author Yan Xu +// * @version 1.0 +// * @date 2021/8/6 +// * Copyright © goodits +// */ +//@Component +//@Slf4j +//public class InitUtils { +// +// /** +// * // 设备断线回调: 通过 CLIENT_Init 设置该回调函数,当设备出现断线时,SDK会调用该函数 +// */ +// private static class DisConnect implements NetSDKLib.fDisConnect { +// @Override +// public void invoke(NetSDKLib.LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { +// log.info("Device[{}}] Port[{}}] DisConnect!\n", pchDVRIP, nDVRPort); +// // 断线提示 +// log.info(Res.string() + " : " + Res.string().getDisConnectReconnecting()); +// } +// } +// +// /** +// * // 网络连接恢复,设备重连成功回调 +// * // 通过 CLIENT_SetAutoReconnect 设置该回调函数,当已断线的设备重连成功时,SDK会调用该函数 +// */ +// private static class HaveReConnect implements NetSDKLib.fHaveReConnect { +// @Override +// public void invoke(NetSDKLib.LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { +// log.info("ReConnect Device[{}] Port[{}]\n", pchDVRIP, nDVRPort); +// // 重连提示 +// log.info(Res.string() + " : " + Res.string().getOnline()); +// } +// } +// +// /** +// * 设备断线通知回调 +// */ +// private static final DisConnect DIS_CONNECT = new DisConnect(){}; +// +// /** +// * 网络连接恢复 +// */ +// private static final HaveReConnect HAVE_RE_CONNECT = new HaveReConnect(); +// +// +// @PostConstruct +// void init() { +// LoginModule.init(DIS_CONNECT, HAVE_RE_CONNECT); +// } +//} diff --git a/casic-web/src/main/java/com/casic/missiles/test/TestLogin.java b/casic-web/src/main/java/com/casic/missiles/test/TestLogin.java deleted file mode 100644 index 9fb54ea..0000000 --- a/casic-web/src/main/java/com/casic/missiles/test/TestLogin.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.casic.missiles.test; - -import com.netsdk.demo.module.LoginModule; - -public class TestLogin { - public static void main(String[] args) { - LoginModule.init(null,null); - System.out.println(LoginModule.login("192.168.83.171", 37777, "admin", "admin123"));; - } -}