From 34ad8ad8e238d54d9695da9e8d101579c42516bb Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期六, 18 四月 2026 22:40:02 +0800
Subject: [PATCH] fix(RobotJob): 修正机器人任务处理逻辑和注释错误

---
 Code/WCS/WIDESEAWCS_Server/docs/换盘任务流程图.md |  291 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 291 insertions(+), 0 deletions(-)

diff --git "a/Code/WCS/WIDESEAWCS_Server/docs/\346\215\242\347\233\230\344\273\273\345\212\241\346\265\201\347\250\213\345\233\276.md" "b/Code/WCS/WIDESEAWCS_Server/docs/\346\215\242\347\233\230\344\273\273\345\212\241\346\265\201\347\250\213\345\233\276.md"
new file mode 100644
index 0000000..2defd1b
--- /dev/null
+++ "b/Code/WCS/WIDESEAWCS_Server/docs/\346\215\242\347\233\230\344\273\273\345\212\241\346\265\201\347\250\213\345\233\276.md"
@@ -0,0 +1,291 @@
+# 鎹㈢洏浠诲姟瀹屾暣娴佺▼鍒嗘瀽
+
+## 浠诲姟鍙傛暟
+
+| 鍙傛暟 | 鍊� |
+|------|-----|
+| 娴佸悜 | **Flow A** (isFlowA = true, 婧愬湴鍧� LineCode = "11001") |
+| 婧愬湴鍧� | 11001 |
+| 鐩爣鍦板潃 | 2101 |
+| 姝e父鐢佃姱鏁伴噺 | **33** |
+| 鍋囩數鑺暟閲� | 48 - 33 = **15** |
+| 鐩爣鎬绘暟 | 48 |
+
+---
+
+## 闃舵鐘舵�佸畾涔�
+
+| Phase | 鍚箟 |
+|-------|------|
+| 0 | 鏈紑濮� |
+| 1 | 鍙栨甯哥數鑺� |
+| 2 | 鏀炬甯哥數鑺� |
+| 3 | 鍙栧亣鐢佃姱锛團low A: 浠�5鍙蜂綅鍙栵級 |
+| 4 | 鏀惧亣鐢佃姱锛團low A: 鏀惧埌鐩爣鎵樼洏锛� |
+| 5 | 绛夊緟鍏ュ簱瀹屾垚 |
+
+---
+
+## 瀹屾暣浠g爜鎵ц娴佺▼锛�33 姝e父 + 15 鍋� = 48 鎬昏锛�
+
+### 鍒濆鐘舵��
+
+```
+ChangePalletPhase = 0
+currentCompletedCount = 0
+targetNormalCount = 33
+```
+
+---
+
+### 绗�1杞細Pick 1-4 姝e父鐢佃姱
+
+| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 |
+|------|------|-------|---------------------|----------------|------|
+| 1 | HandlePutFinishedStateAsync | 1 | 0 | 33 - 0 = **33** | PickBatch(1, 4) 鈫� Phase=2 |
+| 2 | (鏈烘鎵嬫墽琛屽彇璐�) | - | - | - | - |
+| 3 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished, task鐘舵��=RobotPickFinish |
+| 4 | HandlePickFinishedStateAsync | 2 | 0 | 33 - 0 = **33** | PutBatch(1, 4) 鈫� Phase=1 |
+| 5 | (鏈烘鎵嬫墽琛屾斁璐�) | - | - | - | - |
+| 6 | HandlePutFinishedAsync | - | **4** | - | currentCompletedCount+=4, task.RobotTaskTotalNum-=4 |
+
+---
+
+### 绗�2杞細Pick 5-8 姝e父鐢佃姱
+
+| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 |
+|------|------|-------|---------------------|----------------|------|
+| 7 | HandlePutFinishedStateAsync | 1 | 4 | 33 - 4 = **29** | PickBatch(5, 8) 鈫� Phase=2 |
+| 8 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished |
+| 9 | HandlePickFinishedStateAsync | 2 | 4 | 33 - 4 = **29** | PutBatch(1, 4) 鈫� Phase=1 |
+| 10 | HandlePutFinishedAsync | - | **8** | - | currentCompletedCount+=4 |
+
+---
+
+### 绗�3杞細Pick 9-12 姝e父鐢佃姱
+
+| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 |
+|------|------|-------|---------------------|----------------|------|
+| 11 | HandlePutFinishedStateAsync | 1 | 8 | 33 - 8 = **25** | PickBatch(9, 12) 鈫� Phase=2 |
+| 12 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished |
+| 13 | HandlePickFinishedStateAsync | 2 | 8 | 33 - 8 = **25** | PutBatch(1, 4) 鈫� Phase=1 |
+| 14 | HandlePutFinishedAsync | - | **12** | - | currentCompletedCount+=4 |
+
+---
+
+### 绗�4杞細Pick 13-16 姝e父鐢佃姱
+
+| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 |
+|------|------|-------|---------------------|----------------|------|
+| 15 | HandlePutFinishedStateAsync | 1 | 12 | 33 - 12 = **21** | PickBatch(13, 16) 鈫� Phase=2 |
+| 16 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished |
+| 17 | HandlePickFinishedStateAsync | 2 | 12 | 33 - 12 = **21** | PutBatch(1, 4) 鈫� Phase=1 |
+| 18 | HandlePutFinishedAsync | - | **16** | - | currentCompletedCount+=4 |
+
+---
+
+### 绗�5杞細Pick 17-20 姝e父鐢佃姱
+
+| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 |
+|------|------|-------|---------------------|----------------|------|
+| 19 | HandlePutFinishedStateAsync | 1 | 16 | 33 - 16 = **17** | PickBatch(17, 20) 鈫� Phase=2 |
+| 20 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished |
+| 21 | HandlePickFinishedStateAsync | 2 | 16 | 33 - 16 = **17** | PutBatch(1, 4) 鈫� Phase=1 |
+| 22 | HandlePutFinishedAsync | - | **20** | - | currentCompletedCount+=4 |
+
+---
+
+### 绗�6杞細Pick 21-24 姝e父鐢佃姱
+
+| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 |
+|------|------|-------|---------------------|----------------|------|
+| 23 | HandlePutFinishedStateAsync | 1 | 20 | 33 - 20 = **13** | PickBatch(21, 24) 鈫� Phase=2 |
+| 24 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished |
+| 25 | HandlePickFinishedStateAsync | 2 | 20 | 33 - 20 = **13** | PutBatch(1, 4) 鈫� Phase=1 |
+| 26 | HandlePutFinishedAsync | - | **24** | - | currentCompletedCount+=4 |
+
+---
+
+### 绗�7杞細Pick 25-28 姝e父鐢佃姱
+
+| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 |
+|------|------|-------|---------------------|----------------|------|
+| 27 | HandlePutFinishedStateAsync | 1 | 24 | 33 - 24 = **9** | PickBatch(25, 28) 鈫� Phase=2 |
+| 28 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished |
+| 29 | HandlePickFinishedStateAsync | 2 | 24 | 33 - 24 = **9** | PutBatch(1, 4) 鈫� Phase=1 |
+| 30 | HandlePutFinishedAsync | - | **28** | - | currentCompletedCount+=4 |
+
+---
+
+### 绗�8杞細Pick 29-32 姝e父鐢佃姱
+
+| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 |
+|------|------|-------|---------------------|----------------|------|
+| 31 | HandlePutFinishedStateAsync | 1 | 28 | 33 - 28 = **5** | PickBatch(29, 32) 鈫� Phase=2 |
+| 32 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished |
+| 33 | HandlePickFinishedStateAsync | 2 | 28 | 33 - 28 = **5** | PutBatch(1, 4) 鈫� Phase=1 |
+| 34 | HandlePutFinishedAsync | - | **32** | - | currentCompletedCount+=4 |
+
+---
+
+### 绗�9杞細Pick 33 姝e父鐢佃姱锛堟渶鍚�1涓級
+
+| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 |
+|------|------|-------|---------------------|----------------|------|
+| 35 | HandlePutFinishedStateAsync | 1 | 32 | 33 - 32 = **1** | PickBatch(33, 33) 鈫� Phase=2 |
+| 36 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished |
+| 37 | HandlePickFinishedStateAsync | 2 | 32 | 33 - 32 = **1** | PutBatch(33, 33) 鈫� Phase=1 |
+| 38 | HandlePutFinishedAsync | - | **33** | - | currentCompletedCount+=1 |
+
+---
+
+### 绗�10杞細姝e父鐢佃姱鍏ㄩ儴瀹屾垚 鈫� 鍒囨崲 Phase 3
+
+| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingNormal | 鎿嶄綔 |
+|------|------|-------|---------------------|----------------|------|
+| 39 | HandlePutFinishedStateAsync | 1 | **33** | 33 - 33 = **0** 鈫� 鈮�0 | **鍒囨崲 Phase=3**, Pick fake from 5鍙蜂綅 |
+
+> **Flow A 鐗规��**锛氭甯哥數鑺彇瀹屽悗锛屾簮鎵樼洏锛�11001锛夊凡绌恒�傛鏃舵満姊版墜鎼哄甫鏈�鍚庝竴鎵规甯哥數鑺斁鍒扮洰鏍囨墭鐩樺悗锛屾簮鎵樼洏鑷姩绌哄嚭鍥炲簱銆備唬鐮佷腑涓嶉渶瑕佹樉寮忓鐞嗚繖涓洖搴撳姩浣溾�斺�旂敱杈撻�佺嚎鑷姩瀹屾垚銆�
+
+---
+
+### 绗�11杞細Pick 1-4 鍋囩數鑺紙浠�5鍙蜂綅锛�
+
+| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingFake | 鎿嶄綔 |
+|------|------|-------|---------------------|--------------|------|
+| 40 | HandlePutFinishedStateAsync | 3 | 33 | 15 - 0 = **15** | Pick fake from 5鍙蜂綅(1,4) 鈫� Phase=4 |
+| 41 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished |
+| 42 | HandlePickFinishedStateAsync | 4 | 33 | 15 - 0 = **15** | Put fake to target(BatchStart=34, 4涓�) 鈫� Phase=3 |
+| 43 | HandlePutFinishedAsync | - | **37** | - | currentCompletedCount+=4 |
+
+---
+
+### 绗�12杞細Pick 5-8 鍋囩數鑺�
+
+| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingFake | 鎿嶄綔 |
+|------|------|-------|---------------------|--------------|------|
+| 44 | HandlePutFinishedStateAsync | 3 | 37 | 15 - 4 = **11** | Pick fake from 5鍙蜂綅(5,8) 鈫� Phase=4 |
+| 45 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished |
+| 46 | HandlePickFinishedStateAsync | 4 | 37 | 15 - 4 = **11** | Put fake to target(BatchStart=38, 4涓�) 鈫� Phase=3 |
+| 47 | HandlePutFinishedAsync | - | **41** | - | currentCompletedCount+=4 |
+
+---
+
+### 绗�13杞細Pick 9-12 鍋囩數鑺�
+
+| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingFake | 鎿嶄綔 |
+|------|------|-------|---------------------|--------------|------|
+| 48 | HandlePutFinishedStateAsync | 3 | 41 | 15 - 8 = **7** | Pick fake from 5鍙蜂綅(9,12) 鈫� Phase=4 |
+| 49 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished |
+| 50 | HandlePickFinishedStateAsync | 4 | 41 | 15 - 8 = **7** | Put fake to target(BatchStart=42, 4涓�) 鈫� Phase=3 |
+| 51 | HandlePutFinishedAsync | - | **45** | - | currentCompletedCount+=4 |
+
+---
+
+### 绗�14杞細Pick 13-15 鍋囩數鑺紙鏈�鍚�3涓級
+
+| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingFake | 鎿嶄綔 |
+|------|------|-------|---------------------|--------------|------|
+| 52 | HandlePutFinishedStateAsync | 3 | 45 | 15 - 12 = **3** | Pick fake from 5鍙蜂綅(13,15) 鈫� Phase=4 |
+| 53 | HandlePickFinishedAsync | - | - | - | CurrentAction=PickFinished |
+| 54 | HandlePickFinishedStateAsync | 4 | 45 | 15 - 12 = **3** | Put fake to target(BatchStart=46, 3涓�) 鈫� Phase=3 |
+| 55 | HandlePutFinishedAsync | - | **48** | - | currentCompletedCount+=3 |
+
+---
+
+### 绗�15杞細鍋囩數鑺叏閮ㄥ畬鎴� 鈫� 鍒囨崲 Phase 5
+
+| 姝ラ | 鏂规硶 | Phase | currentCompletedCount | remainingFake | 鎿嶄綔 |
+|------|------|-------|---------------------|--------------|------|
+| 56 | HandlePutFinishedStateAsync | 3 | **48** | 15 - 15 = **0** 鈫� 鈮�0 | **鍒囨崲 Phase=5**, 绛夊緟鍏ュ簱 |
+
+---
+
+### 绗�16杞細鍏ㄩ儴鏀捐揣瀹屾垚 鈫� 鍏ュ簱
+
+| 姝ラ | 鏂规硶 | Phase | 鎿嶄綔 |
+|------|------|-------|------|
+| 57 | HandlePutFinishedAsync | - | PutFinished 鈫� allputfinished |
+| 58 | ExecuteAsync | - | 妫�娴� allputfinished 鈫� RobotSimpleCommandHandler 澶勭悊 |
+| 59 | RobotSimpleCommandHandler | **5** | Phase=5 鈫� 璋冪敤 HandleInboundTaskAsync(useSourceAddress=false) 鍏ュ簱鍒� **HCSC1** |
+| 60 | - | - | 鍒犻櫎浠诲姟璁板綍锛岄噸缃姸鎬侊紝鍙戦�� "Group,diskFinished" |
+
+---
+
+## 鏁版嵁娴佹眹鎬�
+
+### currentCompletedCount 鍙樺寲
+
+```
+0 鈫� 4 鈫� 8 鈫� 12 鈫� 16 鈫� 20 鈫� 24 鈫� 28 鈫� 32 鈫� 33 鈫� 37 鈫� 41 鈫� 45 鈫� 48
+ |    |    |    |    |    |    |    |    |    |    |    |    |    |
+ 姝e父鐢佃姱鎵规                  姝e父瀹屾垚   鍋囩數鑺壒娆�                      鎬诲畬鎴�
+ (姣忔壒4涓�)                     +0        (姣忔壒4涓�)                    +3
+```
+
+### Phase 鍒囨崲鍥�
+
+```
+Phase=0 鈹�鈹�(鍒濆鍖�)鈹�鈹�鈻� Phase=1 鈹�鈹�鈻� Phase=2 鈹�鈹�鈻� Phase=1 鈹�鈹�鈻� ... 鈹�鈹�鈻� Phase=1
+                       (Pick 1-4)   (Put 1-4)    (Pick 5-8)         (Pick 33)
+                                                    鈫�
+                                              Phase=2 鈹�鈹�鈻� ... 鈹�鈹�鈻� Phase=2
+                                              (Put 5-8)              (Put 33)
+                                                    鈫�
+                               鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
+                               鈹�        Phase=1  (remainingNormal=0)   鈹�
+                               鈹�              鈫�                      鈹�
+                               鈹�        Phase=3 (鍙栧亣鐢佃姱)             鈹�
+                               鈹�     Pick fake 鈫� Phase=4 鈫� Put fake    鈹�
+                               鈹�              鈫�                        鈹�
+                               鈹�        鐩村埌 remainingFake=0          鈹�
+                               鈹�              鈫�                      鈹�
+                               鈹�        Phase=5 (鍏ュ簱)               鈹�
+                               鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
+```
+
+### 鍏抽敭鏁版嵁瀵圭収琛�
+
+| 杞 | Phase | 鎿嶄綔 | currentCompletedCount | remainingNormal | remainingFake | 鍙戦�佹寚浠� |
+|------|-------|------|---------------------|----------------|--------------|---------|
+| 1 | 1鈫�2 | Pick 1-4 | 0 | 33 | - | PickBatch(1,4) |
+| 1 | 2鈫�1 | Put 1-4 | 4 | 33 | - | PutBatch(1,4) |
+| 2 | 1鈫�2 | Pick 5-8 | 4 | 29 | - | PickBatch(5,8) |
+| 2 | 2鈫�1 | Put 5-8 | 8 | 29 | - | PutBatch(1,4) |
+| 3 | 1鈫�2 | Pick 9-12 | 8 | 25 | - | PickBatch(9,12) |
+| 3 | 2鈫�1 | Put 9-12 | 12 | 25 | - | PutBatch(1,4) |
+| 4 | 1鈫�2 | Pick 13-16 | 12 | 21 | - | PickBatch(13,16) |
+| 4 | 2鈫�1 | Put 13-16 | 16 | 21 | - | PutBatch(1,4) |
+| 5 | 1鈫�2 | Pick 17-20 | 16 | 17 | - | PickBatch(17,20) |
+| 5 | 2鈫�1 | Put 17-20 | 20 | 17 | - | PutBatch(1,4) |
+| 6 | 1鈫�2 | Pick 21-24 | 20 | 13 | - | PickBatch(21,24) |
+| 6 | 2鈫�1 | Put 21-24 | 24 | 13 | - | PutBatch(1,4) |
+| 7 | 1鈫�2 | Pick 25-28 | 24 | 9 | - | PickBatch(25,28) |
+| 7 | 2鈫�1 | Put 25-28 | 28 | 9 | - | PutBatch(1,4) |
+| 8 | 1鈫�2 | Pick 29-32 | 28 | 5 | - | PickBatch(29,32) |
+| 8 | 2鈫�1 | Put 29-32 | 32 | 5 | - | PutBatch(1,4) |
+| 9 | 1鈫�2 | Pick 33 | 32 | 1 | - | PickBatch(33,33) |
+| 9 | 2鈫�1 | Put 33 | 33 | 0 | - | PutBatch(33,33) |
+| 10 | 1鈫�**3** | **鍒囨崲** | 33 | **0** | 15 | Pick fake(5鍙蜂綅 1-4) |
+| 11 | 3鈫�4 | Pick fake 1-4 | 33 | 0 | 15 | PickBattery,5,1-4 |
+| 11 | 4鈫�3 | Put fake 34-37 | 37 | 0 | 11 | PutBatch(34,37) |
+| 12 | 3鈫�4 | Pick fake 5-8 | 37 | 0 | 11 | PickBattery,5,5-8 |
+| 12 | 4鈫�3 | Put fake 38-41 | 41 | 0 | 7 | PutBatch(38,41) |
+| 13 | 3鈫�4 | Pick fake 9-12 | 41 | 0 | 7 | PickBattery,5,9-12 |
+| 13 | 4鈫�3 | Put fake 42-45 | 45 | 0 | 3 | PutBatch(42,45) |
+| 14 | 3鈫�4 | Pick fake 13-15 | 45 | 0 | 3 | PickBattery,5,13-15 |
+| 14 | 4鈫�3 | Put fake 46-48 | 48 | 0 | 0 | PutBatch(46,48) |
+| 15 | 3鈫�**5** | **鍒囨崲** | 48 | 0 | **0** | 绛夊緟鍏ュ簱 |
+| 16 | 5 | **鍏ュ簱** | - | - | - | allputfinished 鈫� HandleInboundTaskAsync 鈫� HCSC1 |
+
+---
+
+## 浠g爜鑱岃矗瀵圭収
+
+| 鏂规硶 | 浣曟椂璋冪敤 | 鑱岃矗 |
+|------|---------|------|
+| HandlePutFinishedStateAsync | `ExecuteAsync` 妫�娴� PutFinished | 鍙戦�� **Pick** 鎸囦护锛屾洿鏂� Phase |
+| HandlePickFinishedStateAsync | `ExecuteAsync` 妫�娴� PickFinished | 鍙戦�� **Put** 鎸囦护 |
+| HandlePickFinishedAsync | prefix command `pickfinished` | 鏇存柊鐘舵�� CurrentAction |
+| HandlePutFinishedAsync | prefix command `putfinished` | 鏇存柊 currentCompletedCount 璁℃暟 |
+| RobotSimpleCommandHandler | 鍛戒护 `allpickfinished` / `allputfinished` | 瑙﹀彂鍏ュ簱锛屾竻鐞嗙姸鎬� |

--
Gitblit v1.9.3