From f4e7abcf2b24587df1b40df60c49f23b52345d64 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?=
Date: Mon, 1 Dec 2025 11:42:18 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20bug-966=20=E8=BF=94=E5=9B=9E=E5=AD=97?=
=?UTF-8?q?=E6=AE=B5=E6=B7=BB=E5=8A=A0=E6=89=B9=E6=AC=A1=E5=8F=B7=EF=BC=8C?=
=?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=BAyyMMdd+4=E4=BD=8D=E6=B5=81=E6=B0=B4?=
=?UTF-8?q?=E5=8F=B7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../nflg/wms/admin/service/SapService.java | 43 +++++++------------
.../wms/common/pojo/dto/ZWM00MB007DTO.java | 5 +++
2 files changed, 20 insertions(+), 28 deletions(-)
diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/SapService.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/SapService.java
index 1a014c10..5328d4ef 100644
--- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/SapService.java
+++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/SapService.java
@@ -21,10 +21,14 @@ import com.nflg.wms.common.util.VUtil;
import com.sap.conn.jco.*;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
import java.util.*;
+import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Slf4j
@@ -37,6 +41,9 @@ public class SapService {
@Resource
private JCoRepository repository;
+ @Resource
+ private StringRedisTemplate stringRedisTemplate;
+
/**
* 生产订单副产品(拆解)入库过账
*/
@@ -139,7 +146,6 @@ public class SapService {
/**
* 生产订单查询
- *
* @param no 生产订单号
*/
public ZWM00MB007DTO zwm00Mb007(String no) {
@@ -159,13 +165,16 @@ public class SapService {
.throwMessage("SAP:" + eReturn.getString("MESSAGE"));
return null;
} else {
+ String date = DateTimeUtil.format(LocalDate.now(), "yyMMdd");
+ stringRedisTemplate.opsForValue().setIfAbsent("index:batchNo:" + date, "0", 24 - LocalDateTime.now().getHour(), TimeUnit.HOURS);
+ String index = StrUtil.padPre(String.valueOf(stringRedisTemplate.opsForValue().increment("index:batchNo:" + date)), 4, "0");
+ dto.setBatchNo(date + index);
return dto;
}
}
/**
* 生产订单收货
- *
* @param no 生产订单号
* @param userName 用户名
* @param materials 入库物料列表
@@ -265,7 +274,6 @@ public class SapService {
/**
* 扫码质检入库
- *
* @param dto 数据
*/
public Pair zwm3a18(ZWM3A18DTO dto) {
@@ -291,7 +299,6 @@ public class SapService {
/**
* 扫码入库
- *
* @param dto 数据
*/
public Pair, Pair> zwm3a17(ZWM3A17DTO dto) {
@@ -343,7 +350,6 @@ public class SapService {
/**
* 获取库存信息
- *
* @param factory 工厂编号
* @param warehouseNo 仓库编号
* @param materialNo 物料编号
@@ -355,7 +361,6 @@ public class SapService {
/**
* 获取库存信息
- *
* @param factory 工厂编号
* @param warehouseNos 仓库编号列表
* @param beginTime 开始时间,格式yyyyMMdd
@@ -434,7 +439,6 @@ public class SapService {
/**
* 成本中心退库查询
* 根据退库单号查询物料退库信息
- *
* @param resebRsNum 退库单号
* @return 预留单号
*/
@@ -453,7 +457,6 @@ public class SapService {
*
* 该方法用于调用 SAP 的 RFC 函数 ZWM00_MB112,执行成本中心物料退库操作。
* 根据传入的请求参数构造输入表和字段,并处理返回结果。
- *
* @param request 请求参数对象,包含退库单据号、用户信息及物料明细等
* @return C_MaterialReturnDTO 返回结果对象,包含生成的物料凭证号(MBLNR)和年度(MJAHR)
*/
@@ -545,7 +548,6 @@ public class SapService {
*
* 根据预留单号(resebRsNum)调用SAP的RFC函数ZWM00_MB026,查询对应的成本中心领料信息,
* 包括领料主记录和明细清单,并封装为C_MaterialOutboundQueryDTO对象返回。
- *
* @param resebRsNum 预留单号,不能为空
* @return C_MaterialOutboundQueryDTO 领料查询结果数据传输对象,包含主信息和明细列表
*/
@@ -597,7 +599,6 @@ public class SapService {
* 该方法首先校验请求参数中的物料明细是否为空,然后构造调用SAP所需的输入参数和表结构,
* 包括 T_LIST1 和 T_LIST2。根据是否存在扫码信息决定数据填充方式。
* 最后调用SAP函数并处理返回结果,构造并返回出库凭证信息。
- *
* @param request 物料出库请求对象,包含预留号、用户信息及物料明细列表
* @return C_MaterialOutboundDTO 出库操作成功后返回的物料凭证信息,包括物料凭证号(MBLNR)和年度(MJAHR)
*/
@@ -689,7 +690,6 @@ public class SapService {
* 该方法用于调用SAP的RFC函数ZWM3A07,根据传入的查询条件获取生产领料单信息。
* 查询条件包括工厂代码、工序、生产订单号和库存地点等。
* 返回结果包含主表信息和明细项列表。
- *
* @param query 查询参数对象,包含工厂代码(必填)、工序列表、生产订单号列表、库存地点列表等
* @return Zwm3a07VO 包含查询结果的VO对象,包括主表字段和明细项列表
*/
@@ -735,7 +735,6 @@ public class SapService {
* 该方法用于调用 SAP 的 RFC 函数 ZWM3A10,执行领料出库操作。首先校验输入参数,
* 然后构造函数所需的输入参数和表数据,调用 SAP 接口,并处理返回结果。
*
- *
* @param query 查询参数对象,包含领料出库所需的信息,如订单号、物料明细等。
* 不能为空,且至少包含一个物料明细项。
* @return Zwm3a10VO 返回结果对象,包含生成的物料凭证号(MAT_DOC)和凭证年度(DOC_YEAR)
@@ -783,7 +782,6 @@ public class SapService {
*
* 该方法用于调用 SAP 的 RFC 函数 ZWM3A08,根据传入的查询条件获取补料单数据。
* 查询参数包括工厂代码、工序列表和生产订单号列表等。
- *
* @param query 查询参数对象,包含工厂代码(I_WERKS)、工序列表(I_ARBPL)和订单号列表(I_AUFNR)等字段
* @return 返回封装后的补料单结果对象 Zwm3a08VO,包含主信息及明细项列表
*/
@@ -824,7 +822,6 @@ public class SapService {
* 该方法用于调用SAP的RFC函数ZWM3A09,根据传入的查询条件获取生产退料单信息。
* 查询条件包括工厂代码、工序列表和订单号列表等。
* 返回结果包含主表信息和明细项列表。
- *
* @param query 查询参数对象,包含以下必填字段:
* - I_WERKS:工厂代码(不能为空)
* - I_ARBPL:工序列表(可选)
@@ -882,7 +879,6 @@ public class SapService {
* 该方法用于调用 SAP 的 RFC 函数 ZWM3A11,执行生产退料单的出库操作。
* 输入参数包括订单号、物料明细等信息,并根据 SAP 返回结果构造返回对象。
*
- *
* @param query 查询参数对象,包含订单号(AUFNR)及物料明细列表(INPUT1 和 INPUT2)
* @return Zwm3a11VO 包含物料凭证号(MAT_DOC)和凭证年度(DOC_YEAR)的结果对象
*/
@@ -921,7 +917,6 @@ public class SapService {
/**
* 委外订单发料查询
- *
* @param query 委外订单查询参数对象,包含工厂代码和物料明细等查询条件
* @return 委外订单发料查询结果列表
*/
@@ -965,7 +960,6 @@ public class SapService {
* 该方法会校验输入参数是否合法,构造SAP所需的输入参数和表数据,
* 调用SAP RFC函数执行业务逻辑,并解析返回结果。
*
- *
* @param query 委外订单确认的查询参数对象,包含订单号和物料明细等信息
* @return 返回委外订单确认的结果信息,包括物料凭证号和凭证年度
*/
@@ -1003,7 +997,6 @@ public class SapService {
/**
* 转储清单查询
* 通过调用SAP RFC函数ZWM3A15查询转储清单信息
- *
* @param query 查询条件对象,包含工厂、日期范围等查询参数
* @return AllocationOrderDTO对象列表,包含查询到的转储清单信息
*/
@@ -1044,7 +1037,6 @@ public class SapService {
/**
* 场内调拨清单查询
* 通过调用SAP RFC函数ZWM3A16查询场内调拨清单信息
- *
* @param query 查询条件对象,包含工厂、日期范围等查询参数
* @return 调拨订单DTO列表,包含查询到的调拨清单信息
*/
@@ -1086,7 +1078,6 @@ public class SapService {
/**
* 成本中心领料清单查询
* 通过调用SAP RFC函数ZWM3A13查询成本中心的物料领用清单信息
- *
* @param query 查询参数对象,包含工厂代码等查询条件,不可为空
* @return 返回成本中心物料领料清单的DTO对象列表
*/
@@ -1141,7 +1132,6 @@ public class SapService {
/**
* 成本中心退料清单查询
- *
* @param query 查询条件对象,包含工厂等查询参数
* @return 部门物料退料单DTO列表
*/
@@ -1191,7 +1181,6 @@ public class SapService {
*
* 该方法用于调用 SAP 的 RFC 函数 ZWM00_MB113,完成厂内调库的过账操作。
*
- *
* @param query 查询参数对象,包含过账所需的输入信息和物料明细列表
* @return 返回包含物料凭证号(MBLNR)和年度(MJAHR)的结果对象
*/
@@ -1237,7 +1226,6 @@ public class SapService {
/**
* 获取物料的属性信息(仓库、库位、批次管理、序号管理,是否质检)
- *
* @param query 查询条件封装对象,包含工厂、仓库、物料等信息
* @return 物料属性信息列表,每个元素为 {@link ZWM3A21ResultDTO} 类型
*/
@@ -1282,9 +1270,8 @@ public class SapService {
/**
* 获取物料的批次信息
- *
- * @param iVbelv 交货单
- * @param iWerks 工厂
+ * @param iVbelv 交货单
+ * @param iWerks 工厂
* @return 获取零部件出库单的订单信息,每个元素为 {@link ZWM3A19DTO} 类型
*/
public ZWM3A19DTO zwm3a19(String iVbelv, String iWerks) {
@@ -1315,12 +1302,12 @@ public class SapService {
/**
- *零部件出库单 过账信息
+ * 零部件出库单 过账信息
* @param dto
* @return
*/
public Pair zwm3a20(ZWM3A20DTO dto) {
- // return Pair.of("Test", "TestYear");
+ // return Pair.of("Test", "TestYear");
Map parameters = new HashMap<>();
parameters.put("IV_DELIVERY", dto.getIvDelivery());
parameters.put("I_TYPE", dto.getIType());
diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ZWM00MB007DTO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ZWM00MB007DTO.java
index 06a4ea43..7d209fc5 100644
--- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ZWM00MB007DTO.java
+++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ZWM00MB007DTO.java
@@ -72,4 +72,9 @@ public class ZWM00MB007DTO {
* 序列号
*/
private String sernr;
+
+ /**
+ * 批次号
+ */
+ private String batchNo;
}