fix:打印适配称重商品

This commit is contained in:
dzc committed 2025-03-24 12:29:45 +08:00
1 parent 48c80d4b44
commit db809365b4
3 files changed
+24 -11

No files matched your search

@@ -7,6 +7,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Data
@@ -48,7 +49,8 @@ public class HardOrderCsVo implements BaseMchInterface, BaseHardInterface {
@Schema(description = "总盈利次数")
private BigDecimal totalProfitCount;
private LocalDateTime day;
@Schema(description = "日期")
private String day;
/**
* 导出相关
@@ -64,6 +64,7 @@ public interface HardOrderMapper extends PjcloudBaseMapper<HardOrderEntity> {
.selectAs(HardManagerEntity::getName, HardOrderVo::getHardName)
.selectAs(HardManagerEntity::getType, HardOrderVo::getHardType)
.leftJoin(HardManagerEntity.class, HardManagerEntity::getId, HardOrderEntity::getHardId)
.eqIfExists(HardOrderEntity::getMerchantId, dto.getMerchantId())
.eqIfExists(HardOrderEntity::getUserId, dto.getUserId())
.eqIfExists(HardOrderEntity::getDeptId, dto.getDeptId())
.eqIfExists(HardOrderEntity::getOrderType, dto.getOrderType())
@@ -97,7 +98,7 @@ public interface HardOrderMapper extends PjcloudBaseMapper<HardOrderEntity> {
List<HardOrderCsVo> listCs(@Param("dto") HardOrderDto dto);
List<HardOrderCsVo> listCsByDay(HardOrderDto totalDto);
List<HardOrderCsVo> listCsByDay(@Param("dto") HardOrderDto totalDto);
List<HardOrderPayTypeVo> listOrerPayType(@Param("dto") HardOrderDto dto);
@@ -59,6 +59,8 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -170,19 +172,27 @@ public class HardInvoiceServiceImpl extends ServiceImpl<HardInvoiceMapper, HardI
drawing.drawingRowText("商品", "数量", "总价");
carList.forEach(v -> {
String name = v.getProductName();
String count = v.getProductCount().toString();
if (count.length() > 4) {
count = count.substring(0, 4) + "...";
if (name.length() > 5) name = name.substring(0, 5) + "...";
// 判断是重量还是数量
String count = "0";
if (ObjectUtil.isNotEmpty(v.getProductCount()) && !ObjectUtil.equals(v.getProductCount(), 0)) {
// 按数量
count = v.getProductCount().toString();
} else if (ObjectUtil.isNotEmpty(v.getProductWeight()) && v.getProductWeight().compareTo(BigDecimal.valueOf(0)) != 0) {
// 按重量
count = v.getProductWeight() + "/kg";
}
String totalPrice = String.valueOf((v.getTotalPrice() / 100));
drawing.drawingRowText(name, count, totalPrice);
BigDecimal totalPrice = BigDecimal.valueOf(v.getTotalPrice()).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP);
drawing.drawingRowText(name, count, String.valueOf(totalPrice.doubleValue()));
});
String totalPrice = String.valueOf(order.getTotalPrice() / 100);
String amountMealPrice = String.valueOf(order.getExtraPrice() / 100);
BigDecimal totalPrice = BigDecimal.valueOf(order.getTotalPrice()).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP);
BigDecimal amountMealPrice = BigDecimal.valueOf(order.getExtraPrice()).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP);
if (ObjectUtil.isNotEmpty(order.getExtraPrice()) && ObjectUtil.notEqual(order.getExtraPrice(), 0)) {
drawing.drawingRowText("额外支付金额", amountMealPrice);
drawing.drawingRowText("额外支付金额", String.valueOf(amountMealPrice.doubleValue()));
}
drawing.drawingRowText("小记", totalPrice).drawingDottedLine();
drawing.drawingRowText("小记", String.valueOf(totalPrice.doubleValue())).drawingDottedLine();
}
String currentTime = LocalDateTimeUtil.format(LocalDateTimeUtil.now(), DatePattern.NORM_DATETIME_PATTERN);
drawing.drawingRowText("打印时间", currentTime).drawingDottedLine();