Artifact b842d7fed6626e77879584b363ca5c753b8f3817a6d3b17be6dacdb7ccbdfe21:
- File
backend/src/poller.gleam
— part of check-in
[74ded990b8]
at
2026-10-23 05:24:52
on branch trunk
— 总仓的采购入库单改为只读同步,并在本地生成批次码。
轮询和人工同步都只拉取已记账的总仓采购入库单,红冲和只作显示的仓库不入库。批次码写在本地,不回来肯。 (user: pluto size: 1922)
import app.{type Context} import gleam/erlang/process import gleam/int import logging import sync_inbounds import sync_orders import sync_purchase_receipts import sync_report pub fn start(ctx: Context) -> process.Pid { process.spawn(fn() { loop(ctx) }) } fn loop(ctx: Context) -> Nil { case sync_orders.run(ctx, "poll") { Ok(report) -> logging.log( logging.Info, "订单轮询完成,抓取 " <> int.to_string(report.fetched) <> " 笔,写入 " <> int.to_string(report.upserted) <> " 笔", ) Error(sync_report.SyncBusy) -> logging.log(logging.Info, "订单轮询跳过,已有同步正在进行") Error(err) -> logging.log(logging.Error, "订单轮询失败: " <> sync_report.describe(err)) } case sync_inbounds.run(ctx, "poll") { Ok(report) -> logging.log( logging.Info, "采购订单轮询完成,抓取 " <> int.to_string(report.fetched) <> " 笔,写入 " <> int.to_string(report.upserted) <> " 笔", ) Error(sync_report.SyncBusy) -> logging.log(logging.Info, "采购订单轮询跳过,已有同步正在进行") Error(err) -> logging.log(logging.Error, "采购订单轮询失败: " <> sync_report.describe(err)) } case sync_purchase_receipts.run(ctx, "poll") { Ok(report) -> logging.log( logging.Info, "采购入库单轮询完成,抓取 " <> int.to_string(report.fetched) <> " 笔,写入 " <> int.to_string(report.upserted) <> " 笔", ) Error(sync_report.SyncBusy) -> logging.log(logging.Info, "采购入库单轮询跳过,已有同步正在进行") Error(err) -> logging.log(logging.Error, "采购入库单轮询失败: " <> sync_report.describe(err)) } process.sleep(ctx.config.order_poll_ms) loop(ctx) }