Skill: just4learn1/youxinpai-reconciliation (version 1.0.2)

--- name: youxinpai-reconciliation description: 高性能执行优信拍月初保证金对账前置流程，在星河任务页批量查找并触发相关数仓任务并汇报执行结果。用户提到优信拍、保证金对账、月初对账、推送 x 月保证金数据、跑对账任务时使用。 --- # 优信拍月初对账 用于高性能处理优信拍业务保证金月初对账前的任务触发工作，并在任务完成后执行指定 SQL 查询。 本技能默认只负责触发前置任务、记录执行结果、反馈异常；不默认替代后续人工核对或财务口径确认。 ## 适用场景 当用户有以下意图时使用本技能： - 执行优信拍月初对账 - 推送某月保证金数据 - 跑优信拍保证金对账前置任务 - 检查优信拍对账依赖任务是否已触发 ## 前置条件 - 已存在可复用的登录态 - 可以访问星河任务页 `https://dp.58corp.com/data-develop/task-list` - 可以访问 SQL 页面 `https://dp.58corp.com/data-query?doc_ids=530490` - 当前目标是触发任务，而不是直接输出最终财务对账结论 - 可以访问本地工程 [REDACTED_SECRET] 如果登录失效、页面无法打开、没有权限访问，立即停止并汇报，不要自行猜测下一步。 ## 任务列表 下面 5 个任务互不依赖，可并行处理： 1. [REDACTED_SECRET] 2. [REDACTED_SECRET] 3. [REDACTED_SECRET] 4. `ods_auction_refund_order_all_d` 5. [REDACTED_SECRET] ## 执行原则 - 必须先完成本地单测前置步骤，再进入页面任务步骤 - 上月时间区间只计算一次，后续步骤复用同一组时间变量 - 搜索框优先使用 `placeholder="搜索任务名"` 对应的 input - 搜索出结果后，先定位“包含当前任务名的结果行”，后续所有查找都只在当前结果行内完成 - 开启状态优先使用 `<span class="ant-switch-inner">开启</span>` 判断 - 运行按钮优先使用当前结果行内的 `span.iconzanting2.iconfont` - 确认按钮优先使用 `button.ant-btn.ant-btn-primary`，并校验按钮文本包含“确定” - 除搜索框外，不要在整个页面范围内重复查找“开启”“运行”“确定” - 每个任务都要单独搜索，不要假设上一次搜索结果仍然有效 - 如果同一个任务搜索结果中有多个“开启/可运行”的实例，需要逐个触发，直到当前搜索结果中的可运行实例全部处理完成 - 每完成一个任务，都要记录结果，避免最后无法说明哪些已执行、哪些失败 - 5 个任务没有先后依赖；仅在支持独立会话时并行，否则自动降级为串行 - 不要因为某个任务先完成就提前结束；只有 `任务列表` 中 5 个任务都被检查并记录状态后，才允许结束本技能 - 页面任务全部完成后，必须继续执行 SQL 步骤：修改时间条件并点击运行 - 步骤5必须在前面所有步骤完成后额外等待 10 分钟才能触发 ## 高性能策略 - 本技能目标是“快速触发任务”，不是等待任务实际执行完成 - 每个任务只做一次搜索输入，不要反复清空、反复全页分析 - 搜索后只等待结果区变化，不做长时间固定等待 - 点击“运行”后只等待确认弹窗出现，不重新扫描任务列表 - 点击“确定”后只确认弹窗关闭或按钮状态变化，不等待任务跑完 - 并行场景下，单任务执行单元只关注自己任务的全量实例；不要等待其他任务完成 - 记录结果时使用最简表格或简短状态，不在执行过程中生成长段说明 ## 本地前置步骤（必须先完成） 在执行页面任务前，先执行下面流程： 1. 计算并保存统一时间变量： - `monthStart` = 上个月第一天 `00:00:00` - `monthEnd` = 上个月最后一天 `23:59:59` 2. 检查配置文件 `/Users/a58/Desktop/code/yxp_oms_web/src/test/resources/config/scf.config` 中 `yxpbuyerservice` 的 `host`，并记录原值到 `originalBuyerServiceHost` 3. 如果 `host` 不是 `10.192.12.236`，先修改为 `10.192.12.236` 4. 打开 `/Users/a58/Desktop/code/yxp_oms_web/src/test/java/com/bj58/che/yxp/oms/web/remote/GuaranteeFeeRemoteServiceTest.java` 5. 在 `testFindUnmatchedBillIds` 中，将两个时间参数改为 `monthStart` 和 `monthEnd` 对应值 6. 只执行 `testFindUnmatchedBillIds` 这个单测函数 7. 单测成功后，进入等待步骤；单测失败则停止整个流程并汇报 ## 固定选择器顺序 按下面顺序查找元素，前一个成功就不要继续尝试更慢的方式： 1. 搜索框：`input[placeholder="搜索任务名"]` 2. 结果行：包含当前任务名文本的结果行 3. 开启状态：当前结果行内的 `span.ant-switch-inner` 4. 运行按钮：当前结果行内的 `span.iconzanting2.iconfont` 5. 确认按钮：`button.ant-btn.ant-btn-primary` 6. 只有在上述方式失败时，才退回到基于按钮文案或页面语义的兜底判断 ## 执行状态提示规范 在关键阶段必须输出状态提示，让使用者可见当前进度。至少包含： 1. 当前步骤编号与名称 2. 当前状态（开始/执行中/等待中/等待结束/完成/中断） 3. 下一个动作 提示要求： - 进入每个步骤时，先提示“开始执行步骤X” - 遇到等待步骤时，必须提示“开始等待”与“等待剩余时间” - 等待结束后，必须提示“等待结束，继续执行下一步骤” - 发生中断时，必须提示“中断原因 + 当前步骤 + 建议下一步” ## 执行清单 开始执行前，先在内部维护下面这份进度清单，并在每处理完一个任务后立即更新： ```markdown 任务执行清单 - [ ] raw_auction_guafundaccountdetail_all_d - [ ] raw_auction_auctionguafundbill_all_h - [ ] raw_auction_guarantee_withdraw_apply_all_d - [ ] ods_auction_refund_order_all_d - [ ] raw_auction_payment_order2_all_d ``` 勾选规则： - 只要当前任务已经完成“搜索、检查、触发或确认无法触发、记录结果”这一整套动作，才能勾选 - “勾选”不等于“成功触发”，也可以表示“已检查但失败，且已记录原因” - 如果清单里还有未勾选项，不要结束，不要汇总，不要告诉用户“已完成” ## 执行流程 ### 步骤0：执行本地单测前置步骤 按 `本地前置步骤（必须先完成）` 小节逐项执行。 ### 步骤1：等待 5 分钟 - 步骤0成功结束后，立即开始计时 5 分钟 - 5 分钟未到，不得进入后续页面任务步骤 - 如果等待阶段出现环境异常，停止流程并汇报 状态提示模板： - 开始等待：`[步骤1] 已开始等待5分钟（单测后冷却期），当前状态：等待中` - 等待中：`[步骤1] 等待中，剩余 X 分 Y 秒，完成后将进入步骤2` - 等待结束：`[步骤1] 等待结束，当前状态：完成，继续执行步骤2` ### 步骤2：进入任务页 - 复用现有登录态打开星河任务页 - 确认页面已正常加载，且可以看到任务搜索区域 - 优先确认 `input[placeholder="搜索任务名"]` 存在；存在即视为页面可操作 ### 步骤3：并行处理 5 个任务（可降级串行） 1. 先判断是否可创建独立会话： - 可创建独立会话：并行执行 5 个任务 - 不可创建独立会话：改为串行逐个执行 5 个任务 2. 并行模式下，为 `任务列表` 中每个任务启动独立执行单元；串行模式下单线程逐个处理 3. 每个执行单元仅处理自己的任务名，避免互相覆盖搜索条件 4. 在各自单元中执行：搜索任务名 -> 定位匹配行 -> 判断“开启” -> 点击“运行” -> 弹窗点“确定” 5. 每个执行单元持续处理本任务的全部可运行实例，直到本任务完成 6. 每个执行单元完成后立刻记录结果并更新 `任务执行清单` 7. 等待全部 5 个任务处理结束后，再统一汇总结果 ### 步骤3.1：单任务最短路径 每个任务都遵循下面的最短路径，不要额外扩展步骤： 1. 搜索任务名 2. 找到对应结果行 3. 判断是否“开启” 4. 点击“运行” 5. 点击“确定” 6. 记录结果 7. 进入下一个实例；当前任务完成后结束该单元 禁止出现以下低效行为： - 将 5 个任务强制串行排队执行 - 搜索一次后反复全页查找按钮 - 每点击一次都重新理解整个页面结构 - 点击“确定”后长时间等待任务跑完 - 在全部任务未完成前提前汇总 ### 步骤4：处理异常 出现以下情况时，停止当前任务并明确汇报： - 本地配置修改失败 - 单测执行失败 - 步骤1等待未完成就进入后续步骤 - 步骤5触发前 10 分钟等待未完成就执行 SQL - 并行执行环境不可用但未降级为串行 - 搜索不到任务 - 页面没有可操作的“运行”入口 - 点击后没有出现确认弹窗 - 弹窗确认失败 - SQL 页面不可访问 - SQL 执行失败 - 页面报错、权限异常、登录失效 异常处理规则： - 如果步骤0的配置检查/修改或单测失败，停止整个流程，不进入步骤1之后的页面任务 - 步骤1的 5 分钟等待未完成前，禁止开始步骤2和步骤3 - 前面步骤完成后未满足额外 10 分钟等待，禁止触发步骤5 - 并行能力不可用时必须降级串行，不得直接跳过任务 - 如果是“当前任务级别”的异常，记录原因并结束该任务单元，其他并行任务继续执行 - 如果 SQL 步骤失败，停止流程并汇报，不输出“执行完成” - 如果是“页面整体不可继续操作”的异常，例如登录失效、页面崩溃、权限缺失，则停止整个流程并汇报 - 不要在异常状态下自行跳过并假设成功 - 如果只是 class 选择器短暂失效，先在当前结果行内用文本语义做一次兜底，不要立刻回退到全页面扫描 ### 步骤5：执行 SQL 并运行 在步骤0-步骤3全部完成后，先额外等待 10 分钟，再执行以下流程： 1. 打开 `https://dp.58corp.com/data-query?doc_ids=530490` 2. 定位 SQL 编辑器（包含 `t1.BillCreateTime` 和 `t3.pay_time` 的查询语句） 3. 将 SQL 里 `t1.BillCreateTime` 和 `t3.pay_time` 的时间范围统一改为 `monthStart` 和 `monthEnd` 4. 校验两处时间都已替换完成，再点击“运行” 5. 等待 SQL 执行结果状态返回（成功/完成），并确认无报错提示 6. 记录 SQL 执行结果（成功/失败、失败原因） 执行限制： - 不得只改其中一个字段，`t1.BillCreateTime` 与 `t3.pay_time` 必须同时改 - 10 分钟等待未完成前，不得进入本步骤 - SQL 未修改完成前，不得点击“运行” - 如果 SQL 页面不可访问或运行失败，停止流程并汇报 状态提示模板： - 开始等待：`[步骤5] 已开始等待10分钟（SQL触发前冷却期），当前状态：等待中` - 等待中：`[步骤5] 等待中，剩余 X 分 Y 秒，完成后将修改SQL并运行` - 等待结束：`[步骤5] 等待结束，当前状态：执行中，开始修改 t1.BillCreateTime 与 t3.pay_time` - SQL运行成功：`[步骤5] SQL已运行成功，当前状态：完成，继续执行步骤6` ### 步骤6：恢复本地配置（如有改动） 1. 检查 `originalBuyerServiceHost` 与当前 `yxpbuyerservice.host` 是否一致 2. 如果步骤0中修改过 host，则将 `yxpbuyerservice.host` 恢复为 `originalBuyerServiceHost` 3. 记录恢复结果（成功/失败）；恢复失败需要明确汇报并提示人工处理 ## 结果记录要求 执行过程中，至少记录以下信息： - 本地配置检查结果（`yxpbuyerservice.host` 是否已修正） - 本地配置原值（`originalBuyerServiceHost`） - 单测时间参数（上个月开始/结束） - 单测执行结果 - 5 分钟等待是否完成 - 步骤5触发前 10 分钟等待是否完成 - 任务执行模式（并行/串行降级） - 任务名 - 是否找到任务 - 是否成功触发 - 如果有多个实例，触发了几个 - 异常原因 - SQL 时间参数修改结果（`t1.BillCreateTime`、`t3.pay_time`） - SQL 运行结果 - 本地配置恢复结果 建议按下面格式维护结果表： ```markdown 任务结果表 | 任务名 | 是否找到 | 是否触发 | 触发实例数 | 备注 | | --- | --- | --- | --- | --- | | raw_auction_guafundaccountdetail_all_d | 是 | 是 | 2 | 全部已触发 | | raw_auction_auctionguafundbill_all_h | 是 | 否 | 0 | 无可运行实例 | ``` ## 完成判定 只有同时满足以下条件，才可以输出“执行完成”： 1. 步骤0已完成（配置检查/修正 + 单测执行成功） 2. 步骤1已完成（等待 5 分钟） 3. `任务执行清单` 中 5 个任务都已勾选 4. `任务结果表` 中 5 个任务都有对应记录 5. 已明确区分哪些任务“成功触发”、哪些任务“检查完成但未触发” 6. 步骤5触发前额外等待 10 分钟已完成 7. 步骤5已完成（SQL 时间已更新并点击运行成功） 8. 步骤6已完成（配置已恢复或确认无需恢复） 如果不满足以上条件，只能输出“执行中断”或“部分完成”，不能输出“已完成”。 ## 输出格式 完成后按下面格式输出结果： ```markdown 优信拍月初对账前置任务执行结果 - 执行页面：星河任务页 - 已成功触发： - 任务A - 任务B - 未成功触发： - 任务C：原因 - 需要人工关注： - 是否存在权限/登录/页面异常 - 是否可以继续进入下一步对账 ``` ## 注意事项 - 本技能的目标是“触发并汇报”，不是“静默执行” - 本地单测前置步骤属于强门槛，未完成前不得进入页面任务步骤 - 如果页面元素与预期不一致，应先在当前结果行范围内做兜底判断，不要立刻扩大到全页面 - 如果用户明确要求继续产出对账结果，先完成本技能中的任务触发，再进入后续数据核对流程 - 整个执行过程中，优先级始终是：固定选择器 > 当前结果行局部查找 > 文案兜底 > 全页面语义分析 - 所有页面任务完成后，必须执行 SQL 修改与运行步骤，不得省略 - 默认优先并行；并行条件不满足时必须串行降级，不得跳过任务 - 若步骤0中修改过本地配置，流程结束必须恢复原值


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)