From df3e68dba3d07dd232c6d208592b41455ad98f84 Mon Sep 17 00:00:00 2001 From: JaxCen <1694546944@qq.com> Date: Thu, 24 Oct 2024 01:51:47 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90admin=E3=80=91=E6=96=B0=E5=A2=9E#=201.?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=A2=86=E6=96=99=E9=80=9A=E7=9F=A5=E5=92=8C?= =?UTF-8?q?=E7=BB=B4=E4=BF=AE=E6=B4=BE=E5=8D=95=E7=9F=AD=E4=BF=A1=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=20=202.=E4=BC=98=E5=8C=96=E5=AF=BC=E5=87=BA=E9=80=81?= =?UTF-8?q?=E8=B4=A7=E8=A1=A8=E6=A0=BC=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hcy/admin/config/SmsConfig.java | 37 +++ .../impl/RepairOrderAuditServiceImpl.java | 16 +- .../order/impl/RepairOrderServiceImpl.java | 31 +++ .../impl/RepairOrderShippingServiceImpl.java | 250 +++++++++++------- .../templates/excel/deliveryNote.xlsx | Bin 11563 -> 11502 bytes .../com/hcy/common/constant/TimeConstant.java | 1 + .../common/plugin/notice/NoticeDriver.java | 2 +- .../plugin/notice/engine/SmsNotice.java | 57 ++-- .../java/com/hcy/common/utils/OrderUtil.java | 2 +- 9 files changed, 257 insertions(+), 139 deletions(-) create mode 100644 admin/src/main/java/com/hcy/admin/config/SmsConfig.java 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 cf07a0dde84f1cd07d322a6313793151be89b641..b3280892f69cee17153fb91ff1aa68257340bde8 100644 GIT binary patch delta 5965 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 NG$#>8DBEA&{{Zq8MB)Gd 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) {