From 9f96697d7837e07dfff76f902de2a03c4522a9c8 Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Wed, 13 Nov 2024 20:43:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=89=93=E5=8D=B0=E5=BC=80?= =?UTF-8?q?=E5=90=AF=E5=85=B3=E9=97=AD=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/store/ShopStorePrinterLog.java | 10 +++- .../admin/ShopStorePrinterController.java | 15 ++++- .../ShopStorePrinterRegionController.java | 4 +- .../service/ShopStorePrinterLogService.java | 9 +++ .../service/ShopStorePrinterService.java | 8 +++ .../impl/ShopStorePrinterLogServiceImpl.java | 19 ++++++ .../impl/ShopStorePrinterServiceImpl.java | 58 +++++++++++++++++-- .../mall/shop/store/utis/FeieUtil.java | 42 +++++++++++++- .../mapper/store/ShopStorePrinterMapper.xml | 2 +- 9 files changed, 152 insertions(+), 15 deletions(-) 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 efa3884c..cbbc91aa 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 @@ -33,7 +33,7 @@ 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) { + public ShopStorePrinterLog(Integer category,Integer storeId,String orderId,Long templateId,String templateValue, String templateData,String printContent,String feiePrintNo,String printerSn) { this.category = category; this.store_id = storeId; this.order_id = orderId; @@ -41,6 +41,8 @@ public class ShopStorePrinterLog implements Serializable { this.template_data = templateData; this.template_value = templateValue; this.print_content = printContent; + this.feie_print_no = feiePrintNo; + this.printer_sn = printerSn; } @ApiModelProperty(value = "日志自增ID") @@ -68,6 +70,12 @@ public class ShopStorePrinterLog implements Serializable { @ApiModelProperty(value = "最终打印的内容") private String print_content; + @ApiModelProperty(value = "飞鹅返回到打印编号") + private String feie_print_no; + + @ApiModelProperty(value = "打印机编号") + private String printer_sn; + @ApiModelProperty(value = "状态:1-有效;2-无效;") private Integer status; diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterController.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterController.java index 87085c16..23c49b52 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterController.java @@ -46,7 +46,8 @@ public class ShopStorePrinterController { @RequestParam(name = "printer_sn", required = true) String printer_sn, @RequestParam(name = "printer_key", required = true) String printer_key, @RequestParam(name = "region_id", required = true) Integer region_id, - @RequestParam(name = "paper_with", defaultValue = "58") Integer paper_with) { + @RequestParam(name = "paper_with", defaultValue = "58") Integer paper_with, + @RequestParam(name = "website_url", defaultValue = "") String website_url) { ShopStorePrinter shopStorePrinter = new ShopStorePrinter(); shopStorePrinter.setModel_id(model_id); @@ -56,6 +57,7 @@ public class ShopStorePrinterController { shopStorePrinter.setPrinter_key(printer_key); shopStorePrinter.setRegion_id(region_id); shopStorePrinter.setPaper_with(paper_with); + shopStorePrinter.setWebsite_url(website_url); return shopStorePrinterService.addNewShopStorePrinter(shopStorePrinter); } @@ -68,7 +70,8 @@ public class ShopStorePrinterController { @RequestParam(name = "printer_sn", required = true) String printer_sn, @RequestParam(name = "printer_key", required = true) String printer_key, @RequestParam(name = "region_id", required = true) Integer region_id, - @RequestParam(name = "paper_with", defaultValue = "58") Integer paper_with) { + @RequestParam(name = "paper_with", defaultValue = "58") Integer paper_with, + @RequestParam(name = "website_url", defaultValue = "") String website_url) { ShopStorePrinter shopStorePrinter = new ShopStorePrinter(); shopStorePrinter.setPrinter_id(printer_id); @@ -78,10 +81,18 @@ public class ShopStorePrinterController { shopStorePrinter.setPrinter_key(printer_key); shopStorePrinter.setRegion_id(region_id); shopStorePrinter.setPaper_with(paper_with); + shopStorePrinter.setWebsite_url(website_url); return shopStorePrinterService.updateShopStorePrinter(shopStorePrinter); } + @ApiOperation(value = "门店开启/关闭一个打票机", notes = "门店开启/关闭一个打票机") + @RequestMapping(value = "/status/update", method = {RequestMethod.POST}) + public CommonResult updateShopStorePrinterStatus(@RequestParam(name = "printer_id" , required = true) Long printerId, + @RequestParam(name = "status" , required = true) Integer status) { + return shopStorePrinterService.updateShopStorePrinterStatus(printerId, status); + } + @ApiOperation(value = "门店删除一个打票机", notes = "门店删除一个打票机") @RequestMapping(value = "/delete", method = {RequestMethod.POST}) public CommonResult deleteShopStorePrinter(@RequestParam(name = "printer_id" , required = true) Long printer_id) { diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterRegionController.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterRegionController.java index 7b2ace7c..9cc2140a 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterRegionController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterRegionController.java @@ -37,11 +37,11 @@ public class ShopStorePrinterRegionController { @ApiOperation(value = "门店新增一个打票机摆放区域", notes = "门店新增一个打票机摆放区域") @RequestMapping(value = "/add/new", method = {RequestMethod.POST}) public CommonResult addNewShopStorePrinterRegion( - @RequestParam(name = "region", required = true) String model_name, + @RequestParam(name = "region", required = true) String region, @RequestParam(name = "intro", defaultValue = "") String intro) { ShopStorePrinterRegion shopStorePrinterRegion = new ShopStorePrinterRegion(); - shopStorePrinterRegion.setRegion(model_name); + shopStorePrinterRegion.setRegion(region); shopStorePrinterRegion.setIntro(intro); return shopStorePrinterRegionService.addNewShopStorePrinterRegion(shopStorePrinterRegion); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStorePrinterLogService.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStorePrinterLogService.java index b0490cdd..2d26c8ac 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStorePrinterLogService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStorePrinterLogService.java @@ -3,6 +3,8 @@ package com.suisung.mall.shop.store.service; import com.suisung.mall.common.modules.store.ShopStorePrinterLog; import com.suisung.mall.core.web.service.IBaseService; +import java.util.List; + public interface ShopStorePrinterLogService extends IBaseService { /** @@ -13,5 +15,12 @@ public interface ShopStorePrinterLogService extends IBaseService records); + } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStorePrinterService.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStorePrinterService.java index 1a2f0f95..df89677f 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStorePrinterService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStorePrinterService.java @@ -46,6 +46,14 @@ public interface ShopStorePrinterService extends IBaseService */ CommonResult updateShopStorePrinter(ShopStorePrinter record); + /** + * 门店开启/关闭一个打票机 + * @param printer_id + * @param status + * @return + */ + CommonResult updateShopStorePrinterStatus(Long printer_id, Integer status); + /** * 门店删除一个打票机 * diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterLogServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterLogServiceImpl.java index a5a49da0..26c73098 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterLogServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterLogServiceImpl.java @@ -60,4 +60,23 @@ public class ShopStorePrinterLogServiceImpl extends BaseServiceImpl records) { + if (CollUtil.isEmpty(records)) { + return; + } + + for (ShopStorePrinterLog record : records) { + if (record.getStore_id() == null || + StrUtil.isBlank(record.getOrder_id()) || + StrUtil.isBlank(record.getTemplate_value()) || + StrUtil.isBlank(record.getPrint_content())) { + continue; + } + + add(record); + } + } + } 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 8c21d645..d42aae5f 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 @@ -30,6 +30,7 @@ import com.suisung.mall.shop.store.utis.FeieUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.util.Pair; import org.springframework.stereotype.Service; import java.math.BigDecimal; @@ -172,7 +173,7 @@ public class ShopStorePrinterServiceImpl extends BaseServiceImpl updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("printer_id", printerId); + updateWrapper.set("flag", status); + + boolean success = update(updateWrapper); + if (success) { + return CommonResult.success(); + } + + return CommonResult.failed("操作失败!"); + } + @Override public CommonResult deleteShopStorePrinter(Long printer_id) { @@ -373,15 +404,30 @@ public class ShopStorePrinterServiceImpl extends BaseServiceImpl printerSnList = new ArrayList<>(); + for (ShopStorePrinter printer : printerList) { + printerSnList.add(printer.getPrinter_sn()); + } + + List> respList = feieUtil.printContentByList(printerSnList, printContent); + if (CollUtil.isEmpty(respList)) { + // 只需一台打印机能打印,就算成功了 logger.info("订单{}信息打印,调用飞鹅打印机打印失败。", orderId); return false; } - // 打印成功,新增打印日志记录,以备下次查看和打印 - ShopStorePrinterLog shopStorePrinterLog = new ShopStorePrinterLog(template.getCategory(), storeId, orderId, template.getTemplate_id(), template.getTemplate_value(), JsonUtil.object2json(binding), printContent); - shopStorePrinterLogService.insertShopStorePrinterLog(shopStorePrinterLog); +// String repsNo = feieUtil.printContent(printerList.get(0).getPrinter_sn(), printContent); +// if (StrUtil.isBlank(repsNo)) { +// logger.info("订单{}信息打印,调用飞鹅打印机打印失败。", orderId); +// return false; +// } + + for (Pair respSn : respList) { + // 打印成功,新增打印日志记录,以备下次查看和打印 + ShopStorePrinterLog shopStorePrinterLog = new ShopStorePrinterLog(template.getCategory(), storeId, orderId, template.getTemplate_id(), template.getTemplate_value(), JsonUtil.object2json(binding), printContent, respSn.getSecond(),respSn.getFirst()); + shopStorePrinterLogService.insertShopStorePrinterLog(shopStorePrinterLog); + } + logger.debug("#### 调用飞鹅打票机的打印操作结束 ####"); 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 0bcdbde2..1feb35c9 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 @@ -20,6 +20,7 @@ import org.apache.http.util.EntityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.util.Pair; import org.springframework.stereotype.Component; import java.io.IOException; @@ -130,18 +131,53 @@ public class FeieUtil { * @param printContent 打印等内容,参考 飞鹅 模版格式 * @return */ - public boolean printContent(String sn, String printContent) { + public String printContent(String sn, String printContent) { + if (StrUtil.isBlank(sn) || StrUtil.isBlank(printContent)) { + return ""; + } + List nvps = new ArrayList(); nvps.add(new BasicNameValuePair("sn", sn)); nvps.add(new BasicNameValuePair("content", printContent)); FeiePrinterApiRes reps = sendHttpPost("Open_printMsg", nvps); if (reps != null && reps.getRet().equals(0)) { - return true; + // 返回打印编号,如:816501678_20160919184316_1419533539 + return reps.getData(); } logger.error("飞鹅打印操作失败:{}", reps.getMsg()); - return false; + return ""; + } + + /** + * 多个打印机打印同一个订单 + * @param printerSnList 多个打印机编号 + * @param printContent + * @return + */ + public List> printContentByList(List printerSnList, String printContent) { + if (CollectionUtil.isEmpty(printerSnList)) { + return null; + } + + List> retList = new ArrayList<>(); + for (String sn : printerSnList) { + if (StrUtil.isBlank(sn)) { + continue; + } + + String respNo = printContent(sn, printContent); + if (StrUtil.isNotBlank(respNo)) { + retList.add(Pair.of(sn, respNo)); + } + } + + if (CollectionUtil.isEmpty(retList)) { + return null; + } + + return retList; } /** diff --git a/mall-shop/src/main/resources/mapper/store/ShopStorePrinterMapper.xml b/mall-shop/src/main/resources/mapper/store/ShopStorePrinterMapper.xml index a5cba0a6..8cf8bad4 100644 --- a/mall-shop/src/main/resources/mapper/store/ShopStorePrinterMapper.xml +++ b/mall-shop/src/main/resources/mapper/store/ShopStorePrinterMapper.xml @@ -13,7 +13,7 @@ - +