7.6 KiB
Evidence Topic: Company-report path and July month-end readiness
Metadata
- Date: 2026-07-30
- Status: Processor and Booking runtime ready; released 5/5 live job pending
- Scope: ARR2 local Web on port 8766, accepted
company_reportsprocessor, controlledbooking_testsnapshot - Confidence: Fact
- Source: code/input inspection, live health/job metadata, repeatable-read aggregate queries, pure in-memory report build, real XLSX tests
- Last verified: 2026-07-31 11:34 +08:00
- Stale trigger: port-8766 restart, first Booking draft activation, Finance current-version repair, Booking source/parse changes, or a new July upload
Question
What path and rules does the current “公司渠道明细” program use, and will the July month-end run publish all five workbooks from the current database projection?
Evidence
- The active Web process includes
--enable-company-reports; loopback health reportedcompany_reports_ready=trueat 2026-07-30 15:35 Asia/Bangkok. - The Web coordinator accepts one month and one cumulative cutoff period, enforces the Bangkok release boundary, and invokes the deterministic processor for the fixed five-company set. It does not read XML or call an Agent.
- The source query reads
finance.v_active_daily_factsbyDEPARTUREfrom month start through the cutoff in a repeatable-read, read-only transaction. Booking enrichment comes only from current accepted room items, joined by normalized complete Group Code. - Two persisted Web jobs for 2026-07 cutoff 10 and cutoff 20 both completed 5/5 successfully with zero rows for every company. The current supported-company facts all have C/O in the 21-to-month-end period, so those are valid empty workbooks rather than dropped rows.
- A read-only July 31 aggregate found 417 supported-company facts: 121
matched, 11unmatched, and 285missing_group_code. Missing Group Code counts are LianTai 120, QBD 128, DY-AI-Easy-KB 1, FengRun 33 and HanaTour 3. - Under the prior strict rule, a pure in-memory preview blocked all five companies because every missing Group Code was
an error. The user then explicitly chose the deterministic fallback: keep each such Finance fact as its own output
row with blank
RES_COMMENTand blankBooking Room, without warning or duplicate highlighting. At that intermediate step, present-but-unmatched Group Codes still remained strict source-completeness errors. - The supplied Markdown
/Users/chillishark/ARR项目0727/outputs/res_comment_20260727/RES_COMMENT_TYPE_OF_ROOM.mdmatches the dedicated fixed Booking Markdown importer: SHA-256ec2302170c5657d3e465691997e17f7694eb5a7f76feba7e43261632209b8c23, 867 rows, six source worksheets and 348 distinct Group Codes. The controlled database already contains an accepted/current batch with the same hash and counts, so re-importing this exact file is unnecessary and would be idempotent. - After the fallback change, the same read-only July 31 preview produced:
- LianTai: invalid; 136 candidate rows, including 120 blank Booking Rooms; two present Group Codes
(
LLT260719MA,LT260718KC) still lack accepted Booking matches; two multi-price review warnings remain. - QBD: valid; 139 rows, including 128 blank Booking Rooms; four multi-price review warnings.
- DY-AI-Easy-KB: valid; one row with blank Booking Room.
- FengRun: valid; 33 rows with blank Booking Room.
- HanaTour: valid; three rows with blank Booking Room.
- LianTai: invalid; 136 candidate rows, including 120 blank Booking Rooms; two present Group Codes
(
- At that intermediate step, a source/business error still blocked only the affected company while warning-only reports could publish, making four companies publishable and leaving only LianTai blocked.
- The user then explicitly broadened the rule: both an absent Group Code and a present Group Code with no resolvable
Booking room leave
Booking Roomblank. Processor 1.2.0 keeps a present code's normal(Group Code, ARRIVAL, DEPARTURE)aggregation and Finance pricing; lookup absence alone creates no error or warning. - The post-change repeatable-read July 31 preview is valid 5/5 with zero errors:
- LianTai: 138 rows, 122 blank Booking Rooms and two existing non-blocking multi-price warnings.
- QBD: 139 rows, 128 blank Booking Rooms and four existing non-blocking multi-price warnings.
- DY-AI-Easy-KB: one row/one blank; FengRun: 33/33 blank; HanaTour: three/three blank.
- The current Finance projection also contains one
local_fixture/synthetic.xmlQBD fact with C/O 2026-07-30. The company-report source does not filter by storage provider, so the month-end snapshot includes that fact. - The final scoped company/Booking/report suite ran 32 tests successfully with three expected private-fixture skips; real artifact-tool coverage included five-company XLSX generation, workbook reopen/value validation, rendering and a dedicated end-to-end blank-Booking-Room case. Four Web company-task coordinator tests also passed. No database import, report publication or Finance mutation was performed.
- The historical port-8766 Web process started at 17:13:54 +08, after the company-report core file's 17:10:03 +08 change; it loaded the earlier no-code-only fallback. Processor 1.2.0 was written at 17:34:13 +08 and was not loaded in that superseded process.
- Processor 1.2.0 passed 37 company/Booking/real-XLSX/Web-coordinator tests with three expected private-fixture skips. The real builder exported, reopened and value-checked both absent-code and present-but-unmatched blank cells.
- A non-publishing real-data vertical slice loaded the controlled July 31 snapshot in a repeatable-read/read-only transaction and built all five workbooks in a temporary directory. All five exported, reopened, value-checked and rendered three previews; row counts were 138, 139, 1, 33 and 3 respectively. The temporary artifacts were removed automatically and no report/database state changed.
- The authenticated replacement runtime now loads current source and reports
company_reports_ready=true; activation preserved three existing job records and deliberately did not submit a new report job. - A later 2026-07-31 read-only audit first found 014 absent, then observed a concurrent 014/015 deployment at 11:19. Batch 1 is now the explicit current source and draft tables are empty. Port 8766 restarted at 11:30 with Booking source-upload readiness and PATCH/DELETE transport active. Historical fixture reads and processor readiness remain valid. See the later Booking extraction-program evidence.
Finding
The supplied Markdown is a valid Booking source and its historical accepted rows remain queryable. Processor 1.2.0
makes both absent and unresolved Booking enrichment non-blocking and the current July projection previews valid 5/5.
LLT260719MA and LT260718KC remain visible business codes with blank Booking Room rather than report errors. The
processor runtime and Booking upload/source gate are active. A controlled real draft activation and one released
populated company-report job are still required before validating the new end-to-end flow. No additional Booking content
is required for the historical lookup baseline.
Impact
- Do not interpret the two zero-row successful jobs as proof that the month-end data set is publishable.
- Current Web jobs use the activated processor 1.2.0 runtime, but readiness alone is not proof of a published 5/5 run.
- Retire the known fixture from the current projection without deleting immutable history before treating a July month-end company report as clean business output.
Open Items
- Accept one controlled Booking review activation, then run one month-end Web job after the 2026-08-01 00:00 Bangkok release boundary; verify all five downloads and their registered hashes.