Commit Graph

16 Commits

Author SHA1 Message Date
1d12d061e0 接入微信服务号模板消息,修复通知链路重复发送和静默失败
小程序订阅消息每订阅一次只能发一条,用户无法持续收到通知。改为接入微信
服务号模板消息,用户关注服务号后可无限次接收推送通知。

新增功能:
- ServiceAccountNotificationService:服务号模板消息发送服务
- 服务号事件回调(subscribe/unsubscribe)+ 手机号验证绑定流程
- PendingServiceBinding 模型:存储关注者的 openid 待绑定记录
- 小程序 bind-service 页面:输入手机号完成绑定
- 三个详情页(审批/任务/发厂)增加"绑定微信通知"入口
- web-sales NotificationBell 增加服务号关注引导
- web-admin SystemPage/ConfigPage 增加服务号绑定状态和模板配置展示

修复问题:
- EventBus 和 _notify_status_change 重复发送微信消息(业务员收到2条)
- EventBus order_status_changed 事件缺少模板映射导致微信通知静默丢失
- 所有微信发送失败被 except Exception: pass 静默吞掉,增加日志
- 定时任务(欠款/沉默客户/物流超时)不触发 WebSocket 实时通知
- reminder_method 配置未生效

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 17:17:06 +08:00
33894d329b 新增需求规格字段:订单明细的 demand_specification 全链路打通
前端订单表单已有需求规格输入(demand_specification),但后端从未
存入数据库,导致管理员和业务员的订单详情中无法展示。

- 数据库迁移:sales_order_item 表加 demand_specification VARCHAR(128)
- ORM 模型:SalesOrderItem 加 demand_specification 字段
- Schema:OrderItemPayload 接受 demand_specification
- 后端 Service:get_order 返回时包含 demand_specification
- 管理员/业务员订单详情:产品明细表格新增「需求规格」列

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-22 23:27:11 +08:00
99e6d05c4e 新增客户需求描述字段:从数据库到前端详情页全链路打通
订单创建/编辑表单已有 customer_demand 字段,但后端从未存入数据库,
导致管理员和业务员的订单详情页无法展示客户需求描述。

- 数据库迁移:sales_order 表加 customer_demand TEXT 列
- ORM 模型:SalesOrder 加 customer_demand 字段
- 后端 Service:create/update/get_order 三处补全
- 管理员详情页:展示并支持编辑客户需求描述
- 业务员详情页:展示客户需求描述(多行文本,pre-line 渲染)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-22 23:07:57 +08:00
7b12f5dbaa 6-22修复初次提交 2026-06-22 14:59:51 +08:00
3e96aa4c0f 销售金额改为合同金额 2026-06-19 23:57:25 +08:00
24d1867309 简单修复测试 2026-06-19 23:03:14 +08:00
27b0b25f09 添加测试部署功能 2026-06-14 16:20:04 +08:00
039b731e85 fix: logistics_task 补充缺失的 task_no 字段导致司机端 500 错误
ORM 模型和业务逻辑引用了 task_no 但数据库缺少该列,
新增迁移脚本添加 task_no 列并为已有数据填充编号。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-07 16:00:02 +08:00
b1081ec001 fix: 迁移脚本修复 biz_id INT 溢出和 file_type 长度不足
- biz_id 从 INT 扩展为 BIGINT,避免 14 位时间戳溢出
- file_type 从 VARCHAR(64) 扩展为 VARCHAR(128),兼容 XLSX MIME 类型

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-07 15:23:13 +08:00
a5edb8be4d feat: 司机端拍照识别物流运单号并支持一对多录入
新增 logistics_waybill 表存储一个任务关联的多个运单号,
司机在揽货时可通过拍照调用快递100 OCR 自动识别运单号,
支持连续拍多张统一提交、手动输入兜底、编辑删除,
揽货时必填至少一个运单号并自动同步到 logistics_task。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-07 14:03:36 +08:00
89674a6e9d fix: 补充 order_supplier_text_log 表的数据库迁移
该表在模型中定义但从未创建迁移,导致确认发厂文案时数据库插入失败(500)。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-07 11:12:12 +08:00
01f7a38094 fix: 订单明细迁移补全 + 全局异常处理 + Vue 模板修复
- 新增迁移 20260531_0001 补全 sales_order_item 报价快照列(幂等)
- 添加全局未捕获异常处理器,500 错误返回具体异常信息并记录 traceback
- 修复 web-sales LoginPage 和 CustomersPage 中 import 语句误写在 <template> 内的问题

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 14:07:28 +08:00
46d56cb6d3 feat: 定价规则支持含税计算,审批详情展示税明细
定价规则新增 tax_rate(税率百分比)和 tax_inclusive(含税方式)字段,
报价引擎自动计算含税/不含税双价格,审批详情页利润计算过程展示税说明和明细行税额。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-30 11:15:55 +08:00
2d4b3758cf 更新快递100接口对接功能 2026-05-27 14:43:54 +08:00
9a4938f1ed feat: complete database migrations and bootstrap setup 2026-05-15 12:32:45 +08:00
18fb362474 基础框架搭建 2026-05-14 13:51:06 +08:00