feat(purchase): 完善采购退货和结构化包装订单功能

- 移除BarcodePrintingEditQO中binNo字段的@NotBlank验证
- 在OutPurchaseController中添加采购订单行号设置逻辑
- 优化PurchaseReturnController中的数据类型转换和批量更新
- 添加SAP集成回调处理和PO行号映射功能
- 更新StructuralPackageOrderController中的扫描记录和库位设置
- 修改StructuralPackageOrderReceiveQO中binNo验证为@NotBlank
- 调整UnqualifiedWarehousingRequest中收货数量验证规则
- 扩展WmsReturnRequestItem实体增加新行号字段
- 重构ZWM3A24和ZWM3A25相关DTO的数据类型定义
- 更新采购退货申请单模板显示工厂代码和库存地点信息
This commit is contained in:
曹鹏飞 2026-03-24 11:34:47 +08:00
parent 0931350d63
commit da08b20455
11 changed files with 71 additions and 31 deletions

View File

@ -120,6 +120,7 @@ public class OutPurchaseController extends BaseController {
.setWerks(it.getFactoryCode())
.setMeins(it.getUnit())
.setLgort(it.getStorageLocation())
.setEbelp(it.getPoLineNumberNew().toString())
)
.toList()
);

View File

@ -35,6 +35,7 @@ import jakarta.validation.constraints.NotNull;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import software.amazon.awssdk.services.s3.endpoints.internal.Value;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@ -202,10 +203,10 @@ public class PurchaseReturnController extends BaseController {
for (WmsReturnRequestItem item : returnRequestItems) {
ZWM3A25ItemDTO itemDTO25 = new ZWM3A25ItemDTO();
itemDTO25.setWerks(item.getFactoryCode());
itemDTO25.setMenge_Ret(item.getRequestQuantity().toString());
itemDTO25.setMenge_Ret(item.getRequestQuantity());
itemDTO25.setLgort(item.getStorageLocation());
itemDTO25.setMatnr(item.getMaterialCode());
itemDTO25.setEbelp_old(item.getPoLineNumber());
itemDTO25.setEbelp_old(Integer.parseInt(item.getPoLineNumber()));
//itemDTO25.setEbelpNew(item.getDeliveryLineNo());
itemDTOList25.add(itemDTO25);
}
@ -221,14 +222,24 @@ public class PurchaseReturnController extends BaseController {
for (WmsReturnRequestItem item : returnRequestItems) {
ZWM3A24ItemDTO itemDTO24 = new ZWM3A24ItemDTO();
itemDTO24.setWerks(item.getFactoryCode());
itemDTO24.setMenge_Ret(item.getRequestQuantity().toString());
itemDTO24.setMenge_Ret(item.getRequestQuantity());
itemDTO24.setLgort(item.getStorageLocation());
itemDTO24.setMatnr(item.getMaterialCode());
itemDTO24.setEbelp_Old(item.getPoLineNumber());
itemDTO24.setEbelp_Old(Integer.parseInt(item.getPoLineNumber()));
itemDTOList24.add(itemDTO24);
}
ZWM3A24ReturnDTO retrunDto24 = sapService.ZWM3A24(headDTO24, itemDTOList24);
log.info(" zwm3a24ReturnDTO: " + JSONUtil.toJsonStr(retrunDto24));
retrunDto24.getItemReturnDTOList().forEach(item -> {
WmsReturnRequestItem dbItem=returnRequestItems.stream()
.filter(it -> StrUtil.equals(it.getMaterialCode(), item.getMatnr())
&& Objects.equals(Integer.parseInt(it.getPoLineNumber()), item.getEbelp_old())
)
.findFirst()
.get();
dbItem.setPoLineNumberNew(item.getEbelp_new());
});
returnRequestItemService.updateBatchById(returnRequestItems);
}
}
//修改状态

View File

