feat: bug-776 所有的出库操作扫码后流程需要调整

This commit is contained in:
曹鹏飞 2025-10-11 18:06:10 +08:00
parent 119e867890
commit 9b4e5d62f4
4 changed files with 42 additions and 34 deletions

View File

@ -109,12 +109,12 @@ public class OutPurchaseController extends BaseController {
item.setNum(BigDecimal.ZERO);
if (CollectionUtil.isNotEmpty(it.getQrCodes())) {
it.getQrCodes().forEach(qrCode -> {
MaterialQRCodeContentDTO dto = NoUtil.getMaterialQRCodeContent(qrCode);
MaterialQRCodeContentDTO dto = NoUtil.getMaterialQRCodeContent(qrCode.getContent());
VUtil.trueThrowBusinessError(!StrUtil.equals(dto.getMaterialNo(), it.getMatnr()))
.throwMessage("物料" + it.getMatnr() + "与二维码不匹配");
VUtil.trueThrowBusinessError(!check(dto, it.getCharg(), it.getSernrs()))
.throwMessage("物料" + it.getMatnr() + "包含不符合批次号和序列号的扫码记录");
item.setNum(item.getNum().add(dto.getNum()));
item.setNum(item.getNum().add(qrCode.getNum()));
records.add(new OutMaterialScanRecord()
.setSource(6)
.setSourceId(order.getId())
@ -122,7 +122,7 @@ public class OutPurchaseController extends BaseController {
.setTicketId(order.getId())
.setTicketItemId(item.getId())
.setMaterialNo(dto.getMaterialNo())
.setContent(qrCode)
.setContent(qrCode.getContent())
.setBatchNo(dto.getBatchNo())
.setSerialNo(dto.getSerialNo())
.setUniqNo(dto.getUniqNo())
@ -137,10 +137,10 @@ public class OutPurchaseController extends BaseController {
);
});
}
VUtil.trueThrowBusinessError(it.getNum().compareTo(item.getTemng()) > 0)
.throwMessage("物料" + it.getMatnr() + "的扫码数量大于退货数量");
VUtil.trueThrowBusinessError(item.getNum().compareTo(it.getNum()) != 0)
.throwMessage("物料" + it.getMatnr() + "的扫码数量不一致");
// VUtil.trueThrowBusinessError(it.getNum().compareTo(item.getTemng()) > 0)
// .throwMessage("物料" + it.getMatnr() + "的扫码数量大于退货数量");
// VUtil.trueThrowBusinessError(item.getNum().compareTo(it.getNum()) != 0)
// .throwMessage("物料" + it.getMatnr() + "的扫码数量不一致");
items.add(item);
if (item.getNum().compareTo(BigDecimal.ZERO) > 0) {
input1.add(new ZWM3A06Input1DTO()
@ -148,7 +148,7 @@ public class OutPurchaseController extends BaseController {
.setRetpo(it.getRetpo())
.setMatnr(it.getMatnr())
.setMaktx(it.getMaktx())
.setErfmg(it.getNum())
.setErfmg(item.getNum())
.setMeins(it.getMeins())
.setCharg(it.getCharg())
.setWerks(it.getWerks())

View File

@ -1,29 +1,14 @@
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 {
public class QRCodeQO extends QRCodeQO1 {
/**
* 项id
*/
@NotNull
private Long itemId;
/**
* 二维码内容
*/
@NotBlank
private String content;
/**
* 数量
*/
@NotNull
private BigDecimal num;
}

View File

@ -0,0 +1,23 @@
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 QRCodeQO1 {
/**
* 二维码内容
*/
@NotBlank
private String content;
/**
* 数量
*/
@NotNull
private BigDecimal num;
}

View File

@ -1,13 +1,13 @@
package com.nflg.wms.common.pojo.vo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.nflg.wms.common.pojo.qo.QRCodeQO1;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
@ -89,17 +89,17 @@ public class ZWM3A05ItemVO {
*/
private String binNos;
/**
* 实际退货数量扫码后计算
*/
private BigDecimal num;
public BigDecimal getNum() {
return Optional.ofNullable(num).orElse(BigDecimal.ZERO);
}
// /**
// * 实际退货数量扫码后计算
// */
// private BigDecimal num;
//
// public BigDecimal getNum() {
// return Optional.ofNullable(num).orElse(BigDecimal.ZERO);
// }
/**
* 二维码列表
*/
private List<String> qrCodes = new ArrayList<>();
private List<QRCodeQO1> qrCodes = new ArrayList<>();
}