Sfoglia il codice sorgente

第二版,频安宝

suntianwu 3 anni fa
parent
commit
89e3a80be1

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

@@ -289,7 +289,7 @@ public class BmsEventOrderService {
             eventOrderVO  = new EventOrderVO();
             BeanUtil.copyProperties(order,eventOrderVO);
             eventOrderVO.setStatusName(OrderStatusEnum.getCodeToName(eventOrderVO.getStatus()));
-            eventOrderVO.setOrderType(OrderTypeEnum.getCodeToName(eventOrderVO.getOrderType()));
+            eventOrderVO.setOrderTypeName(OrderTypeEnum.getCodeToName(eventOrderVO.getOrderType()));
             CareHouse house = this.careHouseService.getById(order.getHouseId());
             CareHouseVO houseVO = new CareHouseVO();
             BeanUtil.copyProperties(house,houseVO);

+ 5 - 4
src/main/java/com/care/client/controller/EventApiController.java

@@ -2,6 +2,7 @@ package com.care.client.controller;
 
 import com.care.client.service.PassportService;
 import com.care.client.service.PinanbaoService;
+import com.care.client.vo.EventDetailVO;
 import com.care.client.vo.MemberInfoVO;
 import com.care.common.util.Result;
 import com.care.common.vo.device.DeviceVO;
@@ -39,11 +40,11 @@ public class EventApiController {
         return  Result.success("查询成功!",orderInfo);
     }
 
+
     @GetMapping("/getEventInfo")
-    @ApiOperation(tags = {"事件处理"},value = "某个事件的详细处理记录")
-    public Result<List<OrderHandleHisVO>> queryDoHis(HttpServletRequest request, @RequestHeader("token") String token, @RequestParam("orderId") Long orderId){
-        return  Result.success("查询成功!",this.pinanbaoService.queryOrderHandleHis(orderId));
+    @ApiOperation(tags = {"事件处理"},value = "某个事件的详细处理记录  -- 二期修改")
+    public Result<EventDetailVO> getEventInfo(HttpServletRequest request, @RequestHeader("token") String token, @RequestParam("orderId") Long orderId){
+        return  Result.success("查询成功!",this.pinanbaoService.getEventInfo(orderId));
     }
 
-
 }

+ 194 - 23
src/main/java/com/care/client/service/PinanbaoService.java

@@ -4,25 +4,20 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.care.client.vo.DeviceMonitorVO;
-import com.care.client.vo.HouseContactVO;
-import com.care.client.vo.MemberInfoVO;
-import com.care.client.vo.OlderVO;
+import com.care.client.vo.*;
 import com.care.common.entity.*;
-import com.care.common.enums.OrderStatusEnum;
-import com.care.common.enums.OrderTypeEnum;
-import com.care.common.enums.RelationTypeEnum;
+import com.care.common.enums.*;
 import com.care.common.exception.BDException;
 import com.care.common.service.*;
 import com.care.common.vo.device.DeviceVO;
-import com.care.common.vo.order.EventOrderVO;
-import com.care.common.vo.order.OrderHandleHisVO;
+import com.care.common.vo.order.*;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.compress.utils.Lists;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -38,23 +33,20 @@ public class PinanbaoService {
     @Resource
     private CareDeviceService careDeviceService;
     @Resource
-    private CareMemberInfoService careMemberInfoService;
-    @Resource
-    private CareHouseContactService careHouseContactService;
-    @Resource
     private CareEventOrderService careEventOrderService;
     @Resource
     private CareEventOrderHandleHisService careEventOrderHandleHisService;
     @Resource
-    private FileUploadService fileUploadService;
-    @Resource
     private CareHouseService careHouseService;
     @Resource
-    private CareOrganizationService careOrganizationService;
+    private CareEventOrderChambService careEventOrderChambService;
+    @Resource
+    private CareSysUserService careSysUserService;
     @Resource
-    private CareStationService careStationService;
+    private CareEventOrderContactStatusService careEventOrderContactStatusService;
     @Resource
-    private CareOlderService careOlderService;
+    private CareEventOrderOlderService careEventOrderOlderService;
+
     /**
      * 查询我的的设备列表
      * @param memberId
@@ -108,11 +100,190 @@ public class PinanbaoService {
     }
 
     /**
-     * 获取处理记录
+     * 获取事件详情
+     * @return
+     */
+    public EventDetailVO getEventInfo(Long orderId) {
+        EventDetailVO result = new EventDetailVO();
+
+        //事件基本信息
+        EventOrderVO eventOrderVO = this.getOrderInfo(orderId);
+        result.setEventOrderVO(eventOrderVO);
+
+        //主管家和改派管家列表
+        List<ChamberlainVO>  chambList = this.queryChambList(orderId);
+        result.setChambList(chambList);
+
+        //老人列表
+        List<OrderOlderVO>  olderList = this.queryOrderOlderList(orderId);
+        result.setOlderList(olderList);
+
+        //联系人列表
+        List<OrderContactorVO> contactList = this.queryContactList(orderId);
+        result.setContactList(contactList);
+
+        //历史处理记录
+        List<OrderHandleHisVO> orderHandleHisVOList = queryOrderHandleHis(orderId);
+        result.setOrderHandleHisVOList(orderHandleHisVOList);
+        return result;
+    }
+
+    /**
+     * 查询事件基本信息
+     * @param orderId
+     * @return
+     */
+    private EventOrderVO getOrderInfo(Long orderId){
+        EventOrderVO eventOrderVO = null;
+        CareEventOrder order = this.careEventOrderService.getById(orderId);
+        if (order!=null){
+            eventOrderVO  = new EventOrderVO();
+            BeanUtil.copyProperties(order,eventOrderVO);
+            eventOrderVO.setStatusName(OrderStatusEnum.getCodeToName(eventOrderVO.getStatus()));
+            eventOrderVO.setOrderTypeName(OrderTypeEnum.getCodeToName(eventOrderVO.getOrderType()));
+            CareHouse house = this.careHouseService.getById(order.getHouseId());
+            CareHouseVO houseVO = new CareHouseVO();
+            BeanUtil.copyProperties(house,houseVO);
+            //houseVO.setRelationTypeDesc("屋主");
+            eventOrderVO.setHouse(houseVO);
+        }
+        return  eventOrderVO;
+    }
+
+    /**
+     * 主管家改派管家列表查询
+     * @param orderId
+     * @return
+     */
+    private List<ChamberlainVO>  queryChambList(Long orderId){
+        List<ChamberlainVO> chambList = new ArrayList<>();
+
+        ChamberlainVO mainVO = null;
+        ChamberlainVO assignVO = null;
+
+        CareEventOrder order = this.careEventOrderService.getById(orderId);
+        CareDevice dev = this.careDeviceService.getById(order.getDevId());
+        if(dev != null){
+            CareSysUser careSysUser = this.careSysUserService.getById(dev.getChambId());
+            if (careSysUser != null) {
+                mainVO = new ChamberlainVO();
+                BeanUtil.copyProperties(careSysUser,mainVO);
+                mainVO.setIsMain(TrueFalseEnum.TRUE.getValue());
+                mainVO.setStatusDesc(ChambStatusEnum.getCodeToName(mainVO.getStatus()));
+            }
+        }
+        CareEventOrderChamb careEventOrderChamb = this.careEventOrderChambService.getChambOrderByOrderId(orderId);
+        if(careEventOrderChamb != null) {
+            CareSysUser careSysUser = this.careSysUserService.getById(careEventOrderChamb.getChambId());
+            if(careSysUser != null){
+                assignVO = new ChamberlainVO();
+                BeanUtil.copyProperties(careSysUser,assignVO);
+                assignVO.setIsMain(TrueFalseEnum.FALSE.getValue());
+                assignVO.setStatusDesc(ChambStatusEnum.getCodeToName(mainVO.getStatus()));
+            }
+        }
+
+        if (mainVO != null && assignVO != null) {
+            if(mainVO.getId().equals(assignVO.getId())){ //没有指派管家
+                if(ChambStatusEnum.BUSY.getValue().equals(mainVO.getStatus())){ //主状态是忙碌时拆分子状态
+                    if(ChambOrderStatusEnum.DOING.equals(careEventOrderChamb.getStatus())){
+                        mainVO.setSubStatus(ChambSubStatusEnum.DOING.getValue());//处理中
+                    } else {
+                        mainVO.setSubStatus(ChambSubStatusEnum.BUSY.getValue());//忙碌
+                    }
+                } else {//主状态不是忙碌时设置子状态和主状态相同
+                    mainVO.setSubStatus(mainVO.getStatus());
+                }
+                mainVO.setSubStatusDesc(ChambStatusEnum.getCodeToName(mainVO.getSubStatus()));
+                chambList.add(mainVO);
+            } else{ //指派了管家
+                //设置主管家子状态和主状态相同:空闲、休假、忙碌
+                mainVO.setSubStatus(mainVO.getStatus());
+
+                //设置指派管家状态
+                if(ChambStatusEnum.BUSY.getValue().equals(assignVO.getStatus())) { //指派管家的主状态是忙碌时拆分子状态
+                    if(ChambOrderStatusEnum.DOING.equals(careEventOrderChamb.getStatus())){
+                        assignVO.setSubStatus(ChambSubStatusEnum.DOING.getValue());//处理中
+                    } else {
+                        assignVO.setSubStatus(ChambSubStatusEnum.BUSY.getValue());//忙碌
+                    }
+                } else {//指派管家的主状态不是忙碌时设置子状态和主状态相同
+                    assignVO.setSubStatus(assignVO.getStatus());
+                }
+                mainVO.setSubStatusDesc(ChambStatusEnum.getCodeToName(mainVO.getSubStatus()));
+                chambList.add(mainVO);
+                assignVO.setSubStatusDesc(ChambStatusEnum.getCodeToName(assignVO.getSubStatus()));
+                chambList.add(assignVO);
+            }
+        } else if(mainVO == null && assignVO != null) {
+            //设置指派管家状态
+            if(ChambStatusEnum.BUSY.getValue().equals(assignVO.getStatus())) { //指派管家的主状态是忙碌时拆分子状态
+                if(ChambOrderStatusEnum.DOING.equals(careEventOrderChamb.getStatus())){
+                    assignVO.setSubStatus(ChambSubStatusEnum.DOING.getValue());//处理中
+                } else {
+                    assignVO.setSubStatus(ChambSubStatusEnum.BUSY.getValue());//忙碌
+                }
+            } else {//指派管家的主状态不是忙碌时设置子状态和主状态相同
+                assignVO.setSubStatus(assignVO.getStatus());
+            }
+
+            assignVO.setSubStatusDesc(ChambStatusEnum.getCodeToName(assignVO.getSubStatus()));
+            chambList.add(assignVO);
+        }
+
+        return chambList;
+    }
+
+    /**
+     * 查询老人列表
+     * @param orderId
+     * @return
+     */
+    public List<OrderOlderVO>  queryOrderOlderList(Long orderId){
+        List<OrderOlderVO> orderOlderVOList = Lists.newArrayList();
+        QueryWrapper<CareEventOrderOlder> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(CareEventOrderOlder::getOrderId,orderId);
+        List<CareEventOrderOlder> ceoos  = this.careEventOrderOlderService.list(queryWrapper);
+        if (CollUtil.isNotEmpty(ceoos)){
+            ceoos.forEach(item->{
+                OrderOlderVO orderOlderVO = new OrderOlderVO();
+                BeanUtil.copyProperties(item,orderOlderVO);
+                orderOlderVO.setStatusDesc(OrderOlderStatusEnum.getCodeToName(orderOlderVO.getStatus()));
+                orderOlderVOList.add(orderOlderVO);
+            });
+
+        }
+        return orderOlderVOList;
+    }
+
+    /**
+     *  查询工单的相关联系人
+     * @param orderId
      * @return
      */
-    public List<OrderHandleHisVO> queryOrderHandleHis(Long orderId){
-        List<OrderHandleHisVO> result = Lists.newArrayList();
+    private List<OrderContactorVO> queryContactList(Long orderId){
+        List<OrderContactorVO> result = Lists.newArrayList();
+        QueryWrapper<CareEventOrderContactStatus> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(CareEventOrderContactStatus::getOrderId,orderId).orderByAsc(CareEventOrderContactStatus::getContactLevel);
+        List<CareEventOrderContactStatus> ceocs = this.careEventOrderContactStatusService.list(queryWrapper);
+        if (CollUtil.isNotEmpty(ceocs)){
+            ceocs.forEach(item -> {
+                OrderContactorVO contactorVO = new OrderContactorVO();
+                BeanUtil.copyProperties(item,contactorVO);
+                contactorVO.setStatusDesc(ContactorStatusEnum.getCodeToName(item.getStatus()));
+                result.add(contactorVO);
+            });
+        }
+        return  result;
+    }
+
+    /**
+     * 查询事件处理历史列表
+     * @param orderId
+     * @return
+     */
+    private  List<OrderHandleHisVO> queryOrderHandleHis(Long orderId){
+        List<OrderHandleHisVO> orderHandleHisVOList = Lists.newArrayList();
         QueryWrapper<CareEventOrderHandleHis> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(CareEventOrderHandleHis::getOrderId,orderId)
                 .orderByDesc(CareEventOrderHandleHis::getCreateTime);
@@ -121,10 +292,10 @@ public class PinanbaoService {
             datas.forEach(item ->{
                 OrderHandleHisVO hisVO = new OrderHandleHisVO();
                 BeanUtil.copyProperties(item,hisVO);
-                result.add(hisVO);
+                orderHandleHisVOList.add(hisVO);
             });
         }
-        return result;
+        return orderHandleHisVOList;
     }
 
     /**

+ 33 - 0
src/main/java/com/care/client/vo/EventDetailVO.java

@@ -0,0 +1,33 @@
+package com.care.client.vo;
+
+import com.care.common.vo.order.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author: stw
+ * @Date: 2021/9/8
+ * @Desc:
+ */
+@Data
+@ApiModel(description = "事件工单详情")
+public class EventDetailVO {
+
+    @ApiModelProperty("基本信息")
+    private EventOrderVO eventOrderVO;
+
+    @ApiModelProperty("主管家和改派管家列表")
+    private List<ChamberlainVO>  chambList;
+
+    @ApiModelProperty("老人列表")
+    private List<OrderOlderVO>  olderList;
+
+    @ApiModelProperty("紧急联系人列表")
+    private List<OrderContactorVO> contactList;
+
+    @ApiModelProperty("历史处理记录")
+    private List<OrderHandleHisVO> orderHandleHisVOList;
+}

+ 1 - 1
src/main/java/com/care/common/entity/CareEventOrder.java

@@ -25,7 +25,7 @@ import java.util.Date;
 @Accessors(chain = true)
 @TableName("care_event_order")
 @ApiModel(value = "事件定单表", description = "")
-public class CareEventOrder implements Serializable {
+public class    CareEventOrder implements Serializable {
     private static final long serialVersionUID = 580465519695293158L;
 
     @TableId(value = "ID", type = IdType.AUTO)