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; }