| New file |
| | |
| | | # çæè®¡ç®åç
§ä¸éªæ¶å£å¾ï¼2026-10-13 æ±æ»ï¼ |
| | | |
| | | > ä¸é¡µåç两件äºï¼â æ±æ»å¤§è¡¨ç"çæè®¡ç®"**åç
§äºåäºä¸é¡¹ç»è®¡çåªäºåæ³**ï¼â¡ **æ¯æ¬¡åºè¡¨æä¹éªæ¶**ï¼åå±éªæ¶ï¼å·²èæ¬åï¼ã |
| | | > æ¥æºï¼`docs/æ±æ»å¤§è¡¨M0çå¼é建å¨è§æ ¼_2026-10-06.md` 第åä¸èï¼2026-10-08 对é½è¡¨ï¼ã`docs/æ±æ»å¤§è¡¨çææ°æ®éªè¯æ¹æ³_2026-10-12.md`ã`docs/è¦æ±ä¸éªæ¶åºçº¿æ¸
å.md` R6ã`docs/ç¡®è®¤åæ§æ±æ»â¦_2026-09-07.md` 第å
«èã |
| | | |
| | | ## ä¸ãåç
§åäºãä¸é¡¹ç»è®¡ãçæ å°ï¼2026-10-08 åæå¯¹é½è¡¨ï¼ |
| | | |
| | | | åäºä¸é¡¹ç»è®¡çåæ³ | ä»ä¸ºä»ä¹è½æç« | æ±æ»å¤§è¡¨ç对åºåæ³ | ç¶æ | |
| | | |---|---|---|---| |
| | | | ä¸ä»½æ¯çï¼`2026å¹´å䏿°æ®.xlsx`ï¼ï¼**天为è¡ã年为å** | å¢é¿ç»´åº¦æ¯ãå¹´ãã天æ°åºå® 8 | æ **F10 æææéæ©å**ï¼è¯» N ææ¯çäº§åº N+1 æçå¼ï¼ä¸é¢ç空åï¼ï¼æ¯çåªå½ç弿¥æº | â
å·²å®ç°ï¼æ©åå¨ï¼ | |
| | | | æ¯ç**åæ¶æ¯æ°æ®å®¹å¨**ï¼åå²å¹´ä»½å¼å°±å¨å¹¶æå¹´åéï¼ | åå²å¼é模æ¿èµ° | **åè¿æ¥å**ï¼åå²åç
§å¼å
¥åºãæ¯çåªççå¼ãåç
§ç»ç± DB åå¡« | ⬠æªå®æ½ï¼10-08 宿¹åï¼ | |
| | | | 表头/è¡æ ç¾**è¯ä¹å®ä½**ï¼`findYearColumn`/`parseDayIndex`ï¼ | ååºåäºä¹è½å¯¼ | 页è§å表 `SummarySheetRule`ï¼**æè¡¨å¤´è®¤æä»½ç»ãæè¡æ ç¾è®¤å¸å·/ææ ï¼ä¸ç¡¬ç¼ç åéç¹** | ð§ é¨åï¼æåº¦åè¿ä¾èµæ¯çå
¬å¼ï¼2026-09 æ¼æå³æºäºæ¤ï¼ | |
| | | | ææ¼ç§»å£å¾**å¤ç½®æè¡¨**ï¼`holiday_calendar`/`passenger_coefficient`/`vehicle_adjustment`ï¼ | è§å䏿£å¨ä»£ç ä¸åå
æ ¼é | å¤ç½®ï¼åç
§å¹´ä¿çç»æ°ãæåå£å¾ï¼å
¨ç䏿åï¼ã`B=G+L/2+Q/10`ã缺æ°ç½®ç©ºè§å | ð§ é¨å | |
| | | | `DECIMAL(30,15)` + `BigDecimal` + æ Excel æ¾ç¤ºç²¾åº¦åå¼ | 精度å£å¾ç»ä¸ãæ æµ®ç¹å°¾å·® | æ¿æ¥å¾
åã16 å¼ è¡¨ 228 个 double åæ¹ DECIMAL+BigDecimalãï¼å·²å F1 å
¨ç²¾åº¦åå¨ï¼ä¸¤ä½å°æ°æ¾ç¤ºãæ¯çææ¬æ°åå½ä¸ | ð§ é¨å | |
| | | | **导å
¥ä¸¤é¶æ®µç¡®è®¤** + å
¨ç¨åªè¯»æ ¸å¯¹ï¼å岿°æ®ä¸è¢«è¯¯è¦çï¼ | å
åºå·®å¼æ¸
åãç¨æ·ç¡®è®¤åæå | **çæåå
åºç¼ºæ°/差弿¸
åã人工确认åååºè¡¨**ï¼B4 åºæ°ä½æ£ + ãæ°æ®ç¼ºå¤±æ¸
åãé¡µï¼ | â
å·²å®ç° | |
| | | | è¾åºèµ°æ¨¡æ¿æä»¶ï¼docx/PNGï¼ | ç弿¥æºåä¸ | ä¿çç°æåæ³ï¼å¿«æ¥æ¹ `word/document.xml`ãJFreeChart åº PNGï¼ | â | |
| | | |
| | | **ä¸å¥è¯**ï¼åçæ¯**æ¹æ³ä¸çºªå¾**ï¼è¯ä¹å®ä½ãå£å¾å¤ç½®ã䏤鶿®µç¡®è®¤ã精度ç»ä¸ï¼ï¼**ä¸ç
§æ¬**ä»"æ¯çå
¼æ°æ®å®¹å¨"çåæ³ââæä»¬åè¿æ¥è®©åå²å¼å
¥åºã |
| | | |
| | | ## äºãçæè®¡ç®çåæ®µä¸åèªåç
§ï¼2026-10-12ãçææ°æ®éªè¯æ¹æ³ãï¼ |
| | | |
| | | ååï¼**æ¯ä¸æ®µé½è¦æä¸ä¸ªç¬ç«äºè¯¥æ®µçåç
§**ï¼ä¸¤è¾¹åæºå°±éªä¸åºä¸è¥¿ã |
| | | |
| | | | 段 | é®é¢ | åç
§ | è°è´è´£ | ç¨åºè½èªè¯ | |
| | | |---|---|---|---|---| |
| | | | L0 æºæä»¶âåº | æºæ°æ®å¯¹ä¸å¯¹ | æºæä»¶/ä¸åè¡¨æ¨¡æ¿ | æ°æ®ãä¸å¡ | ä¸è½ | |
| | | | L1 åºâå£å¾å¼ | ç®æ³å£å¾å¯¹ä¸å¯¹ | **æå SQL å¤ç®**ï¼ä¸çæ¯ç/å®ç¨¿ï¼ | ç¨åº | è½ | |
| | | | L2 å£å¾å¼âåå
æ ¼ | åå对ä¸å¯¹ | ä¸ä¸ææ¯ç/çæä»¶ï¼"ä¸è¯¥å¨çæ ¼æªå"ï¼ | ç¨åº | è½ | |
| | | | L3 åå
æ ¼âæ´æ¬ | ä¸äººå·¥å®ç¨¿ä¸è´å | æå·¥å®ç¨¿ï¼**è®°çæ¬ + sha256**ï¼ | 忹夿 ¸ | é¨å | |
| | | | L4 跨页åæé¡µ | å¾ç¨½å¯¹ä¸å¯¹ | å¾ç¨½å¼æ¬èº«ï¼å¦ `éè·¯è¿è¾å¨è½¬é B=G+L/2+Q/10`ï¼ | ç¨åº | è½ | |
| | | |
| | | å
¸å失败模å¼ï¼åæï¼ï¼L0 æ¼å¯¼/åéä½/åä½å·® 10000/éå¤å¯¼å
¥å å ï¼L1 è§ä¸åå为è´ãΣå¸å·â çè¡ï¼L2 彿忲¡åã䏿å被éç®å²æãå
¬å¼æé¾ï¼L3 æ"å®ç¨¿æ»å"å½"ç¨åºåå½"ï¼L4 æºé¡µå¯¹èåæé¡µå¼ç¨éåã |
| | | |
| | | ## ä¸ãæ¯æ¬¡åºè¡¨çåå±éªæ¶ï¼èæ¬åï¼ä¸ç¬¬äºèçåæ®µæ¯ä¸¤å¥ååï¼å«æ··ï¼ |
| | | |
| | | å·¥å
·ï¼`æ±æ»è¡¨åå±éªæ¶.py`ï¼L1âL4ï¼ï¼ `æ±æ»è¡¨å
¨ç使£.py`ï¼å¢éçï¼å« A/B/C/Dï¼ãå½ä»¤ï¼ |
| | | ``` |
| | | python æ±æ»è¡¨åå±éªæ¶.py <çæè¡¨.xlsx> --æºè¡¨ <彿æºè¡¨.xlsx> --䏿 <䏿件.xlsx> --æ¥å éªæ¶æ¥å.txt |
| | | ``` |
| | | |
| | | | å± | æ¥ä»ä¹ | çå¼/便® | éè¿æ å | |
| | | |---|---|---|---| |
| | | | éªæ¶ L1 ç»ææè¨ | å
¨ç°¿å
¬å¼ä¸è¡¨å¤´ | 表头æ¬èº« | 累计=å½å¹´ 1..M æä¹åï¼ç´¯è®¡åæ¯åæ¯=å»å¹´ 1..M æï¼**åå²åé¶åå**ï¼æ æé¦æ¥æä¸²ï¼`#REF!`=0 | |
| | | | éªæ¶ L2 䏿ºè¡¨ | 8 个å¯è§å°è´¦é¡µ | **彿ä¸å¡æºè¡¨** | éæ ¼ diff=0ï¼å·®å¼é¡»éæ¡ç»è®ºå¹¶ç¾æ ¸ | |
| | | | éªæ¶ L3 å
é¨å¾ç¨½ | å
¨ç°¿ | ç± L2 æ¨å¯¼ | å
¨ç=Σå¸å·ï¼ç´¯è®¡=Σåæï¼æå/å æ¯èªæ´½ | |
| | | | éªæ¶ L4 è·¨ææ¥è¦ | å
¨ç°¿ | 䏿件 | åå£å¾ç¯æ¯è¶
éå¼ï¼é»è®¤ ±30%ãåºæ°â¥100ï¼å³æç¤º | |
| | | |
| | | **ç½ååæºå¶**ï¼å·²ç¥ä¸å·²è§£éç差弿¾å¼ç»è®°ï¼è½®æ¸¡åå½¢æãæ¯ç模æ¿éçæ¥æå¼ãæºè¡¨èªå¸¦èå¼è¢«æ¸
空â¦ï¼ï¼**ç½ååä¹å¤ä»»ä½å·®å¼ï¼ä¸éè¿**ï¼ä¸åé äººå·¥éæ¡è§£éã |
| | | |
| | | **两å¥ååç对åºå
³ç³»**ï¼éè¦ï¼ï¼ |
| | | |
| | | | éªæ¶åå± | è¦ç第äºèçåªä¸æ®µ | |
| | | |---|---| |
| | | | éªæ¶ L1 ç»ææè¨ | 龿¡ L2ï¼ååå±ï¼ä¸ºä¸» | |
| | | | éªæ¶ L2 䏿ºè¡¨/å®ç¨¿ | 龿¡ L3ï¼åºè¡¨å±ï¼ï¼æºè¡¨å¯ç¨æ¶ä¹è¦ç L0 çç»æ | |
| | | | éªæ¶ L3 å
é¨å¾ç¨½ | 龿¡ L4ï¼åæé¡µï¼ | |
| | | | éªæ¶ L4 è·¨ææ¥è¦ | 龿¡ L1 ç"ç¯æ¯å¼å¸¸"使£ | |
| | | | **æªè¦ç** | **龿¡ L1 ç"SQL éç¹å¤ç®"å°æªèæ¬åï¼å¾
åï¼** | |
| | | |
| | | ## åãéè¿æ åä¸ä¸æ¡çºªå¾ |
| | | |
| | | - **éè¿**ï¼åå±å
¨è¿ + ç½ååå¤é¶å·®å¼ï¼**任䏿ªè¦ç â ç»è®ºåªè½å"æªè¦ç"ï¼ä¸å¾å"å·²éªè¯"**ã |
| | | - çºªå¾ â **ç¬ç«åç
§**ï¼åæºäºæ¯çäºæ²¡éªï¼ï¼â¡**䏿¬¡åªæ¢ä¸ä¸ªåé**ï¼æ¢ä»£ç /æ¢æ°æ®/æ¢æ¯çåå¼éªï¼ï¼â¢**å·®å¼å
åç±»åç»è®º**ï¼ç»æ/æ ¼å¼/æµ®ç¹å°¾å·®åªè®¡æ°ï¼å®è´¨æ°å¼å·®å¼è¿æ¸
åï¼ã |
| | | - 责任边çï¼ç¨åºä¿è¯"**䏿¬é + 䏿ºè¡¨ä¸è´ + å¯è¿½æº¯**"ï¼**æ°æ®æ¬èº«çæ£ç¡®æ§**ç±å¯¼å
¥å®¡æ ¸ + ä¸å¡å£å¾ç¡®è®¤ + æ¯æç¾æ ¸è´è´£ã |
| | | |
| | | ## äºãå¾
åï¼æä¼å
çº§ï¼ |
| | | |
| | | 1. 龿¡ L1 ç **SQL éç¹å¤ç®èæ¬å**ï¼å
¨ç + 2 å¸å·ï¼è¦ç è§ä¸/è§ä¸/å计/å¨è½¬é/ä¸å£å¾/åå¸å
ï¼ã |
| | | 2. **åå²åç
§å¼å
¥åº**ãæ¯çåªççå¼ï¼10-08 已宿¹åï¼ã |
| | | 3. 轮渡å 8 æ ¼å£å¾ç¡®è®¤ï¼å½ååç½ååï¼ï¼è·¨å¹´ï¼2027-01ï¼æ©åè§åï¼"ç¼ºå½ææ¯çæ¶èªå¨æ©å"æ¥ä¸»é¾ã |
| | | |
| | | ## å
ããçº¦å® 8 æ¡ãvs ç°ç¶ vs ç°åæ³ï¼2026-10-13 æ ¸å®ï¼ |
| | | |
| | | | # | 约å®å¯ä»¥åç
§ç | åäºå | ç°å¨å®é
æä¹å | |
| | | |---|---|---|---| |
| | | | 1 | æéå¢é¿å â F10 æææéæ©å | â
| æ©åå¨å·²å®ç°ï¼åºç¨¿å `_cache\summaryWorkbook_<æ>_month_v*.xlsx`ï¼**æªæ¥ä¸»é¾**ï¼`resolveSummaryMother` åªç²¾ç¡®å¹é
ï¼â æ¯æä»éäººå·¥ä¸æ¥ï¼æ©åâ确认è½çâçæï¼ | |
| | | | 2 | 表头/è¡æ ç¾è¯ä¹å®ä½ | ð§ | å·²åï¼è¡¨å¤´å¨æå®ä½ãæãA å¸å·å + B ææ ææ¡ãå®ä½è¡ãæ©åæåºåæä»½åå¤è¡¨å¤´ã累计/ç´¯è®¡åæ¯æè¡¨å¤´é建ï¼2026-10-13 æ°å¢ï¼ãæªåï¼é¡µè§å表 `SummarySheetRule`ï¼ç¨å¯å弿¿ä»£ï¼ | |
| | | | 3 | è¾åºèµ°æ¨¡æ¿æä»¶ | â
| å¤å¶æ¯ç â åå¡«/è¿å â æåé¡µææ¯çæ é¢æ ¼å¯¹é½æ¬å â 7 æ é¢é¡µæ period ç°å | |
| | | | 4 | å£å¾å¤ç½®æè¡¨ | ⬠| åæ»å¨ä»£ç /æ¯çï¼ç³»æ° `2ã10`ãæåå£å¾ã缺æ°ç½®ç©ºè§å | |
| | | | 5 | 精度ç»ä¸ï¼DECIMAL+BigDecimalï¼ | ⬠| ä»èµ° doubleï¼å·²å F1 å
¨ç²¾åº¦ï¼ä¸¤ä½å°æ°æ¾ç¤ºãæ¯çææ¬æ°åå½ä¸ | |
| | | | 6 | 䏤鶿®µç¡®è®¤ï¼åªè¯»æ ¸å¯¹ | â
ï¼ç¯èä¸åï¼ | åäºå¨å¯¼å
¥ä¾§åï¼æä»¬å¨**çæä¾§**åï¼ç¼ºæ°æ¸
åï¼è´§è¿ä½æ£ï¼å¯¼åºåå¼¹çªï¼ãæ°æ®ç¼ºå¤±æ¸
åã页ï¼ã**导å
¥ä¾§ä»æ¯éå¤å¯¼å
¥ç´æ¥è¦ç** | |
| | | | 7 | äºç»´è¡¨ä¸å±èè´£ | ð§ | åå§å¼ â
ï¼å¯¼å
¥è¡¨é½å
¨ï¼ï¼é
ç½®å¼ãäººå·¥è°æ´å¼**åæ è¡¨**ï¼**Excel 仿¿æ
åå²å¼åå¨**ï¼2025 åç
§å¼å¨æ¯çéï¼ | |
| | | | 8 | äººå·¥è°æ´å¼åç¬å»ºè¡¨ï¼è¦çå±ï¼ | ⬠| é `_å¤ä»½_`/`_bak_` æ¯ç + äººå·¥æ¹æ¯çå
| |
| | | |
| | | **ä¸å¯ç
§æ¬ 3 æ¡çæ§è¡**ï¼ä¸æ Excel 彿°æ®æº â
ï¼ä¸å¡æ°æ®èµ° DBï¼ä½åå²åç
§å¼ä»å¨æ¯ç â ï¸ï¼ï¼æ¯çåªççå¼ â¬ï¼ç¬ç«ãæ°å¹´ç»ãé»è¾ âï¼è·¨å¹´ `month>=12` æéï¼ã |
| | | |
| | | ## ä¸ã任塿¸
åï¼å 3 æ¡ + èªå»º 3 æ¡ï¼ |
| | | |
| | | **ååäºç**ï¼â è¯ä¹å®ä½ï¼æ¯å¯¹ä¸å®ä½é½ä¸ç¡¬ç¼ç åéç¹ï¼ï¼â¡ åç
§å¼å
¥åºãæ¯çåªççå¼ï¼é¶æ®µ 2 æ ¸å¿ï¼ï¼â¢ å£å¾ä¸äººå·¥è°æ´å¤ç½®æè¡¨ + è¦çå±ççï¼è¦çå¼+åå +æ¶é´ï¼ã |
| | | **èªå»º**ï¼â£ **SQL éç¹å¤ç®**ï¼é¾æ¡ L1ï¼å¯ä¸è½åç°"æºè¡¨èªèº«é"çå±ï¼ï¼â¤ **L2 æ¯å¯¹è¦çè¡¥é½**ï¼ç线å
车/ç½çº¦è½¦/è´§è¿ï¼ç¨è¯ä¹æ å°ï¼ï¼â¥ **L4 è·¨æé弿¥è¦**ï¼å·²å®ç°ï¼ã |
| | | |
| | | ## å
«ã2026-10-13 è¯ä¹æ¯å¯¹ç»æï¼æ°å¢èæ¬ `æ±æ»è¡¨è¯ä¹æ¯å¯¹.py`ï¼ |
| | | |
| | | æãè¡=å¸å·+ææ ãå=å¹´+æ+ç±»åãå½ä½åæ¯å¯¹ 2026-09 çæä»¶ ä¸ æ¡é¢æºè¡¨ï¼ |
| | | |
| | | | é¡µç¾ | 坿¯è¡ | å·®å¼ | ç»è®º | |
| | | |---|---|---|---| |
| | | | ç线å
车 | 54 | **0** | â
å被"表头å¸å±ä¸å"è·³è¿ï¼ç°å¯æ¯ä¸å®å
¨ä¸è´ | |
| | | | å
¬äº¤ / åºç§ / åå¸å®¢è¿ / å
¬è·¯æ»å®¢è¿ / 轨éã轮渡 | 72/69/36/36/10 | **0** | â
| |
| | | | ç½çº¦è½¦ | 72 | 8 | â ï¸ å
¨ç 4 ä¸ªææ ç 2026-09 å½æå¼ = çæ 0ãæºè¡¨æå¼ï¼4997.74 / 29166.70 / 4571.18 / 23367.09ï¼ï¼åæ¯ = **-100%**ãå±**åºå
9 æç½çº¦è½¦ç¼ºæ°**ï¼è®¢å/pin æªå¯¼ï¼ï¼éç®é â **ä½"ç¼ºæ°æåæ¯æ¾ç¤º -100%"åºæ¹ä¸ºç空**ï¼å¾
å¤çï¼ | |
| | | | ä¸å£å¾æç» / ä¸å£å¾å®¢è¿é | 181 | 62 / 22 | å·®å¼å
¨ä¸º `çæ=None / æº='#DIV/0!'` â **æºè¡¨èå¼è¢«æ¸
空**ï¼çæä»¶æ´å¹²åï¼ | |
| | | |
| | | **ç»è®º**ï¼æè¯ä¹æ¯å¯¹è¡¥ä¸åï¼`ç线å
车` å¯è¯å®ä¸è´ï¼`ç½çº¦è½¦` çå·®å¼å¯å½å å°"缺æ°"ï¼ä¸å±äºç®éã |