feat:android机器硬件管理接口
This commit is contained in:
1 parent
f922ddf09b
commit
d1db95452e
46 files changed
+1440
-316
No files matched your search
+26
@@ -0,0 +1,26 @@
|
||||
package com.bsd.pjcloud.hard.api.constant;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import javax.xml.stream.events.StartDocument;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 打印状态
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum HardPrintStatusEnum {
|
||||
GENERATE("1", "已生成"),
|
||||
PRINT("2", "已打印"),
|
||||
;
|
||||
private final String type;
|
||||
private final String description;
|
||||
|
||||
public static HardPrintStatusEnum valueOfByType(String type) {
|
||||
if (ObjectUtil.isEmpty(type)) return null;
|
||||
return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().get();
|
||||
}
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
package com.bsd.pjcloud.hard.api.constant.order;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum HardOrderStatusEnum {
|
||||
CREATE("1", "创建订单(未支付)"),
|
||||
OFFLINE_CREATE("2", "离线创建订单(未支付)"),
|
||||
PAY("5", "已经支付"),
|
||||
OFFLINE_PAY("6", "没有网络本地支付"),
|
||||
REFUND("10", "退款"),
|
||||
CANCEL("20", "已核销"),
|
||||
;
|
||||
private final String type;
|
||||
private final String description;
|
||||
|
||||
public static HardOrderStatusEnum valueOfByType(Integer type) {
|
||||
if (ObjectUtil.isEmpty(type)) return null;
|
||||
return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().get();
|
||||
}
|
||||
}
|
||||
+6
-6
@@ -12,15 +12,15 @@ import java.util.Arrays;
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum HardOrderTypeEnum {
|
||||
BELOW(1, "线下购买"),
|
||||
RESERVE(2, "线上订餐"),
|
||||
FOREIGN_TICKET(3, "外来人员"),
|
||||
STRIDE_DEPT(4, "跨单位"),
|
||||
BELOW("1", "线下购买"),
|
||||
RESERVE("2", "线上订餐"),
|
||||
FOREIGN_TICKET("3", "外来人员"),
|
||||
STRIDE_DEPT("4", "跨单位"),
|
||||
;
|
||||
private final Integer type;
|
||||
private final String type;
|
||||
private final String description;
|
||||
|
||||
public static HardOrderTypeEnum valueOfByType(Integer type) {
|
||||
public static HardOrderTypeEnum valueOfByType(String type) {
|
||||
if (ObjectUtil.isEmpty(type)) return null;
|
||||
return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().get();
|
||||
}
|
||||
|
||||
+10
-10
@@ -13,19 +13,19 @@ import java.util.Arrays;
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum HardPayTypeEnum {
|
||||
WALLET_DEFAULT(1, "普通钱包支付"),
|
||||
WALLET_QR_CODE(2, "钱包二维码支付"),
|
||||
WALLET_CARD(3, "钱包饭卡支付"),
|
||||
FACE(4, "人脸识别支付"),
|
||||
STRIDE_DEPT_QR_CODE(5, "跨单位二维码支付"),
|
||||
FOREIGN_TICKET_QR_CODE(6, "外来人员二维码支付"),
|
||||
RESERVE_QR_CODE(7, "线上订餐二维码支付"),
|
||||
CASH(8, "现金支付"),
|
||||
WALLET_DEFAULT("1", "普通钱包支付"),
|
||||
WALLET_QR_CODE("2", "钱包二维码支付"),
|
||||
WALLET_CARD("3", "钱包饭卡支付"),
|
||||
FACE("4", "人脸识别支付"),
|
||||
STRIDE_DEPT_QR_CODE("5", "跨单位二维码支付"),
|
||||
FOREIGN_TICKET_QR_CODE("6", "外来人员二维码支付"),
|
||||
RESERVE_QR_CODE("7", "线上订餐二维码支付"),
|
||||
CASH("8", "现金支付"),
|
||||
;
|
||||
private final Integer type;
|
||||
private final String type;
|
||||
private final String description;
|
||||
|
||||
public static HardPayTypeEnum valueOfByType(Integer type) {
|
||||
public static HardPayTypeEnum valueOfByType(String type) {
|
||||
if (ObjectUtil.isEmpty(type)) return null;
|
||||
return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().get();
|
||||
}
|
||||
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
package com.bsd.pjcloud.hard.api.dto.async;
|
||||
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class OfflineCar {
|
||||
|
||||
@Schema(description = "sqlite自增ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "购物车的id字段")
|
||||
private Long orderId;
|
||||
|
||||
@Schema(description = "商品id")
|
||||
private Long productServiceUniqueCode;
|
||||
|
||||
@Schema(description = "商品名")
|
||||
private String productName;
|
||||
|
||||
@Schema(description = "商品图片")
|
||||
private String productPic;
|
||||
|
||||
// 商品价格(分)
|
||||
@Schema(description = "商品价格(分)")
|
||||
private Long productPrice;
|
||||
|
||||
// TODO 食堂特有
|
||||
@Schema(description = "数量")
|
||||
private Integer productNumber;
|
||||
|
||||
// TODO 超市特有
|
||||
@Schema(description = "重量")
|
||||
private BigDecimal productWidget;
|
||||
|
||||
@Schema(description = "单商品总价(分)")
|
||||
private Long totalPrice;
|
||||
}
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
package com.bsd.pjcloud.hard.api.dto.async;
|
||||
|
||||
import com.bsd.pjcloud.hard.api.constant.HardTypeEnum;
|
||||
import com.bsd.pjcloud.hard.api.constant.order.HardOrderStatusEnum;
|
||||
import com.bsd.pjcloud.hard.api.constant.order.HardOrderTypeEnum;
|
||||
import com.bsd.pjcloud.hard.api.constant.order.HardPayTypeEnum;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class OfflineOrder {
|
||||
|
||||
@Schema(description = "sqlite自增ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "android唯一code")
|
||||
private String uniqueCode;
|
||||
|
||||
@Schema(description = "服务端唯一标识")
|
||||
private String serviceUniqueCode;
|
||||
|
||||
@Schema(description = "平台类型")
|
||||
private HardTypeEnum sysType;
|
||||
|
||||
@Schema(description = "用户唯一标识")
|
||||
private Long userCode;
|
||||
|
||||
@Schema(description = "用户名")
|
||||
private String username;
|
||||
|
||||
// 订单用餐类型:早、中、晚
|
||||
private String hourType;
|
||||
|
||||
@Schema(description = "购物车的总金额")
|
||||
private Integer price;
|
||||
|
||||
@Schema(description = "购物车的额外金额")
|
||||
private Integer extraPrice;
|
||||
|
||||
@Schema(description = "结算总金额")
|
||||
private Integer payPrice;
|
||||
|
||||
@Schema(description = "钱包id")
|
||||
private Long walletId;
|
||||
|
||||
@Schema(description = "订单类型渠道id")
|
||||
private Long orderSourceTypeId;
|
||||
|
||||
@Schema(description = "订单类型")
|
||||
private HardOrderTypeEnum type;
|
||||
|
||||
@Schema(description = "订单状态")
|
||||
private HardOrderStatusEnum status;
|
||||
|
||||
@Schema(description = "支付方式")
|
||||
private HardPayTypeEnum payType;
|
||||
|
||||
@Schema(description = "商品描述")
|
||||
private String productDesc;
|
||||
|
||||
// TODO 食堂特有
|
||||
@Schema(description = "商品总数量")
|
||||
private Integer count;
|
||||
|
||||
// TODO 超市特有
|
||||
@Schema(description = "重量")
|
||||
private Double weight;
|
||||
|
||||
@Schema(description = "支付时间")
|
||||
private String payTime;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@Schema(description = "购物车列表")
|
||||
private List<OfflineCar> carList;
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
package com.bsd.pjcloud.hard.api.dto.async;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class SyncOfflineReqVo {
|
||||
|
||||
@Schema(description = "硬件id")
|
||||
@NotNull(message = "硬件id不能为空")
|
||||
private Long hardwareId;
|
||||
|
||||
@Schema(description = "商户id")
|
||||
@NotNull(message = "商户id不能为空")
|
||||
private Long merchantId;
|
||||
|
||||
@Schema(description = "订单列表")
|
||||
@NotEmpty(message = "订单列表不能为空")
|
||||
private List<OfflineOrder> list;
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package com.bsd.pjcloud.hard.api.dto.hard;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class HandCancelCodeDto {
|
||||
@Schema(description = "生成的订单id")
|
||||
@NotNull(message = "生成的订单id不能为空")
|
||||
private Long orderId;
|
||||
|
||||
@Schema(description = "设备id")
|
||||
@NotNull(message = "设备id不能为空")
|
||||
private Long hardwareId;
|
||||
|
||||
@Schema(description = "安卓订单code")
|
||||
@NotNull(message = "安卓订单code不能为空")
|
||||
private String androidOrderCode;
|
||||
|
||||
@Schema(description = "用户id")
|
||||
private Long userId;
|
||||
}
|
||||
-2
@@ -62,8 +62,6 @@ public class HardCreateOrderDto {
|
||||
@Schema(description = "商品的简短描述")
|
||||
private String productDesc;
|
||||
|
||||
private String clientIP;
|
||||
|
||||
private Long deptId;
|
||||
|
||||
@Schema(description = "离线支付是否成功")
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
package com.bsd.pjcloud.hard.api.dto.order;
|
||||
|
||||
import com.bsd.pjcloud.hard.api.entity.order.HardwareOrderEntity;
|
||||
import com.bsd.pjcloud.hard.api.entity.order.HardOrderEntity;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class HardOrderDto extends HardwareOrderEntity {
|
||||
public class HardOrderDto extends HardOrderEntity {
|
||||
}
|
||||
+4
-2
@@ -3,8 +3,7 @@ package com.bsd.pjcloud.hard.api.entity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.*;
|
||||
import com.bsd.pjcloud.common.core.util.TenantTable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@@ -14,6 +13,9 @@ import java.time.LocalDateTime;
|
||||
* @author dzc
|
||||
* @date 2025-01-05 14:17:32
|
||||
*/
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
@TenantTable
|
||||
@TableName("hard_invoice")
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ public class HardCarEntity extends Model<HardCarEntity> {
|
||||
* 商品价格
|
||||
*/
|
||||
@Schema(description="商品价格")
|
||||
private Long productPrice;
|
||||
private Integer productPrice;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
|
||||
+5
-3
@@ -3,8 +3,7 @@ package com.bsd.pjcloud.hard.api.entity.order;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.*;
|
||||
import com.bsd.pjcloud.common.core.util.TenantTable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@@ -14,12 +13,15 @@ import java.time.LocalDateTime;
|
||||
* @author dzc
|
||||
* @date 2025-01-05 16:46:25
|
||||
*/
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
@TenantTable
|
||||
@TableName("hardware_order")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Schema(description = "订单表")
|
||||
public class HardwareOrderEntity extends Model<HardwareOrderEntity> {
|
||||
public class HardOrderEntity extends Model<HardOrderEntity> {
|
||||
|
||||
|
||||
/**
|
||||
+229
@@ -0,0 +1,229 @@
|
||||
package com.bsd.pjcloud.hard.api.utils;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import java.awt.*;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
public class Drawing2D {
|
||||
|
||||
/**
|
||||
* start ****************** config ****************** start
|
||||
*/
|
||||
private Graphics2D graphics;
|
||||
private BufferedImage canvas;
|
||||
|
||||
/**
|
||||
* 固定尺寸
|
||||
* static int mm58 = 384;
|
||||
* static const mm80_Old = 500;
|
||||
* static const mm80 = 570;
|
||||
*/
|
||||
private final int canvasWidth = 340;
|
||||
private final int canvasHeight = 200;
|
||||
|
||||
private int currentWidth = canvasWidth;
|
||||
private int currentHeight = canvasHeight;
|
||||
|
||||
private final int horizontalPadding = 20;
|
||||
|
||||
private final String fontFamily = "宋体";
|
||||
|
||||
/**
|
||||
* end ****************** config ****************** end
|
||||
*/
|
||||
|
||||
private int currentY = 0;
|
||||
|
||||
private int getCurrentY() {
|
||||
computedHeight();
|
||||
int size = graphics.getFont().getSize();
|
||||
FontMetrics metrics = graphics.getFontMetrics(graphics.getFont());
|
||||
int lineHeight = metrics.getHeight();
|
||||
int offset = (lineHeight - size) / 2;
|
||||
return currentY + offset;
|
||||
}
|
||||
|
||||
private int[] getPaddingX() {
|
||||
return new int[]{horizontalPadding, canvasWidth - horizontalPadding};
|
||||
}
|
||||
|
||||
|
||||
public Drawing2D() {
|
||||
canvas = new BufferedImage(canvasWidth, canvasHeight, BufferedImage.TYPE_INT_RGB);
|
||||
graphics = canvas.createGraphics();
|
||||
// 设置背景颜色为白色
|
||||
graphics.setColor(Color.WHITE);
|
||||
graphics.fillRect(0, 0, canvasWidth, canvasHeight);
|
||||
}
|
||||
|
||||
// 虚线
|
||||
public Drawing2D drawingDottedLine() {
|
||||
return drawingDottedLine(5);
|
||||
}
|
||||
|
||||
public Drawing2D drawingDottedLine(int padding) {
|
||||
if (padding != 0) currentY += padding;
|
||||
float[] dashPattern = {10f, 5f};
|
||||
Stroke dashedStroke = new BasicStroke(2f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0f, dashPattern, 0f);
|
||||
graphics.setStroke(dashedStroke);
|
||||
graphics.setColor(Color.BLACK);
|
||||
|
||||
currentY += 5;
|
||||
int y = getCurrentY();
|
||||
|
||||
graphics.drawLine(0, y, canvasWidth, y);
|
||||
if (padding != 0) currentY += padding;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Drawing2D drawingText(String str) {
|
||||
textPadding();
|
||||
computedLineHeight();
|
||||
graphics.drawString(str, 0, getCurrentY());
|
||||
textPadding();
|
||||
return this;
|
||||
}
|
||||
|
||||
public Drawing2D drawingCenterText(String str) {
|
||||
textPadding();
|
||||
computedLineHeight();
|
||||
Point point = centerPosition(str);
|
||||
graphics.drawString(str, point.x, getCurrentY());
|
||||
textPadding();
|
||||
return this;
|
||||
}
|
||||
|
||||
public Drawing2D drawingRowText(String leftStr, String rightStr) {
|
||||
textPadding();
|
||||
computedLineHeight();
|
||||
FontMetrics metrics = graphics.getFontMetrics(graphics.getFont());
|
||||
int leftTextWidth = metrics.stringWidth(leftStr);
|
||||
int rightTextWidth = metrics.stringWidth(rightStr);
|
||||
int y = getCurrentY();
|
||||
graphics.drawString(leftStr, 0, y);
|
||||
graphics.drawString(rightStr, canvasWidth - rightTextWidth, y);
|
||||
textPadding();
|
||||
return this;
|
||||
}
|
||||
|
||||
public Drawing2D drawingRowText(String str1, String str2, String str3) {
|
||||
textPadding();
|
||||
computedLineHeight();
|
||||
int y = getCurrentY();
|
||||
int width = canvasWidth / 3;
|
||||
|
||||
FontMetrics metrics = graphics.getFontMetrics(graphics.getFont());
|
||||
int str1Width = metrics.stringWidth(str1);
|
||||
int str2Width = metrics.stringWidth(str2);
|
||||
int str3Width = metrics.stringWidth(str3);
|
||||
|
||||
int str1x = 0;
|
||||
int str2x = width + (width - str2Width) / 2;
|
||||
int str3x = width * 2 + (width - str3Width);
|
||||
|
||||
graphics.drawString(str1, str1x, y);
|
||||
graphics.drawString(str2, str2x, y);
|
||||
graphics.drawString(str3, str3x, y);
|
||||
textPadding();
|
||||
return this;
|
||||
}
|
||||
|
||||
public Drawing2D setTitleTextStyle() {
|
||||
graphics.setColor(Color.BLACK);
|
||||
graphics.setFont(new Font(fontFamily, Font.BOLD, 24));
|
||||
return this;
|
||||
}
|
||||
|
||||
public Drawing2D setDefaultStyle() {
|
||||
graphics.setColor(Color.BLACK);
|
||||
graphics.setFont(new Font(fontFamily, Font.PLAIN, 20));
|
||||
return this;
|
||||
}
|
||||
|
||||
public InputStream getInputStream() throws IOException {
|
||||
drawingWhiteSide();
|
||||
graphics.dispose();
|
||||
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
|
||||
ImageIO.write(canvas, "png", bytes);
|
||||
bytes.flush();
|
||||
byte[] imageBytes = bytes.toByteArray();
|
||||
bytes.close();
|
||||
return new ByteArrayInputStream(imageBytes);
|
||||
}
|
||||
|
||||
public byte[] getBytes() throws IOException {
|
||||
drawingWhiteSide();
|
||||
graphics.dispose();
|
||||
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
|
||||
ImageIO.write(canvas, "png", bytes);
|
||||
bytes.flush();
|
||||
byte[] imageBytes = bytes.toByteArray();
|
||||
bytes.close();
|
||||
return imageBytes;
|
||||
}
|
||||
|
||||
// 计算居中的x,y
|
||||
private Point centerPosition(String str) {
|
||||
FontMetrics metrics = graphics.getFontMetrics(graphics.getFont());
|
||||
int textWidth = metrics.stringWidth(str);
|
||||
int textHeight = metrics.getHeight();
|
||||
// 中心X坐标
|
||||
int x = (canvasWidth - textWidth) / 2;
|
||||
// 中心Y坐标
|
||||
int y = (currentHeight - textHeight) / 2 + metrics.getAscent();
|
||||
return new Point(x, y);
|
||||
}
|
||||
|
||||
private void drawingWhiteSide() {
|
||||
int borderSize = 15;
|
||||
BufferedImage borderedCanvas = new BufferedImage(currentWidth + borderSize * 2, currentHeight + borderSize * 2, BufferedImage.TYPE_INT_RGB);
|
||||
Graphics2D g2dBordered = borderedCanvas.createGraphics();
|
||||
|
||||
g2dBordered.setColor(Color.WHITE);
|
||||
g2dBordered.fillRect(0, 0, borderedCanvas.getWidth(), borderedCanvas.getHeight());
|
||||
|
||||
g2dBordered.drawImage(canvas, borderSize, borderSize, null);
|
||||
|
||||
graphics = g2dBordered;
|
||||
canvas = borderedCanvas;
|
||||
}
|
||||
|
||||
private void computedHeight() {
|
||||
Font font = graphics.getFont();
|
||||
FontMetrics metrics = graphics.getFontMetrics(font);
|
||||
int height = currentY + metrics.getAscent();
|
||||
if (height <= currentHeight) return;
|
||||
|
||||
graphics.dispose();
|
||||
|
||||
currentHeight = height + metrics.getAscent();
|
||||
BufferedImage newCanvas = new BufferedImage(currentWidth, currentHeight, BufferedImage.TYPE_INT_RGB);
|
||||
Graphics2D newGraphics = newCanvas.createGraphics();
|
||||
newGraphics.setColor(Color.WHITE);
|
||||
newGraphics.fillRect(0, 0, newCanvas.getWidth(), newCanvas.getHeight());
|
||||
newGraphics.drawImage(canvas, 0, 0, null);
|
||||
|
||||
canvas = newCanvas;
|
||||
|
||||
newGraphics.setColor(graphics.getColor());
|
||||
newGraphics.setFont(graphics.getFont());
|
||||
graphics = newGraphics;
|
||||
|
||||
}
|
||||
|
||||
private void textPadding() {
|
||||
currentY += 10;
|
||||
}
|
||||
|
||||
private void computedLineHeight() {
|
||||
int size = graphics.getFont().getSize();
|
||||
FontMetrics metrics = graphics.getFontMetrics(graphics.getFont());
|
||||
int lineHeight = metrics.getHeight();
|
||||
int offset = (lineHeight - size) / 2;
|
||||
currentY += size + offset;
|
||||
}
|
||||
}
|
||||
+2
@@ -7,8 +7,10 @@ import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class HardInvoiceVo extends HardInvoiceEntity implements BaseDeptInterface, BaseMchInterface {
|
||||
|
||||
private String deptName;
|
||||
|
||||
private Long merchantId;
|
||||
|
||||
private String merchantName;
|
||||
}
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
package com.bsd.pjcloud.hard.api.vo.order;
|
||||
|
||||
import com.bsd.pjcloud.hard.api.entity.order.HardwareOrderEntity;
|
||||
import com.bsd.pjcloud.hard.api.entity.order.HardOrderEntity;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class HardOrderVo extends HardwareOrderEntity {
|
||||
public class HardOrderVo extends HardOrderEntity {
|
||||
}
|
||||
Reference in new issue
Block a user