Commit Graph

281 Commits

Author SHA1 Message Date
zzh
ecfaad3824 fix: align service channel publish snapshot JSON with preview API
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-23 11:25:35 +08:00
zzh
a4d7c89e44 fix: resolve track ApiCode from product and channel publish snapshots
Read SupplierCode from rules publish snapshots before falling back to live itfx metadata so UpsertSmallBag gets apiCode at order create time.
2026-07-23 10:49:19 +08:00
zzh
15785cdf2b feat: enrich publish snapshots with downstream names and use API provider code for track ApiCode
Persist group/app/API provider display names in sales product and service channel rules publish snapshots, and resolve trajectory ApiCode from the service channel API provider code instead of forecast code.
2026-07-23 10:23:56 +08:00
zzh
6314790598 feat: persist track upsert response in batch job item resultJson
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-23 09:28:34 +08:00
zzh
1545bc385f feat: ????????????? A0101/A0301/A0701
Fix UpsertSmallBag ApiCode/TrackNo assembly and MQ-disabled direct fallback; append lifecycle tracks on parcel create, inbound, and outbound. Redact channel fields for customer order list.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 20:11:25 +08:00
zzh
3d5eaa223a feat: 小包全链路加固、待排货与运单号 IDE 前缀
查价/下单/入库/出库统一校验与计费上下文;待排货状态及可选入库排货;运单号改为 IDE+yyMMddHHmmss;补充迁移 SQL 与测试修复。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 19:00:55 +08:00
zzh
c2d854b83f fix: 批量任务详情查询不再写库,修复 ConcurrencyStamp 冲突
- MapJobOutputAsync 改为只读聚合,GET /jobs/{id} 不再 UpdateJob
- /jobs/{id}/items 仅校验存在,避免并行查询双写
- 重写 migrate_rename_warehouse_C_to_c.sql,支持 Navicat 与大小写两步改名

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 16:51:13 +08:00
zzh
a1daea6b35 refactor: 仓储表 C_* 改为 c_*,优化专线小包批量模板
- 仓储实体与 db.sql 统一为小写 c_ 前缀,新增 migrate_rename_warehouse_C_to_c.sql
- 专线小包批量模板精简版/标准版双模板,Excel 必填标红与发件地址上传参数

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 16:18:59 +08:00
zzh
d791f7b251 fix: 批量任务插入后回填 JobItemId,修复 MQ 消费后仍待处理
InsertItemsAsync 批量插入后按 MessageId 回填自增 Id;消费者支持 JobItemId=0 时按 JobId+MessageId 解析子项。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 15:12:41 +08:00
zzh
ab63920e85 chore: 触发 CI 重新构建发布,部署 OrderTask 合并后的上传接口
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 12:55:08 +08:00
zzh
bb09a51f4a refactor: 合并 OrderTask 至批量任务,移除 t_order_task 依赖
Excel 导入与任务进度统一走 t_order_batch_job;删除旧实体、仓储与 /order/task/* 接口,上传返回 jobId。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 12:36:57 +08:00
zzh
377cc525d6 feat: 增强批量任务子项反馈与客户单号持久化
统一成功/失败结果快照,补全客户单号与 Excel 行号;系统重试耗尽后标记失败避免子项长期停留在执行中;任务 API 返回 pending/running/cancelled 计数。
2026-07-22 12:00:53 +08:00
zzh
fc92e2903b fix: 字典列表分页改用 RepositoryPageHelper 避免 Where 丢失
Fake GetPagedListAsync 带 sorting 时 total 正确但 items 返回全表;dictType 筛选已生效但被该 bug 掩盖。
2026-07-22 11:06:21 +08:00
zzh
793085607a refactor: 字节枚举整型落库并统一发布快照 Status
发布记录 Status 改为 EsSnapshotStatus(TINYINT),计费启用判断改用 EnableStatus;db.sql 与 migrate_enum_int_comments.sql 补全枚举字段注释及旧库迁移。
2026-07-22 10:22:54 +08:00
zzh
dd2abab42b fix: 字典类型项数统计按 trim 后 DictType 分组汇总
避免类型编码首尾空格导致左侧菜单 itemCount 匹配失败。
2026-07-22 09:25:00 +08:00
zzh
5a2d56986a fix: 字典创建支持恢复软删项并完善类型迁移脚本
批量导入时若同类型编码曾被软删,改为恢复并更新而非插入,避免唯一键冲突 500;迁移脚本补全预置类型中文名并支持覆盖 Remark/TypeSort。
2026-07-21 18:49:59 +08:00
zzh
93cf065165 feat: 新增字典类型元数据表与类型备注 API
支持字典类型备注维护及左侧类型列表查询,创建字典项时自动补齐类型元数据。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 17:48:42 +08:00
zzh
dcf856568e fix: 批量任务系统失败重新抛异常以触发 EventBus 重试
Restore InvalidOperationException on system failures after EventBus refactor; use OrderTaskStatusCodes when syncing import tasks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 17:38:03 +08:00
zzh
365f9d8a94 fix: 数值枚举从 1 起编并统一 OrderTaskStatus 常量
Reserve 0 as None for byte enums and align customer group labels with dict codes; add OrderTaskStatusCodes for import task status strings.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 17:37:54 +08:00
32753e7606 简化 2026-07-21 10:45:57 +08:00
d49efcb341 upgrade 2026-07-20 20:48:15 +08:00
a4d6400318 refactor: 订单批量任务改走 Fake.EventBus.RabbitMQ
移除自建消费者与队列拓扑,统一由事件总线发布/消费,并优化下游转发查询与配置。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 17:54:29 +08:00
zzh
188aed1ee6 feat: 店铺订单创建物流/代发,并补齐收件人字段与种子数据
- 新增 batch-create-logistics / batch-create-fulfill:按平台行建物流单并回写 LinkedOrderId,代发支持绑定冻结与失败回滚
- ParcelBuilder 支持无 SKU 映射的平台行申报;批量创建可指定 OrderSource=platform
- 库存绑定候选接口支持 orderId=0 草稿选仓
- 店铺订单增加结构化收件人字段(db.sql + 迁移脚本),拉单回填;补充 customer9 店铺/揽收种子与 ConcurrencyStamp 修复脚本

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 22:33:55 +08:00
zzh
e1f40ce36c fix: 显式注册面单 PDF 服务与 ILabelPdfRenderer,修复打印激活失败
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 19:19:44 +08:00
zzh
8929ebc5b3 refactor: 面单字段字典去掉发件人组,单号组按标题字数排序
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 19:10:41 +08:00
zzh
7bc7cdf417 fix: 批量队列消费者串行处理,避免 channel 并发导致消息长期 Unacked
AsyncEventingBasicConsumer + Prefetch>1 时 IModel 非线程安全,并发 Ack 易卡死;改为同队列串行消费并加固 Ack/Nack。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 18:22:26 +08:00
2d229bbedd fix 2026-07-18 17:27:34 +08:00
zzh
b679151eb1 feat: Hiprint模板转QuestPDF异步出面单,并接通打印链路
支持模板预览/字段字典、产品绑定 LabelTemplateId、订单 Pending→Ready 生成 PDF,以及 order/print、批量与仓内 printUrl。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 14:52:39 +08:00
zzh
9957b79b19 feat: 打印面单扫码核对 lookup(运单/客户单/跟踪号/包裹/SKU)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 12:53:35 +08:00
zzh
fd9f57bac1 feat: SKU/入库预报返回客户信息,库存出入库历史与可用冻结量
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 12:07:07 +08:00
zzh
f4ddd993b9 feat: 管理端列表返回客户名称/编码,并加固绑定与客户会话
订单/包裹/库存/店铺授权/店铺订单列表补充 customerName、customerCode;库存绑定按会话客户解析并兼容可用量;修复客户 mapId 识别与 ConcurrencyStamp 迁移。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 11:10:53 +08:00
zzh
dc3071c90d feat: 物流单绑定包裹/库存(冻结可用库存)
支持我的订单对已创建物流单绑定仓储资源:新增 t_order_stock_bind 与 stock-bind API,库存/包裹增加 FrozenQty、AvailableQty。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 10:32:44 +08:00
039cbba3d1 feat:fake 2026-07-17 17:43:13 +08:00
zzh
fc823ed24e feat: 工作台统计补充店铺数量与待处理店铺订单,包裹单号前缀改为 ID
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 14:17:00 +08:00
zzh
a9338a4b25 feat: 揽收订单与列表支持管理端按客户筛选
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 12:41:20 +08:00
zzh
1cf55b2669 fix: 地址簿管理端可查全部,修复 SqlSugar 条件翻译
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 12:30:30 +08:00
zzh
9a48ec1a63 feat: 店铺订单拉单同步、RTS 与重新获取面单
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 11:38:06 +08:00
zzh
c2c03f63e3 feat: 店铺平台 OAuth 配置迁入其他配置页
运行时优先读 t_system_other_config,修正管理端客户提示文案,并提供配置种子 SQL。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 11:03:02 +08:00
zzh
674cbdd011 feat: 店铺真授权跳转与地址类型(发件/退件/收件)
对接 Lazada/Shopee/TikTok/Temu OAuth 与回调落库,移除手工店;地址管理支持按类型默认与揽收校验。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 10:25:13 +08:00
zzh
341a318f0b feat: 客户发件地址与揽收订单,复用小包创建全链路。
新增地址簿 CRUD、pickup/create、订单 orderSource 筛选;附带包裹商品图片上传接口。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 18:58:48 +08:00
zzh
4b7c396d92 包裹明细增加商品图片 ImageUrl,支持采集落库与列表返回。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 14:32:55 +08:00
zzh
d73c98b44e 修复列表分页丢Where:改用GetListAsync分页,状态筛选生效。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 13:45:08 +08:00
zzh
3d0db418d2 修复列表状态Tab将all误当状态筛选,并完善插件草稿TTL与客户上下文。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 12:46:05 +08:00
zzh
f0d0659750 包裹明细增加 AttributeText 属性字段。
EOF

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 20:10:39 +08:00
zzh
d0df7e864c 新增快递到仓 API 与表结构,并支持 SKU 图片上传。
EOF

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 20:06:47 +08:00
zzh
600ab37594 统一 OMS DDL 到 db.sql,并新增采集插件草稿 API。
清理 sql/ 增量与种子脚本;E2E 不再依赖种子;PluginBrowserService 对接哪哪发「我的包裹」采集。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 19:44:09 +08:00
zzh
7e90112cbf 完善仓储客户上下文解析(未传客户查全部),并补充库位与确认收货权限种子。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 11:12:41 +08:00
zzh
c36bdb237c 重构客户编号生成规则,并修复店铺订单 summary SQL 翻译错误。
采用年码+月码+序号编码(5/6位,单月最多10000);summary 接口改用 hasStoreFilter 避免 SqlSugar 生成非法 SQL。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 17:54:29 +08:00
zzh
86a978b557 修复仓储与店铺订单列表 SqlSugar 可空筛选条件 SQL 翻译错误。
列表 predicate 改用 hasWarehouseFilter/hasStoreFilter 等本地变量,避免 ORM 生成非法 SQL。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 17:15:06 +08:00
zzh
c2d7b5c854 修复店铺列表 ExpirationFilter 嵌套三元导致 SqlSugar IIF 翻译失败。
按 expired/within7days/normal 分支构造独立 predicate,与充值等模块写法对齐。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 17:10:31 +08:00
zzh
fb61fbb072 修复仓储/店铺列表 ConcurrencyStamp 缺失与可空客户ID的 SQL 翻译错误。
补迁移脚本为 C_* 与 t_sales_* 表增加 ConcurrencyStamp;列表查询改用 hasCustomerFilter 模式避免 ORM 生成非法 SQL。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 16:48:05 +08:00
zzh
36fb191f94 修复管理端访问仓储与店铺接口时客户ID必填报错。
列表/汇总/详情改用 ResolveListCustomerIdAsync,管理端未传 customerId 时可查询全部数据。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 16:14:44 +08:00
zzh
8000162f02 docs: 仓储与店铺接口补充 Swagger 中文命名
为 WarehouseService、PlatformStoreService、PlatformStoreOrderService 全部新增接口添加 XML 注释,便于 Swagger 中文展示与前端对接。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 15:46:32 +08:00
zzh
a383ee6f32 feat: 实现仓储模块与平台店铺订单后端能力
新增仓储领域实体、仓储库、WarehouseService 全套接口及数据库迁移脚本;
实现店铺授权、店铺订单服务与库存匹配创建小包单;补充仓储模块 RBAC 权限种子数据。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 15:19:35 +08:00
zzh
18b53de20c fix: 批量邮件 SMTP 改用 MailKit 修复 SSL 465 连接
替换 System.Net.Mail,正确支持隐式 SSL 与 STARTTLS,解决 Syntax error 测试连接失败。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 11:59:01 +08:00
zzh
8ac7e6487c feat: 优化公告通知接收人过滤与客户删除同步
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 11:22:21 +08:00
zzh
36525ca688 fix: 微信注册头像仅写入客户表避免 RBAC Avatar 超长
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 10:26:50 +08:00
zzh
9d57d221af fix: 微信注册软删除占坑与字段过长导致保存失败
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 10:15:38 +08:00
zzh
5e26c5bcec fix: 微信注册保存失败提示与订单模板申报字段推导
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 09:52:44 +08:00
zzh
43563b727f feat: 自动触发公式引擎与查价运输方式分组接口
实现中文公式预报前拦截、规则测试 API 及按销售产品分组返回查价运输方式选项。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-09 18:36:17 +08:00
zzh
27e7ade388 feat: 销售产品对客说明字段与保存接口
支持 CustomerGuideMarkdown 存储、迁移脚本及 customer-guide/save API,完善销售产品详情输出。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-09 15:17:36 +08:00
zzh
3818ce7876 feat: RBAC用户扩展、专属顾问接口及仓库字段清理
接管用户 API 支持电话/工号/微信号/微信二维码,新增客户专属顾问查询,并移除仓库客服电话与微信相关字段。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-09 11:23:54 +08:00
zzh
d8752959e7 feat(order): 强化小包下单规则并暴露预报失败原因
客户单号必填且同客户唯一,运单号统一 NE 前缀自动生成;模板导入不再接受跟踪号/运单号;列表与导出返回预报失败原因字段。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-09 09:44:12 +08:00
zzh
7d5bc2408f fix(order): 批量导入回写订单 ID 并增强 Excel 表头映射匹配
导入行成功后写入 batch job 的 orderId/serviceNo;预报失败时尽量关联草稿订单。Excel 读取与行映射支持表头归一化,兼容带括号说明的列名。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 18:34:59 +08:00
zzh
fc22d9c6c6 feat(order): 优化标准模板 Excel 生成并支持保存映射时选择标准模板
标准模板仅保留中文表头、必填标黄与枚举下拉;导入起始行改为第2行;保存自定义映射时可指定 standardTemplateKey。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 17:23:19 +08:00
zzh
9ab112a36e feat(order): 下单模板映射与 Excel 批量导入小包创建
新增专线小包标准模板生成、自定义列映射 API,并将 /order/upload 改为按映射解析 Excel 后走 CreateParcelCoreAsync;列表查询时自动补齐标准模板种子数据。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 16:42:22 +08:00
zzh
7ab6b6fb51 refactor(order): 移除链路演练功能
删除模拟签收 API 与 RBAC 菜单/权限种子,E2E 测试回退至待上网状态。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 12:41:59 +08:00
zzh
c918faec97 feat(order): 订单链路演练签收 API、E2E 测试与批量任务 SQL 修复
补充链路演练模拟签收接口、E2E 主数据/菜单种子与测试项目,并修复批量任务列表 SqlSugar 查询及表结构注释脚本。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 11:32:45 +08:00
zzh
4f3bbd17bc feat(order): 订单批量任务 RabbitMQ 异步处理与治理 API
引入批量 Job 表、RabbitMQ 队列与消费者,支持导入/小包创建及我的订单批量操作异步化,并提供任务列表、重试失败、取消 pending 与 DLX 监控接口及测试。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 09:52:22 +08:00
zzh
dd5c82e523 feat(order): 支持订单详情手动添加费用项
新增 OrderFeeAddInput 并在 OrderEdit 服务中实现费用追加逻辑,配合前端订单详情抽屉添加费用能力。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 12:36:18 +08:00
zzh
74151b0738 feat(customer): 列表返回 Id 并支持管理员代登客户门户
补充客户分页 Id 字段与 customer-oms-login 接口,修复管理端删除/免密登录;公告通知增加接收人候选项与客户接收类型。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 18:35:46 +08:00
zzh
90f6c25b04 feat(order): 问题件/理赔件标记、通知投递与自动触发
新增 mark-problematic/mark-claimed/handle-status 接口,异常事件审计表与占位符渲染;inApp/email 通知及下单/入库/出库自动触发运行时。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 16:46:52 +08:00
zzh
0c763f9707 fix(channel): 修复问题模板重复校验 SQL 语法错误
避免 SqlSugar 翻译闭包 null 比较,改用分支与布尔标志构建查询条件。
2026-07-06 15:28:01 +08:00
zzh
d49573fe9a feat(channel): 新增问题模板 CRUD 与 options API
支持按组织与问题类型维护通知模板,含建表脚本与仓储层唯一性校验。
2026-07-06 14:58:37 +08:00
zzh
cde0ccb6b0 feat: 新增工作台与实时监控统计 API
- GET /order/workplace-stats 与 /order/workplace-trend 供工作台使用

- GET /monitor/overview 供实时监控页订单/客户/轨迹统计

- 扩展订单仓储聚合查询,status-counts 同步应用数据权限

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 18:24:48 +08:00
zzh
0a5bd75618 feat: 新增财务应收应付接口并补充 Swagger 接口名称
- 新增 Finance 模块应收应付分页查询及订单费用联查

- 为 DataPerm、Xhs 等缺失接口补充中文 summary 接口名称

- 优化微信公众号验签 Swagger 命名并补充路由集成测试

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 12:15:15 +08:00
zzh
11520d014b fix(数据权限): 修复 DataScopeContext 缓存 JSON 反序列化失败
将 IReadOnlySet/IReadOnlyList 改为 HashSet/List 等可序列化类型;缓存读取失败时自动重建。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 17:47:29 +08:00
zzh
5f1f16c9ad fix(数据权限): 组织树递归查询使用 ParentId 而非 PId
修复 get-effective-by-user 展开下级组织时报 Unknown column c.PId。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 16:44:46 +08:00
zzh
0bf909dc2b feat(rbac): 新增内部用户列表接口,排除纯客户账号
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 12:19:14 +08:00
zzh
ad367998d2 fix(数据权限): 修复 GUID 种子/SqlQuery 映射并补充诊断修复 SQL
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 11:58:24 +08:00
zzh
c442833d9c feat(数据权限): 实现 P1 后端 API、有效范围合并与订单列表集成
- 新增 DataPerm 模块(配置 CRUD、模板、字段脱敏、变更/访问日志 API)及 SQL 脚本
- 订单列表/导出接入 EffectiveScopeBuilder 五维数据权限过滤
- 修复集成测试 JSON 反序列化与 RBAC 用户名解析;新增 DataPerm API 集成测试

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 10:27:37 +08:00
zzh
bf81f00c91 fix(wechat): 注册失败时返回中文错误并校验 RBAC 账号
避免 user 表重复写入抛出英文 DbUpdateException;注册前检查 RBAC 登录账号/邮箱是否已占用。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-02 15:08:24 +08:00
zzh
8ef9a43f76 feat(wechat): 将 access_token 持久化到 t_system_other_config
改用数据库存储 token 并支持 AppId/Secret 变更时自动清空,替代内存缓存并增加无效 token 重试。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-02 11:03:36 +08:00
zzh
5c6c4f6e48 feat(wechat): 公众号配置改从 t_system_other_config 读取,支持后台其他配置维护
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 16:18:43 +08:00
zzh
50c6fd8ac8 fix(xhs): reject offline agent for analysis and normalize browse task results
Validate agent is online before starting analysis tasks; normalize list_feeds JSON when persisting task reports.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 12:36:28 +08:00
zzh
f7be966adc fix(xhs): task/report 与 task/cancel 返回 JSON 响应
避免 Agent 客户端解析空 body 报「非 JSON 响应」导致任务上报失败。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 11:58:48 +08:00
zzh
607e09433b fix(xhs): 管理员账号使用 customerId=0,取消客户账号限制
小红书各服务统一走 ResolveXhsCustomerIdAsync,管理员无需客户上下文即可操作 Agent、拟人设置等接口。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 09:02:18 +08:00
zzh
ffaf325563 fix(xhs): repair publish/task list SQL and RBAC menu seeds
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 11:23:37 +08:00
zzh
af53c48f7f feat: 新增小红书模块后端(Agent/任务/发布/分析/技能/AI)及 SQL 种子与 RBAC GUID 修复脚本
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 09:43:09 +08:00
zzh
e4894f9627 feat: 批量发送邮件 API(模板、SMTP 配置、发送记录)
新增模板/账号持久化、SMTP 测试与单封发送接口,发送成功后写入邮件记录表供前端列表展示。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 19:56:35 +08:00
zzh
1c0dce9956 fix: 查价运费匹配与费用公式展示优化
修复卖价明细英文货物类型无法匹配导致 freight 为 0 的问题;查价返回算法算式、其他费用明细及中文货物属性名;运费列仅汇总 freight 费用项。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 19:25:33 +08:00
zzh
07fc7fffe7 feat: resolve createBy/updateBy to RBAC user display names
Add OmsRbacUserDisplayNameResolver and use it in customer, order, warehouse, and channel APIs so audit fields return names instead of mapIds.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 19:07:17 +08:00
zzh
e875f0c012 feat: price-check by cargo type and warehouse, customer auto-code, track apiCode
Support multi cargo-type and warehouse combinations in price check billing. Auto-generate customer codes (W+yyMM+seq) on create/register; require email. Use order DownstreamSupplierCode as track UpsertSmallBag apiCode.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 18:40:10 +08:00
zzh
bc0bde72bc feat(track): return reproducible curl in UpsertSmallBag result
Expose CurlCommand in SmallBagTrackUpsertResult so track sync dialog can show the exact curl used for the request.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 13:00:11 +08:00
zzh
3046f26837 fix(track): forward Authorization Bearer to UpsertSmallBag
Track gateway requires the logged-in user JWT in addition to appKey/timestamp/sign headers. Capture token before async enqueue so background sync still works.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 12:53:28 +08:00
zzh
bd1288edc9 fix(track): send UpsertSmallBag auth via HTTP headers
Track SignatureValidationFilter reads appKey/timestamp/sign from headers, not query. Reverts e642f08 query transport and aligns debug script.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 12:35:39 +08:00
zzh
eac7b84f6a feat(order): downstream createOrderOne API from order DB
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 12:29:06 +08:00
zzh
e642f089ba fix(track): UpsertSmallBag auth params in query, align sign helper
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 12:18:57 +08:00
zzh
545f0825f8 feat(order): 规则快照下游元数据、订单绑定字段与系统其他配置
排货发布 enrich Providers 并确认渠道时写入 t_order 下游四字段;接入 itfx 元数据客户端;系统其他配置与小包轨迹 DB 配置;手动轨迹 UpsertSmallBag 接口。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 11:31:15 +08:00
zzh
fe30d071e6 feat(order): 修复列表状态筛选、收件国家名与小包轨迹同步
改用仓储链式 Where 修复分页列表状态过滤失效;保存并返回 ConsigneeCountryName;预报成功后异步 UpsertSmallBag;仅草稿/已预报可删除。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 19:43:35 +08:00
zzh
095ad66717 feat(order): 增加 IsPaid 字段并修复列表状态筛选
- t_order 新增 IsPaid,支付/出库以该字段判断;含迁移脚本

- 列表接口补充 productName、channelName

- 修复 BuildOrderPredicate 状态条件 SqlSugar 翻译丢失

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 19:13:15 +08:00
zzh
e7fd69b644 feat(order): 排货确认渠道与应付计费,出入库计费对齐设计
- 预报/入库后按排货规则选服务渠道并写入渠道买价应付费用

- 排货发布快照 Providers 去除 CreateTime/UpdateTime

- 出库扫描扩展 OutboundRecord 字段与 ApplyShipBillingByWaybillAsync

- 服务渠道买价发布预览;按 ChargingStage 删除应付费用

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 16:44:04 +08:00
zzh
fdbdfa8124 20260627 2026-06-27 11:56:06 +08:00
zzh
d766343ffe feat(customer): account flow ledger, pay deduct balance, status counts
Add t_customer_account_flow with list API, deduct balance on order pay, credit ledger on recharge approve, and GET /order/status-counts for tab badges.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 19:09:43 +08:00
zzh
82df5d1e79 feat(order): add order edit APIs, inbound lookup, and fee output
Support order detail/weight/declaration updates, receivable and payable recalculation, inbound scan order lookup, receive billing overwrite, and OrderOutput feeList for my-orders drawer.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 17:30:41 +08:00
zzh
5e26de6ff3 feat: remove ChargingTime and bill receivables by weight stage
Drop sell/buy price charging-time config; write receivable fees after forecast or receive chargeable weight, hook inbound billing, fix order list status filter, and add DB migration.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 16:24:53 +08:00
zzh
91ba6d5d59 fix: 计重进位快照兼容与 KPI 分区明细 Excel 导入
- 发布规则快照反序列化合并 StartValue/EndValue 至 Start/End
- 小包创建进位时快照区间无效则降级读 t_weight_rounding_info
- 新增 KPI 分区明细导入模板下载与 Excel 批量导入接口
- 补充快照进位与导入相关单元测试

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 15:29:17 +08:00
zzh
7827b4803e feat: slim rules/price publish snapshots with PostcodeRange (left,right]
Use slim DTOs without audit timestamps; migrate legacy LeftPostcode/RightPostcode on read.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 14:10:34 +08:00
zzh
d8a98fbbc8 feat: 规则发布预览接口并抽取快照组装逻辑
新增 GET publish/preview 返回含黑名单/偏远/计重/进位明细的完整 rules 快照,便于核对 Content。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 13:48:07 +08:00
zzh
2c69e8e5b8 feat: 规则快照固化计重/分区规则并修正卖价公式
规则发布写入黑名单、偏远、计重规则与进位明细;查价/下单优先读快照。修正 unit/total/continue 算价及续单价相邻档位总价基数。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 12:57:34 +08:00
zzh
8aa6ceb677 fix: 价格发布从卖价明细分区推断 PriceAreaId 并写入快照
产品未配置 PriceAreaId 时,根据卖价明细「分区」值匹配 t_kpi_area 或 t_kpi_area_info 后固化 PriceAreaInfos。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 11:58:01 +08:00
zzh
3a65e8c58f feat: 价格发布快照固化分区规则,查价优先从快照匹配不再查库
发布/LIVE 快照写入 PriceAreaId、PriceAreaInfos;US+06000 命中分区键 3 单测通过。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 11:20:33 +08:00
zzh
cd061aaaed fix: 查价失败原因按价格项细化,指出分区/重量等具体不匹配项
新增 ExplainQuotePriceMiss 逐条说明运费/操作费等未命中原因;zone 失败时附带卖价明细分区。单元测试 6/6 通过。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 10:49:08 +08:00
zzh
94a503afb3 fix: 查价分区键从国家+邮编解析,移除默认分区兜底
PriceAreaId 优先取产品表并从规则快照回退;未命中 t_kpi_area_info 时在 zone 步骤返回明确原因,避免与卖价明细分区键不匹配。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 10:31:52 +08:00
zzh
148caae1e7 查价增强与小包国家码:查价忽略收费时机,支持 unit/total 字典公式与重量左开右闭区间,未命中返回 failures 步骤与原因;收发件人 countryCode 改为 ISO 二字码。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 09:57:14 +08:00
zzh
13ccd198d5 修复创建订单报错 2026-06-25 19:59:06 +08:00
zzh
b7ed14d6af 修复订单隔离和查价 2026-06-25 19:39:07 +08:00
zzh
00835bfadd 修复充值和查价 2026-06-25 19:10:44 +08:00
zzh
12ee25ad57 build 2026-06-25 17:47:46 +08:00
zzh
f18dd7a470 修复充值 2026-06-25 12:14:59 +08:00
zzh
1c5a38ad73 微信登录和创建应收和应付费用 2026-06-24 17:00:35 +08:00
c1219e0238 ok 2026-06-10 17:57:43 +08:00
dab31a7c8f fix:audit 2026-06-10 10:30:41 +08:00
73d4d112a2 1 2026-06-09 15:37:56 +08:00
96724376a6 feat: new 2026-04-29 09:38:07 +08:00
6458ab89ba fix 2026-04-22 17:48:05 +08:00
22bb8ab425 ai-fix 2026-04-21 17:54:52 +08:00
2e65ea4ee7 feat:remarks 2026-04-17 11:09:01 +08:00
829af8c576 upgrade 2026-04-16 17:22:58 +08:00
b912c5b159 feat: remarks 2026-04-15 16:50:57 +08:00
91a8ccdecb ai-init 2026-04-15 15:25:38 +08:00