Merge remote-tracking branch 'origin/test' into test
This commit is contained in:
commit
5162a9cf7c
|
|
@ -180,7 +180,7 @@ public class PrintMechineConsumer {
|
||||||
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
||||||
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
||||||
}
|
}
|
||||||
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), NumberUtil.mul(it.getNum(),it.getPrice()).toPlainString(), remark);
|
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), NumberUtil.mul(it.getNum(), it.getPrice()).toPlainString(), remark);
|
||||||
detailList.add(detail);
|
detailList.add(detail);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
@ -228,7 +228,7 @@ public class PrintMechineConsumer {
|
||||||
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
||||||
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
||||||
}
|
}
|
||||||
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), NumberUtil.mul(it.getNum(),it.getPrice()).toPlainString(), remark);
|
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), NumberUtil.mul(it.getNum(), it.getPrice()).toPlainString(), remark);
|
||||||
detailList.add(detail);
|
detailList.add(detail);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -285,14 +285,21 @@ public class PrintMechineConsumer {
|
||||||
// 重置打印数据
|
// 重置打印数据
|
||||||
redisTemplate.delete(printKey);
|
redisTemplate.delete(printKey);
|
||||||
if (!tbOrderDetails.isEmpty()) {
|
if (!tbOrderDetails.isEmpty()) {
|
||||||
tbOrderDetails.forEach(it -> {
|
tbOrderDetails.parallelStream().filter(o -> ObjectUtil.defaultIfNull(o.getIsPrint(), 0) == 1).forEach(it -> {
|
||||||
log.info("开始打印一菜一品票据,:{}", it.getProductName());
|
log.info("开始打印一菜一品票据,:{}", it.getProductName());
|
||||||
String categoryId = tbProductMapper.selectByPrimaryKey(it.getProductId()).getCategoryId();
|
long count;
|
||||||
|
if (it.getIsTemporary() == 1) {
|
||||||
long count = categoryInfos.stream().filter(c ->
|
it.setProductId(0);
|
||||||
c.getId().toString().equals(categoryId)
|
it.setProductSkuId(0);
|
||||||
).count();
|
it.setProductName("【临】" + it.getProductName());
|
||||||
|
count = 1;
|
||||||
|
} else {
|
||||||
|
String categoryId = tbProductMapper.selectByPrimaryKey(it.getProductId()).getCategoryId();
|
||||||
|
|
||||||
|
count = categoryInfos.stream().filter(c ->
|
||||||
|
c.getId().toString().equals(categoryId)
|
||||||
|
).count();
|
||||||
|
}
|
||||||
log.info("获取当前类别是否未打印类别:{}", count);
|
log.info("获取当前类别是否未打印类别:{}", count);
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
// 统计已打数量
|
// 统计已打数量
|
||||||
|
|
@ -320,10 +327,12 @@ public class PrintMechineConsumer {
|
||||||
|
|
||||||
log.info("已打印数量, {}, 未打印数量: {}", info, printerNum);
|
log.info("已打印数量, {}, 未打印数量: {}", info, printerNum);
|
||||||
|
|
||||||
TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(it.getProductSkuId());
|
|
||||||
String remark = "";
|
String remark = "";
|
||||||
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
if(it.getIsTemporary() == 0) {
|
||||||
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(it.getProductSkuId());
|
||||||
|
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
||||||
|
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 将已打印信息加入redis
|
// 将已打印信息加入redis
|
||||||
|
|
@ -494,17 +503,27 @@ public class PrintMechineConsumer {
|
||||||
private void printReturnTicket(TbPrintMachineWithBLOBs tbPrintMachineWithBLOBs, TbOrderInfo orderInfo, String printerNum, List<CategoryInfo> categoryInfos, String orderId) {
|
private void printReturnTicket(TbPrintMachineWithBLOBs tbPrintMachineWithBLOBs, TbOrderInfo orderInfo, String printerNum, List<CategoryInfo> categoryInfos, String orderId) {
|
||||||
List<TbOrderDetail> details = tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId));
|
List<TbOrderDetail> details = tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId));
|
||||||
if (ObjectUtil.isNotEmpty(details) && details.size() > 0) {
|
if (ObjectUtil.isNotEmpty(details) && details.size() > 0) {
|
||||||
details.parallelStream().forEach(it -> {
|
details.parallelStream().filter(o -> ObjectUtil.defaultIfNull(o.getIsPrint(), 0) == 1).forEach(it -> {
|
||||||
String categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId();
|
long count = 0;
|
||||||
Long count = categoryInfos.stream().filter(c ->
|
if (it.getIsTemporary() == 1) {
|
||||||
c.getId().toString().equals(categoryId)
|
it.setProductId(0);
|
||||||
).count();
|
it.setProductSkuId(0);
|
||||||
|
it.setProductName("【临】" + it.getProductName());
|
||||||
|
}else{
|
||||||
|
String categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId();
|
||||||
|
count = categoryInfos.stream().filter(c ->
|
||||||
|
c.getId().toString().equals(categoryId)
|
||||||
|
).count();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getProductSkuId()));
|
|
||||||
String remark = "";
|
String remark = "";
|
||||||
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
if (it.getIsTemporary() == 0) {
|
||||||
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getProductSkuId()));
|
||||||
|
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
||||||
|
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// todo 修改为bigdecimal
|
// todo 修改为bigdecimal
|
||||||
|
|
||||||
|
|
@ -556,7 +575,7 @@ public class PrintMechineConsumer {
|
||||||
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
||||||
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
||||||
}
|
}
|
||||||
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), NumberUtil.mul(it.getNum(),it.getPrice()).toPlainString(), remark);
|
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), NumberUtil.mul(it.getNum(), it.getPrice()).toPlainString(), remark);
|
||||||
detailList.add(detail);
|
detailList.add(detail);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
@ -657,8 +676,7 @@ public class PrintMechineConsumer {
|
||||||
List<TbCashierCart> cashierCarts = tbCashierCartMapper.selectByOrderId(orderId, "final");
|
List<TbCashierCart> cashierCarts = tbCashierCartMapper.selectByOrderId(orderId, "final");
|
||||||
if (ObjectUtil.isNotEmpty(cashierCarts) && cashierCarts.size() > 0) {
|
if (ObjectUtil.isNotEmpty(cashierCarts) && cashierCarts.size() > 0) {
|
||||||
|
|
||||||
cashierCarts.parallelStream().forEach(it -> {
|
cashierCarts.parallelStream().filter(o -> ObjectUtil.defaultIfNull(o.getIsPrint(), 0) == 1).forEach(it -> {
|
||||||
|
|
||||||
String categoryId;
|
String categoryId;
|
||||||
if (ObjectUtil.isEmpty(it.getCategoryId())) {
|
if (ObjectUtil.isEmpty(it.getCategoryId())) {
|
||||||
categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId();
|
categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId();
|
||||||
|
|
|
||||||
|
|
@ -64,13 +64,12 @@ public class FeiPrinter extends PrinterHandler {
|
||||||
@Override
|
@Override
|
||||||
protected void normalDishesPrint(TbOrderInfo orderInfo, TbOrderDetail orderDetail, TbPrintMachine machine) {
|
protected void normalDishesPrint(TbOrderInfo orderInfo, TbOrderDetail orderDetail, TbPrintMachine machine) {
|
||||||
TbProductSkuWithBLOBs sku = tbProductSkuMapper.selectByPrimaryKey(orderDetail.getProductSkuId());
|
TbProductSkuWithBLOBs sku = tbProductSkuMapper.selectByPrimaryKey(orderDetail.getProductSkuId());
|
||||||
if (sku == null) {
|
if (sku == null && orderDetail.getIsTemporary() == 0) {
|
||||||
log.warn("打印菜品票失败 sku商品不存在: {}", orderDetail);
|
log.warn("打印菜品票失败 sku商品不存在: {}", orderDetail);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String remark = sku.getSpecSnap();
|
String remark = sku == null ? "" : sku.getSpecSnap();
|
||||||
// todo 修改为bigdecimal
|
// todo 修改为bigdecimal
|
||||||
|
|
||||||
String[] resp = FeieyunPrintUtil.getPrintData(machine.getAddress(), orderInfo,
|
String[] resp = FeieyunPrintUtil.getPrintData(machine.getAddress(), orderInfo,
|
||||||
DateUtils.getTime(new Date(orderInfo.getCreatedAt())), orderDetail.getProductName(), orderDetail.getNum().intValue(), remark);
|
DateUtils.getTime(new Date(orderInfo.getCreatedAt())), orderDetail.getProductName(), orderDetail.getNum().intValue(), remark);
|
||||||
shopPrintLogService.save(machine, "新订单", resp[0], resp[1]);
|
shopPrintLogService.save(machine, "新订单", resp[0], resp[1]);
|
||||||
|
|
|
||||||
|
|
@ -83,12 +83,16 @@ public abstract class PrinterHandler {
|
||||||
* 仅打印制作单「厨房」
|
* 仅打印制作单「厨房」
|
||||||
*/
|
*/
|
||||||
private void onlyKitchen(TbPrintMachine machine, TbOrderInfo orderInfo, List<TbOrderDetail> tbOrderDetailList, List<CategoryInfo> categoryInfos, boolean isReturn) {
|
private void onlyKitchen(TbPrintMachine machine, TbOrderInfo orderInfo, List<TbOrderDetail> tbOrderDetailList, List<CategoryInfo> categoryInfos, boolean isReturn) {
|
||||||
tbOrderDetailList.forEach(item -> {
|
tbOrderDetailList.parallelStream().filter(o -> ObjectUtil.defaultIfNull(o.getIsPrint(), 0) == 1).forEach(item -> {
|
||||||
log.info("开始打印退单菜品,商品名:{}", item.getProductName());
|
log.info("开始打印退单菜品,商品名:{}", item.getProductName());
|
||||||
Integer isTemporary = ObjectUtil.defaultIfNull(item.getIsTemporary(), 0);
|
Integer isTemporary = ObjectUtil.defaultIfNull(item.getIsTemporary(), 0);
|
||||||
String categoryId = "0";
|
String categoryId = "0";
|
||||||
if (isTemporary == 1) {
|
if (isTemporary == 1) {
|
||||||
item.setProductId(0);
|
item.setProductId(0);
|
||||||
|
item.setProductSkuId(0);
|
||||||
|
if(!item.getProductName().startsWith("【临】")){
|
||||||
|
item.setProductName("【临】" + item.getProductName());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 台位费不打印
|
// 台位费不打印
|
||||||
if (item.getProductId().equals(-999)) {
|
if (item.getProductId().equals(-999)) {
|
||||||
|
|
@ -97,13 +101,15 @@ public abstract class PrinterHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
TbProduct product = tbProductMapper.selectByPrimaryKey(item.getProductId());
|
TbProduct product = tbProductMapper.selectByPrimaryKey(item.getProductId());
|
||||||
if(isTemporary == 0) {
|
if (isTemporary == 0) {
|
||||||
categoryId = product.getCategoryId();
|
categoryId = product.getCategoryId();
|
||||||
}
|
}
|
||||||
TbProductSkuWithBLOBs sku = tbProductSkuMapper.selectByPrimaryKey(item.getProductSkuId());
|
TbProductSkuWithBLOBs sku = tbProductSkuMapper.selectByPrimaryKey(item.getProductSkuId());
|
||||||
if (isTemporary == 0 && sku == null) {
|
if (isTemporary == 0 && sku == null) {
|
||||||
log.error("商品不存在, id: {}", item.getProductSkuId());
|
log.error("商品不存在, id: {}", item.getProductSkuId());
|
||||||
return;
|
return;
|
||||||
|
} else if(isTemporary == 1){
|
||||||
|
sku = new TbProductSkuWithBLOBs();
|
||||||
}
|
}
|
||||||
if (StrUtil.isEmpty(machine.getClassifyPrint())) {
|
if (StrUtil.isEmpty(machine.getClassifyPrint())) {
|
||||||
log.error("分类打印是空, classifyPrint: {}", machine.getClassifyPrint());
|
log.error("分类打印是空, classifyPrint: {}", machine.getClassifyPrint());
|
||||||
|
|
@ -113,7 +119,7 @@ public abstract class PrinterHandler {
|
||||||
long count = categoryInfos.stream().filter(c ->
|
long count = categoryInfos.stream().filter(c ->
|
||||||
c.getId().toString().equals(finalCategoryId)
|
c.getId().toString().equals(finalCategoryId)
|
||||||
).count();
|
).count();
|
||||||
if(isTemporary == 0) {
|
if (isTemporary == 1) {
|
||||||
count = 1;
|
count = 1;
|
||||||
}
|
}
|
||||||
if (machine.getClassifyPrint() != null && "1".equals(machine.getClassifyPrint()) && count == 0) {
|
if (machine.getClassifyPrint() != null && "1".equals(machine.getClassifyPrint()) && count == 0) {
|
||||||
|
|
@ -143,16 +149,16 @@ public abstract class PrinterHandler {
|
||||||
tbOrderDetailList.forEach(it -> {
|
tbOrderDetailList.forEach(it -> {
|
||||||
Integer isTemporary = ObjectUtil.defaultIfNull(it.getIsTemporary(), 0);
|
Integer isTemporary = ObjectUtil.defaultIfNull(it.getIsTemporary(), 0);
|
||||||
String remark = "";
|
String remark = "";
|
||||||
if(isTemporary == 0){
|
if (isTemporary == 0) {
|
||||||
TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(it.getProductSkuId());
|
TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(it.getProductSkuId());
|
||||||
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
||||||
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(isTemporary == 1) {
|
if (isTemporary == 1) {
|
||||||
it.setProductName("【临时菜】"+it.getProductName());
|
it.setProductName("【临】" + it.getProductName());
|
||||||
}
|
}
|
||||||
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), NumberUtil.mul(it.getNum(),it.getPrice()).toPlainString(), remark);
|
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), NumberUtil.mul(it.getNum(), it.getPrice()).toPlainString(), remark);
|
||||||
detailList.add(detail);
|
detailList.add(detail);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -175,19 +175,27 @@ public class CloudPrinterService {
|
||||||
if ("return".equals(orderInfo.getOrderType())) {
|
if ("return".equals(orderInfo.getOrderType())) {
|
||||||
List<TbOrderDetail> details = tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId));
|
List<TbOrderDetail> details = tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId));
|
||||||
if (ObjectUtil.isNotEmpty(details) && details.size() > 0) {
|
if (ObjectUtil.isNotEmpty(details) && details.size() > 0) {
|
||||||
details.parallelStream().forEach(it -> {
|
details.parallelStream().filter(o -> ObjectUtil.defaultIfNull(o.getIsPrint(), 0) == 1).forEach(it -> {
|
||||||
|
long count = 0;
|
||||||
|
if (it.getIsTemporary() == 1) {
|
||||||
|
it.setProductId(0);
|
||||||
|
it.setProductSkuId(0);
|
||||||
|
it.setProductName("【临】" + it.getProductName());
|
||||||
|
} else {
|
||||||
|
String categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId();
|
||||||
|
count = categoryInfos.stream().filter(c ->
|
||||||
|
c.getId().toString().equals(categoryId)
|
||||||
|
).count();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
String categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId();
|
|
||||||
Long count = categoryInfos.stream().filter(c ->
|
|
||||||
c.getId().toString().equals(categoryId)
|
|
||||||
).count();
|
|
||||||
|
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getProductSkuId()));
|
|
||||||
String remark = "";
|
String remark = "";
|
||||||
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
if (it.getIsTemporary() == 0) {
|
||||||
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getProductSkuId()));
|
||||||
|
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
||||||
|
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// todo 修改为bigdecimal
|
// todo 修改为bigdecimal
|
||||||
|
|
||||||
|
|
@ -509,7 +517,7 @@ public class CloudPrinterService {
|
||||||
List<TbCashierCart> cashierCarts = tbCashierCartMapper.selectByOrderId(orderId, "final");
|
List<TbCashierCart> cashierCarts = tbCashierCartMapper.selectByOrderId(orderId, "final");
|
||||||
if (ObjectUtil.isNotEmpty(cashierCarts) && cashierCarts.size() > 0) {
|
if (ObjectUtil.isNotEmpty(cashierCarts) && cashierCarts.size() > 0) {
|
||||||
|
|
||||||
cashierCarts.parallelStream().forEach(it -> {
|
cashierCarts.parallelStream().filter(o -> ObjectUtil.defaultIfNull(o.getIsPrint(), 0) == 1).forEach(it -> {
|
||||||
|
|
||||||
String categoryId;
|
String categoryId;
|
||||||
if (ObjectUtil.isEmpty(it.getCategoryId())) {
|
if (ObjectUtil.isEmpty(it.getCategoryId())) {
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ import org.apache.http.util.EntityUtils;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
|
@ -230,7 +231,7 @@ public class FeieyunPrintUtil {
|
||||||
for (OrderDetailPO.Detail detail : detailPO.getDetailList()) {
|
for (OrderDetailPO.Detail detail : detailPO.getDetailList()) {
|
||||||
String productName = detail.getProductName();
|
String productName = detail.getProductName();
|
||||||
String number = detail.getNumber();
|
String number = detail.getNumber();
|
||||||
String amount = detail.getAmount();
|
String amount = toPlainStr(detail.getAmount());
|
||||||
//58mm的机器,一行打印16个汉字,32个字母; 80mm的机器,一行打印24个汉字,48个字母
|
//58mm的机器,一行打印16个汉字,32个字母; 80mm的机器,一行打印24个汉字,48个字母
|
||||||
//展示4列 b1代表名称列占用(14个字节) b2单价列(6个字节) b3数量列(3个字节) b4金额列(6个字节)-->这里的字节数可按自己需求自由改写,14+6+3+6再加上代码写的3个空格就是32了,58mm打印机一行总占32字节
|
//展示4列 b1代表名称列占用(14个字节) b2单价列(6个字节) b3数量列(3个字节) b4金额列(6个字节)-->这里的字节数可按自己需求自由改写,14+6+3+6再加上代码写的3个空格就是32了,58mm打印机一行总占32字节
|
||||||
//String row = FeieYunUtil.getRow(productName, "",number, amount, 14, 6,3, 6)
|
//String row = FeieYunUtil.getRow(productName, "",number, amount, 14, 6,3, 6)
|
||||||
|
|
@ -245,22 +246,22 @@ public class FeieyunPrintUtil {
|
||||||
log.error("打印数据>>>>>>>>>>>>>>>>>>>>>:{}{}", detailPO.getDiscountAmount(), detailPO.getDiscountAdio());
|
log.error("打印数据>>>>>>>>>>>>>>>>>>>>>:{}{}", detailPO.getDiscountAmount(), detailPO.getDiscountAdio());
|
||||||
if (ObjectUtil.isNotNull(detailPO.getDiscountAmount()) && ObjectUtil.isNotNull(detailPO.getDiscountAdio())) {
|
if (ObjectUtil.isNotNull(detailPO.getDiscountAmount()) && ObjectUtil.isNotNull(detailPO.getDiscountAdio())) {
|
||||||
data.append("--------------------------------<BR>");
|
data.append("--------------------------------<BR>");
|
||||||
data.append(StrUtil.format("原价:{}<BR>", detailPO.getReceiptsAmount()));
|
data.append(StrUtil.format("原价:{}<BR>", toPlainStr(detailPO.getReceiptsAmount())));
|
||||||
data.append(StrUtil.format("折扣:-{}<BR>", NumberUtil.null2Zero(new BigDecimal(detailPO.getDiscountAmount())).toPlainString()));
|
data.append(StrUtil.format("折扣:-{}<BR>", toPlainStr(detailPO.getDiscountAmount())));
|
||||||
}
|
}
|
||||||
data.append("--------------------------------<BR>");
|
data.append("--------------------------------<BR>");
|
||||||
String t = "¥" + (ObjectUtil.isEmpty(detailPO.getDiscountAmount()) || ObjectUtil.isNull(detailPO.getDiscountAmount()) ? detailPO.getReceiptsAmount() : new BigDecimal(detailPO.getReceiptsAmount()).subtract(new BigDecimal(detailPO.getDiscountAmount())).toPlainString());
|
String t = "¥" + (ObjectUtil.isEmpty(detailPO.getDiscountAmount()) || ObjectUtil.isNull(detailPO.getDiscountAmount()) ? toPlainStr(detailPO.getReceiptsAmount()) : NumberUtil.sub(new BigDecimal(detailPO.getReceiptsAmount()), new BigDecimal(detailPO.getDiscountAmount())).setScale(2, RoundingMode.DOWN).toPlainString());
|
||||||
if (orderType.equals("return")) {
|
if (orderType.equals("return")) {
|
||||||
data.append(StrUtil.format("<B>应退:{}</B><BR>", t));
|
data.append(StrUtil.format("<B>应退:{}</B><BR>", t));
|
||||||
} else {
|
} else {
|
||||||
data.append(StrUtil.format("<B>应收:{}</B><BR>", t));
|
data.append(StrUtil.format("<B>应收:{}</B><BR>", t));
|
||||||
}
|
}
|
||||||
if (ObjectUtil.isNotEmpty(detailPO.getPayType()) && ObjectUtil.isNotNull(detailPO.getPayType()) && detailPO.getPayType().equals("deposit")) {
|
if (ObjectUtil.isNotEmpty(detailPO.getPayType()) && ObjectUtil.isNotNull(detailPO.getPayType()) && detailPO.getPayType().equals("deposit")) {
|
||||||
data.append(StrUtil.format("储值:{}<BR>", detailPO.getReceiptsAmount()));
|
data.append(StrUtil.format("储值:{}<BR>", toPlainStr(detailPO.getReceiptsAmount())));
|
||||||
data.append("--------------------------------<BR>");
|
data.append("--------------------------------<BR>");
|
||||||
data.append(StrUtil.format("积分:{}<BR>", detailPO.getIntegral()));
|
data.append(StrUtil.format("积分:{}<BR>", detailPO.getIntegral()));
|
||||||
}
|
}
|
||||||
data.append(StrUtil.format("余额:{}<BR>", detailPO.getBalance()));
|
data.append(StrUtil.format("余额:{}<BR>", toPlainStr(detailPO.getBalance())));
|
||||||
data.append("--------------------------------<BR>");
|
data.append("--------------------------------<BR>");
|
||||||
if (ObjectUtil.isNotEmpty(detailPO.getRemark()) && ObjectUtil.isNotNull(detailPO.getRemark())) {
|
if (ObjectUtil.isNotEmpty(detailPO.getRemark()) && ObjectUtil.isNotNull(detailPO.getRemark())) {
|
||||||
data.append(StrUtil.format("<L><BOLD>备注:{}</BOLD></L><BR>", detailPO.getRemark()));
|
data.append(StrUtil.format("<L><BOLD>备注:{}</BOLD></L><BR>", detailPO.getRemark()));
|
||||||
|
|
@ -270,6 +271,13 @@ public class FeieyunPrintUtil {
|
||||||
return data.toString();
|
return data.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static String toPlainStr(String str) {
|
||||||
|
if (StrUtil.isBlank(str)) {
|
||||||
|
return "0";
|
||||||
|
}
|
||||||
|
return NumberUtil.roundDown(new BigDecimal(str), 2).toPlainString();
|
||||||
|
}
|
||||||
|
|
||||||
public static String[] getCashPrintData(OrderDetailPO detailPO, String sn, String type, String orderType, String printerNum) {
|
public static String[] getCashPrintData(OrderDetailPO detailPO, String sn, String type, String orderType, String printerNum) {
|
||||||
String content = buildPrintContent(detailPO, type, orderType);
|
String content = buildPrintContent(detailPO, type, orderType);
|
||||||
|
|
||||||
|
|
@ -488,7 +496,12 @@ public class FeieyunPrintUtil {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
//testPrint();
|
//testPrint();
|
||||||
//testPrint2();
|
//testPrint2();
|
||||||
testPrint3();
|
String a = "12.0000";
|
||||||
|
String s = new BigDecimal(a).setScale(2, RoundingMode.DOWN).toPlainString();
|
||||||
|
System.out.println(s);
|
||||||
|
String s1 = toPlainStr(a);
|
||||||
|
System.out.println(s1);
|
||||||
|
//testPrint3();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void testPrint() {
|
public static void testPrint() {
|
||||||
|
|
@ -551,7 +564,4 @@ public class FeieyunPrintUtil {
|
||||||
System.out.println(UnicodeUtil.toString(resp));
|
System.out.println(UnicodeUtil.toString(resp));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.chaozhanggui.system.cashierservice.util;
|
package com.chaozhanggui.system.cashierservice.util;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.NumberUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.http.HttpUtil;
|
import cn.hutool.http.HttpUtil;
|
||||||
|
|
@ -18,6 +19,7 @@ import org.springframework.util.MultiValueMap;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -87,12 +89,12 @@ public class PrinterUtils {
|
||||||
builder.append("<S><L>时间: ").append(date).append(" </L></S><BR><BR><BR>");
|
builder.append("<S><L>时间: ").append(date).append(" </L></S><BR><BR><BR>");
|
||||||
remark = StrUtil.emptyToDefault(remark, "");
|
remark = StrUtil.emptyToDefault(remark, "");
|
||||||
if (productName.length() > 4 || remark.length() > 4) {
|
if (productName.length() > 4 || remark.length() > 4) {
|
||||||
builder.append("<CS:32>").append(productName).append(" ").append(number).append("</CS><BR>");
|
builder.append("<CS:32>").append(productName).append(" x ").append(number).append("</CS><BR>");
|
||||||
if (StrUtil.isNotBlank(remark)) {
|
if (StrUtil.isNotBlank(remark)) {
|
||||||
builder.append("<CS:32>").append(remark).append(" </CS><BR>");
|
builder.append("<CS:32>").append(remark).append(" </CS><BR>");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
builder.append("<B>").append(productName).append(" ").append(number).append("</B><BR>");
|
builder.append("<B>").append(productName).append(" x ").append(number).append("</B><BR>");
|
||||||
if (StrUtil.isNotBlank(remark)) {
|
if (StrUtil.isNotBlank(remark)) {
|
||||||
builder.append("<B>").append(remark).append(" </B><BR>");
|
builder.append("<B>").append(remark).append(" </B><BR>");
|
||||||
}
|
}
|
||||||
|
|
@ -130,19 +132,19 @@ public class PrinterUtils {
|
||||||
int count = getProducrName(detail.getProductName());
|
int count = getProducrName(detail.getProductName());
|
||||||
if (count <= 0) {
|
if (count <= 0) {
|
||||||
int length = 15 - (detail.getProductName().length() - 4);
|
int length = 15 - (detail.getProductName().length() - 4);
|
||||||
sb.append("<S>").append(String.format("%-" + length + "s", detail.getProductName()).replace(' ', paddingCharacter)).append(String.format("%-4s", detail.getNumber()).replace(' ', paddingCharacter)).append(String.format("%8s", detail.getAmount()).replace(' ', paddingCharacter)).append("</S><BR>");
|
sb.append("<S>").append(String.format("%-" + length + "s", detail.getProductName()).replace(' ', paddingCharacter)).append(String.format("%-4s", detail.getNumber()).replace(' ', paddingCharacter)).append(String.format("%8s", toPlainStr(detail.getAmount())).replace(' ', paddingCharacter)).append("</S><BR>");
|
||||||
} else {
|
} else {
|
||||||
int length = 15 + count - (detail.getProductName().length() - 4);
|
int length = 15 + count - (detail.getProductName().length() - 4);
|
||||||
sb.append("<S>").append(String.format("%-" + length + "s", detail.getProductName()).replace(' ', paddingCharacter)).append(String.format("%-4s", detail.getNumber()).replace(' ', paddingCharacter)).append(String.format("%8s", detail.getAmount()).replace(' ', paddingCharacter)).append("</S><BR>");
|
sb.append("<S>").append(String.format("%-" + length + "s", detail.getProductName()).replace(' ', paddingCharacter)).append(String.format("%-4s", detail.getNumber()).replace(' ', paddingCharacter)).append(String.format("%8s", toPlainStr(detail.getAmount())).replace(' ', paddingCharacter)).append("</S><BR>");
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (detail.getProductName().length() > 10) {
|
} else if (detail.getProductName().length() > 10) {
|
||||||
|
|
||||||
sb.append("<S>").append(detail.getProductName()).append("</S><BR>");
|
sb.append("<S>").append(detail.getProductName()).append("</S><BR>");
|
||||||
sb.append("<S>").append(String.format("%20s", detail.getNumber()).replace(' ', paddingCharacter)).append(String.format("%11s", detail.getAmount()).replace(' ', paddingCharacter)).append("</S><BR>");
|
sb.append("<S>").append(String.format("%20s", detail.getNumber()).replace(' ', paddingCharacter)).append(String.format("%11s", toPlainStr(detail.getAmount())).replace(' ', paddingCharacter)).append("</S><BR>");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
sb.append("<S>").append(String.format("%-15s", detail.getProductName()).replace(' ', paddingCharacter)).append(String.format("%-4s", detail.getNumber()).replace(' ', paddingCharacter)).append(String.format("%8s", detail.getAmount()).replace(' ', paddingCharacter)).append("</S><BR>");
|
sb.append("<S>").append(String.format("%-15s", detail.getProductName()).replace(' ', paddingCharacter)).append(String.format("%-4s", detail.getNumber()).replace(' ', paddingCharacter)).append(String.format("%8s", toPlainStr(detail.getAmount())).replace(' ', paddingCharacter)).append("</S><BR>");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (detail.getSpec() != null && ObjectUtil.isNotEmpty(detail.getSpec())) {
|
if (detail.getSpec() != null && ObjectUtil.isNotEmpty(detail.getSpec())) {
|
||||||
|
|
@ -153,13 +155,13 @@ public class PrinterUtils {
|
||||||
|
|
||||||
if (ObjectUtil.isNotNull(detailPO.getDiscountAmount()) && ObjectUtil.isNotNull(detailPO.getDiscountAdio())) {
|
if (ObjectUtil.isNotNull(detailPO.getDiscountAmount()) && ObjectUtil.isNotNull(detailPO.getDiscountAdio())) {
|
||||||
sb.append("------------------------<BR>");
|
sb.append("------------------------<BR>");
|
||||||
sb.append("<S>原价:".concat(String.format("%15s", detailPO.getReceiptsAmount()).replace(' ', paddingCharacter)).concat("</S><BR>"));
|
sb.append("<S>原价:".concat(String.format("%15s", toPlainStr(detailPO.getReceiptsAmount())).replace(' ', paddingCharacter)).concat("</S><BR>"));
|
||||||
sb.append("<S>折扣: ".concat(String.format("%15s", "-".concat(new BigDecimal(detailPO.getDiscountAmount()).toPlainString())).replace(' ', paddingCharacter)).concat("</S><BR>"));
|
sb.append("<S>折扣: ".concat(String.format("%15s", "-".concat(toPlainStr(detailPO.getDiscountAmount()))).replace(' ', paddingCharacter)).concat("</S><BR>"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
sb.append("------------------------<BR>");
|
sb.append("------------------------<BR>");
|
||||||
String t = "¥" + (ObjectUtil.isEmpty(detailPO.getDiscountAmount()) || ObjectUtil.isNull(detailPO.getDiscountAmount()) ? detailPO.getReceiptsAmount() : new BigDecimal(detailPO.getReceiptsAmount()).subtract(new BigDecimal(detailPO.getDiscountAmount())).toPlainString());
|
String t = "¥" + (ObjectUtil.isEmpty(detailPO.getDiscountAmount()) || ObjectUtil.isNull(detailPO.getDiscountAmount()) ? toPlainStr(detailPO.getReceiptsAmount()) : NumberUtil.sub(new BigDecimal(detailPO.getReceiptsAmount()), new BigDecimal(detailPO.getDiscountAmount())).setScale(2, RoundingMode.DOWN).toPlainString());
|
||||||
t = String.format("%11s", t).replace(' ', paddingCharacter);
|
t = String.format("%11s", t).replace(' ', paddingCharacter);
|
||||||
if (orderType.equals("return")) {
|
if (orderType.equals("return")) {
|
||||||
sb.append("<F>应退" + t + "</F><BR>");
|
sb.append("<F>应退" + t + "</F><BR>");
|
||||||
|
|
@ -168,12 +170,12 @@ public class PrinterUtils {
|
||||||
|
|
||||||
}
|
}
|
||||||
if (ObjectUtil.isNotEmpty(detailPO.getPayType()) && ObjectUtil.isNotNull(detailPO.getPayType()) && detailPO.getPayType().equals("deposit")) {
|
if (ObjectUtil.isNotEmpty(detailPO.getPayType()) && ObjectUtil.isNotNull(detailPO.getPayType()) && detailPO.getPayType().equals("deposit")) {
|
||||||
sb.append("<S>储值¥" + detailPO.getReceiptsAmount() + " </S><BR>");
|
sb.append("<S>储值¥" + toPlainStr(detailPO.getReceiptsAmount()) + " </S><BR>");
|
||||||
sb.append("------------------------<BR>");
|
sb.append("------------------------<BR>");
|
||||||
sb.append("<S>积分:" + detailPO.getIntegral() + "</S><BR>");
|
sb.append("<S>积分:" + detailPO.getIntegral() + "</S><BR>");
|
||||||
}
|
}
|
||||||
|
|
||||||
sb.append("<S>余额:" + detailPO.getBalance() + "</S><BR>");
|
sb.append("<S>余额:" + toPlainStr(detailPO.getBalance()) + "</S><BR>");
|
||||||
sb.append("------------------------<BR>");
|
sb.append("------------------------<BR>");
|
||||||
|
|
||||||
if (ObjectUtil.isNotEmpty(detailPO.getRemark()) && ObjectUtil.isNotNull(detailPO.getRemark())) {
|
if (ObjectUtil.isNotEmpty(detailPO.getRemark()) && ObjectUtil.isNotNull(detailPO.getRemark())) {
|
||||||
|
|
@ -194,6 +196,13 @@ public class PrinterUtils {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static String toPlainStr(String str) {
|
||||||
|
if (StrUtil.isBlank(str)) {
|
||||||
|
return "0";
|
||||||
|
}
|
||||||
|
return NumberUtil.roundDown(new BigDecimal(str), 2).toPlainString();
|
||||||
|
}
|
||||||
|
|
||||||
public static String getCallNumPrintData(CallNumPrintPO po) {
|
public static String getCallNumPrintData(CallNumPrintPO po) {
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
@ -383,20 +392,10 @@ public class PrinterUtils {
|
||||||
header.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
|
header.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
|
||||||
|
|
||||||
HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(multiValueMap, header);
|
HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(multiValueMap, header);
|
||||||
String httpResponse;
|
String httpResponse = restTemplate.postForObject(URL_STR,
|
||||||
try {
|
httpEntity, String.class);
|
||||||
httpResponse = restTemplate.postForObject(URL_STR,
|
|
||||||
httpEntity, String.class);
|
System.out.println("map" + httpResponse);
|
||||||
System.out.println("map" + httpResponse);
|
|
||||||
return httpResponse;
|
|
||||||
} catch (Exception e) {
|
|
||||||
if (StrUtil.containsAny(e.getMessage(), "timed out")) {
|
|
||||||
log.error("请求云享印超时,请稍后再试");
|
|
||||||
httpResponse = "{\"code\":-1, \"msg\":\"请求云享印超时,请稍后再试\"}";
|
|
||||||
} else {
|
|
||||||
httpResponse = "{\"code\":-2, \"msg\":\"请求云享印出错,请稍后再试\"}";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return httpResponse;
|
return httpResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -418,7 +417,7 @@ public class PrinterUtils {
|
||||||
* 检查打印状态
|
* 检查打印状态
|
||||||
*
|
*
|
||||||
* @param devName 设备名称,(唯一) 对应配置表中的address字段即(IP地址/打印机编号)
|
* @param devName 设备名称,(唯一) 对应配置表中的address字段即(IP地址/打印机编号)
|
||||||
* @param taskId 打印任务id,用于复查打印状态,云想印=orderId
|
* @param taskId 打印任务id,用于复查打印状态,云想印=orderId
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static String checkPrintStatus(String devName, String taskId) {
|
public static String checkPrintStatus(String devName, String taskId) {
|
||||||
|
|
@ -465,7 +464,11 @@ public class PrinterUtils {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
|
String str = "{\"bizType\":\"2\",\"broadCastType\":\"1\",\"money\":\"10000000\"}";
|
||||||
|
printTickets(str, 2, 1, "BSJQG01YJ0001", null);
|
||||||
|
if (1 == 1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
List<HandoverInfo.PayInfo> payInfos = new ArrayList<>();
|
List<HandoverInfo.PayInfo> payInfos = new ArrayList<>();
|
||||||
|
|
|
||||||
|
|
@ -543,11 +543,13 @@
|
||||||
group by shop_id,product_id
|
group by shop_id,product_id
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!--
|
||||||
<update id="updateStockById">
|
<update id="updateStockById">
|
||||||
update tb_product
|
update tb_product
|
||||||
set stock_number = stock_number - #{num,jdbcType=INTEGER}
|
set stock_number = stock_number - #{num,jdbcType=INTEGER}
|
||||||
where id = #{productId}
|
where id = #{productId}
|
||||||
</update>
|
</update>
|
||||||
|
-->
|
||||||
|
|
||||||
<select id="selectBySkuId" resultType="com.chaozhanggui.system.cashierservice.entity.po.ProConsSkuInfo">
|
<select id="selectBySkuId" resultType="com.chaozhanggui.system.cashierservice.entity.po.ProConsSkuInfo">
|
||||||
SELECT
|
SELECT
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue