diff --git a/mall-common/src/main/java/com/suisung/mall/common/api/StateCode.java b/mall-common/src/main/java/com/suisung/mall/common/api/StateCode.java index 5b62c1d4..d36fcddb 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/api/StateCode.java +++ b/mall-common/src/main/java/com/suisung/mall/common/api/StateCode.java @@ -103,9 +103,9 @@ public class StateCode { public static final int PRODUCT_VERIFY_WAITING = 3002; //审核中 public static final int ORDER_STATE_WAIT_PAY = 2010; //待付款 - 虚拟映射 - public static final int ORDER_STATE_WAIT_PAID = 2016; //已经付款 - 虚拟映射 public static final int ORDER_STATE_WAIT_REVIEW = 2011; //待订单审核 public static final int ORDER_STATE_WAIT_FINANCE_REVIEW = 2013; //待财务审核 + public static final int ORDER_STATE_WAIT_PAID = 2016; //已经付款 - 虚拟映射 public static final int ORDER_STATE_PICKING = 2020; //待配货 public static final int ORDER_STATE_WAIT_SHIPPING = 2030; //待发货 public static final int ORDER_STATE_SHIPPED = 2040; //已发货 diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/order/ShopOrderInfo.java b/mall-common/src/main/java/com/suisung/mall/common/modules/order/ShopOrderInfo.java index 80956adc..31856f29 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/order/ShopOrderInfo.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/order/ShopOrderInfo.java @@ -195,4 +195,6 @@ public class ShopOrderInfo implements Serializable { @ApiModelProperty(value = "服务类型(ENUM):1001-到店服务;1002-上门服务;1003-试驾模板; 针对虚拟产品") private Integer order_valid_type; + @ApiModelProperty(value = "取单号,根据每个店铺每天已支付的订单累加+1") + private Long order_pickup_num; } diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStorePrinterLog.java b/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStorePrinterLog.java index 0220fec2..efa3884c 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStorePrinterLog.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStorePrinterLog.java @@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import java.io.Serializable; @@ -21,14 +23,26 @@ import java.util.Date; * @since 2024-10-28 */ @Data +@AllArgsConstructor +@NoArgsConstructor @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) -@TableName("shop_store_printer") -@ApiModel(value = "ShopStorePrinter对象", description = "门店打票机表") +@TableName("shop_store_printer_log") +@ApiModel(value = "ShopStorePrinterLog", description = "门店打票机打印日志表") public class ShopStorePrinterLog implements Serializable { private static final long serialVersionUID = 1L; + public ShopStorePrinterLog(Integer category,Integer storeId,String orderId,Long templateId,String templateValue, String templateData,String printContent) { + this.category = category; + this.store_id = storeId; + this.order_id = orderId; + this.template_id = templateId; + this.template_data = templateData; + this.template_value = templateValue; + this.print_content = printContent; + } + @ApiModelProperty(value = "日志自增ID") @TableId(value = "log_id", type = IdType.INPUT) private Long log_id; diff --git a/mall-common/target/classes/com/suisung/mall/common/api/StateCode.class b/mall-common/target/classes/com/suisung/mall/common/api/StateCode.class index c890d6c7..c48e7fda 100644 Binary files a/mall-common/target/classes/com/suisung/mall/common/api/StateCode.class and b/mall-common/target/classes/com/suisung/mall/common/api/StateCode.class differ diff --git a/mall-common/target/classes/com/suisung/mall/common/modules/order/ShopOrderInfo.class b/mall-common/target/classes/com/suisung/mall/common/modules/order/ShopOrderInfo.class index ec81eaf0..0802a30f 100644 Binary files a/mall-common/target/classes/com/suisung/mall/common/modules/order/ShopOrderInfo.class and b/mall-common/target/classes/com/suisung/mall/common/modules/order/ShopOrderInfo.class differ diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/listener/OrderPayedListener.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/listener/OrderPayedListener.java index 716d1741..fcfd106f 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/listener/OrderPayedListener.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/listener/OrderPayedListener.java @@ -64,8 +64,14 @@ public class OrderPayedListener { flag = shopOrderBaseService.setPaidYes(Collections.singletonList(orderId)); } - // 小票打印 + // 生成取单号和打印小票 if(flag) { + ShopOrderInfo orderInfo = new ShopOrderInfo(); + orderInfo.setOrder_id(orderId); + // 生成取单号,写入order_info + orderInfo.setOrder_pickup_num(shopOrderInfoService.genTodayPickupNum(orderInfoOld.getStore_id())); + shopOrderInfoService.edit(orderInfo); + // 订单状态处理成功之后,打印小票 shopStorePrinterService.printShopStoreOrder(orderId); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderInfoService.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderInfoService.java index 9b89becf..cf0564cc 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderInfoService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderInfoService.java @@ -24,4 +24,11 @@ public interface ShopOrderInfoService extends IBaseService { List getAutoFinishOrderId(); + /** + * 获取店铺今日的取货单 + * @param storeId + * @return + */ + Long genTodayPickupNum(Integer storeId); + } 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 12471238..a7d2d4a4 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 @@ -342,7 +342,6 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl orderItems = shopOrderItemService.selectOrderItemPrintInfo(orderId); - if(CollUtil.isEmpty(orderItems)){ + if (CollUtil.isEmpty(orderItems)) { return null; } - m.put("seller_message","");//卖家留言 - m.put("order_items",orderItems);//订单商品列表 - m.put("order_items_count",orderItems.size());//商品数量 + m.put("order_pickup_num_str", String.format("%07d", m.get("order_pickup_num"))); // 取单号左补0,共7位数 + m.put("seller_message", "");//卖家留言 + m.put("order_items", orderItems);//订单商品列表 + m.put("order_items_count", orderItems.size());//商品数量 return m; } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderInfoServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderInfoServiceImpl.java index 57fe363c..ee1a93c8 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderInfoServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderInfoServiceImpl.java @@ -29,6 +29,9 @@ import com.suisung.mall.shop.plantform.service.ShopPlantformFeedbackService; import com.suisung.mall.shop.product.service.ShopProductBaseService; import com.suisung.mall.shop.product.service.ShopProductCommentService; import com.suisung.mall.shop.store.service.ShopStoreBaseService; +import com.sun.jna.platform.win32.WinDef; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.context.request.RequestContextHolder; @@ -94,9 +97,12 @@ public class ShopOrderInfoServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("store_id", storeId); + queryWrapper.ge("order_time", calendar.getTimeInMillis()); + queryWrapper.lt("order_time", calendar.getTimeInMillis() + 86400000); // 加24小时的毫秒值 + queryWrapper.ge("order_state_id", StateCode.ORDER_STATE_WAIT_PAID); + + long cnt = count(queryWrapper); + return cnt <= 0 ? 1L : cnt + 1; + } catch (Exception e) { + logger.error(e.getMessage(), e); + return 1L; + } + } + // todo 优化多次远程查询 private Map dashboardPlantform() { List order_state = Arrays.asList( diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterServiceImpl.java index 0feab428..385326cb 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterServiceImpl.java @@ -21,6 +21,7 @@ import com.suisung.mall.common.utils.FreeMakerUtils; import com.suisung.mall.common.utils.JsonUtil; import com.suisung.mall.core.web.service.impl.BaseServiceImpl; import com.suisung.mall.shop.order.service.ShopOrderBaseService; +import com.suisung.mall.shop.order.service.impl.ShopOrderInfoServiceImpl; import com.suisung.mall.shop.store.mapper.ShopStorePrinterMapper; import com.suisung.mall.shop.store.service.ShopStorePrinterLogService; import com.suisung.mall.shop.store.service.ShopStorePrinterService; @@ -55,6 +56,8 @@ public class ShopStorePrinterServiceImpl extends BaseServiceImpl shopStorePrinterPageList(String keyword, Integer pageNum, Integer pageSize) { @@ -331,7 +334,9 @@ public class ShopStorePrinterServiceImpl extends BaseServiceImpl) binding.get("order_items"), 18, 6, 8); - if(StrUtil.isBlank(order_items_tmpl)) { + if (StrUtil.isBlank(order_items_tmpl)) { logger.info("订单{}详情列表模版渲染异常,无法打印小票。", orderId); return false; } @@ -383,14 +388,7 @@ public class ShopStorePrinterServiceImpl extends BaseServiceImpl" + otherStr; } else { -// List list = segmentString(title, titleLen); -// int cnt = list.size(); -// if (cnt <= 0) { -// resultStr += StrUtil.repeat(' ', titleLen - 1) + otherStr; -// } -// -// for (i = 0; i < cnt; i++) { -// resultStr += i == 0 ? list.get(i) + otherStr : list.get(i) + "
"; -// } - - // 标题大于指定的长度(字节数),需要截断再组合 List list = containEn(title) ? getStrList(title, titleLen) : getStrList(title, titleLen / 2); @@ -400,13 +389,15 @@ public class FeieUtil { * 分析标题能分几行显示, * * @param str - * @param wordCnt 英文数字或中文的字数 + * @param wordCnt 英文数字或中文的字数,中文2个字节,英文数字1个字节 * @return */ public List getStrList(String str, int wordCnt) { - // 分几行? - int linesCnt = str.length() / wordCnt; - if (str.length() % wordCnt != 0) { + // 计算标题 wordCnt个字能分多少行? + int len = str.length(); +// int len =asciiByteLen(str); + int linesCnt = len / wordCnt; + if (len % wordCnt != 0) { linesCnt += 1; } @@ -430,11 +421,6 @@ public class FeieUtil { return list; } - -// private static boolean isChineseChar(char c) { -// return c >= 0x4E00 && c <= 0x9FFF; -// } - /** * 截取字符串 * diff --git a/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml b/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml index 83a5f722..4dc12769 100644 --- a/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml +++ b/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml @@ -524,7 +524,7 @@ a.order_id,a.store_id,a.store_name,a.buyer_user_id, a.buyer_user_name,a.order_time,a.order_payment_amount,a.order_product_amount, b.order_title, b.delivery_type_id, b.payment_type_id, b.payment_time, c.order_message, c.order_item_amount, c.order_shipping_fee,c.delivery_time, - e.store_tel, + e.store_tel, e.order_pickup_num, f.da_province,f.da_city,f.da_address,f.da_mobile, f.order_id from shop_order_base a inner join shop_order_info b on a.order_id=b.order_id diff --git a/mall-shop/src/main/resources/mapper/order/ShopOrderInfoMapper.xml b/mall-shop/src/main/resources/mapper/order/ShopOrderInfoMapper.xml index 5f9147ee..2aea6f0a 100644 --- a/mall-shop/src/main/resources/mapper/order/ShopOrderInfoMapper.xml +++ b/mall-shop/src/main/resources/mapper/order/ShopOrderInfoMapper.xml @@ -11,7 +11,7 @@ order_is_received, chain_id, delivery_type_id, order_is_offline, cart_type_id, order_express_print, activity_id, activity_type_id, salesperson_id, order_is_sync, store_is_selfsupport, store_type, order_erp_id, distributor_user_id, order_is_cb, order_is_cb_sync, src_order_id, order_is_transfer, order_is_transfer_note, - order_fx_is_settlemented, order_fx_settlement_time + order_fx_is_settlemented, order_fx_settlement_time, order_pickup_num diff --git a/mall-shop/target/classes/com/suisung/mall/shop/order/listener/OrderPayedListener.class b/mall-shop/target/classes/com/suisung/mall/shop/order/listener/OrderPayedListener.class index f93bbdc7..61439533 100644 Binary files a/mall-shop/target/classes/com/suisung/mall/shop/order/listener/OrderPayedListener.class and b/mall-shop/target/classes/com/suisung/mall/shop/order/listener/OrderPayedListener.class differ diff --git a/mall-shop/target/classes/com/suisung/mall/shop/order/service/ShopOrderInfoService.class b/mall-shop/target/classes/com/suisung/mall/shop/order/service/ShopOrderInfoService.class index 93d6c538..8f26e8df 100644 Binary files a/mall-shop/target/classes/com/suisung/mall/shop/order/service/ShopOrderInfoService.class and b/mall-shop/target/classes/com/suisung/mall/shop/order/service/ShopOrderInfoService.class differ diff --git a/mall-shop/target/classes/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.class b/mall-shop/target/classes/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.class index 8b8ab4b8..4e0dda56 100644 Binary files a/mall-shop/target/classes/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.class and b/mall-shop/target/classes/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.class differ diff --git a/mall-shop/target/classes/com/suisung/mall/shop/order/service/impl/ShopOrderInfoServiceImpl.class b/mall-shop/target/classes/com/suisung/mall/shop/order/service/impl/ShopOrderInfoServiceImpl.class index 57c0af53..1a37c5df 100644 Binary files a/mall-shop/target/classes/com/suisung/mall/shop/order/service/impl/ShopOrderInfoServiceImpl.class and b/mall-shop/target/classes/com/suisung/mall/shop/order/service/impl/ShopOrderInfoServiceImpl.class differ diff --git a/mall-shop/target/classes/mapper/order/ShopOrderBaseMapper.xml b/mall-shop/target/classes/mapper/order/ShopOrderBaseMapper.xml index 83a5f722..4dc12769 100644 --- a/mall-shop/target/classes/mapper/order/ShopOrderBaseMapper.xml +++ b/mall-shop/target/classes/mapper/order/ShopOrderBaseMapper.xml @@ -524,7 +524,7 @@ a.order_id,a.store_id,a.store_name,a.buyer_user_id, a.buyer_user_name,a.order_time,a.order_payment_amount,a.order_product_amount, b.order_title, b.delivery_type_id, b.payment_type_id, b.payment_time, c.order_message, c.order_item_amount, c.order_shipping_fee,c.delivery_time, - e.store_tel, + e.store_tel, e.order_pickup_num, f.da_province,f.da_city,f.da_address,f.da_mobile, f.order_id from shop_order_base a inner join shop_order_info b on a.order_id=b.order_id diff --git a/mall-shop/target/classes/mapper/order/ShopOrderInfoMapper.xml b/mall-shop/target/classes/mapper/order/ShopOrderInfoMapper.xml index 5f9147ee..2aea6f0a 100644 --- a/mall-shop/target/classes/mapper/order/ShopOrderInfoMapper.xml +++ b/mall-shop/target/classes/mapper/order/ShopOrderInfoMapper.xml @@ -11,7 +11,7 @@ order_is_received, chain_id, delivery_type_id, order_is_offline, cart_type_id, order_express_print, activity_id, activity_type_id, salesperson_id, order_is_sync, store_is_selfsupport, store_type, order_erp_id, distributor_user_id, order_is_cb, order_is_cb_sync, src_order_id, order_is_transfer, order_is_transfer_note, - order_fx_is_settlemented, order_fx_settlement_time + order_fx_is_settlemented, order_fx_settlement_time, order_pickup_num