diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java index 502d49c..ec90990 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java @@ -1,12 +1,12 @@ package com.casic.missiles.modular.system.controller; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.dto.DeviceStatisticDTO; import com.casic.missiles.modular.system.service.IStatisticService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.ResponseStatus; import java.util.List; import java.util.Map; @@ -27,35 +27,71 @@ @RequestMapping("/statistic/peopleCountByDevice") @ResponseBody public Object peopelCountByDevice(String startTime,String endTime) { - List> list = statisticService.peopleCountByDevice(startTime, endTime); + List list = statisticService.peopleCountByDevice(startTime, endTime); return ResponseData.success(list); } @RequestMapping("/statistic/peopleCountByDept") @ResponseBody public Object peopelCountByDept(String startTime,String endTime) { - List> list = statisticService.peopleCountByDept(startTime, endTime); + List> list = statisticService.peopleCountByDept(startTime, endTime,false); return ResponseData.success(list); } + @RequestMapping("/statistic/peopleCountByParentDept") + @ResponseBody + public Object peopleCountByParentDept(String startTime,String endTime) { + List> list = statisticService.peopleCountByDept(startTime, endTime,true); + return ResponseData.success(list); + } + + /** + * 按部门统计打印 + */ + @Deprecated @RequestMapping("/statistic/printCountByDept") @ResponseBody public Object printCountByDept(String startTime,String endTime) { - List> list = statisticService.printCountByDept(startTime, endTime); + List> list = statisticService.printCountByDept(startTime, endTime,false); + return ResponseData.success(list); + } + + /** + * 按部门统计打印(不需要了) + */ + @Deprecated + @RequestMapping("/statistic/printCountByParentDept") + @ResponseBody + public Object printCountByParentDept(String startTime,String endTime) { + List> list = statisticService.printCountByDept(startTime, endTime,true); + return ResponseData.success(list); + } + + @RequestMapping("/statistic/canteenCountByDept") + @ResponseBody + public Object canteenCountByDept(String startTime,String endTime) { + List> list = statisticService.canteenCountByDept(startTime, endTime); return ResponseData.success(list); } @RequestMapping("/statistic/countbyTime") @ResponseBody - public Object countbyTime(String date){ - List> list = statisticService.countByTime(date); + public Object countbyTime(String startDate, String endDate){ + List> list = statisticService.countByTime(startDate,endDate); return ResponseData.success(list); } @RequestMapping("/statistic/countbyDay") @ResponseBody - public Object countbyTime(String startDate, String endDate){ + public Object countbyDay(String startDate, String endDate){ List> list = statisticService.countByDate(startDate, endDate); return ResponseData.success(list); } + + @RequestMapping("/statistic/countbyLocation") + @ResponseBody + public Object countbyLocation(String startTime,String endTime) { + List> list = statisticService.countByLocation(startTime, endTime); + return ResponseData.success(list); + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java index 502d49c..ec90990 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java @@ -1,12 +1,12 @@ package com.casic.missiles.modular.system.controller; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.dto.DeviceStatisticDTO; import com.casic.missiles.modular.system.service.IStatisticService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.ResponseStatus; import java.util.List; import java.util.Map; @@ -27,35 +27,71 @@ @RequestMapping("/statistic/peopleCountByDevice") @ResponseBody public Object peopelCountByDevice(String startTime,String endTime) { - List> list = statisticService.peopleCountByDevice(startTime, endTime); + List list = statisticService.peopleCountByDevice(startTime, endTime); return ResponseData.success(list); } @RequestMapping("/statistic/peopleCountByDept") @ResponseBody public Object peopelCountByDept(String startTime,String endTime) { - List> list = statisticService.peopleCountByDept(startTime, endTime); + List> list = statisticService.peopleCountByDept(startTime, endTime,false); return ResponseData.success(list); } + @RequestMapping("/statistic/peopleCountByParentDept") + @ResponseBody + public Object peopleCountByParentDept(String startTime,String endTime) { + List> list = statisticService.peopleCountByDept(startTime, endTime,true); + return ResponseData.success(list); + } + + /** + * 按部门统计打印 + */ + @Deprecated @RequestMapping("/statistic/printCountByDept") @ResponseBody public Object printCountByDept(String startTime,String endTime) { - List> list = statisticService.printCountByDept(startTime, endTime); + List> list = statisticService.printCountByDept(startTime, endTime,false); + return ResponseData.success(list); + } + + /** + * 按部门统计打印(不需要了) + */ + @Deprecated + @RequestMapping("/statistic/printCountByParentDept") + @ResponseBody + public Object printCountByParentDept(String startTime,String endTime) { + List> list = statisticService.printCountByDept(startTime, endTime,true); + return ResponseData.success(list); + } + + @RequestMapping("/statistic/canteenCountByDept") + @ResponseBody + public Object canteenCountByDept(String startTime,String endTime) { + List> list = statisticService.canteenCountByDept(startTime, endTime); return ResponseData.success(list); } @RequestMapping("/statistic/countbyTime") @ResponseBody - public Object countbyTime(String date){ - List> list = statisticService.countByTime(date); + public Object countbyTime(String startDate, String endDate){ + List> list = statisticService.countByTime(startDate,endDate); return ResponseData.success(list); } @RequestMapping("/statistic/countbyDay") @ResponseBody - public Object countbyTime(String startDate, String endDate){ + public Object countbyDay(String startDate, String endDate){ List> list = statisticService.countByDate(startDate, endDate); return ResponseData.success(list); } + + @RequestMapping("/statistic/countbyLocation") + @ResponseBody + public Object countbyLocation(String startTime,String endTime) { + List> list = statisticService.countByLocation(startTime, endTime); + return ResponseData.success(list); + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java index 75c9fbe..82ebe7d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.dao; +import com.casic.missiles.modular.system.dto.DeviceStatisticDTO; import com.casic.missiles.modular.system.model.RecognitionRecords; import org.apache.ibatis.annotations.Param; @@ -10,14 +11,21 @@ Map countDeviceByType(); - List> peopleCountByDevice(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + List peopleCountByDevice(@Param("deptIds")List deptIds, @Param("startTime")String startTime, @Param("endTime")String endTime); List> peopleCountByDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + List> peopleCountByParentDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + List> printCountByDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); - List> countByTime(@Param("deptIds")List deptIds,@Param("date")String date); + List> printCountByParentDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + + List> canteenCountByDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + + List> countByTime(@Param("deptIds")List deptIds,@Param("startDate")String startDate, @Param("endDate")String endDate); List selectByDay(@Param("startDate")String startDate, @Param("endDate")String endDate, @Param("deptIds")List deptIds); + Map countByDevcodes(@Param("devCodes")String[] devcodes, @Param("deptIds")List deptIds, @Param("startTime")String startTime, @Param("endTime")String endTime); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java index 502d49c..ec90990 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java @@ -1,12 +1,12 @@ package com.casic.missiles.modular.system.controller; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.dto.DeviceStatisticDTO; import com.casic.missiles.modular.system.service.IStatisticService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.ResponseStatus; import java.util.List; import java.util.Map; @@ -27,35 +27,71 @@ @RequestMapping("/statistic/peopleCountByDevice") @ResponseBody public Object peopelCountByDevice(String startTime,String endTime) { - List> list = statisticService.peopleCountByDevice(startTime, endTime); + List list = statisticService.peopleCountByDevice(startTime, endTime); return ResponseData.success(list); } @RequestMapping("/statistic/peopleCountByDept") @ResponseBody public Object peopelCountByDept(String startTime,String endTime) { - List> list = statisticService.peopleCountByDept(startTime, endTime); + List> list = statisticService.peopleCountByDept(startTime, endTime,false); return ResponseData.success(list); } + @RequestMapping("/statistic/peopleCountByParentDept") + @ResponseBody + public Object peopleCountByParentDept(String startTime,String endTime) { + List> list = statisticService.peopleCountByDept(startTime, endTime,true); + return ResponseData.success(list); + } + + /** + * 按部门统计打印 + */ + @Deprecated @RequestMapping("/statistic/printCountByDept") @ResponseBody public Object printCountByDept(String startTime,String endTime) { - List> list = statisticService.printCountByDept(startTime, endTime); + List> list = statisticService.printCountByDept(startTime, endTime,false); + return ResponseData.success(list); + } + + /** + * 按部门统计打印(不需要了) + */ + @Deprecated + @RequestMapping("/statistic/printCountByParentDept") + @ResponseBody + public Object printCountByParentDept(String startTime,String endTime) { + List> list = statisticService.printCountByDept(startTime, endTime,true); + return ResponseData.success(list); + } + + @RequestMapping("/statistic/canteenCountByDept") + @ResponseBody + public Object canteenCountByDept(String startTime,String endTime) { + List> list = statisticService.canteenCountByDept(startTime, endTime); return ResponseData.success(list); } @RequestMapping("/statistic/countbyTime") @ResponseBody - public Object countbyTime(String date){ - List> list = statisticService.countByTime(date); + public Object countbyTime(String startDate, String endDate){ + List> list = statisticService.countByTime(startDate,endDate); return ResponseData.success(list); } @RequestMapping("/statistic/countbyDay") @ResponseBody - public Object countbyTime(String startDate, String endDate){ + public Object countbyDay(String startDate, String endDate){ List> list = statisticService.countByDate(startDate, endDate); return ResponseData.success(list); } + + @RequestMapping("/statistic/countbyLocation") + @ResponseBody + public Object countbyLocation(String startTime,String endTime) { + List> list = statisticService.countByLocation(startTime, endTime); + return ResponseData.success(list); + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java index 75c9fbe..82ebe7d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.dao; +import com.casic.missiles.modular.system.dto.DeviceStatisticDTO; import com.casic.missiles.modular.system.model.RecognitionRecords; import org.apache.ibatis.annotations.Param; @@ -10,14 +11,21 @@ Map countDeviceByType(); - List> peopleCountByDevice(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + List peopleCountByDevice(@Param("deptIds")List deptIds, @Param("startTime")String startTime, @Param("endTime")String endTime); List> peopleCountByDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + List> peopleCountByParentDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + List> printCountByDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); - List> countByTime(@Param("deptIds")List deptIds,@Param("date")String date); + List> printCountByParentDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + + List> canteenCountByDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + + List> countByTime(@Param("deptIds")List deptIds,@Param("startDate")String startDate, @Param("endDate")String endDate); List selectByDay(@Param("startDate")String startDate, @Param("endDate")String endDate, @Param("deptIds")List deptIds); + Map countByDevcodes(@Param("devCodes")String[] devcodes, @Param("deptIds")List deptIds, @Param("startTime")String startTime, @Param("endTime")String endTime); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml index 9b05095..f663046 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml @@ -11,17 +11,18 @@ FROM bus_device - SELECT d.DEV_NAME AS deviceName, - SUM(case when r.INOUT_TYPE IS NOT NULL and r.INOUT_TYPE != '' then 1 else 0 end) AS count, + d.DEV_CODE AS deviceCode, + SUM(case when r.INOUT_TYPE IS NOT NULL and r.INOUT_TYPE != '' OR (r.DEV_CODE = '782020040004' OR r.DEV_CODE = '782020040005') then 1 else 0 end) AS count, SUM(case when r.TEMPERATURE 36.0 then 1 else 0 end) as temp1, SUM(case when r.TEMPERATURE = ]]> 36.1 and r.TEMPERATURE 36.6 then 1 else 0 end) as temp2, SUM(case when r.TEMPERATURE = ]]> 36.7 and r.TEMPERATURE 37.3 then 1 else 0 end) as temp3, SUM(case when r.TEMPERATURE = ]]> 37.4 then 1 else 0 end) as temp4 FROM recognition_records r LEFT JOIN bus_device d ON r.DEV_CODE = d.DEV_CODE - LEFT JOIN person_ext_view p ON p.ID = r.PERSON_ID + LEFT JOIN sys_person p ON p.ID = r.PERSON_ID WHERE 1=1 AND p.DEPTID IN @@ -35,40 +36,130 @@ AND r.DATETIME #{endTime} - GROUP BY d.DEV_CODE + GROUP BY r.DEV_CODE + + + + + + + @@ -127,7 +219,7 @@ TEMPERATURE AS temperature FROM recognition_records r - LEFT JOIN person_ext_view p ON r.PERSON_ID = p.ID + LEFT JOIN sys_person p ON r.PERSON_ID = p.ID AND p.DEPTID IN @@ -143,4 +235,34 @@ + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java index 502d49c..ec90990 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java @@ -1,12 +1,12 @@ package com.casic.missiles.modular.system.controller; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.dto.DeviceStatisticDTO; import com.casic.missiles.modular.system.service.IStatisticService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.ResponseStatus; import java.util.List; import java.util.Map; @@ -27,35 +27,71 @@ @RequestMapping("/statistic/peopleCountByDevice") @ResponseBody public Object peopelCountByDevice(String startTime,String endTime) { - List> list = statisticService.peopleCountByDevice(startTime, endTime); + List list = statisticService.peopleCountByDevice(startTime, endTime); return ResponseData.success(list); } @RequestMapping("/statistic/peopleCountByDept") @ResponseBody public Object peopelCountByDept(String startTime,String endTime) { - List> list = statisticService.peopleCountByDept(startTime, endTime); + List> list = statisticService.peopleCountByDept(startTime, endTime,false); return ResponseData.success(list); } + @RequestMapping("/statistic/peopleCountByParentDept") + @ResponseBody + public Object peopleCountByParentDept(String startTime,String endTime) { + List> list = statisticService.peopleCountByDept(startTime, endTime,true); + return ResponseData.success(list); + } + + /** + * 按部门统计打印 + */ + @Deprecated @RequestMapping("/statistic/printCountByDept") @ResponseBody public Object printCountByDept(String startTime,String endTime) { - List> list = statisticService.printCountByDept(startTime, endTime); + List> list = statisticService.printCountByDept(startTime, endTime,false); + return ResponseData.success(list); + } + + /** + * 按部门统计打印(不需要了) + */ + @Deprecated + @RequestMapping("/statistic/printCountByParentDept") + @ResponseBody + public Object printCountByParentDept(String startTime,String endTime) { + List> list = statisticService.printCountByDept(startTime, endTime,true); + return ResponseData.success(list); + } + + @RequestMapping("/statistic/canteenCountByDept") + @ResponseBody + public Object canteenCountByDept(String startTime,String endTime) { + List> list = statisticService.canteenCountByDept(startTime, endTime); return ResponseData.success(list); } @RequestMapping("/statistic/countbyTime") @ResponseBody - public Object countbyTime(String date){ - List> list = statisticService.countByTime(date); + public Object countbyTime(String startDate, String endDate){ + List> list = statisticService.countByTime(startDate,endDate); return ResponseData.success(list); } @RequestMapping("/statistic/countbyDay") @ResponseBody - public Object countbyTime(String startDate, String endDate){ + public Object countbyDay(String startDate, String endDate){ List> list = statisticService.countByDate(startDate, endDate); return ResponseData.success(list); } + + @RequestMapping("/statistic/countbyLocation") + @ResponseBody + public Object countbyLocation(String startTime,String endTime) { + List> list = statisticService.countByLocation(startTime, endTime); + return ResponseData.success(list); + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java index 75c9fbe..82ebe7d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.dao; +import com.casic.missiles.modular.system.dto.DeviceStatisticDTO; import com.casic.missiles.modular.system.model.RecognitionRecords; import org.apache.ibatis.annotations.Param; @@ -10,14 +11,21 @@ Map countDeviceByType(); - List> peopleCountByDevice(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + List peopleCountByDevice(@Param("deptIds")List deptIds, @Param("startTime")String startTime, @Param("endTime")String endTime); List> peopleCountByDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + List> peopleCountByParentDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + List> printCountByDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); - List> countByTime(@Param("deptIds")List deptIds,@Param("date")String date); + List> printCountByParentDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + + List> canteenCountByDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + + List> countByTime(@Param("deptIds")List deptIds,@Param("startDate")String startDate, @Param("endDate")String endDate); List selectByDay(@Param("startDate")String startDate, @Param("endDate")String endDate, @Param("deptIds")List deptIds); + Map countByDevcodes(@Param("devCodes")String[] devcodes, @Param("deptIds")List deptIds, @Param("startTime")String startTime, @Param("endTime")String endTime); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml index 9b05095..f663046 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml @@ -11,17 +11,18 @@ FROM bus_device - SELECT d.DEV_NAME AS deviceName, - SUM(case when r.INOUT_TYPE IS NOT NULL and r.INOUT_TYPE != '' then 1 else 0 end) AS count, + d.DEV_CODE AS deviceCode, + SUM(case when r.INOUT_TYPE IS NOT NULL and r.INOUT_TYPE != '' OR (r.DEV_CODE = '782020040004' OR r.DEV_CODE = '782020040005') then 1 else 0 end) AS count, SUM(case when r.TEMPERATURE 36.0 then 1 else 0 end) as temp1, SUM(case when r.TEMPERATURE = ]]> 36.1 and r.TEMPERATURE 36.6 then 1 else 0 end) as temp2, SUM(case when r.TEMPERATURE = ]]> 36.7 and r.TEMPERATURE 37.3 then 1 else 0 end) as temp3, SUM(case when r.TEMPERATURE = ]]> 37.4 then 1 else 0 end) as temp4 FROM recognition_records r LEFT JOIN bus_device d ON r.DEV_CODE = d.DEV_CODE - LEFT JOIN person_ext_view p ON p.ID = r.PERSON_ID + LEFT JOIN sys_person p ON p.ID = r.PERSON_ID WHERE 1=1 AND p.DEPTID IN @@ -35,40 +36,130 @@ AND r.DATETIME #{endTime} - GROUP BY d.DEV_CODE + GROUP BY r.DEV_CODE + + + + + + + @@ -127,7 +219,7 @@ TEMPERATURE AS temperature FROM recognition_records r - LEFT JOIN person_ext_view p ON r.PERSON_ID = p.ID + LEFT JOIN sys_person p ON r.PERSON_ID = p.ID AND p.DEPTID IN @@ -143,4 +235,34 @@ + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dto/DeviceStatisticDTO.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dto/DeviceStatisticDTO.java new file mode 100644 index 0000000..0765d4a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dto/DeviceStatisticDTO.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class DeviceStatisticDTO { + private String deviceName; + private String deviceCode; + private int count; + private int temp1; + private int temp2; + private int temp3; + private int temp4; + + public DeviceStatisticDTO(String deviceName) { + this.deviceName = deviceName; + this.count = 0; + this.temp1 = 0; + this.temp2 = 0; + this.temp3 = 0; + this.temp4 = 0; + } + + public DeviceStatisticDTO(String deviceName, String deviceCode, BigDecimal count, BigDecimal temp1, BigDecimal temp2, BigDecimal temp3, BigDecimal temp4) { + this.deviceName = deviceName; + this.deviceCode = deviceCode; + this.count = count.intValue(); + this.temp1 = temp1.intValue(); + this.temp2 = temp2.intValue(); + this.temp3 = temp3.intValue(); + this.temp4 = temp4.intValue(); + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java index 502d49c..ec90990 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java @@ -1,12 +1,12 @@ package com.casic.missiles.modular.system.controller; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.dto.DeviceStatisticDTO; import com.casic.missiles.modular.system.service.IStatisticService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.ResponseStatus; import java.util.List; import java.util.Map; @@ -27,35 +27,71 @@ @RequestMapping("/statistic/peopleCountByDevice") @ResponseBody public Object peopelCountByDevice(String startTime,String endTime) { - List> list = statisticService.peopleCountByDevice(startTime, endTime); + List list = statisticService.peopleCountByDevice(startTime, endTime); return ResponseData.success(list); } @RequestMapping("/statistic/peopleCountByDept") @ResponseBody public Object peopelCountByDept(String startTime,String endTime) { - List> list = statisticService.peopleCountByDept(startTime, endTime); + List> list = statisticService.peopleCountByDept(startTime, endTime,false); return ResponseData.success(list); } + @RequestMapping("/statistic/peopleCountByParentDept") + @ResponseBody + public Object peopleCountByParentDept(String startTime,String endTime) { + List> list = statisticService.peopleCountByDept(startTime, endTime,true); + return ResponseData.success(list); + } + + /** + * 按部门统计打印 + */ + @Deprecated @RequestMapping("/statistic/printCountByDept") @ResponseBody public Object printCountByDept(String startTime,String endTime) { - List> list = statisticService.printCountByDept(startTime, endTime); + List> list = statisticService.printCountByDept(startTime, endTime,false); + return ResponseData.success(list); + } + + /** + * 按部门统计打印(不需要了) + */ + @Deprecated + @RequestMapping("/statistic/printCountByParentDept") + @ResponseBody + public Object printCountByParentDept(String startTime,String endTime) { + List> list = statisticService.printCountByDept(startTime, endTime,true); + return ResponseData.success(list); + } + + @RequestMapping("/statistic/canteenCountByDept") + @ResponseBody + public Object canteenCountByDept(String startTime,String endTime) { + List> list = statisticService.canteenCountByDept(startTime, endTime); return ResponseData.success(list); } @RequestMapping("/statistic/countbyTime") @ResponseBody - public Object countbyTime(String date){ - List> list = statisticService.countByTime(date); + public Object countbyTime(String startDate, String endDate){ + List> list = statisticService.countByTime(startDate,endDate); return ResponseData.success(list); } @RequestMapping("/statistic/countbyDay") @ResponseBody - public Object countbyTime(String startDate, String endDate){ + public Object countbyDay(String startDate, String endDate){ List> list = statisticService.countByDate(startDate, endDate); return ResponseData.success(list); } + + @RequestMapping("/statistic/countbyLocation") + @ResponseBody + public Object countbyLocation(String startTime,String endTime) { + List> list = statisticService.countByLocation(startTime, endTime); + return ResponseData.success(list); + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java index 75c9fbe..82ebe7d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.dao; +import com.casic.missiles.modular.system.dto.DeviceStatisticDTO; import com.casic.missiles.modular.system.model.RecognitionRecords; import org.apache.ibatis.annotations.Param; @@ -10,14 +11,21 @@ Map countDeviceByType(); - List> peopleCountByDevice(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + List peopleCountByDevice(@Param("deptIds")List deptIds, @Param("startTime")String startTime, @Param("endTime")String endTime); List> peopleCountByDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + List> peopleCountByParentDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + List> printCountByDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); - List> countByTime(@Param("deptIds")List deptIds,@Param("date")String date); + List> printCountByParentDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + + List> canteenCountByDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + + List> countByTime(@Param("deptIds")List deptIds,@Param("startDate")String startDate, @Param("endDate")String endDate); List selectByDay(@Param("startDate")String startDate, @Param("endDate")String endDate, @Param("deptIds")List deptIds); + Map countByDevcodes(@Param("devCodes")String[] devcodes, @Param("deptIds")List deptIds, @Param("startTime")String startTime, @Param("endTime")String endTime); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml index 9b05095..f663046 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml @@ -11,17 +11,18 @@ FROM bus_device - SELECT d.DEV_NAME AS deviceName, - SUM(case when r.INOUT_TYPE IS NOT NULL and r.INOUT_TYPE != '' then 1 else 0 end) AS count, + d.DEV_CODE AS deviceCode, + SUM(case when r.INOUT_TYPE IS NOT NULL and r.INOUT_TYPE != '' OR (r.DEV_CODE = '782020040004' OR r.DEV_CODE = '782020040005') then 1 else 0 end) AS count, SUM(case when r.TEMPERATURE 36.0 then 1 else 0 end) as temp1, SUM(case when r.TEMPERATURE = ]]> 36.1 and r.TEMPERATURE 36.6 then 1 else 0 end) as temp2, SUM(case when r.TEMPERATURE = ]]> 36.7 and r.TEMPERATURE 37.3 then 1 else 0 end) as temp3, SUM(case when r.TEMPERATURE = ]]> 37.4 then 1 else 0 end) as temp4 FROM recognition_records r LEFT JOIN bus_device d ON r.DEV_CODE = d.DEV_CODE - LEFT JOIN person_ext_view p ON p.ID = r.PERSON_ID + LEFT JOIN sys_person p ON p.ID = r.PERSON_ID WHERE 1=1 AND p.DEPTID IN @@ -35,40 +36,130 @@ AND r.DATETIME #{endTime} - GROUP BY d.DEV_CODE + GROUP BY r.DEV_CODE + + + + + + + @@ -127,7 +219,7 @@ TEMPERATURE AS temperature FROM recognition_records r - LEFT JOIN person_ext_view p ON r.PERSON_ID = p.ID + LEFT JOIN sys_person p ON r.PERSON_ID = p.ID AND p.DEPTID IN @@ -143,4 +235,34 @@ + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dto/DeviceStatisticDTO.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dto/DeviceStatisticDTO.java new file mode 100644 index 0000000..0765d4a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dto/DeviceStatisticDTO.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class DeviceStatisticDTO { + private String deviceName; + private String deviceCode; + private int count; + private int temp1; + private int temp2; + private int temp3; + private int temp4; + + public DeviceStatisticDTO(String deviceName) { + this.deviceName = deviceName; + this.count = 0; + this.temp1 = 0; + this.temp2 = 0; + this.temp3 = 0; + this.temp4 = 0; + } + + public DeviceStatisticDTO(String deviceName, String deviceCode, BigDecimal count, BigDecimal temp1, BigDecimal temp2, BigDecimal temp3, BigDecimal temp4) { + this.deviceName = deviceName; + this.deviceCode = deviceCode; + this.count = count.intValue(); + this.temp1 = temp1.intValue(); + this.temp2 = temp2.intValue(); + this.temp3 = temp3.intValue(); + this.temp4 = temp4.intValue(); + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStatisticService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStatisticService.java index 84b4d72..4bab8ca 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStatisticService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStatisticService.java @@ -1,5 +1,7 @@ package com.casic.missiles.modular.system.service; +import com.casic.missiles.modular.system.dto.DeviceStatisticDTO; + import java.util.List; import java.util.Map; @@ -7,15 +9,19 @@ Map countDeviceByType(); - List> peopleCountByDevice(String startTime, String endTime); + List peopleCountByDevice(String startTime, String endTime); - List> peopleCountByDept(String startTime, String endTime); + List> peopleCountByDept(String startTime, String endTime, boolean parent); - List> printCountByDept(String startTime, String endTime); + List> printCountByDept(String startTime, String endTime, boolean parent); - List> countByTime(String date); + List> canteenCountByDept(String startTime, String endTime); + + List> countByTime(String startDate, String endDate); List> countByDate(String startDate, String endDate); + List> countByLocation(String startTime, String endTime); + } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java index 502d49c..ec90990 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StatisticController.java @@ -1,12 +1,12 @@ package com.casic.missiles.modular.system.controller; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.system.dto.DeviceStatisticDTO; import com.casic.missiles.modular.system.service.IStatisticService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.ResponseStatus; import java.util.List; import java.util.Map; @@ -27,35 +27,71 @@ @RequestMapping("/statistic/peopleCountByDevice") @ResponseBody public Object peopelCountByDevice(String startTime,String endTime) { - List> list = statisticService.peopleCountByDevice(startTime, endTime); + List list = statisticService.peopleCountByDevice(startTime, endTime); return ResponseData.success(list); } @RequestMapping("/statistic/peopleCountByDept") @ResponseBody public Object peopelCountByDept(String startTime,String endTime) { - List> list = statisticService.peopleCountByDept(startTime, endTime); + List> list = statisticService.peopleCountByDept(startTime, endTime,false); return ResponseData.success(list); } + @RequestMapping("/statistic/peopleCountByParentDept") + @ResponseBody + public Object peopleCountByParentDept(String startTime,String endTime) { + List> list = statisticService.peopleCountByDept(startTime, endTime,true); + return ResponseData.success(list); + } + + /** + * 按部门统计打印 + */ + @Deprecated @RequestMapping("/statistic/printCountByDept") @ResponseBody public Object printCountByDept(String startTime,String endTime) { - List> list = statisticService.printCountByDept(startTime, endTime); + List> list = statisticService.printCountByDept(startTime, endTime,false); + return ResponseData.success(list); + } + + /** + * 按部门统计打印(不需要了) + */ + @Deprecated + @RequestMapping("/statistic/printCountByParentDept") + @ResponseBody + public Object printCountByParentDept(String startTime,String endTime) { + List> list = statisticService.printCountByDept(startTime, endTime,true); + return ResponseData.success(list); + } + + @RequestMapping("/statistic/canteenCountByDept") + @ResponseBody + public Object canteenCountByDept(String startTime,String endTime) { + List> list = statisticService.canteenCountByDept(startTime, endTime); return ResponseData.success(list); } @RequestMapping("/statistic/countbyTime") @ResponseBody - public Object countbyTime(String date){ - List> list = statisticService.countByTime(date); + public Object countbyTime(String startDate, String endDate){ + List> list = statisticService.countByTime(startDate,endDate); return ResponseData.success(list); } @RequestMapping("/statistic/countbyDay") @ResponseBody - public Object countbyTime(String startDate, String endDate){ + public Object countbyDay(String startDate, String endDate){ List> list = statisticService.countByDate(startDate, endDate); return ResponseData.success(list); } + + @RequestMapping("/statistic/countbyLocation") + @ResponseBody + public Object countbyLocation(String startTime,String endTime) { + List> list = statisticService.countByLocation(startTime, endTime); + return ResponseData.success(list); + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java index 75c9fbe..82ebe7d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.dao; +import com.casic.missiles.modular.system.dto.DeviceStatisticDTO; import com.casic.missiles.modular.system.model.RecognitionRecords; import org.apache.ibatis.annotations.Param; @@ -10,14 +11,21 @@ Map countDeviceByType(); - List> peopleCountByDevice(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + List peopleCountByDevice(@Param("deptIds")List deptIds, @Param("startTime")String startTime, @Param("endTime")String endTime); List> peopleCountByDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + List> peopleCountByParentDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + List> printCountByDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); - List> countByTime(@Param("deptIds")List deptIds,@Param("date")String date); + List> printCountByParentDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + + List> canteenCountByDept(@Param("deptIds")List deptIds,@Param("startTime")String startTime,@Param("endTime")String endTime); + + List> countByTime(@Param("deptIds")List deptIds,@Param("startDate")String startDate, @Param("endDate")String endDate); List selectByDay(@Param("startDate")String startDate, @Param("endDate")String endDate, @Param("deptIds")List deptIds); + Map countByDevcodes(@Param("devCodes")String[] devcodes, @Param("deptIds")List deptIds, @Param("startTime")String startTime, @Param("endTime")String endTime); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml index 9b05095..f663046 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml @@ -11,17 +11,18 @@ FROM bus_device - SELECT d.DEV_NAME AS deviceName, - SUM(case when r.INOUT_TYPE IS NOT NULL and r.INOUT_TYPE != '' then 1 else 0 end) AS count, + d.DEV_CODE AS deviceCode, + SUM(case when r.INOUT_TYPE IS NOT NULL and r.INOUT_TYPE != '' OR (r.DEV_CODE = '782020040004' OR r.DEV_CODE = '782020040005') then 1 else 0 end) AS count, SUM(case when r.TEMPERATURE 36.0 then 1 else 0 end) as temp1, SUM(case when r.TEMPERATURE = ]]> 36.1 and r.TEMPERATURE 36.6 then 1 else 0 end) as temp2, SUM(case when r.TEMPERATURE = ]]> 36.7 and r.TEMPERATURE 37.3 then 1 else 0 end) as temp3, SUM(case when r.TEMPERATURE = ]]> 37.4 then 1 else 0 end) as temp4 FROM recognition_records r LEFT JOIN bus_device d ON r.DEV_CODE = d.DEV_CODE - LEFT JOIN person_ext_view p ON p.ID = r.PERSON_ID + LEFT JOIN sys_person p ON p.ID = r.PERSON_ID WHERE 1=1 AND p.DEPTID IN @@ -35,40 +36,130 @@ AND r.DATETIME #{endTime} - GROUP BY d.DEV_CODE + GROUP BY r.DEV_CODE + + + + + + + @@ -127,7 +219,7 @@ TEMPERATURE AS temperature FROM recognition_records r - LEFT JOIN person_ext_view p ON r.PERSON_ID = p.ID + LEFT JOIN sys_person p ON r.PERSON_ID = p.ID AND p.DEPTID IN @@ -143,4 +235,34 @@ + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dto/DeviceStatisticDTO.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dto/DeviceStatisticDTO.java new file mode 100644 index 0000000..0765d4a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dto/DeviceStatisticDTO.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class DeviceStatisticDTO { + private String deviceName; + private String deviceCode; + private int count; + private int temp1; + private int temp2; + private int temp3; + private int temp4; + + public DeviceStatisticDTO(String deviceName) { + this.deviceName = deviceName; + this.count = 0; + this.temp1 = 0; + this.temp2 = 0; + this.temp3 = 0; + this.temp4 = 0; + } + + public DeviceStatisticDTO(String deviceName, String deviceCode, BigDecimal count, BigDecimal temp1, BigDecimal temp2, BigDecimal temp3, BigDecimal temp4) { + this.deviceName = deviceName; + this.deviceCode = deviceCode; + this.count = count.intValue(); + this.temp1 = temp1.intValue(); + this.temp2 = temp2.intValue(); + this.temp3 = temp3.intValue(); + this.temp4 = temp4.intValue(); + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStatisticService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStatisticService.java index 84b4d72..4bab8ca 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStatisticService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStatisticService.java @@ -1,5 +1,7 @@ package com.casic.missiles.modular.system.service; +import com.casic.missiles.modular.system.dto.DeviceStatisticDTO; + import java.util.List; import java.util.Map; @@ -7,15 +9,19 @@ Map countDeviceByType(); - List> peopleCountByDevice(String startTime, String endTime); + List peopleCountByDevice(String startTime, String endTime); - List> peopleCountByDept(String startTime, String endTime); + List> peopleCountByDept(String startTime, String endTime, boolean parent); - List> printCountByDept(String startTime, String endTime); + List> printCountByDept(String startTime, String endTime, boolean parent); - List> countByTime(String date); + List> canteenCountByDept(String startTime, String endTime); + + List> countByTime(String startDate, String endDate); List> countByDate(String startDate, String endDate); + List> countByLocation(String startTime, String endTime); + } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java index 6896661..f1ed1c6 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java @@ -6,6 +6,7 @@ import com.casic.missiles.core.util.DateUtil; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.StatisticMapper; +import com.casic.missiles.modular.system.dto.DeviceStatisticDTO; import com.casic.missiles.modular.system.model.RecognitionRecords; import com.casic.missiles.modular.system.service.IStatisticService; import org.springframework.beans.factory.annotation.Autowired; @@ -28,7 +29,7 @@ } @Override - public List> peopleCountByDevice(String startTime,String endTime) { + public List peopleCountByDevice(String startTime,String endTime) { List deptIds = permissionService.getCurrUserDataScope().getDeptIds(); if(ToolUtil.isEmpty(startTime)){ startTime = getZeroTime(); @@ -36,12 +37,80 @@ if(ToolUtil.isEmpty(endTime)) { endTime = getTwelveTime(); } - List> list = this.statisticMapper.peopleCountByDevice(deptIds,startTime,endTime); - return list; + List devList = this.statisticMapper.peopleCountByDevice(deptIds,startTime,endTime); + List resList = new ArrayList<>(); + // 几个固定需要合并的 + DeviceStatisticDTO _99Garage = new DeviceStatisticDTO("99号楼负一层车库"); + DeviceStatisticDTO _99Canteen = new DeviceStatisticDTO("99号楼负一层食堂"); + DeviceStatisticDTO _99Gate = new DeviceStatisticDTO("99号楼一层正门"); + DeviceStatisticDTO _99Floor_1 = new DeviceStatisticDTO("99号楼负一层闸机"); + DeviceStatisticDTO _99Floor1 = new DeviceStatisticDTO("99号楼一层机房"); + DeviceStatisticDTO _99Floor2 = new DeviceStatisticDTO("99号楼二层机房"); + DeviceStatisticDTO _99Floor4 = new DeviceStatisticDTO("99号楼四层"); + + for (DeviceStatisticDTO statisticDTO : devList) { + switch (statisticDTO.getDeviceCode()){ + // 99号楼负一层自行车库 + case "782020040003": + case "782020020014": + addDeviceStatisticDTO(_99Garage,statisticDTO); + break; + // 99号楼负一层食堂 + case "782020020004": + case "782020070003": + addDeviceStatisticDTO(_99Canteen,statisticDTO); + break; + // 99号楼一层正门 + case "782020040004": + case "782020040005": + addDeviceStatisticDTO(_99Gate,statisticDTO); + break; + // 99号楼负一层闸机 + case "782020070004": + case "782020030001": + addDeviceStatisticDTO(_99Floor_1,statisticDTO); + break; + // 99号楼一层机房 + case "752020010003": + case "752020010004": + addDeviceStatisticDTO(_99Floor1,statisticDTO); + break; + // 99号楼二层机房 + case "752020020003": + case "752020020002": + case "752020020001": + addDeviceStatisticDTO(_99Floor2,statisticDTO); + break; + // 99号楼四层 + case "752020010002": + case "752020010005": + addDeviceStatisticDTO(_99Floor4,statisticDTO); + break; + default: + resList.add(statisticDTO); + break; + } + } + resList.add(_99Garage); + resList.add(_99Canteen); + resList.add(_99Gate); + resList.add(_99Floor_1); + resList.add(_99Floor1); + resList.add(_99Floor2); + resList.add(_99Floor4); + return resList; + } + + private void addDeviceStatisticDTO(DeviceStatisticDTO sum,DeviceStatisticDTO tmp){ + sum.setCount(sum.getCount() + tmp.getCount()); + sum.setTemp1(sum.getTemp1() + tmp.getTemp1()); + sum.setTemp2(sum.getTemp2() + tmp.getTemp2()); + sum.setTemp3(sum.getTemp3() + tmp.getTemp3()); + sum.setTemp4(sum.getTemp4() + tmp.getTemp4()); } @Override - public List> peopleCountByDept(String startTime, String endTime) { + public List> peopleCountByDept(String startTime, String endTime,boolean parent) { List deptIds = permissionService.getCurrUserDataScope().getDeptIds(); if(ToolUtil.isEmpty(startTime)){ startTime = getZeroTime(); @@ -49,14 +118,19 @@ if(ToolUtil.isEmpty(endTime)) { endTime = getTwelveTime(); } - List> list = this.statisticMapper.peopleCountByDept(deptIds,startTime,endTime); + List> list = new ArrayList<>(); + if(parent){ + list = this.statisticMapper.peopleCountByParentDept(deptIds,startTime,endTime); + }else{ + list = this.statisticMapper.peopleCountByDept(deptIds,startTime,endTime); + } convDeptName(list); processEmptyList(list); return list; } @Override - public List> printCountByDept(String startTime, String endTime) { + public List> printCountByDept(String startTime, String endTime, boolean parent) { List deptIds = permissionService.getCurrUserDataScope().getDeptIds(); if(ToolUtil.isEmpty(startTime)){ startTime = getZeroTime(); @@ -64,19 +138,43 @@ if(ToolUtil.isEmpty(endTime)) { endTime = getTwelveTime(); } - List> list = this.statisticMapper.printCountByDept(deptIds,startTime,endTime); + List> list = new ArrayList<>(); + if(parent){ + list = this.statisticMapper.printCountByParentDept(deptIds,startTime,endTime); + }else{ + list = this.statisticMapper.printCountByDept(deptIds,startTime,endTime); + } convDeptName(list); processEmptyList(list); return list; } @Override - public List> countByTime(String date) { + public List> canteenCountByDept(String startTime, String endTime) { List deptIds = permissionService.getCurrUserDataScope().getDeptIds(); - if(ToolUtil.isEmpty(date)){ - date = DateUtil.getDay(); + if(ToolUtil.isEmpty(startTime)){ + startTime = getZeroTime(); } - List> list = this.statisticMapper.countByTime(deptIds,date); + if(ToolUtil.isEmpty(endTime)) { + endTime = getTwelveTime(); + } + List> list = statisticMapper.canteenCountByDept(deptIds,startTime,endTime); + convDeptName(list); + processEmptyList(list); + return list; + } + + @Override + public List> countByTime(String startDate, String endDate) { + List deptIds = permissionService.getCurrUserDataScope().getDeptIds(); + + if(ToolUtil.isEmpty(startDate)){ + startDate = DateUtil.getDay(); + } + if(ToolUtil.isEmpty(endDate)){ + endDate = DateUtil.getDay(); + } + List> list = this.statisticMapper.countByTime(deptIds,startDate,endDate); for (Map map : list) { map.replace("time",map.get("time").toString()+"时"); } @@ -85,6 +183,7 @@ @Override public List> countByDate(String startDate, String endDate) { + long time1 = System.currentTimeMillis(); // 默认7天 if(ToolUtil.isEmpty(startDate)){ startDate = get7DaysAgo(); @@ -104,12 +203,16 @@ res.add(map); resMap.put(date,map); } + long time2 = System.currentTimeMillis(); + System.out.println("-------------------程序运行时间1-2:"+ (time2 - time1) + "ms"); List deptIds = permissionService.getCurrUserDataScope().getDeptIds(); // 获取日期内的识别记录 List records = statisticMapper.selectByDay(startDate,endDate,deptIds); + long time3 = System.currentTimeMillis(); + System.out.println("---------------------程序运行时间2-3:"+ (time3 - time2) + "ms"); for (RecognitionRecords record : records) { String date = DateUtil.formatDate(record.getDatetime(),"yyyy-MM-dd"); - if(ToolUtil.isNotEmpty(record.getInoutType())){ + if(ToolUtil.isNotEmpty(record.getInoutType()) || "782020040004".equals(record.getDevCode()) || "782020040005".equals(record.getDevCode())){ Map dateMap = resMap.get(date); dateMap.replace("total",Integer.valueOf(dateMap.get("total").toString()) + 1); } @@ -118,6 +221,72 @@ dateMap.replace("temp",Integer.valueOf(dateMap.get("temp").toString()) + 1); } } + long time4 = System.currentTimeMillis(); + System.out.println("---------------------程序运行时间3-4:"+ (time4 - time3) + "ms"); + return res; + } + + @Override + public List> countByLocation(String startTime, String endTime) { + List> res = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + if(ToolUtil.isEmpty(startTime)){ + startTime = getZeroTime(); + } + if(ToolUtil.isEmpty(endTime)) { + endTime = getTwelveTime(); + } + + // 99号楼负一层食堂 + String[] devocdes1 = new String[]{"782020020004","782020070003"}; + Map map1 = statisticMapper.countByDevcodes(devocdes1,dataScope.getDeptIds(),startTime,endTime); + Map res1 = new HashMap<>(); + res1.put("temp",map1.get("temp").toString()); + res1.put("normal",map1.get("normal").toString()); + res1.put("abnormal",map1.get("abnormal").toString()); + res.add(res1); + // 99号楼负一层闸机 + String[] devocdes2 = new String[]{"782020070004","782020030001"}; + Map map2 = statisticMapper.countByDevcodes(devocdes2,dataScope.getDeptIds(),startTime,endTime); + Map res2 = new HashMap<>(); + res2.put("count",map2.get("count").toString()); + res2.put("normal",map2.get("normal").toString()); + res2.put("abnormal",map2.get("abnormal").toString()); + res.add(res2); + // 99号楼一层正门 + String[] devocdes3 = new String[]{"782020040004","782020040005"}; + Map map3 = statisticMapper.countByDevcodes(devocdes3,dataScope.getDeptIds(),startTime,endTime); + Map res3 = new HashMap<>(); + res3.put("count",map3.get("count").toString()); + res3.put("normal",map3.get("normal").toString()); + res3.put("abnormal",map3.get("abnormal").toString()); + res.add(res3); + // 99号楼一层货梯 + String[] devocdes4 = new String[]{"782020020005"}; + Map map4 = statisticMapper.countByDevcodes(devocdes4,dataScope.getDeptIds(),startTime,endTime); + Map res4 = new HashMap<>(); + res4.put("temp",map4.get("temp").toString()); + res4.put("normal",map4.get("normal").toString()); + res4.put("abnormal",map4.get("abnormal").toString()); + res.add(res4); + // 99号楼四层西 + String[] devocdes5 = new String[]{"752020010002"}; + Map map5 = statisticMapper.countByDevcodes(devocdes5,dataScope.getDeptIds(),startTime,endTime); + Map res5 = new HashMap<>(); + res5.put("count",map5.get("count").toString()); + res.add(res5); + // 99号楼四层东 + String[] devocdes6 = new String[]{"752020010005"}; + Map map6 = statisticMapper.countByDevcodes(devocdes6,dataScope.getDeptIds(),startTime,endTime); + Map res6 = new HashMap<>(); + res6.put("count",map6.get("count").toString()); + res.add(res6); + // 院机关八层打印室 + String[] devocdes7 = new String[]{"752020010001"}; + Map map7 = statisticMapper.countByDevcodes(devocdes7,dataScope.getDeptIds(),startTime,endTime); + Map res7 = new HashMap<>(); + res7.put("print",map7.get("print").toString()); + res.add(res7); return res; }