@ -969,7 +969,8 @@ public class StructuralPackageOrderController extends BaseController {
if (structuralPackageDeliverOrderService.updateStateByOrderId(request.getId()) == 2) {
qrCodeMasterService.lambdaUpdate()
.set(WmsQrCodeMaster::getProcessStage, BarCodeProcessStage.InBound.getState())
.set(WmsQrCodeMaster::getLastScanBy, UserUtil.getUserName())
.set(WmsQrCodeMaster::getLastScanBy, UserUtil.getUserId())
.set(WmsQrCodeMaster::getLastScanByname, UserUtil.getUserName())
.set(WmsQrCodeMaster::getLastScanTime, LocalDateTime.now())
.eq(WmsQrCodeMaster::getExtendId, request.getId())
.update();
@ -985,6 +986,7 @@ public class StructuralPackageOrderController extends BaseController {
.setNum(BigDecimal.valueOf(order.getNum()))
.setFactoryNo(order.getFactoryNo())
.setWarehouseNo(request.getWarehouse())
.setBinLocation(request.getBinNo())
.setBatchNo("")
.setSerialNo("")
)

View File

@ -1,9 +1,7 @@
package com.nflg.wms.admin.pojo.request;
import jakarta.annotation.Priority;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive;
import lombok.Data;
import java.math.BigDecimal;
@ -21,6 +19,6 @@ public class UnqualifiedWarehousingRequest {
* 收货数量
*/
@NotNull
@Positive
@Min(value = 0)
private BigDecimal receiveQty;
}

View File

@ -179,8 +179,8 @@
<td th:text="${item.materialDescription}" class="col-left">非金属联件和紧固件等 M6 DIN 982 不锈钢304</td>
<td th:text="${item.unit}">PC</td>
<td th:text="${item.requestQuantity}">10.00</td>
<td></td>
<td></td>
<td th:text="${item.factoryCode}"></td>
<td th:text="${item.storageLocation}"></td>
<td></td>
</tr>
</table>

View File

@ -2,6 +2,8 @@ package com.nflg.wms.common.pojo.dto;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ZWM3A24ItemDTO{
/**
@ -12,7 +14,7 @@ public class ZWM3A24ItemDTO{
/**
* 数量
*/
private String menge_Ret;
private BigDecimal menge_Ret;
/**
@ -28,5 +30,5 @@ public class ZWM3A24ItemDTO{
/**
* 原订单行号
*/
private String ebelp_Old;
private Integer ebelp_Old;
}

View File

@ -2,38 +2,53 @@ package com.nflg.wms.common.pojo.dto;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ZWM3A24ItemReturnDTO{
/**
* 工厂
*/
private String werks;
/**
* 采购凭证的项目编
* 原订单行
*/
private String ebelp;
private Integer ebelp_old;
/**
* 新单行号
*/
private Integer ebelp_new;
/**
* 库存地点
*/
private String lgort;
/**
* 物料描述短文本
*/
private String maktx;
/**
* 退货项目
*/
private String retpo;
/**
* 采购凭证号
*/
private String ebeln;
// /**
// * 物料描述短文本
// */
// private String maktx;
// /**
// * 退货项目
// */
// private String retpo;
// /**
// * 采购凭证号
// */
// private String ebeln;
/**
* 物料号
*/
private String matnr;
/**
* 数量
*/
private String menge;
private BigDecimal menge_ret;
}

View File

@ -2,6 +2,8 @@ package com.nflg.wms.common.pojo.dto;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ZWM3A25ItemDTO{
@ -9,18 +11,22 @@ public class ZWM3A25ItemDTO{
* 工厂
*/
private String werks;
/**
* 数量
*/
private String menge_Ret;
private BigDecimal menge_Ret;
/**
* 消息
*/
private String msg;
/**
* 库存地点
*/
private String lgort;
/**
* 新单行号
*/
@ -29,8 +35,9 @@ public class ZWM3A25ItemDTO{
* 物料号
*/
private String matnr;
/**
* 原订单行号
*/
private String ebelp_old;
private Integer ebelp_old;
}

View File

@ -95,6 +95,5 @@ public class BarcodePrintingEditQO {
/**
* 储位编号
*/
@NotBlank
private String binNo;
}

View File

@ -25,7 +25,7 @@ public class StructuralPackageOrderReceiveQO {
/**
* 储位
*/
@NotNull
@NotBlank
private String binNo;
/**

View File

@ -84,6 +84,11 @@ public class WmsReturnRequestItem implements Serializable {
@TableField(value = "\"left\"")
private BigDecimal left;
/**
* sap过账的行号
*/
private Integer poLineNumberNew;
/**
* 出库状态
*/