Przeglądaj źródła

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

orgycat 3 lat temu
rodzic
commit
7e13202060

+ 2 - 2
src/main/java/com/care/bms/controller/VoiceCallbackController.java

@@ -54,7 +54,7 @@ public class VoiceCallbackController {
                     status = ContactorStatusEnum.WEI_JIE_TONG.getValue();
                 }
 
-                bmsEventOrderService.updateOrderContactStatus4Callback(Long.parseLong(orderId), mobile, status,"");
+                bmsEventOrderService.updateOrderContactStatus4Callback(callId,Long.parseLong(orderId), mobile, status,"");
 
                 Map<String, Object> rtn = new HashMap<>();
                 rtn.put("result", 0);
@@ -74,7 +74,7 @@ public class VoiceCallbackController {
 
                     Integer status =  ContactorStatusEnum.WEI_JIE_TONG.getValue();
 
-                    bmsEventOrderService.updateOrderContactStatus4Callback(Long.parseLong(orderId), mobile, status,failureReason);
+                    bmsEventOrderService.updateOrderContactStatus4Callback(callId,Long.parseLong(orderId), mobile, status,failureReason);
 
                     Map<String, Object> rtn = new HashMap<>();
                     rtn.put("result", 0);

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

@@ -523,7 +523,7 @@ public class BmsEventOrderService {
         List<OrderHandleHisVO> result = Lists.newArrayList();
         QueryWrapper<CareEventOrderHandleHis> queryWrapper = new QueryWrapper<>();
         queryWrapper.select("distinct org_id,station_id,house_id,order_id,log_type,order_type,log_object_id,log_object_name,log_result," +
-                "op_user_role,op_user_id,op_user_name,create_time,relation_type_desc,call_result_id,voice_call_status,voice_failure_reason").lambda().eq(CareEventOrderHandleHis::getOrderId, orderId)
+                "op_user_role,op_user_id,op_user_name,create_time,relation_type_desc,call_result_id,voice_call_status,voice_failure_reason,log_step").lambda().eq(CareEventOrderHandleHis::getOrderId, orderId)
                 .orderByDesc(CareEventOrderHandleHis::getCreateTime);
         List<CareEventOrderHandleHis> datas = this.careEventOrderHandleHisService.list(queryWrapper);
         if (CollUtil.isNotEmpty(datas)) {
@@ -606,30 +606,34 @@ public class BmsEventOrderService {
         List<Dict> pushRecords = Lists.newArrayList();
         for (Object orderId : orderIds) {
             CareEventOrder order = this.careEventOrderService.getById(NumberUtils.toLong(Objects.toString(orderId)));
-            UpdateWrapper<CareEventOrder> updateWrapper = new UpdateWrapper<>();
-            updateWrapper.lambda().eq(CareEventOrder::getId, orderId)
-                    .set(CareEventOrder::getStatus, OrderStatusEnum.COMPLETE.getValue())
-                    .set(CareEventOrder::getModifyTime, DateUtil.date());
-            this.careEventOrderService.update(updateWrapper);
-            CareEventOrderHandleHis log = new CareEventOrderHandleHis();
-            log.setOrgId(order.getOrgId());
-            log.setStationId(order.getStationId());
-            log.setOrderId(order.getId());
-            log.setLogType(LogTypeEnum.CLOSE.getValue());
-            log.setLogObjectId(loginUser.getId());
-            log.setLogObjectName(loginUser.getName());
-            log.setLogResult("完成工单");
-            log.setOpUserRole(UserRoleEnum.SEAT.getValue());
-            log.setCreateTime(DateUtil.date());
-            log.setRelationTypeDesc(UserRoleEnum.getCodeToName(loginUser.getRole()));
-            boolean saved = this.careEventOrderHandleHisService.save(log);
-            if (!saved) {
-                throw new BDException("事件归档出现错误, 请稍后重试");
+            if (OrderStatusEnum.TODO.getValue().equals(order.getStatus()) || OrderStatusEnum.DOING.getValue().equals(order.getStatus())){
+                UpdateWrapper<CareEventOrder> updateWrapper = new UpdateWrapper<>();
+                updateWrapper.lambda().eq(CareEventOrder::getId, orderId)
+                        .set(CareEventOrder::getStatus, OrderStatusEnum.COMPLETE.getValue())
+                        .set(CareEventOrder::getSeatId,loginUser.getId())
+                        .set(CareEventOrder::getSeatName,loginUser.getName())
+                        .set(CareEventOrder::getModifyTime, DateUtil.date());
+                this.careEventOrderService.update(updateWrapper);
+                CareEventOrderHandleHis log = new CareEventOrderHandleHis();
+                log.setOrgId(order.getOrgId());
+                log.setStationId(order.getStationId());
+                log.setOrderId(order.getId());
+                log.setLogType(LogTypeEnum.CLOSE.getValue());
+                log.setLogObjectId(loginUser.getId());
+                log.setLogObjectName(loginUser.getName());
+                log.setLogResult("完成工单");
+                log.setOpUserRole(UserRoleEnum.SEAT.getValue());
+                log.setCreateTime(DateUtil.date());
+                log.setRelationTypeDesc(UserRoleEnum.getCodeToName(loginUser.getRole()));
+                boolean saved = this.careEventOrderHandleHisService.save(log);
+                if (!saved) {
+                    throw new BDException("事件归档出现错误, 请稍后重试");
+                }
+                pushRecords.add(Dict.create()
+                        .set("orgId", order.getOrgId())
+                        .set("stationId", order.getStationId())
+                        .set("orderId", orderId));
             }
-            pushRecords.add(Dict.create()
-                    .set("orgId", order.getOrgId())
-                    .set("stationId", order.getStationId())
-                    .set("orderId", orderId));
         }
         for (Dict dict : pushRecords) {
             this.bigScreenService.pushRtEventFlag(dict.getLong("orgId"), dict.getLong("stationId"), dict.getStr("orderId"), "bigscreenRefresh");
@@ -727,27 +731,25 @@ public class BmsEventOrderService {
      * @param status
      * @return
      */
-    public boolean updateOrderContactStatus4Callback(Long orderId,String contactPhone, Integer status,String failureReason) {
+    public boolean updateOrderContactStatus4Callback(String callId, Long orderId,String phone, Integer status,String failureReason) {
 
+        //联系人的,care_event_order_contact_status只有联系人,没有管家
         UpdateWrapper<CareEventOrderContactStatus> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.lambda().eq(CareEventOrderContactStatus::getOrderId, orderId).eq(CareEventOrderContactStatus::getContactPhone,contactPhone)
+        updateWrapper.lambda().eq(CareEventOrderContactStatus::getOrderId, orderId).eq(CareEventOrderContactStatus::getContactPhone,phone)
                 .set(CareEventOrderContactStatus::getStatus, status);
 
-        QueryWrapper<CareEventOrderContactStatus> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(CareEventOrderContactStatus::getOrderId,orderId).eq(CareEventOrderContactStatus::getContactPhone,contactPhone);
-        CareEventOrderContactStatus contact = this.careEventOrderContactStatusService.getOne(queryWrapper);
-
-        if(contact != null) {
-            UpdateWrapper<CareEventOrderHandleHis> updateWrapper2 = new UpdateWrapper<>();
-            updateWrapper2.lambda().eq(CareEventOrderHandleHis::getOrderId, orderId)
-                    .eq(CareEventOrderHandleHis::getLogType,LogTypeEnum.VOTICE.getValue())
-                    .eq(CareEventOrderHandleHis::getLogObjectId,contact.getContactId())
-                    .eq(CareEventOrderHandleHis::getLogResult,"语音通知")
-                    .set(CareEventOrderHandleHis::getVoiceCallStatus, status)
-                    .set(CareEventOrderHandleHis::getVoiceFailureReason, failureReason);
-            this.careEventOrderHandleHisService.update(updateWrapper2);
-        }
-
+        //历史表的
+        UpdateWrapper<CareEventOrderHandleHis> updateWrapper2 = new UpdateWrapper<>();
+        updateWrapper2.lambda().eq(CareEventOrderHandleHis::getVoiceCallId,callId)
+                .set(CareEventOrderHandleHis::getVoiceCallStatus, status)
+                .set(CareEventOrderHandleHis::getVoiceFailureReason, failureReason);
+        this.careEventOrderHandleHisService.update(updateWrapper2);
+
+        //管家的
+        UpdateWrapper<CareEventOrderChamb> updateWrapper3 = new UpdateWrapper<>();
+        updateWrapper3.lambda().eq(CareEventOrderChamb::getOrderId,orderId).eq(CareEventOrderChamb::getPhone,phone)
+                .set(CareEventOrderChamb::getVoiceCallStatus, status);
+        this.careEventOrderChambService.update(updateWrapper3);
 
         return this.careEventOrderContactStatusService.update(updateWrapper);
     }

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

@@ -71,6 +71,9 @@ public class CareEventOrderChamb implements Serializable {
     @TableField("STATUS")
     private String status;
 
+    @ApiModelProperty("语音通知状态:1未联系,2未接通,3已联系")
+    @TableField("VOICE_CALL_STATUS")
+    private String voiceCallStatus;
 
     @ApiModelProperty("到达时间")
     @TableField("DAODA_TIME")

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

@@ -74,6 +74,10 @@ public class CareEventOrderHandleHis implements Serializable {
     @TableField("LOG_RESULT")
     private String logResult;
 
+    @ApiModelProperty("语音通知 callid")
+    @TableField("VOICE_CALL_ID")
+    private String voiceCallId;
+
     @ApiModelProperty("语音通知状态:1未联系,2未接通,3已联系")
     @TableField("VOICE_CALL_STATUS")
     private String voiceCallStatus;
@@ -116,5 +120,9 @@ public class CareEventOrderHandleHis implements Serializable {
     @TableField("CALL_RESULT_ID")
     private Long callResultId;
 
+    @ApiModelProperty("日志步骤: 20:管家离开")
+    @TableField("log_step")
+    private String logStep;
+
 
 }

+ 39 - 0
src/main/java/com/care/common/enums/LogStepEnum.java

@@ -0,0 +1,39 @@
+package com.care.common.enums;
+
+
+import cn.hutool.core.util.StrUtil;
+
+/**
+ * @Author:java
+ * @Date: 2021/05/27
+ */
+public enum LogStepEnum {
+
+    /**
+     *
+     */
+    CHAMB_DAODA("19","管家到达"),
+    CHAMB_LIKAI("20","管家离开");
+    private String value;
+    private String name;
+    LogStepEnum(String value, String name) {
+        this.value = value;
+        this.name = name;
+    }
+    public String getValue() {
+        return value;
+    }
+
+    public static String getCodeToName(String code){
+        if (StrUtil.isEmpty(code)){
+            return null;
+        }
+        if (CHAMB_DAODA.getValue().equals(code)){
+            return  CHAMB_DAODA.name;
+        }else if (CHAMB_LIKAI.getValue().equals(code)){
+            return CHAMB_LIKAI.name;
+        }
+
+        return null;
+    }
+}

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

@@ -317,6 +317,7 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
                             his2.setLogType(LogTypeEnum.VOTICE.getValue());
                             his2.setLogObjectId(item.getContactId());
                             his2.setLogObjectName(item.getContactName());
+                            his2.setVoiceCallId(sendStatus.getCallId());
                             his2.setLogResult("语音通知");
                             his2.setOpUserRole(UserRoleEnum.SEAT.getValue());
                             his2.setCreateTime(DateUtil.date());
@@ -355,6 +356,7 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
                             his2.setLogObjectId(item.getChambId());
                             his2.setLogObjectName(item.getChambName());
                             his2.setLogResult("语音通知");
+                            his2.setVoiceCallId(sendStatus.getCallId());
                             his2.setOpUserRole(UserRoleEnum.SEAT.getValue());
                             his2.setCreateTime(DateUtil.date());
                             his2.setRelationTypeDesc("管家");

+ 12 - 1
src/main/java/com/care/keeper/service/KeeperOrderApiService.java

@@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.care.bms.service.BmsEventOrderService;
 import com.care.common.cache.RedisKeyConstant;
 import com.care.common.cache.RedisUtil;
 import com.care.common.entity.*;
@@ -18,6 +19,7 @@ import com.care.keeper.vo.HouseContactVO;
 import com.care.keeper.vo.KeeperInfoVO;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.compress.utils.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -55,7 +57,8 @@ public class KeeperOrderApiService {
 
     @Resource
     RedisUtil redisUtil;
-
+    @Autowired
+    private BmsEventOrderService bmsEventOrderService;
 
 
 
@@ -349,6 +352,7 @@ public class KeeperOrderApiService {
             his.setOpUserId(orderChamb.getChambId());
             his.setOpUserName(orderChamb.getChambName());
             his.setCreateTime(date);
+            his.setLogStep(LogStepEnum.CHAMB_DAODA.getValue());
             his.setRelationTypeDesc(RelationTypeEnum.CHANMB.getName());
             this.careEventOrderHandleHisService.save(his);
         }
@@ -401,7 +405,14 @@ public class KeeperOrderApiService {
             his.setOpUserName(orderChamb.getChambName());
             his.setCreateTime(date);
             his.setRelationTypeDesc(RelationTypeEnum.CHANMB.getName());
+            his.setLogStep(LogStepEnum.CHAMB_LIKAI.getValue());
             this.careEventOrderHandleHisService.save(his);
+            try{
+                this.bmsEventOrderService.sendSmsToMemberAndLianxiren(orderChamb.getOrderId(),"工单完成");
+            }catch (Exception e){
+                log.error("管家离开时,发送通知失败:工单ID:{}",orderChamb.getChambId(),e);
+            }
+
         }
         return flag;
     }