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
+
+
+
+
+
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"));;
- }
-}