fix(api): 更新API端点并修复业务逻辑错误

- 修改InProduceOrderController中的POST映射从空字符串到"receive"
- 在NormalPGIControllerService中为parents集合添加非空检查以避免潜在异常
- 更新多个控制器中的业务错误验证逻辑,添加!qitem.isQiTao()条件
- 修正PurchaseReturnController中的退货类型设置和字段命名
- 为TransferCompanyPdaVO和TransferFactoryPdaVO添加ID字段
- 更新ZWM3A24ItemDTO和ZWM3A25ItemDTO中的字段命名规范
This commit is contained in:
曹鹏飞 2026-03-20 21:16:39 +08:00
parent adea595f5d
commit faec72ba72
12 changed files with 46 additions and 38 deletions

View File

@ -394,7 +394,7 @@ public class InProduceOrderController extends BaseController {
* @param request 请求参数 * @param request 请求参数
*/ */
@Transactional @Transactional
@PostMapping("") @PostMapping("receive")
public ApiResult<Void> receive(@Valid @RequestBody InventoryIn1QO request) {//InProduceOrderReceiveQO public ApiResult<Void> receive(@Valid @RequestBody InventoryIn1QO request) {//InProduceOrderReceiveQO
WmsInProduceOrder order = produceOrderService.getById(request.getId()); WmsInProduceOrder order = produceOrderService.getById(request.getId());
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在"); VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在");

View File

@ -292,7 +292,7 @@ public class OutAssistanceController extends BaseController {
String materialNo = item.getMatnr1(); String materialNo = item.getMatnr1();
item.setLeft(item.getLeft().subtract(qrCodeMaster.getQuantity())); item.setLeft(item.getLeft().subtract(qrCodeMaster.getQuantity()));
pti.setNum(pti.getNum().add(qrCodeMaster.getQuantity())); pti.setNum(pti.getNum().add(qrCodeMaster.getQuantity()));
VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0) VUtil.trueThrowBusinessError(!qitem.isQiTao() && item.getLeft().compareTo(BigDecimal.ZERO) < 0)
.throwMessage("物料" + materialNo + "的领取数量超出申请限制"); .throwMessage("物料" + materialNo + "的领取数量超出申请限制");
// qrCodeMaster.setFactoryCode(""); // qrCodeMaster.setFactoryCode("");
// qrCodeMaster.setStorageLocation(""); // qrCodeMaster.setStorageLocation("");

View File

@ -286,7 +286,7 @@ public class OutCostCenterController extends BaseController {
String materialNo = qrCodeMaster.getMaterialCode(); String materialNo = qrCodeMaster.getMaterialCode();
item.setLeft(item.getLeft().subtract(qrCodeMaster.getQuantity())); item.setLeft(item.getLeft().subtract(qrCodeMaster.getQuantity()));
pti.setNum(pti.getNum().add(qrCodeMaster.getQuantity())); pti.setNum(pti.getNum().add(qrCodeMaster.getQuantity()));
VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0) VUtil.trueThrowBusinessError(!qitem.isQiTao() && item.getLeft().compareTo(BigDecimal.ZERO) < 0)
.throwMessage("物料" + materialNo + "的领取数量超出申请限制"); .throwMessage("物料" + materialNo + "的领取数量超出申请限制");
// qrCodeMaster.setFactoryCode(""); // qrCodeMaster.setFactoryCode("");
// qrCodeMaster.setStorageLocation(""); // qrCodeMaster.setStorageLocation("");

View File

@ -408,7 +408,7 @@ public class OutProduceController extends BaseController {
} }
item.setNum(item.getNum().add(qrCodeMaster.getQuantity())); item.setNum(item.getNum().add(qrCodeMaster.getQuantity()));
pti.setNum(pti.getNum().add(qrCodeMaster.getQuantity())); pti.setNum(pti.getNum().add(qrCodeMaster.getQuantity()));
VUtil.trueThrowBusinessError(item.getNum().compareTo(item.getSqsl()) > 0) VUtil.trueThrowBusinessError(!qitem.isQiTao() && item.getNum().compareTo(item.getSqsl()) > 0)
.throwMessage("物料" + materialNo + "的领取数量超出申请限制"); .throwMessage("物料" + materialNo + "的领取数量超出申请限制");
// qrCodeMaster.setFactoryCode(""); // qrCodeMaster.setFactoryCode("");
// qrCodeMaster.setStorageLocation(""); // qrCodeMaster.setStorageLocation("");

