From e1bd542c1294377f9b8ed1fcf3eda0e0d947421c Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Fri, 28 Nov 2025 10:48:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8D=B0=E5=AE=9E=E4=BD=93=E6=9B=B4?= =?UTF-8?q?=E6=94=B9=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ductPrintVO.java => OrderItemPrintVO.java} | 12 +++--- .../mall/common/pojo/vo/OrderPrintVO.java | 25 ++++++++++++ .../common/pojo/vo/ShopStoreOrderPrintVO.java | 2 +- .../order/service/ShopOrderBaseService.java | 2 +- .../order/service/ShopOrderItemService.java | 4 +- .../impl/ShopOrderBaseServiceImpl.java | 20 +++++++--- .../impl/ShopOrderItemServiceImpl.java | 6 +-- .../impl/ShopOrderReturnServiceImpl.java | 30 +++++++------- .../impl/ShopStorePrinterServiceImpl.java | 4 +- .../mall/shop/store/utis/FeieUtil.java | 4 +- .../mapper/order/ShopOrderBaseMapper.xml | 32 +++++++++++++++ .../templates/refund_order_printer.txt | 39 ++++++++++++++++++- 12 files changed, 141 insertions(+), 39 deletions(-) rename mall-common/src/main/java/com/suisung/mall/common/pojo/vo/{ShopStoreOrderProductPrintVO.java => OrderItemPrintVO.java} (91%) create mode 100644 mall-common/src/main/java/com/suisung/mall/common/pojo/vo/OrderPrintVO.java diff --git a/mall-common/src/main/java/com/suisung/mall/common/pojo/vo/ShopStoreOrderProductPrintVO.java b/mall-common/src/main/java/com/suisung/mall/common/pojo/vo/OrderItemPrintVO.java similarity index 91% rename from mall-common/src/main/java/com/suisung/mall/common/pojo/vo/ShopStoreOrderProductPrintVO.java rename to mall-common/src/main/java/com/suisung/mall/common/pojo/vo/OrderItemPrintVO.java index 3bce33ac..883e2b20 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/pojo/vo/ShopStoreOrderProductPrintVO.java +++ b/mall-common/src/main/java/com/suisung/mall/common/pojo/vo/OrderItemPrintVO.java @@ -22,7 +22,7 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @ApiModel(value = "订单商品打印对象", description = "订单商品打印对象") -public class ShopStoreOrderProductPrintVO implements Serializable { +public class OrderItemPrintVO implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "商品名") private String item_name; @@ -47,11 +47,11 @@ public class ShopStoreOrderProductPrintVO implements Serializable { @ApiModelProperty(value = "金额额定字节长度") private Integer amount_blen; - public ShopStoreOrderProductPrintVO(String itemName, Integer orderItemQuantity, BigDecimal orderItemAmount, String productSn) { - new ShopStoreOrderProductPrintVO(itemName, orderItemQuantity, orderItemAmount, productSn, 18, 6, 8); + public OrderItemPrintVO(String itemName, Integer orderItemQuantity, BigDecimal orderItemAmount, String productSn) { + new OrderItemPrintVO(itemName, orderItemQuantity, orderItemAmount, productSn, 18, 6, 8); } - public ShopStoreOrderProductPrintVO(String itemName, Integer orderItemQuantity, BigDecimal orderItemAmount, String productSn, int titleBlen, int quantityBlen, int amountBlen) { + public OrderItemPrintVO(String itemName, Integer orderItemQuantity, BigDecimal orderItemAmount, String productSn, int titleBlen, int quantityBlen, int amountBlen) { this.item_name = itemName; this.order_item_quantity = orderItemQuantity; this.order_item_amount = orderItemAmount; @@ -90,8 +90,8 @@ public class ShopStoreOrderProductPrintVO implements Serializable { * * @return */ - public ShopStoreOrderProductPrintVO rebuild() { - return new ShopStoreOrderProductPrintVO(this.item_name, this.order_item_quantity, this.order_item_amount, this.product_sn, 18, 6, 8); + public OrderItemPrintVO rebuild() { + return new OrderItemPrintVO(this.item_name, this.order_item_quantity, this.order_item_amount, this.product_sn, 18, 6, 8); } /** diff --git a/mall-common/src/main/java/com/suisung/mall/common/pojo/vo/OrderPrintVO.java b/mall-common/src/main/java/com/suisung/mall/common/pojo/vo/OrderPrintVO.java new file mode 100644 index 00000000..774f1c6a --- /dev/null +++ b/mall-common/src/main/java/com/suisung/mall/common/pojo/vo/OrderPrintVO.java @@ -0,0 +1,25 @@ +package com.suisung.mall.common.pojo.vo; + +import io.swagger.annotations.ApiModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * 退货单打印对象 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@ApiModel(value = "(退款)订单主信息打印对象", description = "(退款)订单主信息打印对象") +public class OrderPrintVO implements Serializable { + private static final long serialVersionUID = 1L; + + +} diff --git a/mall-common/src/main/java/com/suisung/mall/common/pojo/vo/ShopStoreOrderPrintVO.java b/mall-common/src/main/java/com/suisung/mall/common/pojo/vo/ShopStoreOrderPrintVO.java index 7f251c49..b0b32204 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/pojo/vo/ShopStoreOrderPrintVO.java +++ b/mall-common/src/main/java/com/suisung/mall/common/pojo/vo/ShopStoreOrderPrintVO.java @@ -107,7 +107,7 @@ public class ShopStoreOrderPrintVO implements Serializable { // 订单商品详情信息 @ApiModelProperty(value = "订单商品详情信息") - private ShopStoreOrderProductPrintVO order_items; + private OrderItemPrintVO order_items; @ApiModelProperty(value = "状态:1-有效;2-无效;") private Integer status; diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderBaseService.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderBaseService.java index e60c32c2..41a68fe5 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderBaseService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderBaseService.java @@ -522,7 +522,7 @@ public interface ShopOrderBaseService extends IBaseService { * @param payState 支付状态,参考StateCode.ORDER_PAID_STATE_YES * @return */ - Map getOrderPrintInfo(Integer storeId, String orderId, Integer payState); + Map fetchOrderPrintInfo(Integer storeId, String orderId, Integer payState); /** diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderItemService.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderItemService.java index 67018791..2ae3cf47 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderItemService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderItemService.java @@ -2,7 +2,7 @@ package com.suisung.mall.shop.order.service; import com.suisung.mall.common.modules.order.ShopOrderItem; import com.suisung.mall.common.modules.pay.dto.ItemActivityInfoDTO; -import com.suisung.mall.common.pojo.vo.ShopStoreOrderProductPrintVO; +import com.suisung.mall.common.pojo.vo.OrderItemPrintVO; import com.suisung.mall.core.web.service.IBaseService; import java.util.List; @@ -30,5 +30,5 @@ public interface ShopOrderItemService extends IBaseService { * @param orderId * @return */ - List selectOrderItemPrintInfo(String orderId); + List selectOrderItemPrintInfo(String orderId); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java index 12d5cc15..8056b4ff 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java @@ -65,7 +65,7 @@ import com.suisung.mall.common.pojo.to.MsgTO; import com.suisung.mall.common.pojo.to.PayMoneyTO; import com.suisung.mall.common.pojo.to.PayPointTO; import com.suisung.mall.common.pojo.to.UserLevelTO; -import com.suisung.mall.common.pojo.vo.ShopStoreOrderProductPrintVO; +import com.suisung.mall.common.pojo.vo.OrderItemPrintVO; import com.suisung.mall.common.service.MessageService; import com.suisung.mall.common.service.impl.CommonService; import com.suisung.mall.common.utils.*; @@ -8765,8 +8765,16 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl shopStoreOrderProductPrintVOList = shopOrderItemService.selectOrderItemPrintInfo(orderId); - if (CollUtil.isEmpty(shopStoreOrderProductPrintVOList)) { + List orderItemPrintVOList = shopOrderItemService.selectOrderItemPrintInfo(orderId); + if (CollUtil.isEmpty(orderItemPrintVOList)) { return null; } // 重构实体类,处理标题,数量,价格适应长度 - List orderItems = new ArrayList<>(); - for (ShopStoreOrderProductPrintVO ent : shopStoreOrderProductPrintVOList) { + List orderItems = new ArrayList<>(); + for (OrderItemPrintVO ent : orderItemPrintVOList) { orderItems.add(ent.rebuild()); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderItemServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderItemServiceImpl.java index d2d4fd49..3ef2a698 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderItemServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderItemServiceImpl.java @@ -17,7 +17,7 @@ import com.suisung.mall.common.modules.order.ShopOrderDeliveryAddress; import com.suisung.mall.common.modules.order.ShopOrderInfo; import com.suisung.mall.common.modules.order.ShopOrderItem; import com.suisung.mall.common.modules.pay.dto.ItemActivityInfoDTO; -import com.suisung.mall.common.pojo.vo.ShopStoreOrderProductPrintVO; +import com.suisung.mall.common.pojo.vo.OrderItemPrintVO; import com.suisung.mall.core.web.service.impl.BaseServiceImpl; import com.suisung.mall.shop.activity.service.ShopActivityGroupbookingHistoryService; import com.suisung.mall.shop.order.mapper.ShopOrderItemMapper; @@ -226,7 +226,7 @@ public class ShopOrderItemServiceImpl extends BaseServiceImpl selectOrderItemPrintInfo(String orderId) { + public List selectOrderItemPrintInfo(String orderId) { // 输入验证 if (StrUtil.isBlank(orderId)) { return Collections.emptyList(); @@ -238,7 +238,7 @@ public class ShopOrderItemServiceImpl extends BaseServiceImpl { - ShopStoreOrderProductPrintVO vo = new ShopStoreOrderProductPrintVO(); + OrderItemPrintVO vo = new OrderItemPrintVO(); vo.setProduct_sn(Convert.toStr(map.get("product_sn"))); vo.setItem_name(Convert.toStr(map.get("item_name"))); vo.setOrder_item_amount(Convert.toBigDecimal(map.get("order_item_amount"))); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderReturnServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderReturnServiceImpl.java index c29626ae..e6425ea0 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderReturnServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderReturnServiceImpl.java @@ -1580,12 +1580,12 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl returnItemQueryWrapper = new QueryWrapper<>(); returnItemQueryWrapper.in("return_id", return_ids); List returnItems = orderReturnItemService.find(returnItemQueryWrapper); - QueryWrapper shopOrderReturnQueryWrapper= new QueryWrapper<>(); + QueryWrapper shopOrderReturnQueryWrapper = new QueryWrapper<>(); shopOrderReturnQueryWrapper.in("return_id", return_ids); - List shopOrderReturnList= shopOrderReturnService.find(shopOrderReturnQueryWrapper); - Map shopOrderReturnMap=new HashMap<>(); - if(!shopOrderReturnList.isEmpty()){ - shopOrderReturnMap=shopOrderReturnList.stream().collect(Collectors.toMap(ShopOrderReturn::getReturn_id, s->s.getUpdated_at().getTime())); + List shopOrderReturnList = shopOrderReturnService.find(shopOrderReturnQueryWrapper); + Map shopOrderReturnMap = new HashMap<>(); + if (!shopOrderReturnList.isEmpty()) { + shopOrderReturnMap = shopOrderReturnList.stream().collect(Collectors.toMap(ShopOrderReturn::getReturn_id, s -> s.getUpdated_at().getTime())); } if (CollUtil.isNotEmpty(returnItems)) { for (ShopOrderReturnItem returnItem : returnItems) { @@ -1637,17 +1637,17 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl stockDeltaMap = new HashMap<>(); String item_src_id = productItem.getItem_src_id(); - String mapKey=item_src_id + "-" + shopOrderItem.getOrder_id() + "-" + shopOrderItem.getOrder_item_unit_price(); - if(null!=shopOrderReturnMap.get(returnItem.getReturn_id())){ - mapKey=mapKey+"-" + shopOrderReturnMap.get(returnItem.getReturn_id());//时间 + String mapKey = item_src_id + "-" + shopOrderItem.getOrder_id() + "-" + shopOrderItem.getOrder_item_unit_price(); + if (null != shopOrderReturnMap.get(returnItem.getReturn_id())) { + mapKey = mapKey + "-" + shopOrderReturnMap.get(returnItem.getReturn_id());//时间 } stockDeltaMap.put(mapKey, returnNum); syncThirdDataService.incrProductStockToRedis(stockDeltaMap, returnItem.getReturn_item_subtotal()); - logger.info("退货返回给思迅,存入redis成功,item_src_id:{},订单号:{},数量:{},mapKey:{}", item_src_id, shopOrderItem.getOrder_id(), returnNum,mapKey); + logger.info("退货返回给思迅,存入redis成功,item_src_id:{},订单号:{},数量:{},mapKey:{}", item_src_id, shopOrderItem.getOrder_id(), returnNum, mapKey); } else { logger.warn("退货数量为空,无法增加库存,订单项ID: {}", orderItemId); } - }else {//没有出库也要做思迅出库,在客户端计算支付流水,防止部分数据有出无进 + } else {//没有出库也要做思迅出库,在客户端计算支付流水,防止部分数据有出无进 Long orderItemId = returnItem.getOrder_item_id(); ShopOrderItem shopOrderItem = shopOrderItemService.get(orderItemId); if (shopOrderItem == null) { @@ -1669,13 +1669,13 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl stockDeltaMap = new HashMap<>(); String item_src_id = productItem.getItem_src_id(); - String mapKey=item_src_id + "-" + shopOrderItem.getOrder_id() + "-" + shopOrderItem.getOrder_item_unit_price(); - if(null!=shopOrderReturnMap.get(returnItem.getReturn_id())){ - mapKey=mapKey+"-" + shopOrderReturnMap.get(returnItem.getReturn_id());//时间 + String mapKey = item_src_id + "-" + shopOrderItem.getOrder_id() + "-" + shopOrderItem.getOrder_item_unit_price(); + if (null != shopOrderReturnMap.get(returnItem.getReturn_id())) { + mapKey = mapKey + "-" + shopOrderReturnMap.get(returnItem.getReturn_id());//时间 } stockDeltaMap.put(mapKey, returnNum); syncThirdDataService.incrProductStockToRedis(stockDeltaMap, returnItem.getReturn_item_subtotal()); - logger.info("未出库退货返回给思迅,存入redis成功,item_src_id:{},订单号:{},数量:{},mapKey:{}", item_src_id, shopOrderItem.getOrder_id(), returnNum,mapKey); + logger.info("未出库退货返回给思迅,存入redis成功,item_src_id:{},订单号:{},数量:{},mapKey:{}", item_src_id, shopOrderItem.getOrder_id(), returnNum, mapKey); } } } @@ -2564,7 +2564,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl binding = shopOrderBaseService.getOrderPrintInfo(storeId, orderId, StateCode.ORDER_PAID_STATE_YES); + Map binding = shopOrderBaseService.fetchOrderPrintInfo(storeId, orderId, StateCode.ORDER_PAID_STATE_YES); if (binding == null) { logger.error("订单{}信息无法获取,无法打印小票。", orderId); return false; diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/utis/FeieUtil.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/utis/FeieUtil.java index 3f0a5ae2..756ca615 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/utis/FeieUtil.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/utis/FeieUtil.java @@ -6,7 +6,7 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.suisung.mall.common.pojo.res.FeiePrinterApiRes; -import com.suisung.mall.common.pojo.vo.ShopStoreOrderProductPrintVO; +import com.suisung.mall.common.pojo.vo.OrderItemPrintVO; import com.suisung.mall.common.utils.JsonUtil; import org.apache.commons.codec.digest.DigestUtils; import org.apache.http.HttpEntity; @@ -330,7 +330,7 @@ public class FeieUtil { * @param amountLen 金额字节数,最大8个字节 * @return */ - public String genProductStr(List productList, int titleLen, int numLen, int amountLen) { + public String genProductStr(List productList, int titleLen, int numLen, int amountLen) { String resultStr = ""; resultStr += "商品名称 数量 金额
"; resultStr += "--------------------------------
"; diff --git a/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml b/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml index b18acf8f..b0aed8ec 100644 --- a/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml +++ b/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml @@ -565,6 +565,38 @@ + + diff --git a/mall-shop/src/main/resources/templates/refund_order_printer.txt b/mall-shop/src/main/resources/templates/refund_order_printer.txt index 7a9e5bba..a5d13886 100644 --- a/mall-shop/src/main/resources/templates/refund_order_printer.txt +++ b/mall-shop/src/main/resources/templates/refund_order_printer.txt @@ -37,7 +37,44 @@ --------------------------------
操作员:李小明
-格式化模版: +############################################ + +修改后的模版 + +小发同城
+--------------------------------
+#00019232
+退款原因:不用敲门,放在门口旁边的外卖箱,打个电话告知送达就行,谢谢!!!
+配送时间:2024-10-25 14:00-14:30
+--------------------------------
+订单编号:ES20231026111444527685
+退单编号:ES20231026111444527685
+订单来源:微信小程序
+支付方式:微信支付
+配送来源:顺丰同城
+付款时间:2024-10-25 14:00:23
+申请退款:2024-10-27 14:05:23
+确认退款:2024-10-27 14:8:23
+--------------------------------
+******* 退款商品 ******
+--------------------------------
+可口可乐CocaC x110 8100.45
+ola经典美味汽水1.2
+5L/瓶
+6970448170051
+排骨约350g(默 1 150.13
+认砍小块)
+6970448170053
+--------------------------------
+实付金额:¥428.9元
+申请退款:¥32.7
+退款方式:仅退款
+商家审批备注:商家发货少了
+--------------------------------
+会员名称:张三
+会员手机:13128778765
+--------------------------------
+操作员:李小明
原模版: