|
@@ -4,6 +4,7 @@ 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.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.care.common.cache.RedisKeyConstant;
|
|
import com.care.common.cache.RedisKeyConstant;
|
|
import com.care.common.cache.RedisUtil;
|
|
import com.care.common.cache.RedisUtil;
|
|
@@ -17,6 +18,7 @@ import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -74,7 +76,7 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
- public boolean saveHisOrder(CareEventOrder order,CareEventOrder orderDb){
|
|
|
|
|
|
+ public boolean saveHisOrder(CareEventOrder order,CareEventOrder orderDb,boolean isCancel){
|
|
// orderDb.setOrderType(order.getOrderType());
|
|
// orderDb.setOrderType(order.getOrderType());
|
|
// this.updateById(orderDb);//更新
|
|
// this.updateById(orderDb);//更新
|
|
order.setId(orderDb.getId());
|
|
order.setId(orderDb.getId());
|
|
@@ -95,7 +97,11 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
|
|
his.setLogType(LogTypeEnum.DEV_EVENT.getValue());
|
|
his.setLogType(LogTypeEnum.DEV_EVENT.getValue());
|
|
his.setLogObjectId(order.getDevId());
|
|
his.setLogObjectId(order.getDevId());
|
|
his.setLogObjectName(order.getDevName());
|
|
his.setLogObjectName(order.getDevName());
|
|
- his.setLogResult("发生"+OrderTypeEnum.getCodeToName(order.getOrderType()));
|
|
|
|
|
|
+ if (isCancel){
|
|
|
|
+ his.setLogResult(OrderTypeEnum.getCodeToName(order.getOrderType())+"取消");
|
|
|
|
+ }else{
|
|
|
|
+ his.setLogResult("发生"+OrderTypeEnum.getCodeToName(order.getOrderType()));
|
|
|
|
+ }
|
|
his.setRelationTypeDesc(RelationTypeEnum.HOUSE.getName());
|
|
his.setRelationTypeDesc(RelationTypeEnum.HOUSE.getName());
|
|
}
|
|
}
|
|
his.setCreateTime(order.getCreateTime());
|
|
his.setCreateTime(order.getCreateTime());
|
|
@@ -149,9 +155,13 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
|
|
//给联系人发送短信
|
|
//给联系人发送短信
|
|
CareHouse house = this.careHouseService.getById(order.getHouseId());
|
|
CareHouse house = this.careHouseService.getById(order.getHouseId());
|
|
if (CollUtil.isNotEmpty(contacts)){
|
|
if (CollUtil.isNotEmpty(contacts)){
|
|
-
|
|
|
|
contacts.forEach(item ->{
|
|
contacts.forEach(item ->{
|
|
- boolean smsResult = smsSendService.sendSmsToLianxiren(order.getOrderType(),item.getContactPhone(),house.getName());
|
|
|
|
|
|
+ boolean smsResult = false;
|
|
|
|
+ if (OrderTypeEnum.JIU_ZHI.getValue().equals(order.getOrderType())){
|
|
|
|
+ smsResult = smsSendService.sendSmsToLianxiren(SmsTemplateTypeEnum.JIU_ZHI,item.getContactPhone(),house.getName());
|
|
|
|
+ }else if(OrderTypeEnum.DIE_DAO.getValue().equals(order.getOrderType())){
|
|
|
|
+ smsResult = smsSendService.sendSmsToLianxiren(SmsTemplateTypeEnum.DIE_DAO,item.getContactPhone(),house.getName());
|
|
|
|
+ }
|
|
if (smsResult){
|
|
if (smsResult){
|
|
CareEventOrderHandleHis his2 = new CareEventOrderHandleHis();
|
|
CareEventOrderHandleHis his2 = new CareEventOrderHandleHis();
|
|
his2.setOrgId(item.getOrgId());
|
|
his2.setOrgId(item.getOrgId());
|
|
@@ -171,7 +181,12 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
|
|
//给管家发短信
|
|
//给管家发短信
|
|
if (CollUtil.isNotEmpty(chambList)){
|
|
if (CollUtil.isNotEmpty(chambList)){
|
|
chambList.forEach(item ->{
|
|
chambList.forEach(item ->{
|
|
- boolean smsResult = smsSendService.sendSmsToLianxiren(order.getOrderType(),item.getPhone(),house.getName());
|
|
|
|
|
|
+ boolean smsResult = false;
|
|
|
|
+ if (OrderTypeEnum.JIU_ZHI.getValue().equals(order.getOrderType())){
|
|
|
|
+ smsResult = smsSendService.sendSmsToLianxiren(SmsTemplateTypeEnum.JIU_ZHI,item.getPhone(),house.getName());
|
|
|
|
+ }else if(OrderTypeEnum.DIE_DAO.getValue().equals(order.getOrderType())){
|
|
|
|
+ smsResult = smsSendService.sendSmsToLianxiren(SmsTemplateTypeEnum.DIE_DAO,item.getPhone(),house.getName());
|
|
|
|
+ }
|
|
if (smsResult){
|
|
if (smsResult){
|
|
CareEventOrderHandleHis his2 = new CareEventOrderHandleHis();
|
|
CareEventOrderHandleHis his2 = new CareEventOrderHandleHis();
|
|
his2.setOrgId(item.getOrgId());
|
|
his2.setOrgId(item.getOrgId());
|
|
@@ -284,4 +299,101 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
|
|
}
|
|
}
|
|
return orderContactList;
|
|
return orderContactList;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 自动取消工单
|
|
|
|
+ *
|
|
|
|
+ * @param order
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public boolean autoCancelOrder(CareEventOrder order) {
|
|
|
|
+ UpdateWrapper<CareEventOrder> updateWrapper = new UpdateWrapper<>();
|
|
|
|
+ updateWrapper.lambda().set(CareEventOrder::getStatus,OrderStatusEnum.CANCEL.getValue()).eq(CareEventOrder::getId,order.getId());
|
|
|
|
+ order.setStatus(OrderStatusEnum.CANCEL.getValue());
|
|
|
|
+ this.update(updateWrapper);
|
|
|
|
+ //管家工单标记为取消
|
|
|
|
+ CareEventOrderChamb careEventOrderChamb = this.careEventOrderChambService.getChambOrderByOrderId(order.getId());
|
|
|
|
+ UpdateWrapper<CareEventOrderChamb> updateWrapperChamb = new UpdateWrapper<>();
|
|
|
|
+ updateWrapperChamb.lambda().set(CareEventOrderChamb::getStatus,ChambOrderStatusEnum.CANCEL.getValue()).eq(CareEventOrderChamb::getId,careEventOrderChamb.getId());
|
|
|
|
+ this.careEventOrderChambService.update(updateWrapperChamb);
|
|
|
|
+ //记录一条取消his
|
|
|
|
+ CareEventOrder orderDb = new CareEventOrder();
|
|
|
|
+ orderDb.setId(order.getId());
|
|
|
|
+ this.saveHisOrder(order, orderDb,true);
|
|
|
|
+ cancelEventSMSNotic(order);
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 取消事件,短信通知
|
|
|
|
+ * @param order
|
|
|
|
+ */
|
|
|
|
+ private void cancelEventSMSNotic(CareEventOrder order){
|
|
|
|
+ try{
|
|
|
|
+ Object switchSms = redisUtil.get(RedisKeyConstant.SWITCH_SMS);
|
|
|
|
+ if (switchSms != null){
|
|
|
|
+ List<CareEventOrderChamb> chambList = new ArrayList<>();
|
|
|
|
+ CareEventOrderChamb chamb = this.careEventOrderChambService.getChambOrderByOrderId(order.getId());
|
|
|
|
+ chambList.add(chamb);
|
|
|
|
+ QueryWrapper<CareEventOrderContactStatus> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.lambda().eq(CareEventOrderContactStatus::getOrderId,order.getId());
|
|
|
|
+ List<CareEventOrderContactStatus> contacts = this.careEventOrderContactStatusService.list(queryWrapper);
|
|
|
|
+
|
|
|
|
+ //给联系人发送短信
|
|
|
|
+ CareHouse house = this.careHouseService.getById(order.getHouseId());
|
|
|
|
+ if (CollUtil.isNotEmpty(contacts)){
|
|
|
|
+ contacts.forEach(item ->{
|
|
|
|
+ boolean smsResult = false;
|
|
|
|
+ if (OrderTypeEnum.JIU_ZHI.getValue().equals(order.getOrderType())){
|
|
|
|
+ smsResult = smsSendService.sendSmsToLianxiren(SmsTemplateTypeEnum.CANCEL_JIUZHI,item.getContactPhone(),house.getName());
|
|
|
|
+ }else if(OrderTypeEnum.DIE_DAO.getValue().equals(order.getOrderType())){
|
|
|
|
+ smsResult = smsSendService.sendSmsToLianxiren(SmsTemplateTypeEnum.CANCEL_DIEDAO,item.getContactPhone(),house.getName());
|
|
|
|
+ }
|
|
|
|
+ if (smsResult){
|
|
|
|
+ CareEventOrderHandleHis his2 = new CareEventOrderHandleHis();
|
|
|
|
+ his2.setOrgId(item.getOrgId());
|
|
|
|
+ his2.setStationId(item.getStationId());
|
|
|
|
+ his2.setOrderId(item.getOrderId());
|
|
|
|
+ his2.setLogType(LogTypeEnum.SMS.getValue());
|
|
|
|
+ his2.setLogObjectId(item.getContactId());
|
|
|
|
+ his2.setLogObjectName(item.getContactName());
|
|
|
|
+ his2.setLogResult("事件取消短信通知");
|
|
|
|
+ his2.setOpUserRole(UserRoleEnum.SEAT.getValue());
|
|
|
|
+ his2.setCreateTime(DateUtil.date());
|
|
|
|
+ his2.setRelationTypeDesc(item.getRelationTypeDesc());
|
|
|
|
+ this.careEventOrderHandleHisService.save(his2);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ //给管家发短信
|
|
|
|
+ if (CollUtil.isNotEmpty(chambList)){
|
|
|
|
+ chambList.forEach(item ->{
|
|
|
|
+ boolean smsResult = false;
|
|
|
|
+ if (OrderTypeEnum.JIU_ZHI.getValue().equals(order.getOrderType())){
|
|
|
|
+ smsResult = smsSendService.sendSmsToLianxiren(SmsTemplateTypeEnum.CANCEL_JIUZHI,item.getPhone(),house.getName());
|
|
|
|
+ }else if(OrderTypeEnum.DIE_DAO.getValue().equals(order.getOrderType())){
|
|
|
|
+ smsResult = smsSendService.sendSmsToLianxiren(SmsTemplateTypeEnum.CANCEL_DIEDAO,item.getPhone(),house.getName());
|
|
|
|
+ }
|
|
|
|
+ if (smsResult){
|
|
|
|
+ CareEventOrderHandleHis his2 = new CareEventOrderHandleHis();
|
|
|
|
+ his2.setOrgId(item.getOrgId());
|
|
|
|
+ his2.setStationId(item.getStationId());
|
|
|
|
+ his2.setOrderId(item.getOrderId());
|
|
|
|
+ his2.setLogType(LogTypeEnum.SMS.getValue());
|
|
|
|
+ his2.setLogObjectId(item.getChambId());
|
|
|
|
+ his2.setLogObjectName(item.getChambName());
|
|
|
|
+ his2.setLogResult("事件取消短信通知");
|
|
|
|
+ his2.setOpUserRole(UserRoleEnum.SEAT.getValue());
|
|
|
|
+ his2.setCreateTime(DateUtil.date());
|
|
|
|
+ his2.setRelationTypeDesc("管家");
|
|
|
|
+ this.careEventOrderHandleHisService.save(his2);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ log.error("发送短信通知失败",e);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|