feat: bug-966 返回字段添加批次号,数据为yyMMdd+4位流水号

This commit is contained in:
曹鹏飞 2025-12-01 11:42:18 +08:00
parent 101501516c
commit f4e7abcf2b
2 changed files with 20 additions and 28 deletions

View File

@ -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<String, String> zwm3a18(ZWM3A18DTO dto) {
@ -291,7 +299,6 @@ public class SapService {
/**
* 扫码入库
*
* @param dto 数据
*/
public Pair<Pair<String, String>, Pair<String, String>> 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 {
* <p>
* 该方法用于调用 SAP RFC 函数 ZWM00_MB112执行成本中心物料退库操作
* 根据传入的请求参数构造输入表和字段并处理返回结果
*
* @param request 请求参数对象包含退库单据号用户信息及物料明细等
* @return C_MaterialReturnDTO 返回结果对象包含生成的物料凭证号MBLNR和年度MJAHR
*/
@ -545,7 +548,6 @@ public class SapService {
* <p>
* 根据预留单号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 接口并处理返回结果
* </p>
*
* @param query 查询参数对象包含领料出库所需的信息如订单号物料明细等
* 不能为空且至少包含一个物料明细项
* @return Zwm3a10VO 返回结果对象包含生成的物料凭证号MAT_DOC和凭证年度DOC_YEAR
@ -783,7 +782,6 @@ public class SapService {
* <p>
* 该方法用于调用 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 返回结果构造返回对象
* </p>
*
* @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函数执行业务逻辑并解析返回结果
* </p>
*
* @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 {
* <p>
* 该方法用于调用 SAP RFC 函数 ZWM00_MB113完成厂内调库的过账操作
* </p>
*
* @param query 查询参数对象包含过账所需的输入信息和物料明细列表
* @return 返回包含物料凭证号MBLNR和年度MJAHR的结果对象
*/
@ -1237,7 +1226,6 @@ public class SapService {
/**
* 获取物料的属性信息仓库库位批次管理序号管理是否质检
*
* @param query 查询条件封装对象包含工厂仓库物料等信息
* @return 物料属性信息列表每个元素为 {@link ZWM3A21ResultDTO} 类型
*/
@ -1282,7 +1270,6 @@ public class SapService {
/**
* 获取物料的批次信息
*
* @param iVbelv 交货单
* @param iWerks 工厂
* @return 获取零部件出库单的订单信息每个元素为 {@link ZWM3A19DTO} 类型

View File

@ -72,4 +72,9 @@ public class ZWM00MB007DTO {
* 序列号
*/
private String sernr;
/**
* 批次号
*/
private String batchNo;
}