| docs/process_feedback_wait_countdown_integration.md | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| docs/process_feedback_wait_countdown_remind_integration.md | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| docs/product_receipt_auto_stock_integration.md | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
docs/process_feedback_wait_countdown_integration.md
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,116 @@ # æ¥å·¥çå¾ æ¶é¿åè®¡æ¶ + æ¥å·¥æ°éå¯é - å端èè°æ¹æ¡ ## æ¶åé¡µé¢ - å·¥åºç®¡çï¼`src/views/mes/pro/process`ï¼è¡¨å `modules/form.vue`ï¼ - å¿«éæ¥å·¥ï¼`src/views/mes/pro/workorder-center/modules/quick-feedback.vue`ï¼ - æ¥å·¥è¡¨åï¼`src/views/mes/pro/feedback/modules/form.vue`ï¼ - ç产任å¡ç¸å ³å±ç¤ºï¼å表/详æ ï¼æ¥å·¥å计æ¶ç¶æå±ç¤ºï¼ ## ä¸å¡æµç¨ä¸æ°æ®å¸¦å ¥ 1. **å·¥åºä¸»æ°æ®é ç½®**ï¼å¨å·¥åºç®¡ç页é¢ä¸ºå·¥åºé ç½®ãçå¾ æ¶é¿ï¼å°æ¶ï¼ãä¸ãæ¯å¦éè¦å¡«åæ¥å·¥æ°éã两个æ°å段ãåæ®µä¿åå°å·¥åºä¸»æ°æ®ï¼`mes_pro_process`ï¼ï¼ææå¼ç¨è¯¥å·¥åºçå·¥èºè·¯çº¿å ±ç¨ã 2. **æ¥å·¥çé¢è¯»åå·¥åºé ç½®**ï¼æ¥å·¥è¡¨åï¼æ°å¢/ç¼è¾ï¼éæ©ä»»å¡åï¼éè¿ `getRouteProcessByRouteAndProcess(routeId, processId)`ï¼ç°æè°ç¨ï¼æåå·¥åºé ç½®ï¼ååºæ°å¢è¿å `waitDuration`ã`needReportQuantity`ã - `waitDuration > 0`ï¼è¯¥å·¥åºæ¥å·¥åå¿ é¡»å ç¹å»ãå¼å§å计æ¶ãï¼å计æ¶ç»ææè½æ¥å·¥ã - `needReportQuantity = false`ï¼æ¥å·¥æ°éå 许为空ï¼ä¸æ¾ç¤ºæ°éè¾å ¥é¡¹ãä¸å"å¿ é¡»å¤§äº 0"æ ¡éªï¼ã 3. **å¼å§å计æ¶**ï¼æä½åç¹å»ãå¼å§å计æ¶ãâ è°ç¨æ°æ¥å£ `startWaitCountdown` â å端æå½åæ¶é´åå ¥ä»»å¡ï¼`mes_pro_task.wait_start_time`ï¼ã 4. **ä»»å¡ç¶æåæ¾**ï¼ä»»å¡å表/详æ ååºæ°å¢ `waitStartTime` åæ®µï¼å端ç¨äºå±ç¤ºå计æ¶ç¶æï¼å·²å¼å§/è¿è¡ä¸/å·²ç»æï¼ã 5. **æäº¤æ¥å·¥**ï¼æ¥å·¥æäº¤ï¼å¿«éæ¥å·¥ / æ¥å·¥è¡¨åæäº¤ / 审æ¹éè¿ï¼æ¶ï¼å端ç»ä¸æ ¡éªçå¾ æ¶é¿ä¸æ°éè§åã ## API | æ¹æ³ | è·¯å¾ | 说æ | |------|------|------| | POST | `/mes/pro/task/start-wait-countdown` | å¼å§æ¥å·¥å计æ¶ï¼è®°å½å¼å§æ¶é´å°ä»»å¡ï¼ | | GET | `/mes/pro/route/process/get-by-route-and-process` | ç°ææ¥å£ï¼ååºæ°å¢ `waitDuration`/`needReportQuantity` | ### æ°å¢æ¥å£ï¼å¼å§æ¥å·¥åè®¡æ¶ **请æ±åæ°ï¼** | åæ° | ç±»å | å¿ å¡« | 说æ | |------|------|------|------| | taskId | Long | æ¯ | ç产任å¡ç¼å·ï¼POST body JSON ä¼ éï¼ | **请æ±ç¤ºä¾ï¼** ```json { "taskId": 35 } ``` **ååºï¼** è¿åå计æ¶å¼å§æ¶é´ï¼`yyyy-MM-dd HH:mm:ss`ï¼ã **ååºç¤ºä¾ï¼** ```json { "code": 0, "data": "2026-08-29 10:30:00" } ``` **ä¸å¡åç½®æ ¡éªï¼å端ï¼ï¼** | åºæ¯ | ç»æ | |------|------| | ä»»å¡ä¸åå¨ / å·²ç»æï¼å®æãåæ¶ï¼ | æ¥éï¼ä»»å¡å¼å¸¸ï¼ | | ä»»å¡å·²åå·¥ | æ¥éï¼åå·¥ä¸è½æ¥å·¥ï¼ | | å·¥åºæªé ç½®çå¾ æ¶é¿ï¼ä¸ºç©ºæ 0ï¼ | æ¥éãè¯¥å·¥åºæªé ç½®çå¾ æ¶é¿ï¼æ éå计æ¶ã | | å·¥åºå·²é ç½®çå¾ æ¶é¿ | æåï¼è®°å½å¼å§æ¶é´ï¼éå¤ç¹å»ä¼é置为å½åæ¶é´ | ### ç°ææ¥å£ååºå段æ°å¢ **`get-by-route-and-process` ååºæ°å¢å段ï¼** | åæ®µ | ç±»å | 说æ | |------|------|------| | waitDuration | BigDecimal | çå¾ æ¶é¿ï¼å°æ¶ï¼ã>0 表示æ¥å·¥åéå计æ¶çå¾ | | needReportQuantity | Boolean | æ¯å¦éè¦å¡«åæ¥å·¥æ°éã`false`=æ¥å·¥æ°éå 许为空 | **ç产任å¡ç¸å ³ååºæ°å¢å段ï¼å表/详æ /ä»»å¡éæ©ç»ä»¶ï¼ï¼** | åæ®µ | ç±»å | 说æ | |------|------|------| | waitStartTime | LocalDateTime | æ¥å·¥å计æ¶å¼å§æ¶é´ãä¸ºç©ºè¡¨ç¤ºå°æªå¼å§åè®¡æ¶ | **å·¥åºä¸»æ°æ®ä¿å/ååºæ°å¢å段ï¼** | åæ®µ | ç±»å | 说æ | |------|------|------| | waitDuration | BigDecimal | çå¾ æ¶é¿ï¼å°æ¶ï¼ï¼æ¥å·¥åéå计æ¶çå¾ | | needReportQuantity | Boolean | æ¯å¦éè¦å¡«åæ¥å·¥æ°é | ## åæ®µå±ç¤ºè§å | åæ®µ | å±ç¤ºä½ç½® | 说æ | |------|----------|------| | çå¾ æ¶é¿ï¼å°æ¶ï¼ | å·¥åºç®¡ç表å | æ°åè¾å ¥ï¼å°æ°æå¤ 2 ä½ï¼ç空/0 è¡¨ç¤ºè¯¥å·¥åºæ¥å·¥æ éåè®¡æ¶ | | æ¯å¦éè¦å¡«åæ¥å·¥æ°é | å·¥åºç®¡ç表å | å¼å ³ãå ³éåè¯¥å·¥åºæ¥å·¥æ°éå 许为空 | | å¾ æ¥å·¥æ°é | å¿«éæ¥å·¥ / æ¥å·¥è¡¨å | ç°æåæ®µãè¥å·¥åºæ éå¡«åæ°éï¼æ¥å·¥æ°éè¾å ¥é¡¹å¯ä¸æ¾ç¤º | | æ¬æ¬¡æ¥å·¥æ°é | å¿«éæ¥å·¥ / æ¥å·¥è¡¨å | æå·¥åºé ç½®å³å®æ¯å¦å¿ å¡«/å¯ç©º | | å¼å§åè®¡æ¶ æé® + å计æ¶å©ä½æ¶é´ | å¿«éæ¥å·¥ / æ¥å·¥è¡¨å | å·¥åºé ç½®çå¾ æ¶é¿æ¶å±ç¤ºï¼ç¹å»åå±ç¤ºå计æ¶å©ä½æ¶é´ | | å计æ¶ç¶æ | ç产任å¡å表/详æ ï¼å¯éï¼ | 便® `waitStartTime` ä¸å½åæ¶é´è®¡ç®å©ä½æ¶é´ | ## ä¸å¡è§å说æ | åºæ¯ | è§å | |------|------| | å·¥åº `waitDuration` 为空æ 0 | æ¥å·¥æ éå计æ¶ï¼åæµç¨ä¸å | | å·¥åº `waitDuration > 0`ï¼ä»»å¡æªç¹ãå¼å§å计æ¶ã | æ¥å·¥æ¥éã该工åºè®¾ç½®äºçå¾ æ¶é¿ï¼è¯·å ç¹å»"å¼å§å计æ¶"ã | | å·¥åº `waitDuration > 0`ï¼åè®¡æ¶æªç»æ | æ¥å·¥æ¥éãçå¾ åè®¡æ¶æªç»æï¼è¿éçå¾ Xå°æ¶Xåéã | | å·¥åº `waitDuration > 0`ï¼å计æ¶å·²ç»æ | 坿£å¸¸æ¥å·¥ï¼å¼å§æ¶é´è®°å½å¨ä»»å¡ä¸ï¼æ¯ä»»å¡ä¸æ¬¡ | | éå¤ç¹å»ãå¼å§å计æ¶ã | éç½®å¼å§æ¶é´ä¸ºå½åæ¶é´ | | å·¥åº `needReportQuantity = true` ææªé ç½® | æ¥å·¥æ°éå¿ é¡» > 0ï¼åé»è¾ï¼ | | å·¥åº `needReportQuantity = false` | æ¥å·¥æ°éå 许为空/0ï¼åç«¯è·³è¿æ°éæ ¡éªï¼å®¡æ¹æ¶ä¸çæäº§åºå/æ¹æ¬¡ï¼ä¸æ£åå²ç©æï¼ä» 宿æ¥å·¥ | | å计æ¶éç¨èå´ | æå·¥åºå¤æï¼å¼å§æ¶é´è®°å½å°ç产任å¡ï¼æ¯ä»»å¡ä¸æ¬¡ | ## 注æäºé¡¹ - çå¾ æ¶é¿åä½åºå®ä¸º**å°æ¶**ï¼å端è¾å ¥æ¶æ³¨æåä½æç¤ºï¼ç¤ºä¾ `2.00` 表示 2 å°æ¶ï¼`0.5` 表示 30 åéï¼ã - å计æ¶å¼å§æ¶é´è®°å½å¨**ç产任å¡**ä¸ï¼ä¸å·¥åºçå¾ æ¶é¿ï¼ä¸»æ°æ®ï¼åå¼ç»´æ¤ï¼ä¿®æ¹å·¥åºçå¾ æ¶é¿ä¸å½±åå·²å¼å§çä»»å¡å计æ¶ã - è¥å·¥åºé ç½®äºçå¾ æ¶é¿ä½ä»»å¡æªå¼å§å计æ¶ï¼ç´æ¥æäº¤æ¥å·¥ä¼è¢«åç«¯æ¦æªï¼å建ãå¿«éæ¥å·¥ã审æ¹éè¿ä¸å¤å ¥å£é½æ ¡éªï¼ã - å¿«éæ¥å·¥å½å为æ°éå¿ å¡«ï¼æ¥å ¥åéæ `needReportQuantity` è°æ´ã请è¾å ¥æ¥å·¥æ°éãçå¿ å¡«æ ¡éªä¸æ°éè¾å ¥æ¡å±ç¤ºã - æ¥å·¥æ°é为空/0 çæ¥å·¥ï¼ä¸ä¼çæäº§åºå/æ¹æ¬¡ãä¸ä¼å岿£æï¼ä» ææ¥å·¥æ è®°ä¸ºå·²å®æå¹¶æ´æ°ä»»å¡è¿åº¦ï¼è¯·å¨å端ç¸åºéèæ°éç¸å ³å±ç¤ºï¼é¿å 误导ã - æ¥å·¥è¡¨åç¼è¾/å®¡æ¹æ¶ä»»å¡å¯è½å·²è¿çå¾ æï¼æ¤æ¶æ éåå计æ¶å³å¯æäº¤ã docs/process_feedback_wait_countdown_remind_integration.md
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,47 @@ # æ¥å·¥å计æ¶ç³»ç»æ¶æ¯æéï¼10åé / 5åé / ç»æï¼ - å端èè°æ¹æ¡ ## æ¶åé¡µé¢ - æ åç«¯é¡µé¢æ¹å¨ãæéç±**åç«¯å®æ¶ä»»å¡**èªå¨åéå°**ç³»ç»ç«å ä¿¡ï¼æ¶æ¯ä¸å¿ï¼**ï¼æä½åå¨ç«å ä¿¡å表æ¥çå³å¯ã ## è¯´æ æ¥å·¥å计æ¶è®¾ç½®ç³»ç»æ¶æ¯æéï¼åä¸ä¸ªç级èªå¨åéç«å ä¿¡ï¼ | ç级 | è§¦åæ¶æº | ç«å ä¿¡æ¨¡æ¿ code | |------|----------|-----------------| | 1 | å计æ¶å©ä½ ⤠10 åé | `mes_task_wait_remind_10` | | 2 | å计æ¶å©ä½ ⤠5 åé | `mes_task_wait_remind_5` | | 3 | å计æ¶ç»æï¼å©ä½ ⤠0ï¼ | `mes_task_wait_remind_end` | å端æ°å¢å®æ¶ä»»å¡ï¼**æ¯åéæ«æä¸æ¬¡**ææå·²å¼å§å计æ¶ï¼`waitStartTime` é空ï¼ä¸æªç»æãæªåå·¥çæ¥å·¥ä»»å¡ï¼å°è¾¾å¯¹åºæ¶é´ç¹èªå¨åéç«å ä¿¡ã ## ç«å ä¿¡å 容 | æ¨¡æ¿ code | å å®¹ç¤ºä¾ | |-----------|----------| | `mes_task_wait_remind_10` | ç产任å¡ã{taskCode}ã{taskName} æ¥å·¥å计æ¶å©ä½ 10 åéï¼è¯·å夿¥å·¥ã | | `mes_task_wait_remind_5` | ç产任å¡ã{taskCode}ã{taskName} æ¥å·¥å计æ¶å©ä½ 5 åéï¼å³å°å¯ä»¥æ¥å·¥ã | | `mes_task_wait_remind_end` | ç产任å¡ã{taskCode}ã{taskName} æ¥å·¥å计æ¶å·²ç»æï¼å¯ä»¥è¿è¡æ¥å·¥ã | å ä½ç¬¦ï¼`taskCode`ï¼ä»»å¡ç¼ç ï¼ã`taskName`ï¼ä»»å¡åç§°ï¼ã`processName`ï¼å·¥åºåç§°ï¼ã ## æ¥æ¶äºº 1. **ä¼å **ï¼ä»»å¡æå®çæ¥å·¥äººåï¼`mes_pro_task_assignee`ï¼ï¼å ¨é¨åéã 2. **å åº**ï¼ä»»å¡æªæå®æ¥å·¥äººåæ¶ï¼åç»ä»»å¡å建人ã ## ä¸å¡è§å说æ | åºæ¯ | è§å | |------|------| | å·¥åºçå¾ æ¶é¿ä¸è¶³ 10 åéï¼å¦ 5 åéï¼ | å¼å§å计æ¶åç«å³è§¦å"10 åé"ä¸"5 åé"æéï¼å©ä½ä¸è¶³å³æéï¼ | | éå¤ç¹å»"å¼å§å计æ¶"éç½®æ¶é´ | æéææ°çå¼å§æ¶é´éæ°è®¡ç®ï¼éæ°è§¦åä¸è½®æé | | ä»»å¡å·²å®æ / 已忶 / å·²åå·¥ | ä¸åæ«ææé | | åä¸ç级åä¸è½®åè®¡æ¶ | åªæé䏿¬¡ï¼Redis å»éï¼24 å°æ¶ï¼ | ## 注æäºé¡¹ - æé为**ç³»ç»ç«å ä¿¡**ï¼æä½åå¨ç³»ç»æ¶æ¯ä¸å¿æ¥çï¼æ å¼¹çª/æ å端æ¥å£è°ç¨ã - ç«å 信模æ¿å¯å¨ãç³»ç»ç®¡ç â ç«å 信模æ¿ã䏿 code æ¥ç/ä¿®æ¹å 容ã - 该åè½ä¸ºæ°å¢ï¼ä¸å½±ååææ¥å·¥åè®¡æ¶æ¥å·¥æ ¡éªé»è¾ã docs/product_receipt_auto_stock_integration.md
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,111 @@ # æ¥å·¥èªå¨çæäº§åå ¥åºå + å¾éå ¥åº + ä¸åæ ¼ä»åºå åº - å端èè°æ¹æ¡ ## æ¶åé¡µé¢ - 产åå ¥åºï¼`src/views/wls/productreceipt`ï¼å表 `index.vue` + 表å `modules/form.vue`ãè¡ `modules/line-list.vue`ã䏿¶æç» `modules/detail-form.vue`ï¼ - æ¥å·¥å®¡æ¹ï¼ä» æ°æ®æ¥æºï¼æ éæ¹å¨ï¼å®¡æ¹éè¿åèªå¨çæå ¥åºåï¼ ## ä¸å¡æµç¨ä¸æ°æ®å¸¦å ¥ 1. **æ¥å·¥å®¡æ¹ â èªå¨çæå ¥åºå**ï¼æ¥å·¥å®¡æ¹éè¿åï¼å端èªå¨çæä¸æ¡äº§åå ¥åºåï¼`mes_wm_product_receipt`ï¼ï¼ä¸æ¬¡æ¥å·¥=䏿¡å ¥åºåï¼å¹çï¼ã 2. **è¡ = 产åºè¡**ï¼å ¥åºåè¡æ¥èªçäº§å ¥åºå产åºè¡ï¼`mes_wm_product_produce_line`ï¼ï¼æåæ ¼/ä¸åæ ¼åè¡ï¼æ¯è¡èªå¨å¸¦å ¥ `itemId`ã`quantity`ï¼äº§åºæ°éï¼ã`batchId/batchCode`ã`qualityStatus`ï¼è´¨éç¶æåæ ¼/ä¸åæ ¼ï¼ï¼é»è®¤ `isStock=false`ï¼æªå¾éå ¥åºï¼ã 3. **ä¸ä¸ªæ°éä¸è¡**ï¼äº§åå ¥åºé¡µè¡¨æ ¼æ"ä¸è¡=ä¸ä¸ªæ°é"å±ç¤ºï¼è¡å³æ¬æ¬¡æ¥å·¥çä¸ä¸ªäº§åºæ°éï¼åæ ¼è¡/ä¸åæ ¼è¡å䏿¡ï¼ã 4. **æ§è¡å ¥åºåå¾é**ï¼å¨ãå¾ ä¸æ¶ãç¶æçå ¥åºåä¸ï¼æ¯è¡å¾é"æ¯å¦å ¥åº"ï¼å¾éå ¥åºçè¡å±å¼ä¸çº§ï¼ä»åºâåºåºâåºä½ï¼å¤éå¹¶åé æ°éã 5. **æ§è¡ä¸æ¶ä¿å**ï¼è°ç¨æ°æ¥å£ `submit-stock` ä¿åæ¯è¡çå¾éç¶æä¸ä»åº/åºåº/åºä½åé ã 6. **æ§è¡å ¥åºå åº**ï¼æ§è¡å ¥åºæ¶ï¼æªå¾éå ¥åºçè¡æåé æ°éä¸è¶³çè¡ï¼å©ä½æ°éèªå¨è¿ãä¸åæ ¼ä»åºãï¼ä¸çº§ï¼DEFECT_WAREHOUSE / DEFECT_LOCATION / DEFECT_AREAï¼ï¼æ¯ä¸ªæ°éçæä¸æ¡æµæ°´ï¼åºèæçº¿è¾¹åº + å ¥å®é /ä¸åæ ¼ä»åºï¼ã ## API | æ¹æ³ | è·¯å¾ | 说æ | |------|------|------| | POST | `/mes/wm/product-receipt/submit-stock` | æ¹é䏿¶ï¼å¾éæ¯å¦å ¥åº + ä»åº/åºåº/åºä½åé æ°éï¼ï¼æ°å¢ | | PUT | `/mes/wm/product-receipt/submit` | æäº¤ï¼è稿 â å¾ ä¸æ¶ï¼ï¼ç°æ | | PUT | `/mes/wm/product-receipt/stock` | æ§è¡ä¸æ¶ï¼å¾ 䏿¶ â å¾ æ§è¡å ¥åºï¼ï¼ç°æ | | PUT | `/mes/wm/product-receipt/finish` | æ§è¡å ¥åºï¼å¾ æ§è¡å ¥åº â 已宿ï¼ï¼ç°æ | ### æ°å¢æ¥å£ï¼æ¹é䏿¶ **请æ±åæ°ï¼`submit-stock`ï¼ï¼** | åæ° | ç±»å | å¿ å¡« | 说æ | |------|------|------|------| | receiptId | Long | æ¯ | 产åå ¥åºåç¼å· | | rows | List\<Row\> | æ¯ | è¡ä¸æ¶å表 | | rows[].lineId | Long | æ¯ | å ¥åºåè¡ç¼å· | | rows[].isStock | Boolean | æ¯ | æ¯å¦å ¥åºï¼true=å¾éå ¥åºå¹¶åé ä»åº/åºä½ï¼false=æ§è¡å ¥åºæ¶èªå¨è¿ä¸åæ ¼ä»åºï¼ | | rows[].details | List\<Detail\> | æ¡ä»¶ | isStock=true æ¶å¿ é¡»ï¼æ¯ä¸ªåé 䏿¡ï¼æ°éä¹å=è¡æ¶è´§æ°é | | details[].warehouseId | Long | æ¯ | ä»åºç¼å· | | details[].locationId | Long | æ¯ | åºåºç¼å· | | details[].areaId | Long | æ¯ | åºä½ç¼å· | | details[].quantity | BigDecimal | æ¯ | åé æ°é | **请æ±ç¤ºä¾ï¼** ```json { "receiptId": 1, "rows": [ { "lineId": 11, "isStock": true, "details": [ { "warehouseId": 1, "locationId": 1, "areaId": 1, "quantity": 60 }, { "warehouseId": 1, "locationId": 2, "areaId": 2, "quantity": 40 } ] }, { "lineId": 12, "isStock": false } ] } ``` **ååºï¼** `{ "code": 0, "data": true }` ### ç°ææ¥å£ååºå段æ°å¢ **产åå ¥åºå详æ /å页ååºï¼RespVOï¼æ°å¢ï¼** | åæ®µ | ç±»å | 说æ | |------|------|------| | feedbackId | Long | æ¥æºæ¥å·¥ç¼å·ãéç©ºè¡¨ç¤ºç±æ¥å·¥èªå¨çæï¼ä¸å¯æå·¥æ¹è¡ | **产åå ¥åºåè¡ååºï¼LineRespVOï¼æ°å¢ï¼** | åæ®µ | ç±»å | 说æ | |------|------|------| | qualityStatus | Integer | è´¨éç¶æãåå ¸ `MES_WM_QUALITY_STATUS`ï¼åæ ¼/ä¸åæ ¼ï¼ï¼èªå¨çæçå ¥åºåè¡å¸¦å ¥ | | isStock | Boolean | æ¯å¦å ¥åºï¼false/空=æ§è¡å ¥åºæ¶é»è®¤è¿ä¸åæ ¼ä»åºï¼ | ## åæ®µå±ç¤ºè§å | åæ®µ | å±ç¤ºä½ç½® | 说æ | |------|----------|------| | æ¥å·¥æ¥æº | å表 | æ `feedbackId` çå ¥åºåå¯å±ç¤º"èªå¨çæ"æ è¯ | | è´¨éç¶æ | è¡è¡¨æ ¼ | å±ç¤ºåæ ¼/ä¸åæ ¼ï¼æ¥èªäº§åº | | æ¯å¦å ¥åº | è¡è¡¨æ ¼ | æ¯è¡ä¸ä¸ªå¾éï¼ä» å¾ ä¸æ¶ç¶æå¯æ¹ï¼ï¼å¾éåå±å¼ä»åº/åºåº/åºä½åé | | ä»åº/åºåº/åºä½ | è¡å±å¼æç» | ä¸çº§çº§èéæ©ï¼å¯å¤éï¼æ¯æ¡æç»ä¸ä¸ªæ°é | | åé æ°é | è¡å±å¼æç» | å¾éå ¥åºçè¡è¦æ±åé æ°éä¹å = è¡æ¶è´§æ°é | | å©ä½æ°é | è¡å±å¼æç» | è¡æ¶è´§æ°é - å·²åé æ°éï¼æ§è¡å ¥åºæ¶å©ä½èªå¨è¿ä¸åæ ¼ä»åº | ## ä¸å¡è§å说æ | åºæ¯ | è§å | |------|------| | æ¥å·¥å®¡æ¹éè¿ï¼æ è´¨æ£ï¼ | èªå¨çæå ¥åºåï¼è¡=åæ ¼/ä¸åæ ¼äº§åºè¡ï¼ç¶æ=è稿 | | æ¥å·¥å®¡æ¹éè¿ï¼è´¨æ£ï¼IPQC 宿åï¼ | èªå¨çæå ¥åºåï¼è¡=åæ ¼/ä¸åæ ¼æåè¡ | | éå¤è§¦åå䏿¥å·¥ | å¹çï¼å·²åå¨åä¸åçæç¬¬äºæ¡ | | isStock=false ææªåé å® | æ§è¡å ¥åºæ¶å©ä½æ°éèªå¨è¿ä¸åæ ¼ä»åº | | isStock=true ä½åé æ°éä¹å â è¡æ¶è´§æ°é | æ¥éãå¾éå ¥åºçåé æ°éä¸è¡æ¶è´§æ°éä¸ä¸è´ã | | ä¸åæ ¼ä»åºæªé ç½® | æ§è¡å ¥åºæ¥éãæªé ç½®ä¸åæ ¼ä»åºï¼è¯·å å建 DEFECT_WAREHOUSE ä»åºã | | æ§è¡å ¥åº | æ¯æ¡æç»çæä¸æ¡æµæ°´ï¼åºèæçº¿è¾¹åº + å ¥å®é /ä¸åæ ¼ä»åºï¼ï¼ä¸ä¸ªæ°é=䏿¡æµæ°´ | | èªå¨çæçå ¥åºå | è¡ä¸å¯æå·¥å¢å æ¹ï¼å¯æ´ååæ¶ï¼ï¼æå·¥å建çå ¥åºåä¸åå½±å | ## 注æäºé¡¹ - å¾ ä¸æ¶ç¶ææå 许å¾é"æ¯å¦å ¥åº"ä¸åé ä»åº/åºä½ï¼æ§è¡ä¸æ¶ä¿ååç¶æåä¸ºå¾ æ§è¡å ¥åºã - å¾éå ¥åºçè¡å¿ é¡»åé 宿´æ°éï¼åªåé ä¸é¨åæ¶ï¼å©ä½é¨åæ§è¡å ¥åºä»ä¼è¿ä¸åæ ¼ä»åºã - ä¸åæ ¼æ°éé»è®¤ä¸å¾éå ¥åºï¼è¿ä¸åæ ¼ä»åºï¼ï¼åæ ¼æ°éç±æä½åå³å®æ¯å¦å ¥åºåå ¥åªä¸ªä»åºã - èªå¨çæçå ¥åºå `qualityStatus` ç±äº§åºè¡å¸¦å ¥ï¼è¡æ¬èº«ä¸å¯ä¿®æ¹ï¼å¦éè°æ´å ¥åºå»åï¼éè¿å¾éä¸åé å®ç°ã - å ¥åºæµæ°´ä»¥"æ°é"为åä½ï¼åä¸è¡åå°ä¸åä»åº/åºä½ï¼ä¸æ¡æç»å¯¹åºä¸æ¡ OUTï¼èæçº¿è¾¹åºï¼+ INï¼å®é ä»åºï¼æµæ°´ã