lyhzzz 7 ماه پیش
والد
کامیت
7e8a152f85

+ 3 - 2
src/main/java/com/fdkankan/fusion/mapper/IScenePlusMapper.java

@@ -25,12 +25,13 @@ import java.util.List;
 @Mapper
 public interface IScenePlusMapper extends BaseMapper<ScenePlus> {
 
-    List<DataGroupVo> groupByCameraId(@Param("startTime") String startTime, @Param("endTime")String endTime,@Param("cameraIds") List<Long> cameraIds);
+    List<DataGroupVo> groupByUserList(@Param("startTime") String startTime, @Param("endTime")String endTime,@Param("userNameList") List<String> userNameList);
 
-    List<DataGroupVo> groupByType(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("cameraIds") List<Long> cameraIds);
+    List<DataGroupVo> groupByType(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("userNameList") List<String> userNameList);
 
     Page<SceneVo> pageList(Page<Object> objectPage, ScenePram param);
 
     List<JSONObject> getLaserScene(@Param("laserNumList") List<String> laserNumList);
     List<JSONObject> getLaserSceneByName(@Param("sceneName") String sceneName);
+
 }

+ 3 - 3
src/main/java/com/fdkankan/fusion/service/IScenePlusService.java

@@ -24,9 +24,7 @@ public interface IScenePlusService extends IService<ScenePlus> {
 
     ScenePlus getByNum(String sceneNum);
 
-    List<DataGroupVo> groupByCameraId(DataParam param, List<Long> cameraIds);
-
-    List<DataGroupVo> groupByType(DataParam param, List<Long> cameraIds);
+    List<DataGroupVo> groupByType(DataParam param, List<String> userNameList);
 
     Page<SceneVo> pageList(Page<Object> objectPage, ScenePram param);
 
@@ -34,4 +32,6 @@ public interface IScenePlusService extends IService<ScenePlus> {
     List<JSONObject> getLaserSceneByName(String sceneName);
 
     void updateSourceId(Long id, Integer sourceId);
+
+    List<DataGroupVo> groupByUserList(DataParam param, List<String> userNameList);
 }

+ 1 - 0
src/main/java/com/fdkankan/fusion/service/ITmUserService.java

@@ -56,4 +56,5 @@ public interface ITmUserService extends IService<TmUser> {
 
     HashMap<String, TmDepartment> getMapByUserNames(List<String> userNameList);
     HashMap<String, TmUser> getUserMapByUserNames(List<String> userNameList);
+
 }

+ 35 - 28
src/main/java/com/fdkankan/fusion/service/impl/DataService.java

@@ -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<>();

+ 5 - 5
src/main/java/com/fdkankan/fusion/service/impl/ScenePlusServiceImpl.java

@@ -37,15 +37,15 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
         return this.getOne(wrapper);
     }
 
+
     @Override
-    public List<DataGroupVo> groupByCameraId(DataParam param, List<Long> cameraIds) {
-        return getBaseMapper().groupByCameraId(param.getStartTime(),param.getEndTime(),cameraIds);
+    public List<DataGroupVo> groupByUserList(DataParam param, List<String> userNameList) {
+        return getBaseMapper().groupByUserList(param.getStartTime(),param.getEndTime(),userNameList);
     }
 
-
     @Override
-    public List<DataGroupVo> groupByType(DataParam param, List<Long> cameraIds) {
-        return getBaseMapper().groupByType(param.getStartTime(),param.getEndTime(),cameraIds);
+    public List<DataGroupVo> groupByType(DataParam param, List<String> userNameList) {
+        return getBaseMapper().groupByType(param.getStartTime(),param.getEndTime(),userNameList);
     }
 
     @Override

+ 1 - 0
src/main/java/com/fdkankan/fusion/service/impl/TmUserServiceImpl.java

@@ -433,4 +433,5 @@ public class TmUserServiceImpl extends ServiceImpl<ITmUserMapper, TmUser> implem
         list.forEach(e -> map.put(e.getUserName(),e));
         return map;
     }
+
 }

+ 16 - 14
src/main/resources/mapper/fusion/ScenePlusMapper.xml

@@ -3,33 +3,35 @@
 <mapper namespace="com.fdkankan.fusion.mapper.IScenePlusMapper">
 
 
-    <select id="groupByCameraId" resultType="com.fdkankan.fusion.response.DataGroupVo">
-        select camera_id as groupKey ,count(1) as dataCount from t_scene_plus where rec_status = 'A' and other_type is null
-        and  camera_id in
-        <foreach item="cameraId" collection="cameraIds" open="(" separator="," close=")">
-         #{cameraId}
+    <select id="groupByUserList" resultType="com.fdkankan.fusion.response.DataGroupVo">
+        select user_name as groupKey ,count(1) as dataCount from t_scene_plus s left join t_user u on s.user_id = u.id
+                                                            where s.rec_status = 'A' and other_type is null
+        and  u.user_name in
+        <foreach item="userName" collection="userNameList" open="(" separator="," close=")">
+             #{userName}
         </foreach>
         <if test="startTime !=null and startTime !='' ">
-            and create_time &gt;= #{startTime}
+            and s.create_time &gt;= #{startTime}
         </if>
         <if test="endTime !=null and endTime !='' ">
-            and create_time &lt;= #{endTime}
+            and s.create_time &lt;= #{endTime}
         </if>
-        group by camera_id
+        group by u.user_name
 
     </select>
 
     <select id="groupByType" resultType="com.fdkankan.fusion.response.DataGroupVo">
-        select scene_source as groupKey ,count(1) as dataCount from t_scene_plus where rec_status = 'A' and other_type is null
-        and  camera_id in
-        <foreach item="cameraId" collection="cameraIds" open="(" separator="," close=")">
-            #{cameraId}
+        select scene_source as groupKey ,count(1) as dataCount from t_scene_plus  s left join t_user u on s.user_id = u.id
+                                                               where s.rec_status = 'A' and other_type is null
+        and  u.user_name in
+        <foreach item="userName" collection="userNameList" open="(" separator="," close=")">
+            #{userName}
         </foreach>
         <if test="startTime !=null and startTime !='' ">
-            and create_time &gt;= #{startTime}
+            and s.create_time &gt;= #{startTime}
         </if>
         <if test="endTime !=null and endTime !='' ">
-            and create_time &lt;= #{endTime}
+            and s.create_time &lt;= #{endTime}
         </if>
         group by scene_source
     </select>