【admin】新增# 1.新增领料通知和维修派单短信通知 2.优化导出送货表格内容
parent
f925be6248
commit
df3e68dba3
|
@ -0,0 +1,37 @@
|
||||||
|
package com.hcy.admin.config;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 读取系统配置类
|
||||||
|
* @author dabin
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Component
|
||||||
|
public class SmsConfig {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 维修派单通知
|
||||||
|
*/
|
||||||
|
public static Map<String,String> getRepairOrderNotice(){
|
||||||
|
Map<String,String> smsParam = new HashMap<>();
|
||||||
|
smsParam.put("smsTemplate","维修派单通知 派单时间:${sendOrderTime} 型号:${model} 功率:${power} 模块代码: ${moduleCode} 订单编号:${orderNo}");
|
||||||
|
smsParam.put("templateId","SMS_474980344");
|
||||||
|
return smsParam;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 领料申请通过通知
|
||||||
|
*/
|
||||||
|
public static Map<String,String> getMaterialRequestApprovalNotice(){
|
||||||
|
Map<String,String> smsParam = new HashMap<>();
|
||||||
|
smsParam.put("smsTemplate","领料申请已通过 模块:${module} 型号:${model} 领料日期:${date}");
|
||||||
|
smsParam.put("templateId","SMS_474810439");
|
||||||
|
return smsParam;
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,10 +6,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.github.yulichang.query.MPJQueryWrapper;
|
import com.github.yulichang.query.MPJQueryWrapper;
|
||||||
import com.hcy.admin.AdminThreadLocal;
|
import com.hcy.admin.AdminThreadLocal;
|
||||||
|
import com.hcy.admin.config.SmsConfig;
|
||||||
import com.hcy.admin.service.order.IRepairOrderAuditService;
|
import com.hcy.admin.service.order.IRepairOrderAuditService;
|
||||||
import com.hcy.admin.validate.common.PageParam;
|
import com.hcy.admin.validate.common.PageParam;
|
||||||
import com.hcy.admin.validate.order.RepairOrderAuditParam;
|
import com.hcy.admin.validate.order.RepairOrderAuditParam;
|
||||||
import com.hcy.admin.vo.order.*;
|
import com.hcy.admin.vo.order.*;
|
||||||
|
import com.hcy.common.constant.TimeConstant;
|
||||||
import com.hcy.common.core.PageResult;
|
import com.hcy.common.core.PageResult;
|
||||||
import com.hcy.common.dto.order.OrderSparePart;
|
import com.hcy.common.dto.order.OrderSparePart;
|
||||||
import com.hcy.common.dto.order.RepairOrderAuditDto;
|
import com.hcy.common.dto.order.RepairOrderAuditDto;
|
||||||
|
@ -30,6 +32,8 @@ import com.hcy.common.mapper.order.*;
|
||||||
import com.hcy.common.mapper.sparePart.SparePartMapper;
|
import com.hcy.common.mapper.sparePart.SparePartMapper;
|
||||||
import com.hcy.common.mapper.user.UserMapper;
|
import com.hcy.common.mapper.user.UserMapper;
|
||||||
import com.hcy.common.mapper.warehouse.WarehouseMapper;
|
import com.hcy.common.mapper.warehouse.WarehouseMapper;
|
||||||
|
import com.hcy.common.plugin.notice.engine.SmsNotice;
|
||||||
|
import com.hcy.common.utils.TimeUtil;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
@ -735,8 +739,18 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
|
||||||
Assert.notNull(model, "数据不存在!");
|
Assert.notNull(model, "数据不存在!");
|
||||||
|
|
||||||
model.setAuditStatus(RepairOrderAuditStatusEnum.TO_BE_CONFIRMED.getStatus());
|
model.setAuditStatus(RepairOrderAuditStatusEnum.TO_BE_CONFIRMED.getStatus());
|
||||||
|
|
||||||
repairOrderAuditMapper.updateById(model);
|
repairOrderAuditMapper.updateById(model);
|
||||||
|
|
||||||
|
User user = userMapper.findUserById(model.getApplicantId());
|
||||||
|
if(user != null){
|
||||||
|
RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(model.getRepairOrderId());
|
||||||
|
|
||||||
|
HashMap<String, String> param = new HashMap<>();
|
||||||
|
param.put("module",repairOrder.getModuleCode());
|
||||||
|
param.put("model",repairOrder.getModuleNumber());
|
||||||
|
param.put("date", TimeUtil.dateToString(model.getAuditTime(), TimeConstant.DATETIME_NO_SS_FORMAT));
|
||||||
|
new SmsNotice().send(user.getMobile(),param, SmsConfig.getMaterialRequestApprovalNotice());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.github.yulichang.query.MPJQueryWrapper;
|
import com.github.yulichang.query.MPJQueryWrapper;
|
||||||
import com.hcy.admin.AdminThreadLocal;
|
import com.hcy.admin.AdminThreadLocal;
|
||||||
|
import com.hcy.admin.config.SmsConfig;
|
||||||
import com.hcy.admin.service.order.DistributionOrderExcel;
|
import com.hcy.admin.service.order.DistributionOrderExcel;
|
||||||
import com.hcy.admin.service.order.IRepairOrderService;
|
import com.hcy.admin.service.order.IRepairOrderService;
|
||||||
import com.hcy.admin.service.order.RepairOrderExcel;
|
import com.hcy.admin.service.order.RepairOrderExcel;
|
||||||
|
@ -57,6 +58,7 @@ import com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper;
|
||||||
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
|
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
|
||||||
import com.hcy.common.mapper.user.UserMapper;
|
import com.hcy.common.mapper.user.UserMapper;
|
||||||
import com.hcy.common.mapper.warehouse.WarehouseMapper;
|
import com.hcy.common.mapper.warehouse.WarehouseMapper;
|
||||||
|
import com.hcy.common.plugin.notice.engine.SmsNotice;
|
||||||
import com.hcy.common.utils.ArrayUtil;
|
import com.hcy.common.utils.ArrayUtil;
|
||||||
import com.hcy.common.utils.StringUtil;
|
import com.hcy.common.utils.StringUtil;
|
||||||
import com.hcy.common.utils.TimeUtil;
|
import com.hcy.common.utils.TimeUtil;
|
||||||
|
@ -1114,6 +1116,12 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
||||||
|
|
||||||
Assert.notNull(modelList, "数据不存在!");
|
Assert.notNull(modelList, "数据不存在!");
|
||||||
|
|
||||||
|
Map<String, String> distMap = dictDataMapper.selectList(new LambdaQueryWrapper<DictData>()
|
||||||
|
.eq(DictData::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||||
|
.eq(DictData::getTypeId, 46))
|
||||||
|
.stream()
|
||||||
|
.collect(Collectors.toMap(DictData::getValue, DictData::getName));
|
||||||
|
|
||||||
for (RepairOrder repairOrder : modelList) {
|
for (RepairOrder repairOrder : modelList) {
|
||||||
|
|
||||||
//获取现维修员名称
|
//获取现维修员名称
|
||||||
|
@ -1161,7 +1169,30 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
||||||
repairOrderStepData.setRemark("原维修员:" + previousMaintenanceStaffName.getUsername() + ",现维修员:" + authAdmin1.getUsername());
|
repairOrderStepData.setRemark("原维修员:" + previousMaintenanceStaffName.getUsername() + ",现维修员:" + authAdmin1.getUsername());
|
||||||
repairOrderStepDataMapper.insert(repairOrderStepData);
|
repairOrderStepDataMapper.insert(repairOrderStepData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
repairOrder.setReceiverId(repairOrderParam.getReceiverId()); // 接单人id
|
||||||
|
Date date = new Date();
|
||||||
|
repairOrder.setReceiverTime(date);//receiverTime; // 接单时间
|
||||||
|
repairOrder.setOrderStatus(RepairOrderStatusEnum.AWAITING_REPAIR.getStatus()); // 工单状态为待维修
|
||||||
|
|
||||||
|
//拆机之前才能重新改派,否则需要去小程序操作退仓申请
|
||||||
|
if(repairOrder.getRepairNextStep() != RepairOrderStopEnum.DISMANTLE.getStatus()){
|
||||||
|
throw new OperateException("拆机之前才能重新改派,否则需要去小程序操作退仓申请!");
|
||||||
|
}
|
||||||
repairOrderMapper.updateById(repairOrder);
|
repairOrderMapper.updateById(repairOrder);
|
||||||
|
|
||||||
|
SystemAuthAdmin systemAuthAdmin = systemAuthAdminMapper.findSystemAuthAdminById(Math.toIntExact(repairOrderParam.getReceiverId()));
|
||||||
|
if(systemAuthAdmin != null){
|
||||||
|
ParentRepairOrder parentRepairOrder = parentRepairOrderMapper.selectById(repairOrder.getParentRepairOrderId());
|
||||||
|
HashMap<String, String> param = new HashMap<>();
|
||||||
|
param.put("sendOrderTime",TimeUtil.dateToString(date, TimeConstant.DATETIME_NO_SS_FORMAT));
|
||||||
|
param.put("model", repairOrder.getModuleNumber());
|
||||||
|
param.put("power",distMap.get(repairOrder.getModulePower().toString()));
|
||||||
|
param.put("moduleCode",repairOrder.getModuleCode());
|
||||||
|
param.put("orderNo",parentRepairOrder.getOrderNo());
|
||||||
|
new SmsNotice().send(systemAuthAdmin.getPhone(),param, SmsConfig.getRepairOrderNotice());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -351,9 +351,6 @@ public class RepairOrderShippingServiceImpl implements IRepairOrderShippingServi
|
||||||
.build();
|
.build();
|
||||||
//公共数据
|
//公共数据
|
||||||
OfferDetailEntity offerDetail = new OfferDetailEntity();
|
OfferDetailEntity offerDetail = new OfferDetailEntity();
|
||||||
//送货单
|
|
||||||
List<ReleaseRecordListExcel> releaseRecordListExcelList = new LinkedList<>();
|
|
||||||
Map<String,ReleaseRecordListExcel> releaseRecordListExcelMap = new HashMap<>();
|
|
||||||
int index = 1;
|
int index = 1;
|
||||||
|
|
||||||
//功率字典
|
//功率字典
|
||||||
|
@ -426,10 +423,41 @@ public class RepairOrderShippingServiceImpl implements IRepairOrderShippingServi
|
||||||
// offerDetail.setTotalQty(offerDetail.getTotalQty() + item.getTheQuantityShipped()); // 合计
|
// offerDetail.setTotalQty(offerDetail.getTotalQty() + item.getTheQuantityShipped()); // 合计
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
List<RepairOrderShipping> repairOrderShippingList = repairOrderShippingMapper.selectList(new LambdaQueryWrapper<RepairOrderShipping>()
|
||||||
|
.in(RepairOrderShipping::getId, params.getIds())
|
||||||
|
.orderByAsc(RepairOrderShipping::getDeliveryTime));
|
||||||
|
|
||||||
|
Map<String,Integer> cdqMap = new HashMap<>();
|
||||||
|
Map<String,Integer> orderNoMap = new HashMap<>();
|
||||||
|
|
||||||
|
Map<Long,List<ReleaseRecordListExcel>> repairOrderShippingMap = new LinkedHashMap<>();
|
||||||
|
for (RepairOrderShipping reItem : repairOrderShippingList) {
|
||||||
|
//送货单
|
||||||
|
List<ReleaseRecordListExcel> releaseRecordListExcelList = new LinkedList<>();
|
||||||
|
Map<String,ReleaseRecordListExcel> releaseRecordListExcelMap = new HashMap<>();
|
||||||
|
|
||||||
List<RepairOrder> repairOrders = repairOrderMapper.selectList(new LambdaQueryWrapper<RepairOrder>()
|
List<RepairOrder> repairOrders = repairOrderMapper.selectList(new LambdaQueryWrapper<RepairOrder>()
|
||||||
.in(RepairOrder::getShippingId, params.getIds())
|
.eq(RepairOrder::getShippingId, reItem.getId())
|
||||||
.orderByDesc(RepairOrder::getCreateTime));
|
.orderByDesc(RepairOrder::getCreateTime));
|
||||||
|
|
||||||
|
String orderNo = TimeUtil.dateToString(reItem.getDeliveryTime(), TimeConstant.ORDER_NO_TIME);
|
||||||
|
Integer orderNOIndex = orderNoMap.get(orderNo);
|
||||||
|
if(orderNOIndex == null){
|
||||||
|
orderNoMap.put(orderNo,1);
|
||||||
|
orderNo = orderNo + "00001";
|
||||||
|
}else{
|
||||||
|
int newIndex = orderNOIndex + 1;
|
||||||
|
int length = String.valueOf(newIndex).length();
|
||||||
|
StringBuilder newOrderNo = new StringBuilder(String.valueOf(newIndex));
|
||||||
|
if (length < 5) {
|
||||||
|
for (int i = 0; i < 5 - length; i++) {
|
||||||
|
newOrderNo.insert(0, "0");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
orderNoMap.put(orderNo,newIndex);
|
||||||
|
orderNo = orderNo + newOrderNo;
|
||||||
|
}
|
||||||
|
|
||||||
for (RepairOrder item : repairOrders) {
|
for (RepairOrder item : repairOrders) {
|
||||||
ReleaseRecordListExcel releaseRecordListExcel = null;
|
ReleaseRecordListExcel releaseRecordListExcel = null;
|
||||||
|
|
||||||
|
@ -452,25 +480,45 @@ public class RepairOrderShippingServiceImpl implements IRepairOrderShippingServi
|
||||||
//单位
|
//单位
|
||||||
releaseRecordListExcel.setUnit("PCS");
|
releaseRecordListExcel.setUnit("PCS");
|
||||||
//工单编号
|
//工单编号
|
||||||
ParentRepairOrder parentRepairOrder = parentRepairOrderMapper.selectOne(new LambdaQueryWrapper<ParentRepairOrder>()
|
releaseRecordListExcel.setOrderNo(orderNo);
|
||||||
.eq(ParentRepairOrder::getId, item.getParentRepairOrderId()));
|
|
||||||
releaseRecordListExcel.setOrderNo(parentRepairOrder.getOrderNo());
|
|
||||||
//型号
|
//型号
|
||||||
releaseRecordListExcel.setModuleNumber(item.getModuleNumber());
|
releaseRecordListExcel.setModuleNumber(item.getModuleNumber());
|
||||||
//功率
|
//功率
|
||||||
releaseRecordListExcel.setPower(distMap.get(item.getModulePower().toString()));
|
releaseRecordListExcel.setPower(distMap.get(item.getModulePower().toString()));
|
||||||
//订单数量
|
|
||||||
releaseRecordListExcel.setOrderAmount(1);
|
|
||||||
//本次交货数量
|
|
||||||
releaseRecordListExcel.setTheQuantityShipped(1);
|
|
||||||
|
|
||||||
//发货记录
|
ParentRepairOrder parentRepairOrder = parentRepairOrderMapper.selectOne(new LambdaQueryWrapper<ParentRepairOrder>()
|
||||||
RepairOrderShipping repairOrderShipping = repairOrderShippingMapper.selectOne(new LambdaQueryWrapper<RepairOrderShipping>()
|
.eq(ParentRepairOrder::getId, item.getParentRepairOrderId()));
|
||||||
.eq(RepairOrderShipping::getId, item.getShippingId()));
|
//查询同型号和规格的模块数量
|
||||||
|
Integer count = repairOrderMapper.selectCount(new LambdaQueryWrapper<RepairOrder>()
|
||||||
|
.eq(RepairOrder::getParentRepairOrderId,parentRepairOrder.getId())
|
||||||
|
.eq(RepairOrder::getModuleNumber, item.getModuleNumber())
|
||||||
|
.eq(RepairOrder::getModulePower, item.getModulePower()));
|
||||||
|
//订单数量
|
||||||
|
releaseRecordListExcel.setOrderAmount(count);
|
||||||
|
//单次送货批次有多少同型号和同规格的数量
|
||||||
|
Integer count1 = repairOrderMapper.selectCount(new LambdaQueryWrapper<RepairOrder>()
|
||||||
|
.eq(RepairOrder::getShippingId, reItem.getId())
|
||||||
|
.eq(RepairOrder::getParentRepairOrderId, parentRepairOrder.getId())
|
||||||
|
.eq(RepairOrder::getModuleNumber, item.getModuleNumber())
|
||||||
|
.eq(RepairOrder::getModulePower, item.getModulePower()));
|
||||||
|
//本次交货数量
|
||||||
|
releaseRecordListExcel.setTheQuantityShipped(count1);
|
||||||
|
|
||||||
//累计交货数量
|
//累计交货数量
|
||||||
releaseRecordListExcel.setAccumulativeQuantityShipped(repairOrderShipping.getAccumulativeQuantityShipped());
|
Integer accumulativeQuantity = cdqMap.get(key);
|
||||||
|
if(accumulativeQuantity != null){
|
||||||
|
int num = accumulativeQuantity + 1;
|
||||||
|
releaseRecordListExcel.setAccumulativeQuantityShipped(num);
|
||||||
|
cdqMap.put(key,num);
|
||||||
//未交数量
|
//未交数量
|
||||||
releaseRecordListExcel.setUndeliveredQuantity(repairOrderShipping.getUndeliveredQuantity());
|
releaseRecordListExcel.setUndeliveredQuantity(count - num);
|
||||||
|
}else{
|
||||||
|
cdqMap.put(key,1);
|
||||||
|
accumulativeQuantity = 1;
|
||||||
|
releaseRecordListExcel.setAccumulativeQuantityShipped(accumulativeQuantity);
|
||||||
|
//未交数量
|
||||||
|
releaseRecordListExcel.setUndeliveredQuantity(count - accumulativeQuantity);
|
||||||
|
}
|
||||||
|
|
||||||
//维修结论
|
//维修结论
|
||||||
if(item.getMaintenanceResult() != null){
|
if(item.getMaintenanceResult() != null){
|
||||||
|
@ -490,7 +538,7 @@ public class RepairOrderShippingServiceImpl implements IRepairOrderShippingServi
|
||||||
}
|
}
|
||||||
|
|
||||||
//送货日期
|
//送货日期
|
||||||
releaseRecordListExcel.setDeliveryTime(TimeUtil.dateToString(repairOrderShipping.getDeliveryTime(), TimeConstant.DATE_FORMAT));
|
releaseRecordListExcel.setDeliveryTime(TimeUtil.dateToString(reItem.getDeliveryTime(), TimeConstant.DATETIME_FORMAT));
|
||||||
releaseRecordListExcelList.add(releaseRecordListExcel);
|
releaseRecordListExcelList.add(releaseRecordListExcel);
|
||||||
releaseRecordListExcelMap.put(key,releaseRecordListExcel);
|
releaseRecordListExcelMap.put(key,releaseRecordListExcel);
|
||||||
index++; // 序号累计
|
index++; // 序号累计
|
||||||
|
@ -530,6 +578,14 @@ public class RepairOrderShippingServiceImpl implements IRepairOrderShippingServi
|
||||||
offerDetail.setTotalQty(offerDetail.getTotalQty() + 1); // 合计
|
offerDetail.setTotalQty(offerDetail.getTotalQty() + 1); // 合计
|
||||||
}
|
}
|
||||||
|
|
||||||
|
repairOrderShippingMap.put(reItem.getId(),releaseRecordListExcelList);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ReleaseRecordListExcel> releaseRecordListExcelList = new LinkedList<>();
|
||||||
|
for (Long id : repairOrderShippingMap.keySet()) {
|
||||||
|
releaseRecordListExcelList.addAll(repairOrderShippingMap.get(id));
|
||||||
|
}
|
||||||
|
|
||||||
WriteSheet sheet = EasyExcel.writerSheet(0).build();
|
WriteSheet sheet = EasyExcel.writerSheet(0).build();
|
||||||
writer.fill(offerDetail, sheet);
|
writer.fill(offerDetail, sheet);
|
||||||
writer.fill(releaseRecordListExcelList, fillConfig, sheet);
|
writer.fill(releaseRecordListExcelList, fillConfig, sheet);
|
||||||
|
|
Binary file not shown.
|
@ -6,4 +6,5 @@ public class TimeConstant {
|
||||||
public final static String DATETIME_NO_SS_FORMAT = "yyyy-MM-dd HH:mm";
|
public final static String DATETIME_NO_SS_FORMAT = "yyyy-MM-dd HH:mm";
|
||||||
public final static String DATE_FORMAT = "yyyy-MM-dd";
|
public final static String DATE_FORMAT = "yyyy-MM-dd";
|
||||||
public final static String MONTH_DAY_HOUR_MINUTE = "MM-dd HH:mm";
|
public final static String MONTH_DAY_HOUR_MINUTE = "MM-dd HH:mm";
|
||||||
|
public final static String ORDER_NO_TIME = "yyyyMMddHHmm";
|
||||||
}
|
}
|
|
@ -34,7 +34,7 @@ public class NoticeDriver {
|
||||||
// 短信通知
|
// 短信通知
|
||||||
Map<String, String> smsTemplate = ToolsUtil.jsonToMap(noticeSetting.getSmsNotice());
|
Map<String, String> smsTemplate = ToolsUtil.jsonToMap(noticeSetting.getSmsNotice());
|
||||||
if (StringUtil.isNotEmpty(smsTemplate.get("status")) && Integer.parseInt(smsTemplate.get("status")) == 1) {
|
if (StringUtil.isNotEmpty(smsTemplate.get("status")) && Integer.parseInt(smsTemplate.get("status")) == 1) {
|
||||||
(new SmsNotice()).send(config, params, smsTemplate, noticeSetting);
|
//(new SmsNotice()).send(config, params, smsTemplate, noticeSetting);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 小程序订阅通知 todo
|
// 小程序订阅通知 todo
|
||||||
|
|
|
@ -14,68 +14,47 @@ public class SmsNotice {
|
||||||
/**
|
/**
|
||||||
* 发送短信通知
|
* 发送短信通知
|
||||||
*
|
*
|
||||||
* @author fzr
|
|
||||||
* @param config 基础配置
|
|
||||||
* @param params 短信参数
|
* @param params 短信参数
|
||||||
* @param smsTemplate 短信模板
|
* @param configMap 短信配置
|
||||||
* @param noticeSetting 通知设置
|
|
||||||
*/
|
*/
|
||||||
public void send(Map<String, String> config, Map<String, String> params, Map<String, String> smsTemplate, NoticeSetting noticeSetting) {
|
public void send(String mobile, Map<String, String> params,Map<String,String> configMap) {
|
||||||
String mobile = config.getOrDefault("mobile", "");
|
// 判断手机号是否为空
|
||||||
String scene = config.getOrDefault("scene", "");
|
if (StringUtil.isNotEmpty(mobile)) {
|
||||||
|
new SmsDriver()
|
||||||
if (StringUtil.isNotEmpty(mobile) && StringUtil.isNotEmpty(scene)) {
|
|
||||||
(new SmsDriver())
|
|
||||||
.setMobile(mobile)
|
.setMobile(mobile)
|
||||||
.setTemplateCode(smsTemplate.getOrDefault("templateId", ""))
|
.setTemplateCode(configMap.getOrDefault("templateId", ""))
|
||||||
.setTemplateParam(this.getSmsParams(params, smsTemplate))
|
.setTemplateParam(this.getSmsParams(params, configMap.getOrDefault("smsTemplate","")))
|
||||||
.setSmsContent(this.getContent(params, smsTemplate))
|
|
||||||
.sendSms();
|
.sendSms();
|
||||||
|
|
||||||
// 1=业务通知, 2=验证码
|
|
||||||
if (noticeSetting.getType() == 2 && StringUtil.isNotNull(params.get("code"))) {
|
|
||||||
String code = params.get("code").toLowerCase();
|
|
||||||
RedisUtil.set(GlobalConfig.redisSmsCode+scene+":"+mobile, code);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取短信内容
|
* 获取短信内容
|
||||||
*
|
*
|
||||||
* @author fzr
|
|
||||||
* @param params 短信参数
|
* @param params 短信参数
|
||||||
* @param smsTemplate 短信模板
|
* @param smsTemplate 短信模板
|
||||||
* @return String 短信内容
|
* @return String 短信内容
|
||||||
*/
|
*/
|
||||||
private String getContent(Map<String, String> params, Map<String, String> smsTemplate) {
|
private String getContent(Map<String, String> params, String smsTemplate) {
|
||||||
String content = smsTemplate.getOrDefault("content", "");
|
|
||||||
for (Map.Entry<String, String> entry : params.entrySet()) {
|
for (Map.Entry<String, String> entry : params.entrySet()) {
|
||||||
String searchReplace = "\\$\\{" + entry.getKey() + "}";
|
String searchReplace = "\\$\\{" + entry.getKey() + "}";
|
||||||
content = content.replaceAll(searchReplace, entry.getValue());
|
smsTemplate = smsTemplate.replaceAll(searchReplace, entry.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
return content;
|
return smsTemplate;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 腾讯云参数处理
|
* 腾讯云参数处理
|
||||||
*
|
*
|
||||||
* @author fzr
|
|
||||||
* @return Map<String, String>
|
* @return Map<String, String>
|
||||||
*/
|
*/
|
||||||
private Map<String, String> getSmsParams(Map<String, String> params, Map<String, String> smsTemplate) {
|
private Map<String, String> getSmsParams(Map<String, String> params, String smsTemplate) {
|
||||||
String engine = ConfigUtil.get("sms", "default", "");
|
|
||||||
if (!engine.equals("tencent")) {
|
|
||||||
return params;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取内容变量
|
// 获取内容变量
|
||||||
List<String> arr = new LinkedList<>();
|
List<String> arr = new LinkedList<>();
|
||||||
String content = smsTemplate.getOrDefault("content", "");
|
|
||||||
for (Map.Entry<String, String> entry : params.entrySet()) {
|
for (Map.Entry<String, String> entry : params.entrySet()) {
|
||||||
String search = "\\$\\{" + entry.getKey() + "}";
|
String search = "{" + entry.getKey() + "}";
|
||||||
if (content.indexOf(search) != 1 && !arr.contains(entry.getKey())) {
|
if (smsTemplate.indexOf(search) != 1 && !arr.contains(entry.getKey())) {
|
||||||
arr.add(entry.getKey());
|
arr.add(entry.getKey());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -85,7 +64,7 @@ public class SmsNotice {
|
||||||
Map<Integer, String> arr2 = new LinkedHashMap<>();
|
Map<Integer, String> arr2 = new LinkedHashMap<>();
|
||||||
if (arr.size() > 0) {
|
if (arr.size() > 0) {
|
||||||
for (String v: arr) {
|
for (String v: arr) {
|
||||||
int k = content.indexOf(v);
|
int k = smsTemplate.indexOf(v);
|
||||||
arrIndex.add(k);
|
arrIndex.add(k);
|
||||||
arr2.put(k, v);
|
arr2.put(k, v);
|
||||||
}
|
}
|
||||||
|
@ -101,8 +80,8 @@ public class SmsNotice {
|
||||||
// 取变量对应值
|
// 取变量对应值
|
||||||
Map<String, String> arr4 = new LinkedHashMap<>();
|
Map<String, String> arr4 = new LinkedHashMap<>();
|
||||||
for (String v : arr3) {
|
for (String v : arr3) {
|
||||||
if (StringUtil.isNotNull(params.get(v))) {
|
if (StringUtil.isNotEmpty(params.get(v))) {
|
||||||
arr4.put(params.get(v), "");
|
arr4.put(v, params.get(v));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ public class OrderUtil {
|
||||||
} else {
|
} else {
|
||||||
int lastOrderNo = Integer.parseInt(orderNo.substring(8));
|
int lastOrderNo = Integer.parseInt(orderNo.substring(8));
|
||||||
int length = String.valueOf((lastOrderNo + 1)).length();
|
int length = String.valueOf((lastOrderNo + 1)).length();
|
||||||
StringBuilder newOrderNo = new StringBuilder(lastOrderNo + 1 + "");
|
StringBuilder newOrderNo = new StringBuilder(String.valueOf(lastOrderNo + 1));
|
||||||
|
|
||||||
//如果流水号长度小于6位,则在前面补0
|
//如果流水号长度小于6位,则在前面补0
|
||||||
if (length < 6) {
|
if (length < 6) {
|
||||||
|
|
Loading…
Reference in New Issue