提交 0d4c652a authored 作者: 艾庆国's avatar 艾庆国

运单预警

上级 0183c1d3
...@@ -29,4 +29,6 @@ public class ClxMessageConfig { ...@@ -29,4 +29,6 @@ public class ClxMessageConfig {
//转账支付-还款单短信模板 //转账支付-还款单短信模板
private String repaymentTemplateCode; private String repaymentTemplateCode;
//运单预警短信模板
private String vehicleWarnTemplateCode;
} }
package com.clx.performance.controller.temp;
import com.clx.performance.service.vehiclewarn.VehicleWarnMqHandlerService;
import com.msl.common.result.Result;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Author: aiqingguo
* @Description: 临时接口
* @Date: 2023-8-21 12:10:16
* @Version: 1.0
*/
@Slf4j
@RestController
@RequestMapping(value="/temp/vehicleWarn")
public class TempVehicleWarnController {
@Autowired
private VehicleWarnMqHandlerService vehicleWarnMqHandlerService;
@ApiOperation(value = "发送预警短信", notes = "<br>By:艾庆国")
@PostMapping("/sendSms")
public Result sendSms(List<String> mobileList, String warnName, String truckNo, String childNo) {
vehicleWarnMqHandlerService.sendSms(mobileList, warnName, truckNo, childNo);
return Result.ok();
}
@ApiOperation(value = "发送预警外呼", notes = "<br>By:艾庆国")
@PostMapping("/sendClink")
public Result sendClink(List<String> mobileList, String warnName, String truckNo, String childNo) {
vehicleWarnMqHandlerService.sendClink(mobileList, warnName, truckNo, childNo);
return Result.ok();
}
}
...@@ -11,6 +11,8 @@ import com.msl.common.base.Optional; ...@@ -11,6 +11,8 @@ import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl; import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
@Repository @Repository
public class VehicleWarnUserDaoImpl extends BaseDaoImpl<VehicleWarnUserMapper, VehicleWarnUser, Integer> implements VehicleWarnUserDao { public class VehicleWarnUserDaoImpl extends BaseDaoImpl<VehicleWarnUserMapper, VehicleWarnUser, Integer> implements VehicleWarnUserDao {
...@@ -61,6 +63,13 @@ public class VehicleWarnUserDaoImpl extends BaseDaoImpl<VehicleWarnUserMapper, V ...@@ -61,6 +63,13 @@ public class VehicleWarnUserDaoImpl extends BaseDaoImpl<VehicleWarnUserMapper, V
.map(super::getOne); .map(super::getOne);
} }
@Override
public List<VehicleWarnUser> listAllEnable() {
return list(lQrWrapper()
.eq(VehicleWarnUser::getDeleteStatus, VehicleWarnUserEnum.DeleteStatus.NO.getCode())
);
}
@Override @Override
public IPage<VehicleWarnUser> pageByParam(PageVehicleWarnUserParam param) { public IPage<VehicleWarnUser> pageByParam(PageVehicleWarnUserParam param) {
Page<VehicleWarnUser> page = Page.of(param.getPage(), param.getPageSize()); Page<VehicleWarnUser> page = Page.of(param.getPage(), param.getPageSize());
......
...@@ -7,6 +7,8 @@ import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnUserParam; ...@@ -7,6 +7,8 @@ import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnUserParam;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao; import com.msl.common.dao.BaseDao;
import java.util.List;
public interface VehicleWarnUserDao extends BaseDao<VehicleWarnUserMapper, VehicleWarnUser, Integer> { public interface VehicleWarnUserDao extends BaseDao<VehicleWarnUserMapper, VehicleWarnUser, Integer> {
boolean updateUser(VehicleWarnUser item); boolean updateUser(VehicleWarnUser item);
...@@ -16,6 +18,8 @@ public interface VehicleWarnUserDao extends BaseDao<VehicleWarnUserMapper, Vehic ...@@ -16,6 +18,8 @@ public interface VehicleWarnUserDao extends BaseDao<VehicleWarnUserMapper, Vehic
Optional<VehicleWarnUser> findById(Integer id); Optional<VehicleWarnUser> findById(Integer id);
Optional<VehicleWarnUser> findByMobile(String mobile); Optional<VehicleWarnUser> findByMobile(String mobile);
List<VehicleWarnUser> listAllEnable();
IPage<VehicleWarnUser> pageByParam(PageVehicleWarnUserParam param); IPage<VehicleWarnUser> pageByParam(PageVehicleWarnUserParam param);
} }
package com.clx.performance.service.impl.vehiclewarn; package com.clx.performance.service.impl.vehiclewarn;
import cn.hutool.json.JSONObject;
import com.clx.message.feign.ClxMessageOpenapiFeign;
import com.clx.message.req.batch.AliBatchSmsMessageReq;
import com.clx.message.req.batch.ClinkBatchMessageReq;
import com.clx.performance.config.ClxMessageConfig;
import com.clx.performance.dao.OrderChildDao; import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.vehiclewarn.VehicleWarnChildDao; import com.clx.performance.dao.vehiclewarn.VehicleWarnChildDao;
import com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao; import com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao;
import com.clx.performance.dao.vehiclewarn.VehicleWarnUserDao;
import com.clx.performance.dto.gd.GdRouteDTO; import com.clx.performance.dto.gd.GdRouteDTO;
import com.clx.performance.enums.OrderChildEnum; import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.ResultEnum; import com.clx.performance.enums.ResultEnum;
...@@ -11,6 +17,7 @@ import com.clx.performance.model.OrderChild; ...@@ -11,6 +17,7 @@ import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.vehiclewarn.VehicleWarnChild; import com.clx.performance.model.vehiclewarn.VehicleWarnChild;
import com.clx.performance.model.vehiclewarn.VehicleWarnInfo; import com.clx.performance.model.vehiclewarn.VehicleWarnInfo;
import com.clx.performance.model.vehiclewarn.VehicleWarnUser;
import com.clx.performance.param.mq.vehiclewarn.VehicleWarnChildAddMqParam; import com.clx.performance.param.mq.vehiclewarn.VehicleWarnChildAddMqParam;
import com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnMqParam; import com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnMqParam;
import com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnNoticeMqParam; import com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnNoticeMqParam;
...@@ -25,8 +32,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -25,8 +32,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.*;
import java.util.Objects;
@Slf4j @Slf4j
@Service @Service
...@@ -42,6 +48,8 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ ...@@ -42,6 +48,8 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
@Autowired @Autowired
private OrderGoodsDao orderGoodsDao; private OrderGoodsDao orderGoodsDao;
@Autowired @Autowired
private VehicleWarnUserDao vehicleWarnUserDao;
@Autowired
private VehicleWarnSendAddressWarnService vehicleWarnSendAddressWarnService; private VehicleWarnSendAddressWarnService vehicleWarnSendAddressWarnService;
@Autowired @Autowired
private VehicleWarnLoadAndUnloadWarnService vehicleWarnLoadAndUnloadWarnService; private VehicleWarnLoadAndUnloadWarnService vehicleWarnLoadAndUnloadWarnService;
...@@ -49,7 +57,10 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ ...@@ -49,7 +57,10 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
private TruckTraceService truckTraceService; private TruckTraceService truckTraceService;
@Autowired @Autowired
private GdService gdService; private GdService gdService;
@Autowired
private ClxMessageConfig clxMessageConfig;
@Autowired
private ClxMessageOpenapiFeign clxMessageOpenapiFeign;
@Override @Override
public void orderChildAdd(VehicleWarnChildAddMqParam mq) { public void orderChildAdd(VehicleWarnChildAddMqParam mq) {
...@@ -113,8 +124,15 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ ...@@ -113,8 +124,15 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
public void truckWarnNotice(VehicleWarnTruckWarnNoticeMqParam mq) { public void truckWarnNotice(VehicleWarnTruckWarnNoticeMqParam mq) {
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findById(mq.getInfoId()).orElseThrow(ResultEnum.DATA_NOT_FIND); VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findById(mq.getInfoId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
// 发送短信 List<VehicleWarnUser> list = vehicleWarnUserDao.listAllEnable();
// 外呼
List<String> mobileList = new ArrayList<>();
if (vehicleWarnInfo.getWarnLevel() == 2){ //2级短信
sendSms(mobileList, vehicleWarnInfo.getWarnName(), vehicleWarnInfo.getTruckNo(), vehicleWarnInfo.getChildNo());
}
else if (vehicleWarnInfo.getWarnLevel() == 3) { //3级外呼
sendClink(mobileList, vehicleWarnInfo.getWarnName(), vehicleWarnInfo.getTruckNo(), vehicleWarnInfo.getChildNo());
}
} }
...@@ -140,4 +158,58 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ ...@@ -140,4 +158,58 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
return needTime; return needTime;
} }
/**
* 发送预警短信
*/
@Override
public String sendSms(List<String> mobileList, String warnName, String truckNo, String childNo) {
//触发${warnName}预警;车牌号${truckNo};运单${childNo};请尽快核实情况
AliBatchSmsMessageReq req = new AliBatchSmsMessageReq();
JSONObject jsonObject = new JSONObject();
jsonObject.set("warnName", warnName);
jsonObject.set("truckNo", truckNo);
jsonObject.set("childNo", childNo);
req.setTemplateCode(clxMessageConfig.getVehicleWarnTemplateCode());
req.setChannelId(clxMessageConfig.getChannelId());
req.setAppId(clxMessageConfig.getAppId().toString());
req.setMobileList(mobileList);
req.setContent(jsonObject.toString());
clxMessageOpenapiFeign.sendAliSmsBatch(req);
return UUID.randomUUID().toString();
}
/**
* 发送预警外呼
*/
@Override
public String sendClink(List<String> mobileList, String warnName, String truckNo, String childNo) {
//触发{指定预警名称}预警;车牌号{车牌号};运单{运单号};请尽快核实情况
ClinkBatchMessageReq req = new ClinkBatchMessageReq();
StringBuilder sb = new StringBuilder();
sb.append("触发");
sb.append(warnName);
sb.append("预警;车牌号");
sb.append(truckNo);
sb.append(";运单");
sb.append(childNo);
sb.append(";请尽快核实情况");
String content = sb.toString();
Map<String, String> params = new HashMap<>();
for (String mobile : mobileList) {
params.put(mobile, content);
}
req.setChannelId(clxMessageConfig.getChannelId());
req.setAppId(clxMessageConfig.getAppId().toString());
req.setParams(params);
clxMessageOpenapiFeign.sendClinkBatch(req);
return UUID.randomUUID().toString();
}
} }
...@@ -4,10 +4,16 @@ import com.clx.performance.param.mq.vehiclewarn.VehicleWarnChildAddMqParam; ...@@ -4,10 +4,16 @@ import com.clx.performance.param.mq.vehiclewarn.VehicleWarnChildAddMqParam;
import com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnMqParam; import com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnMqParam;
import com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnNoticeMqParam; import com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnNoticeMqParam;
import java.util.List;
public interface VehicleWarnMqHandlerService { public interface VehicleWarnMqHandlerService {
void orderChildAdd(VehicleWarnChildAddMqParam mq); void orderChildAdd(VehicleWarnChildAddMqParam mq);
void truckWarn(VehicleWarnTruckWarnMqParam mq); void truckWarn(VehicleWarnTruckWarnMqParam mq);
void truckWarnNotice(VehicleWarnTruckWarnNoticeMqParam mq); void truckWarnNotice(VehicleWarnTruckWarnNoticeMqParam mq);
String sendSms(List<String> mobileList, String warnName, String truckNo, String childNo);
String sendClink(List<String> mobileList, String warnName, String truckNo, String childNo);
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论