提交 193b5bf9 authored 作者: 刘海泉's avatar 刘海泉

Merge remote-tracking branch 'origin/v29.3_carrier_messsage_20241016' into test_jdk17

# Conflicts: # clx-performance-web/pom.xml # clx-performance-web/src/main/java/com/clx/performance/constant/RabbitKeyConstants.java
......@@ -340,11 +340,13 @@
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
<dependency>
<groupId>com.msl.message</groupId>
<artifactId>message-sdk</artifactId>
</dependency>
<dependency>
<groupId>com.msl.message</groupId>
<artifactId>message-sdk</artifactId>
......
......@@ -13,5 +13,6 @@ public class ConfiguredOpenProperties {
private String gatewayUrl;
private String appId;
private String appKey;
private String accessKey;
private String smsAccessKey;
private String carrierInternalMessageAccessKey;
}
......@@ -433,5 +433,32 @@ public class RabbitBeanConfig {
/**
* 发送承运站内信
*/
@Bean
public Queue sendCarrierInternalMessageQueue() {
return new Queue(RabbitKeyConstants.SEND_CARRIER_INTERNAL_MESSAGE_QUEUE,
true, false, false);
}
/**
* 发送承运站内信
**/
@Bean
public DirectExchange sendCarrierInternalMessageExchange() {
return new DirectExchange(RabbitKeyConstants.SEND_CARRIER_INTERNAL_MESSAGE_EXCHANGE);
}
/**
*发送承运站内信
*/
@Bean
public Binding sendCarrierInternalMessageBind() {
return BindingBuilder.bind(sendCarrierInternalMessageQueue()).to(sendCarrierInternalMessageExchange())
.with(RabbitKeyConstants.SEND_CARRIER_INTERNAL_MESSAGE_ROUTING_KEY);
}
}
......@@ -212,4 +212,16 @@ public class RabbitKeyConstants {
//保存货单调价记录routing_key
public static final String NOTICE_SEND_SMS_QUEUE_ROUTING_KEY = "clx_performance.notice.send.sms.routing.key";
//发送承运端站内信queue
public static final String SEND_CARRIER_INTERNAL_MESSAGE_QUEUE = "clx_performance.send.carrier.internal.message.queue";
//发送承运端站内信exchange
public static final String SEND_CARRIER_INTERNAL_MESSAGE_EXCHANGE = "clx_performance.send.carrier.internal.message.exchange";
//发送承运端站内信routing_key
public static final String SEND_CARRIER_INTERNAL_MESSAGE_ROUTING_KEY = "clx_performance.send.carrier.internal.message..routing.key";
}
package com.clx.performance.controller.temp;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.clx.open.sdk.callback.message.OrderChildSyncMessage;
import com.clx.performance.dto.OrderChildExpectDTO;
import com.clx.performance.enums.InternalMessageTemplateEnum;
import com.clx.performance.extranal.transport.TransportService;
import com.clx.performance.feign.TransportFeignService;
import com.clx.performance.listener.OrderChildDtsListener;
import com.clx.performance.service.OrderChildService;
import com.clx.performance.service.SendInternalMessageService;
import com.clx.performance.service.TempService;
import com.clx.performance.service.child.FeignOrderChildService;
import com.msl.common.result.Result;
import com.msl.common.utils.DateUtils;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @Author: aiqingguo
* @Description: 临时接口
* @Date: 2023-8-21 12:10:16
* @Version: 1.0
*/
@Slf4j
@RestController
@AllArgsConstructor
@RequestMapping(value="/temp/internalMessage")
public class TempInternalMessageController {
private final SendInternalMessageService sendInternalMessageService;
@Operation(summary = "发送站内信", description = "<br>By:刘海泉")
@RequestMapping(value = "/send", method = RequestMethod.GET)
public Result<Object> send(@RequestParam("businessType") @NotBlank(message = "站内信大类业务不能为空") String businessType,
@RequestParam("typeCode") @NotNull(message = "业务code不能为空") Integer typeCode,
@RequestParam("listJson") @NotBlank(message = "参数字符串") String listJson,
@RequestParam("jumpParamJson") @NotBlank(message = "跳转参数字符串") String jumpParamJson
) {
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
businessType, typeCode, JSON.parseObject(listJson, new TypeReference<>() {
}),JSON.parseObject(jumpParamJson, new TypeReference<>() {
}),null);
return Result.ok();
}
}
package com.clx.performance.listener;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.param.mq.InternalMessageParam;
import com.clx.performance.service.SendInternalMessageService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
/**
* 处理货单取消吨数回填
*/
@Slf4j
@Component
@AllArgsConstructor
public class SendCarrierInternalMessageListener {
private final SendInternalMessageService sendInternalMessageService;
@RabbitListener(queues = RabbitKeyConstants.SEND_CARRIER_INTERNAL_MESSAGE_QUEUE)
public void onMessage(Message message) {
try{
log.info("监听到承运发送站内信开始,消息内容{}", new String(message.getBody()));
InternalMessageParam data = JSON.parseObject(new String(message.getBody()),
new TypeReference<MqWrapper<InternalMessageParam>>() {
}).getData();
sendInternalMessageService.sendCarrierInternalMessage(data);
}catch (Exception e){
log.info("监听到承运发送站内信发生异常,异常原因:{}", ExceptionUtils.getStackTrace(e));
}
}
}
......@@ -108,7 +108,7 @@ public class SendOrderStatusNoticeSmsListener {
smsMessage.setRecipient(smsMessageRecipient);
//从消息中心注册获取的通道key
smsMessage.setAccessKey(properties.getAccessKey());
smsMessage.setAccessKey(properties.getSmsAccessKey());
//向消息中心发送消息
......
package com.clx.performance.service;
import com.clx.performance.param.mq.InternalMessageParam;
import java.util.List;
public interface SendInternalMessageService {
//发送站内信的业务Code
void sendInternalMessageMq(String productCode,String businessType, Integer typeCode, List<Object> variableList, List<Object> jumpUrlVariableList, Long userNo);
//发送承运站内信
void sendCarrierInternalMessage(InternalMessageParam internalMessageDTO);
}
......@@ -4,9 +4,14 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.customer.CustomerComplaintDetailDao;
import com.clx.performance.dao.customer.CustomerComplaintTypeDao;
import com.clx.performance.enums.InternalMessageTemplateEnum;
import com.clx.performance.enums.ResultEnum;
import com.clx.performance.model.customer.CustomerComplaintDetail;
import com.clx.performance.model.customer.CustomerComplaintType;
import com.clx.performance.param.pc.customer.PageCustomerComplaintDetailParam;
import com.clx.performance.param.pc.customer.SaveCustomerComplaintDetailParam;
import com.clx.performance.service.SendInternalMessageService;
import com.clx.performance.service.customer.CustomerComplaintDetailService;
import com.clx.performance.struct.customer.CustomerComplaintDetailStruct;
import com.clx.performance.vo.pc.customer.CustomerComplaintDetailVO;
......@@ -18,6 +23,8 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* @ClassName CustomerComplaintTypeServiceImpl
......@@ -31,9 +38,13 @@ import java.util.Arrays;
@AllArgsConstructor
public class CustomerComplaintDetailServiceImpl implements CustomerComplaintDetailService {
private final CustomerComplaintDetailDao customerComplaintDetailDao;
private final CustomerComplaintDetailStruct customerComplaintDetailStruct;
private final CustomerComplaintTypeDao customerComplaintTypeDao;
private final SendInternalMessageService sendInternalMessageService;
@Override
public void saveCustomerComplaintDetail(SaveCustomerComplaintDetailParam param) {
CustomerComplaintType type = customerComplaintTypeDao.getEntityByKey(
param.getComplaintTypeId()).orElseThrow(ResultEnum.DATA_NOT_FIND, "投诉类型不存在");
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
CustomerComplaintDetail detail = new CustomerComplaintDetail();
detail.setDriverUserNo(loginUserInfo.getUserNo());
......@@ -46,6 +57,12 @@ public class CustomerComplaintDetailServiceImpl implements CustomerComplaintDeta
detail.setPicture(String.join(",",param.getPicture()));
}
customerComplaintDetailDao.saveEntity(detail);
//客户投诉 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.COMPLAINT_NOTICE.getCode(),
InternalMessageTemplateEnum.CUSTOM_DRIVER_SUBMIT_COMPLAINT_CODE, List.of(param.getChildNo(),type.getName(),param.getContent()),null,null);
}
@Override
......
package com.clx.performance.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.config.ConfiguredOpenProperties;
import com.clx.performance.enums.InternalMessageTemplateEnum;
import com.clx.performance.param.mq.InternalMessageParam;
import com.clx.performance.service.SendInternalMessageService;
import com.msl.common.base.PageData;
import com.msl.common.open.ConfiguredOpenClient;
import com.msl.common.result.Result;
import com.msl.message.in.app.api.content.DefaultMessageContent;
import com.msl.message.in.app.api.message.InAppDefaultMessage;
import com.msl.message.in.app.api.recipient.SpecifiesRecipient;
import com.msl.message.in.app.api.route.DefaultMessageRoute;
import com.msl.message.sdk.action.MessageAction;
import com.msl.user.feign.UserFeign;
import com.msl.user.param.user.external.PageProductUsersParam;
import com.msl.user.vo.user.external.PageProductUserVo;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
import static com.clx.performance.constant.RabbitKeyConstants.SEND_CARRIER_INTERNAL_MESSAGE_EXCHANGE;
import static com.clx.performance.constant.RabbitKeyConstants.SEND_CARRIER_INTERNAL_MESSAGE_ROUTING_KEY;
/**
* @ClassName SendInternalMessageServiceImpl
* @Description
* @Author kavin
* @Date 2024/10/16 13:37
* @Version 1.0
*/
@Slf4j
@Service
@AllArgsConstructor
public class SendInternalMessageServiceImpl implements SendInternalMessageService {
private final ConfiguredOpenClient configuredOpenClient;
private final ConfiguredOpenProperties configuredOpenProperties;
private final UserFeign userFeign;
private final RabbitTemplate rabbitTemplate;
//发送站内信的业务Code
@Override
public void sendInternalMessageMq(String productCode,String businessType, Integer typeCode, List<Object> variableList, List<Object> jumpUrlVariableList,Long userNo){
InternalMessageParam param = new InternalMessageParam();
param.setBusinessType(businessType);
param.setTypeCode(typeCode);
param.setVariableList(variableList);
param.setJumpUrlVariableList(jumpUrlVariableList);
param.setUserNo(userNo);
param.setProductCode(productCode);
log.info("发送站内信消息开始,站内信业务类型{},实际业务Code:{},消息内容:{}", businessType,typeCode,JSON.toJSONString(param));
Message body = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(param)).getBytes()).build();
rabbitTemplate.send(SEND_CARRIER_INTERNAL_MESSAGE_EXCHANGE,
SEND_CARRIER_INTERNAL_MESSAGE_ROUTING_KEY, body);
log.info("发送站内信消息结束,站内信业务类型{},实际业务Code:{},", businessType,typeCode);
}
//查找字符在字符串出现的次数
public static int countCharTimes(String mainStr,String subStr){
// 声明一个要返回的变量
int count = 0;
// 声明一个初始的下标,从初始位置开始查找
int index = 0;
// 获取主数据的长度
int mainStrLength = mainStr.length();
// 获取要查找的数据长度
int subStrLength = subStr.length();
// 如果要查找的数据长度大于主数据的长度则返回0
if (subStrLength > mainStrLength){
return 0;
}
// 循环使用indexOf查找出现的下标,如果出现一次则count++
while ((index = mainStr.indexOf(subStr, index)) != -1) {
count++;
index += subStrLength;
}
return count;
}
/**
* 发送消息JSON实例:{"type": "in_app_default_message", "route": {"$ref": "$.messageRoute"}, "content": {"data": {"page": "message_operation_code:coal_source_publish_success_sales", "tonnage": "700.00", "coalType": "喜喜煤", "demandId": 932, "publisher": "陈小云", "unitPrice": "123.85", "demandType": "销售需求", "companyName": "产权交易中心", "jumpPageUrls": {"trade-operation-pc": "/demand/sale-detail/932"}, "inAppSendType": 2, "calorificValue": 7700, "validityPeriod": "2024-07-23 15:11:00-2024-07-23 23:11:00", "extraShowInfoList": [{"code": "companyName", "name": "企业名称", "unit": "", "value": "产权交易中心"}, {"code": "publisher", "name": "发布人姓名", "unit": "", "value": "陈小云"}, {"code": "coalType", "name": "煤种", "unit": "", "value": "喜喜煤"}, {"code": "calorificValue", "name": "热值", "unit": "kcal", "value": 7700}, {"code": "unitPrice", "name": "单价", "unit": "元/吨", "value": "123.85"}, {"code": "tonnage", "name": "吨数", "unit": "吨", "value": "700.00"}, {"code": "validityPeriod", "name": "有效期", "unit": "", "value": "2024-07-23 15:11:00-2024-07-23 23:11:00"}], "inAppSendTypeName": "全局提示"}, "type": "template_content", "templateKey": "SMB-INAPP-00001"}, "showType": "2", "accessKey": "CLX-OPERATION", "recipient": {"$ref": "$.messageRecipient"}, "channelKey": "in_app", "messageSign": "1", "messageGroup": "4", "messageRoute": {"type": "default_route", "routeMap": {"trade-operation-pc": ["default"]}}, "messageContent": {"$ref": "$.content"}, "messageSignName": "需求上报", "messageGroupName": "需求信息", "messageRecipient": {"type": "specifies_recipient", "users": [1021110826118750277, 1021252468523831365, 1021138417641676869, 1021095992956997701, 1021081090547744837]}, "validityLimitTime": "2024-07-24 15:12:04"}
* socket推送JSON实例:{"productCode":"trade-client-app","functionKey":"CLX-SMB-SALES","userKey":"1021138417641676869","deliverToCompany":1,"companyKey":"1121232210178818117","userTag":null,"message":{"bizType":"in_app","body":{"id":16674,"messageNo":"1292033698861125","accessKey":"CLX-SMB-SALES","companyNo":"1121232210178818117","userNo":"1021138417641676869","messageGroup":"2","messageSign":"4","messageGroupName":"交易提醒","messageSignName":"交易提醒","showType":"3","showPriority":null,"validityLimitTime":"2024-07-25 15:12:04","showStatus":null,"showTime":null,"receivePage":null,"jumpPage":null,"markdownFlag":null,"status":null,"statusName":null,"readTime":null,"executedTime":null,"textVo":{"title":"需求发布成功","subtitle":"您好,当前企业有销售需求发布成功,请及时关注;【喜喜煤】/【7700kcal】/【700.00吨】/【123.85元/吨】,发布人:【陈小云】","content":null,"dataJson":"{\"unitPrice\":\"123.85\",\"calorificValue\":7700,\"demandId\":932,\"inAppSendType\":3,\"inAppSendTypeName\":\"消息通知\",\"jumpPageAppParam\":{\"id\":\"932\",\"underFlag\":\"1\"},\"coalType\":\"喜喜煤\",\"publisher\":\"陈小云\",\"jumpPageAppUrl\":\"/ReleaseDetailsPage\",\"tonnage\":\"700.00\",\"page\":\"message_code:demand_publish_success_sales\",\"extraShowInfoList\":[{\"unit\":\"\",\"code\":\"coalType\",\"name\":\"煤种\",\"value\":\"喜喜煤\"},{\"unit\":\"kcal\",\"code\":\"calorificValue\",\"name\":\"热值\",\"value\":7700},{\"unit\":\"吨\",\"code\":\"tonnage\",\"name\":\"吨数\",\"value\":\"700.00\"},{\"unit\":\"元/吨\",\"code\":\"unitPrice\",\"name\":\"单价\",\"value\":\"123.85\"},{\"unit\":\"\",\"code\":\"publisher\",\"name\":\"发布人姓名\",\"value\":\"陈小云\"}]}"},"createTime":null},"bodyType":3}}
*/
//发送承运站内信
@Override
public void sendCarrierInternalMessage(InternalMessageParam internalMessageDTO) {
Map<Integer, String> businessRelationMap = InternalMessageTemplateEnum.businessTypeMap.get(
internalMessageDTO.getBusinessType());
if(MapUtils.isEmpty(businessRelationMap)){
log.warn("通过业务类型:{}, 在businessTypeMap 未找到对应的映射关系",internalMessageDTO.getBusinessType());
return;
}
String businessTypeDetailCode = businessRelationMap.get(internalMessageDTO.getTypeCode());
if(StringUtils.isBlank(businessTypeDetailCode)){
log.warn("通过详细业务类型:{}, businessRelationMap 未找到对应的站内信详细业务类型关系",internalMessageDTO.getTypeCode());
return;
}
Optional<InternalMessageTemplateEnum.TemplateType> templateTypeOptional = InternalMessageTemplateEnum.TemplateType.getByBusinessTypeDetailCode(
businessTypeDetailCode);
if(templateTypeOptional.isEmpty()){
log.error("通过站内信业务详情Code未找到对应的枚举类型,code:{}",businessTypeDetailCode);
return;
}
InternalMessageTemplateEnum.TemplateType templateType = templateTypeOptional.get();
InAppDefaultMessage message = new InAppDefaultMessage();
//消息
message.setMessageGroup(templateType.getMessageType().getCode());
message.setMessageGroupName(templateType.getMessageType().getName());
message.setMessageSign(templateType.getBusinessType().getCode());
message.setMessageSignName(templateType.getBusinessType().getName());
message.setAccessKey(configuredOpenProperties.getCarrierInternalMessageAccessKey());
//发送站内信
DefaultMessageRoute messageRoute = new DefaultMessageRoute();
// 自己定义,提供给消息中心
messageRoute.put("product-code",internalMessageDTO.getProductCode());
message.setMessageRoute(messageRoute);
//直接指定内容
DefaultMessageContent defaultMessageContent = new DefaultMessageContent();
defaultMessageContent.setTitle(templateType.getBusinessDetailType().getTitle());
defaultMessageContent.setContext(replaceContent(templateType.getBusinessDetailType().getContent(),internalMessageDTO.getVariableList()));
HashMap<String,Object> data = new HashMap<>();
data.put("businessDetailTypeCode",templateType.getBusinessDetailType().getCode());
data.put("businessDetailTypeTitle",templateType.getBusinessDetailType().getTitle());
if(StringUtils.isNotBlank(templateType.getBusinessDetailType().getJumpUrl())){
data.put("jumpUrl",templateType.getBusinessDetailType().getJumpUrl());
}
if(StringUtils.isNotBlank(templateType.getBusinessDetailType().getParamJson())){
String jumpUrlParamJson = replaceContent(templateType.getBusinessDetailType().getParamJson(),
internalMessageDTO.getJumpUrlVariableList());
data.putAll(JSON.parseObject(jumpUrlParamJson,new TypeReference<Map<String, String>>(){}));
}
defaultMessageContent.setData(data);
message.setMessageContent(defaultMessageContent);
//组装发送人 指定接收人
SpecifiesRecipient messageRecipient = new SpecifiesRecipient();
List<Long> list;
if(Objects.nonNull(internalMessageDTO.getUserNo())){
list = new ArrayList<>();
list.add(internalMessageDTO.getUserNo());
}else{
list = getPlatformUser(internalMessageDTO.getProductCode());
}
if(CollectionUtils.isEmpty(list)){
log.error("=======================发送站内信的用户列表为空==========================");
return;
}
messageRecipient.setUsers(list);
message.setMessageRecipient(messageRecipient);
//向消息中心发送消息
log.info("站内信发送参数,发送参数:{}", message);
Result<Object> result = configuredOpenClient.doAction(new MessageAction(message));
if(result.succeed()){
log.info("站内信发送成功,发送结果:{}", result);
}else{
log.error("站内信发送失败,发送结果:{}", result);
}
}
public List<Long> getPlatformUser(String productCode){
PageProductUsersParam param = new PageProductUsersParam();
param.setProductCode(productCode);
param.setPage(1);
param.setPageSize(10000);
log.info("开始查询承运平台下的所有用户信息");
Result<PageData<PageProductUserVo>> pageDataResult = userFeign.pageProductUsers(param);
if(pageDataResult.succeed()){
return pageDataResult.getData().getRecords().stream().map(
PageProductUserVo::getUserNo).collect(Collectors.toList());
}else{
log.error("结束查询承运平台下的所有用户信息,响应结果:{}", JSON.toJSONString(pageDataResult));
return null;
}
}
//构建站内信中的内容,替换变量
private static String replaceContent(String content,List<Object> list){
int listSize = 0;
int times = countCharTimes(content, "%s");
if(CollectionUtils.isNotEmpty(list)){
listSize = list.size();
}
if(times != listSize){
log.error("替换的变量和字符串中需要的变量数量不一致");
return null;
}
return String.format(content, list.toArray());
}
}
......@@ -7,6 +7,7 @@ import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.breakcontract.BreakContractDriverRecordDao;
import com.clx.performance.dao.breakcontract.BreakContractDriverRuleDao;
import com.clx.performance.enums.BreakContractRecordEnum;
import com.clx.performance.enums.InternalMessageTemplateEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.TruckDemandEnum;
import com.clx.performance.model.OrderChild;
......@@ -17,6 +18,7 @@ import com.clx.performance.param.app.breakcontract.DriverPageBreakContractDriver
import com.clx.performance.param.pc.breakcontract.carrier.BreakContractDriverRecordAddParam;
import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractDriverRecordParam;
import com.clx.performance.service.IntegralRecordService;
import com.clx.performance.service.SendInternalMessageService;
import com.clx.performance.service.breakcontract.BreakContractDriverRecordService;
import com.clx.performance.service.breakcontract.BreakContractMqService;
import com.clx.performance.service.impl.UniqueOrderNumService;
......@@ -34,6 +36,8 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
/**
......@@ -61,6 +65,8 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive
private UniqueOrderNumService uniqueOrderNumService;
@Autowired
private IntegralRecordService integralRecordService;
@Autowired
SendInternalMessageService sendInternalMessageService;
@Override
@Transactional(rollbackFor = Exception.class)
......@@ -110,6 +116,12 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive
integralRecordService.addPlatformCompensationRecord(record.getTruckNo());
}
//司机违约通知 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.WAIT_APPROVED_ITEM.getCode(),
InternalMessageTemplateEnum.CUSTOM_DRIVER_TRIGGER_BREAK_CONTRACT_CODE, List.of(breakNo),null,null);
}
@Override
......@@ -171,6 +183,11 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive
// 发送mq (违约记录新增)
breakContractMqService.driverRecordAdd(record.getId());
//司机违约通知 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.WAIT_APPROVED_ITEM.getCode(),
InternalMessageTemplateEnum.CUSTOM_DRIVER_TRIGGER_BREAK_CONTRACT_CODE, List.of(record.getBreakNo()),null,null);
}
@Override
......@@ -212,6 +229,12 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive
// 发送mq (违约记录新增)
breakContractMqService.driverRecordAdd(record.getId());
//司机违约通知 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.WAIT_APPROVED_ITEM.getCode(),
InternalMessageTemplateEnum.CUSTOM_DRIVER_TRIGGER_BREAK_CONTRACT_CODE, List.of(record.getBreakNo()),null,null);
}
@Override
......@@ -250,6 +273,11 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive
// 发送mq (违约记录新增)
breakContractMqService.driverRecordAdd(record.getId());
//司机违约通知 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.WAIT_APPROVED_ITEM.getCode(),
InternalMessageTemplateEnum.CUSTOM_DRIVER_TRIGGER_BREAK_CONTRACT_CODE, List.of(record.getBreakNo()),null,null);
}
@Override
......
......@@ -17,6 +17,7 @@ import com.clx.performance.param.pc.breakcontract.carrier.BreakContractOwnerReco
import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractOwnerRecordParam;
import com.clx.performance.param.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordParam;
import com.clx.performance.param.pc.owner.OwnerConfirmBreakContractSettlementParam;
import com.clx.performance.service.SendInternalMessageService;
import com.clx.performance.service.breakcontract.BreakContractOwnerRecordService;
import com.clx.performance.service.breakcontract.BreakContractSettlementLogService;
import com.clx.performance.service.impl.UniqueOrderNumService;
......@@ -36,6 +37,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
......@@ -70,6 +72,8 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR
private final BreakContractSettlementLogService breakContractSettlementLogService;
private final SendInternalMessageService sendInternalMessageService;
@Override
@Transactional(rollbackFor = Exception.class)
public void saveRecord(BreakContractOwnerRecordAddParam param) {
......@@ -119,6 +123,11 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR
generateBreakContractSettlement(record.getId());
}
//货主违约通知 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.WAIT_APPROVED_ITEM.getCode(),
InternalMessageTemplateEnum.CUSTOM_OWNER_TRIGGER_BREAK_CONTRACT_CODE, List.of(breakNo),null,null);
}
@Override
......@@ -187,6 +196,11 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR
//保存违约记录
breakContractOwnerRecordDao.saveEntity(record);
//货主违约通知 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.WAIT_APPROVED_ITEM.getCode(),
InternalMessageTemplateEnum.CUSTOM_OWNER_TRIGGER_BREAK_CONTRACT_CODE, List.of(breakNo),null,null);
}
......
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.collect.CollectLineReportDao;
import com.clx.performance.enums.InternalMessageTemplateEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.integral.IntegralRecordEnum;
import com.clx.performance.model.OrderChild;
......@@ -13,6 +14,7 @@ import com.clx.performance.model.collect.CollectLineReport;
import com.clx.performance.param.app.collect.*;
import com.clx.performance.param.pc.carrier.*;
import com.clx.performance.service.IntegralRecordService;
import com.clx.performance.service.SendInternalMessageService;
import com.clx.performance.service.collect.CollectLineReportService;
import com.clx.performance.service.integral.IntegralRuleService;
import com.clx.performance.struct.collect.CollectLineReportStruct;
......@@ -26,6 +28,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
@Slf4j
......@@ -45,6 +48,8 @@ public class CollectLineReportServiceImpl implements CollectLineReportService {
private IntegralRuleService integralRuleService;
@Autowired
private IntegralRecordService integralRecordService;
@Autowired
SendInternalMessageService sendInternalMessageService;
@Transactional(rollbackFor = Exception.class)
@Override
......@@ -83,12 +88,17 @@ public class CollectLineReportServiceImpl implements CollectLineReportService {
collectLineReport.setReportTime(LocalDateTime.now());
collectLineReport.setCreateTime(collectLineReport.getReportTime());
collectLineReportDao.saveEntity(collectLineReport);
//待审核:司机货源地信息上报 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.DRIVER_REPORT.getCode(),
InternalMessageTemplateEnum.CUSTOM_DRIVER_REPORT_SEND_INFO_CODE, List.of(loginUserInfo.getUserName()),null,null);
}
@Transactional(rollbackFor = Exception.class)
@Override
public void saveAbnormalReport(CollectLineReportAbnormalSaveParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
if (Objects.equals(param.getReportType(), CollectLineReport.ReportType.UNABLE_TO_SEND_ADDRESS.getCode())){
saveSendAddressAbnormalReport(new CollectLineReportSendAddressAbnormalSaveParam(param.getChildNo(), param.getRemark()));
}
......@@ -102,6 +112,10 @@ public class CollectLineReportServiceImpl implements CollectLineReportService {
saveLoadUnloadAbnormalReport(new CollectLineReportLoadUnloadAbnormalSaveParam(param.getChildNo(), param.getRemark()));
}
//待审核:司机异常情况上报 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.DRIVER_REPORT.getCode(),
InternalMessageTemplateEnum.CUSTOM_DRIVER_REPORT_EXCEPTION_SITUATION_CODE, List.of(loginUserInfo.getUserName()),null,null);
}
@Transactional(rollbackFor = Exception.class)
......@@ -258,6 +272,11 @@ public class CollectLineReportServiceImpl implements CollectLineReportService {
collectLineReport.setReportTime(LocalDateTime.now());
collectLineReport.setCreateTime(collectLineReport.getReportTime());
collectLineReportDao.saveEntity(collectLineReport);
//待审核:无接单上报 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.DRIVER_REPORT.getCode(),
InternalMessageTemplateEnum.CUSTOM_DRIVER_REPORT_NO_TAKE_ORDER_CODE, List.of(loginUserInfo.getUserName()),null,null);
}
@Transactional(rollbackFor = Exception.class)
......@@ -280,6 +299,11 @@ public class CollectLineReportServiceImpl implements CollectLineReportService {
collectLineReport.setReportTime(LocalDateTime.now());
collectLineReport.setCreateTime(collectLineReport.getReportTime());
collectLineReportDao.saveEntity(collectLineReport);
//司机上报:其他 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.DRIVER_REPORT.getCode(),
InternalMessageTemplateEnum.CUSTOM_DRIVER_REPORT_OTHER_CODE, List.of(loginUserInfo.getUserName()),null,null);
}
@Transactional(rollbackFor = Exception.class)
......@@ -312,6 +336,11 @@ public class CollectLineReportServiceImpl implements CollectLineReportService {
collectLineReport.setCreateTime(collectLineReport.getReportTime());
collectLineReportDao.saveEntity(collectLineReport);
//待审核:煤炭质量上报 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.DRIVER_REPORT.getCode(),
InternalMessageTemplateEnum.CUSTOM_DRIVER_REPORT_COAL_QUALITY_CODE, List.of(loginUserInfo.getUserName()),null,null);
}
@Override
......
......@@ -3,6 +3,7 @@ package com.clx.performance.service.impl.collect;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.collect.CollectTrafficCongestionDao;
import com.clx.performance.enums.InternalMessageTemplateEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.integral.IntegralRecordEnum;
import com.clx.performance.model.collect.CollectTrafficCongestion;
......@@ -11,6 +12,7 @@ import com.clx.performance.param.app.collect.CollectTrafficCongestionSaveParam;
import com.clx.performance.param.app.collect.PageCollectTraficCongestionParam;
import com.clx.performance.param.pc.carrier.CarrierPageCollectTraficCongestionParam;
import com.clx.performance.service.IntegralRecordService;
import com.clx.performance.service.SendInternalMessageService;
import com.clx.performance.service.collect.CollectTrafficCongestionService;
import com.clx.performance.service.integral.IntegralRuleService;
import com.clx.performance.struct.collect.CollectTrafficCongestionStruct;
......@@ -25,6 +27,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.time.LocalDateTime;
import java.util.List;
@Slf4j
@Service
......@@ -36,9 +39,7 @@ public class CollectTrafficCongestionServiceImpl implements CollectTrafficConges
@Autowired
private CollectTrafficCongestionStruct collectTrafficCongestionStruct;
@Autowired
private IntegralRecordService integralRecordService;
@Autowired
private IntegralRuleService integralRuleService;
private SendInternalMessageService sendInternalMessageService;
@Transactional(rollbackFor = Exception.class)
@Override
......@@ -77,7 +78,10 @@ public class CollectTrafficCongestionServiceImpl implements CollectTrafficConges
collectTrafficCongestion.setCreateTime(collectTrafficCongestion.getReportTime());
collectTrafficCongestionDao.saveEntity(collectTrafficCongestion);
//待审核:交通情况上报 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.DRIVER_REPORT.getCode(),
InternalMessageTemplateEnum.CUSTOM_DRIVER_REPORT_TRAFFIC_SITUATION_CODE, List.of(loginUserInfo.getUserName()),null,null);
}
@Override
......
......@@ -2,11 +2,13 @@ package com.clx.performance.service.impl.collect;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.collect.CollectTruckLocationDao;
import com.clx.performance.enums.InternalMessageTemplateEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.model.collect.CollectTruckLocation;
import com.clx.performance.param.app.collect.CollectTruckLocationSaveParam;
import com.clx.performance.param.app.collect.PageCollectTruckLocationParam;
import com.clx.performance.param.pc.carrier.CarrierPageCollectTruckLocationParam;
import com.clx.performance.service.SendInternalMessageService;
import com.clx.performance.service.collect.CollectTruckLocationService;
import com.clx.performance.struct.collect.CollectTruckLocationStruct;
import com.clx.performance.vo.pc.collect.CollectTruckLocationVO;
......@@ -18,6 +20,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.time.LocalDateTime;
import java.util.List;
@Slf4j
@Service
......@@ -29,6 +32,9 @@ public class CollectTruckLocationServiceImpl implements CollectTruckLocationServ
@Autowired
private CollectTruckLocationStruct collectTruckLocationStruct;
@Autowired
SendInternalMessageService sendInternalMessageService;
@Override
public void saveLocationReport(CollectTruckLocationSaveParam param) {
......@@ -68,6 +74,11 @@ public class CollectTruckLocationServiceImpl implements CollectTruckLocationServ
collectTruckLocation.setReportTime(LocalDateTime.now());
collectTruckLocation.setCreateTime(collectTruckLocation.getReportTime());
collectTruckLocationDao.saveEntity(collectTruckLocation);
//司机上报:位置 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.DRIVER_REPORT.getCode(),
InternalMessageTemplateEnum.CUSTOM_DRIVER_REPORT_POSITION_CODE, List.of(loginUserInfo.getUserName()),null,null);
}
@Override
......
......@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.collect.CollectTruckRefuelDao;
import com.clx.performance.enums.InternalMessageTemplateEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.integral.IntegralRecordEnum;
import com.clx.performance.model.OrderChild;
......@@ -12,6 +13,7 @@ import com.clx.performance.param.app.collect.CollectTruckRefuelSaveParam;
import com.clx.performance.param.app.collect.PageCollectTruckRefuelParam;
import com.clx.performance.param.pc.carrier.CarrierPageCollectTruckRefuelParam;
import com.clx.performance.service.IntegralRecordService;
import com.clx.performance.service.SendInternalMessageService;
import com.clx.performance.service.collect.CollectTruckRefuelService;
import com.clx.performance.service.integral.IntegralRuleService;
import com.clx.performance.struct.collect.CollectTruckRefuelStruct;
......@@ -20,11 +22,13 @@ import com.clx.performance.vo.pc.integral.AppIntegralRuleVO;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
@Slf4j
@Service
......@@ -43,6 +47,8 @@ public class CollectTruckRefuelServiceImpl implements CollectTruckRefuelService
private IntegralRuleService integralRuleService;
@Autowired
private IntegralRecordService integralRecordService;
@Autowired
SendInternalMessageService sendInternalMessageService;
@Transactional(rollbackFor = Exception.class)
@Override
......@@ -80,6 +86,10 @@ public class CollectTruckRefuelServiceImpl implements CollectTruckRefuelService
integralRecordService.addDriverReportRecord(ruleInfo, collectTruckRefuel.getTruckNo(), IntegralRecordEnum.Type.REPORT_REFUEL.getValue(),
ruleInfo.getDriverReportRule().getIntegralRefuel(), IntegralRecordEnum.Type.REPORT_REFUEL.getMsg());
//司机上报:油表信息 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.DRIVER_REPORT.getCode(),
InternalMessageTemplateEnum.CUSTOM_DRIVER_REPORT_REFUEL_CODE, List.of(loginUserInfo.getUserName()),null,null);
}
@Override
......
......@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.collect.CollectTruckWaitDao;
import com.clx.performance.enums.InternalMessageTemplateEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.collect.CollectTruckWaitEnum;
import com.clx.performance.enums.integral.IntegralRecordEnum;
......@@ -15,6 +16,7 @@ import com.clx.performance.param.app.collect.CollectWaitReportSendAddressSavePar
import com.clx.performance.param.app.collect.PageCollectTruckWaitParam;
import com.clx.performance.param.pc.carrier.CarrierPageCollectTruckWaitParam;
import com.clx.performance.service.IntegralRecordService;
import com.clx.performance.service.SendInternalMessageService;
import com.clx.performance.service.collect.CollectWaitReportService;
import com.clx.performance.service.integral.IntegralRuleService;
import com.clx.performance.struct.collect.CollectTruckWaitStruct;
......@@ -28,6 +30,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
@Slf4j
......@@ -46,6 +49,9 @@ public class CollectWaitReportServiceImpl implements CollectWaitReportService {
@Autowired
private IntegralRecordService integralRecordService;
@Autowired
SendInternalMessageService sendInternalMessageService;
@Transactional(rollbackFor = Exception.class)
@Override
public void saveSendAddressReport(CollectWaitReportSendAddressSaveParam param) {
......@@ -74,6 +80,12 @@ public class CollectWaitReportServiceImpl implements CollectWaitReportService {
collectTruckWait.setCreateTime(collectTruckWait.getReportTime());
collectTruckWaitDao.saveEntity(collectTruckWait);
//待审核:排队信息上报 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.DRIVER_REPORT.getCode(),
InternalMessageTemplateEnum.CUSTOM_DRIVER_REPORT_LINE_UP_INFO_CODE, List.of(loginUserInfo.getUserName()),null,null);
}
@Transactional(rollbackFor = Exception.class)
......@@ -104,6 +116,11 @@ public class CollectWaitReportServiceImpl implements CollectWaitReportService {
collectTruckWait.setCreateTime(collectTruckWait.getReportTime());
collectTruckWaitDao.saveEntity(collectTruckWait);
//待审核:排队信息上报 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.DRIVER_REPORT.getCode(),
InternalMessageTemplateEnum.CUSTOM_DRIVER_REPORT_LINE_UP_INFO_CODE, List.of(loginUserInfo.getUserName()),null,null);
}
@Override
......
......@@ -14,6 +14,7 @@ import com.clx.performance.dao.linewarn.LineWarnInfoDao;
import com.clx.performance.dao.linewarn.LineWarnOrderGoodsDao;
import com.clx.performance.dao.vehiclewarn.VehicleWarnUserDao;
import com.clx.performance.dto.linewarn.LineWarnCommonInfoDTO;
import com.clx.performance.enums.InternalMessageTemplateEnum;
import com.clx.performance.enums.OrderGoodsStatusEnum;
import com.clx.performance.enums.ResultEnum;
import com.clx.performance.enums.linewarn.LineWarnOrderGoodsEnum;
......@@ -26,6 +27,7 @@ import com.clx.performance.param.mq.linewarn.LineWarnLineWarnMqParam;
import com.clx.performance.param.mq.linewarn.LineWarnNoticeMqParam;
import com.clx.performance.param.mq.linewarn.LineWarnOrderChildWarnMqParam;
import com.clx.performance.param.mq.linewarn.LineWarnOrderGoodsAddMqParam;
import com.clx.performance.service.SendInternalMessageService;
import com.clx.performance.service.linewarn.*;
import com.clx.performance.utils.LocalDateTimeUtils;
import com.clx.performance.utils.gd.GdUtils;
......@@ -37,6 +39,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
......@@ -83,6 +86,8 @@ public class LineWarnMqHandlerServiceImpl implements LineWarnMqHandlerService {
private VehicleWarnUserDao vehicleWarnUserDao;
@Autowired
private ClxMessageOpenapiFeign clxMessageOpenapiFeign;
@Autowired
SendInternalMessageService sendInternalMessageService;
@Transactional(rollbackFor = Exception.class)
......@@ -212,6 +217,14 @@ public class LineWarnMqHandlerServiceImpl implements LineWarnMqHandlerService {
}
}
//发送站内信mq
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.LINE_WARN.getCode(),
vehicleWarnInfo.getWarnType(), List.of(vehicleWarnInfo.getOrderGoodsNo()),null,null);
if (mobileList.isEmpty()) {return;}
log.info("线路预警通知, id:{}, mobileList:{}", vehicleWarnInfo.getId(), JSON.toJSONString(mobileList));
......
......@@ -13,6 +13,7 @@ import com.clx.performance.dao.vehiclewarn.VehicleWarnChildDao;
import com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao;
import com.clx.performance.dao.vehiclewarn.VehicleWarnUserDao;
import com.clx.performance.dto.vehiclewarn.VehicleWarnCommonInfoDTO;
import com.clx.performance.enums.InternalMessageTemplateEnum;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.ResultEnum;
......@@ -27,6 +28,7 @@ import com.clx.performance.param.mq.trace.TruckTraceSyncMqParam;
import com.clx.performance.param.mq.vehiclewarn.VehicleWarnChildAddMqParam;
import com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnMqParam;
import com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnNoticeMqParam;
import com.clx.performance.service.SendInternalMessageService;
import com.clx.performance.service.linewarn.LineWarnMqService;
import com.clx.performance.service.trace.TruckTraceMqHandlerService;
import com.clx.performance.service.vehiclewarn.*;
......@@ -38,9 +40,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.*;
@Slf4j
@Service
......@@ -82,6 +82,8 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
private TruckTraceMqHandlerService truckTraceMqHandlerService;
@Autowired
private LineWarnMqService lineWarnMqService;
@Autowired
private SendInternalMessageService sendInternalMessageService;
@Override
public void orderChildAdd(VehicleWarnChildAddMqParam mq) {
......@@ -330,6 +332,7 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
}
@Override
public void truckWarnNotice(VehicleWarnTruckWarnNoticeMqParam mq) {
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
......@@ -338,6 +341,12 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
// 发送mq(运单异常)
lineWarnMqService.orderChildWarn(vehicleWarnInfo.getOrderGoodsNo(), vehicleWarnInfo.getChildNo());
//发送站内信mq
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.CHILD_WARN.getCode(),
vehicleWarnInfo.getWarnType(), List.of(vehicleWarnInfo.getChildNo()),null,null);
List<String> mobileList = new ArrayList<>();
// 过滤需要通知的人员
......
package com.clx.performance.enums;
import com.clx.performance.enums.linewarn.LineWarnConfigEnum;
import com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
public class InternalMessageTemplateEnum {
//自定义业务类型code
//待办-待报价订单 ========================================================================
//订单待报价
public static final Integer CUSTOM_WAIT_QUOTATION_CODE = 10100;
//报价驳回:重新报价
public static final Integer CUSTOM_QUOTATION_REJECT_CODE = 10101;
//待办-待审核事项 ===========================================================================
//待审核:司机驾驶认证
public static final Integer CUSTOM_WAIT_AUDIT_LICENCE_CODE = 10200;
//待审核:司机车辆认证
public static final Integer CUSTOM_WAIT_AUDIT_TRUCK_AUTH_CODE = 10201;
//已承接订单
public static final Integer CUSTOM_PLATFORM_UNDERTAKING_CODE = 10203;
//货主违约通知
public static final Integer CUSTOM_OWNER_TRIGGER_BREAK_CONTRACT_CODE = 10204;
//司机违约通知
public static final Integer CUSTOM_DRIVER_TRIGGER_BREAK_CONTRACT_CODE = 10205;
//收到减吨申请
public static final Integer CUSTOM_RECEIVE_SUB_WEIGHT_APPLY_CODE = 10206;
//收到延期申请
public static final Integer CUSTOM_RECEIVE_DELAY_APPLY_CODE = 10207;
//货主同意减吨申请
public static final Integer CUSTOM_AGREE_SUB_WEIGHT_APPLY_CODE = 10208;
//货主拒绝减吨申请
public static final Integer CUSTOM_REJECT_SUB_WEIGHT_APPLY_CODE = 10209;
//货主同意延期申请
public static final Integer CUSTOM_AGREE_DELAY_APPLY_CODE = 10210;
//货主拒绝延期申请
public static final Integer CUSTOM_REJECT_DELAY_APPLY_CODE = 10211;
//货主已确认报价
public static final Integer CUSTOM_CONFIRMED_QUOTATION_CODE = 10212;
//待办-待创建货单 ===================================================================
//货单待创建
public static final Integer CUSTOM_WAIT_CREATE_ORDER_GOODS_CODE = 10300;
//货主同意调价申请
public static final Integer CUSTOM_OWNER_AGREE_UNDERTAKING_ORDER_ADJUSTMENT_PRICE_CODE = 10301;
//通知-订单通知 ===================================================================
//货主同意调价申请
public static final Integer CUSTOM_OWNER_AGREE_POST_ORDER_ORDER_ADJUSTMENT_PRICE_CODE = 10400;
//货主拒绝调价申请
public static final Integer CUSTOM_OWNER_REJECT_UNDERTAKING_ORDER_ADJUSTMENT_PRICE_CODE = 10401;
//货主已取消订单
public static final Integer CUSTOM_OWNER_CANCEL_ORDER_CODE = 10402;
//上报-司机上报 ======================================================================
//待审核:司机货源地信息上报
public static final Integer CUSTOM_DRIVER_REPORT_SEND_INFO_CODE = 10500;
//待审核:司机异常情况上报
public static final Integer CUSTOM_DRIVER_REPORT_EXCEPTION_SITUATION_CODE = 10501;
//待审核:无接单上报
public static final Integer CUSTOM_DRIVER_REPORT_NO_TAKE_ORDER_CODE = 10502;
//待审核:交通情况上报
public static final Integer CUSTOM_DRIVER_REPORT_TRAFFIC_SITUATION_CODE = 10503;
//待审核:煤炭质量上报
public static final Integer CUSTOM_DRIVER_REPORT_COAL_QUALITY_CODE = 10504;
//待审核:排队信息上报
public static final Integer CUSTOM_DRIVER_REPORT_LINE_UP_INFO_CODE = 10505;
//司机上报:位置
public static final Integer CUSTOM_DRIVER_REPORT_POSITION_CODE = 10506;
//司机上报:油表信息
public static final Integer CUSTOM_DRIVER_REPORT_REFUEL_CODE = 10507;
//司机上报:其他
public static final Integer CUSTOM_DRIVER_REPORT_OTHER_CODE = 10508;
//上报-内部上报 ======================================================================
//内部上报:线路信息
public static final Integer CUSTOM_INTERNAL_REPORT_ROUTE_CODE = 10600;
//内部上报:车流量
public static final Integer CUSTOM_INTERNAL_REPORT_TRAFFIC_VOLUME_CODE = 10601;
//内部上报:厂区规则
public static final Integer CUSTOM_INTERNAL_REPORT_SITE_RULES_CODE = 10602;
//内部上报:调度异常
public static final Integer CUSTOM_INTERNAL_REPORT_SCHEDULING_EXCEPTION_CODE = 10603;
//内部上报:位置坐标
public static final Integer CUSTOM_INTERNAL_REPORT_COORDINATE_POSITION_CODE = 10604;
//通知-投诉通知 ======================================================================
//客户投诉
public static final Integer CUSTOM_DRIVER_SUBMIT_COMPLAINT_CODE = 10700;
//运单预警map
public static Map<Integer,String> CHILD_WARN_MAP = new HashMap<>();
//线路预警map
public static Map<Integer,String> LINE_WARN_MAP = new HashMap<>();
//待报价订单map
public static Map<Integer,String> WAIT_QUOTATION_ORDER_MAP = new HashMap<>();
//待审核事项map
public static Map<Integer,String> WAIT_APPROVED_ITEM_MAP = new HashMap<>();
//待创建货单map
public static Map<Integer,String> WAIT_CREATE_ORDER_GOODS_MAP = new HashMap<>();
//订单通知map
public static Map<Integer,String> ORDER_NOTICE_MAP = new HashMap<>();
//投诉通知map
public static Map<Integer,String> COMPLAINT_NOTICE_MAP = new HashMap<>();
//司机上报map
public static Map<Integer,String> DRIVER_REPORT_MAP = new HashMap<>();
//内部上报map
public static Map<Integer,String> INTERNAL_REPORT_MAP = new HashMap<>();
//key:businessType value: key:具体实际业务类型的code, value:BusinessTypeDetail的code
public static Map<String, Map<Integer,String>> businessTypeMap = new HashMap<>();
static {
//预警-运单预警
CHILD_WARN_MAP.put(VehicleWarnConfigEnum.WarnType.ARRIVE_SEND_DELAY.getCode(),BusinessTypeDetail.ARRIVE_SEND_DELAY.getCode());
CHILD_WARN_MAP.put(VehicleWarnConfigEnum.WarnType.GOTO_SEND_TIMEOUT.getCode(),BusinessTypeDetail.GOTO_SEND_TIMEOUT.getCode());
CHILD_WARN_MAP.put(VehicleWarnConfigEnum.WarnType.ARRIVE_RECEIVE_DELAY.getCode(),BusinessTypeDetail.ARRIVE_SEND_DELAY.getCode());
CHILD_WARN_MAP.put(VehicleWarnConfigEnum.WarnType.GOTO_RECEIVE_TIMEOUT.getCode(),BusinessTypeDetail.ARRIVE_SEND_DELAY.getCode());
CHILD_WARN_MAP.put(VehicleWarnConfigEnum.WarnType.PARK_TIMEOUT.getCode(),BusinessTypeDetail.ARRIVE_SEND_DELAY.getCode());
CHILD_WARN_MAP.put(VehicleWarnConfigEnum.WarnType.LOAD_TIMEOUT.getCode(),BusinessTypeDetail.ARRIVE_SEND_DELAY.getCode());
CHILD_WARN_MAP.put(VehicleWarnConfigEnum.WarnType.UNLOAD_TIMEOUT.getCode(),BusinessTypeDetail.ARRIVE_SEND_DELAY.getCode());
//预警-线路预警
LINE_WARN_MAP.put(LineWarnConfigEnum.WarnType.TAKE.getCode(),BusinessTypeDetail.TAKE.getCode());
LINE_WARN_MAP.put(LineWarnConfigEnum.WarnType.UNLOAD.getCode(),BusinessTypeDetail.UNLOAD.getCode());
LINE_WARN_MAP.put(LineWarnConfigEnum.WarnType.CONGESTION.getCode(),BusinessTypeDetail.CONGESTION.getCode());
LINE_WARN_MAP.put(LineWarnConfigEnum.WarnType.WEATHER.getCode(),BusinessTypeDetail.WEATHER.getCode());
LINE_WARN_MAP.put(LineWarnConfigEnum.WarnType.CHILD_ABNORMAL.getCode(),BusinessTypeDetail.CHILD_ABNORMAL.getCode());
LINE_WARN_MAP.put(LineWarnConfigEnum.WarnType.LINE_ABNORMAL.getCode(),BusinessTypeDetail.LINE_ABNORMAL.getCode());
//待办-待报价订单
WAIT_QUOTATION_ORDER_MAP.put(CUSTOM_WAIT_QUOTATION_CODE,BusinessTypeDetail.WAIT_QUOTATION.getCode());
WAIT_QUOTATION_ORDER_MAP.put(CUSTOM_QUOTATION_REJECT_CODE,BusinessTypeDetail.QUOTATION_REJECT.getCode());
//待办-待办待审核事项
WAIT_APPROVED_ITEM_MAP.put(CUSTOM_WAIT_AUDIT_LICENCE_CODE,BusinessTypeDetail.WAIT_AUDIT_LICENCE_AUTH.getCode());
WAIT_APPROVED_ITEM_MAP.put(CUSTOM_WAIT_AUDIT_TRUCK_AUTH_CODE,BusinessTypeDetail.WAIT_AUDIT_TRUCK_AUTH.getCode());
WAIT_APPROVED_ITEM_MAP.put(CUSTOM_PLATFORM_UNDERTAKING_CODE,BusinessTypeDetail.PLATFORM_UNDERTAKING.getCode());
WAIT_APPROVED_ITEM_MAP.put(CUSTOM_OWNER_TRIGGER_BREAK_CONTRACT_CODE,BusinessTypeDetail.OWNER_TRIGGER_BREAK_CONTRACT.getCode());
WAIT_APPROVED_ITEM_MAP.put(CUSTOM_DRIVER_TRIGGER_BREAK_CONTRACT_CODE,BusinessTypeDetail.DRIVER_TRIGGER_BREAK_CONTRACT.getCode());
WAIT_APPROVED_ITEM_MAP.put(CUSTOM_RECEIVE_SUB_WEIGHT_APPLY_CODE,BusinessTypeDetail.RECEIVE_SUB_WEIGHT_APPLY.getCode());
WAIT_APPROVED_ITEM_MAP.put(CUSTOM_RECEIVE_DELAY_APPLY_CODE,BusinessTypeDetail.RECEIVE_DELAY_APPLY.getCode());
WAIT_APPROVED_ITEM_MAP.put(CUSTOM_AGREE_SUB_WEIGHT_APPLY_CODE,BusinessTypeDetail.AGREE_SUB_WEIGHT_APPLY.getCode());
WAIT_APPROVED_ITEM_MAP.put(CUSTOM_REJECT_SUB_WEIGHT_APPLY_CODE,BusinessTypeDetail.REJECT_SUB_WEIGHT_APPLY.getCode());
WAIT_APPROVED_ITEM_MAP.put(CUSTOM_AGREE_DELAY_APPLY_CODE,BusinessTypeDetail.AGREE_DELAY_APPLY.getCode());
WAIT_APPROVED_ITEM_MAP.put(CUSTOM_REJECT_DELAY_APPLY_CODE,BusinessTypeDetail.REJECT_DELAY_APPLY.getCode());
WAIT_APPROVED_ITEM_MAP.put(CUSTOM_CONFIRMED_QUOTATION_CODE,BusinessTypeDetail.CONFIRMED_QUOTATION.getCode());
//代办-待创建货单
WAIT_CREATE_ORDER_GOODS_MAP.put(CUSTOM_WAIT_CREATE_ORDER_GOODS_CODE,BusinessTypeDetail.WAIT_CREATE_ORDER_GOODS.getCode());
WAIT_CREATE_ORDER_GOODS_MAP.put(CUSTOM_OWNER_AGREE_UNDERTAKING_ORDER_ADJUSTMENT_PRICE_CODE,BusinessTypeDetail.OWNER_AGREE_UNDERTAKING_ORDER_ADJUSTMENT_PRICE.getCode());
//通知-订单通知
ORDER_NOTICE_MAP.put(CUSTOM_OWNER_AGREE_POST_ORDER_ORDER_ADJUSTMENT_PRICE_CODE,BusinessTypeDetail.OWNER_AGREE_POST_ORDER_ORDER_ADJUSTMENT_PRICE.getCode());
ORDER_NOTICE_MAP.put(CUSTOM_OWNER_REJECT_UNDERTAKING_ORDER_ADJUSTMENT_PRICE_CODE,BusinessTypeDetail.OWNER_REJECT_UNDERTAKING_ORDER_ADJUSTMENT_PRICE.getCode());
ORDER_NOTICE_MAP.put(CUSTOM_OWNER_CANCEL_ORDER_CODE,BusinessTypeDetail.OWNER_CANCEL_ORDER.getCode());
//通知-投诉通知
COMPLAINT_NOTICE_MAP.put(CUSTOM_DRIVER_SUBMIT_COMPLAINT_CODE,BusinessTypeDetail.DRIVER_SUBMIT_COMPLAINT.getCode());
//上报-司机上报
DRIVER_REPORT_MAP.put(CUSTOM_DRIVER_REPORT_SEND_INFO_CODE,BusinessTypeDetail.DRIVER_REPORT_SEND_INFO.getCode());
DRIVER_REPORT_MAP.put(CUSTOM_DRIVER_REPORT_EXCEPTION_SITUATION_CODE,BusinessTypeDetail.DRIVER_REPORT_EXCEPTION_SITUATION.getCode());
DRIVER_REPORT_MAP.put(CUSTOM_DRIVER_REPORT_NO_TAKE_ORDER_CODE,BusinessTypeDetail.DRIVER_REPORT_NO_TAKE_ORDER.getCode());
DRIVER_REPORT_MAP.put(CUSTOM_DRIVER_REPORT_TRAFFIC_SITUATION_CODE,BusinessTypeDetail.DRIVER_REPORT_TRAFFIC_SITUATION.getCode());
DRIVER_REPORT_MAP.put(CUSTOM_DRIVER_REPORT_COAL_QUALITY_CODE,BusinessTypeDetail.DRIVER_REPORT_COAL_QUALITY.getCode());
DRIVER_REPORT_MAP.put(CUSTOM_DRIVER_REPORT_LINE_UP_INFO_CODE,BusinessTypeDetail.DRIVER_REPORT_LINE_UP_INFO.getCode());
DRIVER_REPORT_MAP.put(CUSTOM_DRIVER_REPORT_POSITION_CODE,BusinessTypeDetail.DRIVER_REPORT_POSITION.getCode());
DRIVER_REPORT_MAP.put(CUSTOM_DRIVER_REPORT_REFUEL_CODE,BusinessTypeDetail.DRIVER_REPORT_REFUEL.getCode());
DRIVER_REPORT_MAP.put(CUSTOM_DRIVER_REPORT_OTHER_CODE,BusinessTypeDetail.DRIVER_REPORT_OTHER.getCode());
//上报-内部上报
INTERNAL_REPORT_MAP.put(CUSTOM_INTERNAL_REPORT_ROUTE_CODE,BusinessTypeDetail.INTERNAL_REPORT_ROUTE.getCode());
INTERNAL_REPORT_MAP.put(CUSTOM_INTERNAL_REPORT_TRAFFIC_VOLUME_CODE,BusinessTypeDetail.INTERNAL_REPORT_TRAFFIC_VOLUME.getCode());
INTERNAL_REPORT_MAP.put(CUSTOM_INTERNAL_REPORT_SITE_RULES_CODE,BusinessTypeDetail.INTERNAL_REPORT_SITE_RULES.getCode());
INTERNAL_REPORT_MAP.put(CUSTOM_INTERNAL_REPORT_SCHEDULING_EXCEPTION_CODE,BusinessTypeDetail.INTERNAL_REPORT_SCHEDULING_EXCEPTION.getCode());
INTERNAL_REPORT_MAP.put(CUSTOM_INTERNAL_REPORT_COORDINATE_POSITION_CODE,BusinessTypeDetail.INTERNAL_REPORT_COORDINATE_POSITION.getCode());
businessTypeMap.put(BusinessType.CHILD_WARN.getCode(),CHILD_WARN_MAP);
businessTypeMap.put(BusinessType.LINE_WARN.getCode(),LINE_WARN_MAP);
businessTypeMap.put(BusinessType.WAIT_QUOTATION_ORDER.getCode(),WAIT_QUOTATION_ORDER_MAP);
businessTypeMap.put(BusinessType.WAIT_APPROVED_ITEM.getCode(),WAIT_APPROVED_ITEM_MAP);
businessTypeMap.put(BusinessType.WAIT_CREATE_ORDER_GOODS.getCode(),WAIT_CREATE_ORDER_GOODS_MAP);
businessTypeMap.put(BusinessType.ORDER_NOTICE.getCode(),ORDER_NOTICE_MAP);
businessTypeMap.put(BusinessType.COMPLAINT_NOTICE.getCode(),COMPLAINT_NOTICE_MAP);
businessTypeMap.put(BusinessType.DRIVER_REPORT.getCode(),DRIVER_REPORT_MAP);
businessTypeMap.put(BusinessType.INTERNAL_REPORT.getCode(),INTERNAL_REPORT_MAP);
}
@Getter
@AllArgsConstructor
public enum TemplateType {
ARRIVE_SEND_DELAY(PlatformType.CARRIER, MessageType.WARN, BusinessType.CHILD_WARN,BusinessTypeDetail.ARRIVE_SEND_DELAY),
GOTO_SEND_TIMEOUT(PlatformType.CARRIER, MessageType.WARN, BusinessType.CHILD_WARN,BusinessTypeDetail.GOTO_SEND_TIMEOUT),
ARRIVE_RECEIVE_DELAY(PlatformType.CARRIER, MessageType.WARN, BusinessType.CHILD_WARN,BusinessTypeDetail.ARRIVE_RECEIVE_DELAY),
GOTO_RECEIVE_TIMEOUT(PlatformType.CARRIER, MessageType.WARN, BusinessType.CHILD_WARN,BusinessTypeDetail.GOTO_RECEIVE_TIMEOUT),
PARK_TIMEOUT(PlatformType.CARRIER, MessageType.WARN, BusinessType.CHILD_WARN,BusinessTypeDetail.PARK_TIMEOUT),
LOAD_TIMEOUT(PlatformType.CARRIER, MessageType.WARN, BusinessType.CHILD_WARN,BusinessTypeDetail.LOAD_TIMEOUT),
UNLOAD_TIMEOUT(PlatformType.CARRIER, MessageType.WARN, BusinessType.CHILD_WARN,BusinessTypeDetail.UNLOAD_TIMEOUT),
TAKE(PlatformType.CARRIER, MessageType.WARN, BusinessType.LINE_WARN,BusinessTypeDetail.TAKE),
UNLOAD(PlatformType.CARRIER, MessageType.WARN, BusinessType.LINE_WARN,BusinessTypeDetail.UNLOAD),
CONGESTION(PlatformType.CARRIER, MessageType.WARN, BusinessType.LINE_WARN,BusinessTypeDetail.CONGESTION),
WEATHER(PlatformType.CARRIER, MessageType.WARN, BusinessType.LINE_WARN,BusinessTypeDetail.WEATHER),
CHILD_ABNORMAL(PlatformType.CARRIER, MessageType.WARN, BusinessType.LINE_WARN,BusinessTypeDetail.CHILD_ABNORMAL),
LINE_ABNORMAL(PlatformType.CARRIER, MessageType.WARN, BusinessType.LINE_WARN,BusinessTypeDetail.LINE_ABNORMAL),
WAIT_QUOTATION(PlatformType.CARRIER, MessageType.WAIT_DEAL, BusinessType.WAIT_QUOTATION_ORDER,BusinessTypeDetail.WAIT_QUOTATION),
QUOTATION_REJECT(PlatformType.CARRIER, MessageType.WAIT_DEAL, BusinessType.WAIT_QUOTATION_ORDER,BusinessTypeDetail.QUOTATION_REJECT),
WAIT_AUDIT_LICENCE_AUTH(PlatformType.CARRIER, MessageType.WAIT_DEAL, BusinessType.WAIT_APPROVED_ITEM,BusinessTypeDetail.WAIT_AUDIT_LICENCE_AUTH),
WAIT_AUDIT_TRUCK_AUTH(PlatformType.CARRIER, MessageType.WAIT_DEAL, BusinessType.WAIT_APPROVED_ITEM,BusinessTypeDetail.WAIT_AUDIT_TRUCK_AUTH),
CONFIRMED_QUOTATION(PlatformType.CARRIER, MessageType.WAIT_DEAL, BusinessType.WAIT_APPROVED_ITEM,BusinessTypeDetail.CONFIRMED_QUOTATION),
PLATFORM_UNDERTAKING(PlatformType.CARRIER, MessageType.WAIT_DEAL, BusinessType.WAIT_APPROVED_ITEM,BusinessTypeDetail.PLATFORM_UNDERTAKING),
OWNER_TRIGGER_BREAK_CONTRACT(PlatformType.CARRIER, MessageType.WAIT_DEAL, BusinessType.WAIT_APPROVED_ITEM,BusinessTypeDetail.OWNER_TRIGGER_BREAK_CONTRACT),
DRIVER_TRIGGER_BREAK_CONTRACT(PlatformType.CARRIER, MessageType.WAIT_DEAL, BusinessType.WAIT_APPROVED_ITEM,BusinessTypeDetail.DRIVER_TRIGGER_BREAK_CONTRACT),
RECEIVE_SUB_WEIGHT_APPLY(PlatformType.CARRIER, MessageType.WAIT_DEAL, BusinessType.WAIT_APPROVED_ITEM,BusinessTypeDetail.RECEIVE_SUB_WEIGHT_APPLY),
RECEIVE_DELAY_APPLY(PlatformType.CARRIER, MessageType.WAIT_DEAL, BusinessType.WAIT_APPROVED_ITEM,BusinessTypeDetail.RECEIVE_DELAY_APPLY),
AGREE_SUB_WEIGHT_APPLY(PlatformType.CARRIER, MessageType.WAIT_DEAL, BusinessType.WAIT_APPROVED_ITEM,BusinessTypeDetail.AGREE_SUB_WEIGHT_APPLY),
REJECT_SUB_WEIGHT_APPLY(PlatformType.CARRIER, MessageType.WAIT_DEAL, BusinessType.WAIT_APPROVED_ITEM,BusinessTypeDetail.REJECT_SUB_WEIGHT_APPLY),
AGREE_DELAY_APPLY(PlatformType.CARRIER, MessageType.WAIT_DEAL, BusinessType.WAIT_APPROVED_ITEM,BusinessTypeDetail.AGREE_DELAY_APPLY),
REJECT_DELAY_APPLY(PlatformType.CARRIER, MessageType.WAIT_DEAL, BusinessType.WAIT_APPROVED_ITEM,BusinessTypeDetail.REJECT_DELAY_APPLY),
WAIT_CREATE_ORDER_GOODS(PlatformType.CARRIER, MessageType.WAIT_DEAL, BusinessType.WAIT_CREATE_ORDER_GOODS,BusinessTypeDetail.WAIT_CREATE_ORDER_GOODS),
OWNER_AGREE_UNDERTAKING_ORDER_ADJUSTMENT_PRICE(PlatformType.CARRIER, MessageType.WAIT_DEAL, BusinessType.WAIT_CREATE_ORDER_GOODS,BusinessTypeDetail.OWNER_AGREE_UNDERTAKING_ORDER_ADJUSTMENT_PRICE),
OWNER_AGREE_POST_ORDER_ORDER_ADJUSTMENT_PRICE(PlatformType.CARRIER, MessageType.NOTICE, BusinessType.ORDER_NOTICE,BusinessTypeDetail.OWNER_AGREE_POST_ORDER_ORDER_ADJUSTMENT_PRICE),
OWNER_REJECT_UNDERTAKING_ORDER_ADJUSTMENT_PRICE(PlatformType.CARRIER, MessageType.NOTICE, BusinessType.ORDER_NOTICE,BusinessTypeDetail.OWNER_REJECT_UNDERTAKING_ORDER_ADJUSTMENT_PRICE),
OWNER_CANCEL_ORDER(PlatformType.CARRIER, MessageType.NOTICE, BusinessType.ORDER_NOTICE,BusinessTypeDetail.OWNER_CANCEL_ORDER),
DRIVER_SUBMIT_COMPLAINT(PlatformType.CARRIER, MessageType.NOTICE, BusinessType.COMPLAINT_NOTICE,BusinessTypeDetail.DRIVER_SUBMIT_COMPLAINT),
DRIVER_REPORT_SEND_INFO(PlatformType.CARRIER, MessageType.REPORT, BusinessType.DRIVER_REPORT,BusinessTypeDetail.DRIVER_REPORT_SEND_INFO),
DRIVER_REPORT_EXCEPTION_SITUATION(PlatformType.CARRIER, MessageType.REPORT, BusinessType.DRIVER_REPORT,BusinessTypeDetail.DRIVER_REPORT_EXCEPTION_SITUATION),
DRIVER_REPORT_NO_TAKE_ORDER(PlatformType.CARRIER, MessageType.REPORT, BusinessType.DRIVER_REPORT,BusinessTypeDetail.DRIVER_REPORT_NO_TAKE_ORDER),
DRIVER_REPORT_TRAFFIC_SITUATION(PlatformType.CARRIER, MessageType.REPORT, BusinessType.DRIVER_REPORT,BusinessTypeDetail.DRIVER_REPORT_TRAFFIC_SITUATION),
DRIVER_REPORT_COAL_QUALITY(PlatformType.CARRIER, MessageType.REPORT, BusinessType.DRIVER_REPORT,BusinessTypeDetail.DRIVER_REPORT_COAL_QUALITY),
DRIVER_REPORT_LINE_UP_INFO(PlatformType.CARRIER, MessageType.REPORT, BusinessType.DRIVER_REPORT,BusinessTypeDetail.DRIVER_REPORT_LINE_UP_INFO),
DRIVER_REPORT_POSITION(PlatformType.CARRIER, MessageType.REPORT, BusinessType.DRIVER_REPORT,BusinessTypeDetail.DRIVER_REPORT_POSITION),
DRIVER_REPORT_REFUEL(PlatformType.CARRIER, MessageType.REPORT, BusinessType.DRIVER_REPORT,BusinessTypeDetail.DRIVER_REPORT_REFUEL),
DRIVER_REPORT_OTHER(PlatformType.CARRIER, MessageType.REPORT, BusinessType.DRIVER_REPORT,BusinessTypeDetail.DRIVER_REPORT_OTHER),
INTERNAL_REPORT_ROUTE(PlatformType.CARRIER, MessageType.REPORT, BusinessType.INTERNAL_REPORT,BusinessTypeDetail.INTERNAL_REPORT_ROUTE),
INTERNAL_REPORT_TRAFFIC_VOLUME(PlatformType.CARRIER, MessageType.REPORT, BusinessType.INTERNAL_REPORT,BusinessTypeDetail.INTERNAL_REPORT_TRAFFIC_VOLUME),
INTERNAL_REPORT_SITE_RULES(PlatformType.CARRIER, MessageType.REPORT, BusinessType.INTERNAL_REPORT,BusinessTypeDetail.INTERNAL_REPORT_SITE_RULES),
INTERNAL_REPORT_SCHEDULING_EXCEPTION(PlatformType.CARRIER, MessageType.REPORT, BusinessType.INTERNAL_REPORT,BusinessTypeDetail.INTERNAL_REPORT_SCHEDULING_EXCEPTION),
INTERNAL_REPORT_COORDINATE_POSITION(PlatformType.CARRIER, MessageType.REPORT, BusinessType.INTERNAL_REPORT,BusinessTypeDetail.INTERNAL_REPORT_COORDINATE_POSITION),
;
private final PlatformType platform; //承运平台 司机APP
private final MessageType messageType; //预警、待办、通知、上报
private final BusinessType businessType; //业务大类 运单预警
private final BusinessTypeDetail businessDetailType; //业务详细分类 前往目的地超时等
public static Optional<TemplateType> getByBusinessTypeDetailCode(String businessTypeDetailCode) {
return Arrays.stream(values()).filter(e -> e.businessDetailType.code.equals(businessTypeDetailCode)).findFirst();
}
}
@Getter
@AllArgsConstructor
public enum BusinessTypeDetail {
//预警-运单预警
ARRIVE_SEND_DELAY("ARRIVE_SEND_DELAY", "预警通知:到达货源地延误","运单%s,到达货源地延误,请尽快处理。","/fulfillment-center/monitor-warn/vehicle-monitor-warn",""),
GOTO_SEND_TIMEOUT("GO_TO_SEND_TIMEOUT", "预警通知:前往货源地超时","运单%s,前往货源地超时,请尽快处理。","/fulfillment-center/monitor-warn/vehicle-monitor-warn",""),
ARRIVE_RECEIVE_DELAY("ARRIVE_RECEIVE_DELAY", "预警通知:到达目的地延误","运单%s,到达目的地延误,请尽快处理。","/fulfillment-center/monitor-warn/vehicle-monitor-warn",""),
GOTO_RECEIVE_TIMEOUT("GOTO_RECEIVE_TIMEOUT", "预警通知:前往目的地超时","运单%s,到达目的地超时,请尽快处理。","/fulfillment-center/monitor-warn/vehicle-monitor-warn",""),
PARK_TIMEOUT("PARK_TIMEOUT", "预警通知:前往货源地超时","运单%s,停留超时,请尽快处理。","/fulfillment-center/monitor-warn/vehicle-monitor-warn",""),
LOAD_TIMEOUT("LOAD_TIMEOUT", "预警通知:前往货源地超时","运单%s,装车超时,请尽快处理。","/fulfillment-center/monitor-warn/vehicle-monitor-warn",""),
UNLOAD_TIMEOUT("UNLOAD_TIMEOUT", "预警通知:前往货源地超时","运单%s,卸车超时,请尽快处理。","/fulfillment-center/monitor-warn/vehicle-monitor-warn",""),
//预警-线路预警
TAKE("TAKE", "预警通知:接单预警","货单【%s】,触发接单预警,请尽快处理。","/fulfillment-center/monitor-warn/route-monitor-warn",""),
UNLOAD("UNLOAD", "预警通知:卸车预警","货单【%s】,触发卸车预警,请尽快处理。","/fulfillment-center/monitor-warn/route-monitor-warn",""),
CONGESTION("CONGESTION", "预警通知:拥堵预警","货单【%s】,触发拥堵,请尽快处理。","/fulfillment-center/monitor-warn/route-monitor-warn",""),
WEATHER("WEATHER", "预警通知:天气预警","货单【%s】,触发天气预警,请尽快处理。","/fulfillment-center/monitor-warn/route-monitor-warn",""),
CHILD_ABNORMAL("CHILD_ABNORMAL", "预警通知:运单异常","货单【%s】,触发运单预警,请尽快处理。","/fulfillment-center/monitor-warn/route-monitor-warn",""),
LINE_ABNORMAL("LINE_ABNORMAL", "预警通知:线路异常","货单【%s】,触发线路预警,请尽快处理。","/fulfillment-center/monitor-warn/route-monitor-warn",""),
//待办-待报价订单
WAIT_QUOTATION("WAIT_QUOTATION", "订单待报价","您收到了一条货主的订单,请尽快进行报价。","/order-center/order-manage/order-list/quotation","{\"orderNo\":\"%s\",\"id\":\"%s\"}"),
QUOTATION_REJECT("QUOTATION_REJECT", "报价驳回:重新报价","您的订单【%s】报价已被驳回,请重新报价。","/order-center/order-manage/order-list/quotation","{\"orderNo\":\"%s\",\"id\":\"%s\",,\"repeat\":\"1\"}"),
//待办-待审核事项
WAIT_AUDIT_LICENCE_AUTH("WAIT_AUDIT_LICENCE", "待审核:司机驾驶认证","您有一个司机认证待审核,请及时处理。","/cs-center/document-auth/driver/driver-detail","{\"id\":\"%s\"}"),
WAIT_AUDIT_TRUCK_AUTH("WAIT_AUDIT_TRUCK_AUTH", "待审核:司机车辆认证","您有一个车辆认证待审核,请及时处理。","/cs-center/document-auth/car/car-detail","{\"truckId\":\"%s\"}"),
CONFIRMED_QUOTATION("CONFIRMED_QUOTATION", "已同意报价","【%s】货主已同意报价。","/order-center/order-manage/order-list/order-detail","{\"orderNo\":\"%s\",\"id\":\"%s\"}"),
PLATFORM_UNDERTAKING("PLATFORM_UNDERTAKING", "已承接订单","【%s】平台已承接。","/order-center/order-manage/order-list/order-detail","{\"orderNo\":\"%s\",\"id\":\"%s\"}"),
OWNER_TRIGGER_BREAK_CONTRACT("OWNER_TRIGGER_BREAK_CONTRACT", "货主违约通知","您收到一条货主违约信息,违约编号【%s】","/cost-center/default-manage/owner-default",""),
DRIVER_TRIGGER_BREAK_CONTRACT("DRIVER_TRIGGER_BREAK_CONTRACT", "司机违约通知","您收到一条司机违约信息,违约编号【%s】","/cost-center/default-manage/driver-default",""),
RECEIVE_SUB_WEIGHT_APPLY("RECEIVE_SUB_WEIGHT_APPLY", "收到减吨申请","您收到一条减吨申请,订单编号【%s】。","/order-center/order-manage/order_reduce_ton_apply","{\"orderNo\":\"%s\",\"orderStatus\":\"%s\"}"),
RECEIVE_DELAY_APPLY("RECEIVE_DELAY_APPLY", "收到延期申请","您收到一条延期申请,订单编号【%s】。","/order-center/order-manage/order_delay_apply","{\"orderNo\":\"%s\",\"orderId\":\"%s\",\"orderStatus\":\"%s\"}"),
AGREE_SUB_WEIGHT_APPLY("AGREE_SUB_WEIGHT_APPLY", "货主同意减吨申请","货主已同意您的减吨申请,订单编号【%s】。","/order-center/order-manage/order_reduce_ton_apply","{\"orderNo\":\"%s\",\"orderStatus\":\"%s\"}"),
REJECT_SUB_WEIGHT_APPLY("REJECT_SUB_WEIGHT_APPLY", "货主拒绝减吨申请","货主已拒绝您的减吨申请,订单编号【%s】。","/order-center/order-manage/order_reduce_ton_apply","{\"orderNo\":\"%s\",\"orderStatus\":\"%s\"}"),
AGREE_DELAY_APPLY("AGREE_DELAY_APPLY", "货主同意延期申请","货主已同意您的延期申请,订单编号【%s】。","/order-center/order-manage/order_delay_apply","{\"orderNo\":\"%s\",\"orderId\":\"%s\",\"orderStatus\":\"%s\"}"),
REJECT_DELAY_APPLY("REJECT_DELAY_APPLY", "货主拒绝延期申请","货主已拒绝您的延期申请,订单编号【%s】。","/order-center/order-manage/order_delay_apply","{\"orderNo\":\"%s\",\"orderId\":\"%s\",\"orderStatus\":\"%s\"}"),
//待办-待创建货单
WAIT_CREATE_ORDER_GOODS("WAIT_CREATE_ORDER_GOODS", "货单待创建","【%s】货主已同意报价,请及时创建货单。","/order-center/cargo-manage/cargo-list/create",""),
OWNER_AGREE_UNDERTAKING_ORDER_ADJUSTMENT_PRICE("OWNER_AGREE_UNDERTAKING_ORDER_ADJUSTMENT_PRICE", "货主同意调价申请","货主已同意您的调价申请,【%s】。","/order-center/order-manage/price-adjustment",""),//已承接订单
//通知-订单通知
OWNER_AGREE_POST_ORDER_ORDER_ADJUSTMENT_PRICE("OWNER_AGREE_POST_ORDER_ORDER_ADJUSTMENT_PRICE", "货主同意调价申请","货主已同意您的调价申请,【%s】。","/order-center/order-manage/price-adjustment",""),//已挂单订单
OWNER_REJECT_UNDERTAKING_ORDER_ADJUSTMENT_PRICE("OWNER_REJECT_UNDERTAKING_ORDER_ADJUSTMENT_PRICE", "货主拒绝调价申请","货主已拒绝您的调价申请,订单编号【】。","/order-center/order-manage/order-list/order-detail","{\"orderNo\":\"%s\",\"id\":\"%s\"}"),//已承接订单
OWNER_CANCEL_ORDER("OWNER_CANCEL_ORDER", "货主已取消订单","货主已取消订单,订单编号【%s】。","/order-center/order-manage/order-list/order-detail",""),
//通知-投诉通知
DRIVER_SUBMIT_COMPLAINT("DRIVER_SUBMIT_COMPLAINT","客户投诉","您收到了一条客户投诉,运单编号【%s】,投诉类型【%s】,投诉内容【%s】。","/cs-center/customer-complain","{\"orderNo\":\"%s\",\"id\":\"%s\"}"),
//上报-司机上报、
DRIVER_REPORT_SEND_INFO("DRIVER_REPORT_SEND_INFO","待审核:司机货源地信息上报","【%s】上报了一条货源地信息,请前往处理审核。","/data-center/driver-upload/origin-condition",""),
DRIVER_REPORT_EXCEPTION_SITUATION("DRIVER_REPORT_EXCEPTION_SITUATION","待审核:司机异常情况上报","【%s】上报了一条异常信息,异常类型【】,异常原因【】请前往处理审核。","/data-center/driver-upload/abnormal-report",""),
DRIVER_REPORT_NO_TAKE_ORDER("DRIVER_REPORT_NO_TAKE_ORDER","待审核:无接单上报","【%s】上报了一条无接单信息,无接单原因【】,请前往处理审核。","/data-center/driver-upload/no-orders-taken-report",""),
DRIVER_REPORT_TRAFFIC_SITUATION("DRIVER_REPORT_TRAFFIC_SITUATION","待审核:交通情况上报","【%s】上报了一条交通信息,请前往处理审核。","/data-center/driver-upload/traffic-report",""),
DRIVER_REPORT_COAL_QUALITY("DRIVER_REPORT_COAL_QUALITY","待审核:煤炭质量上报","【%s】上报了一条煤炭质量信息,请前往处理审核。","/data-center/driver-upload/coal-quality",""),
DRIVER_REPORT_LINE_UP_INFO("DRIVER_REPORT_LINE_UP_INFO","待审核:排队信息上报","【%s】上报了一条排队信息,请前往处理审核。","/data-center/driver-upload/line-report",""),
DRIVER_REPORT_POSITION("DRIVER_REPORT_POSITION","司机上报:位置","【%s】上报了一条位置信息【%s】。","/data-center/driver-upload/driver-location",""),
DRIVER_REPORT_REFUEL("DRIVER_REPORT_REFUEL","司机上报:油表信息","【%s】上报了一条油表信息。","/data-center/driver-upload/fuel-gauge-report",""),
DRIVER_REPORT_OTHER("DRIVER_REPORT_OTHER","司机上报:其他","【%s】上报了一条其他信息,内容为:【%s】。","/data-center/driver-upload/others-report",""),
//上报-内部上报
INTERNAL_REPORT_ROUTE("INTERNAL_REPORT_ROUTE","内部上报:线路信息","【%s】上报了一条线路信息,请点击查看。","/data-center/interior-report/report-route-info/report-route-info-detail","{\"id\":\"%s\"}"),
INTERNAL_REPORT_TRAFFIC_VOLUME("INTERNAL_REPORT_TRAFFIC_VOLUME","内部上报:车流量","【%s】上报了一条车流量信息,请点击查看。","/data-center/interior-report/report-traffic",""),
INTERNAL_REPORT_SITE_RULES("INTERNAL_REPORT_SITE_RULES","内部上报:厂区规则","【%s】上报了一条厂区规定,规定内容【%s】,请点击查看。","/data-center/interior-report/report-factory-rules",""),
INTERNAL_REPORT_SCHEDULING_EXCEPTION("INTERNAL_REPORT_SCHEDULING_EXCEPTION","内部上报:调度异常","【%s】上报了一条调度异常,异常情况【%s】,异常内容【%s】,请点击查看。","/data-center/interior-report/report-scheduling-abnormal",""),
INTERNAL_REPORT_COORDINATE_POSITION("INTERNAL_REPORT_COORDINATE_POSITION","内部上报:位置坐标","【%s】上报了一条位置坐标,请点击查看。","/data-center/interior-report/report-location-coordinates",""),
;
private final String code;
private final String title;
private final String content;
private final String jumpUrl;
private final String paramJson;
public static Optional<BusinessTypeDetail> getByCode(String code) {
return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst();
}
public static String getTitle(String code) {
if (code == null) {return null;}
return getByCode(code).map(BusinessTypeDetail::getTitle).orElse(null);
}
}
@Getter
@AllArgsConstructor
public enum BusinessType {
CHILD_WARN("CHILD_WARN", "运单预警"),
LINE_WARN("LINE_WARN", "线路预警"),
WAIT_QUOTATION_ORDER("WAIT_QUOTATION_ORDER", "待报价订单"),
WAIT_APPROVED_ITEM("WAIT_APPROVED_ITEM", "待审核事项"),
WAIT_CREATE_ORDER_GOODS("WAIT_CREATE_ORDER_GOODS", "待创建货单"),
ORDER_NOTICE("ORDER_NOTICE", "订单通知"),
COMPLAINT_NOTICE("COMPLAINT_NOTICE", "投诉通知"),
DRIVER_REPORT("DRIVER_REPORT", "司机上报"),
INTERNAL_REPORT("INTERNAL_REPORT", "内部上报"),
;
private final String code;
private final String name;
public static Optional<BusinessType> getByCode(String code) {
return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst();
}
public static String getName(String code) {
if (code == null) {return null;}
return getByCode(code).map(BusinessType::getName).orElse(null);
}
}
@Getter
@AllArgsConstructor
public enum PlatformType {
CARRIER("carrier-platform-npc", "承运平台"),
DRIVER_APP("carrier-driver-app", "司机APP"),
;
private final String code;
private final String name;
public static Optional<PlatformType> getByCode(String code) {
return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst();
}
public static String getName(String code) {
if (code == null) {return null;}
return getByCode(code).map(PlatformType::getName).orElse(null);
}
}
//预警、待办、通知、上报
@Getter
@AllArgsConstructor
public enum MessageType {
WARN("WARN", "预警"),
WAIT_DEAL("WAIT_DEAL", "待办"),
NOTICE("NOTICE", "通知"),
REPORT("REPORT", "上报"),
;
private final String code;
private final String name;
public static Optional<MessageType> getByCode(String code) {
return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst();
}
public static String getName(String code) {
if (code == null) {return null;}
return getByCode(code).map(MessageType::getName).orElse(null);
}
}
}
package com.clx.performance.param.mq;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
/**
* @ClassName InternalMessageDTO
* @Description
* @Author kavin
* @Date 2024/10/16 15:17
* @Version 1.0
*/
@Getter
@Setter
public class InternalMessageParam {
//站内信大类业务code
private String businessType;
//站内信模版业务详情自定义Code (业务原始Code或自定义code)
private Integer typeCode;
//内容参数
List<Object> variableList;
//跳转地址参数
List<Object> jumpUrlVariableList;
//站内信点对点的用户
private Long userNo;
private String productCode;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论