@@ -103,16 +103,16 @@ public interface PrinterImpl {
*/
*/
default String getDividingLine ( ) {
default String getDividingLine ( ) {
String line = StrUtil . repeat ( " - " , 32 ) ;
String line = StrUtil . repeat ( " - " , 32 ) ;
return getF ormatLabel( line , getSignLabelInfo ( ) . s ) ;
return f ormatLabel( line , getSignLabelInfo ( ) . s ) ;
}
}
default String getDividingLine ( Integer num ) {
default String getDividingLine ( Integer num ) {
int length = num = = null ? 32 : num ;
int length = num = = null ? 32 : num ;
String line = StrUtil . repeat ( " - " , length ) ;
String line = StrUtil . repeat ( " - " , length ) ;
return getF ormatLabel( line , getSignLabelInfo ( ) . s ) ;
return f ormatLabel( line , getSignLabelInfo ( ) . s ) ;
}
}
default String getF ormatLabel( String text , String [ ] . . . labels ) {
default String f ormatLabel( String text , String [ ] . . . labels ) {
StringBuilder str = new StringBuilder ( ) ;
StringBuilder str = new StringBuilder ( ) ;
for ( String [ ] label : labels ) {
for ( String [ ] label : labels ) {
str . append ( label [ 0 ] ) ;
str . append ( label [ 0 ] ) ;
@@ -131,48 +131,48 @@ public interface PrinterImpl {
default String buildHandoverData ( HandoverRecordDTO handoverRecord ) {
default String buildHandoverData ( HandoverRecordDTO handoverRecord ) {
PrintSignLabel signLabelInfo = getSignLabelInfo ( ) ;
PrintSignLabel signLabelInfo = getSignLabelInfo ( ) ;
StringBuilder builder = new StringBuilder ( )
StringBuilder builder = new StringBuilder ( )
. append ( getF ormatLabel( handoverRecord . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br )
. append ( f ormatLabel( handoverRecord . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( " 交班小票 " , signLabelInfo . center ) ) . append ( signLabelInfo . br )
. append ( f ormatLabel( " 交班小票 " , signLabelInfo . center ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( " 交班时间: " + DateUtil . format ( handoverRecord . getHandoverTime ( ) , " yyyy/MM/dd HH:mm:ss " ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( f ormatLabel( " 交班时间: " + DateUtil . format ( handoverRecord . getHandoverTime ( ) , " yyyy/MM/dd HH:mm:ss " ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( " 收银员: " + handoverRecord . getStaffName ( ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( f ormatLabel( " 收银员: " + handoverRecord . getStaffName ( ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( " 交班周期: " + DateUtil . format ( handoverRecord . getLoginTime ( ) , " dd日HH:mm " ) + " -- " +
. append ( f ormatLabel( " 交班周期: " + DateUtil . format ( handoverRecord . getLoginTime ( ) , " dd日HH:mm " ) + " -- " +
DateUtil . format ( handoverRecord . getHandoverTime ( ) , " dd日HH:mm " ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
DateUtil . format ( handoverRecord . getHandoverTime ( ) , " dd日HH:mm " ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( signLabelInfo . br )
. append ( signLabelInfo . br )
. append ( signLabelInfo . br )
. append ( signLabelInfo . br )
. append ( getF ormatLabel( " 当班营业总额: " + handoverRecord . getTurnover ( ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( f ormatLabel( " 当班营业总额: " + handoverRecord . getTurnover ( ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( " 实际收款的支付方式 " , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( f ormatLabel( " 实际收款的支付方式 " , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( leftRight Align( " 现金: " , bdToStr ( handoverRecord . getCash ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( f ormatLabel( LR Align( " 现金: " , bdToStr ( handoverRecord . getCash ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( leftRight Align( " 微信: " , bdToStr ( handoverRecord . getWechat ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( f ormatLabel( LR Align( " 微信: " , bdToStr ( handoverRecord . getWechat ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( leftRight Align( " 支付宝: " , bdToStr ( handoverRecord . getAlipay ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( f ormatLabel( LR Align( " 支付宝: " , bdToStr ( handoverRecord . getAlipay ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( leftRight Align( " 二维码收款: " , bdToStr ( handoverRecord . getSelfScan ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( f ormatLabel( LR Align( " 二维码收款: " , bdToStr ( handoverRecord . getSelfScan ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( leftRight Align( " 扫码收款: " , bdToStr ( handoverRecord . getBarScan ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( f ormatLabel( LR Align( " 扫码收款: " , bdToStr ( handoverRecord . getBarScan ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( leftRight Align( " 充值: " , bdToStr ( handoverRecord . getRecharge ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( f ormatLabel( LR Align( " 充值: " , bdToStr ( handoverRecord . getRecharge ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( " 非实际收款的支付方式 " , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( f ormatLabel( " 非实际收款的支付方式 " , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( leftRight Align( " 挂账: " , bdToStr ( handoverRecord . getOwed ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( f ormatLabel( LR Align( " 挂账: " , bdToStr ( handoverRecord . getOwed ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( leftRight Align( " 余额: " , bdToStr ( handoverRecord . getBalance ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( f ormatLabel( LR Align( " 余额: " , bdToStr ( handoverRecord . getBalance ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( getDividingLine ( ) ) . append ( signLabelInfo . br )
. append ( getDividingLine ( ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( " 退菜/退款 " , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( f ormatLabel( " 退菜/退款 " , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( leftRight Align( " 退款金额: " , bdToStr ( handoverRecord . getRefundAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( f ormatLabel( LR Align( " 退款金额: " , bdToStr ( handoverRecord . getRefundAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( leftRight Align( " 退菜数量: " , bdToStr ( handoverRecord . getReturnDishCount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( f ormatLabel( LR Align( " 退菜数量: " , bdToStr ( handoverRecord . getReturnDishCount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( getDividingLine ( ) ) . append ( signLabelInfo . br )
. append ( getDividingLine ( ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( leftRight Align( " 订单数量/订单总额 " , handoverRecord . getOrderCount ( ) + " / " + bdToStr ( handoverRecord . getOrderTurnover ( ) ) , 32 ) , signLabelInfo . s ) )
. append ( f ormatLabel( LR Align( " 订单数量/订单总额 " , handoverRecord . getOrderCount ( ) + " / " + bdToStr ( handoverRecord . getOrderTurnover ( ) ) , 32 ) , signLabelInfo . s ) )
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
if ( StrUtil . isNotBlank ( handoverRecord . getCategoryData ( ) ) ) {
if ( StrUtil . isNotBlank ( handoverRecord . getCategoryData ( ) ) ) {
builder . append ( getF ormatLabel( " ----------- 销售数据 ----------- " , signLabelInfo . s ) ) . append ( signLabelInfo . br )
builder . append ( f ormatLabel( " ----------- 销售数据 ----------- " , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( key3 ( " 商品分类 " , " 数量 " , " 总计 " , 14 , 8 ) , signLabelInfo . s ) )
. append ( f ormatLabel( key3 ( " 商品分类 " , " 数量 " , " 总计 " , 14 , 8 ) , signLabelInfo . s ) )
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
JSONArray . parseArray ( handoverRecord . getCategoryData ( ) ) . forEach ( item - > {
JSONArray . parseArray ( handoverRecord . getCategoryData ( ) ) . forEach ( item - > {
JSONObject info = ( JSONObject ) item ;
JSONObject info = ( JSONObject ) item ;
String categoryName = info . getString ( " categoryName " ) ;
String categoryName = info . getString ( " categoryName " ) ;
Integer quantity = info . getInteger ( " quantity " ) ;
Integer quantity = info . getInteger ( " quantity " ) ;
BigDecimal amount = info . getBigDecimal ( " amount " ) ;
BigDecimal amount = info . getBigDecimal ( " amount " ) ;
builder . append ( getF ormatLabel( key3 ( categoryName , quantity . toString ( ) , bdToStr ( amount ) , 14 , 8 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( key3 ( categoryName , quantity . toString ( ) , bdToStr ( amount ) , 14 , 8 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
} ) ;
} ) ;
}
}
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br )
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br )
. append ( getF ormatLabel( " 打印时间: " + DateUtil . format ( DateUtil . date ( ) , " yyyy/MM/dd HH:mm:ss " ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( f ormatLabel( " 打印时间: " + DateUtil . format ( DateUtil . date ( ) , " yyyy/MM/dd HH:mm:ss " ) , signLabelInfo . s ) ) . append ( signLabelInfo . br )
. append ( signLabelInfo . getOut ( 180 ) )
. append ( signLabelInfo . getOut ( 180 ) )
. append ( signLabelInfo . cut ) ;
. append ( signLabelInfo . cut ) ;
return builder . toString ( ) ;
return builder . toString ( ) ;
@@ -188,16 +188,16 @@ public interface PrinterImpl {
default String buildOrderPrintData ( OrderPrintDTO orderPrintDTO , List < OrderDetail > detailList ) {
default String buildOrderPrintData ( OrderPrintDTO orderPrintDTO , List < OrderDetail > detailList ) {
PrintSignLabel signLabelInfo = getSignLabelInfo ( ) ;
PrintSignLabel signLabelInfo = getSignLabelInfo ( ) ;
StringBuilder data = new StringBuilder ( ) ;
StringBuilder data = new StringBuilder ( ) ;
data . append ( getF ormatLabel( orderPrintDTO . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( orderPrintDTO . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( orderPrintDTO . getPrintTitle ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( orderPrintDTO . getPrintTitle ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( orderPrintDTO . getPickupNum ( ) , signLabelInfo . f ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( orderPrintDTO . getPickupNum ( ) , signLabelInfo . f ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( getF ormatLabel( leftRight Align( orderPrintDTO . getPrintType ( ) , StrUtil . isNotBlank ( orderPrintDTO . getSeatNum ( ) ) ? orderPrintDTO . getSeatNum ( ) + " 人 " : " " , 32 ) )
data . append ( f ormatLabel( f ormatLabel( LR Align( orderPrintDTO . getPrintType ( ) , StrUtil . isNotBlank ( orderPrintDTO . getSeatNum ( ) ) ? orderPrintDTO . getSeatNum ( ) + " 人 " : " " , 32 ) )
, signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
, signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
if ( StrUtil . isNotBlank ( orderPrintDTO . getTradeDate ( ) ) ) {
if ( StrUtil . isNotBlank ( orderPrintDTO . getTradeDate ( ) ) ) {
data . append ( getF ormatLabel( StrUtil . format ( " 结账时间:{} " , orderPrintDTO . getTradeDate ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( StrUtil . format ( " 结账时间:{} " , orderPrintDTO . getTradeDate ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
}
}
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( key3 ( " 品名 " , " 单价 " , " 数量 " , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( key3 ( " 品名 " , " 单价 " , " 数量 " , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
for ( OrderDetail detail : detailList ) {
for ( OrderDetail detail : detailList ) {
BigDecimal subtract = detail . getNum ( ) . subtract ( detail . getReturnNum ( ) ) ;
BigDecimal subtract = detail . getNum ( ) . subtract ( detail . getReturnNum ( ) ) ;
@@ -206,10 +206,10 @@ public interface PrinterImpl {
}
}
String number = subtract . stripTrailingZeros ( ) . toPlainString ( ) ;
String number = subtract . stripTrailingZeros ( ) . toPlainString ( ) ;
String unitPrice = toPlainStr ( detail . getUnitPrice ( ) . stripTrailingZeros ( ) . toPlainString ( ) ) ;
String unitPrice = toPlainStr ( detail . getUnitPrice ( ) . stripTrailingZeros ( ) . toPlainString ( ) ) ;
data . append ( getF ormatLabel( key3 ( detail . getProductName ( ) , unitPrice , number , 18 , 7 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( key3 ( detail . getProductName ( ) , unitPrice , number , 18 , 7 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
if ( StrUtil . isNotBlank ( detail . getSkuName ( ) ) ) {
if ( StrUtil . isNotBlank ( detail . getSkuName ( ) ) ) {
data . append ( getF ormatLabel( StrUtil . format ( " 规格:{} " , detail . getSkuName ( ) ) , signLabelInfo . s ) )
data . append ( f ormatLabel( StrUtil . format ( " 规格:{} " , detail . getSkuName ( ) ) , signLabelInfo . s ) )
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
}
}
String proGroupInfo = detail . getProGroupInfo ( ) ;
String proGroupInfo = detail . getProGroupInfo ( ) ;
@@ -225,39 +225,39 @@ public interface PrinterImpl {
jsonObject . getJSONArray ( " goods " ) . forEach ( item - > {
jsonObject . getJSONArray ( " goods " ) . forEach ( item - > {
String proName = ( ( JSONObject ) item ) . getString ( " proName " ) ;
String proName = ( ( JSONObject ) item ) . getString ( " proName " ) ;
String qty = ( ( JSONObject ) item ) . getString ( " number " ) ;
String qty = ( ( JSONObject ) item ) . getString ( " number " ) ;
data . append ( getF ormatLabel( key3 ( " - " + proName , " " , qty , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( key3 ( " - " + proName , " " , qty , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
} ) ;
} ) ;
}
}
}
}
if ( StrUtil . isNotBlank ( orderPrintDTO . getSeatAmount ( ) ) ) {
if ( StrUtil . isNotBlank ( orderPrintDTO . getSeatAmount ( ) ) ) {
data . append ( getF ormatLabel( key3 ( " 餐位费 " , orderPrintDTO . getSeatAmount ( ) , orderPrintDTO . getSeatNum ( ) , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( key3 ( " 餐位费 " , orderPrintDTO . getSeatAmount ( ) , orderPrintDTO . getSeatNum ( ) , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
}
}
if ( StrUtil . isNotBlank ( orderPrintDTO . getPackFee ( ) ) ) {
if ( StrUtil . isNotBlank ( orderPrintDTO . getPackFee ( ) ) ) {
data . append ( getF ormatLabel( key3 ( " 打包费 " , toPlainStr ( orderPrintDTO . getPackFee ( ) ) , " " , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( key3 ( " 打包费 " , toPlainStr ( orderPrintDTO . getPackFee ( ) ) , " " , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
}
}
data . append ( getDividingLine ( ) )
data . append ( getDividingLine ( ) )
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( leftRight Align( " 原价: " , orderPrintDTO . getOriginalAmount ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( LR Align( " 原价: " , orderPrintDTO . getOriginalAmount ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
if ( ObjectUtil . isNotNull ( orderPrintDTO . getDiscountAmount ( ) ) ) {
if ( ObjectUtil . isNotNull ( orderPrintDTO . getDiscountAmount ( ) ) ) {
data . append ( getF ormatLabel( leftRight Align( " 优惠: " , " - " + orderPrintDTO . getDiscountAmount ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( LR Align( " 优惠: " , " - " + orderPrintDTO . getDiscountAmount ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
}
}
if ( StrUtil . isNotBlank ( orderPrintDTO . getRemark ( ) ) ) {
if ( StrUtil . isNotBlank ( orderPrintDTO . getRemark ( ) ) ) {
data . append ( getF ormatLabel( StrUtil . format ( " 备注:{} " , orderPrintDTO . getRemark ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( StrUtil . format ( " 备注:{} " , orderPrintDTO . getRemark ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
}
}
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( leftRight Align( " 应付: " , orderPrintDTO . getPayAmount ( ) , 16 ) , signLabelInfo . f ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( LR Align( " 应付: " , orderPrintDTO . getPayAmount ( ) , 16 ) , signLabelInfo . f ) ) . append ( signLabelInfo . br ) ;
if ( " 结算单 " . equals ( orderPrintDTO . getPrintTitle ( ) ) ) {
if ( " 结算单 " . equals ( orderPrintDTO . getPrintTitle ( ) ) ) {
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( leftRight Align( " 已付: " , orderPrintDTO . getPayAmount ( ) , 16 ) , signLabelInfo . f ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( LR Align( " 已付: " , orderPrintDTO . getPayAmount ( ) , 16 ) , signLabelInfo . f ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( leftRight Align( " 支付方式: " , orderPrintDTO . getPayType ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( LR Align( " 支付方式: " , orderPrintDTO . getPayType ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
}
}
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( StrUtil . format ( " 操作员:{} " , orderPrintDTO . getOperator ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( StrUtil . format ( " 操作员:{} " , orderPrintDTO . getOperator ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( StrUtil . format ( " 打印时间:{} " , DateUtil . date ( ) . toString ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( StrUtil . format ( " 打印时间:{} " , DateUtil . date ( ) . toString ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( StrUtil . format ( " 订单号:{} " , orderPrintDTO . getOrderNo ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( StrUtil . format ( " 订单号:{} " , orderPrintDTO . getOrderNo ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( signLabelInfo . getOut ( 180 ) ) ;
data . append ( signLabelInfo . getOut ( 180 ) ) ;
data . append ( signLabelInfo . cut ) ;
data . append ( signLabelInfo . cut ) ;
return data . toString ( ) ;
return data . toString ( ) ;
@@ -273,15 +273,15 @@ public interface PrinterImpl {
default String buildGuestOrderPrintData ( OrderPrintDTO orderPrintDTO , List < OrderDetail > detailList ) {
default String buildGuestOrderPrintData ( OrderPrintDTO orderPrintDTO , List < OrderDetail > detailList ) {
PrintSignLabel signLabelInfo = getSignLabelInfo ( ) ;
PrintSignLabel signLabelInfo = getSignLabelInfo ( ) ;
StringBuilder data = new StringBuilder ( ) ;
StringBuilder data = new StringBuilder ( ) ;
data . append ( getF ormatLabel( orderPrintDTO . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( orderPrintDTO . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( " 客看单 " , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( " 客看单 " , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
if ( StrUtil . isNotBlank ( orderPrintDTO . getPickupNum ( ) ) ) {
if ( StrUtil . isNotBlank ( orderPrintDTO . getPickupNum ( ) ) ) {
data . append ( getF ormatLabel( orderPrintDTO . getPickupNum ( ) , signLabelInfo . f ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( orderPrintDTO . getPickupNum ( ) , signLabelInfo . f ) ) . append ( signLabelInfo . br ) ;
}
}
data . append ( getF ormatLabel( getF ormatLabel( leftRight Align( orderPrintDTO . getPrintType ( ) , StrUtil . isNotBlank ( orderPrintDTO . getSeatNum ( ) ) ? orderPrintDTO . getSeatNum ( ) + " 人 " : " " , 32 ) )
data . append ( f ormatLabel( f ormatLabel( LR Align( orderPrintDTO . getPrintType ( ) , StrUtil . isNotBlank ( orderPrintDTO . getSeatNum ( ) ) ? orderPrintDTO . getSeatNum ( ) + " 人 " : " " , 32 ) )
, signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
, signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( key3 ( " 品名 " , " 单价 " , " 数量 " , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( key3 ( " 品名 " , " 单价 " , " 数量 " , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
for ( OrderDetail detail : detailList ) {
for ( OrderDetail detail : detailList ) {
BigDecimal subtract = detail . getNum ( ) . subtract ( detail . getReturnNum ( ) ) ;
BigDecimal subtract = detail . getNum ( ) . subtract ( detail . getReturnNum ( ) ) ;
@@ -290,10 +290,10 @@ public interface PrinterImpl {
}
}
String number = subtract . stripTrailingZeros ( ) . toPlainString ( ) ;
String number = subtract . stripTrailingZeros ( ) . toPlainString ( ) ;
String unitPrice = toPlainStr ( detail . getUnitPrice ( ) . stripTrailingZeros ( ) . toPlainString ( ) ) ;
String unitPrice = toPlainStr ( detail . getUnitPrice ( ) . stripTrailingZeros ( ) . toPlainString ( ) ) ;
data . append ( getF ormatLabel( key3 ( detail . getProductName ( ) , unitPrice , number , 18 , 7 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( key3 ( detail . getProductName ( ) , unitPrice , number , 18 , 7 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
if ( StrUtil . isNotBlank ( detail . getSkuName ( ) ) ) {
if ( StrUtil . isNotBlank ( detail . getSkuName ( ) ) ) {
data . append ( getF ormatLabel( StrUtil . format ( " 规格:{} " , detail . getSkuName ( ) ) , signLabelInfo . s ) )
data . append ( f ormatLabel( StrUtil . format ( " 规格:{} " , detail . getSkuName ( ) ) , signLabelInfo . s ) )
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
}
}
String proGroupInfo = detail . getProGroupInfo ( ) ;
String proGroupInfo = detail . getProGroupInfo ( ) ;
@@ -309,28 +309,28 @@ public interface PrinterImpl {
jsonObject . getJSONArray ( " goods " ) . forEach ( item - > {
jsonObject . getJSONArray ( " goods " ) . forEach ( item - > {
String proName = ( ( JSONObject ) item ) . getString ( " proName " ) ;
String proName = ( ( JSONObject ) item ) . getString ( " proName " ) ;
String qty = ( ( JSONObject ) item ) . getString ( " number " ) ;
String qty = ( ( JSONObject ) item ) . getString ( " number " ) ;
data . append ( getF ormatLabel( key3 ( " - " + proName , " " , qty , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( key3 ( " - " + proName , " " , qty , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
} ) ;
} ) ;
}
}
}
}
if ( StrUtil . isNotBlank ( orderPrintDTO . getSeatAmount ( ) ) ) {
if ( StrUtil . isNotBlank ( orderPrintDTO . getSeatAmount ( ) ) ) {
data . append ( getF ormatLabel( key3 ( " 餐位费 " , orderPrintDTO . getSeatAmount ( ) , orderPrintDTO . getSeatNum ( ) , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( key3 ( " 餐位费 " , orderPrintDTO . getSeatAmount ( ) , orderPrintDTO . getSeatNum ( ) , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
}
}
if ( StrUtil . isNotBlank ( orderPrintDTO . getPackFee ( ) ) ) {
if ( StrUtil . isNotBlank ( orderPrintDTO . getPackFee ( ) ) ) {
data . append ( getF ormatLabel( key3 ( " 打包费 " , toPlainStr ( orderPrintDTO . getPackFee ( ) ) , " " , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( key3 ( " 打包费 " , toPlainStr ( orderPrintDTO . getPackFee ( ) ) , " " , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
}
}
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( leftRight Align( " 原价: " , orderPrintDTO . getOriginalAmount ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( LR Align( " 原价: " , orderPrintDTO . getOriginalAmount ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
if ( ObjectUtil . isNotNull ( orderPrintDTO . getDiscountAmount ( ) ) ) {
if ( ObjectUtil . isNotNull ( orderPrintDTO . getDiscountAmount ( ) ) ) {
data . append ( getF ormatLabel( leftRight Align( " 优惠: " , " - " + orderPrintDTO . getDiscountAmount ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( LR Align( " 优惠: " , " - " + orderPrintDTO . getDiscountAmount ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
}
}
if ( StrUtil . isNotBlank ( orderPrintDTO . getRemark ( ) ) ) {
if ( StrUtil . isNotBlank ( orderPrintDTO . getRemark ( ) ) ) {
data . append ( getF ormatLabel( StrUtil . format ( " 备注:{} " , orderPrintDTO . getRemark ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( StrUtil . format ( " 备注:{} " , orderPrintDTO . getRemark ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
}
}
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( StrUtil . format ( " 操作员:{} " , orderPrintDTO . getOperator ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( StrUtil . format ( " 操作员:{} " , orderPrintDTO . getOperator ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( StrUtil . format ( " 打印时间:{} " , DateUtil . date ( ) . toString ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( StrUtil . format ( " 打印时间:{} " , DateUtil . date ( ) . toString ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( StrUtil . format ( " 订单号:{} " , orderPrintDTO . getOrderNo ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( StrUtil . format ( " 订单号:{} " , orderPrintDTO . getOrderNo ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( signLabelInfo . getOut ( 180 ) ) ;
data . append ( signLabelInfo . getOut ( 180 ) ) ;
data . append ( signLabelInfo . cut ) ;
data . append ( signLabelInfo . cut ) ;
return data . toString ( ) ;
return data . toString ( ) ;
@@ -346,14 +346,14 @@ public interface PrinterImpl {
default String buildRefundOrderPrintData ( OrderPrintDTO orderPrintDTO , List < OrderDetail > detailList ) {
default String buildRefundOrderPrintData ( OrderPrintDTO orderPrintDTO , List < OrderDetail > detailList ) {
PrintSignLabel signLabelInfo = getSignLabelInfo ( ) ;
PrintSignLabel signLabelInfo = getSignLabelInfo ( ) ;
StringBuilder data = new StringBuilder ( ) ;
StringBuilder data = new StringBuilder ( ) ;
data . append ( getF ormatLabel( orderPrintDTO . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( orderPrintDTO . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( orderPrintDTO . getPrintTitle ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( orderPrintDTO . getPrintTitle ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( orderPrintDTO . getPickupNum ( ) , signLabelInfo . f ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( orderPrintDTO . getPickupNum ( ) , signLabelInfo . f ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( getF ormatLabel( leftRight Align( orderPrintDTO . getPrintType ( ) , StrUtil . isNotBlank ( orderPrintDTO . getSeatNum ( ) ) ? orderPrintDTO . getSeatNum ( ) + " 人 " : " " , 32 ) )
data . append ( f ormatLabel( f ormatLabel( LR Align( orderPrintDTO . getPrintType ( ) , StrUtil . isNotBlank ( orderPrintDTO . getSeatNum ( ) ) ? orderPrintDTO . getSeatNum ( ) + " 人 " : " " , 32 ) )
, signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
, signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
if ( CollUtil . isNotEmpty ( detailList ) ) {
if ( CollUtil . isNotEmpty ( detailList ) ) {
data . append ( getF ormatLabel( key3 ( " 退款明细 " , " 数量 " , " 小计 " , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( key3 ( " 退款明细 " , " 数量 " , " 小计 " , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
for ( OrderDetail detail : detailList ) {
for ( OrderDetail detail : detailList ) {
String number = detail . getNum ( ) . stripTrailingZeros ( ) . toPlainString ( ) ;
String number = detail . getNum ( ) . stripTrailingZeros ( ) . toPlainString ( ) ;
@@ -361,9 +361,9 @@ public interface PrinterImpl {
if ( " 退款单 " . equals ( orderPrintDTO . getPrintTitle ( ) ) ) {
if ( " 退款单 " . equals ( orderPrintDTO . getPrintTitle ( ) ) ) {
amount = detail . getReturnAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) ;
amount = detail . getReturnAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) ;
}
}
data . append ( getF ormatLabel( key3 ( detail . getProductName ( ) , number , amount , 18 , 7 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( key3 ( detail . getProductName ( ) , number , amount , 18 , 7 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
if ( StrUtil . isNotBlank ( detail . getSkuName ( ) ) ) {
if ( StrUtil . isNotBlank ( detail . getSkuName ( ) ) ) {
data . append ( getF ormatLabel( StrUtil . format ( " 规格:{} " , detail . getSkuName ( ) ) , signLabelInfo . s ) )
data . append ( f ormatLabel( StrUtil . format ( " 规格:{} " , detail . getSkuName ( ) ) , signLabelInfo . s ) )
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
}
}
String proGroupInfo = detail . getProGroupInfo ( ) ;
String proGroupInfo = detail . getProGroupInfo ( ) ;
@@ -379,7 +379,7 @@ public interface PrinterImpl {
jsonObject . getJSONArray ( " goods " ) . forEach ( item - > {
jsonObject . getJSONArray ( " goods " ) . forEach ( item - > {
String proName = ( ( JSONObject ) item ) . getString ( " proName " ) ;
String proName = ( ( JSONObject ) item ) . getString ( " proName " ) ;
String qty = ( ( JSONObject ) item ) . getString ( " number " ) ;
String qty = ( ( JSONObject ) item ) . getString ( " number " ) ;
data . append ( getF ormatLabel( key3 ( " - " + proName , " " , qty , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( key3 ( " - " + proName , " " , qty , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
} ) ;
} ) ;
}
}
}
}
@@ -387,20 +387,20 @@ public interface PrinterImpl {
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
}
}
if ( " 退款单 " . equals ( orderPrintDTO . getPrintTitle ( ) ) ) {
if ( " 退款单 " . equals ( orderPrintDTO . getPrintTitle ( ) ) ) {
data . append ( getF ormatLabel( leftRight Align( " 退款总计 " , orderPrintDTO . getRefundAmount ( ) , 16 ) , signLabelInfo . f ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( LR Align( " 退款总计 " , orderPrintDTO . getRefundAmount ( ) , 16 ) , signLabelInfo . f ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( StrUtil . format ( " 退款方式: {} " , orderPrintDTO . getRefundType ( ) ) , signLabelInfo . s ) )
data . append ( f ormatLabel( StrUtil . format ( " 退款方式: {} " , orderPrintDTO . getRefundType ( ) ) , signLabelInfo . s ) )
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( StrUtil . format ( " 退款原因: {} " , orderPrintDTO . getRefundReason ( ) ) , signLabelInfo . s ) )
data . append ( f ormatLabel( StrUtil . format ( " 退款原因: {} " , orderPrintDTO . getRefundReason ( ) ) , signLabelInfo . s ) )
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
} else {
} else {
data . append ( getF ormatLabel( StrUtil . format ( " 退菜原因: {} " , orderPrintDTO . getRefundReason ( ) ) , signLabelInfo . s ) )
data . append ( f ormatLabel( StrUtil . format ( " 退菜原因: {} " , orderPrintDTO . getRefundReason ( ) ) , signLabelInfo . s ) )
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
}
}
data . append ( getDividingLine ( ) )
data . append ( getDividingLine ( ) )
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( StrUtil . format ( " 操作员:{} " , orderPrintDTO . getOperator ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( StrUtil . format ( " 操作员:{} " , orderPrintDTO . getOperator ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( StrUtil . format ( " 打印时间:{} " , DateUtil . date ( ) . toString ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( StrUtil . format ( " 打印时间:{} " , DateUtil . date ( ) . toString ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( StrUtil . format ( " 订单号:{} " , orderPrintDTO . getOrderNo ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( StrUtil . format ( " 订单号:{} " , orderPrintDTO . getOrderNo ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( signLabelInfo . getOut ( 180 ) ) ;
data . append ( signLabelInfo . getOut ( 180 ) ) ;
data . append ( signLabelInfo . cut ) ;
data . append ( signLabelInfo . cut ) ;
return data . toString ( ) ;
return data . toString ( ) ;
@@ -415,19 +415,19 @@ public interface PrinterImpl {
default String buildAllKitchenPrintData ( OrderPrintDTO orderPrintDTO , List < OrderDetail > detailList ) {
default String buildAllKitchenPrintData ( OrderPrintDTO orderPrintDTO , List < OrderDetail > detailList ) {
PrintSignLabel signLabelInfo = getSignLabelInfo ( ) ;
PrintSignLabel signLabelInfo = getSignLabelInfo ( ) ;
StringBuilder data = new StringBuilder ( ) ;
StringBuilder data = new StringBuilder ( ) ;
data . append ( getF ormatLabel( orderPrintDTO . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( orderPrintDTO . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( orderPrintDTO . getPrintTitle ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( orderPrintDTO . getPrintTitle ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( orderPrintDTO . getPickupNum ( ) , signLabelInfo . f ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( orderPrintDTO . getPickupNum ( ) , signLabelInfo . f ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( getF ormatLabel( orderPrintDTO . getPrintType ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( f ormatLabel( orderPrintDTO . getPrintType ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
if ( CollUtil . isNotEmpty ( detailList ) ) {
if ( CollUtil . isNotEmpty ( detailList ) ) {
data . append ( getF ormatLabel( leftRight Align( " 品名 " , " 数量 " , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( LR Align( " 品名 " , " 数量 " , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
for ( OrderDetail detail : detailList ) {
for ( OrderDetail detail : detailList ) {
BigDecimal num = detail . getNum ( ) . subtract ( detail . getReturnNum ( ) ) ;
BigDecimal num = detail . getNum ( ) . subtract ( detail . getReturnNum ( ) ) ;
data . append ( getF ormatLabel( leftRight Align( detail . getProductName ( ) , num . stripTrailingZeros ( ) . toPlainString ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( LR Align( detail . getProductName ( ) , num . stripTrailingZeros ( ) . toPlainString ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
if ( StrUtil . isNotBlank ( detail . getSkuName ( ) ) ) {
if ( StrUtil . isNotBlank ( detail . getSkuName ( ) ) ) {
data . append ( getF ormatLabel( StrUtil . format ( " 规格:{} " , detail . getSkuName ( ) ) , signLabelInfo . s ) )
data . append ( f ormatLabel( StrUtil . format ( " 规格:{} " , detail . getSkuName ( ) ) , signLabelInfo . s ) )
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
}
}
String proGroupInfo = detail . getProGroupInfo ( ) ;
String proGroupInfo = detail . getProGroupInfo ( ) ;
@@ -438,25 +438,25 @@ public interface PrinterImpl {
jsonObject . getJSONArray ( " goods " ) . forEach ( item - > {
jsonObject . getJSONArray ( " goods " ) . forEach ( item - > {
String proName = ( ( JSONObject ) item ) . getString ( " proName " ) ;
String proName = ( ( JSONObject ) item ) . getString ( " proName " ) ;
String qty = ( ( JSONObject ) item ) . getString ( " number " ) ;
String qty = ( ( JSONObject ) item ) . getString ( " number " ) ;
data . append ( getF ormatLabel( key3 ( " - " + proName , " " , qty , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( key3 ( " - " + proName , " " , qty , 18 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
} ) ;
} ) ;
}
}
}
}
if ( StrUtil . isNotBlank ( detail . getRemark ( ) ) & & ! " null " . equals ( detail . getRemark ( ) ) ) {
if ( StrUtil . isNotBlank ( detail . getRemark ( ) ) & & ! " null " . equals ( detail . getRemark ( ) ) ) {
data . append ( getF ormatLabel( StrUtil . format ( " 备注:{} " , detail . getRemark ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( StrUtil . format ( " 备注:{} " , detail . getRemark ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
}
}
}
}
data . append ( getDividingLine ( ) )
data . append ( getDividingLine ( ) )
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
}
}
if ( StrUtil . isNotBlank ( orderPrintDTO . getRemark ( ) ) & & ! " null " . equals ( orderPrintDTO . getRemark ( ) ) ) {
if ( StrUtil . isNotBlank ( orderPrintDTO . getRemark ( ) ) & & ! " null " . equals ( orderPrintDTO . getRemark ( ) ) ) {
data . append ( getF ormatLabel( StrUtil . format ( " 备注: {} " , orderPrintDTO . getRemark ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( StrUtil . format ( " 备注: {} " , orderPrintDTO . getRemark ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
data . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
}
}
data . append ( getF ormatLabel( StrUtil . format ( " 操作员:{} " , orderPrintDTO . getOperator ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( StrUtil . format ( " 操作员:{} " , orderPrintDTO . getOperator ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( StrUtil . format ( " 打印时间:{} " , DateUtil . date ( ) . toString ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( StrUtil . format ( " 打印时间:{} " , DateUtil . date ( ) . toString ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( getF ormatLabel( StrUtil . format ( " 订单号:{} " , orderPrintDTO . getOrderNo ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( f ormatLabel( StrUtil . format ( " 订单号:{} " , orderPrintDTO . getOrderNo ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
data . append ( signLabelInfo . getOut ( 180 ) ) ;
data . append ( signLabelInfo . getOut ( 180 ) ) ;
data . append ( signLabelInfo . cut ) ;
data . append ( signLabelInfo . cut ) ;
return data . toString ( ) ;
return data . toString ( ) ;
@@ -471,9 +471,9 @@ public interface PrinterImpl {
default String buildOnlyKitchenPrintData ( String pickupNumber , OrderDetail orderDetail ) {
default String buildOnlyKitchenPrintData ( String pickupNumber , OrderDetail orderDetail ) {
PrintSignLabel signLabelInfo = getSignLabelInfo ( ) ;
PrintSignLabel signLabelInfo = getSignLabelInfo ( ) ;
StringBuilder builder = new StringBuilder ( ) ;
StringBuilder builder = new StringBuilder ( ) ;
builder . append ( getF ormatLabel( pickupNumber , signLabelInfo . centerBold ) )
builder . append ( f ormatLabel( pickupNumber , signLabelInfo . centerBold ) )
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( StrUtil . format ( " 时间:{} " , DateUtil . format ( orderDetail . getCreateTime ( ) , " yyyy-MM-dd HH:mm:ss " ) ) , signLabelInfo . s , signLabelInfo . center ) )
builder . append ( f ormatLabel( StrUtil . format ( " 时间:{} " , DateUtil . format ( orderDetail . getCreateTime ( ) , " yyyy-MM-dd HH:mm:ss " ) ) , signLabelInfo . s , signLabelInfo . center ) )
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
Integer isWaitCall = ObjectUtil . defaultIfNull ( orderDetail . getIsWaitCall ( ) , 0 ) ;
Integer isWaitCall = ObjectUtil . defaultIfNull ( orderDetail . getIsWaitCall ( ) , 0 ) ;
if ( isWaitCall = = 1 ) {
if ( isWaitCall = = 1 ) {
@@ -494,21 +494,21 @@ public interface PrinterImpl {
orderDetail . setProductName ( " 【赠】 " + orderDetail . getProductName ( ) ) ;
orderDetail . setProductName ( " 【赠】 " + orderDetail . getProductName ( ) ) ;
}
}
if ( orderDetail . getProductName ( ) . length ( ) > 4 ) {
if ( orderDetail . getProductName ( ) . length ( ) > 4 ) {
builder . append ( getF ormatLabel( StrUtil . format ( " {} x {} " , orderDetail . getProductName ( ) , orderDetail . getNum ( ) . stripTrailingZeros ( ) . toPlainString ( ) ) , signLabelInfo . f , signLabelInfo . center ) )
builder . append ( f ormatLabel( StrUtil . format ( " {} x {} " , orderDetail . getProductName ( ) , orderDetail . getNum ( ) . stripTrailingZeros ( ) . toPlainString ( ) ) , signLabelInfo . f , signLabelInfo . center ) )
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
if ( StrUtil . isNotBlank ( orderDetail . getSkuName ( ) ) ) {
if ( StrUtil . isNotBlank ( orderDetail . getSkuName ( ) ) ) {
builder . append ( getF ormatLabel( " ( " + orderDetail . getSkuName ( ) + " ) " , signLabelInfo . f , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( " ( " + orderDetail . getSkuName ( ) + " ) " , signLabelInfo . f , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
}
}
} else {
} else {
builder . append ( getF ormatLabel( StrUtil . format ( " {} x {} " , orderDetail . getProductName ( ) , orderDetail . getNum ( ) . stripTrailingZeros ( ) . toPlainString ( ) ) , signLabelInfo . f , signLabelInfo . center ) )
builder . append ( f ormatLabel( StrUtil . format ( " {} x {} " , orderDetail . getProductName ( ) , orderDetail . getNum ( ) . stripTrailingZeros ( ) . toPlainString ( ) ) , signLabelInfo . f , signLabelInfo . center ) )
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
if ( StrUtil . isNotBlank ( orderDetail . getSkuName ( ) ) ) {
if ( StrUtil . isNotBlank ( orderDetail . getSkuName ( ) ) ) {
builder . append ( getF ormatLabel( " ( " + orderDetail . getSkuName ( ) + " ) " , signLabelInfo . f , signLabelInfo . center ) )
builder . append ( f ormatLabel( " ( " + orderDetail . getSkuName ( ) + " ) " , signLabelInfo . f , signLabelInfo . center ) )
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
}
}
}
}
if ( StrUtil . isNotBlank ( orderDetail . getRemark ( ) ) & & ! " null " . equals ( orderDetail . getRemark ( ) ) ) {
if ( StrUtil . isNotBlank ( orderDetail . getRemark ( ) ) & & ! " null " . equals ( orderDetail . getRemark ( ) ) ) {
builder . append ( getF ormatLabel( StrUtil . format ( " 备注:{} " , orderDetail . getRemark ( ) ) , signLabelInfo . f ) )
builder . append ( f ormatLabel( StrUtil . format ( " 备注:{} " , orderDetail . getRemark ( ) ) , signLabelInfo . f ) )
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
}
}
if ( ! StrUtil . isBlank ( orderDetail . getProGroupInfo ( ) ) & & JSONUtil . isTypeJSONArray ( orderDetail . getProGroupInfo ( ) ) ) {
if ( ! StrUtil . isBlank ( orderDetail . getProGroupInfo ( ) ) & & JSONUtil . isTypeJSONArray ( orderDetail . getProGroupInfo ( ) ) ) {
@@ -524,7 +524,7 @@ public interface PrinterImpl {
}
}
}
}
if ( orderDetail . isUrgent ( ) ) {
if ( orderDetail . isUrgent ( ) ) {
builder . append ( getF ormatLabel( " 【加急】 " , signLabelInfo . center , signLabelInfo . bold ) )
builder . append ( f ormatLabel( " 【加急】 " , signLabelInfo . center , signLabelInfo . bold ) )
. append ( signLabelInfo . br ) ;
. append ( signLabelInfo . br ) ;
}
}
builder . append ( signLabelInfo . br )
builder . append ( signLabelInfo . br )
@@ -541,13 +541,13 @@ public interface PrinterImpl {
StringBuilder builder = new StringBuilder ( ) ;
StringBuilder builder = new StringBuilder ( ) ;
// 标题:入库 + 店铺名称 + 入库单
// 标题:入库 + 店铺名称 + 入库单
builder . append ( getF ormatLabel( record . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( record . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( " IN " . equals ( record . getType ( ) ) ? " 入库单 " : " 出库单 " , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( " IN " . equals ( record . getType ( ) ) ? " 入库单 " : " 出库单 " , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
// 入库时间
// 入库时间
builder . append ( getF ormatLabel( StrUtil . format ( " IN " . equals ( record . getType ( ) ) ? " 入库时间: {} " : " 出库时间: {} " , DateUtil . format ( record . getInStockTime ( ) , " yyyy/MM/dd HH:mm:ss " ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( StrUtil . format ( " IN " . equals ( record . getType ( ) ) ? " 入库时间: {} " : " 出库时间: {} " , DateUtil . format ( record . getInStockTime ( ) , " yyyy/MM/dd HH:mm:ss " ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( key4 ( " 耗材名称 " , " 库存单位 " , " IN " . equals ( record . getType ( ) ) ? " 入库数量 " : " 出库数量 " , " 金额 " ,
builder . append ( f ormatLabel( key4 ( " 耗材名称 " , " 库存单位 " , " IN " . equals ( record . getType ( ) ) ? " 入库数量 " : " 出库数量 " , " 金额 " ,
10 , 9 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
10 , 9 , 9 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
// 遍历耗材明细,逐行打印
// 遍历耗材明细,逐行打印
@@ -558,7 +558,7 @@ public interface PrinterImpl {
String amount = item . getAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) ;
String amount = item . getAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) ;
// 左对齐排版,保证列对齐
// 左对齐排版,保证列对齐
String itemLine = key4 ( item . getConsName ( ) , item . getUnit ( ) , stockNumber , amount , 11 , 9 , 7 ) ;
String itemLine = key4 ( item . getConsName ( ) , item . getUnit ( ) , stockNumber , amount , 11 , 9 , 7 ) ;
builder . append ( getF ormatLabel( itemLine , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( itemLine , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
}
}
}
}
builder . append ( signLabelInfo . br ) ;
builder . append ( signLabelInfo . br ) ;
@@ -568,12 +568,12 @@ public interface PrinterImpl {
String amountCountStr = " 金额 " + record . getAmountCount ( ) ;
String amountCountStr = " 金额 " + record . getAmountCount ( ) ;
String totalLine = key4 ( " 总计 " , consCountStr , stockNumberCountStr , amountCountStr , 6 , 9 , 7 ) ;
String totalLine = key4 ( " 总计 " , consCountStr , stockNumberCountStr , amountCountStr , 6 , 9 , 7 ) ;
builder . append ( getF ormatLabel( totalLine , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( totalLine , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
// 操作员、打印时间
// 操作员、打印时间
builder . append ( getF ormatLabel( StrUtil . format ( " 操作员: {} " , StrUtil . isNotBlank ( record . getOperator ( ) ) ? record . getOperator ( ) : " " ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( StrUtil . format ( " 操作员: {} " , StrUtil . isNotBlank ( record . getOperator ( ) ) ? record . getOperator ( ) : " " ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( StrUtil . format ( " 打印时间: {} " , DateUtil . format ( record . getPrintTime ( ) , " yyyy/MM/dd HH:mm:ss " ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( StrUtil . format ( " 打印时间: {} " , DateUtil . format ( record . getPrintTime ( ) , " yyyy/MM/dd HH:mm:ss " ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
// 结尾空行 + 切纸(和充值单保持一致)
// 结尾空行 + 切纸(和充值单保持一致)
builder . append ( signLabelInfo . getOut ( 150 ) ) . append ( signLabelInfo . cut ) ;
builder . append ( signLabelInfo . getOut ( 150 ) ) . append ( signLabelInfo . cut ) ;
@@ -588,64 +588,127 @@ public interface PrinterImpl {
StringBuilder builder = new StringBuilder ( ) ;
StringBuilder builder = new StringBuilder ( ) ;
// 标题:店铺名称 + 经营日报(居中,和充值/入库单风格统一)
// 标题:店铺名称 + 经营日报(居中,和充值/入库单风格统一)
builder . append ( getF ormatLabel( record . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( record . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( " 经营日报 " , signLabelInfo . center ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( " 经营日报 " , signLabelInfo . center ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
// 基础信息:打印时间、操作人、统计时间
// 基础信息:打印时间、操作人、统计时间
builder . append ( getF ormatLabel( StrUtil . format ( " 打印时间: {} " , DateUtil . format ( LocalDateTime . now ( ) , " yyyy/MM/dd HH:mm:ss " ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( StrUtil . format ( " 打印时间: {} " , DateUtil . format ( LocalDateTime . now ( ) , " yyyy/MM/dd HH:mm:ss " ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( StrUtil . format ( " 操作人: {} " , StrUtil . isNotBlank ( record . getOperator ( ) ) ? record . getOperator ( ) : " " ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( StrUtil . format ( " 操作人: {} " , StrUtil . isNotBlank ( record . getOperator ( ) ) ? record . getOperator ( ) : " " ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( StrUtil . format ( " 统计时间: {} " , record . getStatisticsTime ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( StrUtil . format ( " 统计时间: {} " , record . getStatisticsTime ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
// 营业总额
// 营业总额
DayReportPrintDTO . BusinessSts turnover = record . getTurnover ( ) ;
DayReportPrintDTO . BusinessSts turnover = record . getTurnover ( ) ;
builder . append ( getF ormatLabel( " 营业指标: " , signLabelInfo . bold ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( " 营业指标: " , signLabelInfo . bold ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 订单原价总额 " , bdToStr ( turnover . getOriginAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 订单原价总额 " , bdToStr ( turnover . getOriginAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 营业额 " , bdToStr ( turnover . getTurnover ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 营业额 " , bdToStr ( turnover . getTurnover ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 优惠金额 " , bdToStr ( turnover . getDiscountAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 优惠金额 " , bdToStr ( turnover . getDiscountAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 订单数(含退款) " , String . valueOf ( turnover . getOrderCount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 订单数(含退款) " , String . valueOf ( turnover . getOrderCount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 折前单均价 " , bdToStr ( turnover . getAverageOrderAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 折前单均价 " , bdToStr ( turnover . getAverageOrderAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 折后单均价 " , bdToStr ( turnover . getAverageTurnover ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 折后单均价 " , bdToStr ( turnover . getAverageTurnover ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 退款金额 " , bdToStr ( turnover . getRefundAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 退款金额 " , bdToStr ( turnover . getRefundAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 退款订单数 " , String . valueOf ( turnover . getRefundOrderCount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 退款订单数 " , String . valueOf ( turnover . getRefundOrderCount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
// 收入来源
// 收入来源
DayReportPrintDTO . Income soIncome = record . getSourceIncome ( ) ;
DayReportPrintDTO . Income soIncome = record . getSourceIncome ( ) ;
builder . append ( getF ormatLabel( " 收入来源 " , signLabelInfo . bold ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( " 收入来源 " , signLabelInfo . bold ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 现金 " , bdToStr ( soIncome . getCash ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 现金 " , bdToStr ( soIncome . getCash ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 微信 " , bdToStr ( soIncome . getWechat ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 微信 " , bdToStr ( soIncome . getWechat ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 支付宝 " , bdToStr ( soIncome . getAlipay ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 支付宝 " , bdToStr ( soIncome . getAlipay ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 美团团购 " , bdToStr ( soIncome . getMeituan ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 美团团购 " , bdToStr ( soIncome . getMeituan ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 抖音团购 " , bdToStr ( soIncome . getDouyin ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 抖音团购 " , bdToStr ( soIncome . getDouyin ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 其它 " , bdToStr ( soIncome . getOther ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 其它 " , bdToStr ( soIncome . getOther ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
// 实收统计
// 实收统计
DayReportPrintDTO . Income actualIncome = record . getActualIncome ( ) ;
DayReportPrintDTO . Income actualIncome = record . getActualIncome ( ) ;
builder . append ( getF ormatLabel( " 实收统计 " , signLabelInfo . bold ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( " 实收统计 " , signLabelInfo . bold ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 现金 " , bdToStr ( actualIncome . getCash ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 现金 " , bdToStr ( actualIncome . getCash ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 微信 " , bdToStr ( actualIncome . getWechat ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 微信 " , bdToStr ( actualIncome . getWechat ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 支付宝 " , bdToStr ( actualIncome . getAlipay ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 支付宝 " , bdToStr ( actualIncome . getAlipay ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 美团团购 " , bdToStr ( actualIncome . getMeituan ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 美团团购 " , bdToStr ( actualIncome . getMeituan ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 抖音团购 " , bdToStr ( actualIncome . getDouyin ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 抖音团购 " , bdToStr ( actualIncome . getDouyin ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 其它 " , bdToStr ( actualIncome . getOther ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 其它 " , bdToStr ( actualIncome . getOther ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
// 实收统计
// 实收统计
DayReportPrintDTO . DiscountSts disSta = record . getDiscountSta ( ) ;
DayReportPrintDTO . DiscountSts disSta = record . getDiscountSta ( ) ;
builder . append ( getF ormatLabel( " 优惠统计 " , signLabelInfo . bold ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( " 优惠统计 " , signLabelInfo . bold ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 新客立减 " , bdToStr ( disSta . getNewConsumerDiscount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 新客立减 " , bdToStr ( disSta . getNewConsumerDiscount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 霸王餐 " , bdToStr ( disSta . getFreeCashAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 霸王餐 " , bdToStr ( disSta . getFreeCashAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 满减活动 " , bdToStr ( disSta . getFullMinusAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 满减活动 " , bdToStr ( disSta . getFullMinusAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 优惠券 " , bdToStr ( disSta . getCouponAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 优惠券 " , bdToStr ( disSta . getCouponAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 会员折扣 " , bdToStr ( disSta . getMemberDiscount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 会员折扣 " , bdToStr ( disSta . getMemberDiscount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 积分抵扣金额 " , bdToStr ( disSta . getPointsDiscountAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 积分抵扣金额 " , bdToStr ( disSta . getPointsDiscountAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 订单改价 " , bdToStr ( disSta . getOrderDiscount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 订单改价 " , bdToStr ( disSta . getOrderDiscount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
// 结尾空行 + 切纸(和充值/入库单完全一致)
// 结尾空行 + 切纸(和充值/入库单完全一致)
builder . append ( signLabelInfo . getOut ( 150 ) ) . append ( signLabelInfo . cut ) ;
builder . append ( signLabelInfo . getOut ( 150 ) ) . append ( signLabelInfo . cut ) ;
return builder . toString ( ) ;
return builder . toString ( ) ;
}
}
/**
* 日结单
*/
default String buildDaySettleData ( DaySettlePrintDTO record ) {
PrintSignLabel signLabelInfo = getSignLabelInfo ( ) ;
StringBuilder builder = new StringBuilder ( ) ;
// 标题:店铺名称 + 经营日报(居中,和充值/入库单风格统一)
builder . append ( formatLabel ( record . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( " 经营日报 " , signLabelInfo . center ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
// 基础信息:打印时间、操作人、统计时间
builder . append ( formatLabel ( StrUtil . format ( " 打印时间: {} " , DateUtil . format ( LocalDateTime . now ( ) , " yyyy/MM/dd HH:mm:ss " ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( StrUtil . format ( " 操作人: {} " , StrUtil . isNotBlank ( record . getOperator ( ) ) ? record . getOperator ( ) : " " ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( StrUtil . format ( " 统计时间: {} " , record . getStatisticsTime ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
// 营业统计
DaySettlePrintDTO . BusinessSts turnover = record . getTurnover ( ) ;
builder . append ( formatLabel ( " 营业统计: " , signLabelInfo . bold ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( LRAlign ( " 订单原价总额 " , bdToStr ( turnover . getOriginAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( LRAlign ( " 营业额 " , bdToStr ( turnover . getTurnover ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( LRAlign ( " 优惠金额 " , bdToStr ( turnover . getDiscountAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( LRAlign ( " 订单数(含退款) " , String . valueOf ( turnover . getOrderCount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( LRAlign ( " 退款订单数 " , String . valueOf ( turnover . getRefundOrderCount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( LRAlign ( " 退款金额 " , bdToStr ( turnover . getRefundAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( LRAlign ( " 现金收款 " , bdToStr ( turnover . getCash ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( " 备用金 " , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( " 钱箱剩余 " , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
// 收入来源
DaySettlePrintDTO . Income income = record . getIncome ( ) ;
builder . append ( formatLabel ( " 收款构成 " , signLabelInfo . bold ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( LRAlign ( " 现金 " , bdToStr ( income . getCash ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( LRAlign ( " 微信 " , bdToStr ( income . getWechat ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( LRAlign ( " 支付宝 " , bdToStr ( income . getAlipay ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( LRAlign ( " 团购 " , bdToStr ( income . getGroup ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
// 实收统计
DaySettlePrintDTO . DiscountSts disSta = record . getDiscountSta ( ) ;
builder . append ( formatLabel ( " 优惠统计 " , signLabelInfo . bold ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( LRAlign ( " 新客立减 " , bdToStr ( disSta . getNewConsumerDiscount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( LRAlign ( " 霸王餐 " , bdToStr ( disSta . getFreeCashAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( LRAlign ( " 满减活动 " , bdToStr ( disSta . getFullMinusAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( LRAlign ( " 优惠券 " , bdToStr ( disSta . getCouponAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( LRAlign ( " 会员折扣 " , bdToStr ( disSta . getMemberDiscount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( LRAlign ( " 积分抵扣金额 " , bdToStr ( disSta . getPointsDiscountAmount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( formatLabel ( LRAlign ( " 订单改价 " , bdToStr ( disSta . getOrderDiscount ( ) ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
List < DaySettlePrintDTO . OperationRecord > operationRecords = record . getOperationRecords ( ) ;
if ( CollUtil . isNotEmpty ( operationRecords ) ) {
builder . append ( formatLabel ( " 敏感操作记录 " , signLabelInfo . bold ) ) . append ( signLabelInfo . br ) ;
for ( DaySettlePrintDTO . OperationRecord operation : operationRecords ) {
builder . append ( formatLabel (
key3 ( operation . getOperation ( ) , " 数量: " + operation . getCount ( ) , " 金额 " + operation . getAmount ( ) , 8 , 14 )
, signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
}
}
builder . append ( signLabelInfo . getOut ( 150 ) ) . append ( signLabelInfo . cut ) ;
return builder . toString ( ) ;
}
/**
/**
* 商品报表打印单
* 商品报表打印单
*/
*/
@@ -654,23 +717,23 @@ public interface PrinterImpl {
StringBuilder builder = new StringBuilder ( ) ;
StringBuilder builder = new StringBuilder ( ) ;
// 标题:店铺名称 + 商品报表(居中,和之前的报表风格统一)
// 标题:店铺名称 + 商品报表(居中,和之前的报表风格统一)
builder . append ( getF ormatLabel( record . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( record . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( " 商品报表 " , signLabelInfo . center ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( " 商品报表 " , signLabelInfo . center ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
// 基础信息:打印时间、操作人、统计时间
// 基础信息:打印时间、操作人、统计时间
builder . append ( getF ormatLabel( StrUtil . format ( " 打印时间: {} " , DateUtil . format ( LocalDateTime . now ( ) , " yyyy/MM/dd HH:mm:ss " ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( StrUtil . format ( " 打印时间: {} " , DateUtil . format ( LocalDateTime . now ( ) , " yyyy/MM/dd HH:mm:ss " ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( StrUtil . format ( " 操作人: {} " , StrUtil . isNotBlank ( record . getOperator ( ) ) ? record . getOperator ( ) : " " ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( StrUtil . format ( " 操作人: {} " , StrUtil . isNotBlank ( record . getOperator ( ) ) ? record . getOperator ( ) : " " ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( StrUtil . format ( " 时间: {} " , record . getStatisticsTime ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( StrUtil . format ( " 时间: {} " , record . getStatisticsTime ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
// 总计行: 总计商品X件, 实收金额X元
// 总计行: 总计商品X件, 实收金额X元
String totalCountStr = record . getTotalProductCount ( ) . stripTrailingZeros ( ) . toPlainString ( ) ;
String totalCountStr = record . getTotalProductCount ( ) . stripTrailingZeros ( ) . toPlainString ( ) ;
String totalActualStr = record . getTotalActualAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) ;
String totalActualStr = record . getTotalActualAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) ;
builder . append ( getF ormatLabel( StrUtil . format ( " 总计商品{}件,实收金额{}元 " , totalCountStr , totalActualStr ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( StrUtil . format ( " 总计商品{}件,实收金额{}元 " , totalCountStr , totalActualStr ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
// 表头:商品、数量、实收、销售额(四列对齐,和示例图完全匹配)
// 表头:商品、数量、实收、销售额(四列对齐,和示例图完全匹配)
String header = key4 ( " 商品 " , " 数量 " , " 实收 " , " 销售额 " , 12 , 6 , 6 ) ;
String header = key4 ( " 商品 " , " 数量 " , " 实收 " , " 销售额 " , 12 , 6 , 6 ) ;
builder . append ( getF ormatLabel( header , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( header , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
// 遍历分类+商品明细
// 遍历分类+商品明细
List < ProductReportPrintDTO . CategoryItem > items = record . getItems ( ) ;
List < ProductReportPrintDTO . CategoryItem > items = record . getItems ( ) ;
@@ -683,7 +746,7 @@ public interface PrinterImpl {
item . getActualAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) ,
item . getActualAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) ,
item . getSalesAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) ,
item . getSalesAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) ,
12 , 8 , 8 ) ;
12 , 8 , 8 ) ;
builder . append ( getF ormatLabel( categoryLine , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( categoryLine , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
// 再打印该分类下的商品明细( 缩进2个空格, 和示例图一致)
// 再打印该分类下的商品明细( 缩进2个空格, 和示例图一致)
for ( ProductReportPrintDTO . ProductItem pro : productList ) {
for ( ProductReportPrintDTO . ProductItem pro : productList ) {
@@ -692,7 +755,7 @@ public interface PrinterImpl {
String salesStr = pro . getSalesAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) ;
String salesStr = pro . getSalesAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) ;
// 商品名称前加2个空格, 实现缩进效果
// 商品名称前加2个空格, 实现缩进效果
String productLine = key4 ( " " + pro . getProductName ( ) , numStr , actualStr , salesStr , 12 , 8 , 8 ) ;
String productLine = key4 ( " " + pro . getProductName ( ) , numStr , actualStr , salesStr , 12 , 8 , 8 ) ;
builder . append ( getF ormatLabel( productLine , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( productLine , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
}
}
}
}
}
}
@@ -709,34 +772,34 @@ public interface PrinterImpl {
PrintSignLabel signLabelInfo = getSignLabelInfo ( ) ;
PrintSignLabel signLabelInfo = getSignLabelInfo ( ) ;
StringBuilder builder = new StringBuilder ( ) ;
StringBuilder builder = new StringBuilder ( ) ;
// 标题:店铺名称 + 充值凭证
// 标题:店铺名称 + 充值凭证
builder . append ( getF ormatLabel( record . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( record . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( " 充值凭证 " , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( " 充值凭证 " , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
// 用户信息
// 用户信息
builder . append ( getF ormatLabel( " 充值用户: " + record . getUserName ( ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( " 充值用户: " + record . getUserName ( ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( " 手机号: " + record . getUserPhone ( ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( " 手机号: " + record . getUserPhone ( ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( " 支付时间: " + DateUtil . format ( record . getPayTime ( ) , " yyyy/MM/dd HH:mm:ss " ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( " 支付时间: " + DateUtil . format ( record . getPayTime ( ) , " yyyy/MM/dd HH:mm:ss " ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
// 充值明细
// 充值明细
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 充值金额: " , record . getRechargeAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) , 24 ) , signLabelInfo . bold ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 充值金额: " , record . getRechargeAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) , 24 ) , signLabelInfo . bold ) ) . append ( signLabelInfo . br ) ;
if ( record . getGiftAmount ( ) ! = null & & record . getGiftAmount ( ) . compareTo ( BigDecimal . ZERO ) > 0 ) {
if ( record . getGiftAmount ( ) ! = null & & record . getGiftAmount ( ) . compareTo ( BigDecimal . ZERO ) > 0 ) {
builder . append ( getF ormatLabel( leftRight Align( " 赠送金额: " , record . getGiftAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 赠送金额: " , record . getGiftAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
}
}
if ( record . getGiftPoints ( ) ! = null & & record . getGiftPoints ( ) . compareTo ( BigDecimal . ZERO ) > 0 ) {
if ( record . getGiftPoints ( ) ! = null & & record . getGiftPoints ( ) . compareTo ( BigDecimal . ZERO ) > 0 ) {
builder . append ( getF ormatLabel( leftRight Align( " 赠送积分: " , record . getGiftPoints ( ) . stripTrailingZeros ( ) . toPlainString ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 赠送积分: " , record . getGiftPoints ( ) . stripTrailingZeros ( ) . toPlainString ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
}
}
if ( record . getGiftCoupon ( ) ! = null & & record . getGiftCoupon ( ) > 0 ) {
if ( record . getGiftCoupon ( ) ! = null & & record . getGiftCoupon ( ) > 0 ) {
builder . append ( getF ormatLabel( leftRight Align( " 赠送优惠券: " , record . getGiftCoupon ( ) + " " , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 赠送优惠券: " , record . getGiftCoupon ( ) + " " , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
}
}
builder . append ( getF ormatLabel( leftRight Align( " 充值后余额: " , record . getBalance ( ) . stripTrailingZeros ( ) . toPlainString ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 充值后余额: " , record . getBalance ( ) . stripTrailingZeros ( ) . toPlainString ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
// 支付信息
// 支付信息
builder . append ( getF ormatLabel( leftRight Align( " 已付金额: " , record . getRechargeAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) , 24 ) , signLabelInfo . bold ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 已付金额: " , record . getRechargeAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) , 24 ) , signLabelInfo . bold ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( leftRight Align( " 支付方式: " , record . getPayType ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( LR Align( " 支付方式: " , record . getPayType ( ) , 32 ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( StrUtil . format ( " 操作员: {} " , StrUtil . isNotBlank ( record . getOperator ( ) ) ? record . getOperator ( ) : " " ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( StrUtil . format ( " 操作员: {} " , StrUtil . isNotBlank ( record . getOperator ( ) ) ? record . getOperator ( ) : " " ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( StrUtil . format ( " 打印时间: {} " , DateUtil . format ( LocalDateTime . now ( ) , " yyyy/MM/dd HH:mm:ss " ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( StrUtil . format ( " 打印时间: {} " , DateUtil . format ( LocalDateTime . now ( ) , " yyyy/MM/dd HH:mm:ss " ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( StrUtil . format ( " 充值编号: {} " , record . getRechargeId ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( StrUtil . format ( " 充值编号: {} " , record . getRechargeId ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
// 结尾空行 + 切纸
// 结尾空行 + 切纸
builder . append ( signLabelInfo . getOut ( 150 ) ) . append ( signLabelInfo . cut ) ;
builder . append ( signLabelInfo . getOut ( 150 ) ) . append ( signLabelInfo . cut ) ;
@@ -751,12 +814,12 @@ public interface PrinterImpl {
StringBuilder builder = new StringBuilder ( ) ;
StringBuilder builder = new StringBuilder ( ) ;
// 标题:店铺名称 + 盘点单(居中,和之前所有打印单风格统一)
// 标题:店铺名称 + 盘点单(居中,和之前所有打印单风格统一)
builder . append ( getF ormatLabel( record . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( record . getShopName ( ) , signLabelInfo . center ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( " 盘点单 " , signLabelInfo . center ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( " 盘点单 " , signLabelInfo . center ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
// 表头: 耗材名称、单价、实际数、盈亏数( 四列对齐, 复用key4工具方法)
// 表头: 耗材名称、单价、实际数、盈亏数( 四列对齐, 复用key4工具方法)
String header = key4 ( " 耗材名称 " , " 单价 " , " 实际数 " , " 盈亏数 " , 10 , 7 , 7 ) ;
String header = key4 ( " 耗材名称 " , " 单价 " , " 实际数 " , " 盈亏数 " , 10 , 7 , 7 ) ;
builder . append ( getF ormatLabel( header , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( header , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
// 遍历耗材明细,逐行打印
// 遍历耗材明细,逐行打印
List < StockCheckPrintDTO . StockCheckItem > items = record . getItems ( ) ;
List < StockCheckPrintDTO . StockCheckItem > items = record . getItems ( ) ;
@@ -767,23 +830,23 @@ public interface PrinterImpl {
String winLossNumberStr = item . getWinLossNumber ( ) . toString ( ) ;
String winLossNumberStr = item . getWinLossNumber ( ) . toString ( ) ;
// 四列对齐打印
// 四列对齐打印
String itemLine = key4 ( item . getConsName ( ) , priceStr , actualNumberStr , winLossNumberStr , 10 , 8 , 8 ) ;
String itemLine = key4 ( item . getConsName ( ) , priceStr , actualNumberStr , winLossNumberStr , 10 , 8 , 8 ) ;
builder . append ( getF ormatLabel( itemLine , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( itemLine , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
}
}
}
}
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
// 账存数量、盈亏金额、备注
// 账存数量、盈亏金额、备注
builder . append ( getF ormatLabel( StrUtil . format ( " 账存数量: {} " , record . getWinLossNumberCount ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( StrUtil . format ( " 账存数量: {} " , record . getWinLossNumberCount ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
String winLossAmountStr = record . getWinLossAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) ;
String winLossAmountStr = record . getWinLossAmount ( ) . stripTrailingZeros ( ) . toPlainString ( ) ;
builder . append ( getF ormatLabel( StrUtil . format ( " 盈亏金额: {} " , winLossAmountStr ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( StrUtil . format ( " 盈亏金额: {} " , winLossAmountStr ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getF ormatLabel( StrUtil . format ( " 备注: {} " , StrUtil . isBlank ( record . getRemark ( ) ) ? " " : record . getRemark ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( StrUtil . format ( " 备注: {} " , StrUtil . isBlank ( record . getRemark ( ) ) ? " " : record . getRemark ( ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
builder . append ( getDividingLine ( ) ) . append ( signLabelInfo . br ) . append ( signLabelInfo . br ) ;
// 操作员、打印时间
// 操作员、打印时间
builder . append ( getF ormatLabel( StrUtil . format ( " 操作员: {} " , StrUtil . isNotBlank ( record . getOperator ( ) ) ? record . getOperator ( ) : " " ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( StrUtil . format ( " 操作员: {} " , StrUtil . isNotBlank ( record . getOperator ( ) ) ? record . getOperator ( ) : " " ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
// 打印时间: 复用之前的DateUtil格式化, 若DTO需补充printTime字段, 可按需求添加
// 打印时间: 复用之前的DateUtil格式化, 若DTO需补充printTime字段, 可按需求添加
builder . append ( getF ormatLabel( StrUtil . format ( " 打印时间: {} " , DateUtil . format ( LocalDateTime . now ( ) , " yyyy/MM/dd HH:mm:ss " ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
builder . append ( f ormatLabel( StrUtil . format ( " 打印时间: {} " , DateUtil . format ( LocalDateTime . now ( ) , " yyyy/MM/dd HH:mm:ss " ) ) , signLabelInfo . s ) ) . append ( signLabelInfo . br ) ;
// 结尾空行 + 切纸(和之前所有打印单完全一致)
// 结尾空行 + 切纸(和之前所有打印单完全一致)
builder . append ( signLabelInfo . getOut ( 150 ) ) . append ( signLabelInfo . cut ) ;
builder . append ( signLabelInfo . getOut ( 150 ) ) . append ( signLabelInfo . cut ) ;
@@ -801,22 +864,22 @@ public interface PrinterImpl {
PrintSignLabel signLabelInfo = getSignLabelInfo ( ) ;
PrintSignLabel signLabelInfo = getSignLabelInfo ( ) ;
CallTable callTable = printDTO . getCallTable ( ) ;
CallTable callTable = printDTO . getCallTable ( ) ;
CallQueue callQueue = printDTO . getCallQueue ( ) ;
CallQueue callQueue = printDTO . getCallQueue ( ) ;
String str = getF ormatLabel( shopName , signLabelInfo . center ) +
String str = f ormatLabel( shopName , signLabelInfo . center ) +
signLabelInfo . br +
signLabelInfo . br +
signLabelInfo . br +
signLabelInfo . br +
getF ormatLabel( StrUtil . format ( " {} {} " , callTable . getName ( ) , callQueue . getCallNum ( ) ) , signLabelInfo . center , signLabelInfo . bold ) +
f ormatLabel( StrUtil . format ( " {} {} " , callTable . getName ( ) , callQueue . getCallNum ( ) ) , signLabelInfo . center , signLabelInfo . bold ) +
signLabelInfo . br +
signLabelInfo . br +
getF ormatLabel( StrUtil . format ( " 前面有{}桌 " , printDTO . getPreNum ( ) ) , signLabelInfo . center ) +
f ormatLabel( StrUtil . format ( " 前面有{}桌 " , printDTO . getPreNum ( ) ) , signLabelInfo . center ) +
signLabelInfo . br +
signLabelInfo . br +
getF ormatLabel( " 怕过号,扫一扫 " , signLabelInfo . center , signLabelInfo . f ) +
f ormatLabel( " 怕过号,扫一扫 " , signLabelInfo . center , signLabelInfo . f ) +
signLabelInfo . br +
signLabelInfo . br +
getF ormatLabel( printDTO . getCallUrl ( ) , signLabelInfo . center , signLabelInfo . qr ) +
f ormatLabel( printDTO . getCallUrl ( ) , signLabelInfo . center , signLabelInfo . qr ) +
signLabelInfo . br + getDividingLine ( ) + signLabelInfo . br +
signLabelInfo . br + getDividingLine ( ) + signLabelInfo . br +
getF ormatLabel( " 描述: " + callTable . getNote ( ) , signLabelInfo . s ) + signLabelInfo . br ;
f ormatLabel( " 描述: " + callTable . getNote ( ) , signLabelInfo . s ) + signLabelInfo . br ;
if ( callTable . getIsPostpone ( ) ! = null & & callTable . getIsPostpone ( ) = = 1 ) {
if ( callTable . getIsPostpone ( ) ! = null & & callTable . getIsPostpone ( ) = = 1 ) {
str = str + getF ormatLabel( StrUtil . format ( " 过号顺延{}桌 {}桌后需重新排号 " , callTable . getPostponeNum ( ) , callTable . getPostponeNum ( ) ) , signLabelInfo . s ) + signLabelInfo . br ;
str = str + f ormatLabel( StrUtil . format ( " 过号顺延{}桌 {}桌后需重新排号 " , callTable . getPostponeNum ( ) , callTable . getPostponeNum ( ) ) , signLabelInfo . s ) + signLabelInfo . br ;
}
}
str = str + getF ormatLabel( StrUtil . format ( " 取号时间: {} " , DateUtil . format ( callQueue . getCreateTime ( ) , " yyyy-MM-dd HH:mm:ss " ) ) , signLabelInfo . s ) +
str = str + f ormatLabel( StrUtil . format ( " 取号时间: {} " , DateUtil . format ( callQueue . getCreateTime ( ) , " yyyy-MM-dd HH:mm:ss " ) ) , signLabelInfo . s ) +
signLabelInfo . br +
signLabelInfo . br +
signLabelInfo . getOut ( 150 ) + signLabelInfo . cut ;
signLabelInfo . getOut ( 150 ) + signLabelInfo . cut ;
return str ;
return str ;
@@ -849,7 +912,7 @@ public interface PrinterImpl {
}
}
// 两个内容 左 右对齐
// 两个内容 左 右对齐
default String leftRight Align( String leftText , String rightText , int totalWidth ) {
default String LR Align( String leftText , String rightText , int totalWidth ) {
if ( leftText = = null ) leftText = " " ;
if ( leftText = = null ) leftText = " " ;
if ( rightText = = null ) rightText = " " ;
if ( rightText = = null ) rightText = " " ;