zlwu and Cursor
a035a9d6ad
fix(web-admin): show receive account details below the form select.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 14:02:11 +08:00
zlwu and Cursor
054991fbd0
fix(web-admin): use text inputs for bank province/city on receive accounts.
...
The china-region-tree API is not implemented; store province and city as free text names instead of cascading selects.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 13:57:21 +08:00
zlwu and Cursor
a73ea36f9e
docs: mark receive account design implemented and refresh graphs.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 13:54:20 +08:00
zlwu and Cursor
0d59627fa3
feat(web-admin): add OA receive account management page.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 13:53:58 +08:00
zlwu and Cursor
cf61ce340d
feat(web-admin): register receiveAccount FormCreate control.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 13:49:43 +08:00
zlwu and Cursor
4e805f9625
fix(web-admin): harden receive account display helpers.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 13:49:02 +08:00
zlwu and Cursor
d946b91dd1
feat(web-admin): add receive account snapshot value helpers.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 13:46:22 +08:00
zlwu and Cursor
947e6ae6f8
feat(backend): expose receive account APIs and form validation.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 13:45:02 +08:00
zlwu and Cursor
9277b9c568
fix(backend): coerce receive account order_num to int or None.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 13:44:22 +08:00
zlwu and Cursor
51f868ea44
feat(backend): add receive account CRUD helpers and validators.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 13:40:59 +08:00
zlwu and Cursor
64fb25d3f6
feat(backend): add OaReceiveAccount model.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 13:38:42 +08:00
zlwu and Cursor
9f796a7b96
docs(sql): add oa_receive_account table and menu.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 13:37:01 +08:00
zlwu and Cursor
563da3626b
docs: add OA receive account implementation plan.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 13:35:36 +08:00
zlwu and Cursor
7aef0781a7
docs: add OA receive account management design and mockup.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 13:32:07 +08:00
zlwu
ec4b9438b4
提交
2026-07-30 13:08:23 +08:00
zlwu and Cursor
22be6d8b36
feat(oa): add initiator system field to condition branches
...
Allow __initiator__ contains matching in publish validation and the
flow designer candidate list, excluding it from form useInCondition locks.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 13:07:44 +08:00
zlwu and Cursor
3d88f52e2e
feat(backend): match __initiator__ contains in condition groups
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 13:04:24 +08:00
zlwu and Cursor
a37bfac213
docs: add OA initiator condition implementation plan.
...
Cover engine matching, publish validation, and condition editor injection
for system field __initiator__.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 13:03:15 +08:00
zlwu and Cursor
a501fb1219
docs: add OA initiator contains condition design spec.
...
Describe system pseudo-field __initiator__ for workflow branches,
contains-only matching, and publish/engine touchpoints.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 13:01:56 +08:00
zlwu and Cursor
cf069c74ec
feat(oa): add person select control with contains conditions and print
...
Register FormCreate person field (dept-aligned UI), enable contains-only
workflow conditions, and format person values in print/related summary.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 12:18:19 +08:00
zlwu and Cursor
85322c39e4
feat(backend): evaluate person contains rules in condition groups
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 12:16:08 +08:00
zlwu and Cursor
330dd9e2ce
feat(backend): validate OA person field and whitelist type
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 12:12:31 +08:00
zlwu and Cursor
6aa6c6e73e
feat(web-admin): add OA person value normalize helpers
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 12:09:45 +08:00
zlwu and Cursor
e760de4bd3
docs: add OA person select implementation plan with preview notes.
...
Include FormCreate mobile canvas and preview dialog constraints, plus
start-page flow preview via contains matching.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 12:08:06 +08:00
zlwu and Cursor
39d1031f6c
docs: add OA person select control design spec.
...
Capture FormCreate person field (dept-aligned UI), form_data contract,
and contains-only condition branching for workflow.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 12:03:38 +08:00
zlwu and Cursor
be41e8f202
feat(web-admin): mobile-friendly OA money field for phone preview
...
Add decimal inputmode, taller touch targets under 768px, and wrapping uppercase; document phase-1 vs phase-2 mobile scope.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 11:15:40 +08:00
zlwu and Cursor
221a6fd360
docs: mark OA money field design as implemented
...
Update status and keep the implementation plan alongside the spec.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 11:11:13 +08:00
zlwu and Cursor
b5c4ba4c4f
feat(oa): format money fields in print and related-approval summary
...
Show formatted amount with optional uppercase on print; summary uses numeric text.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 11:11:13 +08:00
zlwu and Cursor
8e98ffe950
feat(web-admin): register OA money field with uppercase display
...
Add DragRule, dual-host FormCreate setup, and AmountInput runtime with optional RMB uppercase.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 11:11:13 +08:00
zlwu and Cursor
55e4134050
feat(backend): validate OA money field values on instance start
...
Reject negatives, non-finite values, and missing required money controls.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 11:04:30 +08:00
zlwu and Cursor
0a24f707bf
fix(web-admin): avoid duplicate 零 in RMB uppercase for yi+rest
...
Add regression tests for 亿到元段间零填充。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 11:01:33 +08:00
zlwu and Cursor
e6d7eecdc6
feat(web-admin): add RMB uppercase converter for OA money field
...
Pure function with node:test coverage for zero, jiao/fen, and range limits.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 10:56:03 +08:00
zlwu and Cursor
98074bf201
docs: add OA money field (amount + RMB uppercase) design.
...
Captures DingTalk-aligned product decisions for the approval form designer amount control before implementation.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-30 10:48:55 +08:00
zlwu
43d117133b
提交
2026-07-29 17:04:36 +08:00
zlwu and Cursor
1b934a2037
fix(outbound-release): use eq_unicode for schedule id EXISTS joins
...
Avoid Illegal mix of collations when correlating QC/production work orders to infusion schedules in list filters.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 16:36:34 +08:00
zlwu
5d17113e1a
提交
2026-07-29 16:08:34 +08:00
zlwu and Cursor
111baacd2d
docs: mark outbound release card align-protocol design as implemented
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 16:04:09 +08:00
zlwu and Cursor
20e3022f07
style(web-admin): drop unused protocol-card block modifiers on outbound cards
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 16:03:48 +08:00
zlwu and Cursor
6445e51523
feat(web-admin): align outbound release cards with protocol-card layout
...
Reuse protocol-card class names and structure; map outbound fields into aside and three sections.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 16:02:28 +08:00
zlwu and Cursor
745802ce61
docs: add outbound release card align-protocol implementation plan
...
Rewrite OutboundReleaseReviewCardList to protocol-card DOM and copied SCSS.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 15:58:45 +08:00
zlwu and Cursor
cccee8e2cc
docs: add outbound release card align-to-protocol design and demo
...
Document reusing protocol-card class names with outbound fields; include HTML comparison demo.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 15:57:05 +08:00
zlwu and Cursor
df973f6bdb
docs: mark outbound release tabs/ready/void design as implemented
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 13:37:59 +08:00
zlwu and Cursor
5e9e81d28e
feat(web-admin): outbound release pending/reviewed tabs and ready checkbox
...
Match storage-release review UX for pilot/basic-experiment outbound release lists.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 13:37:13 +08:00
zlwu and Cursor
12df6d6836
feat(outbound-release): add reviewPhase, ready filter, and void hide
...
List supports pending/reviewed phase, readyForReviewOnly, and always hides schedules whose outbound QC or production WOs are all voided.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 13:34:29 +08:00
zlwu and Cursor
d3cc76d560
docs: add outbound release tabs/ready/void implementation plan
...
Break down backend list filters and web-admin tabs/checkbox aligned with storage-release.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 13:32:15 +08:00
zlwu and Cursor
5c7372ee06
docs: add outbound release tabs/ready/void design
...
Align outbound release review with inbound tabs, ready-for-review checkbox, and voided WO list hide.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 13:30:40 +08:00
zlwu and Cursor
b1cb13fdfe
docs: mark storage-release hide-voided design as implemented
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 13:19:41 +08:00
zlwu and Cursor
8b18d21c88
feat(storage-release): hide list rows when related docs are void
...
Exclude reviews whose protocol is inactive or whose inbound QC/production work orders are all voided.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 13:17:13 +08:00
zlwu and Cursor
a922ad12f4
feat(storage-release): add hide-voided predicate helpers
...
Document protocol inactive and all-inbound-WO-void semantics for list filtering.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 13:10:12 +08:00
zlwu and Cursor
5d15d8ad6f
docs: add storage-release hide-voided implementation plan
...
Break down list SQL filter and predicate unit tests for voided related documents.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 13:06:41 +08:00
zlwu and Cursor
3928d9e118
docs: add storage-release hide voided related design
...
Document list-only hide rules when protocol is inactive or all inbound QC/production work orders are voided.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 13:04:57 +08:00
zlwu and Cursor
38f18f1926
docs: mark storage-release ready filter as implemented
...
Add design spec, plan checkboxes, and interactive filter demo for the pending readyForReviewOnly feature.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 11:25:04 +08:00
zlwu and Cursor
63074c0032
feat(web-admin): pending storage-release ready checkbox filter
...
Replace QC-completed select with show-all checkbox; request readyForReviewOnly when unchecked.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 11:21:21 +08:00
zlwu and Cursor
9e5cc9188b
feat(storage-release): add readyForReviewOnly list filter
...
Default pending list can exclude rows with unfinished QC or production work orders via SQL NOT EXISTS.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 11:16:42 +08:00
zlwu
3317d4a077
提交
2026-07-29 10:26:07 +08:00
zlwu and Cursor
56cee052d4
docs: add lineage QC design/plan and pass project fields to material dialog
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 09:56:08 +08:00
zlwu and Cursor
33c4408557
feat: expose lineage QC API and wire viewer in outbound material dialog
...
Add GET /cell-products/{id}/lineage-qc, frontend client, readonly dialog,
and a 查看质检 action on outbound cell rows.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 09:55:51 +08:00
zlwu and Cursor
40d93934a9
feat: add cell product lineage QC aggregate loader
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 09:54:28 +08:00
zlwu and Cursor
f2e582b4dc
feat: add lineage node flatten helper for cell product QC view
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-29 09:49:35 +08:00
zlwu
b569643581
提交
2026-07-28 21:33:15 +08:00
zlwu and Cursor
b105bd9b7d
chore: update graphify and mark batch outbound plan complete
...
Refresh knowledge graphs after storage facility batch outbound changes.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 19:15:35 +08:00
zlwu and Cursor
9978ae7724
feat(web-admin): add shelf cell checkboxes for batch outbound
...
Occupied cells show always-on checkboxes; body click still opens detail dialog.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 19:15:05 +08:00
zlwu and Cursor
789c6443f3
feat(web-admin): add batch outbound selection state and toolbar
...
Wire selected slots map, confirm dialog, and serial remove occupancy calls on storage shelf.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 19:13:26 +08:00
zlwu and Cursor
0a055557cb
feat(storage): expose storedOccupancyId on shelf slot enrichment
...
Enable web-admin batch outbound to call existing remove occupancy API per selected cell.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 19:11:24 +08:00
zlwu and Cursor
d4c927a8b9
docs: add storage facility batch outbound implementation plan
...
Break down shelf checkbox selection and serial occupancy remove into backend enrichment and Vue tasks.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 19:10:29 +08:00
zlwu and Cursor
45c2e3df01
docs: add storage facility batch outbound design and demo
...
Capture confirmed UI (always-on checkboxes) and serial remove via existing occupancy API for implementation planning.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 19:08:43 +08:00
zlwu and Cursor
d323e09894
chore: track app.pid and misplaced graphify AST caches
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 18:48:07 +08:00
zlwu and Cursor
d51bbad12d
chore(web-admin): update graphify after qc conclusion and storage facility changes
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 18:46:39 +08:00
zlwu and Cursor
a3af039e74
feat: 质检工单结论、库位批量/筛选与协议样本接收质检摘要
...
落库并展示质检工单级结论(可编辑/任务派生),库位树支持批量新增子节点与货架格子检索,协议/捐赠列表补充接收与门禁质检摘要,并同步生产物料与工单卡片展示优化。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 18:46:24 +08:00
zlwu and Cursor
f554d77e59
chore(web-admin): update graphify after product-lines batch fill
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 18:33:20 +08:00
zlwu and Cursor
d620d5d857
feat(web-admin): enable copy-first and batch slot fill on cell product create
...
Keep inbound product-lines UX consistent with task output dialog.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 13:35:59 +08:00
zlwu and Cursor
3079d5da7e
feat(web-admin): enable copy-first and batch slot fill on task output dialog
...
Speed up multi-line cell product inbound entry in production task execution.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 13:35:59 +08:00
zlwu and Cursor
0c24165922
feat(web-admin): add product-lines batch storage slot fill dialog
...
Pick same-box start/end slots and resolve fill targets for empty lines.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 13:35:59 +08:00
zlwu and Cursor
eae8743826
feat(web-admin): add storage slot range-fill helpers for product lines
...
Pure functions for copy-first-row attrs and same-box start/end slot pick.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 13:33:32 +08:00
zlwu and Cursor
5942feb06e
docs: add product-lines batch fill design and plan
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 13:31:49 +08:00
zlwu and Cursor
e6c8a9c88d
feat(web-admin): expose facilityNodeId on storage slot select options
...
Needed so batch start/end fill can verify slots belong to the same box.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-28 13:30:56 +08:00
zlwu
bff544404f
提交
2026-07-27 19:47:13 +08:00
zlwu and Cursor
51f205e89b
fix(oa): skip dept tree fetch inside form designer iframe
...
oa-fc-host has no Pinia/auth; mounting OaDeptSelect previously called
fetchDeptTree and surfaced false network errors when dragging the control.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-27 18:43:01 +08:00
zlwu and Cursor
2e6e1f47d6
feat(oa): add dept select FormCreate control with print formatting
...
Register type=dept on main app and oa-fc-host, with PC tree-select and
narrow drawer pickers storing {id,name} path snapshots; format dept values
in print and related-summary flatten.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-27 18:32:44 +08:00
zlwu and Cursor
45d84d9642
feat(oa): reject invalid dept form_data on start
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-27 18:27:27 +08:00
zlwu and Cursor
babe26a23d
fix(oa): coerce dept max prop when validating form_data
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-27 18:26:57 +08:00
zlwu and Cursor
260a461d05
feat(oa): validate dept control form_data shapes
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-27 18:24:28 +08:00
zlwu and Cursor
1d24f1c682
docs(oa): add department select implementation plan
...
Break the approved dept control design into TDD-ready tasks covering
validation, FormCreate registration, PC/narrow pickers, and print formatting.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-27 18:21:54 +08:00
zlwu and Cursor
19c97d148f
docs(oa): add department select control design and mockup
...
Capture the approved OA form designer dept control contract (multi/single,
{id,name} path snapshot, mobile full-screen picker) and a Fresh Mint HTML demo.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-27 18:17:38 +08:00
zlwu and Cursor
d5b0f2d797
chore(graphify): sync knowledge graph artifacts after protocol fix
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-27 17:50:02 +08:00
zlwu and Cursor
57487fd0dc
fix(protocol): save DJ pay details without blocking on due-sum mismatch
...
Persist payment before samples to avoid consuming sample codes on validation failure, soft-delete samples on create rollback, and surface DJ due-amount mismatch as a hint only.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-27 17:49:36 +08:00
zlwu and Cursor
f661d40f3a
feat(oa): add auto-pass-when-approver-is-initiator advanced switch
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-27 17:43:39 +08:00
zlwu and Cursor
1fafb4a157
test(oa): cover auto-pass or/and/consecutive/commentRequired cases
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-27 17:43:18 +08:00
zlwu and Cursor
8bd45561b7
feat(oa): auto-pass approval when assignee is initiator
...
Extract approve core and hook after creating approval tasks when the advanced setting is enabled.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-27 17:42:41 +08:00
zlwu and Cursor
d69388573a
test(oa): add failing auto-pass-when-approver-is-initiator case
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-27 17:41:56 +08:00
zlwu and Cursor
b9193b3175
docs(oa): add auto-pass-when-approver-is-initiator implementation plan
...
Break the approved design into TDD tasks for engine core, tests, and designer switch.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-27 17:37:07 +08:00
zlwu and Cursor
9b76aa654e
docs(oa): add auto-pass when approver is initiator design
...
Document advanced setting and engine behavior for skipping self-approval when the assignee equals the initiator.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-27 17:32:48 +08:00
zlwu
7f4c9720e9
提交
2026-07-25 09:37:24 +08:00
zlwu
2de86b0500
提交
2026-07-24 11:55:03 +08:00
zlwu
89fda927a2
提交
2026-07-23 18:01:11 +08:00
zlwu and Cursor
91b8dd1aaa
fix(oa): align initiator-select picker with flow designer member chips
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-23 16:27:43 +08:00
zlwu and Cursor
4641d333e6
feat(oa): wire start dialog to per-node initiator select in flow preview
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-23 16:20:06 +08:00
zlwu and Cursor
eafd3c7d9e
feat(oa): allow picking initiator-select users inside flow preview
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-23 16:14:13 +08:00
zlwu and Cursor
624ac87476
feat(oa): switch web-admin OA APIs to initiatorSelectByNode
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-23 16:11:39 +08:00
zlwu and Cursor
5ac5952c55
feat(oa): accept initiatorSelectByNode on start and flow-preview APIs
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-23 16:10:36 +08:00