diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/po/ProductInfo.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/po/ProductInfo.java index 4bacf06..ca0bf2d 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/po/ProductInfo.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/po/ProductInfo.java @@ -11,4 +11,15 @@ public class ProductInfo implements Serializable { private String productName; private Integer num; private BigDecimal amount; + + + public ProductInfo(String productName, Integer num, BigDecimal amount) { + this.productName = productName; + this.num = num; + this.amount = amount; + } + + public ProductInfo() { + super(); + } } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java index c012998..29b540b 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java @@ -185,34 +185,28 @@ public class PrintMechineConsumer { return; } - List cashierCarts = tbCashierCartMapper.selectByOrderId(orderInfo.getId().toString(),"final"); - if (ObjectUtil.isNotEmpty(cashierCarts) && cashierCarts.size() > 0) { + + List tbOrderDetails=tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId)); + if(ObjectUtil.isNotEmpty(tbOrderDetails)&&tbOrderDetails.size()>0) { List detailList = new ArrayList<>(); - cashierCarts.parallelStream().forEach(it -> { - String categoryId; - if(ObjectUtil.isEmpty(it.getCategoryId())){ - categoryId= tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); - } else { - categoryId = it.getCategoryId(); - } + tbOrderDetails.stream().forEach(it -> { + String categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); - - Long count= categoryInfos.stream().filter(c-> + Long count = categoryInfos.stream().filter(c -> c.getId().toString().equals(categoryId) ).count(); - log.info("获取当前类别是否未打印类别:{}",count); + log.info("获取当前类别是否未打印类别:{}", count); - if(count>0){ - TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getSkuId())); + if (count > 0) { + TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getProductSkuId())); String remark = ""; if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) { remark = tbProductSkuWithBLOBs.getSpecSnap(); } - OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getName(), it.getNumber().toString(), it.getTotalAmount().toPlainString(), remark); + OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), it.getPriceAmount().toPlainString(), remark); detailList.add(detail); } }); - String balance = "0"; if ("deposit".equals(orderInfo.getPayType())) { @@ -221,19 +215,19 @@ public class PrintMechineConsumer { balance = user.getAmount().toPlainString(); } } - if(ObjectUtil.isNotEmpty(detailList)&&detailList.size()>0){ - OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getOrderType().equals("miniapp")?orderInfo.getTableName():orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance,(ObjectUtil.isEmpty(orderInfo.getPayType())||ObjectUtil.isNull(orderInfo.getPayType())?"":orderInfo.getPayType() ), "0", detailList,orderInfo.getRemark()); + if (ObjectUtil.isNotEmpty(detailList) && detailList.size() > 0) { + OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getOrderType().equals("miniapp") ? orderInfo.getTableName() : orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, (ObjectUtil.isEmpty(orderInfo.getPayType()) || ObjectUtil.isNull(orderInfo.getPayType()) ? "" : orderInfo.getPayType()), "0", detailList, orderInfo.getRemark()); // OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList); detailPO.setOutNumber(orderInfo.getOutNumber()); - String printType="结算单"; + String printType = "结算单"; - String data= PrinterUtils.getCashPrintData(detailPO,printType,orderInfo.getOrderType()); + String data = PrinterUtils.getCashPrintData(detailPO, printType, orderInfo.getOrderType()); String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}"; - PrinterUtils.printTickets(voiceJson,3, Integer.valueOf(printerNum), tbPrintMachineWithBLOBs.getAddress(), data); + PrinterUtils.printTickets(voiceJson, 3, Integer.valueOf(printerNum), tbPrintMachineWithBLOBs.getAddress(), data); } - } + break; case "one": //一菜一品 @@ -262,32 +256,25 @@ public class PrintMechineConsumer { } return; }else { - cashierCarts = tbCashierCartMapper.selectByOrderId(orderId,"final"); - if (ObjectUtil.isNotEmpty(cashierCarts) && cashierCarts.size() > 0) { + tbOrderDetails = tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId)); + if (ObjectUtil.isNotEmpty(tbOrderDetails) && tbOrderDetails.size() > 0) { - cashierCarts.parallelStream().forEach(it -> { + tbOrderDetails.parallelStream().forEach(it -> { - String categoryId; - if(ObjectUtil.isEmpty(it.getCategoryId())){ - categoryId= tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); - } else { - categoryId = it.getCategoryId(); - } + String categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); - - Long count= categoryInfos.stream().filter(c-> + Long count = categoryInfos.stream().filter(c -> c.getId().toString().equals(categoryId) ).count(); - - log.info("获取当前类别是否未打印类别:{}",count); + log.info("获取当前类别是否未打印类别:{}", count); if(count>0){ - TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getSkuId())); + TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getProductSkuId())); String remark = ""; if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) { remark = tbProductSkuWithBLOBs.getSpecSnap(); } - String data = PrinterUtils.getPrintData("",orderInfo.getMasterId(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getName(), it.getNumber(), remark); + String data = PrinterUtils.getPrintData("",orderInfo.getMasterId(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getProductName(), it.getNum(), remark); String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}"; PrinterUtils.printTickets(voiceJson,3, Integer.valueOf(printerNum), tbPrintMachineWithBLOBs.getAddress(), data); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/CloudPrinterService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/CloudPrinterService.java index 123bfd0..c06b904 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/CloudPrinterService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/CloudPrinterService.java @@ -670,6 +670,10 @@ public class CloudPrinterService { String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}"; PrinterUtils.printTickets(voiceJson,1,1,it.getAddress(),PrinterUtils.handoverprintData(handoverInfo)); + + + + }); return Result.success(CodeEnum.SUCCESS); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/DataService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/DataService.java index 4af9af5..0a0231f 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/DataService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/DataService.java @@ -49,6 +49,9 @@ public class DataService { @Autowired ShopUserDutyPayMapper shopUserDutyPayMapper; + @Autowired + tbHandoverMapper tbHandoverMapper; + public Result handoverprintData(String token, Integer id){ @@ -104,6 +107,11 @@ public class DataService { } + + List productInfoPOS = shopUserDutyPayMapper.selectProductByDutyId(shopUserDuty.getId()); + List productInfos = shopUserDutyMapper.selectByDutyId(shopUserDuty.getId()); + + HandoverInfo handoverInfo=new HandoverInfo(tbShopInfo.getShopName(), ObjectUtil.isNotEmpty(shopUserDuty.getLoginTime())? DateUtils.getTime(shopUserDuty.getLoginTime()):null, ObjectUtil.isNotEmpty(shopUserDuty.getLoginOutTime())?DateUtils.getTime(shopUserDuty.getLoginOutTime()):"", @@ -115,7 +123,7 @@ public class DataService { shopUserDuty.getReturnAmount().toPlainString(), shopUserDuty.getOrderNum().toString(), productCategories,ObjectUtil.isNull(shopUserDuty.getQuickAmount())?"0":shopUserDuty.getQuickAmount().toPlainString(), - null,null + productInfoPOS,productInfos ); @@ -213,8 +221,33 @@ public class DataService { ); + tbHandover tbHandover=new tbHandover(); + tbHandover.setTradeDay(DateUtils.getDays()); + tbHandover.setPrintNo(it.getAddress()); + tbHandover.setDutyId(shopUserDuty.getId()); + tbHandover.setShopId(shopInfo.getId()); + tbHandover.setMerchantName(handoverInfo.getMerchantName()); + tbHandover.setStartTime(handoverInfo.getStartTime()); + tbHandover.setEndTime(handoverInfo.getEndTime()); + tbHandover.setPayInfos(JSONUtil.toJSONString(handoverInfo.getPayInfos())); + tbHandover.setMemberData(JSONUtil.toJSONString(handoverInfo.getMemberData())); + tbHandover.setProductCategories(JSONUtil.toJSONString(handoverInfo.getProductCategories())); + tbHandover.setTotalAmount(handoverInfo.getTotalAmount()); + tbHandover.setImprest(handoverInfo.getImprest()); + tbHandover.setPayable(handoverInfo.getPayable()); + tbHandover.setHandIn(handoverInfo.getHandIn()); + tbHandover.setReturnAmount(handoverInfo.getReturnAmount()); + tbHandover.setOrderNum(handoverInfo.getOrderNum()); + tbHandover.setQuickAmount(handoverInfo.getQuickAmount()); + tbHandover.setProductInfoPos(JSONUtil.toJSONString(handoverInfo.getProductInfoPOS())); + tbHandover.setProductInfos(JSONUtil.toJSONString(handoverInfo.getProductInfos())); + tbHandover.setCreateTime(new Date()); + tbHandoverMapper.insert(tbHandover); String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}"; PrinterUtils.printTickets(voiceJson, 1, 1, it.getAddress(), PrinterUtils.handoverprintData(handoverInfo)); + + + }); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/util/PrinterUtils.java b/src/main/java/com/chaozhanggui/system/cashierservice/util/PrinterUtils.java index e2ca6a5..df745af 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/util/PrinterUtils.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/util/PrinterUtils.java @@ -12,6 +12,7 @@ import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; +import java.math.BigDecimal; import java.util.*; /** @@ -109,24 +110,13 @@ public class PrinterUtils { char paddingCharacter = ' '; sb.append(""+String.format("%-15s","品名").replace(' ', paddingCharacter)+String.format("%-4s","数量").replace(' ', paddingCharacter)+String.format("%4s","小计").replace(' ', paddingCharacter)+"
"); for (OrderDetailPO.Detail detail : detailPO.getDetailList()) { - if(detail.getProductName().length()>4&&detail.getProductName().length()<=10){ - - int count=getProducrName(detail.getProductName()); - if(count<=0){ - int length=15-(detail.getProductName().length()-4); - sb.append(""+String.format("%-"+length+"s",detail.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",detail.getNumber()).replace(' ', paddingCharacter)+String.format("%8s",detail.getAmount()).replace(' ', paddingCharacter)+"
"); - }else { - int length=15+count-(detail.getProductName().length()-4); - sb.append(""+String.format("%-"+length+"s",detail.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",detail.getNumber()).replace(' ', paddingCharacter)+String.format("%8s",detail.getAmount()).replace(' ', paddingCharacter)+"
"); - } - - }else if(detail.getProductName().length()>10){ + if(detail.getProductName().length()>8){ sb.append(""+detail.getProductName()+"
"); - sb.append(""+String.format("%20s",detail.getNumber()).replace(' ', paddingCharacter)+String.format("%11s",detail.getAmount()).replace(' ', paddingCharacter)+"
"); - + sb.append(""+String.format("%16s",detail.getNumber()).replace(' ', paddingCharacter)+String.format("%10s",detail.getAmount()).replace(' ', paddingCharacter)+"
"); }else { - sb.append(""+String.format("%-15s",detail.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",detail.getNumber()).replace(' ', paddingCharacter)+String.format("%8s",detail.getAmount()).replace(' ', paddingCharacter)+"
"); + int tt=16-detail.getProductName().length(); + sb.append(""+String.format("%-"+tt+"s",detail.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",detail.getNumber()).replace(' ', paddingCharacter)+String.format("%6s",detail.getAmount()).replace(' ', paddingCharacter)+"
"); } if(detail.getSpec()!=null&& ObjectUtil.isNotEmpty(detail.getSpec())){ @@ -205,45 +195,20 @@ public class PrinterUtils { sb.append("商品数据
"); - - List productInfo1=handoverInfo.getProductInfos(); - - - Integer max= productInfo1.stream().max(Comparator.comparing(it->it.getProductName().length())).get().getProductName().length(); - - char paddingCharacter = ' '; - sb.append(" "+String.format("%-10s","品名").replace(' ', paddingCharacter)+String.format("%-4s","数量").replace(' ', paddingCharacter)+String.format("%4s","小计").replace(' ', paddingCharacter)+"
"); + sb.append(" "+String.format("%-18s","品名").replace(' ', paddingCharacter)+String.format("%-4s","数量").replace(' ', paddingCharacter)+"
"); for (ProductInfo productInfo : handoverInfo.getProductInfos()) { - if(productInfo.getProductName().length()>4&&productInfo.getProductName().length()<=8){ - int count=getProducrName(productInfo.getProductName()); - if(count<=0){ - int length=15-(productInfo.getProductName().length()-4); - sb.append(" "+String.format("%-"+length+"s",productInfo.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",productInfo.getNum()).replace(' ', paddingCharacter)+String.format("%4s",productInfo.getAmount()).replace(' ', paddingCharacter)+"
"); - }else { - int length=15+count/2-(productInfo.getProductName().length()-4); - sb.append(" "+String.format("%-"+length+"s",productInfo.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",productInfo.getNum()).replace(' ', paddingCharacter)+String.format("%4s",productInfo.getAmount()).replace(' ', paddingCharacter)+"
"); - } - - }else if(productInfo.getProductName().length()>10){ + if(productInfo.getProductName().length()>=16){ sb.append(" "+productInfo.getProductName()+"
"); - sb.append(" "+String.format("%20s",productInfo.getNum()).replace(' ', paddingCharacter)+String.format("%11s",productInfo.getAmount()).replace(' ', paddingCharacter)+"
"); + sb.append(" "+String.format("%22s",productInfo.getNum()).replace(' ', paddingCharacter)+"
"); }else { - if(productInfo.getProductName().length() "+String.format("%-"+tt+"s",productInfo.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",productInfo.getNum()).replace(' ', paddingCharacter)+String.format("%6s",productInfo.getAmount()).replace(' ', paddingCharacter)+"
"); - }else { - sb.append(" "+String.format("%-10s",productInfo.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",productInfo.getNum()).replace(' ', paddingCharacter)+String.format("%6s",productInfo.getAmount()).replace(' ', paddingCharacter)+"
"); - } - - + int tt=21-productInfo.getProductName().length(); + sb.append(" "+String.format("%-"+tt+"s",productInfo.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",productInfo.getNum()).replace(' ', paddingCharacter)+"
"); } sb.append("
"); } @@ -282,10 +247,6 @@ public class PrinterUtils { sb.append("
"); } - - - - } @@ -387,39 +348,32 @@ public class PrinterUtils { public static void main(String[] args)throws Exception { - int t=0; +// + List payInfos=new ArrayList<>(); + + payInfos.add(new HandoverInfo.PayInfo("现金","39.00")); + payInfos.add(new HandoverInfo.PayInfo("微信支付","0.01")); + payInfos.add(new HandoverInfo.PayInfo("储值卡支付","43.00")); + payInfos.add(new HandoverInfo.PayInfo("银行卡支付","20.00")); + + List memberDatas=new ArrayList<>(); + memberDatas.add(new HandoverInfo.MemberData("43.00","会员消费")); + memberDatas.add(new HandoverInfo.MemberData("43.00","储值支付")); - String str="张三456987asdfg"; - for (int i = 0; i < str.length(); i++) { - char c = str.charAt(i); - if (c >= '0' && c <= '9') { - t++; - } else if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) { - t++; - } - } - System.out.println(t); + List productInfos=new ArrayList<>(); -// -// List payInfos=new ArrayList<>(); -// -// payInfos.add(new HandoverInfo.PayInfo("现金","39.00")); -// payInfos.add(new HandoverInfo.PayInfo("微信支付","0.01")); -// payInfos.add(new HandoverInfo.PayInfo("储值卡支付","43.00")); -// payInfos.add(new HandoverInfo.PayInfo("银行卡支付","20.00")); -// -// List memberDatas=new ArrayList<>(); -// memberDatas.add(new HandoverInfo.MemberData("43.00","会员消费")); -// memberDatas.add(new HandoverInfo.MemberData("43.00","储值支付")); -// -// -// -// -// HandoverInfo handoverInfo=new HandoverInfo("冠军","2024-03-15 14:57:00","2024-03-15 14:59:00","【POS-1】 001",payInfos,memberDatas,"102.01","0.00","39.00","39.00","4"); -// -// -// printTickets(3,1,"ZF544PG03W00002",handoverprintData(handoverInfo)); + productInfos.add(new ProductInfo("161616161616161616161616161",16,new BigDecimal(65.00))); + + productInfos.add(new ProductInfo("张三",16,new BigDecimal(65.00))); + + + productInfos.add(new ProductInfo("牛叉闪闪牛叉闪闪牛叉闪闪牛叉闪闪牛叉闪闪牛叉闪闪牛叉闪闪",16,new BigDecimal(65.00))); + + HandoverInfo handoverInfo=new HandoverInfo("牛叉闪闪",DateUtils.getTime(new Date()),DateUtils.getTime(new Date()),"李四",payInfos,memberDatas,"5000.00","5000.00","5000.00","5000.00","50.00","80",null,"5000.00",null,productInfos); + + + printTickets("3",1,1,"ZF544PG03W00005",handoverprintData(handoverInfo)); // // List detailList= new ArrayList<>(); diff --git a/src/main/resources/generator-mapper/generatorConfig.xml b/src/main/resources/generator-mapper/generatorConfig.xml index 295ab1d..e21a228 100644 --- a/src/main/resources/generator-mapper/generatorConfig.xml +++ b/src/main/resources/generator-mapper/generatorConfig.xml @@ -53,7 +53,7 @@ -