suntianwu 3 سال پیش
والد
کامیت
0a03442172

+ 21 - 0
src/main/java/com/care/bms/controller/EventHandleController.java

@@ -112,6 +112,27 @@ public class EventHandleController {
         }
     }
 
+    /**
+     *历史告警查询
+     * @param request
+     * @return
+     */
+    @GetMapping("/my-handle/listHisWarn")
+    @ApiOperation(tags = {"我的处理事件"},value = "历史告警查询")
+    public Result<List<OrderHandleHisVO>> listHisWarn(HttpServletRequest request, @RequestHeader(value = "token") String token,
+                                                  @RequestParam(value = "orderId", required = true) Long orderId){
+        try {
+            List<OrderHandleHisVO> datas = this.bmsEventOrderService.listHisWarn(orderId);
+            return PageResult.success(datas);
+        }catch (BDException e) {
+            log.error("历史告警查询列表出现异常",e);
+            return  PageResult.error(e.getMessage());
+        } catch (Exception e) {
+            log.error("事件处理: 历史告警查询出现异常",e);
+            return PageResult.error( "获取列表失败");
+        }
+    }
+
     @GetMapping("/list")
     @ApiOperation(tags = {"事件查询"},value = "事件查询 分页")
     public PageResult<List<EventOrderVO>> list(HttpServletRequest request,

+ 30 - 1
src/main/java/com/care/bms/service/BmsEventOrderService.java

@@ -21,6 +21,7 @@ import com.care.common.vo.UserLogindConvertVO;
 import com.care.common.vo.order.*;
 import com.care.common.vo.outcall.CcCallResultVO;
 import org.apache.commons.compress.utils.Lists;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -170,7 +171,8 @@ public class BmsEventOrderService {
                 .like(StrUtil.isNotEmpty(olderName),CareEventOrder::getOlderName,olderName)
                 .eq(CareEventOrder::getOrgId,loginUser.getOrgId())
                 .eq(CareEventOrder::getSeatId,loginUser.getId())
-                .orderByAsc(CareEventOrder::getModifyTime);
+                .orderByAsc(CareEventOrder::getCreateTime);
+
         IPage<CareEventOrder> pageRes = this.careEventOrderService.page(page, queryWrapper);
         IPage<EventOrderVO> results = new Page<>(pageRes.getCurrent(),pageRes.getSize(),pageRes.getTotal());
         if(CollUtil.isNotEmpty(pageRes.getRecords())){
@@ -180,6 +182,9 @@ public class BmsEventOrderService {
                 BeanUtils.copyProperties(item,resVO);
                 resVO.setOrderTypeName(OrderTypeEnum.getCodeToName(item.getOrderType()));
                 resVO.setStatusName(OrderStatusEnum.getCodeToName(item.getStatus()));
+                QueryWrapper<CareEventOrderHandleHis> queryWrapper2 = new QueryWrapper<>();
+                queryWrapper2.lambda().eq(CareEventOrderHandleHis::getOrderId,item.getId());
+                resVO.setWarnCount(careEventOrderHandleHisService.count(queryWrapper2));
                 list.add(resVO);
             });
             results.setRecords(list);
@@ -187,6 +192,30 @@ public class BmsEventOrderService {
         return results;
     }
 
+
+    /**
+     * 历史告警查询
+     *
+     * @return
+     */
+    public List<OrderHandleHisVO> listHisWarn(Long orderId) {
+        CareEventOrder order = this.careEventOrderService.getById(orderId);
+        QueryWrapper<CareEventOrderHandleHis> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(CareEventOrderHandleHis::getOrderId,order.getId()).orderByDesc(CareEventOrderHandleHis::getCreateTime);
+        List<CareEventOrderHandleHis> list = careEventOrderHandleHisService.list(queryWrapper);
+        List<OrderHandleHisVO> listHisWarn = new ArrayList<>();
+       if(CollUtil.isNotEmpty(list)){
+           list.forEach(item -> {
+               OrderHandleHisVO vo = new OrderHandleHisVO();
+               BeanUtil.copyProperties(item,vo);
+               vo.setOrderTypeName(OrderTypeEnum.getCodeToName(vo.getOrderType()));
+               listHisWarn.add(vo);
+           });
+       }
+        return listHisWarn;
+    }
+
+
     /**
      * 近期事件查询
      * @param orderStatus

+ 22 - 13
src/main/java/com/care/bms/service/DeviceService.java

@@ -69,7 +69,6 @@ public class DeviceService {
      */
     public boolean deleteById(Long id){
         MqttTool.removeOne(this.careDeviceService.getById(id));
-
         return this.careDeviceService.removeById(id);
     }
 
@@ -132,7 +131,7 @@ public class DeviceService {
     }
 
     /**
-     * 保存设备
+     * 保存设备 //TODO功能暂时不用
      * @param vo
      */
     @Transactional(rollbackFor = Exception.class)
@@ -193,6 +192,8 @@ public class DeviceService {
             careHouse.setOrgId(device.getOrgId());
             careHouse.setStationId(device.getStationId());
             this.careHouseService.save(careHouse);
+
+            device.setHouseId(careHouse.getId());
         } else { //修改
             CareHouse careHouse = this.careHouseService.getById(device.getHouseId());
             careHouse.setAddr(vo.getHouseAddr());
@@ -229,56 +230,64 @@ public class DeviceService {
 
         //被监护人
         List<OrderOlderVO> orderOlderVOList = vo.getOrderOlderVOList();
-        List<Long> olderIdUpdates = new ArrayList<>();
+        List<Long> orderOlderVOIdList = new ArrayList<>();
         if(CollUtil.isNotEmpty(orderOlderVOList)){
             orderOlderVOList.forEach(item -> {
                 CareOlder careOlder = new CareOlder();
                 BeanUtil.copyProperties(item, careOlder);
                 if(careOlder.getId() != null) {//修改
                     careOlder.setModifyTime(new Date());
-                    olderIdUpdates.add(careOlder.getId());
                     careOlderService.updateById(careOlder);
                 } else { //新增
                     careOlder.setOrgId(device.getOrgId());
                     careOlder.setStationId(device.getStationId());
                     careOlder.setCreateTime(new Date());
                     careOlderService.save(careOlder);
+                    CareHouseOlderRel  careHouseOlderRel = new  CareHouseOlderRel();
+                    careHouseOlderRel.setHouseId(device.getHouseId());
+                    careHouseOlderRel.setOlderId(careOlder.getId());
+                    careHouseOlderRelService.save(careHouseOlderRel);
                 }
-
+                orderOlderVOIdList.add(careOlder.getId());
             });
         }
 
         //联系人
         List<OrderContactorVO> orderContactorVOList = vo.getOrderContactorVOList();
-        List<Long> contactIdUpdates = new ArrayList<>();
+        List<Long> orderContactorVOIdList = new ArrayList<>();
         if(CollUtil.isNotEmpty(orderContactorVOList)){
             orderContactorVOList.forEach(item -> {
                 CareHouseContact careHouseContact = new CareHouseContact();
                 BeanUtil.copyProperties(item, careHouseContact);
                 if(careHouseContact.getId() != null) {//修改
                     careHouseContact.setModifyTime(new Date());
-                    contactIdUpdates.add(careHouseContact.getId());
                     careHouseContactService.updateById(careHouseContact);
                 } else { //新增
                     careHouseContact.setOrgId(device.getOrgId());
                     careHouseContact.setStationId(device.getStationId());
                     careHouseContact.setCreateTime(new Date());
                     careHouseContactService.save(careHouseContact);
+
+                    CareHouseContactRel  careHouseContactRel = new  CareHouseContactRel();
+                    careHouseContactRel.setHouseId(device.getHouseId());
+                    careHouseContactRel.setContactId(careHouseContact.getId());
+                    careHouseContactRelService.save(careHouseContactRel);
                 }
+                orderContactorVOIdList.add(careHouseContact.getId());
             });
 
         }
 
         //处理删除部分
-        //查询出来数据库里已经有的
         QueryWrapper<CareHouseOlderRel> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(CareHouseOlderRel::getHouseId,device.getHouseId());
-        List<CareHouseOlderRel> olderRels = careHouseOlderRelService.list(queryWrapper);
-        if(CollUtil.isNotEmpty(olderRels)){
+        //查询出来数据库里已经有的
+        List<CareHouseOlderRel> olderRelsDb = careHouseOlderRelService.list(queryWrapper);
+        if(CollUtil.isNotEmpty(olderRelsDb)){
             List<Long> olderIdDels = new ArrayList<>();
             List<Long> olderReIdDels = new ArrayList<>();
-            olderRels.forEach(item -> {
-                if(!olderIdUpdates.contains(item.getOlderId())){
+            olderRelsDb.forEach(item -> {
+                if(!orderOlderVOIdList.contains(item.getOlderId())){
                     olderReIdDels.add(item.getId());
                     olderIdDels.add(item.getOlderId());
                 }
@@ -298,7 +307,7 @@ public class DeviceService {
             List<Long> contactIdDels = new ArrayList<>();
             List<Long> contactReIdDels = new ArrayList<>();
             contactRels.forEach(item -> {
-                if(!contactIdUpdates.contains(item.getContactId())){
+                if(!orderContactorVOIdList.contains(item.getContactId())){
                     contactReIdDels.add(item.getId());
                     contactIdDels.add(item.getContactId());
                 }

+ 3 - 0
src/main/java/com/care/common/entity/CareEventOrderHandleHis.java

@@ -56,6 +56,9 @@ public class CareEventOrderHandleHis implements Serializable {
     @TableField("LOG_TYPE")
     private Integer logType;
 
+    @ApiModelProperty("工单分类: 21:跌倒 22:久滞 23坠床 31主动呼叫")
+    @TableField("ORDER_TYPE")
+    private String orderType;
 
     @ApiModelProperty("操作对象")
     @TableField("LOG_OBJECT_ID")

+ 0 - 1
src/main/java/com/care/common/service/CareHouseContactRelService.java

@@ -10,5 +10,4 @@ import com.care.common.entity.CareHouseContactRel;
  * @since 2021-05-21 00:08:32
  */
 public interface CareHouseContactRelService extends IService<CareHouseContactRel> {
-
 }

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

@@ -90,8 +90,9 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
             CareEventOrderHandleHis his = new CareEventOrderHandleHis();
             his.setOrgId(order.getOrgId());
             his.setStationId(order.getStationId());
-            his.setOrderId(order.getId());//使用未完成的告警事件的ID
+            his.setOrderId(order.getId());
             his.setHouseId(order.getHouseId());
+            his.setOrderType(order.getOrderType());
             if (OrderTypeEnum.ZHU_DONG_HU_JIAO.getValue().equals(order.getOrderType()) || OrderTypeEnum.HU_WAI_HU_JIAO.getValue().equals(order.getOrderType())){
                 his.setLogType(LogTypeEnum.OLDER_EVENT.getValue());
                 his.setLogObjectId(order.getOlderId());
@@ -116,6 +117,7 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
             his.setStationId(order.getStationId());
             his.setOrderId(order.getId());
             his.setHouseId(order.getHouseId());
+            his.setOrderType(order.getOrderType());
             if (OrderTypeEnum.ZHU_DONG_HU_JIAO.getValue().equals(order.getOrderType()) || OrderTypeEnum.HU_WAI_HU_JIAO.getValue().equals(order.getOrderType())){
                 his.setLogType(LogTypeEnum.OLDER_EVENT.getValue());
                 his.setLogObjectId(order.getOlderId());
@@ -236,8 +238,8 @@ 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.getName());
-                orderContactStatus.setContactPhone(item.getPhone());
+                orderContactStatus.setContactName(item.getContactName());
+                orderContactStatus.setContactPhone(item.getContactPhone());
                 orderContactStatus.setLongitude(item.getLongitude());
                 orderContactStatus.setLatitude(item.getLatitude());
                 orderContactStatus.setRelationTypeDesc(RelationTypeEnum.getCodeToName(item.getRelationType()));

+ 2 - 1
src/main/java/com/care/common/vo/order/EventOrderVO.java

@@ -99,5 +99,6 @@ public class EventOrderVO implements Serializable {
     @ApiModelProperty("房屋")
     private CareHouseVO house;
 
-
+    @ApiModelProperty("告警数量")
+    private Integer warnCount;
 }

+ 3 - 0
src/main/java/com/care/common/vo/order/OrderHandleHisVO.java

@@ -28,6 +28,9 @@ public class OrderHandleHisVO implements Serializable {
     @ApiModelProperty("日志类型:0: 老人事件  1:联系老人 2:联系紧急联系人 3联系管家 4联系120  5钥匙申请 6钥匙授权 7管家到达打卡 8管家归还钥匙 9管家离开打卡 10上报处理结果")
     private Integer logType;
 
+    @ApiModelProperty("工单分类: 21:跌倒 22:久滞 23坠床 31主动呼叫")
+    private String orderType;
+    private String orderTypeName;
 
     @ApiModelProperty("操作对象")
     private Long logObjectId;

+ 1 - 1
src/main/resources/common.properties

@@ -14,4 +14,4 @@ mqtt.port=8083
 mqtt.username=test
 mqtt.password=public
 #是否开启mqtt消息接受服务,开启:1,不开启:0
-mqtt.on=0
+mqtt.on=1