Browse Source

Merge branch 'master' of http://124.70.58.209:3000/care/care-server into master

orgycat 3 years ago
parent
commit
907c2a1323

+ 9 - 1
src/main/java/com/care/bigscreen/service/impl/BigScreenServiceImpl.java

@@ -1,6 +1,7 @@
 package com.care.bigscreen.service.impl;
 
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.care.bigscreen.entity.StOrganization;
 import com.care.bigscreen.entity.StStation;
@@ -11,6 +12,7 @@ import com.care.bigscreen.service.BigScreenService;
 import com.care.bigscreen.vo.*;
 import com.care.bms.websocket.StationWebSocketEndpoint;
 import com.care.bms.websocket.WebSocketEndpoint;
+import com.care.common.enums.OrderTypeEnum;
 import com.care.common.service.CareStationService;
 import com.care.common.util.DomainEquals;
 import com.care.common.vo.PageResVO;
@@ -151,7 +153,13 @@ public class BigScreenServiceImpl implements BigScreenService {
      */
     @Override
     public List<BigScreenEventVO> selectBigScreenRtEventList(Long orgId ,Long stationId) {
-        return bigSreenMapper.selectBigScreenRtEventList(orgId, stationId);
+        List<BigScreenEventVO> list = bigSreenMapper.selectBigScreenRtEventList(orgId, stationId);
+        if (CollUtil.isNotEmpty(list)){
+            list.forEach(item ->{
+                item.setEventType(OrderTypeEnum.getCodeToName(item.getEventType()));
+            });
+        }
+        return list;
     }
 
     /**

+ 6 - 0
src/main/java/com/care/bms/service/BmsEventOrderService.java

@@ -537,6 +537,9 @@ public class BmsEventOrderService {
                         hisVO.setHasAudioUrl(true);
                     }
                 }
+                if (hisVO.getLogObjectName() == null){
+                    hisVO.setLogObjectName("");
+                }
                 result.add(hisVO);
             });
         }
@@ -559,6 +562,9 @@ public class BmsEventOrderService {
                 OrderContactorVO contactorVO = new OrderContactorVO();
                 BeanUtil.copyProperties(item, contactorVO);
                 contactorVO.setStatusDesc(ContactorStatusEnum.getCodeToName(item.getStatus()));
+                if (contactorVO.getContactName() == null){
+                    contactorVO.setContactName("");
+                }
                 result.add(contactorVO);
             });
         }

+ 9 - 9
src/main/java/com/care/client/schedule/HealthDataStaSchedule.java

@@ -41,10 +41,10 @@ public class HealthDataStaSchedule {
 
     /**
      * 每小时卧室在床统计
-     * 1小时调用一次
+     * 1分钟调用一次
      */
     @Async
-    @Scheduled(cron = "0 0 0/1 * * ?")
+    @Scheduled(cron = "0 0/1 * * * ?")
     public void exeBedroomInbedHourSta() {
         careBedroomInbedHourStaService.exeBedroomInbedHourSta();
     }
@@ -54,37 +54,37 @@ public class HealthDataStaSchedule {
      * 1小时调用一次
      */
     @Async
-    @Scheduled(cron = "0 0 0/1 * * ?")
+    @Scheduled(cron = "0 0/1 * * * ?")
     public void exeToiletInoutHourSta() {
         careToiletInoutHourStaService.exeToiletInoutHourSta();
     }
 
     /**
      * 每小时行走距离统计
-     * 1小时调用一次
+     * 1分钟调用一次
      */
     @Async
-    @Scheduled(cron = "0 0 0/1 * * ?")
+    @Scheduled(cron = "0 0/1 * * * ?")
     public void exeWalkingDistanceHourSta() {
         careWalkingDistanceHourStaService.exeWalkingDistanceHourSta();
     }
 
     /**
      * 每日安全事件统计
-     * 1调用一次
+     * 1分钟调用一次
      */
     @Async
-    @Scheduled(cron = "0 1 0 * * ?")
+    @Scheduled(cron = "0 0/1 * * * ?")
     public void exeDevEventDaySta() {
         careDevEventDayStaService.exeDevEventDaySta();
     }
 
     /**
      * 每小时心率呼吸统计
-     * 1小时调用一次
+     * 1分钟调用一次
      */
     @Async
-    @Scheduled(cron = "0 0 0/1 * * ?")
+    @Scheduled(cron = "0 0/1 * * * ?")
     public void exeHeartBreathHourSta() {
         careHeartBreathHourStaService.exeHeartBreathHourSta();
     }

+ 51 - 10
src/main/java/com/care/client/service/PinanbaoService.java

@@ -3,6 +3,8 @@ package com.care.client.service;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.math.MathUtil;
+import cn.hutool.core.util.NumberUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -89,14 +91,30 @@ public class PinanbaoService {
             vo.setBreathRate(device.getBreathRate());
             vo.setHeartRate(device.getHeartRate());
 
-            //活动状态
-            vo.setMoveStatu(device.getMoveStatus());
-            vo.setMoveStatuName(DeviceMoveStateEnum.getCodeToName(device.getMoveStatus()));
+            //厕所场景下, 活动状态 只有 有人/无人
+            if (DeviceSceneEnum.TOILET.getValue().equals(device.getDevScene())){
+                vo.setMoveStatu(device.getMoveStatus());
+                String desc = DeviceMoveStateEnum.NONE.getValue().equals(device.getMoveStatus())?"无人":"有人";
+                vo.setMoveStatuName(desc);
+            }else{
+                //活动状态
+                vo.setMoveStatu(device.getMoveStatus());
+                vo.setMoveStatuName(DeviceMoveStateEnum.getCodeToName(device.getMoveStatus()));
+            }
+
 
             //在床状态
             vo.setInbedStatus(device.getInbedStatus());
             vo.setInbedStatusName(DeviceInbedStateEnum.getCodeToName(device.getInbedStatus()));
 
+            //卧室场景: 在床、无人冲突时, 显示成 静止状态
+            if (DeviceSceneEnum.BEDROOM.getValue().equals(device.getDevScene())){
+                if (DeviceMoveStateEnum.NONE.getValue().equals(device.getMoveStatus()) && DeviceInbedStateEnum.INBED.getValue().equals(device.getInbedStatus())){
+                    vo.setMoveStatu(DeviceMoveStateEnum.STATIC.getValue());
+                    vo.setMoveStatuName(DeviceMoveStateEnum.getCodeToName(DeviceMoveStateEnum.STATIC.getValue()));
+                }
+            }
+
             //睡眠时间
             DeviceMonitorVO vo1 = careBedroomInbedDetailService.selectSleepTime(devId);
             if(vo1 != null) {
@@ -108,6 +126,8 @@ public class PinanbaoService {
             DeviceMonitorVO vo2 = careToiletInoutDetailService.selectToiletInoutFrequency(devId);
             if(vo2 != null) {
                 vo.setToiletInoutFrequency(vo2.getToiletInoutFrequency());
+                vo.setToiletStayDurationAvg(vo2.getToiletStayDurationAvg());
+                vo.setToiletStayDurationMax(vo2.getToiletStayDurationMax());
             }
 
             //活动距离和时长
@@ -127,10 +147,15 @@ public class PinanbaoService {
      * @return
      */
     public List<CareBedroomInbedHourSta> getInbedTimeChartList(Long devId){
-        String beginHour = DateUtil.format(new Date(),"yyyyMMddHH");
+        String beginHour = DateUtil.format(new Date(),"yyyyMMdd") + "00";
         QueryWrapper<CareBedroomInbedHourSta> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(CareBedroomInbedHourSta::getDevId,devId).gt(CareBedroomInbedHourSta::getDataHour,beginHour).orderByAsc(CareBedroomInbedHourSta::getDataHour);
+        queryWrapper.lambda().eq(CareBedroomInbedHourSta::getDevId,devId).ge(CareBedroomInbedHourSta::getDataHour,beginHour).orderByAsc(CareBedroomInbedHourSta::getDataHour);
         List<CareBedroomInbedHourSta> list = this.careBedroomInbedHourStaService.list(queryWrapper);
+        if(CollUtil.isNotEmpty(list)){
+            list.forEach(item -> {
+                item.setDataHour(item.getDataHour().substring(8)+":00");
+            });
+        }
         return list;
     }
 
@@ -140,10 +165,15 @@ public class PinanbaoService {
      * @return
      */
     public List<CareToiletInoutHourSta> getToiletInoutChartList(Long devId){
-        String beginHour = DateUtil.format(new Date(),"yyyyMMddHH");
+        String beginHour = DateUtil.format(new Date(),"yyyyMMdd") + "00";
         QueryWrapper<CareToiletInoutHourSta> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(CareToiletInoutHourSta::getDevId,devId).gt(CareToiletInoutHourSta::getDataHour,beginHour).orderByAsc(CareToiletInoutHourSta::getDataHour);
+        queryWrapper.lambda().eq(CareToiletInoutHourSta::getDevId,devId).ge(CareToiletInoutHourSta::getDataHour,beginHour).orderByAsc(CareToiletInoutHourSta::getDataHour);
         List<CareToiletInoutHourSta> list = this.careToiletInoutHourStaService.list(queryWrapper);
+        if(CollUtil.isNotEmpty(list)){
+            list.forEach(item -> {
+                item.setDataHour(item.getDataHour().substring(8)+":00");
+            });
+        }
         return list;
     }
 
@@ -153,10 +183,16 @@ public class PinanbaoService {
      * @return
      */
     public List<CareWalkingDistanceHourSta> getActivityChartList(Long devId){
-        String beginHour = DateUtil.format(new Date(),"yyyyMMddHH");
+        String beginHour = DateUtil.format(new Date(),"yyyyMMdd") + "00";
         QueryWrapper<CareWalkingDistanceHourSta> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(CareWalkingDistanceHourSta::getDevId,devId).gt(CareWalkingDistanceHourSta::getDataHour,beginHour).orderByAsc(CareWalkingDistanceHourSta::getDataHour);
+        queryWrapper.lambda().eq(CareWalkingDistanceHourSta::getDevId,devId).ge(CareWalkingDistanceHourSta::getDataHour,beginHour).orderByAsc(CareWalkingDistanceHourSta::getDataHour);
         List<CareWalkingDistanceHourSta> list = this.careWalkingDistanceHourStaService.list(queryWrapper);
+        if(CollUtil.isNotEmpty(list)){
+            list.forEach(item -> {
+                item.setDataHour(item.getDataHour().substring(8)+":00");
+                item.setWalkingDistance(Math.ceil(item.getWalkingDistance()));
+            });
+        }
         return list;
     }
 
@@ -382,6 +418,9 @@ public class PinanbaoService {
                 OrderContactorVO contactorVO = new OrderContactorVO();
                 BeanUtil.copyProperties(item,contactorVO);
                 contactorVO.setStatusDesc(ContactorStatusEnum.getCodeToName(item.getStatus()));
+                if (contactorVO.getContactName() == null){
+                    contactorVO.setContactName("");
+                }
                 result.add(contactorVO);
             });
         }
@@ -404,6 +443,9 @@ public class PinanbaoService {
             datas.forEach(item ->{
                 OrderHandleHisVO hisVO = new OrderHandleHisVO();
                 BeanUtil.copyProperties(item,hisVO);
+                if (hisVO.getLogObjectName() == null){
+                    hisVO.setLogObjectName("");
+                }
                 orderHandleHisVOList.add(hisVO);
             });
         }
@@ -489,5 +531,4 @@ public class PinanbaoService {
         Map<String,String> map =  this.careDeviceService.get3dUrl(devId);
         return  map.get("toWX");
     }
-
 }

+ 1 - 1
src/main/java/com/care/common/service/impl/CareEventOrderServiceImpl.java

@@ -454,7 +454,7 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
                 orderContactStatus.setContactRole(UserRoleEnum.CONTACT.getValue());
                 orderContactStatus.setContactId(item.getId());
                 orderContactStatus.setStatus(ContactorStatusEnum.WEI_LIAN_XI.getValue());
-                orderContactStatus.setContactName(item.getContactName());
+                orderContactStatus.setContactName(StrUtil.isNotEmpty(item.getContactName())?item.getContactName():item.getContactPhone());
                 orderContactStatus.setContactPhone(item.getContactPhone());
                 orderContactStatus.setLongitude(item.getLongitude());
                 orderContactStatus.setLatitude(item.getLatitude());

+ 1 - 2
src/main/java/com/care/installation/service/RoomService.java

@@ -54,7 +54,6 @@ public class RoomService {
     @Value("${mqtt.dev.jihuo.timeout:#{null}}")
     private String mqttJihuoTimeout;
 
-    private static Logger logger = LoggerFactory.getLogger(RoomService.class);
 
     public  Map<String,Boolean> getConfStatusInfo(String devCode) {
         Map<String,Boolean> map = new HashMap<>();
@@ -264,7 +263,7 @@ public class RoomService {
      */
     public Boolean commitRoomInfo(String devCode) {
         try {
-            logger.info("commitRoomInfo.devCode == " + devCode);
+            log.info("commitRoomInfo.devCode == " + devCode);
             RoomVO roomVO = getRoomInfo(devCode);
             RoomSensorVO roomSensorVO = getRoomSensorInfo(devCode);
             List<RoomGateVO> roomGateVOList = listRoomGateInfo(devCode);

+ 6 - 0
src/main/java/com/care/keeper/service/KeeperOrderApiService.java

@@ -214,6 +214,9 @@ public class KeeperOrderApiService {
                 OrderOlderVO orderOlderVO = new OrderOlderVO();
                 BeanUtil.copyProperties(item,orderOlderVO);
                 orderOlderVO.setStatusDesc(OrderOlderStatusEnum.getCodeToName(orderOlderVO.getStatus()));
+                if (orderOlderVO.getName() == null){
+                    orderOlderVO.setName("");
+                }
                 orderOlderVOList.add(orderOlderVO);
             });
         }
@@ -238,6 +241,9 @@ public class KeeperOrderApiService {
                 HouseContactVO vo = new HouseContactVO();
                 BeanUtil.copyProperties(careHouseContact,vo);
                 vo.setRelationTypeDesc(RelationTypeEnum.getCodeToName(vo.getRelationType()));
+                if (vo.getContactName() == null){
+                    vo.setContactName("");
+                }
                 vos.add(vo);
             });
         }

+ 23 - 14
src/main/java/com/care/mqtt/service/MqttMsgService.java

@@ -125,9 +125,11 @@ public class MqttMsgService {
 
                 Integer breath = (Integer) msg.get("breath");
                 Integer heart = (Integer) msg.get("heart");
-                careDevice.setBreathRate(breath);
-                careDevice.setHeartRate(heart);
-                careDeviceService.updateById(careDevice);
+                if (breath !=careDevice.getBreathRate() || heart !=careDevice.getHeartRate() ){
+                    careDevice.setBreathRate(breath);
+                    careDevice.setHeartRate(heart);
+                    careDeviceService.updateById(careDevice);
+                }
                 return;
             }
 
@@ -169,8 +171,8 @@ public class MqttMsgService {
             for(Map target : targets) {
                 Integer tid = (Integer) target.get("tid");
                 Integer cls = (Integer) target.get("cls");
-                BigDecimal x = (BigDecimal) target.get("x");
-                BigDecimal y = (BigDecimal) target.get("y");
+                BigDecimal x = new BigDecimal(String.valueOf(target.get("x"))) ;
+                BigDecimal y = new BigDecimal(String.valueOf(target.get("y"))) ;
                 if (cls == 1) { //是人
                     //先查是否存在
                     String content = (String)redisUtil.hget(RedisKeyConstant.PEOPLEEVENT_ACTIVE_INFO,careDevice.getDevCode()+ "_" + tid);
@@ -212,9 +214,11 @@ public class MqttMsgService {
             }
         }
 
-        //更新数据库dev
-        careDevice.setMoveStatus(moveState);
-        careDeviceService.updateById(careDevice);
+        if(!moveState.equals(careDevice.getMoveStatus())){
+            //更新数据库dev
+            careDevice.setMoveStatus(moveState);
+            careDeviceService.updateById(careDevice);
+        }
 
     }
 
@@ -256,9 +260,12 @@ public class MqttMsgService {
                 if(event == 1) {
                     //上床事件,先存起来
                     redisUtil.hset(RedisKeyConstant.OPTINOUT_BEDROOM_INFO, careDevice.getDevCode()+ "_" + tid, System.currentTimeMillis(), RedisKeyConstant.OPTINOUT_BEDROOM_INFO_TIME);
-                    //更新数据库dev
-                    careDevice.setInbedStatus(DeviceInbedStateEnum.INBED.getValue());
-                    careDeviceService.updateById(careDevice);
+                   if (!DeviceInbedStateEnum.INBED.getValue().equals(careDevice.getInbedStatus())){
+                       //更新数据库dev
+                       careDevice.setInbedStatus(DeviceInbedStateEnum.INBED.getValue());
+                       careDeviceService.updateById(careDevice);
+                   }
+
                 } else {//下床事件,
                     //先查是否存在上床事件
                     Long inTime = (Long)redisUtil.hget(RedisKeyConstant.OPTINOUT_BEDROOM_INFO,careDevice.getDevCode()+ "_" + tid);
@@ -276,9 +283,11 @@ public class MqttMsgService {
                     } else { //不存在上床事件
                         //do nothing
                     }
-                    //更新数据库dev
-                    careDevice.setInbedStatus(DeviceInbedStateEnum.OUTBED.getValue());
-                    careDeviceService.updateById(careDevice);
+                    if (!DeviceInbedStateEnum.OUTBED.getValue().equals(careDevice.getInbedStatus())) {
+                        //更新数据库dev
+                        careDevice.setInbedStatus(DeviceInbedStateEnum.OUTBED.getValue());
+                        careDeviceService.updateById(careDevice);
+                    }
                 }
             }
         }

+ 1 - 1
src/main/resources/mybatis/BigSreenMapper.xml

@@ -306,7 +306,7 @@
         a.title,
         a.create_time createTime,
         (select sdc.name from sys_dim_code sdc where sdc.dim_code = a.status and sdc.type_code='event_order_status') status,
-        '告警' eventType
+        order_type eventType
         FROM care_event_order a
         where a.status in ('0','1')
         <if test="orgId != null and orgId != ''">

+ 5 - 3
src/main/resources/mybatis/CareBedroomInbedHourStaMapper.xml

@@ -3,9 +3,11 @@
 <mapper namespace="com.care.common.mapper.CareBedroomInbedHourStaMapper">
 
     <insert id="exeBedroomInbedHourSta">
-      insert into care_bedroom_inbed_hour_sta(data_hour,dev_id,duration)
-       select DATE_FORMAT(t.create_time,'%Y%m%d%H') data_hour,t.dev_id,convert(sum(t.duration)/60,decimal(20,0)) duration from care_bedroom_inbed_detail t
-        where DATE_FORMAT(t.create_time,'%Y%m%d%H') = DATE_FORMAT(DATE_SUB(now(), INTERVAL 1 HOUR), '%Y%m%d%H')
+        insert into care_bedroom_inbed_hour_sta(data_hour,dev_id,duration)
+        select DATE_FORMAT(t.create_time,'%Y%m%d%H') data_hour,t.dev_id,convert(sum(t.duration)/60,decimal(20,0)) duration from care_bedroom_inbed_detail t
+         where DATE_FORMAT(t.create_time,'%Y%m%d%H') >= DATE_FORMAT(DATE_SUB(now(), INTERVAL 1 HOUR), '%Y%m%d%H')
          group by data_hour,dev_id
+          on duplicate key update
+         duration = values(duration)
     </insert>
 </mapper>

+ 3 - 1
src/main/resources/mybatis/CareDevEventDayStaMapper.xml

@@ -4,8 +4,10 @@
 <insert id="exeDevEventDaySta">
      insert into care_dev_event_day_sta(data_date,dev_id,event_type,frequency)
       select DATE_FORMAT(t.create_time,'%Y%m%d') data_date,t.dev_id,t.order_type, count(1) frequency from care_event_order t
-      where DATE_FORMAT(t.create_time,'%Y%m%d') = DATE_FORMAT(DATE_SUB(now(), INTERVAL 1 DAY), '%Y%m%d')
+      where DATE_FORMAT(t.create_time,'%Y%m%d') >= DATE_FORMAT(DATE_SUB(now(), INTERVAL 1 DAY), '%Y%m%d')
       group by data_date,t.dev_id,t.order_type
+      on duplicate key update
+      frequency = values(frequency)
 </insert>
 
 </mapper>

+ 1 - 1
src/main/resources/mybatis/CareEventOrderMapper.xml

@@ -7,7 +7,7 @@
             count(1) as allCount,
             count(if(status='0',1,null)) as notDoCount,
             count(if(status='1',1,null)) as doingCount,
-            count(if(status='2',1,null))+count(if(status='3',1,null))+count(if(status='4',1,null)) as doneCount,
+            count(if(status='2',1,null))+count(if(status='4',1,null)) as doneCount,
             count(if(status='3',1,null)) as cancelCount
         from care_event_order
         <where>

+ 4 - 1
src/main/resources/mybatis/CareHeartBreathHourStaMapper.xml

@@ -5,8 +5,11 @@
     <insert id = "exeHeartBreathHourSta">
         insert into care_heart_breath_hour_sta(data_hour,dev_id,heart_rate,breath_rate)
        select DATE_FORMAT(t.create_time,'%Y%m%d%H') data_hour,t.dev_id,convert(sum(t.heart_rate)/count(1),decimal(20,0)) heart_rate,convert(sum(t.breath_rate)/count(1) ,decimal(20,0)) breath_rate from care_heart_breath_detail t
-        where DATE_FORMAT(t.create_time,'%Y%m%d%H') = DATE_FORMAT(DATE_SUB(now(), INTERVAL 1 HOUR), '%Y%m%d%H')
+         where DATE_FORMAT(t.create_time,'%Y%m%d%H') >= DATE_FORMAT(DATE_SUB(now(), INTERVAL 1 HOUR), '%Y%m%d%H')
          group by data_hour,dev_id
+         on duplicate key update
+        heart_rate=values(heart_rate),
+        breath_rate=values(breath_rate)
     </insert>
 
 </mapper>

+ 3 - 3
src/main/resources/mybatis/CareToiletInoutDetailMapper.xml

@@ -4,10 +4,10 @@
 
 
     <select id="selectToiletInoutFrequency" resultType="com.care.client.vo.DeviceMonitorVO">
-        SELECT
+         SELECT
         count(1) toiletInoutFrequency,
-        convert(sum(t.duration)/count(1)/60,decimal(20,0)) toiletStayDurationAvg,
-        convert(max(t.duration)/60,decimal(20,0)) toiletStayDurationMax
+        convert(CEILING(sum(t.duration)/count(1)/60),decimal(20,0)) toiletStayDurationAvg,
+        convert(CEILING(max(t.duration)/60),decimal(20,0)) toiletStayDurationMax
         FROM care_toilet_inout_detail t
         where t.dev_id = #{devId} and DATE_FORMAT(t.create_time,'%Y%m%d') = DATE_FORMAT(now(),'%Y%m%d')
 

+ 4 - 1
src/main/resources/mybatis/CareToiletInoutHourStaMapper.xml

@@ -4,8 +4,11 @@
     <insert id="exeToiletInoutHourSta">
         insert into care_toilet_inout_hour_sta(data_hour,dev_id,frequency,duration)
         select DATE_FORMAT(t.create_time,'%Y%m%d%H') data_hour,t.dev_id,COUNT(1) frequency, convert(sum(t.duration)/60,decimal(20,0)) duration from care_toilet_inout_detail t
-        where DATE_FORMAT(t.create_time,'%Y%m%d%H') = DATE_FORMAT(DATE_SUB(now(), INTERVAL 1 HOUR), '%Y%m%d%H')
+        where DATE_FORMAT(t.create_time,'%Y%m%d%H') >= DATE_FORMAT(DATE_SUB(now(), INTERVAL 1 HOUR), '%Y%m%d%H')
         group by data_hour,t.dev_id
+          on duplicate key update
+        frequency=values(frequency),
+        duration=values(duration)
     </insert>
 
 </mapper>

+ 11 - 3
src/main/resources/mybatis/CareWalkingDistanceHourStaMapper.xml

@@ -3,9 +3,17 @@
 <mapper namespace="com.care.common.mapper.CareWalkingDistanceHourStaMapper">
 
   <insert id="exeWalkingDistanceHourSta">
-          insert into care_walking_distance_hour_sta(data_hour,dev_id,dev_scene,walking_distance)
-      select DATE_FORMAT(t.create_time,'%Y%m%d%H') data_hour,t.dev_id,t.dev_scene, sum(walking_distance) walking_distance from care_walking_distance_detail t
-      where DATE_FORMAT(t.create_time,'%Y%m%d%H') = DATE_FORMAT(DATE_SUB(now(), INTERVAL 1 HOUR), '%Y%m%d%H')
+          insert into care_walking_distance_hour_sta(data_hour,dev_id,dev_scene,walking_distance,walking_duration)
+      select DATE_FORMAT(t.create_time,'%Y%m%d%H') data_hour,
+      t.dev_id,
+      t.dev_scene,
+      sum(walking_distance) walking_distance,
+      sum(walking_duration)/1000 walking_duration
+      from care_walking_distance_detail t
+      where DATE_FORMAT(t.create_time,'%Y%m%d%H') >= DATE_FORMAT(DATE_SUB(now(), INTERVAL 1 HOUR), '%Y%m%d%H')
       group by data_hour,t.dev_id,t.dev_scene
+        on duplicate key update
+        walking_distance=values(walking_distance),
+        walking_duration=values(walking_duration)
   </insert>
 </mapper>

+ 1 - 1
src/main/resources/mybatis/StStationMapper.xml

@@ -19,7 +19,7 @@
         (select count(1) from care_older a where a.station_id = t.id and a.safe_level = '1') threeLevelAmount,
         (select count(1) from care_sys_user b where b.station_id = t.id  and  b.role = 'chanmb' ) chamberlainAmount,
         (select count(1) from care_sys_user b where  b.station_id = t.id  and  b.role = 'chanmb' and  b.status = '3' ) chamberlainInServiceAmount,
-        (select count(1) from care_event_order c where c.station_id = t.id ) serveAmount,
+        (select count(1) from care_event_order_chamb c where c.station_id = t.id and status != 3) serveAmount,
         (select count(1) from care_event_order c where c.station_id = t.id and c.create_time >= CURDATE()) serveTodayAmount,
         (select count(1) from care_device d where d.station_id = t.id ) deviceAmount,
         (select count(1) from care_device d where d.station_id = t.id and d.dev_type = '1' and d.status = '1') indoorOnlineAmount,