|
@@ -4,25 +4,20 @@ import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
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.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.exception.BDException;
|
|
import com.care.common.service.*;
|
|
import com.care.common.service.*;
|
|
import com.care.common.vo.device.DeviceVO;
|
|
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 lombok.extern.slf4j.Slf4j;
|
|
import org.apache.commons.compress.utils.Lists;
|
|
import org.apache.commons.compress.utils.Lists;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
@@ -38,23 +33,20 @@ public class PinanbaoService {
|
|
@Resource
|
|
@Resource
|
|
private CareDeviceService careDeviceService;
|
|
private CareDeviceService careDeviceService;
|
|
@Resource
|
|
@Resource
|
|
- private CareMemberInfoService careMemberInfoService;
|
|
|
|
- @Resource
|
|
|
|
- private CareHouseContactService careHouseContactService;
|
|
|
|
- @Resource
|
|
|
|
private CareEventOrderService careEventOrderService;
|
|
private CareEventOrderService careEventOrderService;
|
|
@Resource
|
|
@Resource
|
|
private CareEventOrderHandleHisService careEventOrderHandleHisService;
|
|
private CareEventOrderHandleHisService careEventOrderHandleHisService;
|
|
@Resource
|
|
@Resource
|
|
- private FileUploadService fileUploadService;
|
|
|
|
- @Resource
|
|
|
|
private CareHouseService careHouseService;
|
|
private CareHouseService careHouseService;
|
|
@Resource
|
|
@Resource
|
|
- private CareOrganizationService careOrganizationService;
|
|
|
|
|
|
+ private CareEventOrderChambService careEventOrderChambService;
|
|
|
|
+ @Resource
|
|
|
|
+ private CareSysUserService careSysUserService;
|
|
@Resource
|
|
@Resource
|
|
- private CareStationService careStationService;
|
|
|
|
|
|
+ private CareEventOrderContactStatusService careEventOrderContactStatusService;
|
|
@Resource
|
|
@Resource
|
|
- private CareOlderService careOlderService;
|
|
|
|
|
|
+ private CareEventOrderOlderService careEventOrderOlderService;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 查询我的的设备列表
|
|
* 查询我的的设备列表
|
|
* @param memberId
|
|
* @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
|
|
* @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<CareEventOrderHandleHis> queryWrapper = new QueryWrapper<>();
|
|
queryWrapper.lambda().eq(CareEventOrderHandleHis::getOrderId,orderId)
|
|
queryWrapper.lambda().eq(CareEventOrderHandleHis::getOrderId,orderId)
|
|
.orderByDesc(CareEventOrderHandleHis::getCreateTime);
|
|
.orderByDesc(CareEventOrderHandleHis::getCreateTime);
|
|
@@ -121,10 +292,10 @@ public class PinanbaoService {
|
|
datas.forEach(item ->{
|
|
datas.forEach(item ->{
|
|
OrderHandleHisVO hisVO = new OrderHandleHisVO();
|
|
OrderHandleHisVO hisVO = new OrderHandleHisVO();
|
|
BeanUtil.copyProperties(item,hisVO);
|
|
BeanUtil.copyProperties(item,hisVO);
|
|
- result.add(hisVO);
|
|
|
|
|
|
+ orderHandleHisVOList.add(hisVO);
|
|
});
|
|
});
|
|
}
|
|
}
|
|
- return result;
|
|
|
|
|
|
+ return orderHandleHisVOList;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|