|
@@ -6,6 +6,7 @@ import com.fdkankan.fusion.common.util.DataUtil;
|
|
|
import com.fdkankan.fusion.common.util.DateUtils;
|
|
|
import com.fdkankan.fusion.entity.TmCamera;
|
|
|
import com.fdkankan.fusion.entity.TmDepartment;
|
|
|
+import com.fdkankan.fusion.entity.TmUser;
|
|
|
import com.fdkankan.fusion.exception.BusinessException;
|
|
|
import com.fdkankan.fusion.request.DataParam;
|
|
|
import com.fdkankan.fusion.response.DataGroupVo;
|
|
@@ -29,53 +30,55 @@ public class DataService implements IDataService {
|
|
|
ITmProjectService tmProjectService;
|
|
|
@Autowired
|
|
|
ICameraDetailService cameraDetailService;
|
|
|
+ @Autowired
|
|
|
+ ITmUserService tmUserService;
|
|
|
|
|
|
@Override
|
|
|
public Object sceneGroupByDept(DataParam param) {
|
|
|
|
|
|
- HashMap<String,List<Long>> deptIdMap = new HashMap<>();
|
|
|
- HashMap<Long,Long> cameraIdMap = new HashMap<>();
|
|
|
+ HashMap<String,List<String>> deptIdMap = new HashMap<>();
|
|
|
+ HashMap<String,Long> userMap = new HashMap<>();
|
|
|
String deptId = tmDepartmentService.getDeptId();
|
|
|
List<TmDepartment> sonByDeptId = tmDepartmentService.getSonByDeptId(deptId);
|
|
|
List<String> deptIds = sonByDeptId.stream().map(TmDepartment::getId).collect(Collectors.toList());
|
|
|
deptIds.add(deptId);
|
|
|
- List<TmCamera> list = tmCameraService.getByDeptIds(deptIds);
|
|
|
- for (TmCamera tmCamera : list) {
|
|
|
- if(deptIdMap.get(tmCamera.getDeptId()) == null){
|
|
|
- List<Long> cameraIdList = new ArrayList<>();
|
|
|
- cameraIdList.add(tmCamera.getFdCameraId());
|
|
|
- deptIdMap.put(tmCamera.getDeptId(),cameraIdList);
|
|
|
+ List<TmUser> list = tmUserService.getByDeptIds(deptIds);
|
|
|
+ for (TmUser tmUser : list) {
|
|
|
+ if(deptIdMap.get(tmUser.getDeptId()) == null){
|
|
|
+ List<String> userIdList = new ArrayList<>();
|
|
|
+ userIdList.add(tmUser.getUserName());
|
|
|
+ deptIdMap.put(tmUser.getDeptId(),userIdList);
|
|
|
}else {
|
|
|
- deptIdMap.get(tmCamera.getDeptId()).add(tmCamera.getFdCameraId());
|
|
|
+ deptIdMap.get(tmUser.getDeptId()).add(tmUser.getUserName());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- List<Long> cameraIds = list.stream().map(TmCamera::getFdCameraId).collect(Collectors.toList());
|
|
|
- List<DataGroupVo> cameraCountList = new ArrayList<>();
|
|
|
- if(!cameraIds.isEmpty()){
|
|
|
- cameraCountList = scenePlusService.groupByCameraId(param,cameraIds);
|
|
|
+ List<String> userNameList = list.stream().map(TmUser::getUserName).collect(Collectors.toList());
|
|
|
+ List<DataGroupVo> userCountList = new ArrayList<>();
|
|
|
+ if(!userNameList.isEmpty()){
|
|
|
+ userCountList = scenePlusService.groupByUserList(param,userNameList);
|
|
|
}
|
|
|
- for (DataGroupVo dataGroupVo : cameraCountList) {
|
|
|
- cameraIdMap.put(Long.valueOf(dataGroupVo.getGroupKey()),dataGroupVo.getDataCount());
|
|
|
+ for (DataGroupVo dataGroupVo : userCountList) {
|
|
|
+ userMap.put(dataGroupVo.getGroupKey(),dataGroupVo.getDataCount());
|
|
|
}
|
|
|
|
|
|
List<TmDepartment> deptList = getDeptVoList();
|
|
|
|
|
|
List<DataGroupVo> dataGroupVos = new ArrayList<>();
|
|
|
for (TmDepartment department : deptList) {
|
|
|
- List<Long> cameraIdList = deptIdMap.get(department.getId());
|
|
|
+ List<String> uList = deptIdMap.get(department.getId());
|
|
|
Long count = 0L;
|
|
|
|
|
|
- if(cameraIdList != null){
|
|
|
- for (Long cameraId : cameraIdList) {
|
|
|
- count += cameraIdMap.get(cameraId) == null ? 0 : cameraIdMap.get(cameraId);
|
|
|
+ if(uList != null){
|
|
|
+ for (String userName : uList) {
|
|
|
+ count += userMap.get(userName) == null ? 0 : userMap.get(userName);
|
|
|
}
|
|
|
if(!department.getNoStatisticsSon() && department.getChildren() != null && department.getChildren().size() >0){
|
|
|
- count += addCountByDept(department.getChildren(), deptIdMap, cameraIdMap);
|
|
|
+ count += addCountByDept(department.getChildren(), deptIdMap, userMap);
|
|
|
}
|
|
|
}else {
|
|
|
if(!department.getNoStatisticsSon() && department.getChildren() != null && department.getChildren().size() >0){
|
|
|
- count += addCountByDept(department.getChildren(), deptIdMap, cameraIdMap);
|
|
|
+ count += addCountByDept(department.getChildren(), deptIdMap, userMap);
|
|
|
}
|
|
|
}
|
|
|
DataGroupVo vo = new DataGroupVo();
|
|
@@ -87,12 +90,12 @@ public class DataService implements IDataService {
|
|
|
return dataGroupVos;
|
|
|
}
|
|
|
|
|
|
- private Long addCountByDept(List<TmDepartment> departments,HashMap<String,List<Long>>deptIdMap ,HashMap<Long,Long> cameraIdMap){
|
|
|
+ private Long addCountByDept(List<TmDepartment> departments,HashMap<String,List<String>>deptIdMap ,HashMap<String,Long> cameraIdMap){
|
|
|
Long count = 0L;
|
|
|
for (TmDepartment department : departments) {
|
|
|
- List<Long> cameraIdList = deptIdMap.get(department.getId());
|
|
|
+ List<String> cameraIdList = deptIdMap.get(department.getId());
|
|
|
if(cameraIdList != null){
|
|
|
- for (Long cameraId : cameraIdList) {
|
|
|
+ for (String cameraId : cameraIdList) {
|
|
|
count += cameraIdMap.get(cameraId) == null ? 0 : cameraIdMap.get(cameraId);
|
|
|
}
|
|
|
if(department.getChildren() != null && department.getChildren().size() >0){
|
|
@@ -160,12 +163,16 @@ public class DataService implements IDataService {
|
|
|
@Override
|
|
|
public Object cameraGroupType(DataParam param) {
|
|
|
|
|
|
- List<TmCamera> tmCameras = tmCameraService.getByDeptIds(getSonDeptIds());
|
|
|
- List<Long> cameraIds = tmCameras.stream().map(TmCamera::getFdCameraId).collect(Collectors.toList());
|
|
|
+ String deptId = tmDepartmentService.getDeptId();
|
|
|
+ List<TmDepartment> sonByDeptId = tmDepartmentService.getSonByDeptId(deptId);
|
|
|
+ List<String> deptIds = sonByDeptId.stream().map(TmDepartment::getId).collect(Collectors.toList());
|
|
|
+ deptIds.add(deptId);
|
|
|
+ List<TmUser> list = tmUserService.getByDeptIds(deptIds);
|
|
|
+ List<String> userNameList = list.stream().map(TmUser::getUserName).collect(Collectors.toList());
|
|
|
|
|
|
List<DataGroupVo> groupVoList = new ArrayList<>();
|
|
|
- if(!cameraIds.isEmpty()){
|
|
|
- groupVoList = scenePlusService.groupByType(param,cameraIds);
|
|
|
+ if(!userNameList.isEmpty()){
|
|
|
+ groupVoList = scenePlusService.groupByType(param,userNameList);
|
|
|
}
|
|
|
|
|
|
TreeMap<String,Long> countMap = new TreeMap<>();
|