Merge remote-tracking branch 'origin/hph' into dev

This commit is contained in:
牛叉闪闪 2024-07-25 14:57:37 +08:00
commit 2aa2afbd2b
6 changed files with 107 additions and 118 deletions

View File

@ -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();
}
}

View File

@ -185,34 +185,28 @@ public class PrintMechineConsumer {
return;
}
List<TbCashierCart> cashierCarts = tbCashierCartMapper.selectByOrderId(orderInfo.getId().toString(),"final");
if (ObjectUtil.isNotEmpty(cashierCarts) && cashierCarts.size() > 0) {
List<TbOrderDetail> tbOrderDetails=tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId));
if(ObjectUtil.isNotEmpty(tbOrderDetails)&&tbOrderDetails.size()>0) {
List<OrderDetailPO.Detail> 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);
}

View File

@ -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);

View File

@ -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<ProductInfoPO> productInfoPOS = shopUserDutyPayMapper.selectProductByDutyId(shopUserDuty.getId());
List<ProductInfo> 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));
});
}

View File

@ -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("<S>"+String.format("%-15s","品名").replace(' ', paddingCharacter)+String.format("%-4s","数量").replace(' ', paddingCharacter)+String.format("%4s","小计").replace(' ', paddingCharacter)+"</S><BR>");
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("<S>"+String.format("%-"+length+"s",detail.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",detail.getNumber()).replace(' ', paddingCharacter)+String.format("%8s",detail.getAmount()).replace(' ', paddingCharacter)+"</S><BR>");
}else {
int length=15+count-(detail.getProductName().length()-4);
sb.append("<S>"+String.format("%-"+length+"s",detail.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",detail.getNumber()).replace(' ', paddingCharacter)+String.format("%8s",detail.getAmount()).replace(' ', paddingCharacter)+"</S><BR>");
}
}else if(detail.getProductName().length()>10){
if(detail.getProductName().length()>8){
sb.append("<S>"+detail.getProductName()+"</S><BR>");
sb.append("<S>"+String.format("%20s",detail.getNumber()).replace(' ', paddingCharacter)+String.format("%11s",detail.getAmount()).replace(' ', paddingCharacter)+"</S><BR>");
sb.append("<S>"+String.format("%16s",detail.getNumber()).replace(' ', paddingCharacter)+String.format("%10s",detail.getAmount()).replace(' ', paddingCharacter)+"</S><BR>");
}else {
sb.append("<S>"+String.format("%-15s",detail.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",detail.getNumber()).replace(' ', paddingCharacter)+String.format("%8s",detail.getAmount()).replace(' ', paddingCharacter)+"</S><BR>");
int tt=16-detail.getProductName().length();
sb.append("<S>"+String.format("%-"+tt+"s",detail.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",detail.getNumber()).replace(' ', paddingCharacter)+String.format("%6s",detail.getAmount()).replace(' ', paddingCharacter)+"</S><BR>");
}
if(detail.getSpec()!=null&& ObjectUtil.isNotEmpty(detail.getSpec())){
@ -205,45 +195,20 @@ public class PrinterUtils {
sb.append("<S>商品数据</S><BR>");
List<ProductInfo> productInfo1=handoverInfo.getProductInfos();
Integer max= productInfo1.stream().max(Comparator.comparing(it->it.getProductName().length())).get().getProductName().length();
char paddingCharacter = ' ';
sb.append("<S> "+String.format("%-10s","品名").replace(' ', paddingCharacter)+String.format("%-4s","数量").replace(' ', paddingCharacter)+String.format("%4s","小计").replace(' ', paddingCharacter)+"</S><BR>");
sb.append("<S> "+String.format("%-18s","品名").replace(' ', paddingCharacter)+String.format("%-4s","数量").replace(' ', paddingCharacter)+"</S><BR>");
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("<S> "+String.format("%-"+length+"s",productInfo.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",productInfo.getNum()).replace(' ', paddingCharacter)+String.format("%4s",productInfo.getAmount()).replace(' ', paddingCharacter)+"</S><BR>");
}else {
int length=15+count/2-(productInfo.getProductName().length()-4);
sb.append("<S> "+String.format("%-"+length+"s",productInfo.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",productInfo.getNum()).replace(' ', paddingCharacter)+String.format("%4s",productInfo.getAmount()).replace(' ', paddingCharacter)+"</S><BR>");
}
}else if(productInfo.getProductName().length()>10){
if(productInfo.getProductName().length()>=16){
sb.append("<S> "+productInfo.getProductName()+"</S><BR>");
sb.append("<S> "+String.format("%20s",productInfo.getNum()).replace(' ', paddingCharacter)+String.format("%11s",productInfo.getAmount()).replace(' ', paddingCharacter)+"</S><BR>");
sb.append("<S> "+String.format("%22s",productInfo.getNum()).replace(' ', paddingCharacter)+"</S><BR>");
}else {
if(productInfo.getProductName().length()<max){
int tt=max-productInfo.getProductName().length()+10;
sb.append("<S> "+String.format("%-"+tt+"s",productInfo.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",productInfo.getNum()).replace(' ', paddingCharacter)+String.format("%6s",productInfo.getAmount()).replace(' ', paddingCharacter)+"</S><BR>");
}else {
sb.append("<S> "+String.format("%-10s",productInfo.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",productInfo.getNum()).replace(' ', paddingCharacter)+String.format("%6s",productInfo.getAmount()).replace(' ', paddingCharacter)+"</S><BR>");
}
int tt=21-productInfo.getProductName().length();
sb.append("<S> "+String.format("%-"+tt+"s",productInfo.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",productInfo.getNum()).replace(' ', paddingCharacter)+"</S><BR>");
}
sb.append("<BR>");
}
@ -282,10 +247,6 @@ public class PrinterUtils {
sb.append("<BR>");
}
}
@ -387,39 +348,32 @@ public class PrinterUtils {
public static void main(String[] args)throws Exception {
int t=0;
//
List<HandoverInfo.PayInfo> 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<HandoverInfo.MemberData> 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<ProductInfo> productInfos=new ArrayList<>();
//
// List<HandoverInfo.PayInfo> 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<HandoverInfo.MemberData> 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<OrderDetailPO.Detail> detailList= new ArrayList<>();

View File

@ -53,7 +53,7 @@
<!-- 要生成的表tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
<!-- <table tableName="%" schema="fycashier" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" ></table>-->
<table tableName="tb_user_shop_msg" domainObjectName="TbUserShopMsg"
<table tableName="tb_handover" domainObjectName="tbHandover"
enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" selectByExampleQueryId="false" >
</table>