suntianwu 3 lat temu
rodzic
commit
f42593f025

+ 5 - 0
src/main/java/com/care/bigscreen/mapper/BigSreenMapper.java

@@ -23,6 +23,11 @@ public interface BigSreenMapper extends BaseMapper<StStation> {
      * @return 搜索符合条件的大屏统计数据
      */
     BigScreenStatisticsVO selectBigScreenStatistics(@Param("stationId") Long stationId, @Param("orgId") Long orgId);
+    /**
+     * 大屏统计查询(机构汇总表查询)
+     * @return 搜索符合条件的大屏统计数据
+     */
+    BigScreenStatisticsVO selectBigScreenOrgStatistics(@Param("orgId") Long orgId);
 
     /**
      * 大屏统计查询

+ 1 - 0
src/main/java/com/care/bigscreen/service/BigScreenService.java

@@ -20,6 +20,7 @@ public interface BigScreenService {
      * @return 搜索符合条件的大屏统计数据
      */
     BigScreenStatisticsVO selectBigScreenStatistics(Long stationId, Long orgId);
+
     /**
      * 大屏统计查询
      * @return 根据经纬度范围搜索符合条件的大屏统计数据

+ 16 - 2
src/main/java/com/care/bigscreen/service/impl/BigScreenServiceImpl.java

@@ -5,6 +5,7 @@ import com.care.bigscreen.mapper.BigSreenMapper;
 import com.care.bigscreen.service.BigScreenService;
 import com.care.bigscreen.vo.*;
 import com.care.bigscreen.websocket.BigScreenWebSocketEndpoint;
+import com.care.common.mapper.CareStationMapper;
 import com.care.common.vo.PageResVO;
 import com.care.common.util.PageUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,14 +25,27 @@ public class BigScreenServiceImpl implements BigScreenService {
 
     @Autowired
     private BigSreenMapper bigSreenMapper;
-
+    @Autowired
+    private CareStationMapper careStationMapper;
     /**
      * 大屏统计查询
      * @return 搜索符合条件的大屏统计数据
      */
     @Override
     public BigScreenStatisticsVO selectBigScreenStatistics(Long stationId, Long orgId){
-        return bigSreenMapper.selectBigScreenStatistics(stationId,orgId);
+        BigScreenStatisticsVO bigScreenStatisticsVO =  bigSreenMapper.selectBigScreenStatistics(stationId,orgId);
+        BigScreenStatisticsVO bigScreenStatisticsVO2 = null;
+        if(stationId == null && orgId == null){ //运营商大屏
+            bigScreenStatisticsVO2 =  bigSreenMapper.selectBigScreenOrgStatistics(null);
+        } else if(stationId == null && orgId != null) { //机构大屏
+            bigScreenStatisticsVO2 =  bigSreenMapper.selectBigScreenOrgStatistics(orgId);
+        } else { //站点查询
+            bigScreenStatisticsVO2 =  bigSreenMapper.selectBigScreenOrgStatistics(careStationMapper.selectById(stationId).getOrgId());
+        }
+
+        bigScreenStatisticsVO.setSeatsAmount(bigScreenStatisticsVO2.getSeatsAmount());
+        bigScreenStatisticsVO.setSeatsOnlineDuration(bigScreenStatisticsVO2.getSeatsOnlineDuration());
+        return bigScreenStatisticsVO;
     }
 
     /**

+ 17 - 6
src/main/resources/mybatis/BigSreenMapper.xml

@@ -42,9 +42,7 @@
         sum(his_stagnation_amount) hisStagnationAmount,
         sum(his_falling_bed_amount) hisFallingBedAmount,
         sum(his_active_call_amount) hisActiveCallAmount,
-        sum(his_outdoors_call_amount) hisOutdoorsCallAmount,
-        sum(seats_amount) seatsAmount,
-        convert(sum(seats_online_duration)/3600,decimal(20,2)) seatsOnlineDuration
+        sum(his_outdoors_call_amount) hisOutdoorsCallAmount
         FROM st_station t
         <where>
             1 = 1
@@ -57,6 +55,19 @@
         </where>
     </select>
 
+    <select id="selectBigScreenOrgStatistics" resultType="com.care.bigscreen.vo.BigScreenStatisticsVO">
+        SELECT
+        sum(seats_amount) seatsAmount,
+        convert(sum(seats_online_duration)/3600,decimal(20,2)) seatsOnlineDuration
+        FROM st_organization t
+        <where>
+            1 = 1
+            <if test="orgId != null and orgId != ''">
+                AND t.org_id = #{orgId}
+            </if>
+        </where>
+    </select>
+
     <!--根据经纬度查询-->
     <select id="selectBigScreenStatisticsByLongitudeLatitude" resultType="com.care.bigscreen.vo.BigScreenStatisticsVO">
         SELECT
@@ -134,9 +145,9 @@
         a.chamberlain_amount chamberlainAmount,
         a.serve_amount serveAmount,
         a.serve_today_amount serveTodayAmount,
-        a.seats_amount seatsAmount,
-        a.seats_curr_online_amount seatsCurrOnlineAmount,
-        a.seats_call_min_amount seatsCallMinAmount
+        (select b.seats_amount from st_organization b where b.org_id=a.org_id) seatsAmount,
+        (select b.seats_curr_online_amount from st_organization b where b.org_id=a.org_id) seatsCurrOnlineAmount,
+        (select b.seats_call_min_amount from st_organization b where b.org_id=a.org_id) seatsCallMinAmount
         FROM st_station a
         where a.station_id = #{stationId}
     </select>