15638522405 пре 3 година
родитељ
комит
1103738e1f

+ 8 - 4
coffee-admin/src/test/java/com/coffee/admin/BusDeviceAlarmTest.java

@@ -6,9 +6,12 @@ import com.coffee.bus.entity.BusDeviceEntity;
 import com.coffee.bus.mapper.BusDeviceAlarmMapper;
 import com.coffee.bus.service.LocalBusDeviceAlarmService;
 import com.coffee.bus.service.dto.DeviceAlarmQuery;
+import lombok.extern.slf4j.Slf4j;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
@@ -22,7 +25,9 @@ import java.util.Date;
  * @createTime 2022/5/218:42
  */
 @RunWith(SpringRunner.class)
+@Slf4j
 @SpringBootTest(classes = AdminApplication.class)
+@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
 public class BusDeviceAlarmTest {
 
     @Autowired
@@ -36,15 +41,14 @@ public class BusDeviceAlarmTest {
     @Test
     public void test001(){
         DeviceAlarmQuery query = new DeviceAlarmQuery();
-        query.setAlarmState(1);
-        System.out.println(query.getAlarmState());
-        busDeviceAlarmMapper.selectAlarmCount(query);
-       // System.out.println();
+        System.out.println(        busDeviceAlarmMapper.selectAlarmCount(query));
     }
     @Test
     public void test002(){
         System.out.println(service.selectCountAlarm(new DeviceAlarmQuery()));
     }
+
+
     @Test
     public void test003(){
         System.out.println(controller.deviceUse(new DeviceAlarmQuery()));

+ 4 - 1
coffee-system/src/main/java/com/coffee/bus/mapper/BusDeviceAlarmMapper.java

@@ -7,9 +7,12 @@ import com.coffee.bus.entity.BusClinicEntity;
 import com.coffee.bus.entity.BusDeviceAlarmEntity;
 import com.coffee.bus.service.dto.AlarmQuery;
 import com.coffee.bus.service.dto.DeviceAlarmQuery;
+import com.coffee.bus.service.dto.DeviceAlarmResult;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * @author lifang
  * @version 1.0.0
@@ -23,5 +26,5 @@ public interface BusDeviceAlarmMapper extends BaseMapper<BusDeviceAlarmEntity> {
     IPage<BusDeviceAlarmEntity> pageQuery(Page<BusDeviceAlarmEntity> page, @Param("query") AlarmQuery query);
 
 
-    Integer selectAlarmCount(@Param("query") DeviceAlarmQuery query);
+    List<DeviceAlarmResult> selectAlarmCount(@Param("query") DeviceAlarmQuery query);
 }

+ 21 - 28
coffee-system/src/main/java/com/coffee/bus/service/LocalBusDeviceAlarmService.java

@@ -12,6 +12,7 @@ import com.coffee.bus.mapper.BusDeviceAlarmMapper;
 import com.coffee.bus.mapper.BusHospitalMapper;
 import com.coffee.bus.service.dto.AlarmQuery;
 import com.coffee.bus.service.dto.DeviceAlarmQuery;
+import com.coffee.bus.service.dto.DeviceAlarmResult;
 import com.coffee.bus.service.dto.DeviceUse;
 import com.coffee.common.crud.BaseService;
 import lombok.AllArgsConstructor;
@@ -85,40 +86,32 @@ public class LocalBusDeviceAlarmService extends BaseService<BusDeviceAlarmMapper
         List<BusHospitalEntity> hospitalEntities = hospitalMapper.selectList(busHospitalEntityQueryWrapper);
         List<DeviceUse> deviceUseList = new ArrayList<>();
 
-        for (BusHospitalEntity hospital:
-                hospitalEntities) {
-            DeviceUse deviceUse = new DeviceUse();
-            Map<String, Integer> deviceAlarms = new HashMap<>();
-
-            deviceUse.setName(hospital.getName());
-            deviceUse.setAddress(hospital.getAddress());
-            deviceUse.setDeviceAlarms(deviceAlarms);
-
+        // 获取 报警所有信息数量
+        List<DeviceAlarmResult> alarmResults = busDeviceAlarmMapper.selectAlarmCount(query);
 
-            query.setTenantId(hospital.getId());
+        Map<String,List<DeviceAlarmResult>> alarmMap= new HashMap<>();
 
-            for (DeviceAlarmEnum alarmEnum:
-                    DeviceAlarmEnum.values()) {
-                query.setAlarmState(alarmEnum.getValue());
-                deviceAlarms.put(alarmEnum.getText(),busDeviceAlarmMapper.selectAlarmCount(query));
+        for (DeviceAlarmResult deviceAlarmResult : alarmResults
+             ) {
+            List<DeviceAlarmResult> list = alarmMap.get(deviceAlarmResult.getTenantId());
+            if(list == null){
+                list = new ArrayList<>();
             }
-            query.setAlarmState(null);
-            /*输注即将结束提醒*/
-            query.setWarnWillFinished(1);
-            deviceAlarms.put("warnWillFinished",busDeviceAlarmMapper.selectAlarmCount(query));
-            query.setWarnWillFinished(null);
-            /*镇痛不足提醒*/
-            query.setWarnAnalgesicPoor(1);
-            deviceAlarms.put("warnAnalgesicPoor",busDeviceAlarmMapper.selectAlarmCount(query));
-            query.setWarnAnalgesicPoor(null);
-            /*电量偏低提醒*/
-            query.setWarnWillFinished(1);
-            deviceAlarms.put("warnLowBattery",busDeviceAlarmMapper.selectAlarmCount(query));
-            query.setWarnWillFinished(null);
+            list.add(deviceAlarmResult);
+            alarmMap.put(deviceAlarmResult.getTenantId(),list);
+        }
 
+        // 遍历医院
+        for (BusHospitalEntity hospital:hospitalEntities
+             ) {
+            DeviceUse deviceUse = new DeviceUse();
+            deviceUse.setAddress(hospital.getAddress());
+            deviceUse.setName(hospital.getName());
+            deviceUse.setList(alarmMap.get(hospital.getId()));
             deviceUseList.add(deviceUse);
-
         }
+
+
         return deviceUseList;
 
     }

+ 0 - 5
coffee-system/src/main/java/com/coffee/bus/service/dto/DeviceAlarmQuery.java

@@ -59,9 +59,4 @@ public class DeviceAlarmQuery implements Serializable {
     @ApiModelProperty(value = "医院ID")
     private String tenantId;
 
-
-    @ApiModelProperty("分页查询")
-    @NotNull(message = "分页查询参数不可为空")
-    private Page<DeviceResult> page;
-
 }

+ 2 - 1
coffee-system/src/main/java/com/coffee/bus/service/dto/DeviceUse.java

@@ -9,6 +9,7 @@ import org.hibernate.validator.constraints.Length;
 import org.springframework.context.annotation.Bean;
 
 import java.io.Serializable;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -35,6 +36,6 @@ public class DeviceUse implements Serializable {
 
 
     @ApiModelProperty(value = "报警数量")
-    private Map<String, Integer> deviceAlarms;
+    private List<DeviceAlarmResult> list;
 
 }

+ 15 - 23
coffee-system/src/main/resources/mapper/bus/BusDeviceAlarmMapper.xml

@@ -2,6 +2,12 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.coffee.bus.mapper.BusDeviceAlarmMapper">
 
+    <resultMap id="deviceAlarmResult" type="com.coffee.bus.service.dto.DeviceAlarmResult">
+        <result column="tenant_id" property="tenantId"/>
+        <result column="alarm_state" property="alarmState"/>
+        <result column="alarm_count" property="alarmCount"/>
+    </resultMap>
+
 
     <select id="pageQuery" parameterType="com.coffee.bus.service.dto.AlarmQuery" resultType="com.coffee.bus.entity.BusDeviceAlarmEntity">
         select a.* from
@@ -10,12 +16,14 @@
         on a.infusion_id=h.id
     </select>
 
-    <select id="selectAlarmCount" parameterType="com.coffee.bus.service.dto.DeviceAlarmQuery" resultType="java.lang.Integer">
+    <select id="selectAlarmCount" parameterType="com.coffee.bus.service.dto.DeviceAlarmQuery" resultType="com.coffee.bus.service.dto.DeviceAlarmResult">
         SELECT
-            count( 1 )
+        da.tenant_id,
+        da.alarm_state,
+        COUNT(1) as alarm_count
         FROM
-            bus_device_alarm AS da
-                LEFT JOIN bus_device AS d ON da.device_id = d.id
+        bus_device_alarm AS da
+        left JOIN bus_device AS d ON da.device_id = d.id
         WHERE
               1=1
         <if test="query.uploadTimeMin != null">
@@ -24,28 +32,12 @@
         <if test="query.uploadTimeMax != null">
         AND da.update_time &lt;= #{query.uploadTimeMax}
         </if>
-        <if test="query.alarm != null">
-        AND da.alarm = #{query.alarm}
-        </if>
-        <if test="query.alarmState != null">
-        AND da.alarm_state = #{query.alarmState}
-        </if>
-        <if test="query.warnWillFinished != null">
-        AND da.warn_will_finished = #{query.warnWillFinished}
-        </if>
-        <if test="query.warnLowBattery != null">
-        AND da.warn_low_battery = #{query.warnLowBattery}
-        </if>
-        <if test="query.warnAnalgesicPoor != null">
-        AND da.warn_analgesic_poor = #{query.warnAnalgesicPoor}
-        </if>
-        <if test="query.tenantId != null">
-        AND da.tenant_id = #{query.tenantId}
-        </if>
         <if test="query.type != null">
         AND d.type = #{query.type}
         </if>
-
+        GROUP BY
+        da.tenant_id,
+        da.alarm_state
     </select>
 
 </mapper>