View File

@ -189,17 +189,17 @@ public class PurchaseReturnController extends BaseController {
if (request.getDocumentType().equals(1)) { //25 if (request.getDocumentType().equals(1)) { //25
ZWM3A25HeadDTO headDTO25 = new ZWM3A25HeadDTO(); ZWM3A25HeadDTO headDTO25 = new ZWM3A25HeadDTO();
List<ZWM3A25ItemDTO> itemDTOList25 = new ArrayList<>(); List<ZWM3A25ItemDTO> itemDTOList25 = new ArrayList<>();
headDTO25.setReturnType(request.getDocumentType().toString()); headDTO25.setReturnType("2");
headDTO25.setBstkdOld(returnRequest.getPoNum()); headDTO25.setBstkdOld(returnRequest.getPoNum());
headDTO25.setLifnr(returnRequest.getSupplierCode()); headDTO25.setLifnr(returnRequest.getSupplierCode());
headDTO25.setEkgrp(returnRequest.getPurchaseGroup()); headDTO25.setEkgrp(returnRequest.getPurchaseGroup());
for (WmsReturnRequestItem item : returnRequestItems) { for (WmsReturnRequestItem item : returnRequestItems) {
ZWM3A25ItemDTO itemDTO25 = new ZWM3A25ItemDTO(); ZWM3A25ItemDTO itemDTO25 = new ZWM3A25ItemDTO();
itemDTO25.setWerks(item.getFactoryCode()); itemDTO25.setWerks(item.getFactoryCode());
itemDTO25.setMengeRet(item.getRequestQuantity().toString()); itemDTO25.setMenge_Ret(item.getRequestQuantity().toString());
itemDTO25.setLgort(item.getStorageLocation()); itemDTO25.setLgort(item.getStorageLocation());
itemDTO25.setMatnr(item.getMaterialCode()); itemDTO25.setMatnr(item.getMaterialCode());
itemDTO25.setEbelpOld(item.getPoLineNumber()); itemDTO25.setEbelp_old(item.getPoLineNumber());
//itemDTO25.setEbelpNew(item.getDeliveryLineNo()); //itemDTO25.setEbelpNew(item.getDeliveryLineNo());
itemDTOList25.add(itemDTO25); itemDTOList25.add(itemDTO25);
} }
@ -208,17 +208,17 @@ public class PurchaseReturnController extends BaseController {
} else if (request.getDocumentType().equals(2)) { //24 } else if (request.getDocumentType().equals(2)) { //24
ZWM3A24HeadDTO headDTO24 = new ZWM3A24HeadDTO(); ZWM3A24HeadDTO headDTO24 = new ZWM3A24HeadDTO();
List<ZWM3A24ItemDTO> itemDTOList24 = new ArrayList<>(); List<ZWM3A24ItemDTO> itemDTOList24 = new ArrayList<>();
headDTO24.setReturnType(request.getDocumentType().toString()); headDTO24.setReturnType("1");
headDTO24.setBstkdOld(returnRequest.getPoNum()); headDTO24.setBstkdOld(returnRequest.getPoNum());
headDTO24.setLifnr(returnRequest.getSupplierCode()); headDTO24.setLifnr(returnRequest.getSupplierCode());
headDTO24.setEkgrp(returnRequest.getPurchaseGroup()); headDTO24.setEkgrp(returnRequest.getPurchaseGroup());
for (WmsReturnRequestItem item : returnRequestItems) { for (WmsReturnRequestItem item : returnRequestItems) {
ZWM3A24ItemDTO itemDTO24 = new ZWM3A24ItemDTO(); ZWM3A24ItemDTO itemDTO24 = new ZWM3A24ItemDTO();
itemDTO24.setWerks(item.getFactoryCode()); itemDTO24.setWerks(item.getFactoryCode());
itemDTO24.setMengeRet(item.getRequestQuantity().toString()); itemDTO24.setMenge_Ret(item.getRequestQuantity().toString());
itemDTO24.setLgort(item.getStorageLocation()); itemDTO24.setLgort(item.getStorageLocation());
itemDTO24.setMatnr(item.getMaterialCode()); itemDTO24.setMatnr(item.getMaterialCode());
itemDTO24.setEbelpOld(item.getPoLineNumber()); itemDTO24.setEbelp_Old(item.getPoLineNumber());
itemDTOList24.add(itemDTO24); itemDTOList24.add(itemDTO24);
} }
ZWM3A24ReturnDTO retrunDto24 = sapService.ZWM3A24(headDTO24, itemDTOList24); ZWM3A24ReturnDTO retrunDto24 = sapService.ZWM3A24(headDTO24, itemDTOList24);

View File

@ -325,7 +325,7 @@ public class TransferCompanyController extends BaseController {
String materialNo = qrCodeMaster.getMaterialCode(); String materialNo = qrCodeMaster.getMaterialCode();
item.setLeft(item.getLeft().subtract(qrCodeMaster.getQuantity())); item.setLeft(item.getLeft().subtract(qrCodeMaster.getQuantity()));
pti.setNum(pti.getNum().add(qrCodeMaster.getQuantity())); pti.setNum(pti.getNum().add(qrCodeMaster.getQuantity()));
VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0) VUtil.trueThrowBusinessError(!qitem.isQiTao() && item.getLeft().compareTo(BigDecimal.ZERO) < 0)
.throwMessage("物料" + materialNo + "的出库数量超出申请限制"); .throwMessage("物料" + materialNo + "的出库数量超出申请限制");
// qrCodeMaster.setStorageLocation(""); // qrCodeMaster.setStorageLocation("");
// qrCodeMaster.setBinLocation(""); // qrCodeMaster.setBinLocation("");
@ -559,6 +559,7 @@ public class TransferCompanyController extends BaseController {
VUtil.trueThrowBusinessError(!Objects.equals(ticket.getState(), 0)).throwMessage("出库单无效"); VUtil.trueThrowBusinessError(!Objects.equals(ticket.getState(), 0)).throwMessage("出库单无效");
List<TransferCompanyItemVO> datas = transferCompanyTicketItemService.getList(ticket.getId()); List<TransferCompanyItemVO> datas = transferCompanyTicketItemService.getList(ticket.getId());
return ApiResult.success(new TransferCompanyPdaVO() return ApiResult.success(new TransferCompanyPdaVO()
.setId(ticket.getId())
.setBukrs(ticket.getBukrs()) .setBukrs(ticket.getBukrs())
.setReswk(ticket.getReswk()) .setReswk(ticket.getReswk())
.setLgort(ticket.getLgfsb1()) .setLgort(ticket.getLgfsb1())

View File

@ -335,7 +335,7 @@ public class TransferFactoryController extends BaseController {
.throwMessage("二维码" + qrCode + "未入库"); .throwMessage("二维码" + qrCode + "未入库");
pti.setNum(pti.getNum().add(qrCodeMaster.getQuantity())); pti.setNum(pti.getNum().add(qrCodeMaster.getQuantity()));
item.setLeft(item.getLeft().subtract(qrCodeMaster.getQuantity())); item.setLeft(item.getLeft().subtract(qrCodeMaster.getQuantity()));
VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0) VUtil.trueThrowBusinessError(!qitem.isQiTao() && item.getLeft().compareTo(BigDecimal.ZERO) < 0)
.throwMessage("物料" + materialNo + "的出库数量超出申请限制"); .throwMessage("物料" + materialNo + "的出库数量超出申请限制");
// qrCodeMaster.setStorageLocation(""); // qrCodeMaster.setStorageLocation("");
// qrCodeMaster.setBinLocation(""); // qrCodeMaster.setBinLocation("");
@ -544,6 +544,7 @@ public class TransferFactoryController extends BaseController {
VUtil.trueThrowBusinessError(!Objects.equals(ticket.getState(), 0)).throwMessage("出库单无效"); VUtil.trueThrowBusinessError(!Objects.equals(ticket.getState(), 0)).throwMessage("出库单无效");
List<TransferFactoryItemVO> itemVOS = transferFactoryTicketItemService.getList(ticket.getId()); List<TransferFactoryItemVO> itemVOS = transferFactoryTicketItemService.getList(ticket.getId());
return ApiResult.success(new TransferFactoryPdaVO() return ApiResult.success(new TransferFactoryPdaVO()
.setId(ticket.getId())
.setBwart(ticket.getBwart()) .setBwart(ticket.getBwart())
.setRsnum(ticket.getRsnum()) .setRsnum(ticket.getRsnum())
.setMblnr(ticket.getMblnr()) .setMblnr(ticket.getMblnr())

View File

@ -624,6 +624,7 @@ public class NormalPGIControllerService {
.stream() .stream()
.filter(qrCode -> qrCode.getPackagingType() == 1) .filter(qrCode -> qrCode.getPackagingType() == 1)
.toList(); .toList();
if (CollectionUtil.isNotEmpty(parents)) {
List<WmsQrCodeMaster> children = qrCodeMasterService.lambdaQuery() List<WmsQrCodeMaster> children = qrCodeMasterService.lambdaQuery()
.in(WmsQrCodeMaster::getParentBarcodeId, parents .in(WmsQrCodeMaster::getParentBarcodeId, parents
.stream() .stream()
@ -646,6 +647,7 @@ public class NormalPGIControllerService {
}); });
}); });
dto.getQrCodes().addAll(children); dto.getQrCodes().addAll(children);
}
qrCodeMasterService.updateBarCode(dto.getQrCodes()); qrCodeMasterService.updateBarCode(dto.getQrCodes());
} }
} }

View File

@ -12,7 +12,7 @@ public class ZWM3A24ItemDTO{
/** /**
* 数量 * 数量
*/ */
private String mengeRet; private String menge_Ret;
/** /**
@ -28,5 +28,5 @@ public class ZWM3A24ItemDTO{
/** /**
* 原订单行号 * 原订单行号
*/ */
private String ebelpOld; private String ebelp_Old;
} }

View File

@ -12,7 +12,7 @@ public class ZWM3A25ItemDTO{
/** /**
* 数量 * 数量
*/ */
private String mengeRet; private String menge_Ret;
/** /**
* 消息 * 消息
*/ */
@ -32,5 +32,5 @@ public class ZWM3A25ItemDTO{
/** /**
* 原订单行号 * 原订单行号
*/ */
private String ebelpOld; private String ebelp_old;
} }

View File

@ -9,6 +9,8 @@ import java.util.List;
@Accessors(chain = true) @Accessors(chain = true)
public class TransferCompanyPdaVO { public class TransferCompanyPdaVO {
private Long id;
/** /**
* 转出公司 * 转出公司
*/ */

View File

@ -9,6 +9,8 @@ import java.util.List;
@Accessors(chain = true) @Accessors(chain = true)
public class TransferFactoryPdaVO { public class TransferFactoryPdaVO {
private Long id;
/** /**
* 预留/相关需求的编号 * 预留/相关需求的编号
*/ */