feat: bug-776 所有的出库操作扫码后流程需要调整
This commit is contained in:
parent
924bf4c5ff
commit
19674ba135
|
|
@ -231,7 +231,8 @@ public class InCostCenterBackController extends BaseController {
|
|||
ti.setNum(ti.getNum().add(qrCodeContent.getNum()));
|
||||
records.add(new InMaterialScanRecord()
|
||||
.setSource(2)
|
||||
.setSourceId(item.getId())
|
||||
.setSourceId(order.getId())
|
||||
.setSourceItemId(item.getId())
|
||||
.setTicketItemId(ti.getId())
|
||||
.setMaterialNo(materialNo)
|
||||
.setContent(qrCode)
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.nflg.wms.admin.controller;
|
|||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.google.common.collect.ArrayListMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
|
|
@ -231,7 +232,7 @@ public class InProduceBackController extends BaseController {
|
|||
*/
|
||||
@Transactional
|
||||
@PostMapping("pda/submit")
|
||||
public ApiResult<Void> submit(@Valid @RequestBody OutProduceSubmitQO request) {
|
||||
public ApiResult<Void> submit(@Valid @RequestBody InProduceBackSubmitQO request) {
|
||||
WmsInProduceBack order = inProduceBackService.lambdaQuery().eq(WmsInProduceBack::getNo, request.getNo()).one();
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在");
|
||||
WmsInProduceBackTicket ticket = new WmsInProduceBackTicket()
|
||||
|
|
@ -262,6 +263,7 @@ public class InProduceBackController extends BaseController {
|
|||
.findFirst()
|
||||
.orElseGet(() -> {
|
||||
WmsInProduceBackTicketItem ti = new WmsInProduceBackTicketItem()
|
||||
.setId(IdUtil.getSnowflakeNextId())
|
||||
.setTicketId(ticket.getId())
|
||||
.setProduceBackItemId(item.getId())
|
||||
.setNum(BigDecimal.ZERO);
|
||||
|
|
@ -275,7 +277,9 @@ public class InProduceBackController extends BaseController {
|
|||
pti.setNum(pti.getNum().add(qrCodeContent.getNum()));
|
||||
records.add(new InMaterialScanRecord()
|
||||
.setSource(1)
|
||||
.setSourceId(item.getId())
|
||||
.setSourceId(order.getId())
|
||||
.setSourceItemId(item.getId())
|
||||
.setTicketItemId(pti.getId())
|
||||
.setMaterialNo(materialNo)
|
||||
.setContent(qrCode)
|
||||
.setBatchNo(qrCodeContent.getBatchNo())
|
||||
|
|
|
|||
|
|
@ -406,6 +406,7 @@ public class InProduceOrderController extends BaseController {
|
|||
records.add(new InMaterialScanRecord()
|
||||
.setSource(4)
|
||||
.setSourceId(order.getId())
|
||||
.setSourceItemId(it.getId())
|
||||
.setTicketItemId(it.getId())
|
||||
.setMaterialNo(it.getMaterialNo())
|
||||
.setContent(qrCode)
|
||||
|
|
|
|||
|
|
@ -202,10 +202,13 @@ public class OutAssistanceController extends BaseController {
|
|||
List<MaterialQRCodeContentDTO> dtos = new ArrayList<>();
|
||||
List<WmsOutAssistanceTicketItem> ticketItems = new ArrayList<>();
|
||||
request.getQrCodes().forEach(qrCode -> {
|
||||
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode);
|
||||
dtos.add(qrCodeContent);
|
||||
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent());
|
||||
BigDecimal qrNum = qrCode.getNum();
|
||||
String materialNo = qrCodeContent.getMaterialNo();
|
||||
WmsOutAssistanceItem item = datas.stream().filter(d -> StrUtil.equals(d.getMatnr1(), materialNo)).findFirst().orElse(null);
|
||||
VUtil.trueThrowBusinessError(qrCode.getNum().compareTo(qrCodeContent.getNum()) > 0)
|
||||
.throwMessage("物料" + materialNo + "的数量不能大于二维码中的数量");
|
||||
dtos.add(qrCodeContent);
|
||||
WmsOutAssistanceItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null);
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要领料");
|
||||
WmsOutAssistanceTicketItem pti = ticketItems.stream()
|
||||
.filter(ti -> Objects.equals(ti.getOrderItemId(), item.getId())
|
||||
|
|
@ -222,25 +225,26 @@ public class OutAssistanceController extends BaseController {
|
|||
return ti;
|
||||
});
|
||||
BigDecimal num = item.getLeft();
|
||||
VUtil.trueThrowBusinessError(num.compareTo(qrCodeContent.getNum()) < 0)
|
||||
VUtil.trueThrowBusinessError(num.compareTo(qrNum) < 0)
|
||||
.throwMessage("物料" + materialNo + "的领取数量超出申请限制");
|
||||
item.setLeft(item.getLeft().subtract(qrCodeContent.getNum()));
|
||||
pti.setNum(pti.getNum().add(qrCodeContent.getNum()));
|
||||
item.setLeft(item.getLeft().subtract(qrNum));
|
||||
pti.setNum(pti.getNum().add(qrNum));
|
||||
records.add(new OutMaterialScanRecord()
|
||||
.setSource(3)
|
||||
// .setSourceId(item.getId())
|
||||
.setTicketId(ticket.getId())
|
||||
.setTicketItemId(pti.getId())
|
||||
.setMaterialNo(materialNo)
|
||||
.setContent(qrCode)
|
||||
.setBatchNo(qrCodeContent.getBatchNo())
|
||||
.setSerialNo(qrCodeContent.getSerialNo())
|
||||
.setUniqNo(qrCodeContent.getUniqNo())
|
||||
.setFactoryNo(order.getWerks())
|
||||
.setWarehouseNo(order.getLgort1())
|
||||
.setNum(qrCodeContent.getNum())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
.setSource(3)
|
||||
.setSourceId(order.getId())
|
||||
.setSourceItemId(item.getId())
|
||||
.setTicketId(ticket.getId())
|
||||
.setTicketItemId(pti.getId())
|
||||
.setMaterialNo(materialNo)
|
||||
.setContent(qrCode.getContent())
|
||||
.setBatchNo(qrCodeContent.getBatchNo())
|
||||
.setSerialNo(qrCodeContent.getSerialNo())
|
||||
.setUniqNo(qrCodeContent.getUniqNo())
|
||||
.setFactoryNo(order.getWerks())
|
||||
.setWarehouseNo(order.getLgort1())
|
||||
.setNum(qrNum)
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
);
|
||||
});
|
||||
outAssistanceItemService.updateBatchById(datas);
|
||||
|
|
|
|||
|
|
@ -195,10 +195,13 @@ public class OutCostCenterController extends BaseController {
|
|||
List<MaterialQRCodeContentDTO> dtos = new ArrayList<>();
|
||||
List<WmsOutCostcenterTicketItem> ticketItems = new ArrayList<>();
|
||||
request.getQrCodes().forEach(qrCode -> {
|
||||
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode);
|
||||
dtos.add(qrCodeContent);
|
||||
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent());
|
||||
BigDecimal qrNum = qrCode.getNum();
|
||||
String materialNo = qrCodeContent.getMaterialNo();
|
||||
WmsOutCostcenterItem item = datas.stream().filter(d -> StrUtil.equals(d.getMatnr(), materialNo)).findFirst().orElse(null);
|
||||
VUtil.trueThrowBusinessError(qrCode.getNum().compareTo(qrCodeContent.getNum()) > 0)
|
||||
.throwMessage("物料" + materialNo + "的数量不能大于二维码中的数量");
|
||||
dtos.add(qrCodeContent);
|
||||
WmsOutCostcenterItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null);
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要领料");
|
||||
WmsOutCostcenterTicketItem pti = ticketItems.stream()
|
||||
.filter(ti -> Objects.equals(ti.getOrderItemId(), item.getId()))
|
||||
|
|
@ -213,25 +216,26 @@ public class OutCostCenterController extends BaseController {
|
|||
return ti;
|
||||
});
|
||||
BigDecimal num = item.getLeft();
|
||||
VUtil.trueThrowBusinessError(num.compareTo(qrCodeContent.getNum()) < 0)
|
||||
VUtil.trueThrowBusinessError(num.compareTo(qrNum) < 0)
|
||||
.throwMessage("物料" + materialNo + "的领取数量超出申请限制");
|
||||
item.setLeft(item.getLeft().subtract(qrCodeContent.getNum()));
|
||||
pti.setNum(pti.getNum().add(qrCodeContent.getNum()));
|
||||
item.setLeft(item.getLeft().subtract(qrNum));
|
||||
pti.setNum(pti.getNum().add(qrNum));
|
||||
records.add(new OutMaterialScanRecord()
|
||||
.setSource(2)
|
||||
// .setSourceId(item.getId())
|
||||
.setTicketId(ticket.getId())
|
||||
.setTicketItemId(pti.getId())
|
||||
.setMaterialNo(materialNo)
|
||||
.setContent(qrCode)
|
||||
.setBatchNo(qrCodeContent.getBatchNo())
|
||||
.setSerialNo(qrCodeContent.getSerialNo())
|
||||
.setUniqNo(qrCodeContent.getUniqNo())
|
||||
.setFactoryNo(order.getWerks())
|
||||
.setWarehouseNo(item.getLgort())
|
||||
.setNum(qrCodeContent.getNum())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
.setSource(2)
|
||||
.setSourceId(order.getId())
|
||||
.setSourceItemId(item.getId())
|
||||
.setTicketId(ticket.getId())
|
||||
.setTicketItemId(pti.getId())
|
||||
.setMaterialNo(materialNo)
|
||||
.setContent(qrCode.getContent())
|
||||
.setBatchNo(qrCodeContent.getBatchNo())
|
||||
.setSerialNo(qrCodeContent.getSerialNo())
|
||||
.setUniqNo(qrCodeContent.getUniqNo())
|
||||
.setFactoryNo(order.getWerks())
|
||||
.setWarehouseNo(item.getLgort())
|
||||
.setNum(qrNum)
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
);
|
||||
});
|
||||
outCostcenterItemService.updateBatchById(datas);
|
||||
|
|
|
|||
|
|
@ -383,10 +383,13 @@ public class OutProduceController extends BaseController {
|
|||
List<MaterialQRCodeContentDTO> dtos = new ArrayList<>();
|
||||
List<WmsOutProduceTicketItem> ticketItems = new ArrayList<>();
|
||||
request.getQrCodes().forEach(qrCode -> {
|
||||
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode);
|
||||
dtos.add(qrCodeContent);
|
||||
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent());
|
||||
String materialNo = qrCodeContent.getMaterialNo();
|
||||
WmsOutProduceItem item = datas.stream().filter(d -> StrUtil.equals(d.getMatnr(), materialNo)).findFirst().orElse(null);
|
||||
BigDecimal qrNum = qrCode.getNum();
|
||||
VUtil.trueThrowBusinessError(qrCode.getNum().compareTo(qrCodeContent.getNum()) > 0)
|
||||
.throwMessage("物料" + materialNo + "的数量不能大于二维码中的数量");
|
||||
dtos.add(qrCodeContent);
|
||||
WmsOutProduceItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null);
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要领料");
|
||||
WmsOutProduceTicketItem pti = ticketItems.stream()
|
||||
.filter(ti -> Objects.equals(ti.getProduceItemId(), item.getId()))
|
||||
|
|
@ -401,28 +404,29 @@ public class OutProduceController extends BaseController {
|
|||
return ti;
|
||||
});
|
||||
BigDecimal num = Objects.equals(order.getType(), 0) ? item.getLockNum() : item.getSqsl().subtract(item.getNum());
|
||||
VUtil.trueThrowBusinessError(num.compareTo(qrCodeContent.getNum()) < 0)
|
||||
VUtil.trueThrowBusinessError(num.compareTo(qrNum) < 0)
|
||||
.throwMessage("物料" + materialNo + "的领取数量超出申请限制");
|
||||
if (Objects.equals(order.getType(), 0)) {
|
||||
item.setLockNum(item.getLockNum().subtract(qrCodeContent.getNum()));
|
||||
item.setLockNum(item.getLockNum().subtract(qrNum));
|
||||
}
|
||||
item.setNum(item.getNum().add(qrCodeContent.getNum()));
|
||||
pti.setNum(pti.getNum().add(qrCodeContent.getNum()));
|
||||
item.setNum(item.getNum().add(qrNum));
|
||||
pti.setNum(pti.getNum().add(qrNum));
|
||||
records.add(new OutMaterialScanRecord()
|
||||
.setSource(1)
|
||||
// .setSourceId(item.getId())
|
||||
.setTicketId(ticket.getProduceId())
|
||||
.setTicketItemId(pti.getId())
|
||||
.setMaterialNo(materialNo)
|
||||
.setContent(qrCode)
|
||||
.setBatchNo(qrCodeContent.getBatchNo())
|
||||
.setSerialNo(qrCodeContent.getSerialNo())
|
||||
.setUniqNo(qrCodeContent.getUniqNo())
|
||||
.setFactoryNo(order.getDwerk())
|
||||
.setWarehouseNo(request.getLgort())
|
||||
.setNum(qrCodeContent.getNum())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
.setSource(1)
|
||||
.setSourceId(order.getId())
|
||||
.setSourceItemId(item.getId())
|
||||
.setTicketId(ticket.getProduceId())
|
||||
.setTicketItemId(pti.getId())
|
||||
.setMaterialNo(materialNo)
|
||||
.setContent(qrCode.getContent())
|
||||
.setBatchNo(qrCodeContent.getBatchNo())
|
||||
.setSerialNo(qrCodeContent.getSerialNo())
|
||||
.setUniqNo(qrCodeContent.getUniqNo())
|
||||
.setFactoryNo(order.getDwerk())
|
||||
.setWarehouseNo(request.getLgort())
|
||||
.setNum(qrNum)
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
);
|
||||
});
|
||||
outProduceItemService.updateBatchById(datas);
|
||||
|
|
|
|||
|
|
@ -216,9 +216,12 @@ public class TransferCompanyController extends BaseController {
|
|||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(LocalDateTime.now());
|
||||
request.getQrCodes().forEach(qrCode -> {
|
||||
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode);
|
||||
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent());
|
||||
BigDecimal qrNum = qrCode.getNum();
|
||||
String materialNo = qrCodeContent.getMaterialNo();
|
||||
WmsTransferCompanyItem item = datas.stream().filter(d -> StrUtil.equals(d.getMatnr(), materialNo)).findFirst().orElse(null);
|
||||
VUtil.trueThrowBusinessError(qrCode.getNum().compareTo(qrCodeContent.getNum()) > 0)
|
||||
.throwMessage("物料" + materialNo + "的数量不能大于二维码中的数量");
|
||||
WmsTransferCompanyItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null);
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要出库");
|
||||
VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0)
|
||||
.throwMessage("物料" + materialNo + "的出库数量超出申请限制");
|
||||
|
|
@ -234,7 +237,7 @@ public class TransferCompanyController extends BaseController {
|
|||
ticketItems.add(ti);
|
||||
return ti;
|
||||
});
|
||||
pti.setNum(pti.getNum().add(qrCodeContent.getNum()));
|
||||
pti.setNum(pti.getNum().add(qrNum));
|
||||
records.add(new OutMaterialScanRecord()
|
||||
.setSource(5)
|
||||
.setSourceId(order.getId())
|
||||
|
|
@ -243,20 +246,20 @@ public class TransferCompanyController extends BaseController {
|
|||
.setTicketItemId(pti.getId())
|
||||
.setMaterialNo(materialNo)
|
||||
.setUnit(item.getMeins())
|
||||
.setContent(qrCode)
|
||||
.setContent(qrCode.getContent())
|
||||
.setBatchNo(qrCodeContent.getBatchNo())
|
||||
.setSerialNo(qrCodeContent.getSerialNo())
|
||||
.setUniqNo(qrCodeContent.getUniqNo())
|
||||
.setFactoryNo(order.getReswk())
|
||||
.setWarehouseNo(request.getLgort())
|
||||
.setNum(qrCodeContent.getNum())
|
||||
.setNum(qrNum)
|
||||
.setEbelp(item.getEbelp())
|
||||
.setEbeln(order.getEbeln())
|
||||
.setExt(item.getEbelp())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
);
|
||||
item.setLeft(item.getLeft().subtract(qrCodeContent.getNum()));
|
||||
item.setLeft(item.getLeft().subtract(qrNum));
|
||||
});
|
||||
transferCompanyItemService.updateBatchById(datas);
|
||||
transferCompanyService.lambdaUpdate()
|
||||
|
|
|
|||
|
|
@ -226,9 +226,12 @@ public class TransferFactoryController extends BaseController {
|
|||
transferFactoryTicketService.save(ticket);
|
||||
List<WmsTransferFactoryTicketItem> ticketItems = new ArrayList<>();
|
||||
request.getQrCodes().forEach(qrCode -> {
|
||||
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode);
|
||||
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent());
|
||||
BigDecimal qrNum = qrCode.getNum();
|
||||
String materialNo = qrCodeContent.getMaterialNo();
|
||||
WmsTransferFactoryItem item = datas.stream().filter(d -> StrUtil.equals(d.getMatnr(), materialNo)).findFirst().orElse(null);
|
||||
VUtil.trueThrowBusinessError(qrCode.getNum().compareTo(qrCodeContent.getNum()) > 0)
|
||||
.throwMessage("物料" + materialNo + "的数量不能大于二维码中的数量");
|
||||
WmsTransferFactoryItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null);
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要出库");
|
||||
WmsTransferFactoryTicketItem pti = ticketItems.stream()
|
||||
.filter(ti -> Objects.equals(ti.getOrderItemId(), item.getId()))
|
||||
|
|
@ -242,8 +245,8 @@ public class TransferFactoryController extends BaseController {
|
|||
ticketItems.add(ti);
|
||||
return ti;
|
||||
});
|
||||
pti.setNum(pti.getNum().add(qrCodeContent.getNum()));
|
||||
item.setLeft(item.getLeft().subtract(qrCodeContent.getNum()));
|
||||
pti.setNum(pti.getNum().add(qrNum));
|
||||
item.setLeft(item.getLeft().subtract(qrNum));
|
||||
VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0)
|
||||
.throwMessage("物料" + materialNo + "的出库数量超出申请限制");
|
||||
records.add(new OutMaterialScanRecord()
|
||||
|
|
@ -255,13 +258,13 @@ public class TransferFactoryController extends BaseController {
|
|||
.setMaterialNo(materialNo)
|
||||
.setUnit(item.getMeins())
|
||||
.setRspos(item.getRspos())
|
||||
.setContent(qrCode)
|
||||
.setContent(qrCode.getContent())
|
||||
.setBatchNo(qrCodeContent.getBatchNo())
|
||||
.setSerialNo(qrCodeContent.getSerialNo())
|
||||
.setUniqNo(qrCodeContent.getUniqNo())
|
||||
.setFactoryNo(order.getWerks())
|
||||
.setWarehouseNo(request.getLgort())
|
||||
.setNum(qrCodeContent.getNum())
|
||||
.setNum(qrNum)
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class InProduceBackSubmitQO {
|
||||
|
||||
@NotBlank
|
||||
private String no;
|
||||
|
||||
/**
|
||||
* 仓库编号
|
||||
*/
|
||||
@NotBlank
|
||||
private String lgort;
|
||||
|
||||
/**
|
||||
* 二维码列表
|
||||
*/
|
||||
@NotEmpty
|
||||
private List<String> qrCodes;
|
||||
}
|
||||
|
|
@ -22,5 +22,5 @@ public class OutProduceSubmitQO {
|
|||
* 二维码列表
|
||||
*/
|
||||
@NotEmpty
|
||||
private List<String> qrCodes;
|
||||
private List<QRCodeQO> qrCodes;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,29 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class QRCodeQO {
|
||||
|
||||
/**
|
||||
* 项id
|
||||
*/
|
||||
@NotNull
|
||||
private Long itemId;
|
||||
|
||||
/**
|
||||
* 二维码内容
|
||||
*/
|
||||
@NotBlank
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
@NotNull
|
||||
private BigDecimal num;
|
||||
}
|
||||
Loading…
Reference in New Issue