diff --git a/admin/src/main/java/com/hcy/admin/config/SmsConfig.java b/admin/src/main/java/com/hcy/admin/config/SmsConfig.java new file mode 100644 index 0000000..76e52b6 --- /dev/null +++ b/admin/src/main/java/com/hcy/admin/config/SmsConfig.java @@ -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 getRepairOrderNotice(){ + Map smsParam = new HashMap<>(); + smsParam.put("smsTemplate","维修派单通知 派单时间:${sendOrderTime} 型号:${model} 功率:${power} 模块代码: ${moduleCode} 订单编号:${orderNo}"); + smsParam.put("templateId","SMS_474980344"); + return smsParam; + } + + /** + * 领料申请通过通知 + */ + public static Map getMaterialRequestApprovalNotice(){ + Map smsParam = new HashMap<>(); + smsParam.put("smsTemplate","领料申请已通过 模块:${module} 型号:${model} 领料日期:${date}"); + smsParam.put("templateId","SMS_474810439"); + return smsParam; + } +} diff --git a/admin/src/main/java/com/hcy/admin/service/order/impl/RepairOrderAuditServiceImpl.java b/admin/src/main/java/com/hcy/admin/service/order/impl/RepairOrderAuditServiceImpl.java index ea03a9f..921cdf5 100644 --- a/admin/src/main/java/com/hcy/admin/service/order/impl/RepairOrderAuditServiceImpl.java +++ b/admin/src/main/java/com/hcy/admin/service/order/impl/RepairOrderAuditServiceImpl.java @@ -6,10 +6,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.query.MPJQueryWrapper; import com.hcy.admin.AdminThreadLocal; +import com.hcy.admin.config.SmsConfig; import com.hcy.admin.service.order.IRepairOrderAuditService; import com.hcy.admin.validate.common.PageParam; import com.hcy.admin.validate.order.RepairOrderAuditParam; import com.hcy.admin.vo.order.*; +import com.hcy.common.constant.TimeConstant; import com.hcy.common.core.PageResult; import com.hcy.common.dto.order.OrderSparePart; 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.user.UserMapper; 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.stereotype.Service; import org.springframework.util.Assert; @@ -735,8 +739,18 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService { Assert.notNull(model, "数据不存在!"); model.setAuditStatus(RepairOrderAuditStatusEnum.TO_BE_CONFIRMED.getStatus()); - repairOrderAuditMapper.updateById(model); + + User user = userMapper.findUserById(model.getApplicantId()); + if(user != null){ + RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(model.getRepairOrderId()); + + HashMap 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()); + } } } diff --git a/admin/src/main/java/com/hcy/admin/service/order/impl/RepairOrderServiceImpl.java b/admin/src/main/java/com/hcy/admin/service/order/impl/RepairOrderServiceImpl.java index 11cb7e3..1c6f733 100644 --- a/admin/src/main/java/com/hcy/admin/service/order/impl/RepairOrderServiceImpl.java +++ b/admin/src/main/java/com/hcy/admin/service/order/impl/RepairOrderServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.query.MPJQueryWrapper; import com.hcy.admin.AdminThreadLocal; +import com.hcy.admin.config.SmsConfig; import com.hcy.admin.service.order.DistributionOrderExcel; import com.hcy.admin.service.order.IRepairOrderService; 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.user.UserMapper; 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.StringUtil; import com.hcy.common.utils.TimeUtil; @@ -1114,6 +1116,12 @@ public class RepairOrderServiceImpl implements IRepairOrderService { Assert.notNull(modelList, "数据不存在!"); + Map distMap = dictDataMapper.selectList(new LambdaQueryWrapper() + .eq(DictData::getIsDelete, GlobalConstant.NOT_DELETE) + .eq(DictData::getTypeId, 46)) + .stream() + .collect(Collectors.toMap(DictData::getValue, DictData::getName)); + for (RepairOrder repairOrder : modelList) { //获取现维修员名称 @@ -1161,7 +1169,30 @@ public class RepairOrderServiceImpl implements IRepairOrderService { repairOrderStepData.setRemark("原维修员:" + previousMaintenanceStaffName.getUsername() + ",现维修员:" + authAdmin1.getUsername()); 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); + + SystemAuthAdmin systemAuthAdmin = systemAuthAdminMapper.findSystemAuthAdminById(Math.toIntExact(repairOrderParam.getReceiverId())); + if(systemAuthAdmin != null){ + ParentRepairOrder parentRepairOrder = parentRepairOrderMapper.selectById(repairOrder.getParentRepairOrderId()); + HashMap 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()); + } + } } diff --git a/admin/src/main/java/com/hcy/admin/service/order/impl/RepairOrderShippingServiceImpl.java b/admin/src/main/java/com/hcy/admin/service/order/impl/RepairOrderShippingServiceImpl.java index 2e95a9f..fb37a8d 100644 --- a/admin/src/main/java/com/hcy/admin/service/order/impl/RepairOrderShippingServiceImpl.java +++ b/admin/src/main/java/com/hcy/admin/service/order/impl/RepairOrderShippingServiceImpl.java @@ -351,9 +351,6 @@ public class RepairOrderShippingServiceImpl implements IRepairOrderShippingServi .build(); //公共数据 OfferDetailEntity offerDetail = new OfferDetailEntity(); - //送货单 - List releaseRecordListExcelList = new LinkedList<>(); - Map releaseRecordListExcelMap = new HashMap<>(); int index = 1; //功率字典 @@ -426,108 +423,167 @@ public class RepairOrderShippingServiceImpl implements IRepairOrderShippingServi // offerDetail.setTotalQty(offerDetail.getTotalQty() + item.getTheQuantityShipped()); // 合计 // } - List repairOrders = repairOrderMapper.selectList(new LambdaQueryWrapper() - .in(RepairOrder::getShippingId, params.getIds()) - .orderByDesc(RepairOrder::getCreateTime)); + List repairOrderShippingList = repairOrderShippingMapper.selectList(new LambdaQueryWrapper() + .in(RepairOrderShipping::getId, params.getIds()) + .orderByAsc(RepairOrderShipping::getDeliveryTime)); - for (RepairOrder item : repairOrders) { - ReleaseRecordListExcel releaseRecordListExcel = null; + Map cdqMap = new HashMap<>(); + Map orderNoMap = new HashMap<>(); - String key = item.getModuleNumber() + item.getModulePower(); - if(releaseRecordListExcelMap.get(key) != null){ - releaseRecordListExcel = releaseRecordListExcelMap.get(key); - } + Map> repairOrderShippingMap = new LinkedHashMap<>(); + for (RepairOrderShipping reItem : repairOrderShippingList) { + //送货单 + List releaseRecordListExcelList = new LinkedList<>(); + Map releaseRecordListExcelMap = new HashMap<>(); - //客户名称 - Client client = clientMapper.selectOne(new LambdaQueryWrapper() - .eq(Client::getId, item.getClientId())); - if(client != null){ - offerDetail.setClientName(client.getClientName()); - } + List repairOrders = repairOrderMapper.selectList(new LambdaQueryWrapper() + .eq(RepairOrder::getShippingId, reItem.getId()) + .orderByDesc(RepairOrder::getCreateTime)); - if(releaseRecordListExcel == null){ - releaseRecordListExcel = new ReleaseRecordListExcel(); - //序号 - releaseRecordListExcel.setIndex(index); - //单位 - releaseRecordListExcel.setUnit("PCS"); - //工单编号 - ParentRepairOrder parentRepairOrder = parentRepairOrderMapper.selectOne(new LambdaQueryWrapper() - .eq(ParentRepairOrder::getId, item.getParentRepairOrderId())); - releaseRecordListExcel.setOrderNo(parentRepairOrder.getOrderNo()); - //型号 - releaseRecordListExcel.setModuleNumber(item.getModuleNumber()); - //功率 - releaseRecordListExcel.setPower(distMap.get(item.getModulePower().toString())); - //订单数量 - releaseRecordListExcel.setOrderAmount(1); - //本次交货数量 - releaseRecordListExcel.setTheQuantityShipped(1); - - //发货记录 - RepairOrderShipping repairOrderShipping = repairOrderShippingMapper.selectOne(new LambdaQueryWrapper() - .eq(RepairOrderShipping::getId, item.getShippingId())); - //累计交货数量 - releaseRecordListExcel.setAccumulativeQuantityShipped(repairOrderShipping.getAccumulativeQuantityShipped()); - //未交数量 - releaseRecordListExcel.setUndeliveredQuantity(repairOrderShipping.getUndeliveredQuantity()); - - //维修结论 - if(item.getMaintenanceResult() != null){ - String result; - if(item.getMaintenanceResult() == 0){ - result = "报废"; - releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.SCRAP.getDesc(),1); - }else{ - result = "OK"; - releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.OK.getDesc(),1); - } - releaseRecordListExcel.setRemark(1 + "台" + result); - }else{ - //备注 功率 + 本次交货数量 + 返修结论 例如:20KW,5台OK - releaseRecordListExcel.setRemark(1 + "台"); - releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.EMPTY.getDesc(),1); - } - - //送货日期 - releaseRecordListExcel.setDeliveryTime(TimeUtil.dateToString(repairOrderShipping.getDeliveryTime(), TimeConstant.DATE_FORMAT)); - releaseRecordListExcelList.add(releaseRecordListExcel); - releaseRecordListExcelMap.put(key,releaseRecordListExcel); - index++; // 序号累计 + 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{ - releaseRecordListExcel.setOrderAmount(releaseRecordListExcel.getOrderAmount() + 1); - releaseRecordListExcel.setTheQuantityShipped(releaseRecordListExcel.getTheQuantityShipped() + 1); - if(item.getMaintenanceResult() != null){ - String result; - if(item.getMaintenanceResult() == 0){ - result = "报废"; - releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.SCRAP.getDesc() - ,releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.SCRAP.getDesc()) == null ? 1 : releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.SCRAP.getDesc()) + 1); - }else{ - result = "OK"; - releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.OK.getDesc() - ,releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.OK.getDesc()) == null ? 1 : releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.OK.getDesc()) + 1); - } - releaseRecordListExcel.setRemark(1 + "台" + result); - }else{ - //备注 功率 + 本次交货数量 + 返修结论 例如:20KW,5台OK - releaseRecordListExcel.setRemark(1 + "台"); - releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.EMPTY.getDesc() - ,releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.EMPTY.getDesc()) == null ? 1 : releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.EMPTY.getDesc()) + 1); - } - StringBuilder builder = new StringBuilder(); - for (String flag : releaseRecordListExcel.getRemarkMap().keySet()) { - if(RepairOrderStatusEnum.SCRAP.getDesc().equals(flag)){ - builder.append(StringUtil.isEmpty(builder) ? releaseRecordListExcel.getRemarkMap().get(flag) + "台报废" : "," + releaseRecordListExcel.getRemarkMap().get(flag) + "台报废"); - }else if(RepairOrderStatusEnum.OK.getDesc().equals(flag)){ - builder.append(StringUtil.isEmpty(builder) ? releaseRecordListExcel.getRemarkMap().get(flag) + "台OK" : "," + releaseRecordListExcel.getRemarkMap().get(flag) + "台OK"); - }else if(RepairOrderStatusEnum.EMPTY.getDesc().equals(flag)){ - builder.append(StringUtil.isEmpty(builder) ? releaseRecordListExcel.getRemarkMap().get(flag) + "台" : "," + releaseRecordListExcel.getRemarkMap().get(flag) + "台"); + 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"); } } - releaseRecordListExcel.setRemark(builder.toString()); + orderNoMap.put(orderNo,newIndex); + orderNo = orderNo + newOrderNo; } - offerDetail.setTotalQty(offerDetail.getTotalQty() + 1); // 合计 + + for (RepairOrder item : repairOrders) { + ReleaseRecordListExcel releaseRecordListExcel = null; + + String key = item.getModuleNumber() + item.getModulePower(); + if(releaseRecordListExcelMap.get(key) != null){ + releaseRecordListExcel = releaseRecordListExcelMap.get(key); + } + + //客户名称 + Client client = clientMapper.selectOne(new LambdaQueryWrapper() + .eq(Client::getId, item.getClientId())); + if(client != null){ + offerDetail.setClientName(client.getClientName()); + } + + if(releaseRecordListExcel == null){ + releaseRecordListExcel = new ReleaseRecordListExcel(); + //序号 + releaseRecordListExcel.setIndex(index); + //单位 + releaseRecordListExcel.setUnit("PCS"); + //工单编号 + releaseRecordListExcel.setOrderNo(orderNo); + //型号 + releaseRecordListExcel.setModuleNumber(item.getModuleNumber()); + //功率 + releaseRecordListExcel.setPower(distMap.get(item.getModulePower().toString())); + + ParentRepairOrder parentRepairOrder = parentRepairOrderMapper.selectOne(new LambdaQueryWrapper() + .eq(ParentRepairOrder::getId, item.getParentRepairOrderId())); + //查询同型号和规格的模块数量 + Integer count = repairOrderMapper.selectCount(new LambdaQueryWrapper() + .eq(RepairOrder::getParentRepairOrderId,parentRepairOrder.getId()) + .eq(RepairOrder::getModuleNumber, item.getModuleNumber()) + .eq(RepairOrder::getModulePower, item.getModulePower())); + //订单数量 + releaseRecordListExcel.setOrderAmount(count); + //单次送货批次有多少同型号和同规格的数量 + Integer count1 = repairOrderMapper.selectCount(new LambdaQueryWrapper() + .eq(RepairOrder::getShippingId, reItem.getId()) + .eq(RepairOrder::getParentRepairOrderId, parentRepairOrder.getId()) + .eq(RepairOrder::getModuleNumber, item.getModuleNumber()) + .eq(RepairOrder::getModulePower, item.getModulePower())); + //本次交货数量 + releaseRecordListExcel.setTheQuantityShipped(count1); + + //累计交货数量 + Integer accumulativeQuantity = cdqMap.get(key); + if(accumulativeQuantity != null){ + int num = accumulativeQuantity + 1; + releaseRecordListExcel.setAccumulativeQuantityShipped(num); + cdqMap.put(key,num); + //未交数量 + releaseRecordListExcel.setUndeliveredQuantity(count - num); + }else{ + cdqMap.put(key,1); + accumulativeQuantity = 1; + releaseRecordListExcel.setAccumulativeQuantityShipped(accumulativeQuantity); + //未交数量 + releaseRecordListExcel.setUndeliveredQuantity(count - accumulativeQuantity); + } + + //维修结论 + if(item.getMaintenanceResult() != null){ + String result; + if(item.getMaintenanceResult() == 0){ + result = "报废"; + releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.SCRAP.getDesc(),1); + }else{ + result = "OK"; + releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.OK.getDesc(),1); + } + releaseRecordListExcel.setRemark(1 + "台" + result); + }else{ + //备注 功率 + 本次交货数量 + 返修结论 例如:20KW,5台OK + releaseRecordListExcel.setRemark(1 + "台"); + releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.EMPTY.getDesc(),1); + } + + //送货日期 + releaseRecordListExcel.setDeliveryTime(TimeUtil.dateToString(reItem.getDeliveryTime(), TimeConstant.DATETIME_FORMAT)); + releaseRecordListExcelList.add(releaseRecordListExcel); + releaseRecordListExcelMap.put(key,releaseRecordListExcel); + index++; // 序号累计 + }else{ + releaseRecordListExcel.setOrderAmount(releaseRecordListExcel.getOrderAmount() + 1); + releaseRecordListExcel.setTheQuantityShipped(releaseRecordListExcel.getTheQuantityShipped() + 1); + if(item.getMaintenanceResult() != null){ + String result; + if(item.getMaintenanceResult() == 0){ + result = "报废"; + releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.SCRAP.getDesc() + ,releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.SCRAP.getDesc()) == null ? 1 : releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.SCRAP.getDesc()) + 1); + }else{ + result = "OK"; + releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.OK.getDesc() + ,releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.OK.getDesc()) == null ? 1 : releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.OK.getDesc()) + 1); + } + releaseRecordListExcel.setRemark(1 + "台" + result); + }else{ + //备注 功率 + 本次交货数量 + 返修结论 例如:20KW,5台OK + releaseRecordListExcel.setRemark(1 + "台"); + releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.EMPTY.getDesc() + ,releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.EMPTY.getDesc()) == null ? 1 : releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.EMPTY.getDesc()) + 1); + } + StringBuilder builder = new StringBuilder(); + for (String flag : releaseRecordListExcel.getRemarkMap().keySet()) { + if(RepairOrderStatusEnum.SCRAP.getDesc().equals(flag)){ + builder.append(StringUtil.isEmpty(builder) ? releaseRecordListExcel.getRemarkMap().get(flag) + "台报废" : "," + releaseRecordListExcel.getRemarkMap().get(flag) + "台报废"); + }else if(RepairOrderStatusEnum.OK.getDesc().equals(flag)){ + builder.append(StringUtil.isEmpty(builder) ? releaseRecordListExcel.getRemarkMap().get(flag) + "台OK" : "," + releaseRecordListExcel.getRemarkMap().get(flag) + "台OK"); + }else if(RepairOrderStatusEnum.EMPTY.getDesc().equals(flag)){ + builder.append(StringUtil.isEmpty(builder) ? releaseRecordListExcel.getRemarkMap().get(flag) + "台" : "," + releaseRecordListExcel.getRemarkMap().get(flag) + "台"); + } + } + releaseRecordListExcel.setRemark(builder.toString()); + } + offerDetail.setTotalQty(offerDetail.getTotalQty() + 1); // 合计 + } + + repairOrderShippingMap.put(reItem.getId(),releaseRecordListExcelList); + } + + List releaseRecordListExcelList = new LinkedList<>(); + for (Long id : repairOrderShippingMap.keySet()) { + releaseRecordListExcelList.addAll(repairOrderShippingMap.get(id)); } WriteSheet sheet = EasyExcel.writerSheet(0).build(); diff --git a/admin/src/main/resources/templates/excel/deliveryNote.xlsx b/admin/src/main/resources/templates/excel/deliveryNote.xlsx index cf07a0d..b328089 100644 Binary files a/admin/src/main/resources/templates/excel/deliveryNote.xlsx and b/admin/src/main/resources/templates/excel/deliveryNote.xlsx differ diff --git a/common/src/main/java/com/hcy/common/constant/TimeConstant.java b/common/src/main/java/com/hcy/common/constant/TimeConstant.java index dccc895..9a9c9cc 100644 --- a/common/src/main/java/com/hcy/common/constant/TimeConstant.java +++ b/common/src/main/java/com/hcy/common/constant/TimeConstant.java @@ -6,4 +6,5 @@ public class TimeConstant { 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 MONTH_DAY_HOUR_MINUTE = "MM-dd HH:mm"; + public final static String ORDER_NO_TIME = "yyyyMMddHHmm"; } \ No newline at end of file diff --git a/common/src/main/java/com/hcy/common/plugin/notice/NoticeDriver.java b/common/src/main/java/com/hcy/common/plugin/notice/NoticeDriver.java index 20a7c71..40b6b62 100644 --- a/common/src/main/java/com/hcy/common/plugin/notice/NoticeDriver.java +++ b/common/src/main/java/com/hcy/common/plugin/notice/NoticeDriver.java @@ -34,7 +34,7 @@ public class NoticeDriver { // 短信通知 Map smsTemplate = ToolsUtil.jsonToMap(noticeSetting.getSmsNotice()); 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 diff --git a/common/src/main/java/com/hcy/common/plugin/notice/engine/SmsNotice.java b/common/src/main/java/com/hcy/common/plugin/notice/engine/SmsNotice.java index 1669bc6..1dac1c0 100644 --- a/common/src/main/java/com/hcy/common/plugin/notice/engine/SmsNotice.java +++ b/common/src/main/java/com/hcy/common/plugin/notice/engine/SmsNotice.java @@ -14,70 +14,49 @@ public class SmsNotice { /** * 发送短信通知 * - * @author fzr - * @param config 基础配置 * @param params 短信参数 - * @param smsTemplate 短信模板 - * @param noticeSetting 通知设置 + * @param configMap 短信配置 */ - public void send(Map config, Map params, Map smsTemplate, NoticeSetting noticeSetting) { - String mobile = config.getOrDefault("mobile", ""); - String scene = config.getOrDefault("scene", ""); - - if (StringUtil.isNotEmpty(mobile) && StringUtil.isNotEmpty(scene)) { - (new SmsDriver()) + public void send(String mobile, Map params,Map configMap) { + // 判断手机号是否为空 + if (StringUtil.isNotEmpty(mobile)) { + new SmsDriver() .setMobile(mobile) - .setTemplateCode(smsTemplate.getOrDefault("templateId", "")) - .setTemplateParam(this.getSmsParams(params, smsTemplate)) - .setSmsContent(this.getContent(params, smsTemplate)) + .setTemplateCode(configMap.getOrDefault("templateId", "")) + .setTemplateParam(this.getSmsParams(params, configMap.getOrDefault("smsTemplate",""))) .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 smsTemplate 短信模板 * @return String 短信内容 */ - private String getContent(Map params, Map smsTemplate) { - String content = smsTemplate.getOrDefault("content", ""); + private String getContent(Map params, String smsTemplate) { for (Map.Entry entry : params.entrySet()) { String searchReplace = "\\$\\{" + entry.getKey() + "}"; - content = content.replaceAll(searchReplace, entry.getValue()); + smsTemplate = smsTemplate.replaceAll(searchReplace, entry.getValue()); } - return content; + return smsTemplate; } /** * 腾讯云参数处理 * - * @author fzr * @return Map */ - private Map getSmsParams(Map params, Map smsTemplate) { - String engine = ConfigUtil.get("sms", "default", ""); - if (!engine.equals("tencent")) { - return params; - } - + private Map getSmsParams(Map params, String smsTemplate) { // 获取内容变量 List arr = new LinkedList<>(); - String content = smsTemplate.getOrDefault("content", ""); for (Map.Entry entry : params.entrySet()) { - String search = "\\$\\{" + entry.getKey() + "}"; - if (content.indexOf(search) != 1 && !arr.contains(entry.getKey())) { - arr.add(entry.getKey()); - } + String search = "{" + entry.getKey() + "}"; + if (smsTemplate.indexOf(search) != 1 && !arr.contains(entry.getKey())) { + arr.add(entry.getKey()); + } } // 获取变量名称 @@ -85,7 +64,7 @@ public class SmsNotice { Map arr2 = new LinkedHashMap<>(); if (arr.size() > 0) { for (String v: arr) { - int k = content.indexOf(v); + int k = smsTemplate.indexOf(v); arrIndex.add(k); arr2.put(k, v); } @@ -101,8 +80,8 @@ public class SmsNotice { // 取变量对应值 Map arr4 = new LinkedHashMap<>(); for (String v : arr3) { - if (StringUtil.isNotNull(params.get(v))) { - arr4.put(params.get(v), ""); + if (StringUtil.isNotEmpty(params.get(v))) { + arr4.put(v, params.get(v)); } } diff --git a/common/src/main/java/com/hcy/common/utils/OrderUtil.java b/common/src/main/java/com/hcy/common/utils/OrderUtil.java index c336bd5..d88ffc2 100644 --- a/common/src/main/java/com/hcy/common/utils/OrderUtil.java +++ b/common/src/main/java/com/hcy/common/utils/OrderUtil.java @@ -14,7 +14,7 @@ public class OrderUtil { } else { int lastOrderNo = Integer.parseInt(orderNo.substring(8)); int length = String.valueOf((lastOrderNo + 1)).length(); - StringBuilder newOrderNo = new StringBuilder(lastOrderNo + 1 + ""); + StringBuilder newOrderNo = new StringBuilder(String.valueOf(lastOrderNo + 1)); //如果流水号长度小于6位,则在前面补0 if (length < 6) {