From 51ac4756b6977ae0277bb713d7864dd0e9e1c296 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Wed, 14 Oct 2026 17:13:42 +0800 Subject: [PATCH] docs(selfop): record master data release and verified synchronization --- 测试环境单机部署与配置契约.md | 8 ++++++++ 自营业务/领星WMS接口联调手册.md | 2 ++ 自营业务/领星一件代发数据统计一期方案.md | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/测试环境单机部署与配置契约.md b/测试环境单机部署与配置契约.md index 3d3110e..14082eb 100644 --- a/测试环境单机部署与配置契约.md +++ b/测试环境单机部署与配置契约.md @@ -2,6 +2,14 @@ ## 自营统计 TEST 发布与验收(2026-10-14,进行中) +2026-10-14 客户/商品资料接入本批按用户逐项授权发布:16:30 执行 `selfop-master-data.sql`,仅新建 `ll_selfop_owner`、`ll_selfop_product`;原始版本 `d311d9dc8ddcd0832ba49d071da07264129f2501` 的 Integration #112、Lastleg #314 预构建及 backend-java #693 成功,Admin `46364d3f895f64c5eab3a56122f66175656217c6` #607 成功,Job 已恢复 release/test 和 lightweight=true。首轮真实采集发现资料接口响应分页字段应为 `page/pageSize`,初版误读 `current/size` 而失败;经授权仅补发 Integration `63883f4ffdad09e4fe06ab77a9b99ced55bf5e0c`(#113、backend-java #694,digest `sha256:d641997b62c9d0b5a40edb7351f49fcf7f47d8826b35839faa5575f877f6e53f`),40项适配测试及5项路由检查通过。该失败属于实现遗漏,不归因于授权 key。 + +第二次真实尝试已采85货主及2000商品,随后产品分页真实HTTP429,账号进入RATE_LIMIT_REQUIRES_REVIEW,冷却截止16:53:35。经用户追加授权,在冷却结束后仅解除经复核的账号暂停,保留原冷却时间、请求计数、完成回执和失败批次;再单独发布 Lastleg `1112d11c80c32d798500c00242bdff1ead312aec`(#315、backend-java #695,digest `sha256:cdc6afad7353619ff99566417cc14295e8c1110ac3c152e8c8ae57715afeebb5`)。资料改为每次1页、完成后持久化至少5秒再调度,等待期间释放账号租约;50项资料/任务回归和5项路由检查通过。5秒仅是保守运行参数,不是已确认的供应商阈值。Integration和前端此轮未重复发布。 + +17:02:53 最后一组维护租约已释放,17:02:55 仅将同一资料任务恢复READY进入第三次尝试;前两次失败及未发布资料保留,未删改销量事实。两后端健康且均BUSINESS、continuousEnabled=true、1200ms,唯一供应商出口确认;资料自身5秒调度不修改销量1200ms设置。Admin实际镜像46364d3f895f、imageId `sha256:96cccca52189523d77fb93a6d670609028025e0ccf1427d9f2887a13c2045ce5` 与HTTP资源一致。17:04再次只读核验8月14日至10月13日两仓61/61天均正式完整发布,无漏排和历史积压。 + +17:12:10 第三次尝试正式SUCCEEDED/PUBLISHED/COMPLETE:客户1页85条、商品86页8536条,合计87页、8621个唯一资料对象,名称均非空,来源总数与本地计数一致,nextRetry已清空。17:12:46真实HTTP确认目录85项,US01/US02销量首屏各20行、货主周转首屏20/15行均带名称且与目录一致;两仓按客户筛选各返回20行,身份与名称逐行匹配,筛选总数分别247/306。前后销量总数仍为5421/1062,货主周转总数仍为69/15。账号pause=null、无有效冷却、最后请求完成回执确认,资料本轮发布不改变已有销量版本。新增owner-directory经真实Gateway核验:最小只读平台身份200,无权限平台A0403,客户403,匿名401,验证会话均退出。现有两仓销量与周转查询HTTP正常,人工1920×1080视觉验收尚未执行;体积计算不在本批范围。维护占用分别为16:34:54~16:36:41、16:46:09~16:47:21、17:01:06~17:02:53,均已释放;第二轮429造成的账号待复核暂停于16:59:16解除。最终业务验收证据为 `selfop-masterdata-sync-r8.json`、`selfop-masterdata-http-r2.json`、`selfop-masterdata-permissions.json`;构建/部署/运行回执为后端target的 `selfop-masterdata-*`,历史销量审计为 `selfop-root-calendar-audit-r64.json`。 + 2026-10-14 14:15(北京时间)按用户“提交代码和发布”及追加“需要添加进去,一起更新”授权,本轮最终 Lastleg 为 `2b3b13913b8d3ed567d2a20fcab4111f9511a1aa`(预构建#313、backend-java #692 SUCCESS,digest `sha256:d00e7272d72e75ffd13e7cd6ecb2800b744b7876668f4beaff25e399e7f96a37`),Admin 为 `2a9c23ebc631040182369e5d92d18d0b6abf1495`(#606 SUCCESS,实际镜像 tag 2a9c23ebc631、imageId `sha256:b7c94963f0a8af4b8513ca93420e6f780d8e6bd4ba4ad5ede2b36fc51cff8db1`);两者运行身份与健康已核实,Admin Job 已恢复 release/test 及原 lightweight。本轮首批 Lastleg `5ace2fb584a87221ece0e0bcb97304e9e23d90f6`(预构建#312、backend-java #690)和 Admin `adfb1a5cb390ef9e76c0a5a57423a9f8e3f2662d`(#605)已先成功部署,随后按用户追加授权纳入新改动发布上述最终版,不把两次不同提交的发布描述为一次。海外 PDA H5 `627dfd32da39e84ab5b2bc7bd7916d8625fd950b` 经 backend-java #691 SUCCESS,镜像 `pda-overseas-h5-test:h5-627dfd32da39`,83文件本地包、容器及HTTP SHA256一致;追加批次未再次更新PDA。File、Client及Integration保持原版本,未发布APK/WGT。 范围包括可信完整仓库销量不再受SKU首次观测日错误阻断、已知零可售库存与真正未知值区分、周转表在途列及服务端升降序、Top10统计说明收纳及天数最多两位小数,以及已合入的贴标托盘测量、保留原托盘与派车校验配套改动。在途独立展示,不计入实物/可售库存或周转样本分母。首批后端自营100项及贴标/派车75项、Admin38项、PDA268项通过;追加后端61项、Admin52项定向测试及相关编译、类型检查和构建通过,Gateway5项与Mapper扫描365项通过;不宣称本轮所有应用全量测试通过。 diff --git a/自营业务/领星WMS接口联调手册.md b/自营业务/领星WMS接口联调手册.md index 1321047..e3a0495 100644 --- a/自营业务/领星WMS接口联调手册.md +++ b/自营业务/领星WMS接口联调手册.md @@ -316,6 +316,8 @@ var signed = signer.sign(appKey, appSecret, | [客户列表](https://apidoc-omp.xlwms.com/reference/post_openapi-v2-customer-list.md),`POST /openapi/v2/customer/list`,`current=1,size=1000` | HTTP200、业务码200;total=85、单页返回85条,85条均有 `customerCode/customerName`,用户截图中的编码与名称对应核验通过 | 85是该key当前可见客户目录数,不等于有库存或销量的货主数;正式保存账号+客户编码对应名称,保留编码作为关联键,不能用名称连接销量。无需重拉历史出库 | | [商品分页](https://apidoc-omp.xlwms.com/reference/post_openapi-v2-product-page-1.md),`POST /openapi/v2/product/page`,`current=1,size=5` | HTTP200、业务码200;total=8536,本次仅读取5条,均有 `customerCode/sku/productName` 和正数 `length/width/height`,`sizeUnit=cm`;5条 `wmsLength/wmsWidth/wmsHeight/wmsSizeUnit` 均为空字符串 | 官方每页最多100,8536条按当前总数预计86页,尚未执行全量。不得从5条推定全部尺寸有效;普通资料尺寸可用于标明来源的估算,不能冒充仓库实测体积或历史出库包裹体积 | +两个资料接口的请求分页参数均为 `current/size`,**响应分页字段均为 `data.page/pageSize/pages/total`**;不能套用产品库存接口的响应 `current/size`。2026-10-14 对照官方两个接口 Schema 再次确认这一差异;先前有界样本保存的 `current/size=null` 也不应被视为有效页码。Integration 按正式响应字段严格核对当前页、页大小、总页数及行数,向 Lastleg 统一输出内部 `current/size`,不增加两套响应字段兼容回退。客户响应 `status` 为字符串;商品实测尺寸空字符串继续表示未知。 + 客户名称映射和5条商品白名单样本只保存在本机受控私有证据文件,未保存联系人、电话、邮箱或完整原始响应;不将真实客户资料提交仓库。临时验证程序为后端忽略目录 `target/selfop-masterdata-key-probe.mjs`。此次只读核验时的业务采集 DTO 尚未接入客户名称和商品尺寸。后续接入契约见《领星一件代发数据统计一期方案》页首“客户名称与商品资料接入”;接口权限证据不代表实际部署、全量同步和体积口径已验收。 截至 2026-10-12,出库分页通过本地 Java 服务验证;详情、仓库发现和库存使用同一组凭据及 OMP 签名直接执行只读 HTTPS 请求。临时探针与脱敏报告放在被 Git 忽略的 `integration-service/target/lingxing-local/`,只保留字段类型、数量、分页计数和核验结论,不保存密钥、签名或完整原始响应。这些临时文件可被构建清理,开发依据以本手册记录为准。 diff --git a/自营业务/领星一件代发数据统计一期方案.md b/自营业务/领星一件代发数据统计一期方案.md index 2d89740..5849626 100644 --- a/自营业务/领星一件代发数据统计一期方案.md +++ b/自营业务/领星一件代发数据统计一期方案.md @@ -6,7 +6,7 @@ Lastleg 维护 `ll_selfop_owner` 和 `ll_selfop_product`,以完整资料 run 为版本;稳定关联键为来源账号+货主编码,商品再加 SKU,不按名称连接,也不自动创建 IAM 客户或对外收费关系。`ll_selfop_sku_profile` 保留原统计版本职责,不被商品目录替代。客户、商品资料整批完成分页元数据、总数、唯一身份校验后同事务发布;不完整批次不参与查询。`GET /owner-directory` 及各列表/榜单名称均取 queryAsOf 之前最近完整发布的账号资料批次,刷新后才看到新名称;不重采历史出库。 -持续 BUSINESS 模式每天登记一项账号级 MASTER_DATA 任务,未结束批次跨日续跑。客户列表每页1000、商品每页100,沿用 Integration 唯一签名出口和账号1200ms间隔、短 permit、lease/fence、限流及未知结果保护。最多处理5页就让出调度,日销量、计划库存、历史销量优先;正常让出保持同一run与下一页,失败或丢失租约的新尝试从头扫描且不能发布旧半批数据。不开第二条真实出口。 +持续 BUSINESS 模式每天登记一项账号级 MASTER_DATA 任务,未结束批次跨日续跑。客户列表每页1000、商品每页100,沿用 Integration 唯一签名出口和账号1200ms间隔、短 permit、lease/fence、限流及未知结果保护。资料接口每次只处理1页就释放账号租约,并持久化至少5秒后的下次调度时间;等待期间日销量、计划库存、历史销量仍优先,普通销量与库存的1200ms账号间隔不变。5秒是本轮保守运行参数,不代表供应商承诺的限流阈值;再次429仍遵守账号冷却与复核保护;正常让出保持同一run与下一页,失败或丢失租约的新尝试从头扫描且不能发布旧半批数据。不开第二条真实出口。 商品保留申报长宽高及单位、WMS实测长宽高及单位,两者不互相冒充;空值保留 NULL。本批不计算库存/出库立方数,后续再确认尺寸单位、缺失率及历史出库体积口径。结构基线见后端 `lastleg-service/src/main/resources/db/selfop-master-data.sql`;发布和真实首批同步是否完成只记录工程主契约,本设计不表示已部署。