12 小时以前 453fece707fc1e611554fbb10125383eba01449a
feat(mes): 添加产品检验单Word导出功能

- 新增 MesQcProductReportWordBuilder 类实现 Word 文档构建
- 添加 /export-product-word 接口支持导出产品检验单 Word 格式
- 在文档中补充产品检验单导出的功能说明和流程图
- 修改应用配置中的数据库连接信息
- 更新检验报告相关的数据结构和接口文档
- 添加产品检验单 Word 导出的单元测试用例
已添加13个文件
已修改7个文件
4081 ■■■■■ 文件已修改
.image/09bc21b456252f6d27b9b9ef43252019.jpg 补丁 | 查看 | 原始文档 | blame | 历史
.playwright-mcp/IQC-20260917001-产品质量检验单.docx 补丁 | 查看 | 原始文档 | blame | 历史
.playwright-mcp/page-2026-09-18T06-13-00-160Z.yml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.playwright-mcp/page-2026-09-18T06-13-24-852Z.yml 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.playwright-mcp/page-2026-09-18T06-17-38-106Z.yml 170 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.playwright-mcp/page-2026-09-18T06-17-54-686Z.yml 701 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.playwright-mcp/page-2026-09-18T06-18-24-102Z.yml 437 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.playwright-mcp/page-2026-09-18T06-19-31-080Z.yml 701 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.playwright-mcp/page-2026-09-18T06-20-02-132Z.yml 437 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.playwright-mcp/page-2026-09-18T06-22-24-743Z.yml 504 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.playwright-mcp/page-2026-09-18T06-22-49-485Z.yml 437 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/project-business/data/flows.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/project-business/index.html 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/project-business/mermaid/05-quality-flow.mmd 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/indicatorresult/MesQcIndicatorResultController.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/indicatorresult/vo/MesQcQcReportRespVO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/indicatorresult/MesQcProductReportWordBuilder.java 326 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/indicatorresult/MesQcReportServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/indicatorresult/MesQcProductReportWordBuilderTest.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-server/src/main/resources/application-local.yaml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.image/09bc21b456252f6d27b9b9ef43252019.jpg
.playwright-mcp/IQC-20260917001-²úÆ·ÖÊÁ¿¼ìÑéµ¥.docx
Binary files differ
.playwright-mcp/page-2026-09-18T06-13-00-160Z.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
- generic [active]: å·¥ä¸šAI智造平台
.playwright-mcp/page-2026-09-18T06-13-24-852Z.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,190 @@
- generic [ref=e7]:
  - complementary [ref=e8]:
    - generic [ref=e9]:
      - generic [ref=e10] [cursor=pointer]
      - link "工业AI智造平台 å·¥ä¸šAI智造平台" [ref=e15] [cursor=pointer]:
        - /url: javascript:void 0
        - img "工业AI智造平台" [ref=e18]
        - generic [ref=e19]: å·¥ä¸šAI智造平台
      - menu [ref=e22]:
        - menuitem "首页" [ref=e23] [cursor=pointer]
        - listitem [ref=e30]:
          - generic [ref=e31] [cursor=pointer]: åŸºç¡€æ•°æ®
        - listitem [ref=e39]:
          - generic [ref=e40] [cursor=pointer]: é‡‡è´­ç®¡ç†
        - listitem [ref=e46]:
          - generic [ref=e47] [cursor=pointer]: è¥é”€ç®¡ç†
        - listitem [ref=e53]:
          - generic [ref=e54] [cursor=pointer]: è®¾å¤‡ç®¡ç†
        - listitem [ref=e61]:
          - generic [ref=e62] [cursor=pointer]: ä»“储物流
        - listitem [ref=e70]:
          - generic [ref=e71] [cursor=pointer]: å·¥è‰ºè®¾è®¡
        - listitem [ref=e78]:
          - generic [ref=e79] [cursor=pointer]: äº§å“è®¾è®¡
        - listitem [ref=e85]:
          - generic [ref=e86] [cursor=pointer]: ç”Ÿäº§ç®¡æŽ§
        - listitem [ref=e93]:
          - generic [ref=e94] [cursor=pointer]: è´¨é‡ç®¡ç†
          - list [ref=e593]:
            - menuitem "检测项设置" [ref=e594] [cursor=pointer]
            - menuitem "质检方案" [ref=e599] [cursor=pointer]
            - menuitem "待检任务" [ref=e604] [cursor=pointer]
            - menuitem "来料检验" [ref=e611] [cursor=pointer]
            - menuitem "过程检验" [ref=e616] [cursor=pointer]
            - menuitem "退料检验" [ref=e621] [cursor=pointer]
            - menuitem "出货检验" [ref=e626] [cursor=pointer]
            - menuitem "批次追溯" [ref=e631] [cursor=pointer]
            - menuitem "不合格品处理" [ref=e637] [cursor=pointer]
            - menuitem "常见缺陷" [ref=e642] [cursor=pointer]
        - listitem [ref=e100]:
          - generic [ref=e101] [cursor=pointer]: æŠ¥è¡¨ç®¡ç†
        - listitem [ref=e108]:
          - generic [ref=e109] [cursor=pointer]: å†³ç­–BI大屏
        - listitem [ref=e115]:
          - generic [ref=e116] [cursor=pointer]: ååŒåŠžå…¬
        - listitem [ref=e122]:
          - generic [ref=e123] [cursor=pointer]: äººåŠ›èµ„æº
        - listitem [ref=e129]:
          - generic [ref=e130] [cursor=pointer]: å”®åŽç®¡ç†
        - listitem [ref=e136]:
          - generic [ref=e137] [cursor=pointer]: åŸºç¡€è®¾æ–½
        - listitem [ref=e143]:
          - generic [ref=e144] [cursor=pointer]: ç³»ç»Ÿç®¡ç†
      - generic [ref=e151] [cursor=pointer]
  - generic [ref=e156]:
    - generic [ref=e157]:
      - banner [ref=e158]:
        - button [ref=e159] [cursor=pointer]
        - button [ref=e162] [cursor=pointer]
        - navigation "breadcrumb" [ref=e167]:
          - list [ref=e168]:
            - listitem [ref=e169]:
              - link "首页" [disabled] [ref=e170]
        - generic [ref=e177]:
          - generic [ref=e179] [cursor=pointer]:
            - generic [ref=e183]: æœç´¢
            - generic [ref=e184]: Ctrl K
          - button [ref=e186] [cursor=pointer]
          - button "dark" [ref=e191] [cursor=pointer]
          - button [ref=e200] [cursor=pointer]
          - button [ref=e206] [cursor=pointer]
          - button [ref=e209] [cursor=pointer]
          - button [ref=e215] [cursor=pointer]:
            - button [ref=e217]
          - button "工作台" [ref=e221] [cursor=pointer]
          - button [ref=e225] [cursor=pointer]:
            - img "超级管理员" [ref=e230]
      - generic [ref=e232]:
        - generic [ref=e233]: é¦–页
        - generic [ref=e254]:
          - button [ref=e255] [cursor=pointer]
          - generic [ref=e262] [cursor=pointer]
          - generic [ref=e266] [cursor=pointer]
    - main [ref=e273]:
      - generic [ref=e276]:
        - generic [ref=e277]:
          - generic [ref=e278]:
            - heading "下午好,欢迎回来" [level=1] [ref=e279]
            - paragraph [ref=e280]: 2026å¹´9月18日 æ˜ŸæœŸäº”
          - generic [ref=e281]: ç³»ç»Ÿè¿è¡Œä¸­
        - generic [ref=e286]:
          - generic [ref=e295] [cursor=pointer]:
            - generic [ref=e296]: ç”Ÿäº§è®¢å•
            - generic [ref=e297]:
              - generic [ref=e298]: "0"
              - generic [ref=e300]: è¿›è¡Œä¸­
            - generic [ref=e301]:
              - text: å¾…排产 0
              - generic [ref=e303]: "|"
              - text: å·²å®Œæˆ 0
          - generic [ref=e315] [cursor=pointer]:
            - generic [ref=e316]: ä»Šæ—¥äº§é‡
            - generic [ref=e317]:
              - generic [ref=e318]: "0"
              - generic [ref=e320]: ä»¶
            - generic [ref=e321]: æ˜¨æ—¥ 0 ä»¶
          - generic [ref=e332] [cursor=pointer]:
            - generic [ref=e333]: è´¨é‡åˆæ ¼çއ
            - generic [ref=e334]:
              - generic [ref=e335]: "0.0"
              - generic [ref=e337]: "%"
            - generic [ref=e338]: åˆæ ¼ 0 | ä¸è‰¯ 0
          - generic [ref=e350] [cursor=pointer]:
            - generic [ref=e351]: è®¾å¤‡è¿è¡Œçއ
            - generic [ref=e352]:
              - generic [ref=e353]: "100.0"
              - generic [ref=e355]: "%"
            - generic [ref=e356]:
              - generic [ref=e357]: åœæœº 0
              - generic [ref=e358]: "|"
              - generic [ref=e359]: ç»´æŠ¤ 0
        - generic [ref=e362]:
          - generic [ref=e373] [cursor=pointer]:
            - generic [ref=e374]: é‡‡è´­è®¢å•
            - generic [ref=e375]:
              - generic [ref=e376]: "1"
              - generic [ref=e378]: ç¬”
            - generic [ref=e379]: ERP é‡‡è´­ç®¡ç†
          - generic [ref=e390] [cursor=pointer]:
            - generic [ref=e391]: é”€å”®è®¢å•
            - generic [ref=e392]:
              - generic [ref=e393]: "1"
              - generic [ref=e395]: ç¬”
            - generic [ref=e396]: ERP é”€å”®ç®¡ç†
          - generic [ref=e408] [cursor=pointer]:
            - generic [ref=e409]: ç‰©æ–™åº“å­˜
            - generic [ref=e410]:
              - generic [ref=e411]: "0"
              - generic [ref=e413]: æ¡
            - generic [ref=e414]: MES åº“存台账
          - generic [ref=e426] [cursor=pointer]:
            - generic [ref=e427]: æˆ‘的待办
            - generic [ref=e428]:
              - generic [ref=e429]: "0"
              - generic [ref=e431]: é¡¹
            - generic [ref=e432]: BPM å¾…审批
        - generic [ref=e435]:
          - generic [ref=e436]:
            - heading "AI æ™ºèƒ½åˆ†æž" [level=3] [ref=e437]
            - generic [ref=e438]: 0 ä¸ªå·¥å•可分析
          - generic [ref=e439]:
            - generic [ref=e447] [cursor=pointer]:
              - generic [ref=e448]: AI ç‰©æ–™é¢„测
              - generic [ref=e449]: é¢„测物料需求与短缺风险
            - generic [ref=e458] [cursor=pointer]:
              - generic [ref=e459]: AI æ—¶é•¿é¢„测
              - generic [ref=e460]: é¢„测各工序生产耗时
            - generic [ref=e467] [cursor=pointer]:
              - generic [ref=e468]: AI é£Žé™©é¢„测
              - generic [ref=e469]: è¯†åˆ«æ½œåœ¨ç”Ÿäº§é£Žé™©å¹¶ç»™å‡ºå»ºè®®
            - generic [ref=e479] [cursor=pointer]:
              - generic [ref=e480]: AI äº¤ä»˜è¯„ä¼°
              - generic [ref=e481]: è¯„估订单交付准时率与延期因素
        - generic [ref=e484]:
          - heading "生产趋势(近7天)" [level=3] [ref=e487]
          - generic [ref=e492]:
            - generic [ref=e493]:
              - generic [ref=e499] [cursor=pointer]:
                - generic [ref=e500]: å®‰ç¯å‘¼å«
                - generic [ref=e501]:
                  - generic [ref=e502]: "0"
                  - generic [ref=e504]: æœªå¤„ç½®
              - generic [ref=e510] [cursor=pointer]:
                - generic [ref=e511]: ç»´ä¿®å·¥å•
                - generic [ref=e512]:
                  - generic [ref=e513]: "0"
                  - generic [ref=e515]: å¾…处理
            - heading "工单状态分布" [level=4] [ref=e517]
        - generic [ref=e525]:
          - heading "快捷操作" [level=3] [ref=e526]
          - generic [ref=e527]:
            - generic [ref=e528] [cursor=pointer]: ç”Ÿäº§å·¥å•
            - generic [ref=e535] [cursor=pointer]: ç”Ÿäº§æŠ¥å·¥
            - generic [ref=e542] [cursor=pointer]: è´¨æ£€ç®¡ç†
            - generic [ref=e550] [cursor=pointer]: è®¾å¤‡ç‚¹æ£€
            - generic [ref=e557] [cursor=pointer]: ç”Ÿäº§æŽ’程
            - generic [ref=e564] [cursor=pointer]: å®‰ç¯å‘¼å«
            - generic [ref=e569] [cursor=pointer]: ç‰©æ–™åº“å­˜
            - generic [ref=e577] [cursor=pointer]: å·¥è‰ºè·¯çº¿
            - generic [ref=e585] [cursor=pointer]: æ•°æ®æŠ¥è¡¨
.playwright-mcp/page-2026-09-18T06-17-38-106Z.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,170 @@
- generic [ref=e7]:
  - complementary [ref=e8]:
    - generic [ref=e9]:
      - generic [ref=e10] [cursor=pointer]
      - link "工业AI智造平台 å·¥ä¸šAI智造平台" [ref=e15] [cursor=pointer]:
        - /url: javascript:void 0
        - img "工业AI智造平台" [ref=e18]
        - generic [ref=e19]: å·¥ä¸šAI智造平台
      - menu [ref=e22]:
        - menuitem "首页" [ref=e23] [cursor=pointer]
        - listitem [ref=e30]:
          - generic [ref=e31] [cursor=pointer]: åŸºç¡€æ•°æ®
        - listitem [ref=e39]:
          - generic [ref=e40] [cursor=pointer]: é‡‡è´­ç®¡ç†
        - listitem [ref=e46]:
          - generic [ref=e47] [cursor=pointer]: è¥é”€ç®¡ç†
        - listitem [ref=e53]:
          - generic [ref=e54] [cursor=pointer]: è®¾å¤‡ç®¡ç†
        - listitem [ref=e61]:
          - generic [ref=e62] [cursor=pointer]: ä»“储物流
        - listitem [ref=e70]:
          - generic [ref=e71] [cursor=pointer]: å·¥è‰ºè®¾è®¡
        - listitem [ref=e78]:
          - generic [ref=e79] [cursor=pointer]: äº§å“è®¾è®¡
        - listitem [ref=e85]:
          - generic [ref=e86] [cursor=pointer]: ç”Ÿäº§ç®¡æŽ§
        - listitem [ref=e93]:
          - generic [ref=e94] [cursor=pointer]: è´¨é‡ç®¡ç†
          - list [ref=e593]:
            - menuitem "检测项设置" [ref=e594] [cursor=pointer]
            - menuitem "质检方案" [ref=e599] [cursor=pointer]
            - menuitem "待检任务" [ref=e604] [cursor=pointer]
            - menuitem "来料检验" [active] [ref=e611] [cursor=pointer]
            - menuitem "过程检验" [ref=e616] [cursor=pointer]
            - menuitem "退料检验" [ref=e621] [cursor=pointer]
            - menuitem "出货检验" [ref=e626] [cursor=pointer]
            - menuitem "批次追溯" [ref=e631] [cursor=pointer]
            - menuitem "不合格品处理" [ref=e637] [cursor=pointer]
            - menuitem "常见缺陷" [ref=e642] [cursor=pointer]
        - listitem [ref=e100]:
          - generic [ref=e101] [cursor=pointer]: æŠ¥è¡¨ç®¡ç†
        - listitem [ref=e108]:
          - generic [ref=e109] [cursor=pointer]: å†³ç­–BI大屏
        - listitem [ref=e115]:
          - generic [ref=e116] [cursor=pointer]: ååŒåŠžå…¬
        - listitem [ref=e122]:
          - generic [ref=e123] [cursor=pointer]: äººåŠ›èµ„æº
        - listitem [ref=e129]:
          - generic [ref=e130] [cursor=pointer]: å”®åŽç®¡ç†
        - listitem [ref=e136]:
          - generic [ref=e137] [cursor=pointer]: åŸºç¡€è®¾æ–½
        - listitem [ref=e143]:
          - generic [ref=e144] [cursor=pointer]: ç³»ç»Ÿç®¡ç†
      - generic [ref=e151] [cursor=pointer]
  - generic [ref=e156]:
    - generic [ref=e157]:
      - banner [ref=e158]:
        - button [ref=e159] [cursor=pointer]
        - button [ref=e162] [cursor=pointer]
        - navigation "breadcrumb" [ref=e167]:
          - list [ref=e168]:
            - listitem [ref=e649]:
              - link "质量管理" [ref=e650] [cursor=pointer]:
                - /url: javascript:void 0
              - listitem [ref=e654]
            - listitem [ref=e657]:
              - link "来料检验" [disabled] [ref=e658]
        - generic [ref=e177]:
          - generic [ref=e179] [cursor=pointer]:
            - generic [ref=e183]: æœç´¢
            - generic [ref=e184]: Ctrl K
          - button [ref=e186] [cursor=pointer]
          - button "dark" [ref=e191] [cursor=pointer]
          - button [ref=e200] [cursor=pointer]
          - button [ref=e206] [cursor=pointer]
          - button [ref=e209] [cursor=pointer]
          - button [ref=e215] [cursor=pointer]:
            - button [ref=e217]
          - button "工作台" [ref=e221] [cursor=pointer]
          - button [ref=e225] [cursor=pointer]:
            - img "超级管理员" [ref=e230]
      - generic [ref=e232]:
        - generic [ref=e237]:
          - generic [ref=e238] [cursor=pointer]: é¦–页
          - generic [ref=e664] [cursor=pointer]: æ¥æ–™æ£€éªŒ
        - generic [ref=e254]:
          - button [ref=e255] [cursor=pointer]
          - generic [ref=e262] [cursor=pointer]
          - generic [ref=e266] [cursor=pointer]
    - main [ref=e273]:
      - generic [ref=e684]:
        - generic [ref=e689]:
          - generic [ref=e690]: æ£€éªŒå•编号
          - generic [ref=e693]:
            - generic [ref=e694]: ä¾›åº”商
            - generic [ref=e700] [cursor=pointer]:
              - combobox "供应商" [ref=e702]
              - generic: è¯·é€‰æ‹©ä¾›åº”商
          - generic [ref=e703]: ä¾›åº”商批次
          - generic [ref=e706]:
            - generic [ref=e707]: äº§å“ç‰©æ–™
            - textbox "请选择产品物料" [ref=e714]
          - generic [ref=e717]:
            - generic [ref=e718]: æ£€æµ‹ç»“æžœ
            - generic [ref=e724] [cursor=pointer]:
              - combobox "检测结果" [ref=e726]
              - generic: è¯·é€‰æ‹©æ£€æµ‹ç»“æžœ
          - generic [ref=e727]: æ¥æ–™æ—¥æœŸ
          - generic [ref=e730]: æ£€æµ‹æ—¥æœŸ
          - generic [ref=e733]:
            - generic [ref=e734]: æ£€æµ‹äººå‘˜
            - generic [ref=e740] [cursor=pointer]:
              - combobox "检测人员" [ref=e742]
              - generic: è¯·é€‰æ‹©æ£€æµ‹äººå‘˜
          - generic [ref=e743]: æ”¶èµ·
        - generic [ref=e751]:
          - generic [ref=e753]:
            - generic [ref=e754]: æ¥æ–™æ£€éªŒå•列表
            - generic [ref=e758]:
              - generic [ref=e760]:
                - button "新增来料检验单" [ref=e762] [cursor=pointer]
                - button "导出" [ref=e766] [cursor=pointer]
              - button "" [ref=e769] [cursor=pointer]
            - generic [ref=e771]:
              - button "" [ref=e772] [cursor=pointer]
              - button "" [ref=e774] [cursor=pointer]
              - button "" [ref=e776] [cursor=pointer]
          - generic [ref=e783]:
            - generic [ref=e784]:
              - table [ref=e788]:
                - rowgroup [ref=e805]:
                  - row [ref=e806]:
                    - columnheader "来料检验单编号" [ref=e807]
                    - columnheader "来料检验单名称" [ref=e812]
                    - columnheader "供应商简称" [ref=e817]
                    - columnheader "供应商批次号" [ref=e822]
                    - columnheader "产品物料编码" [ref=e827]
                    - columnheader "产品物料名称" [ref=e832]
                    - columnheader "接收数量" [ref=e837]
                    - columnheader "检测数量" [ref=e842]
                    - columnheader "不合格数" [ref=e847]
                    - columnheader "检测结果" [ref=e852]
                    - columnheader "来料日期" [ref=e857]
                    - columnheader "检测日期" [ref=e862]
                    - columnheader "检测人员" [ref=e867]
                    - columnheader "单据状态" [ref=e872]
              - generic [ref=e878]:
                - table:
                  - rowgroup
            - generic [ref=e880]:
              - table [ref=e883]:
                - rowgroup [ref=e900]:
                  - row [ref=e901]:
                    - columnheader "操作" [ref=e902]
              - generic [ref=e908]:
                - table:
                  - rowgroup
          - generic [ref=e921]:
            - generic [ref=e922]: å…± 0 æ¡è®°å½•
            - generic [ref=e924] [cursor=pointer]:
              - generic "20条/页" [ref=e925]:
                - textbox "请选择" [ref=e926]: 20条/页
              - generic [ref=e927]: î£­
            - button "" [ref=e930]
            - button "" [ref=e932]
            - button "" [ref=e934]
            - button "1" [ref=e937] [cursor=pointer]
            - button "" [ref=e938]
            - button "" [ref=e940]
            - button "" [ref=e942]
.playwright-mcp/page-2026-09-18T06-17-54-686Z.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,701 @@
- generic [ref=e4]:
  - generic [ref=e7]:
    - complementary [ref=e8]:
      - generic [ref=e9]:
        - generic [ref=e10] [cursor=pointer]
        - link "工业AI智造平台 å·¥ä¸šAI智造平台" [ref=e15] [cursor=pointer]:
          - /url: javascript:void 0
          - img "工业AI智造平台" [ref=e18]
          - generic [ref=e19]: å·¥ä¸šAI智造平台
        - menu [ref=e22]:
          - menuitem "首页" [ref=e23] [cursor=pointer]
          - listitem [ref=e30]:
            - generic [ref=e31] [cursor=pointer]: åŸºç¡€æ•°æ®
          - listitem [ref=e39]:
            - generic [ref=e40] [cursor=pointer]: é‡‡è´­ç®¡ç†
          - listitem [ref=e46]:
            - generic [ref=e47] [cursor=pointer]: è¥é”€ç®¡ç†
          - listitem [ref=e53]:
            - generic [ref=e54] [cursor=pointer]: è®¾å¤‡ç®¡ç†
          - listitem [ref=e61]:
            - generic [ref=e62] [cursor=pointer]: ä»“储物流
          - listitem [ref=e70]:
            - generic [ref=e71] [cursor=pointer]: å·¥è‰ºè®¾è®¡
          - listitem [ref=e78]:
            - generic [ref=e79] [cursor=pointer]: äº§å“è®¾è®¡
          - listitem [ref=e85]:
            - generic [ref=e86] [cursor=pointer]: ç”Ÿäº§ç®¡æŽ§
          - listitem [ref=e93]:
            - generic [ref=e94] [cursor=pointer]: è´¨é‡ç®¡ç†
            - list [ref=e593]:
              - menuitem "检测项设置" [ref=e594] [cursor=pointer]
              - menuitem "质检方案" [ref=e599] [cursor=pointer]
              - menuitem "待检任务" [ref=e604] [cursor=pointer]
              - menuitem "来料检验" [ref=e611] [cursor=pointer]
              - menuitem "过程检验" [ref=e616] [cursor=pointer]
              - menuitem "退料检验" [ref=e621] [cursor=pointer]
              - menuitem "出货检验" [ref=e626] [cursor=pointer]
              - menuitem "批次追溯" [ref=e631] [cursor=pointer]
              - menuitem "不合格品处理" [ref=e637] [cursor=pointer]
              - menuitem "常见缺陷" [ref=e642] [cursor=pointer]
          - listitem [ref=e100]:
            - generic [ref=e101] [cursor=pointer]: æŠ¥è¡¨ç®¡ç†
          - listitem [ref=e108]:
            - generic [ref=e109] [cursor=pointer]: å†³ç­–BI大屏
          - listitem [ref=e115]:
            - generic [ref=e116] [cursor=pointer]: ååŒåŠžå…¬
          - listitem [ref=e122]:
            - generic [ref=e123] [cursor=pointer]: äººåŠ›èµ„æº
          - listitem [ref=e129]:
            - generic [ref=e130] [cursor=pointer]: å”®åŽç®¡ç†
          - listitem [ref=e136]:
            - generic [ref=e137] [cursor=pointer]: åŸºç¡€è®¾æ–½
          - listitem [ref=e143]:
            - generic [ref=e144] [cursor=pointer]: ç³»ç»Ÿç®¡ç†
        - generic [ref=e151] [cursor=pointer]
    - generic [ref=e156]:
      - generic [ref=e157]:
        - banner [ref=e158]:
          - button [ref=e159] [cursor=pointer]
          - button [ref=e162] [cursor=pointer]
          - navigation "breadcrumb" [ref=e167]:
            - list [ref=e168]:
              - listitem [ref=e649]:
                - link "质量管理" [ref=e650] [cursor=pointer]:
                  - /url: javascript:void 0
                - listitem [ref=e654]
              - listitem [ref=e657]:
                - link "来料检验" [disabled] [ref=e658]
          - generic [ref=e177]:
            - generic [ref=e179] [cursor=pointer]:
              - generic [ref=e183]: æœç´¢
              - generic [ref=e184]: Ctrl K
            - button [ref=e186] [cursor=pointer]
            - button "dark" [ref=e191] [cursor=pointer]
            - button [ref=e200] [cursor=pointer]
            - button [ref=e206] [cursor=pointer]
            - button [ref=e209] [cursor=pointer]
            - button [ref=e215] [cursor=pointer]:
              - button [ref=e217]
            - button "工作台" [ref=e221] [cursor=pointer]
            - button [ref=e225] [cursor=pointer]:
              - img "超级管理员" [ref=e230]
        - generic [ref=e232]:
          - generic [ref=e237]:
            - generic [ref=e238] [cursor=pointer]: é¦–页
            - generic [ref=e664] [cursor=pointer]: æ¥æ–™æ£€éªŒ
          - generic [ref=e254]:
            - button [ref=e255] [cursor=pointer]
            - generic [ref=e262] [cursor=pointer]
            - generic [ref=e266] [cursor=pointer]
      - main [ref=e273]:
        - generic [ref=e684]:
          - generic [ref=e689]:
            - generic [ref=e690]:
              - generic [ref=e691]: æ£€éªŒå•编号
              - textbox "检验单编号" [ref=e948]:
                - /placeholder: è¯·è¾“入检验单编号
            - generic [ref=e693]:
              - generic [ref=e694]: ä¾›åº”商
              - generic [ref=e700] [cursor=pointer]:
                - combobox "供应商" [ref=e702]
                - generic: è¯·é€‰æ‹©ä¾›åº”商
            - generic [ref=e703]:
              - generic [ref=e704]: ä¾›åº”商批次
              - textbox "供应商批次" [ref=e954]:
                - /placeholder: è¯·è¾“入供应商批次号
            - generic [ref=e706]:
              - generic [ref=e707]: äº§å“ç‰©æ–™
              - textbox "请选择产品物料" [ref=e714]
            - generic [ref=e717]:
              - generic [ref=e718]: æ£€æµ‹ç»“æžœ
              - generic [ref=e724] [cursor=pointer]:
                - combobox "检测结果" [ref=e726]
                - generic: è¯·é€‰æ‹©æ£€æµ‹ç»“æžœ
            - generic [ref=e727]:
              - generic [ref=e728]: æ¥æ–™æ—¥æœŸ
              - generic [ref=e962]:
                - textbox "来料日期" [ref=e964]:
                  - /placeholder: å¼€å§‹æ—¶é—´
                - generic "to" [ref=e966]:
                  - img "swap-right" [ref=e967]
                - textbox "结束时间" [ref=e971]
                - generic:
                  - img "calendar"
            - generic [ref=e730]:
              - generic [ref=e731]: æ£€æµ‹æ—¥æœŸ
              - generic [ref=e975]:
                - textbox "检测日期" [ref=e977]:
                  - /placeholder: å¼€å§‹æ—¶é—´
                - generic "to" [ref=e979]:
                  - img "swap-right" [ref=e980]
                - textbox "结束时间" [ref=e984]
                - generic:
                  - img "calendar"
            - generic [ref=e733]:
              - generic [ref=e734]: æ£€æµ‹äººå‘˜
              - generic [ref=e740] [cursor=pointer]:
                - combobox "检测人员" [ref=e742]
                - generic: è¯·é€‰æ‹©æ£€æµ‹äººå‘˜
            - generic [ref=e743]:
              - button "重 ç½®" [ref=e985] [cursor=pointer]
              - button "搜 ç´¢" [ref=e987] [cursor=pointer]
              - generic [ref=e744] [cursor=pointer]: æ”¶èµ·
          - generic [ref=e751]:
            - generic [ref=e753]:
              - generic [ref=e754]: æ¥æ–™æ£€éªŒå•列表
              - generic [ref=e758]:
                - generic [ref=e760]:
                  - button "新增来料检验单" [ref=e762] [cursor=pointer]
                  - button "导出" [ref=e766] [cursor=pointer]
                - button "" [ref=e769] [cursor=pointer]
              - generic [ref=e771]:
                - button "" [ref=e772] [cursor=pointer]
                - button "" [ref=e774] [cursor=pointer]
                - button "" [ref=e776] [cursor=pointer]
            - generic [ref=e783]:
              - generic [ref=e784]:
                - table [ref=e788]:
                  - rowgroup [ref=e805]:
                    - row [ref=e806]:
                      - columnheader "来料检验单编号" [ref=e807]
                      - columnheader "来料检验单名称" [ref=e812]
                      - columnheader "供应商简称" [ref=e817]
                      - columnheader "供应商批次号" [ref=e822]
                      - columnheader "产品物料编码" [ref=e827]
                      - columnheader "产品物料名称" [ref=e832]
                      - columnheader "接收数量" [ref=e837]
                      - columnheader "检测数量" [ref=e842]
                      - columnheader "不合格数" [ref=e847]
                      - columnheader "检测结果" [ref=e852]
                      - columnheader "来料日期" [ref=e857]
                      - columnheader "检测日期" [ref=e862]
                      - columnheader "检测人员" [ref=e867]
                      - columnheader "单据状态" [ref=e872]
                - table [ref=e993]:
                  - rowgroup [ref=e1010]:
                    - row "IQC-DEMO-03 å£¬çƒ¯æ¥æ–™æ£€éªŒ-03 JN-20260918-A03 4 å£¬çƒ¯ 800 80 4 2026-09-17 2026-09-18 å¼ ä¸‰ å·²å®Œæˆ" [ref=e1011]:
                      - cell [ref=e1012]:
                        - button "IQC-DEMO-03" [ref=e1015] [cursor=pointer]
                      - cell "壬烯来料检验-03" [ref=e1017]
                      - cell [ref=e1021]
                      - cell "JN-20260918-A03" [ref=e1025]
                      - cell "4" [ref=e1029]
                      - cell "壬烯" [ref=e1033]
                      - cell "800" [ref=e1037]
                      - cell "80" [ref=e1041]
                      - cell "4" [ref=e1045]
                      - cell [ref=e1049]
                      - cell "2026-09-17" [ref=e1051]
                      - cell "2026-09-18" [ref=e1055]
                      - cell "张三" [ref=e1059]
                      - cell "已完成" [ref=e1063]
                    - row "IQC-DEMO-02 ç²¾è˜æ¥æ–™æ£€éªŒ-02 JN-20260918-A02 2 ç²¾è˜ 1500 150 0 æ ¡éªŒé€šè¿‡ 2026-09-17 2026-09-18 å¼ ä¸‰ å·²å®Œæˆ" [ref=e1067]:
                      - cell [ref=e1068]:
                        - button "IQC-DEMO-02" [ref=e1071] [cursor=pointer]
                      - cell "精萘来料检验-02" [ref=e1073]
                      - cell [ref=e1077]
                      - cell "JN-20260918-A02" [ref=e1081]
                      - cell "2" [ref=e1085]
                      - cell "精萘" [ref=e1089]
                      - cell "1500" [ref=e1093]
                      - cell "150" [ref=e1097]
                      - cell "0" [ref=e1101]
                      - cell "校验通过" [ref=e1105]
                      - cell "2026-09-17" [ref=e1109]
                      - cell "2026-09-18" [ref=e1113]
                      - cell "张三" [ref=e1117]
                      - cell "已完成" [ref=e1121]
                    - row "IQC-DEMO-01 ç²¾è˜æ¥æ–™æ£€éªŒ-01 JN-20260918-A01 2 ç²¾è˜ 2000 200 2 æ ¡éªŒé€šè¿‡ 2026-09-17 2026-09-18 å¼ ä¸‰ å·²å®Œæˆ" [ref=e1125]:
                      - cell [ref=e1126]:
                        - button "IQC-DEMO-01" [active] [ref=e1129] [cursor=pointer]
                      - cell "精萘来料检验-01" [ref=e1131]
                      - cell [ref=e1135]
                      - cell "JN-20260918-A01" [ref=e1139]
                      - cell "2" [ref=e1143]
                      - cell "精萘" [ref=e1147]
                      - cell "2000" [ref=e1151]
                      - cell "200" [ref=e1155]
                      - cell "2" [ref=e1159]
                      - cell "校验通过" [ref=e1163]
                      - cell "2026-09-17" [ref=e1167]
                      - cell "2026-09-18" [ref=e1171]
                      - cell "张三" [ref=e1175]
                      - cell "已完成" [ref=e1179]
                    - row "IQC_20260917001 ç²¾è˜æ¥æ–™æ£€éªŒ-0917 2 ç²¾è˜ 100 100 0 2026-09-17 2026-09-17 è¶…级管理员 è‰ç¨¿" [ref=e1183]:
                      - cell [ref=e1184]:
                        - button "IQC_20260917001" [ref=e1187] [cursor=pointer]
                      - cell "精萘来料检验-0917" [ref=e1189]
                      - cell [ref=e1193]
                      - cell [ref=e1197]
                      - cell "2" [ref=e1201]
                      - cell "精萘" [ref=e1205]
                      - cell "100" [ref=e1209]
                      - cell "100" [ref=e1213]
                      - cell "0" [ref=e1217]
                      - cell [ref=e1221]
                      - cell "2026-09-17" [ref=e1223]
                      - cell "2026-09-17" [ref=e1227]
                      - cell "超级管理员" [ref=e1231]
                      - cell "草稿" [ref=e1235]
              - generic [ref=e880]:
                - table [ref=e883]:
                  - rowgroup [ref=e900]:
                    - row [ref=e901]:
                      - columnheader "操作" [ref=e902]
                - table [ref=e1239]:
                  - rowgroup [ref=e1242]:
                    - row [ref=e1243]:
                      - cell [ref=e1244]:
                        - generic [ref=e1248]:
                          - button "详情" [ref=e1250] [cursor=pointer]
                          - button "质检报告" [ref=e1257] [cursor=pointer]
                    - row [ref=e1263]:
                      - cell [ref=e1264]:
                        - generic [ref=e1268]:
                          - button "详情" [ref=e1270] [cursor=pointer]
                          - button "质检报告" [ref=e1277] [cursor=pointer]
                    - row [ref=e1283]:
                      - cell [ref=e1284]:
                        - generic [ref=e1288]:
                          - button "详情" [ref=e1290] [cursor=pointer]
                          - button "质检报告" [ref=e1297] [cursor=pointer]
                    - row [ref=e1303]:
                      - cell [ref=e1304]:
                        - generic [ref=e1308]:
                          - button "修改" [ref=e1310] [cursor=pointer]
                          - button "删除" [ref=e1317] [cursor=pointer]
                          - button "详情" [ref=e1322] [cursor=pointer]
                          - button "质检报告" [ref=e1329] [cursor=pointer]
            - generic [ref=e921]:
              - generic [ref=e922]: å…± 4 æ¡è®°å½•
              - generic [ref=e924] [cursor=pointer]:
                - generic "20条/页" [ref=e925]:
                  - textbox "请选择" [ref=e926]: 20条/页
                - generic [ref=e927]: î£­
              - button "" [ref=e930]
              - button "" [ref=e932]
              - button "" [ref=e934]
              - button "1" [ref=e937] [cursor=pointer]
              - button "" [ref=e938]
              - button "" [ref=e940]
              - button "" [ref=e942]
  - dialog [ref=e1336]:
    - heading "查看来料检验单" [level=2] [ref=e1338]
    - generic [ref=e1340]:
      - generic [ref=e1342]:
        - generic [ref=e1343]:
          - generic [ref=e1344]:
            - generic [ref=e1345]: "*"
            - text: æ£€éªŒå•编号
          - generic [ref=e1349]:
            - textbox "* æ£€éªŒå•编号" [disabled] [ref=e1350]:
              - /placeholder: è¯·è¾“入检验单编号
              - text: IQC-DEMO-01
            - button "生 æˆ" [disabled] [ref=e1352]
        - generic [ref=e1354]:
          - generic [ref=e1355]:
            - generic [ref=e1356]: "*"
            - text: æ£€éªŒå•名称
          - textbox "* æ£€éªŒå•名称" [disabled] [ref=e1361]:
            - /placeholder: è¯·è¾“入检验单名称
            - text: ç²¾è˜æ¥æ–™æ£€éªŒ-01
        - generic [ref=e1362]:
          - generic [ref=e1363]:
            - generic [ref=e1364]: "*"
            - text: äº§å“ç‰©æ–™
          - textbox "请选择产品物料" [disabled] [ref=e1371]: ç²¾è˜
        - generic [ref=e1377]:
          - generic [ref=e1378]: ä¾›åº”商
          - generic [ref=e1384]:
            - combobox "供应商" [disabled] [ref=e1386]
            - generic: è¯·é€‰æ‹©ä¾›åº”商
        - generic [ref=e1387]:
          - generic [ref=e1388]: ä¾›åº”商批次号
          - textbox "供应商批次号" [disabled] [ref=e1393]:
            - /placeholder: è¯·è¾“入供应商批次号
            - text: JN-20260918-A01
        - generic [ref=e1394]:
          - generic [ref=e1395]:
            - generic [ref=e1396]: "*"
            - text: æœ¬æ¬¡æŽ¥æ”¶æ•°é‡
          - spinbutton "* æœ¬æ¬¡æŽ¥æ”¶æ•°é‡" [disabled] [ref=e1403]: "2000.00"
        - generic [ref=e1404]:
          - generic [ref=e1405]:
            - generic [ref=e1406]: "*"
            - text: åˆæ ¼å“æ•°é‡
          - spinbutton "* åˆæ ¼å“æ•°é‡" [disabled] [ref=e1413]: "198"
        - generic [ref=e1414]:
          - generic [ref=e1415]:
            - generic [ref=e1416]: "*"
            - text: ä¸åˆæ ¼å“æ•°é‡
            - img [ref=e1417] [cursor=pointer]
          - spinbutton "* ä¸åˆæ ¼å“æ•°é‡" [disabled] [ref=e1426]: "2"
        - generic [ref=e1427]:
          - generic [ref=e1428]:
            - generic [ref=e1429]: "*"
            - text: æ¥æ–™æ—¥æœŸ
          - generic [ref=e1435]:
            - textbox "* æ¥æ–™æ—¥æœŸ" [disabled] [ref=e1436]:
              - /placeholder: è¯·é€‰æ‹©æ¥æ–™æ—¥æœŸ
              - text: 2026-09-17
            - generic:
              - img "calendar"
        - generic [ref=e1437]:
          - generic [ref=e1438]:
            - generic [ref=e1439]: "*"
            - text: æ£€æµ‹äººå‘˜
          - generic [ref=e1445]:
            - combobox "* æ£€æµ‹äººå‘˜" [disabled] [ref=e1447]
            - generic "张三" [ref=e1448]
        - generic [ref=e1449]:
          - generic [ref=e1450]:
            - generic [ref=e1451]: "*"
            - text: æ£€æµ‹æ—¥æœŸ
          - generic [ref=e1457]:
            - textbox "* æ£€æµ‹æ—¥æœŸ" [disabled] [ref=e1458]:
              - /placeholder: è¯·é€‰æ‹©æ£€æµ‹æ—¥æœŸ
              - text: 2026-09-18
            - generic:
              - img "calendar"
        - generic [ref=e1459]:
          - generic [ref=e1460]: æ£€æµ‹ç»“æžœ
          - generic [ref=e1466]:
            - combobox "检测结果" [disabled] [ref=e1468]
            - generic "校验通过" [ref=e1469]
        - generic [ref=e1470]:
          - generic [ref=e1471]: å¤‡æ³¨
          - textbox "备注" [disabled] [ref=e1476]:
            - /placeholder: è¯·è¾“入备注
            - text: æ¼”示数据
      - generic [ref=e1478]:
        - generic [ref=e1479]: ç¼ºé™·æƒ…况
        - table [ref=e1482]:
          - rowgroup [ref=e1483]:
            - row [ref=e1484]:
              - rowheader "致命缺陷数" [ref=e1485]
              - cell "0" [ref=e1486]
              - rowheader "严重缺陷数" [ref=e1488]
              - cell "0" [ref=e1489]
              - rowheader "轻微缺陷数" [ref=e1491]
              - cell "0" [ref=e1492]
            - row [ref=e1494]:
              - rowheader "致命缺陷率" [ref=e1495]
              - cell "0%" [ref=e1496]
              - rowheader "严重缺陷率" [ref=e1498]
              - cell "0%" [ref=e1499]
              - rowheader "轻微缺陷率" [ref=e1501]
              - cell "0%" [ref=e1502]
      - generic [ref=e1504]:
        - tablist [ref=e1505]:
          - generic [ref=e1507]:
            - tab "检验项" [selected] [ref=e1509] [cursor=pointer]
            - tab "检测结果" [ref=e1511] [cursor=pointer]
        - tabpanel "检验项" [ref=e1514]:
          - generic [ref=e1519]:
            - generic [ref=e1521]:
              - generic [ref=e1522]: æ£€éªŒé¡¹
              - generic [ref=e1525]:
                - button "" [ref=e1526] [cursor=pointer]
                - button "" [ref=e1528] [cursor=pointer]
                - button "" [ref=e1530] [cursor=pointer]
            - generic [ref=e1537]:
              - generic [ref=e1538]:
                - table [ref=e1542]:
                  - rowgroup [ref=e1557]:
                    - row [ref=e1558]:
                      - columnheader "检测项名称" [ref=e1559]
                      - columnheader "检测项类型" [ref=e1564]
                      - columnheader "检测工具" [ref=e1569]
                      - columnheader "检测要求" [ref=e1574]
                      - columnheader "标准值" [ref=e1579]
                      - columnheader "单位" [ref=e1584]
                      - columnheader "误差上限" [ref=e1589]
                      - columnheader "误差下限" [ref=e1594]
                      - columnheader "致命缺陷数" [ref=e1599]
                      - columnheader "严重缺陷数" [ref=e1604]
                      - columnheader "轻微缺陷数" [ref=e1609]
                      - columnheader "备注" [ref=e1614]
                - table [ref=e1622]:
                  - rowgroup [ref=e1637]:
                    - row "外观 æ€§èƒ½ ç›®æµ‹ åº”澄清透明,无机械杂质" [ref=e1638]:
                      - cell "外观" [ref=e1639]
                      - cell "性能" [ref=e1643]
                      - cell "目测" [ref=e1647]
                      - cell "应澄清透明,无机械杂质" [ref=e1651]
                      - cell [ref=e1655]
                      - cell [ref=e1659]
                      - cell [ref=e1663]
                      - cell [ref=e1667]
                      - cell [ref=e1671]
                      - cell [ref=e1675]
                      - cell [ref=e1679]
                      - cell [ref=e1683]
                    - row "色度 æ€§èƒ½ é“‚钴比色仪 è‰²åº¦ Hazen â‰¤ 10 10" [ref=e1687]:
                      - cell "色度" [ref=e1688]
                      - cell "性能" [ref=e1692]
                      - cell "铂钴比色仪" [ref=e1696]
                      - cell "色度 Hazen â‰¤ 10" [ref=e1700]
                      - cell "10" [ref=e1704]
                      - cell [ref=e1708]
                      - cell [ref=e1712]
                      - cell [ref=e1716]
                      - cell [ref=e1720]
                      - cell [ref=e1724]
                      - cell [ref=e1728]
                      - cell [ref=e1732]
                    - row "水分 æ€§èƒ½ å¡å°”费休水分仪 æ°´åˆ†æµ‹å®šåˆ†ç»„" [ref=e1736]:
                      - cell "水分" [ref=e1737]
                      - cell "性能" [ref=e1741]
                      - cell "卡尔费休水分仪" [ref=e1745]
                      - cell "水分测定分组" [ref=e1749]
                      - cell [ref=e1753]
                      - cell [ref=e1757]
                      - cell [ref=e1761]
                      - cell [ref=e1765]
                      - cell [ref=e1769]
                      - cell [ref=e1773]
                      - cell [ref=e1777]
                      - cell [ref=e1781]
                    - row "试样质量 m æ€§èƒ½ åˆ†æžå¤©å¹³ ç§°é‡" [ref=e1785]:
                      - cell "试样质量 m" [ref=e1786]
                      - cell "性能" [ref=e1790]
                      - cell "分析天平" [ref=e1794]
                      - cell "称量" [ref=e1798]
                      - cell [ref=e1802]
                      - cell [ref=e1806]
                      - cell [ref=e1810]
                      - cell [ref=e1814]
                      - cell [ref=e1818]
                      - cell [ref=e1822]
                      - cell [ref=e1826]
                      - cell [ref=e1830]
                    - row "试样+称量瓶 m1 æ€§èƒ½ åˆ†æžå¤©å¹³ ç§°é‡" [ref=e1834]:
                      - cell "试样+称量瓶 m1" [ref=e1835]
                      - cell "性能" [ref=e1839]
                      - cell "分析天平" [ref=e1843]
                      - cell "称量" [ref=e1847]
                      - cell [ref=e1851]
                      - cell [ref=e1855]
                      - cell [ref=e1859]
                      - cell [ref=e1863]
                      - cell [ref=e1867]
                      - cell [ref=e1871]
                      - cell [ref=e1875]
                      - cell [ref=e1879]
                    - row "称量瓶 m0 æ€§èƒ½ åˆ†æžå¤©å¹³ ç§°é‡" [ref=e1883]:
                      - cell "称量瓶 m0" [ref=e1884]
                      - cell "性能" [ref=e1888]
                      - cell "分析天平" [ref=e1892]
                      - cell "称量" [ref=e1896]
                      - cell [ref=e1900]
                      - cell [ref=e1904]
                      - cell [ref=e1908]
                      - cell [ref=e1912]
                      - cell [ref=e1916]
                      - cell [ref=e1920]
                      - cell [ref=e1924]
                      - cell [ref=e1928]
                    - row "水分结果 w æ€§èƒ½ æŒ‰å…¬å¼è®¡ç®—" [ref=e1932]:
                      - cell "水分结果 w" [ref=e1933]
                      - cell "性能" [ref=e1937]
                      - cell [ref=e1941]
                      - cell "按公式计算" [ref=e1945]
                      - cell [ref=e1949]
                      - cell [ref=e1953]
                      - cell [ref=e1957]
                      - cell [ref=e1961]
                      - cell [ref=e1965]
                      - cell [ref=e1969]
                      - cell [ref=e1973]
                      - cell [ref=e1977]
                    - row "酸含量 æ€§èƒ½ ç”µä½æ»´å®šä»ª é…¸å«é‡æµ‹å®šåˆ†ç»„" [ref=e1981]:
                      - cell "酸含量" [ref=e1982]
                      - cell "性能" [ref=e1986]
                      - cell "电位滴定仪" [ref=e1990]
                      - cell "酸含量测定分组" [ref=e1994]
                      - cell [ref=e1998]
                      - cell [ref=e2002]
                      - cell [ref=e2006]
                      - cell [ref=e2010]
                      - cell [ref=e2014]
                      - cell [ref=e2018]
                      - cell [ref=e2022]
                      - cell [ref=e2026]
                    - row "标液浓度 c æ€§èƒ½ è‡ªåŠ¨ç”µä½æ»´å®šä»ª æ ‡å®š" [ref=e2030]:
                      - cell "标液浓度 c" [ref=e2031]
                      - cell "性能" [ref=e2035]
                      - cell "自动电位滴定仪" [ref=e2039]
                      - cell "标定" [ref=e2043]
                      - cell [ref=e2047]
                      - cell [ref=e2051]
                      - cell [ref=e2055]
                      - cell [ref=e2059]
                      - cell [ref=e2063]
                      - cell [ref=e2067]
                      - cell [ref=e2071]
                      - cell [ref=e2075]
                    - row "消耗滴定液体积 V æ€§èƒ½ è‡ªåŠ¨ç”µä½æ»´å®šä»ª æ»´å®š" [ref=e2079]:
                      - cell "消耗滴定液体积 V" [ref=e2080]
                      - cell "性能" [ref=e2084]
                      - cell "自动电位滴定仪" [ref=e2088]
                      - cell "滴定" [ref=e2092]
                      - cell [ref=e2096]
                      - cell [ref=e2100]
                      - cell [ref=e2104]
                      - cell [ref=e2108]
                      - cell [ref=e2112]
                      - cell [ref=e2116]
                      - cell [ref=e2120]
                      - cell [ref=e2124]
                    - row "试样质量 m æ€§èƒ½ åˆ†æžå¤©å¹³ ç§°é‡" [ref=e2128]:
                      - cell "试样质量 m" [ref=e2129]
                      - cell "性能" [ref=e2133]
                      - cell "分析天平" [ref=e2137]
                      - cell "称量" [ref=e2141]
                      - cell [ref=e2145]
                      - cell [ref=e2149]
                      - cell [ref=e2153]
                      - cell [ref=e2157]
                      - cell [ref=e2161]
                      - cell [ref=e2165]
                      - cell [ref=e2169]
                      - cell [ref=e2173]
                    - row "酸含量结果 w3 æ€§èƒ½ æŒ‰å…¬å¼è®¡ç®—" [ref=e2177]:
                      - cell "酸含量结果 w3" [ref=e2178]
                      - cell "性能" [ref=e2182]
                      - cell [ref=e2186]
                      - cell "按公式计算" [ref=e2190]
                      - cell [ref=e2194]
                      - cell [ref=e2198]
                      - cell [ref=e2202]
                      - cell [ref=e2206]
                      - cell [ref=e2210]
                      - cell [ref=e2214]
                      - cell [ref=e2218]
                      - cell [ref=e2222]
                    - row "正丁醇含量 æ€§èƒ½ æ°”相色谱仪 æ­£ä¸é†‡å«é‡æµ‹å®šåˆ†ç»„" [ref=e2226]:
                      - cell "正丁醇含量" [ref=e2227]
                      - cell "性能" [ref=e2231]
                      - cell "气相色谱仪" [ref=e2235]
                      - cell "正丁醇含量测定分组" [ref=e2239]
                      - cell [ref=e2243]
                      - cell [ref=e2247]
                      - cell [ref=e2251]
                      - cell [ref=e2255]
                      - cell [ref=e2259]
                      - cell [ref=e2263]
                      - cell [ref=e2267]
                      - cell [ref=e2271]
                    - row "正丁醇含量 /% æ€§èƒ½ æ°”相色谱仪 å¤–标法" [ref=e2275]:
                      - cell "正丁醇含量 /%" [ref=e2276]
                      - cell "性能" [ref=e2280]
                      - cell "气相色谱仪" [ref=e2284]
                      - cell "外标法" [ref=e2288]
                      - cell [ref=e2292]
                      - cell [ref=e2296]
                      - cell [ref=e2300]
                      - cell [ref=e2304]
                      - cell [ref=e2308]
                      - cell [ref=e2312]
                      - cell [ref=e2316]
                      - cell [ref=e2320]
                    - row "密度 æ€§èƒ½ å¯†åº¦è®¡ å¯†åº¦ (20℃) 809~812 810" [ref=e2324]:
                      - cell "密度" [ref=e2325]
                      - cell "性能" [ref=e2329]
                      - cell "密度计" [ref=e2333]
                      - cell "密度 (20℃) 809~812" [ref=e2337]
                      - cell "810" [ref=e2341]
                      - cell [ref=e2345]
                      - cell [ref=e2349]
                      - cell [ref=e2353]
                      - cell [ref=e2357]
                      - cell [ref=e2361]
                      - cell [ref=e2365]
                      - cell [ref=e2369]
                    - row "折光率 æ€§èƒ½ é˜¿è´æŠ˜å…‰ä»ª æŠ˜å…‰çއ n²⁰D 1.399" [ref=e2373]:
                      - cell "折光率" [ref=e2374]
                      - cell "性能" [ref=e2378]
                      - cell "阿贝折光仪" [ref=e2382]
                      - cell "折光率 n²⁰D" [ref=e2386]
                      - cell "1.399" [ref=e2390]
                      - cell [ref=e2394]
                      - cell [ref=e2398]
                      - cell [ref=e2402]
                      - cell [ref=e2406]
                      - cell [ref=e2410]
                      - cell [ref=e2414]
                      - cell [ref=e2418]
              - generic [ref=e2422]:
                - table [ref=e2425]:
                  - rowgroup [ref=e2440]:
                    - row [ref=e2441]:
                      - columnheader "操作" [ref=e2442]
                - table [ref=e2449]:
                  - rowgroup [ref=e2452]:
                    - row [ref=e2453]:
                      - cell [ref=e2454]:
                        - button "缺陷列表" [ref=e2460] [cursor=pointer]
                    - row [ref=e2466]:
                      - cell [ref=e2467]:
                        - button "缺陷列表" [ref=e2473] [cursor=pointer]
                    - row [ref=e2479]:
                      - cell [ref=e2480]:
                        - button "缺陷列表" [ref=e2486] [cursor=pointer]
                    - row [ref=e2492]:
                      - cell [ref=e2493]:
                        - button "缺陷列表" [ref=e2499] [cursor=pointer]
                    - row [ref=e2505]:
                      - cell [ref=e2506]:
                        - button "缺陷列表" [ref=e2512] [cursor=pointer]
                    - row [ref=e2518]:
                      - cell [ref=e2519]:
                        - button "缺陷列表" [ref=e2525] [cursor=pointer]
                    - row [ref=e2531]:
                      - cell [ref=e2532]:
                        - button "缺陷列表" [ref=e2538] [cursor=pointer]
                    - row [ref=e2544]:
                      - cell [ref=e2545]:
                        - button "缺陷列表" [ref=e2551] [cursor=pointer]
                    - row [ref=e2557]:
                      - cell [ref=e2558]:
                        - button "缺陷列表" [ref=e2564] [cursor=pointer]
                    - row [ref=e2570]:
                      - cell [ref=e2571]:
                        - button "缺陷列表" [ref=e2577] [cursor=pointer]
                    - row [ref=e2583]:
                      - cell [ref=e2584]:
                        - button "缺陷列表" [ref=e2590] [cursor=pointer]
                    - row [ref=e2596]:
                      - cell [ref=e2597]:
                        - button "缺陷列表" [ref=e2603] [cursor=pointer]
                    - row [ref=e2609]:
                      - cell [ref=e2610]:
                        - button "缺陷列表" [ref=e2616] [cursor=pointer]
                    - row [ref=e2622]:
                      - cell [ref=e2623]:
                        - button "缺陷列表" [ref=e2629] [cursor=pointer]
                    - row [ref=e2635]:
                      - cell [ref=e2636]:
                        - button "缺陷列表" [ref=e2642] [cursor=pointer]
                    - row [ref=e2648]:
                      - cell [ref=e2649]:
                        - button "缺陷列表" [ref=e2655] [cursor=pointer]
            - generic [ref=e2673]:
              - generic [ref=e2674]: å…± 16 æ¡è®°å½•
              - generic [ref=e2676] [cursor=pointer]:
                - generic "20条/页" [ref=e2677]:
                  - textbox "请选择" [ref=e2678]: 20条/页
                - generic [ref=e2679]: î£­
              - button "" [ref=e2682]
              - button "" [ref=e2684]
              - button "" [ref=e2686]
              - button "1" [ref=e2689] [cursor=pointer]
              - button "" [ref=e2690]
              - button "" [ref=e2692]
              - button "" [ref=e2694]
    - button [ref=e2696] [cursor=pointer]
    - generic [ref=e2706]:
      - button "质检助手" [ref=e2708] [cursor=pointer]
      - button "取 æ¶ˆ" [ref=e2710] [cursor=pointer]
    - button [ref=e2712] [cursor=pointer]
.playwright-mcp/page-2026-09-18T06-18-24-102Z.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,437 @@
- generic [ref=e4]:
  - generic [ref=e7]:
    - complementary [ref=e8]:
      - generic [ref=e9]:
        - generic [ref=e10] [cursor=pointer]
        - link "工业AI智造平台 å·¥ä¸šAI智造平台" [ref=e15] [cursor=pointer]:
          - /url: javascript:void 0
          - img "工业AI智造平台" [ref=e18]
          - generic [ref=e19]: å·¥ä¸šAI智造平台
        - menu [ref=e22]:
          - menuitem "首页" [ref=e23] [cursor=pointer]
          - listitem [ref=e30]:
            - generic [ref=e31] [cursor=pointer]: åŸºç¡€æ•°æ®
          - listitem [ref=e39]:
            - generic [ref=e40] [cursor=pointer]: é‡‡è´­ç®¡ç†
          - listitem [ref=e46]:
            - generic [ref=e47] [cursor=pointer]: è¥é”€ç®¡ç†
          - listitem [ref=e53]:
            - generic [ref=e54] [cursor=pointer]: è®¾å¤‡ç®¡ç†
          - listitem [ref=e61]:
            - generic [ref=e62] [cursor=pointer]: ä»“储物流
          - listitem [ref=e70]:
            - generic [ref=e71] [cursor=pointer]: å·¥è‰ºè®¾è®¡
          - listitem [ref=e78]:
            - generic [ref=e79] [cursor=pointer]: äº§å“è®¾è®¡
          - listitem [ref=e85]:
            - generic [ref=e86] [cursor=pointer]: ç”Ÿäº§ç®¡æŽ§
          - listitem [ref=e93]:
            - generic [ref=e94] [cursor=pointer]: è´¨é‡ç®¡ç†
            - list [ref=e593]:
              - menuitem "检测项设置" [ref=e594] [cursor=pointer]
              - menuitem "质检方案" [ref=e599] [cursor=pointer]
              - menuitem "待检任务" [ref=e604] [cursor=pointer]
              - menuitem "来料检验" [ref=e611] [cursor=pointer]
              - menuitem "过程检验" [ref=e616] [cursor=pointer]
              - menuitem "退料检验" [ref=e621] [cursor=pointer]
              - menuitem "出货检验" [ref=e626] [cursor=pointer]
              - menuitem "批次追溯" [ref=e631] [cursor=pointer]
              - menuitem "不合格品处理" [ref=e637] [cursor=pointer]
              - menuitem "常见缺陷" [ref=e642] [cursor=pointer]
          - listitem [ref=e100]:
            - generic [ref=e101] [cursor=pointer]: æŠ¥è¡¨ç®¡ç†
          - listitem [ref=e108]:
            - generic [ref=e109] [cursor=pointer]: å†³ç­–BI大屏
          - listitem [ref=e115]:
            - generic [ref=e116] [cursor=pointer]: ååŒåŠžå…¬
          - listitem [ref=e122]:
            - generic [ref=e123] [cursor=pointer]: äººåŠ›èµ„æº
          - listitem [ref=e129]:
            - generic [ref=e130] [cursor=pointer]: å”®åŽç®¡ç†
          - listitem [ref=e136]:
            - generic [ref=e137] [cursor=pointer]: åŸºç¡€è®¾æ–½
          - listitem [ref=e143]:
            - generic [ref=e144] [cursor=pointer]: ç³»ç»Ÿç®¡ç†
        - generic [ref=e151] [cursor=pointer]
    - generic [ref=e156]:
      - generic [ref=e157]:
        - banner [ref=e158]:
          - button [ref=e159] [cursor=pointer]
          - button [ref=e162] [cursor=pointer]
          - navigation "breadcrumb" [ref=e167]:
            - list [ref=e168]:
              - listitem [ref=e649]:
                - link "质量管理" [ref=e650] [cursor=pointer]:
                  - /url: javascript:void 0
                - listitem [ref=e654]
              - listitem [ref=e657]:
                - link "来料检验" [disabled] [ref=e658]
          - generic [ref=e177]:
            - generic [ref=e179] [cursor=pointer]:
              - generic [ref=e183]: æœç´¢
              - generic [ref=e184]: Ctrl K
            - button [ref=e186] [cursor=pointer]
            - button "dark" [ref=e191] [cursor=pointer]
            - button [ref=e200] [cursor=pointer]
            - button [ref=e206] [cursor=pointer]
            - button [ref=e209] [cursor=pointer]
            - button [ref=e215] [cursor=pointer]:
              - button [ref=e217]
            - button "工作台" [ref=e221] [cursor=pointer]
            - button [ref=e225] [cursor=pointer]:
              - img "超级管理员" [ref=e230]
        - generic [ref=e232]:
          - generic [ref=e237]:
            - generic [ref=e238] [cursor=pointer]: é¦–页
            - generic [ref=e664] [cursor=pointer]: æ¥æ–™æ£€éªŒ
          - generic [ref=e254]:
            - button [ref=e255] [cursor=pointer]
            - generic [ref=e262] [cursor=pointer]
            - generic [ref=e266] [cursor=pointer]
      - main [ref=e273]:
        - generic [ref=e684]:
          - generic [ref=e689]:
            - generic [ref=e690]:
              - generic [ref=e691]: æ£€éªŒå•编号
              - textbox "检验单编号" [ref=e948]:
                - /placeholder: è¯·è¾“入检验单编号
            - generic [ref=e693]:
              - generic [ref=e694]: ä¾›åº”商
              - generic [ref=e700] [cursor=pointer]:
                - combobox "供应商" [ref=e702]
                - generic: è¯·é€‰æ‹©ä¾›åº”商
            - generic [ref=e703]:
              - generic [ref=e704]: ä¾›åº”商批次
              - textbox "供应商批次" [ref=e954]:
                - /placeholder: è¯·è¾“入供应商批次号
            - generic [ref=e706]:
              - generic [ref=e707]: äº§å“ç‰©æ–™
              - textbox "请选择产品物料" [ref=e714]
            - generic [ref=e717]:
              - generic [ref=e718]: æ£€æµ‹ç»“æžœ
              - generic [ref=e724] [cursor=pointer]:
                - combobox "检测结果" [ref=e726]
                - generic: è¯·é€‰æ‹©æ£€æµ‹ç»“æžœ
            - generic [ref=e727]:
              - generic [ref=e728]: æ¥æ–™æ—¥æœŸ
              - generic [ref=e962]:
                - textbox "来料日期" [ref=e964]:
                  - /placeholder: å¼€å§‹æ—¶é—´
                - generic "to" [ref=e966]:
                  - img "swap-right" [ref=e967]
                - textbox "结束时间" [ref=e971]
                - generic:
                  - img "calendar"
            - generic [ref=e730]:
              - generic [ref=e731]: æ£€æµ‹æ—¥æœŸ
              - generic [ref=e975]:
                - textbox "检测日期" [ref=e977]:
                  - /placeholder: å¼€å§‹æ—¶é—´
                - generic "to" [ref=e979]:
                  - img "swap-right" [ref=e980]
                - textbox "结束时间" [ref=e984]
                - generic:
                  - img "calendar"
            - generic [ref=e733]:
              - generic [ref=e734]: æ£€æµ‹äººå‘˜
              - generic [ref=e740] [cursor=pointer]:
                - combobox "检测人员" [ref=e742]
                - generic: è¯·é€‰æ‹©æ£€æµ‹äººå‘˜
            - generic [ref=e743]:
              - button "重 ç½®" [ref=e985] [cursor=pointer]
              - button "搜 ç´¢" [ref=e987] [cursor=pointer]
              - generic [ref=e744] [cursor=pointer]: æ”¶èµ·
          - generic [ref=e751]:
            - generic [ref=e753]:
              - generic [ref=e754]: æ¥æ–™æ£€éªŒå•列表
              - generic [ref=e758]:
                - generic [ref=e760]:
                  - button "新增来料检验单" [ref=e762] [cursor=pointer]
                  - button "导出" [ref=e766] [cursor=pointer]
                - button "" [ref=e769] [cursor=pointer]
              - generic [ref=e771]:
                - button "" [ref=e772] [cursor=pointer]
                - button "" [ref=e774] [cursor=pointer]
                - button "" [ref=e776] [cursor=pointer]
            - generic [ref=e783]:
              - generic [ref=e784]:
                - table [ref=e788]:
                  - rowgroup [ref=e805]:
                    - row [ref=e806]:
                      - columnheader "来料检验单编号" [ref=e807]
                      - columnheader "来料检验单名称" [ref=e812]
                      - columnheader "供应商简称" [ref=e817]
                      - columnheader "供应商批次号" [ref=e822]
                      - columnheader "产品物料编码" [ref=e827]
                      - columnheader "产品物料名称" [ref=e832]
                      - columnheader "接收数量" [ref=e837]
                      - columnheader "检测数量" [ref=e842]
                      - columnheader "不合格数" [ref=e847]
                      - columnheader "检测结果" [ref=e852]
                      - columnheader "来料日期" [ref=e857]
                      - columnheader "检测日期" [ref=e862]
                      - columnheader "检测人员" [ref=e867]
                      - columnheader "单据状态" [ref=e872]
                - table [ref=e993]:
                  - rowgroup [ref=e1010]:
                    - row "IQC-DEMO-03 å£¬çƒ¯æ¥æ–™æ£€éªŒ-03 JN-20260918-A03 4 å£¬çƒ¯ 800 80 4 2026-09-17 2026-09-18 å¼ ä¸‰ å·²å®Œæˆ" [ref=e1011]:
                      - cell [ref=e1012]:
                        - button "IQC-DEMO-03" [ref=e1015] [cursor=pointer]
                      - cell "壬烯来料检验-03" [ref=e1017]
                      - cell [ref=e1021]
                      - cell "JN-20260918-A03" [ref=e1025]
                      - cell "4" [ref=e1029]
                      - cell "壬烯" [ref=e1033]
                      - cell "800" [ref=e1037]
                      - cell "80" [ref=e1041]
                      - cell "4" [ref=e1045]
                      - cell [ref=e1049]
                      - cell "2026-09-17" [ref=e1051]
                      - cell "2026-09-18" [ref=e1055]
                      - cell "张三" [ref=e1059]
                      - cell "已完成" [ref=e1063]
                    - row "IQC-DEMO-02 ç²¾è˜æ¥æ–™æ£€éªŒ-02 JN-20260918-A02 2 ç²¾è˜ 1500 150 0 æ ¡éªŒé€šè¿‡ 2026-09-17 2026-09-18 å¼ ä¸‰ å·²å®Œæˆ" [ref=e1067]:
                      - cell [ref=e1068]:
                        - button "IQC-DEMO-02" [ref=e1071] [cursor=pointer]
                      - cell "精萘来料检验-02" [ref=e1073]
                      - cell [ref=e1077]
                      - cell "JN-20260918-A02" [ref=e1081]
                      - cell "2" [ref=e1085]
                      - cell "精萘" [ref=e1089]
                      - cell "1500" [ref=e1093]
                      - cell "150" [ref=e1097]
                      - cell "0" [ref=e1101]
                      - cell "校验通过" [ref=e1105]
                      - cell "2026-09-17" [ref=e1109]
                      - cell "2026-09-18" [ref=e1113]
                      - cell "张三" [ref=e1117]
                      - cell "已完成" [ref=e1121]
                    - row "IQC-DEMO-01 ç²¾è˜æ¥æ–™æ£€éªŒ-01 JN-20260918-A01 2 ç²¾è˜ 2000 200 2 æ ¡éªŒé€šè¿‡ 2026-09-17 2026-09-18 å¼ ä¸‰ å·²å®Œæˆ" [ref=e1125]:
                      - cell [ref=e1126]:
                        - button "IQC-DEMO-01" [ref=e1129] [cursor=pointer]
                      - cell "精萘来料检验-01" [ref=e1131]
                      - cell [ref=e1135]
                      - cell "JN-20260918-A01" [ref=e1139]
                      - cell "2" [ref=e1143]
                      - cell "精萘" [ref=e1147]
                      - cell "2000" [ref=e1151]
                      - cell "200" [ref=e1155]
                      - cell "2" [ref=e1159]
                      - cell "校验通过" [ref=e1163]
                      - cell "2026-09-17" [ref=e1167]
                      - cell "2026-09-18" [ref=e1171]
                      - cell "张三" [ref=e1175]
                      - cell "已完成" [ref=e1179]
                    - row "IQC_20260917001 ç²¾è˜æ¥æ–™æ£€éªŒ-0917 2 ç²¾è˜ 100 100 0 2026-09-17 2026-09-17 è¶…级管理员 è‰ç¨¿" [ref=e1183]:
                      - cell [ref=e1184]:
                        - button "IQC_20260917001" [ref=e1187] [cursor=pointer]
                      - cell "精萘来料检验-0917" [ref=e1189]
                      - cell [ref=e1193]
                      - cell [ref=e1197]
                      - cell "2" [ref=e1201]
                      - cell "精萘" [ref=e1205]
                      - cell "100" [ref=e1209]
                      - cell "100" [ref=e1213]
                      - cell "0" [ref=e1217]
                      - cell [ref=e1221]
                      - cell "2026-09-17" [ref=e1223]
                      - cell "2026-09-17" [ref=e1227]
                      - cell "超级管理员" [ref=e1231]
                      - cell "草稿" [ref=e1235]
              - generic [ref=e880]:
                - table [ref=e883]:
                  - rowgroup [ref=e900]:
                    - row [ref=e901]:
                      - columnheader "操作" [ref=e902]
                - table [ref=e1239]:
                  - rowgroup [ref=e1242]:
                    - row [ref=e1243]:
                      - cell [ref=e1244]:
                        - generic [ref=e1248]:
                          - button "详情" [ref=e1250] [cursor=pointer]
                          - button "质检报告" [ref=e1257] [cursor=pointer]
                    - row [ref=e1263]:
                      - cell [ref=e1264]:
                        - generic [ref=e1268]:
                          - button "详情" [ref=e1270] [cursor=pointer]
                          - button "质检报告" [ref=e1277] [cursor=pointer]
                    - row [ref=e1283]:
                      - cell [ref=e1284]:
                        - generic [ref=e1288]:
                          - button "详情" [ref=e1290] [cursor=pointer]
                          - button "质检报告" [ref=e1297] [cursor=pointer]
                    - row [ref=e1303]:
                      - cell [ref=e1304]:
                        - generic [ref=e1308]:
                          - button "修改" [ref=e1310] [cursor=pointer]
                          - button "删除" [ref=e1317] [cursor=pointer]
                          - button "详情" [ref=e1322] [cursor=pointer]
                          - button "质检报告" [ref=e1329] [cursor=pointer]
            - generic [ref=e921]:
              - generic [ref=e922]: å…± 4 æ¡è®°å½•
              - generic [ref=e924] [cursor=pointer]:
                - generic "20条/页" [ref=e925]:
                  - textbox "请选择" [ref=e926]: 20条/页
                - generic [ref=e927]: î£­
              - button "" [ref=e930]
              - button "" [ref=e932]
              - button "" [ref=e934]
              - button "1" [ref=e937] [cursor=pointer]
              - button "" [ref=e938]
              - button "" [ref=e940]
              - button "" [ref=e942]
  - dialog [ref=e1336]:
    - heading "查看来料检验单" [level=2] [ref=e1338]
    - generic [ref=e1340]:
      - generic [ref=e1342]:
        - generic [ref=e1343]:
          - generic [ref=e1344]:
            - generic [ref=e1345]: "*"
            - text: æ£€éªŒå•编号
          - generic [ref=e1349]:
            - textbox "* æ£€éªŒå•编号" [disabled] [ref=e1350]:
              - /placeholder: è¯·è¾“入检验单编号
              - text: IQC-DEMO-01
            - button "生 æˆ" [disabled] [ref=e1352]
        - generic [ref=e1354]:
          - generic [ref=e1355]:
            - generic [ref=e1356]: "*"
            - text: æ£€éªŒå•名称
          - textbox "* æ£€éªŒå•名称" [disabled] [ref=e1361]:
            - /placeholder: è¯·è¾“入检验单名称
            - text: ç²¾è˜æ¥æ–™æ£€éªŒ-01
        - generic [ref=e1362]:
          - generic [ref=e1363]:
            - generic [ref=e1364]: "*"
            - text: äº§å“ç‰©æ–™
          - textbox "请选择产品物料" [disabled] [ref=e1371]: ç²¾è˜
        - generic [ref=e1377]:
          - generic [ref=e1378]: ä¾›åº”商
          - generic [ref=e1384]:
            - combobox "供应商" [disabled] [ref=e1386]
            - generic: è¯·é€‰æ‹©ä¾›åº”商
        - generic [ref=e1387]:
          - generic [ref=e1388]: ä¾›åº”商批次号
          - textbox "供应商批次号" [disabled] [ref=e1393]:
            - /placeholder: è¯·è¾“入供应商批次号
            - text: JN-20260918-A01
        - generic [ref=e1394]:
          - generic [ref=e1395]:
            - generic [ref=e1396]: "*"
            - text: æœ¬æ¬¡æŽ¥æ”¶æ•°é‡
          - spinbutton "* æœ¬æ¬¡æŽ¥æ”¶æ•°é‡" [disabled] [ref=e1403]: "2000.00"
        - generic [ref=e1404]:
          - generic [ref=e1405]:
            - generic [ref=e1406]: "*"
            - text: åˆæ ¼å“æ•°é‡
          - spinbutton "* åˆæ ¼å“æ•°é‡" [disabled] [ref=e1413]: "198"
        - generic [ref=e1414]:
          - generic [ref=e1415]:
            - generic [ref=e1416]: "*"
            - text: ä¸åˆæ ¼å“æ•°é‡
            - img [ref=e1417] [cursor=pointer]
          - spinbutton "* ä¸åˆæ ¼å“æ•°é‡" [disabled] [ref=e1426]: "2"
        - generic [ref=e1427]:
          - generic [ref=e1428]:
            - generic [ref=e1429]: "*"
            - text: æ¥æ–™æ—¥æœŸ
          - generic [ref=e1435]:
            - textbox "* æ¥æ–™æ—¥æœŸ" [disabled] [ref=e1436]:
              - /placeholder: è¯·é€‰æ‹©æ¥æ–™æ—¥æœŸ
              - text: 2026-09-17
            - generic:
              - img "calendar"
        - generic [ref=e1437]:
          - generic [ref=e1438]:
            - generic [ref=e1439]: "*"
            - text: æ£€æµ‹äººå‘˜
          - generic [ref=e1445]:
            - combobox "* æ£€æµ‹äººå‘˜" [disabled] [ref=e1447]
            - generic "张三" [ref=e1448]
        - generic [ref=e1449]:
          - generic [ref=e1450]:
            - generic [ref=e1451]: "*"
            - text: æ£€æµ‹æ—¥æœŸ
          - generic [ref=e1457]:
            - textbox "* æ£€æµ‹æ—¥æœŸ" [disabled] [ref=e1458]:
              - /placeholder: è¯·é€‰æ‹©æ£€æµ‹æ—¥æœŸ
              - text: 2026-09-18
            - generic:
              - img "calendar"
        - generic [ref=e1459]:
          - generic [ref=e1460]: æ£€æµ‹ç»“æžœ
          - generic [ref=e1466]:
            - combobox "检测结果" [disabled] [ref=e1468]
            - generic "校验通过" [ref=e1469]
        - generic [ref=e1470]:
          - generic [ref=e1471]: å¤‡æ³¨
          - textbox "备注" [disabled] [ref=e1476]:
            - /placeholder: è¯·è¾“入备注
            - text: æ¼”示数据
      - generic [ref=e1478]:
        - generic [ref=e1479]: ç¼ºé™·æƒ…况
        - table [ref=e1482]:
          - rowgroup [ref=e1483]:
            - row [ref=e1484]:
              - rowheader "致命缺陷数" [ref=e1485]
              - cell "0" [ref=e1486]
              - rowheader "严重缺陷数" [ref=e1488]
              - cell "0" [ref=e1489]
              - rowheader "轻微缺陷数" [ref=e1491]
              - cell "0" [ref=e1492]
            - row [ref=e1494]:
              - rowheader "致命缺陷率" [ref=e1495]
              - cell "0%" [ref=e1496]
              - rowheader "严重缺陷率" [ref=e1498]
              - cell "0%" [ref=e1499]
              - rowheader "轻微缺陷率" [ref=e1501]
              - cell "0%" [ref=e1502]
      - generic [ref=e1504]:
        - tablist [ref=e1505]:
          - generic [ref=e1507]:
            - tab "检验项" [ref=e1509] [cursor=pointer]
            - tab "检测结果" [active] [selected] [ref=e1511] [cursor=pointer]
        - generic [ref=e1513]:
          - text: î©Š îœŽ î˜­ î£­ ïŠ” î™¥ î„ îƒ î™¦ î˜‡
          - tabpanel "检测结果" [ref=e2716]:
            - generic [ref=e2721]:
              - generic [ref=e2723]:
                - generic [ref=e2724]: æ£€æµ‹ç»“æžœ
                - generic [ref=e2727]:
                  - button "" [ref=e2728] [cursor=pointer]
                  - button "" [ref=e2730] [cursor=pointer]
                  - button "" [ref=e2732] [cursor=pointer]
              - generic [ref=e2740]:
                - table [ref=e2744]:
                  - rowgroup [ref=e2750]:
                    - row [ref=e2751]:
                      - columnheader "样品编号" [ref=e2752]
                      - columnheader "物资SN" [ref=e2757]
                      - columnheader "备注" [ref=e2762]
                      - columnheader "操作" [ref=e2767]
                - table [ref=e2775]:
                  - rowgroup [ref=e2781]:
                    - row "MIR-DEMO-01 YP-A001 è¯¦æƒ…" [ref=e2782]:
                      - cell "MIR-DEMO-01" [ref=e2783]
                      - cell "YP-A001" [ref=e2787]
                      - cell [ref=e2791]
                      - cell [ref=e2795]:
                        - button "详情" [ref=e2801] [cursor=pointer]
              - generic [ref=e2809]:
                - generic [ref=e2810]: å…± 1 æ¡è®°å½•
                - generic [ref=e2812] [cursor=pointer]:
                  - generic "20条/页" [ref=e2813]:
                    - textbox "请选择" [ref=e2814]: 20条/页
                  - generic [ref=e2815]: î£­
                - button "" [ref=e2818]
                - button "" [ref=e2820]
                - button "" [ref=e2822]
                - button "1" [ref=e2825] [cursor=pointer]
                - button "" [ref=e2826]
                - button "" [ref=e2828]
                - button "" [ref=e2830]
    - button [ref=e2696] [cursor=pointer]
    - generic [ref=e2706]:
      - button "质检助手" [ref=e2708] [cursor=pointer]
      - button "取 æ¶ˆ" [ref=e2710] [cursor=pointer]
    - button [ref=e2712] [cursor=pointer]
.playwright-mcp/page-2026-09-18T06-19-31-080Z.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,701 @@
- generic [ref=e4]:
  - generic [ref=e7]:
    - complementary [ref=e8]:
      - generic [ref=e9]:
        - generic [ref=e10] [cursor=pointer]
        - link "工业AI智造平台 å·¥ä¸šAI智造平台" [ref=e15] [cursor=pointer]:
          - /url: javascript:void 0
          - img "工业AI智造平台" [ref=e18]
          - generic [ref=e19]: å·¥ä¸šAI智造平台
        - menu [ref=e22]:
          - menuitem "首页" [ref=e23] [cursor=pointer]
          - listitem [ref=e30]:
            - generic [ref=e31] [cursor=pointer]: åŸºç¡€æ•°æ®
          - listitem [ref=e39]:
            - generic [ref=e40] [cursor=pointer]: é‡‡è´­ç®¡ç†
          - listitem [ref=e46]:
            - generic [ref=e47] [cursor=pointer]: è¥é”€ç®¡ç†
          - listitem [ref=e53]:
            - generic [ref=e54] [cursor=pointer]: è®¾å¤‡ç®¡ç†
          - listitem [ref=e61]:
            - generic [ref=e62] [cursor=pointer]: ä»“储物流
          - listitem [ref=e70]:
            - generic [ref=e71] [cursor=pointer]: å·¥è‰ºè®¾è®¡
          - listitem [ref=e78]:
            - generic [ref=e79] [cursor=pointer]: äº§å“è®¾è®¡
          - listitem [ref=e85]:
            - generic [ref=e86] [cursor=pointer]: ç”Ÿäº§ç®¡æŽ§
          - listitem [ref=e93]:
            - generic [ref=e94] [cursor=pointer]: è´¨é‡ç®¡ç†
            - list [ref=e593]:
              - menuitem "检测项设置" [ref=e594] [cursor=pointer]
              - menuitem "质检方案" [ref=e599] [cursor=pointer]
              - menuitem "待检任务" [ref=e604] [cursor=pointer]
              - menuitem "来料检验" [ref=e611] [cursor=pointer]
              - menuitem "过程检验" [ref=e616] [cursor=pointer]
              - menuitem "退料检验" [ref=e621] [cursor=pointer]
              - menuitem "出货检验" [ref=e626] [cursor=pointer]
              - menuitem "批次追溯" [ref=e631] [cursor=pointer]
              - menuitem "不合格品处理" [ref=e637] [cursor=pointer]
              - menuitem "常见缺陷" [ref=e642] [cursor=pointer]
          - listitem [ref=e100]:
            - generic [ref=e101] [cursor=pointer]: æŠ¥è¡¨ç®¡ç†
          - listitem [ref=e108]:
            - generic [ref=e109] [cursor=pointer]: å†³ç­–BI大屏
          - listitem [ref=e115]:
            - generic [ref=e116] [cursor=pointer]: ååŒåŠžå…¬
          - listitem [ref=e122]:
            - generic [ref=e123] [cursor=pointer]: äººåŠ›èµ„æº
          - listitem [ref=e129]:
            - generic [ref=e130] [cursor=pointer]: å”®åŽç®¡ç†
          - listitem [ref=e136]:
            - generic [ref=e137] [cursor=pointer]: åŸºç¡€è®¾æ–½
          - listitem [ref=e143]:
            - generic [ref=e144] [cursor=pointer]: ç³»ç»Ÿç®¡ç†
        - generic [ref=e151] [cursor=pointer]
    - generic [ref=e156]:
      - generic [ref=e157]:
        - banner [ref=e158]:
          - button [ref=e159] [cursor=pointer]
          - button [ref=e162] [cursor=pointer]
          - navigation "breadcrumb" [ref=e167]:
            - list [ref=e168]:
              - listitem [ref=e649]:
                - link "质量管理" [ref=e650] [cursor=pointer]:
                  - /url: javascript:void 0
                - listitem [ref=e654]
              - listitem [ref=e657]:
                - link "来料检验" [disabled] [ref=e658]
          - generic [ref=e177]:
            - generic [ref=e179] [cursor=pointer]:
              - generic [ref=e183]: æœç´¢
              - generic [ref=e184]: Ctrl K
            - button [ref=e186] [cursor=pointer]
            - button "dark" [ref=e191] [cursor=pointer]
            - button [ref=e200] [cursor=pointer]
            - button [ref=e206] [cursor=pointer]
            - button [ref=e209] [cursor=pointer]
            - button [ref=e215] [cursor=pointer]:
              - button [ref=e217]
            - button "工作台" [ref=e221] [cursor=pointer]
            - button [ref=e225] [cursor=pointer]:
              - img "超级管理员" [ref=e230]
        - generic [ref=e232]:
          - generic [ref=e237]:
            - generic [ref=e238] [cursor=pointer]: é¦–页
            - generic [ref=e664] [cursor=pointer]: æ¥æ–™æ£€éªŒ
          - generic [ref=e254]:
            - button [ref=e255] [cursor=pointer]
            - generic [ref=e262] [cursor=pointer]
            - generic [ref=e266] [cursor=pointer]
      - main [ref=e273]:
        - generic [ref=e684]:
          - generic [ref=e689]:
            - generic [ref=e690]:
              - generic [ref=e691]: æ£€éªŒå•编号
              - textbox "检验单编号" [ref=e948]:
                - /placeholder: è¯·è¾“入检验单编号
            - generic [ref=e693]:
              - generic [ref=e694]: ä¾›åº”商
              - generic [ref=e700] [cursor=pointer]:
                - combobox "供应商" [ref=e702]
                - generic: è¯·é€‰æ‹©ä¾›åº”商
            - generic [ref=e703]:
              - generic [ref=e704]: ä¾›åº”商批次
              - textbox "供应商批次" [ref=e954]:
                - /placeholder: è¯·è¾“入供应商批次号
            - generic [ref=e706]:
              - generic [ref=e707]: äº§å“ç‰©æ–™
              - textbox "请选择产品物料" [ref=e714]
            - generic [ref=e717]:
              - generic [ref=e718]: æ£€æµ‹ç»“æžœ
              - generic [ref=e724] [cursor=pointer]:
                - combobox "检测结果" [ref=e726]
                - generic: è¯·é€‰æ‹©æ£€æµ‹ç»“æžœ
            - generic [ref=e727]:
              - generic [ref=e728]: æ¥æ–™æ—¥æœŸ
              - generic [ref=e962]:
                - textbox "来料日期" [ref=e964]:
                  - /placeholder: å¼€å§‹æ—¶é—´
                - generic "to" [ref=e966]:
                  - img "swap-right" [ref=e967]
                - textbox "结束时间" [ref=e971]
                - generic:
                  - img "calendar"
            - generic [ref=e730]:
              - generic [ref=e731]: æ£€æµ‹æ—¥æœŸ
              - generic [ref=e975]:
                - textbox "检测日期" [ref=e977]:
                  - /placeholder: å¼€å§‹æ—¶é—´
                - generic "to" [ref=e979]:
                  - img "swap-right" [ref=e980]
                - textbox "结束时间" [ref=e984]
                - generic:
                  - img "calendar"
            - generic [ref=e733]:
              - generic [ref=e734]: æ£€æµ‹äººå‘˜
              - generic [ref=e740] [cursor=pointer]:
                - combobox "检测人员" [ref=e742]
                - generic: è¯·é€‰æ‹©æ£€æµ‹äººå‘˜
            - generic [ref=e743]:
              - button "重 ç½®" [ref=e985] [cursor=pointer]
              - button "搜 ç´¢" [ref=e987] [cursor=pointer]
              - generic [ref=e744] [cursor=pointer]: æ”¶èµ·
          - generic [ref=e751]:
            - generic [ref=e753]:
              - generic [ref=e754]: æ¥æ–™æ£€éªŒå•列表
              - generic [ref=e758]:
                - generic [ref=e760]:
                  - button "新增来料检验单" [ref=e762] [cursor=pointer]
                  - button "导出" [ref=e766] [cursor=pointer]
                - button "" [ref=e769] [cursor=pointer]
              - generic [ref=e771]:
                - button "" [ref=e772] [cursor=pointer]
                - button "" [ref=e774] [cursor=pointer]
                - button "" [ref=e776] [cursor=pointer]
            - generic [ref=e783]:
              - generic [ref=e784]:
                - table [ref=e788]:
                  - rowgroup [ref=e805]:
                    - row [ref=e806]:
                      - columnheader "来料检验单编号" [ref=e807]
                      - columnheader "来料检验单名称" [ref=e812]
                      - columnheader "供应商简称" [ref=e817]
                      - columnheader "供应商批次号" [ref=e822]
                      - columnheader "产品物料编码" [ref=e827]
                      - columnheader "产品物料名称" [ref=e832]
                      - columnheader "接收数量" [ref=e837]
                      - columnheader "检测数量" [ref=e842]
                      - columnheader "不合格数" [ref=e847]
                      - columnheader "检测结果" [ref=e852]
                      - columnheader "来料日期" [ref=e857]
                      - columnheader "检测日期" [ref=e862]
                      - columnheader "检测人员" [ref=e867]
                      - columnheader "单据状态" [ref=e872]
                - table [ref=e993]:
                  - rowgroup [ref=e1010]:
                    - row "IQC-DEMO-03 å£¬çƒ¯æ¥æ–™æ£€éªŒ-03 JN-20260918-A03 4 å£¬çƒ¯ 800 80 4 2026-09-17 2026-09-18 å¼ ä¸‰ å·²å®Œæˆ" [ref=e1011]:
                      - cell [ref=e1012]:
                        - button "IQC-DEMO-03" [ref=e1015] [cursor=pointer]
                      - cell "壬烯来料检验-03" [ref=e1017]
                      - cell [ref=e1021]
                      - cell "JN-20260918-A03" [ref=e1025]
                      - cell "4" [ref=e1029]
                      - cell "壬烯" [ref=e1033]
                      - cell "800" [ref=e1037]
                      - cell "80" [ref=e1041]
                      - cell "4" [ref=e1045]
                      - cell [ref=e1049]
                      - cell "2026-09-17" [ref=e1051]
                      - cell "2026-09-18" [ref=e1055]
                      - cell "张三" [ref=e1059]
                      - cell "已完成" [ref=e1063]
                    - row "IQC-DEMO-02 ç²¾è˜æ¥æ–™æ£€éªŒ-02 JN-20260918-A02 2 ç²¾è˜ 1500 150 0 æ ¡éªŒé€šè¿‡ 2026-09-17 2026-09-18 å¼ ä¸‰ å·²å®Œæˆ" [ref=e1067]:
                      - cell [ref=e1068]:
                        - button "IQC-DEMO-02" [ref=e1071] [cursor=pointer]
                      - cell "精萘来料检验-02" [ref=e1073]
                      - cell [ref=e1077]
                      - cell "JN-20260918-A02" [ref=e1081]
                      - cell "2" [ref=e1085]
                      - cell "精萘" [ref=e1089]
                      - cell "1500" [ref=e1093]
                      - cell "150" [ref=e1097]
                      - cell "0" [ref=e1101]
                      - cell "校验通过" [ref=e1105]
                      - cell "2026-09-17" [ref=e1109]
                      - cell "2026-09-18" [ref=e1113]
                      - cell "张三" [ref=e1117]
                      - cell "已完成" [ref=e1121]
                    - row "IQC-DEMO-01 ç²¾è˜æ¥æ–™æ£€éªŒ-01 JN-20260918-A01 2 ç²¾è˜ 2000 200 2 æ ¡éªŒé€šè¿‡ 2026-09-17 2026-09-18 å¼ ä¸‰ å·²å®Œæˆ" [ref=e1125]:
                      - cell [ref=e1126]:
                        - button "IQC-DEMO-01" [active] [ref=e1129] [cursor=pointer]
                      - cell "精萘来料检验-01" [ref=e1131]
                      - cell [ref=e1135]
                      - cell "JN-20260918-A01" [ref=e1139]
                      - cell "2" [ref=e1143]
                      - cell "精萘" [ref=e1147]
                      - cell "2000" [ref=e1151]
                      - cell "200" [ref=e1155]
                      - cell "2" [ref=e1159]
                      - cell "校验通过" [ref=e1163]
                      - cell "2026-09-17" [ref=e1167]
                      - cell "2026-09-18" [ref=e1171]
                      - cell "张三" [ref=e1175]
                      - cell "已完成" [ref=e1179]
                    - row "IQC_20260917001 ç²¾è˜æ¥æ–™æ£€éªŒ-0917 2 ç²¾è˜ 100 100 0 2026-09-17 2026-09-17 è¶…级管理员 è‰ç¨¿" [ref=e1183]:
                      - cell [ref=e1184]:
                        - button "IQC_20260917001" [ref=e1187] [cursor=pointer]
                      - cell "精萘来料检验-0917" [ref=e1189]
                      - cell [ref=e1193]
                      - cell [ref=e1197]
                      - cell "2" [ref=e1201]
                      - cell "精萘" [ref=e1205]
                      - cell "100" [ref=e1209]
                      - cell "100" [ref=e1213]
                      - cell "0" [ref=e1217]
                      - cell [ref=e1221]
                      - cell "2026-09-17" [ref=e1223]
                      - cell "2026-09-17" [ref=e1227]
                      - cell "超级管理员" [ref=e1231]
                      - cell "草稿" [ref=e1235]
              - generic [ref=e880]:
                - table [ref=e883]:
                  - rowgroup [ref=e900]:
                    - row [ref=e901]:
                      - columnheader "操作" [ref=e902]
                - table [ref=e1239]:
                  - rowgroup [ref=e1242]:
                    - row [ref=e1243]:
                      - cell [ref=e1244]:
                        - generic [ref=e1248]:
                          - button "详情" [ref=e1250] [cursor=pointer]
                          - button "质检报告" [ref=e1257] [cursor=pointer]
                    - row [ref=e1263]:
                      - cell [ref=e1264]:
                        - generic [ref=e1268]:
                          - button "详情" [ref=e1270] [cursor=pointer]
                          - button "质检报告" [ref=e1277] [cursor=pointer]
                    - row [ref=e1283]:
                      - cell [ref=e1284]:
                        - generic [ref=e1288]:
                          - button "详情" [ref=e1290] [cursor=pointer]
                          - button "质检报告" [ref=e1297] [cursor=pointer]
                    - row [ref=e1303]:
                      - cell [ref=e1304]:
                        - generic [ref=e1308]:
                          - button "修改" [ref=e1310] [cursor=pointer]
                          - button "删除" [ref=e1317] [cursor=pointer]
                          - button "详情" [ref=e1322] [cursor=pointer]
                          - button "质检报告" [ref=e1329] [cursor=pointer]
            - generic [ref=e921]:
              - generic [ref=e922]: å…± 4 æ¡è®°å½•
              - generic [ref=e924] [cursor=pointer]:
                - generic "20条/页" [ref=e925]:
                  - textbox "请选择" [ref=e926]: 20条/页
                - generic [ref=e927]: î£­
              - button "" [ref=e930]
              - button "" [ref=e932]
              - button "" [ref=e934]
              - button "1" [ref=e937] [cursor=pointer]
              - button "" [ref=e938]
              - button "" [ref=e940]
              - button "" [ref=e942]
  - dialog [ref=e2833]:
    - heading "查看来料检验单" [level=2] [ref=e2835]
    - generic [ref=e2837]:
      - generic [ref=e2839]:
        - generic [ref=e2840]:
          - generic [ref=e2841]:
            - generic [ref=e2842]: "*"
            - text: æ£€éªŒå•编号
          - generic [ref=e2846]:
            - textbox "* æ£€éªŒå•编号" [disabled] [ref=e2847]:
              - /placeholder: è¯·è¾“入检验单编号
              - text: IQC-DEMO-01
            - button "生 æˆ" [disabled] [ref=e2849]
        - generic [ref=e2851]:
          - generic [ref=e2852]:
            - generic [ref=e2853]: "*"
            - text: æ£€éªŒå•名称
          - textbox "* æ£€éªŒå•名称" [disabled] [ref=e2858]:
            - /placeholder: è¯·è¾“入检验单名称
            - text: ç²¾è˜æ¥æ–™æ£€éªŒ-01
        - generic [ref=e2859]:
          - generic [ref=e2860]:
            - generic [ref=e2861]: "*"
            - text: äº§å“ç‰©æ–™
          - textbox "请选择产品物料" [disabled] [ref=e2868]: ç²¾è˜
        - generic [ref=e2874]:
          - generic [ref=e2875]: ä¾›åº”商
          - generic [ref=e2881]:
            - combobox "供应商" [disabled] [ref=e2883]
            - generic: è¯·é€‰æ‹©ä¾›åº”商
        - generic [ref=e2884]:
          - generic [ref=e2885]: ä¾›åº”商批次号
          - textbox "供应商批次号" [disabled] [ref=e2890]:
            - /placeholder: è¯·è¾“入供应商批次号
            - text: JN-20260918-A01
        - generic [ref=e2891]:
          - generic [ref=e2892]:
            - generic [ref=e2893]: "*"
            - text: æœ¬æ¬¡æŽ¥æ”¶æ•°é‡
          - spinbutton "* æœ¬æ¬¡æŽ¥æ”¶æ•°é‡" [disabled] [ref=e2900]: "2000.00"
        - generic [ref=e2901]:
          - generic [ref=e2902]:
            - generic [ref=e2903]: "*"
            - text: åˆæ ¼å“æ•°é‡
          - spinbutton "* åˆæ ¼å“æ•°é‡" [disabled] [ref=e2910]: "198"
        - generic [ref=e2911]:
          - generic [ref=e2912]:
            - generic [ref=e2913]: "*"
            - text: ä¸åˆæ ¼å“æ•°é‡
            - img [ref=e2914] [cursor=pointer]
          - spinbutton "* ä¸åˆæ ¼å“æ•°é‡" [disabled] [ref=e2923]: "2"
        - generic [ref=e2924]:
          - generic [ref=e2925]:
            - generic [ref=e2926]: "*"
            - text: æ¥æ–™æ—¥æœŸ
          - generic [ref=e2932]:
            - textbox "* æ¥æ–™æ—¥æœŸ" [disabled] [ref=e2933]:
              - /placeholder: è¯·é€‰æ‹©æ¥æ–™æ—¥æœŸ
              - text: 2026-09-17
            - generic:
              - img "calendar"
        - generic [ref=e2934]:
          - generic [ref=e2935]:
            - generic [ref=e2936]: "*"
            - text: æ£€æµ‹äººå‘˜
          - generic [ref=e2942]:
            - combobox "* æ£€æµ‹äººå‘˜" [disabled] [ref=e2944]
            - generic "张三" [ref=e2945]
        - generic [ref=e2946]:
          - generic [ref=e2947]:
            - generic [ref=e2948]: "*"
            - text: æ£€æµ‹æ—¥æœŸ
          - generic [ref=e2954]:
            - textbox "* æ£€æµ‹æ—¥æœŸ" [disabled] [ref=e2955]:
              - /placeholder: è¯·é€‰æ‹©æ£€æµ‹æ—¥æœŸ
              - text: 2026-09-18
            - generic:
              - img "calendar"
        - generic [ref=e2956]:
          - generic [ref=e2957]: æ£€æµ‹ç»“æžœ
          - generic [ref=e2963]:
            - combobox "检测结果" [disabled] [ref=e2965]
            - generic "校验通过" [ref=e2966]
        - generic [ref=e2967]:
          - generic [ref=e2968]: å¤‡æ³¨
          - textbox "备注" [disabled] [ref=e2973]:
            - /placeholder: è¯·è¾“入备注
            - text: æ¼”示数据
      - generic [ref=e2975]:
        - generic [ref=e2976]: ç¼ºé™·æƒ…况
        - table [ref=e2979]:
          - rowgroup [ref=e2980]:
            - row [ref=e2981]:
              - rowheader "致命缺陷数" [ref=e2982]
              - cell "0" [ref=e2983]
              - rowheader "严重缺陷数" [ref=e2985]
              - cell "0" [ref=e2986]
              - rowheader "轻微缺陷数" [ref=e2988]
              - cell "0" [ref=e2989]
            - row [ref=e2991]:
              - rowheader "致命缺陷率" [ref=e2992]
              - cell "0%" [ref=e2993]
              - rowheader "严重缺陷率" [ref=e2995]
              - cell "0%" [ref=e2996]
              - rowheader "轻微缺陷率" [ref=e2998]
              - cell "0%" [ref=e2999]
      - generic [ref=e3001]:
        - tablist [ref=e3002]:
          - generic [ref=e3004]:
            - tab "检验项" [selected] [ref=e3006] [cursor=pointer]
            - tab "检测结果" [ref=e3008] [cursor=pointer]
        - tabpanel "检验项" [ref=e3011]:
          - generic [ref=e3016]:
            - generic [ref=e3018]:
              - generic [ref=e3019]: æ£€éªŒé¡¹
              - generic [ref=e3022]:
                - button "" [ref=e3023] [cursor=pointer]
                - button "" [ref=e3025] [cursor=pointer]
                - button "" [ref=e3027] [cursor=pointer]
            - generic [ref=e3034]:
              - generic [ref=e3035]:
                - table [ref=e3039]:
                  - rowgroup [ref=e3054]:
                    - row [ref=e3055]:
                      - columnheader "检测项名称" [ref=e3056]
                      - columnheader "检测项类型" [ref=e3061]
                      - columnheader "检测工具" [ref=e3066]
                      - columnheader "检测要求" [ref=e3071]
                      - columnheader "标准值" [ref=e3076]
                      - columnheader "单位" [ref=e3081]
                      - columnheader "误差上限" [ref=e3086]
                      - columnheader "误差下限" [ref=e3091]
                      - columnheader "致命缺陷数" [ref=e3096]
                      - columnheader "严重缺陷数" [ref=e3101]
                      - columnheader "轻微缺陷数" [ref=e3106]
                      - columnheader "备注" [ref=e3111]
                - table [ref=e3119]:
                  - rowgroup [ref=e3134]:
                    - row "外观 æ€§èƒ½ ç›®æµ‹ åº”澄清透明,无机械杂质" [ref=e3135]:
                      - cell "外观" [ref=e3136]
                      - cell "性能" [ref=e3140]
                      - cell "目测" [ref=e3144]
                      - cell "应澄清透明,无机械杂质" [ref=e3148]
                      - cell [ref=e3152]
                      - cell [ref=e3156]
                      - cell [ref=e3160]
                      - cell [ref=e3164]
                      - cell [ref=e3168]
                      - cell [ref=e3172]
                      - cell [ref=e3176]
                      - cell [ref=e3180]
                    - row "色度 æ€§èƒ½ é“‚钴比色仪 è‰²åº¦ Hazen â‰¤ 10 10" [ref=e3184]:
                      - cell "色度" [ref=e3185]
                      - cell "性能" [ref=e3189]
                      - cell "铂钴比色仪" [ref=e3193]
                      - cell "色度 Hazen â‰¤ 10" [ref=e3197]
                      - cell "10" [ref=e3201]
                      - cell [ref=e3205]
                      - cell [ref=e3209]
                      - cell [ref=e3213]
                      - cell [ref=e3217]
                      - cell [ref=e3221]
                      - cell [ref=e3225]
                      - cell [ref=e3229]
                    - row "水分 æ€§èƒ½ å¡å°”费休水分仪 æ°´åˆ†æµ‹å®šåˆ†ç»„" [ref=e3233]:
                      - cell "水分" [ref=e3234]
                      - cell "性能" [ref=e3238]
                      - cell "卡尔费休水分仪" [ref=e3242]
                      - cell "水分测定分组" [ref=e3246]
                      - cell [ref=e3250]
                      - cell [ref=e3254]
                      - cell [ref=e3258]
                      - cell [ref=e3262]
                      - cell [ref=e3266]
                      - cell [ref=e3270]
                      - cell [ref=e3274]
                      - cell [ref=e3278]
                    - row "试样质量 m æ€§èƒ½ åˆ†æžå¤©å¹³ ç§°é‡" [ref=e3282]:
                      - cell "试样质量 m" [ref=e3283]
                      - cell "性能" [ref=e3287]
                      - cell "分析天平" [ref=e3291]
                      - cell "称量" [ref=e3295]
                      - cell [ref=e3299]
                      - cell [ref=e3303]
                      - cell [ref=e3307]
                      - cell [ref=e3311]
                      - cell [ref=e3315]
                      - cell [ref=e3319]
                      - cell [ref=e3323]
                      - cell [ref=e3327]
                    - row "试样+称量瓶 m1 æ€§èƒ½ åˆ†æžå¤©å¹³ ç§°é‡" [ref=e3331]:
                      - cell "试样+称量瓶 m1" [ref=e3332]
                      - cell "性能" [ref=e3336]
                      - cell "分析天平" [ref=e3340]
                      - cell "称量" [ref=e3344]
                      - cell [ref=e3348]
                      - cell [ref=e3352]
                      - cell [ref=e3356]
                      - cell [ref=e3360]
                      - cell [ref=e3364]
                      - cell [ref=e3368]
                      - cell [ref=e3372]
                      - cell [ref=e3376]
                    - row "称量瓶 m0 æ€§èƒ½ åˆ†æžå¤©å¹³ ç§°é‡" [ref=e3380]:
                      - cell "称量瓶 m0" [ref=e3381]
                      - cell "性能" [ref=e3385]
                      - cell "分析天平" [ref=e3389]
                      - cell "称量" [ref=e3393]
                      - cell [ref=e3397]
                      - cell [ref=e3401]
                      - cell [ref=e3405]
                      - cell [ref=e3409]
                      - cell [ref=e3413]
                      - cell [ref=e3417]
                      - cell [ref=e3421]
                      - cell [ref=e3425]
                    - row "水分结果 w æ€§èƒ½ æŒ‰å…¬å¼è®¡ç®—" [ref=e3429]:
                      - cell "水分结果 w" [ref=e3430]
                      - cell "性能" [ref=e3434]
                      - cell [ref=e3438]
                      - cell "按公式计算" [ref=e3442]
                      - cell [ref=e3446]
                      - cell [ref=e3450]
                      - cell [ref=e3454]
                      - cell [ref=e3458]
                      - cell [ref=e3462]
                      - cell [ref=e3466]
                      - cell [ref=e3470]
                      - cell [ref=e3474]
                    - row "酸含量 æ€§èƒ½ ç”µä½æ»´å®šä»ª é…¸å«é‡æµ‹å®šåˆ†ç»„" [ref=e3478]:
                      - cell "酸含量" [ref=e3479]
                      - cell "性能" [ref=e3483]
                      - cell "电位滴定仪" [ref=e3487]
                      - cell "酸含量测定分组" [ref=e3491]
                      - cell [ref=e3495]
                      - cell [ref=e3499]
                      - cell [ref=e3503]
                      - cell [ref=e3507]
                      - cell [ref=e3511]
                      - cell [ref=e3515]
                      - cell [ref=e3519]
                      - cell [ref=e3523]
                    - row "标液浓度 c æ€§èƒ½ è‡ªåŠ¨ç”µä½æ»´å®šä»ª æ ‡å®š" [ref=e3527]:
                      - cell "标液浓度 c" [ref=e3528]
                      - cell "性能" [ref=e3532]
                      - cell "自动电位滴定仪" [ref=e3536]
                      - cell "标定" [ref=e3540]
                      - cell [ref=e3544]
                      - cell [ref=e3548]
                      - cell [ref=e3552]
                      - cell [ref=e3556]
                      - cell [ref=e3560]
                      - cell [ref=e3564]
                      - cell [ref=e3568]
                      - cell [ref=e3572]
                    - row "消耗滴定液体积 V æ€§èƒ½ è‡ªåŠ¨ç”µä½æ»´å®šä»ª æ»´å®š" [ref=e3576]:
                      - cell "消耗滴定液体积 V" [ref=e3577]
                      - cell "性能" [ref=e3581]
                      - cell "自动电位滴定仪" [ref=e3585]
                      - cell "滴定" [ref=e3589]
                      - cell [ref=e3593]
                      - cell [ref=e3597]
                      - cell [ref=e3601]
                      - cell [ref=e3605]
                      - cell [ref=e3609]
                      - cell [ref=e3613]
                      - cell [ref=e3617]
                      - cell [ref=e3621]
                    - row "试样质量 m æ€§èƒ½ åˆ†æžå¤©å¹³ ç§°é‡" [ref=e3625]:
                      - cell "试样质量 m" [ref=e3626]
                      - cell "性能" [ref=e3630]
                      - cell "分析天平" [ref=e3634]
                      - cell "称量" [ref=e3638]
                      - cell [ref=e3642]
                      - cell [ref=e3646]
                      - cell [ref=e3650]
                      - cell [ref=e3654]
                      - cell [ref=e3658]
                      - cell [ref=e3662]
                      - cell [ref=e3666]
                      - cell [ref=e3670]
                    - row "酸含量结果 w3 æ€§èƒ½ æŒ‰å…¬å¼è®¡ç®—" [ref=e3674]:
                      - cell "酸含量结果 w3" [ref=e3675]
                      - cell "性能" [ref=e3679]
                      - cell [ref=e3683]
                      - cell "按公式计算" [ref=e3687]
                      - cell [ref=e3691]
                      - cell [ref=e3695]
                      - cell [ref=e3699]
                      - cell [ref=e3703]
                      - cell [ref=e3707]
                      - cell [ref=e3711]
                      - cell [ref=e3715]
                      - cell [ref=e3719]
                    - row "正丁醇含量 æ€§èƒ½ æ°”相色谱仪 æ­£ä¸é†‡å«é‡æµ‹å®šåˆ†ç»„" [ref=e3723]:
                      - cell "正丁醇含量" [ref=e3724]
                      - cell "性能" [ref=e3728]
                      - cell "气相色谱仪" [ref=e3732]
                      - cell "正丁醇含量测定分组" [ref=e3736]
                      - cell [ref=e3740]
                      - cell [ref=e3744]
                      - cell [ref=e3748]
                      - cell [ref=e3752]
                      - cell [ref=e3756]
                      - cell [ref=e3760]
                      - cell [ref=e3764]
                      - cell [ref=e3768]
                    - row "正丁醇含量 /% æ€§èƒ½ æ°”相色谱仪 å¤–标法" [ref=e3772]:
                      - cell "正丁醇含量 /%" [ref=e3773]
                      - cell "性能" [ref=e3777]
                      - cell "气相色谱仪" [ref=e3781]
                      - cell "外标法" [ref=e3785]
                      - cell [ref=e3789]
                      - cell [ref=e3793]
                      - cell [ref=e3797]
                      - cell [ref=e3801]
                      - cell [ref=e3805]
                      - cell [ref=e3809]
                      - cell [ref=e3813]
                      - cell [ref=e3817]
                    - row "密度 æ€§èƒ½ å¯†åº¦è®¡ å¯†åº¦ (20℃) 809~812 810" [ref=e3821]:
                      - cell "密度" [ref=e3822]
                      - cell "性能" [ref=e3826]
                      - cell "密度计" [ref=e3830]
                      - cell "密度 (20℃) 809~812" [ref=e3834]
                      - cell "810" [ref=e3838]
                      - cell [ref=e3842]
                      - cell [ref=e3846]
                      - cell [ref=e3850]
                      - cell [ref=e3854]
                      - cell [ref=e3858]
                      - cell [ref=e3862]
                      - cell [ref=e3866]
                    - row "折光率 æ€§èƒ½ é˜¿è´æŠ˜å…‰ä»ª æŠ˜å…‰çއ n²⁰D 1.399" [ref=e3870]:
                      - cell "折光率" [ref=e3871]
                      - cell "性能" [ref=e3875]
                      - cell "阿贝折光仪" [ref=e3879]
                      - cell "折光率 n²⁰D" [ref=e3883]
                      - cell "1.399" [ref=e3887]
                      - cell [ref=e3891]
                      - cell [ref=e3895]
                      - cell [ref=e3899]
                      - cell [ref=e3903]
                      - cell [ref=e3907]
                      - cell [ref=e3911]
                      - cell [ref=e3915]
              - generic [ref=e3919]:
                - table [ref=e3922]:
                  - rowgroup [ref=e3937]:
                    - row [ref=e3938]:
                      - columnheader "操作" [ref=e3939]
                - table [ref=e3946]:
                  - rowgroup [ref=e3949]:
                    - row [ref=e3950]:
                      - cell [ref=e3951]:
                        - button "缺陷列表" [ref=e3957] [cursor=pointer]
                    - row [ref=e3963]:
                      - cell [ref=e3964]:
                        - button "缺陷列表" [ref=e3970] [cursor=pointer]
                    - row [ref=e3976]:
                      - cell [ref=e3977]:
                        - button "缺陷列表" [ref=e3983] [cursor=pointer]
                    - row [ref=e3989]:
                      - cell [ref=e3990]:
                        - button "缺陷列表" [ref=e3996] [cursor=pointer]
                    - row [ref=e4002]:
                      - cell [ref=e4003]:
                        - button "缺陷列表" [ref=e4009] [cursor=pointer]
                    - row [ref=e4015]:
                      - cell [ref=e4016]:
                        - button "缺陷列表" [ref=e4022] [cursor=pointer]
                    - row [ref=e4028]:
                      - cell [ref=e4029]:
                        - button "缺陷列表" [ref=e4035] [cursor=pointer]
                    - row [ref=e4041]:
                      - cell [ref=e4042]:
                        - button "缺陷列表" [ref=e4048] [cursor=pointer]
                    - row [ref=e4054]:
                      - cell [ref=e4055]:
                        - button "缺陷列表" [ref=e4061] [cursor=pointer]
                    - row [ref=e4067]:
                      - cell [ref=e4068]:
                        - button "缺陷列表" [ref=e4074] [cursor=pointer]
                    - row [ref=e4080]:
                      - cell [ref=e4081]:
                        - button "缺陷列表" [ref=e4087] [cursor=pointer]
                    - row [ref=e4093]:
                      - cell [ref=e4094]:
                        - button "缺陷列表" [ref=e4100] [cursor=pointer]
                    - row [ref=e4106]:
                      - cell [ref=e4107]:
                        - button "缺陷列表" [ref=e4113] [cursor=pointer]
                    - row [ref=e4119]:
                      - cell [ref=e4120]:
                        - button "缺陷列表" [ref=e4126] [cursor=pointer]
                    - row [ref=e4132]:
                      - cell [ref=e4133]:
                        - button "缺陷列表" [ref=e4139] [cursor=pointer]
                    - row [ref=e4145]:
                      - cell [ref=e4146]:
                        - button "缺陷列表" [ref=e4152] [cursor=pointer]
            - generic [ref=e4170]:
              - generic [ref=e4171]: å…± 16 æ¡è®°å½•
              - generic [ref=e4173] [cursor=pointer]:
                - generic "20条/页" [ref=e4174]:
                  - textbox "请选择" [ref=e4175]: 20条/页
                - generic [ref=e4176]: î£­
              - button "" [ref=e4179]
              - button "" [ref=e4181]
              - button "" [ref=e4183]
              - button "1" [ref=e4186] [cursor=pointer]
              - button "" [ref=e4187]
              - button "" [ref=e4189]
              - button "" [ref=e4191]
    - button [ref=e4193] [cursor=pointer]
    - generic [ref=e4203]:
      - button "质检助手" [ref=e4205] [cursor=pointer]
      - button "取 æ¶ˆ" [ref=e4207] [cursor=pointer]
    - button [ref=e4209] [cursor=pointer]
.playwright-mcp/page-2026-09-18T06-20-02-132Z.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,437 @@
- generic [ref=e4]:
  - generic [ref=e7]:
    - complementary [ref=e8]:
      - generic [ref=e9]:
        - generic [ref=e10] [cursor=pointer]
        - link "工业AI智造平台 å·¥ä¸šAI智造平台" [ref=e15] [cursor=pointer]:
          - /url: javascript:void 0
          - img "工业AI智造平台" [ref=e18]
          - generic [ref=e19]: å·¥ä¸šAI智造平台
        - menu [ref=e22]:
          - menuitem "首页" [ref=e23] [cursor=pointer]
          - listitem [ref=e30]:
            - generic [ref=e31] [cursor=pointer]: åŸºç¡€æ•°æ®
          - listitem [ref=e39]:
            - generic [ref=e40] [cursor=pointer]: é‡‡è´­ç®¡ç†
          - listitem [ref=e46]:
            - generic [ref=e47] [cursor=pointer]: è¥é”€ç®¡ç†
          - listitem [ref=e53]:
            - generic [ref=e54] [cursor=pointer]: è®¾å¤‡ç®¡ç†
          - listitem [ref=e61]:
            - generic [ref=e62] [cursor=pointer]: ä»“储物流
          - listitem [ref=e70]:
            - generic [ref=e71] [cursor=pointer]: å·¥è‰ºè®¾è®¡
          - listitem [ref=e78]:
            - generic [ref=e79] [cursor=pointer]: äº§å“è®¾è®¡
          - listitem [ref=e85]:
            - generic [ref=e86] [cursor=pointer]: ç”Ÿäº§ç®¡æŽ§
          - listitem [ref=e93]:
            - generic [ref=e94] [cursor=pointer]: è´¨é‡ç®¡ç†
            - list [ref=e593]:
              - menuitem "检测项设置" [ref=e594] [cursor=pointer]
              - menuitem "质检方案" [ref=e599] [cursor=pointer]
              - menuitem "待检任务" [ref=e604] [cursor=pointer]
              - menuitem "来料检验" [ref=e611] [cursor=pointer]
              - menuitem "过程检验" [ref=e616] [cursor=pointer]
              - menuitem "退料检验" [ref=e621] [cursor=pointer]
              - menuitem "出货检验" [ref=e626] [cursor=pointer]
              - menuitem "批次追溯" [ref=e631] [cursor=pointer]
              - menuitem "不合格品处理" [ref=e637] [cursor=pointer]
              - menuitem "常见缺陷" [ref=e642] [cursor=pointer]
          - listitem [ref=e100]:
            - generic [ref=e101] [cursor=pointer]: æŠ¥è¡¨ç®¡ç†
          - listitem [ref=e108]:
            - generic [ref=e109] [cursor=pointer]: å†³ç­–BI大屏
          - listitem [ref=e115]:
            - generic [ref=e116] [cursor=pointer]: ååŒåŠžå…¬
          - listitem [ref=e122]:
            - generic [ref=e123] [cursor=pointer]: äººåŠ›èµ„æº
          - listitem [ref=e129]:
            - generic [ref=e130] [cursor=pointer]: å”®åŽç®¡ç†
          - listitem [ref=e136]:
            - generic [ref=e137] [cursor=pointer]: åŸºç¡€è®¾æ–½
          - listitem [ref=e143]:
            - generic [ref=e144] [cursor=pointer]: ç³»ç»Ÿç®¡ç†
        - generic [ref=e151] [cursor=pointer]
    - generic [ref=e156]:
      - generic [ref=e157]:
        - banner [ref=e158]:
          - button [ref=e159] [cursor=pointer]
          - button [ref=e162] [cursor=pointer]
          - navigation "breadcrumb" [ref=e167]:
            - list [ref=e168]:
              - listitem [ref=e649]:
                - link "质量管理" [ref=e650] [cursor=pointer]:
                  - /url: javascript:void 0
                - listitem [ref=e654]
              - listitem [ref=e657]:
                - link "来料检验" [disabled] [ref=e658]
          - generic [ref=e177]:
            - generic [ref=e179] [cursor=pointer]:
              - generic [ref=e183]: æœç´¢
              - generic [ref=e184]: Ctrl K
            - button [ref=e186] [cursor=pointer]
            - button "dark" [ref=e191] [cursor=pointer]
            - button [ref=e200] [cursor=pointer]
            - button [ref=e206] [cursor=pointer]
            - button [ref=e209] [cursor=pointer]
            - button [ref=e215] [cursor=pointer]:
              - button [ref=e217]
            - button "工作台" [ref=e221] [cursor=pointer]
            - button [ref=e225] [cursor=pointer]:
              - img "超级管理员" [ref=e230]
        - generic [ref=e232]:
          - generic [ref=e237]:
            - generic [ref=e238] [cursor=pointer]: é¦–页
            - generic [ref=e664] [cursor=pointer]: æ¥æ–™æ£€éªŒ
          - generic [ref=e254]:
            - button [ref=e255] [cursor=pointer]
            - generic [ref=e262] [cursor=pointer]
            - generic [ref=e266] [cursor=pointer]
      - main [ref=e273]:
        - generic [ref=e684]:
          - generic [ref=e689]:
            - generic [ref=e690]:
              - generic [ref=e691]: æ£€éªŒå•编号
              - textbox "检验单编号" [ref=e948]:
                - /placeholder: è¯·è¾“入检验单编号
            - generic [ref=e693]:
              - generic [ref=e694]: ä¾›åº”商
              - generic [ref=e700] [cursor=pointer]:
                - combobox "供应商" [ref=e702]
                - generic: è¯·é€‰æ‹©ä¾›åº”商
            - generic [ref=e703]:
              - generic [ref=e704]: ä¾›åº”商批次
              - textbox "供应商批次" [ref=e954]:
                - /placeholder: è¯·è¾“入供应商批次号
            - generic [ref=e706]:
              - generic [ref=e707]: äº§å“ç‰©æ–™
              - textbox "请选择产品物料" [ref=e714]
            - generic [ref=e717]:
              - generic [ref=e718]: æ£€æµ‹ç»“æžœ
              - generic [ref=e724] [cursor=pointer]:
                - combobox "检测结果" [ref=e726]
                - generic: è¯·é€‰æ‹©æ£€æµ‹ç»“æžœ
            - generic [ref=e727]:
              - generic [ref=e728]: æ¥æ–™æ—¥æœŸ
              - generic [ref=e962]:
                - textbox "来料日期" [ref=e964]:
                  - /placeholder: å¼€å§‹æ—¶é—´
                - generic "to" [ref=e966]:
                  - img "swap-right" [ref=e967]
                - textbox "结束时间" [ref=e971]
                - generic:
                  - img "calendar"
            - generic [ref=e730]:
              - generic [ref=e731]: æ£€æµ‹æ—¥æœŸ
              - generic [ref=e975]:
                - textbox "检测日期" [ref=e977]:
                  - /placeholder: å¼€å§‹æ—¶é—´
                - generic "to" [ref=e979]:
                  - img "swap-right" [ref=e980]
                - textbox "结束时间" [ref=e984]
                - generic:
                  - img "calendar"
            - generic [ref=e733]:
              - generic [ref=e734]: æ£€æµ‹äººå‘˜
              - generic [ref=e740] [cursor=pointer]:
                - combobox "检测人员" [ref=e742]
                - generic: è¯·é€‰æ‹©æ£€æµ‹äººå‘˜
            - generic [ref=e743]:
              - button "重 ç½®" [ref=e985] [cursor=pointer]
              - button "搜 ç´¢" [ref=e987] [cursor=pointer]
              - generic [ref=e744] [cursor=pointer]: æ”¶èµ·
          - generic [ref=e751]:
            - generic [ref=e753]:
              - generic [ref=e754]: æ¥æ–™æ£€éªŒå•列表
              - generic [ref=e758]:
                - generic [ref=e760]:
                  - button "新增来料检验单" [ref=e762] [cursor=pointer]
                  - button "导出" [ref=e766] [cursor=pointer]
                - button "" [ref=e769] [cursor=pointer]
              - generic [ref=e771]:
                - button "" [ref=e772] [cursor=pointer]
                - button "" [ref=e774] [cursor=pointer]
                - button "" [ref=e776] [cursor=pointer]
            - generic [ref=e783]:
              - generic [ref=e784]:
                - table [ref=e788]:
                  - rowgroup [ref=e805]:
                    - row [ref=e806]:
                      - columnheader "来料检验单编号" [ref=e807]
                      - columnheader "来料检验单名称" [ref=e812]
                      - columnheader "供应商简称" [ref=e817]
                      - columnheader "供应商批次号" [ref=e822]
                      - columnheader "产品物料编码" [ref=e827]
                      - columnheader "产品物料名称" [ref=e832]
                      - columnheader "接收数量" [ref=e837]
                      - columnheader "检测数量" [ref=e842]
                      - columnheader "不合格数" [ref=e847]
                      - columnheader "检测结果" [ref=e852]
                      - columnheader "来料日期" [ref=e857]
                      - columnheader "检测日期" [ref=e862]
                      - columnheader "检测人员" [ref=e867]
                      - columnheader "单据状态" [ref=e872]
                - table [ref=e993]:
                  - rowgroup [ref=e1010]:
                    - row "IQC-DEMO-03 å£¬çƒ¯æ¥æ–™æ£€éªŒ-03 JN-20260918-A03 4 å£¬çƒ¯ 800 80 4 2026-09-17 2026-09-18 å¼ ä¸‰ å·²å®Œæˆ" [ref=e1011]:
                      - cell [ref=e1012]:
                        - button "IQC-DEMO-03" [ref=e1015] [cursor=pointer]
                      - cell "壬烯来料检验-03" [ref=e1017]
                      - cell [ref=e1021]
                      - cell "JN-20260918-A03" [ref=e1025]
                      - cell "4" [ref=e1029]
                      - cell "壬烯" [ref=e1033]
                      - cell "800" [ref=e1037]
                      - cell "80" [ref=e1041]
                      - cell "4" [ref=e1045]
                      - cell [ref=e1049]
                      - cell "2026-09-17" [ref=e1051]
                      - cell "2026-09-18" [ref=e1055]
                      - cell "张三" [ref=e1059]
                      - cell "已完成" [ref=e1063]
                    - row "IQC-DEMO-02 ç²¾è˜æ¥æ–™æ£€éªŒ-02 JN-20260918-A02 2 ç²¾è˜ 1500 150 0 æ ¡éªŒé€šè¿‡ 2026-09-17 2026-09-18 å¼ ä¸‰ å·²å®Œæˆ" [ref=e1067]:
                      - cell [ref=e1068]:
                        - button "IQC-DEMO-02" [ref=e1071] [cursor=pointer]
                      - cell "精萘来料检验-02" [ref=e1073]
                      - cell [ref=e1077]
                      - cell "JN-20260918-A02" [ref=e1081]
                      - cell "2" [ref=e1085]
                      - cell "精萘" [ref=e1089]
                      - cell "1500" [ref=e1093]
                      - cell "150" [ref=e1097]
                      - cell "0" [ref=e1101]
                      - cell "校验通过" [ref=e1105]
                      - cell "2026-09-17" [ref=e1109]
                      - cell "2026-09-18" [ref=e1113]
                      - cell "张三" [ref=e1117]
                      - cell "已完成" [ref=e1121]
                    - row "IQC-DEMO-01 ç²¾è˜æ¥æ–™æ£€éªŒ-01 JN-20260918-A01 2 ç²¾è˜ 2000 200 2 æ ¡éªŒé€šè¿‡ 2026-09-17 2026-09-18 å¼ ä¸‰ å·²å®Œæˆ" [ref=e1125]:
                      - cell [ref=e1126]:
                        - button "IQC-DEMO-01" [ref=e1129] [cursor=pointer]
                      - cell "精萘来料检验-01" [ref=e1131]
                      - cell [ref=e1135]
                      - cell "JN-20260918-A01" [ref=e1139]
                      - cell "2" [ref=e1143]
                      - cell "精萘" [ref=e1147]
                      - cell "2000" [ref=e1151]
                      - cell "200" [ref=e1155]
                      - cell "2" [ref=e1159]
                      - cell "校验通过" [ref=e1163]
                      - cell "2026-09-17" [ref=e1167]
                      - cell "2026-09-18" [ref=e1171]
                      - cell "张三" [ref=e1175]
                      - cell "已完成" [ref=e1179]
                    - row "IQC_20260917001 ç²¾è˜æ¥æ–™æ£€éªŒ-0917 2 ç²¾è˜ 100 100 0 2026-09-17 2026-09-17 è¶…级管理员 è‰ç¨¿" [ref=e1183]:
                      - cell [ref=e1184]:
                        - button "IQC_20260917001" [ref=e1187] [cursor=pointer]
                      - cell "精萘来料检验-0917" [ref=e1189]
                      - cell [ref=e1193]
                      - cell [ref=e1197]
                      - cell "2" [ref=e1201]
                      - cell "精萘" [ref=e1205]
                      - cell "100" [ref=e1209]
                      - cell "100" [ref=e1213]
                      - cell "0" [ref=e1217]
                      - cell [ref=e1221]
                      - cell "2026-09-17" [ref=e1223]
                      - cell "2026-09-17" [ref=e1227]
                      - cell "超级管理员" [ref=e1231]
                      - cell "草稿" [ref=e1235]
              - generic [ref=e880]:
                - table [ref=e883]:
                  - rowgroup [ref=e900]:
                    - row [ref=e901]:
                      - columnheader "操作" [ref=e902]
                - table [ref=e1239]:
                  - rowgroup [ref=e1242]:
                    - row [ref=e1243]:
                      - cell [ref=e1244]:
                        - generic [ref=e1248]:
                          - button "详情" [ref=e1250] [cursor=pointer]
                          - button "质检报告" [ref=e1257] [cursor=pointer]
                    - row [ref=e1263]:
                      - cell [ref=e1264]:
                        - generic [ref=e1268]:
                          - button "详情" [ref=e1270] [cursor=pointer]
                          - button "质检报告" [ref=e1277] [cursor=pointer]
                    - row [ref=e1283]:
                      - cell [ref=e1284]:
                        - generic [ref=e1288]:
                          - button "详情" [ref=e1290] [cursor=pointer]
                          - button "质检报告" [ref=e1297] [cursor=pointer]
                    - row [ref=e1303]:
                      - cell [ref=e1304]:
                        - generic [ref=e1308]:
                          - button "修改" [ref=e1310] [cursor=pointer]
                          - button "删除" [ref=e1317] [cursor=pointer]
                          - button "详情" [ref=e1322] [cursor=pointer]
                          - button "质检报告" [ref=e1329] [cursor=pointer]
            - generic [ref=e921]:
              - generic [ref=e922]: å…± 4 æ¡è®°å½•
              - generic [ref=e924] [cursor=pointer]:
                - generic "20条/页" [ref=e925]:
                  - textbox "请选择" [ref=e926]: 20条/页
                - generic [ref=e927]: î£­
              - button "" [ref=e930]
              - button "" [ref=e932]
              - button "" [ref=e934]
              - button "1" [ref=e937] [cursor=pointer]
              - button "" [ref=e938]
              - button "" [ref=e940]
              - button "" [ref=e942]
  - dialog [ref=e2833]:
    - heading "查看来料检验单" [level=2] [ref=e2835]
    - generic [ref=e2837]:
      - generic [ref=e2839]:
        - generic [ref=e2840]:
          - generic [ref=e2841]:
            - generic [ref=e2842]: "*"
            - text: æ£€éªŒå•编号
          - generic [ref=e2846]:
            - textbox "* æ£€éªŒå•编号" [disabled] [ref=e2847]:
              - /placeholder: è¯·è¾“入检验单编号
              - text: IQC-DEMO-01
            - button "生 æˆ" [disabled] [ref=e2849]
        - generic [ref=e2851]:
          - generic [ref=e2852]:
            - generic [ref=e2853]: "*"
            - text: æ£€éªŒå•名称
          - textbox "* æ£€éªŒå•名称" [disabled] [ref=e2858]:
            - /placeholder: è¯·è¾“入检验单名称
            - text: ç²¾è˜æ¥æ–™æ£€éªŒ-01
        - generic [ref=e2859]:
          - generic [ref=e2860]:
            - generic [ref=e2861]: "*"
            - text: äº§å“ç‰©æ–™
          - textbox "请选择产品物料" [disabled] [ref=e2868]: ç²¾è˜
        - generic [ref=e2874]:
          - generic [ref=e2875]: ä¾›åº”商
          - generic [ref=e2881]:
            - combobox "供应商" [disabled] [ref=e2883]
            - generic: è¯·é€‰æ‹©ä¾›åº”商
        - generic [ref=e2884]:
          - generic [ref=e2885]: ä¾›åº”商批次号
          - textbox "供应商批次号" [disabled] [ref=e2890]:
            - /placeholder: è¯·è¾“入供应商批次号
            - text: JN-20260918-A01
        - generic [ref=e2891]:
          - generic [ref=e2892]:
            - generic [ref=e2893]: "*"
            - text: æœ¬æ¬¡æŽ¥æ”¶æ•°é‡
          - spinbutton "* æœ¬æ¬¡æŽ¥æ”¶æ•°é‡" [disabled] [ref=e2900]: "2000.00"
        - generic [ref=e2901]:
          - generic [ref=e2902]:
            - generic [ref=e2903]: "*"
            - text: åˆæ ¼å“æ•°é‡
          - spinbutton "* åˆæ ¼å“æ•°é‡" [disabled] [ref=e2910]: "198"
        - generic [ref=e2911]:
          - generic [ref=e2912]:
            - generic [ref=e2913]: "*"
            - text: ä¸åˆæ ¼å“æ•°é‡
            - img [ref=e2914] [cursor=pointer]
          - spinbutton "* ä¸åˆæ ¼å“æ•°é‡" [disabled] [ref=e2923]: "2"
        - generic [ref=e2924]:
          - generic [ref=e2925]:
            - generic [ref=e2926]: "*"
            - text: æ¥æ–™æ—¥æœŸ
          - generic [ref=e2932]:
            - textbox "* æ¥æ–™æ—¥æœŸ" [disabled] [ref=e2933]:
              - /placeholder: è¯·é€‰æ‹©æ¥æ–™æ—¥æœŸ
              - text: 2026-09-17
            - generic:
              - img "calendar"
        - generic [ref=e2934]:
          - generic [ref=e2935]:
            - generic [ref=e2936]: "*"
            - text: æ£€æµ‹äººå‘˜
          - generic [ref=e2942]:
            - combobox "* æ£€æµ‹äººå‘˜" [disabled] [ref=e2944]
            - generic "张三" [ref=e2945]
        - generic [ref=e2946]:
          - generic [ref=e2947]:
            - generic [ref=e2948]: "*"
            - text: æ£€æµ‹æ—¥æœŸ
          - generic [ref=e2954]:
            - textbox "* æ£€æµ‹æ—¥æœŸ" [disabled] [ref=e2955]:
              - /placeholder: è¯·é€‰æ‹©æ£€æµ‹æ—¥æœŸ
              - text: 2026-09-18
            - generic:
              - img "calendar"
        - generic [ref=e2956]:
          - generic [ref=e2957]: æ£€æµ‹ç»“æžœ
          - generic [ref=e2963]:
            - combobox "检测结果" [disabled] [ref=e2965]
            - generic "校验通过" [ref=e2966]
        - generic [ref=e2967]:
          - generic [ref=e2968]: å¤‡æ³¨
          - textbox "备注" [disabled] [ref=e2973]:
            - /placeholder: è¯·è¾“入备注
            - text: æ¼”示数据
      - generic [ref=e2975]:
        - generic [ref=e2976]: ç¼ºé™·æƒ…况
        - table [ref=e2979]:
          - rowgroup [ref=e2980]:
            - row [ref=e2981]:
              - rowheader "致命缺陷数" [ref=e2982]
              - cell "0" [ref=e2983]
              - rowheader "严重缺陷数" [ref=e2985]
              - cell "0" [ref=e2986]
              - rowheader "轻微缺陷数" [ref=e2988]
              - cell "0" [ref=e2989]
            - row [ref=e2991]:
              - rowheader "致命缺陷率" [ref=e2992]
              - cell "0%" [ref=e2993]
              - rowheader "严重缺陷率" [ref=e2995]
              - cell "0%" [ref=e2996]
              - rowheader "轻微缺陷率" [ref=e2998]
              - cell "0%" [ref=e2999]
      - generic [ref=e3001]:
        - tablist [ref=e3002]:
          - generic [ref=e3004]:
            - tab "检验项" [ref=e3006] [cursor=pointer]
            - tab "检测结果" [active] [selected] [ref=e3008] [cursor=pointer]
        - generic [ref=e3010]:
          - text: î©Š îœŽ î˜­ î£­ ïŠ” î™¥ î„ îƒ î™¦ î˜‡
          - tabpanel "检测结果" [ref=e4213]:
            - generic [ref=e4218]:
              - generic [ref=e4220]:
                - generic [ref=e4221]: æ£€æµ‹ç»“æžœ
                - generic [ref=e4224]:
                  - button "" [ref=e4225] [cursor=pointer]
                  - button "" [ref=e4227] [cursor=pointer]
                  - button "" [ref=e4229] [cursor=pointer]
              - generic [ref=e4237]:
                - table [ref=e4241]:
                  - rowgroup [ref=e4247]:
                    - row [ref=e4248]:
                      - columnheader "样品编号" [ref=e4249]
                      - columnheader "物资SN" [ref=e4254]
                      - columnheader "备注" [ref=e4259]
                      - columnheader "操作" [ref=e4264]
                - table [ref=e4272]:
                  - rowgroup [ref=e4278]:
                    - row "MIR-DEMO-01 YP-A001 è¯¦æƒ…" [ref=e4279]:
                      - cell "MIR-DEMO-01" [ref=e4280]
                      - cell "YP-A001" [ref=e4284]
                      - cell [ref=e4288]
                      - cell [ref=e4292]:
                        - button "详情" [ref=e4298] [cursor=pointer]
              - generic [ref=e4306]:
                - generic [ref=e4307]: å…± 1 æ¡è®°å½•
                - generic [ref=e4309] [cursor=pointer]:
                  - generic "20条/页" [ref=e4310]:
                    - textbox "请选择" [ref=e4311]: 20条/页
                  - generic [ref=e4312]: î£­
                - button "" [ref=e4315]
                - button "" [ref=e4317]
                - button "" [ref=e4319]
                - button "1" [ref=e4322] [cursor=pointer]
                - button "" [ref=e4323]
                - button "" [ref=e4325]
                - button "" [ref=e4327]
    - button [ref=e4193] [cursor=pointer]
    - generic [ref=e4203]:
      - button "质检助手" [ref=e4205] [cursor=pointer]
      - button "取 æ¶ˆ" [ref=e4207] [cursor=pointer]
    - button [ref=e4209] [cursor=pointer]
.playwright-mcp/page-2026-09-18T06-22-24-743Z.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,504 @@
- generic [ref=e4]:
  - generic [ref=e7]:
    - complementary [ref=e8]:
      - generic [ref=e9]:
        - generic [ref=e10] [cursor=pointer]
        - link "工业AI智造平台 å·¥ä¸šAI智造平台" [ref=e15] [cursor=pointer]:
          - /url: javascript:void 0
          - img "工业AI智造平台" [ref=e18]
          - generic [ref=e19]: å·¥ä¸šAI智造平台
        - menu [ref=e22]:
          - menuitem "首页" [ref=e23] [cursor=pointer]
          - listitem [ref=e30]:
            - generic [ref=e31] [cursor=pointer]: åŸºç¡€æ•°æ®
          - listitem [ref=e39]:
            - generic [ref=e40] [cursor=pointer]: é‡‡è´­ç®¡ç†
          - listitem [ref=e46]:
            - generic [ref=e47] [cursor=pointer]: è¥é”€ç®¡ç†
          - listitem [ref=e53]:
            - generic [ref=e54] [cursor=pointer]: è®¾å¤‡ç®¡ç†
          - listitem [ref=e61]:
            - generic [ref=e62] [cursor=pointer]: ä»“储物流
          - listitem [ref=e70]:
            - generic [ref=e71] [cursor=pointer]: å·¥è‰ºè®¾è®¡
          - listitem [ref=e78]:
            - generic [ref=e79] [cursor=pointer]: äº§å“è®¾è®¡
          - listitem [ref=e85]:
            - generic [ref=e86] [cursor=pointer]: ç”Ÿäº§ç®¡æŽ§
          - listitem [ref=e93]:
            - generic [ref=e94] [cursor=pointer]: è´¨é‡ç®¡ç†
            - list [ref=e593]:
              - menuitem "检测项设置" [ref=e594] [cursor=pointer]
              - menuitem "质检方案" [ref=e599] [cursor=pointer]
              - menuitem "待检任务" [ref=e604] [cursor=pointer]
              - menuitem "来料检验" [ref=e611] [cursor=pointer]
              - menuitem "过程检验" [ref=e616] [cursor=pointer]
              - menuitem "退料检验" [ref=e621] [cursor=pointer]
              - menuitem "出货检验" [ref=e626] [cursor=pointer]
              - menuitem "批次追溯" [ref=e631] [cursor=pointer]
              - menuitem "不合格品处理" [ref=e637] [cursor=pointer]
              - menuitem "常见缺陷" [ref=e642] [cursor=pointer]
          - listitem [ref=e100]:
            - generic [ref=e101] [cursor=pointer]: æŠ¥è¡¨ç®¡ç†
          - listitem [ref=e108]:
            - generic [ref=e109] [cursor=pointer]: å†³ç­–BI大屏
          - listitem [ref=e115]:
            - generic [ref=e116] [cursor=pointer]: ååŒåŠžå…¬
          - listitem [ref=e122]:
            - generic [ref=e123] [cursor=pointer]: äººåŠ›èµ„æº
          - listitem [ref=e129]:
            - generic [ref=e130] [cursor=pointer]: å”®åŽç®¡ç†
          - listitem [ref=e136]:
            - generic [ref=e137] [cursor=pointer]: åŸºç¡€è®¾æ–½
          - listitem [ref=e143]:
            - generic [ref=e144] [cursor=pointer]: ç³»ç»Ÿç®¡ç†
        - generic [ref=e151] [cursor=pointer]
    - generic [ref=e156]:
      - generic [ref=e157]:
        - banner [ref=e158]:
          - button [ref=e159] [cursor=pointer]
          - button [ref=e162] [cursor=pointer]
          - navigation "breadcrumb" [ref=e167]:
            - list [ref=e168]:
              - listitem [ref=e649]:
                - link "质量管理" [ref=e650] [cursor=pointer]:
                  - /url: javascript:void 0
                - listitem [ref=e654]
              - listitem [ref=e657]:
                - link "来料检验" [disabled] [ref=e658]
          - generic [ref=e177]:
            - generic [ref=e179] [cursor=pointer]:
              - generic [ref=e183]: æœç´¢
              - generic [ref=e184]: Ctrl K
            - button [ref=e186] [cursor=pointer]
            - button "dark" [ref=e191] [cursor=pointer]
            - button [ref=e200] [cursor=pointer]
            - button [ref=e206] [cursor=pointer]
            - button [ref=e209] [cursor=pointer]
            - button [ref=e215] [cursor=pointer]:
              - button [ref=e217]
            - button "工作台" [ref=e221] [cursor=pointer]
            - button [ref=e225] [cursor=pointer]:
              - img "超级管理员" [ref=e230]
        - generic [ref=e232]:
          - generic [ref=e237]:
            - generic [ref=e238] [cursor=pointer]: é¦–页
            - generic [ref=e664] [cursor=pointer]: æ¥æ–™æ£€éªŒ
          - generic [ref=e254]:
            - button [ref=e255] [cursor=pointer]
            - generic [ref=e262] [cursor=pointer]
            - generic [ref=e266] [cursor=pointer]
      - main [ref=e273]:
        - generic [ref=e684]:
          - generic [ref=e689]:
            - generic [ref=e690]:
              - generic [ref=e691]: æ£€éªŒå•编号
              - textbox "检验单编号" [ref=e948]:
                - /placeholder: è¯·è¾“入检验单编号
            - generic [ref=e693]:
              - generic [ref=e694]: ä¾›åº”商
              - generic [ref=e700] [cursor=pointer]:
                - combobox "供应商" [ref=e702]
                - generic: è¯·é€‰æ‹©ä¾›åº”商
            - generic [ref=e703]:
              - generic [ref=e704]: ä¾›åº”商批次
              - textbox "供应商批次" [ref=e954]:
                - /placeholder: è¯·è¾“入供应商批次号
            - generic [ref=e706]:
              - generic [ref=e707]: äº§å“ç‰©æ–™
              - textbox "请选择产品物料" [ref=e714]
            - generic [ref=e717]:
              - generic [ref=e718]: æ£€æµ‹ç»“æžœ
              - generic [ref=e724] [cursor=pointer]:
                - combobox "检测结果" [ref=e726]
                - generic: è¯·é€‰æ‹©æ£€æµ‹ç»“æžœ
            - generic [ref=e727]:
              - generic [ref=e728]: æ¥æ–™æ—¥æœŸ
              - generic [ref=e962]:
                - textbox "来料日期" [ref=e964]:
                  - /placeholder: å¼€å§‹æ—¶é—´
                - generic "to" [ref=e966]:
                  - img "swap-right" [ref=e967]
                - textbox "结束时间" [ref=e971]
                - generic:
                  - img "calendar"
            - generic [ref=e730]:
              - generic [ref=e731]: æ£€æµ‹æ—¥æœŸ
              - generic [ref=e975]:
                - textbox "检测日期" [ref=e977]:
                  - /placeholder: å¼€å§‹æ—¶é—´
                - generic "to" [ref=e979]:
                  - img "swap-right" [ref=e980]
                - textbox "结束时间" [ref=e984]
                - generic:
                  - img "calendar"
            - generic [ref=e733]:
              - generic [ref=e734]: æ£€æµ‹äººå‘˜
              - generic [ref=e740] [cursor=pointer]:
                - combobox "检测人员" [ref=e742]
                - generic: è¯·é€‰æ‹©æ£€æµ‹äººå‘˜
            - generic [ref=e743]:
              - button "重 ç½®" [ref=e985] [cursor=pointer]
              - button "搜 ç´¢" [ref=e987] [cursor=pointer]
              - generic [ref=e744] [cursor=pointer]: æ”¶èµ·
          - generic [ref=e751]:
            - generic [ref=e753]:
              - generic [ref=e754]: æ¥æ–™æ£€éªŒå•列表
              - generic [ref=e758]:
                - generic [ref=e760]:
                  - button "新增来料检验单" [ref=e762] [cursor=pointer]
                  - button "导出" [ref=e766] [cursor=pointer]
                - button "" [ref=e769] [cursor=pointer]
              - generic [ref=e771]:
                - button "" [ref=e772] [cursor=pointer]
                - button "" [ref=e774] [cursor=pointer]
                - button "" [ref=e776] [cursor=pointer]
            - generic [ref=e783]:
              - generic [ref=e784]:
                - table [ref=e788]:
                  - rowgroup [ref=e805]:
                    - row [ref=e806]:
                      - columnheader "来料检验单编号" [ref=e807]
                      - columnheader "来料检验单名称" [ref=e812]
                      - columnheader "供应商简称" [ref=e817]
                      - columnheader "供应商批次号" [ref=e822]
                      - columnheader "产品物料编码" [ref=e827]
                      - columnheader "产品物料名称" [ref=e832]
                      - columnheader "接收数量" [ref=e837]
                      - columnheader "检测数量" [ref=e842]
                      - columnheader "不合格数" [ref=e847]
                      - columnheader "检测结果" [ref=e852]
                      - columnheader "来料日期" [ref=e857]
                      - columnheader "检测日期" [ref=e862]
                      - columnheader "检测人员" [ref=e867]
                      - columnheader "单据状态" [ref=e872]
                - table [ref=e993]:
                  - rowgroup [ref=e1010]:
                    - row "IQC-DEMO-03 å£¬çƒ¯æ¥æ–™æ£€éªŒ-03 JN-20260918-A03 4 å£¬çƒ¯ 800 80 4 2026-09-17 2026-09-18 å¼ ä¸‰ å·²å®Œæˆ" [ref=e1011]:
                      - cell [ref=e1012]:
                        - button "IQC-DEMO-03" [ref=e1015] [cursor=pointer]
                      - cell "壬烯来料检验-03" [ref=e1017]
                      - cell [ref=e1021]
                      - cell "JN-20260918-A03" [ref=e1025]
                      - cell "4" [ref=e1029]
                      - cell "壬烯" [ref=e1033]
                      - cell "800" [ref=e1037]
                      - cell "80" [ref=e1041]
                      - cell "4" [ref=e1045]
                      - cell [ref=e1049]
                      - cell "2026-09-17" [ref=e1051]
                      - cell "2026-09-18" [ref=e1055]
                      - cell "张三" [ref=e1059]
                      - cell "已完成" [ref=e1063]
                    - row "IQC-DEMO-02 ç²¾è˜æ¥æ–™æ£€éªŒ-02 JN-20260918-A02 2 ç²¾è˜ 1500 150 0 æ ¡éªŒé€šè¿‡ 2026-09-17 2026-09-18 å¼ ä¸‰ å·²å®Œæˆ" [ref=e1067]:
                      - cell [ref=e1068]:
                        - button "IQC-DEMO-02" [ref=e1071] [cursor=pointer]
                      - cell "精萘来料检验-02" [ref=e1073]
                      - cell [ref=e1077]
                      - cell "JN-20260918-A02" [ref=e1081]
                      - cell "2" [ref=e1085]
                      - cell "精萘" [ref=e1089]
                      - cell "1500" [ref=e1093]
                      - cell "150" [ref=e1097]
                      - cell "0" [ref=e1101]
                      - cell "校验通过" [ref=e1105]
                      - cell "2026-09-17" [ref=e1109]
                      - cell "2026-09-18" [ref=e1113]
                      - cell "张三" [ref=e1117]
                      - cell "已完成" [ref=e1121]
                    - row "IQC-DEMO-01 ç²¾è˜æ¥æ–™æ£€éªŒ-01 JN-20260918-A01 2 ç²¾è˜ 2000 200 2 æ ¡éªŒé€šè¿‡ 2026-09-17 2026-09-18 å¼ ä¸‰ å·²å®Œæˆ" [ref=e1125]:
                      - cell [ref=e1126]:
                        - button "IQC-DEMO-01" [ref=e1129] [cursor=pointer]
                      - cell "精萘来料检验-01" [ref=e1131]
                      - cell [ref=e1135]
                      - cell "JN-20260918-A01" [ref=e1139]
                      - cell "2" [ref=e1143]
                      - cell "精萘" [ref=e1147]
                      - cell "2000" [ref=e1151]
                      - cell "200" [ref=e1155]
                      - cell "2" [ref=e1159]
                      - cell "校验通过" [ref=e1163]
                      - cell "2026-09-17" [ref=e1167]
                      - cell "2026-09-18" [ref=e1171]
                      - cell "张三" [ref=e1175]
                      - cell "已完成" [ref=e1179]
                    - row "IQC_20260917001 ç²¾è˜æ¥æ–™æ£€éªŒ-0917 2 ç²¾è˜ 100 100 0 2026-09-17 2026-09-17 è¶…级管理员 è‰ç¨¿" [ref=e1183]:
                      - cell [ref=e1184]:
                        - button "IQC_20260917001" [ref=e1187] [cursor=pointer]
                      - cell "精萘来料检验-0917" [ref=e1189]
                      - cell [ref=e1193]
                      - cell [ref=e1197]
                      - cell "2" [ref=e1201]
                      - cell "精萘" [ref=e1205]
                      - cell "100" [ref=e1209]
                      - cell "100" [ref=e1213]
                      - cell "0" [ref=e1217]
                      - cell [ref=e1221]
                      - cell "2026-09-17" [ref=e1223]
                      - cell "2026-09-17" [ref=e1227]
                      - cell "超级管理员" [ref=e1231]
                      - cell "草稿" [ref=e1235]
              - generic [ref=e880]:
                - table [ref=e883]:
                  - rowgroup [ref=e900]:
                    - row [ref=e901]:
                      - columnheader "操作" [ref=e902]
                - table [ref=e1239]:
                  - rowgroup [ref=e1242]:
                    - row [ref=e1243]:
                      - cell [ref=e1244]:
                        - generic [ref=e1248]:
                          - button "详情" [ref=e1250] [cursor=pointer]
                          - button "质检报告" [ref=e1257] [cursor=pointer]
                    - row [ref=e1263]:
                      - cell [ref=e1264]:
                        - generic [ref=e1268]:
                          - button "详情" [ref=e1270] [cursor=pointer]
                          - button "质检报告" [ref=e1277] [cursor=pointer]
                    - row [ref=e1283]:
                      - cell [ref=e1284]:
                        - generic [ref=e1288]:
                          - button "详情" [ref=e1290] [cursor=pointer]
                          - button "质检报告" [ref=e1297] [cursor=pointer]
                    - row [ref=e1303]:
                      - cell [ref=e1304]:
                        - generic [ref=e1308]:
                          - button "修改" [ref=e1310] [cursor=pointer]
                          - button "删除" [ref=e1317] [cursor=pointer]
                          - button "详情" [ref=e1322] [cursor=pointer]
                          - button "质检报告" [ref=e1329] [cursor=pointer]
            - generic [ref=e921]:
              - generic [ref=e922]: å…± 4 æ¡è®°å½•
              - generic [ref=e924] [cursor=pointer]:
                - generic "20条/页" [ref=e925]:
                  - textbox "请选择" [ref=e926]: 20条/页
                - generic [ref=e927]: î£­
              - button "" [ref=e930]
              - button "" [ref=e932]
              - button "" [ref=e934]
              - button "1" [ref=e937] [cursor=pointer]
              - button "" [ref=e938]
              - button "" [ref=e940]
              - button "" [ref=e942]
  - dialog [ref=e2833]:
    - heading "查看来料检验单" [level=2] [ref=e2835]
    - generic [ref=e2837]:
      - generic [ref=e2839]:
        - generic [ref=e2840]:
          - generic [ref=e2841]:
            - generic [ref=e2842]: "*"
            - text: æ£€éªŒå•编号
          - generic [ref=e2846]:
            - textbox "* æ£€éªŒå•编号" [disabled] [ref=e2847]:
              - /placeholder: è¯·è¾“入检验单编号
              - text: IQC-DEMO-01
            - button "生 æˆ" [disabled] [ref=e2849]
        - generic [ref=e2851]:
          - generic [ref=e2852]:
            - generic [ref=e2853]: "*"
            - text: æ£€éªŒå•名称
          - textbox "* æ£€éªŒå•名称" [disabled] [ref=e2858]:
            - /placeholder: è¯·è¾“入检验单名称
            - text: ç²¾è˜æ¥æ–™æ£€éªŒ-01
        - generic [ref=e2859]:
          - generic [ref=e2860]:
            - generic [ref=e2861]: "*"
            - text: äº§å“ç‰©æ–™
          - textbox "请选择产品物料" [disabled] [ref=e2868]: ç²¾è˜
        - generic [ref=e2874]:
          - generic [ref=e2875]: ä¾›åº”商
          - generic [ref=e2881]:
            - combobox "供应商" [disabled] [ref=e2883]
            - generic: è¯·é€‰æ‹©ä¾›åº”商
        - generic [ref=e2884]:
          - generic [ref=e2885]: ä¾›åº”商批次号
          - textbox "供应商批次号" [disabled] [ref=e2890]:
            - /placeholder: è¯·è¾“入供应商批次号
            - text: JN-20260918-A01
        - generic [ref=e2891]:
          - generic [ref=e2892]:
            - generic [ref=e2893]: "*"
            - text: æœ¬æ¬¡æŽ¥æ”¶æ•°é‡
          - spinbutton "* æœ¬æ¬¡æŽ¥æ”¶æ•°é‡" [disabled] [ref=e2900]: "2000.00"
        - generic [ref=e2901]:
          - generic [ref=e2902]:
            - generic [ref=e2903]: "*"
            - text: åˆæ ¼å“æ•°é‡
          - spinbutton "* åˆæ ¼å“æ•°é‡" [disabled] [ref=e2910]: "198"
        - generic [ref=e2911]:
          - generic [ref=e2912]:
            - generic [ref=e2913]: "*"
            - text: ä¸åˆæ ¼å“æ•°é‡
            - img [ref=e2914] [cursor=pointer]
          - spinbutton "* ä¸åˆæ ¼å“æ•°é‡" [disabled] [ref=e2923]: "2"
        - generic [ref=e2924]:
          - generic [ref=e2925]:
            - generic [ref=e2926]: "*"
            - text: æ¥æ–™æ—¥æœŸ
          - generic [ref=e2932]:
            - textbox "* æ¥æ–™æ—¥æœŸ" [disabled] [ref=e2933]:
              - /placeholder: è¯·é€‰æ‹©æ¥æ–™æ—¥æœŸ
              - text: 2026-09-17
            - generic:
              - img "calendar"
        - generic [ref=e2934]:
          - generic [ref=e2935]:
            - generic [ref=e2936]: "*"
            - text: æ£€æµ‹äººå‘˜
          - generic [ref=e2942]:
            - combobox "* æ£€æµ‹äººå‘˜" [disabled] [ref=e2944]
            - generic "张三" [ref=e2945]
        - generic [ref=e2946]:
          - generic [ref=e2947]:
            - generic [ref=e2948]: "*"
            - text: æ£€æµ‹æ—¥æœŸ
          - generic [ref=e2954]:
            - textbox "* æ£€æµ‹æ—¥æœŸ" [disabled] [ref=e2955]:
              - /placeholder: è¯·é€‰æ‹©æ£€æµ‹æ—¥æœŸ
              - text: 2026-09-18
            - generic:
              - img "calendar"
        - generic [ref=e2956]:
          - generic [ref=e2957]: æ£€æµ‹ç»“æžœ
          - generic [ref=e2963]:
            - combobox "检测结果" [disabled] [ref=e2965]
            - generic "校验通过" [ref=e2966]
        - generic [ref=e2967]:
          - generic [ref=e2968]: å¤‡æ³¨
          - textbox "备注" [disabled] [ref=e2973]:
            - /placeholder: è¯·è¾“入备注
            - text: æ¼”示数据
      - generic [ref=e2975]:
        - generic [ref=e2976]: ç¼ºé™·æƒ…况
        - table [ref=e2979]:
          - rowgroup [ref=e2980]:
            - row [ref=e2981]:
              - rowheader "致命缺陷数" [ref=e2982]
              - cell "0" [ref=e2983]
              - rowheader "严重缺陷数" [ref=e2985]
              - cell "0" [ref=e2986]
              - rowheader "轻微缺陷数" [ref=e2988]
              - cell "0" [ref=e2989]
            - row [ref=e2991]:
              - rowheader "致命缺陷率" [ref=e2992]
              - cell "0%" [ref=e2993]
              - rowheader "严重缺陷率" [ref=e2995]
              - cell "0%" [ref=e2996]
              - rowheader "轻微缺陷率" [ref=e2998]
              - cell "0%" [ref=e2999]
      - generic [ref=e3001]:
        - tablist [ref=e3002]:
          - generic [ref=e3004]:
            - tab "检验项" [ref=e3006] [cursor=pointer]
            - tab "检测结果" [selected] [ref=e3008] [cursor=pointer]
        - generic [ref=e3010]:
          - text: î©Š îœŽ î˜­ î£­ ïŠ” î™¥ î„ îƒ î™¦ î˜‡
          - tabpanel "检测结果" [ref=e4213]:
            - generic [ref=e4218]:
              - generic [ref=e4220]:
                - generic [ref=e4221]: æ£€æµ‹ç»“æžœ
                - generic [ref=e4224]:
                  - button "" [ref=e4225] [cursor=pointer]
                  - button "" [ref=e4227] [cursor=pointer]
                  - button "" [ref=e4229] [cursor=pointer]
              - generic [ref=e4237]:
                - table [ref=e4241]:
                  - rowgroup [ref=e4247]:
                    - row [ref=e4248]:
                      - columnheader "样品编号" [ref=e4249]
                      - columnheader "物资SN" [ref=e4254]
                      - columnheader "备注" [ref=e4259]
                      - columnheader "操作" [ref=e4264]
                - table [ref=e4272]:
                  - rowgroup [ref=e4278]:
                    - row "MIR-DEMO-01 YP-A001 è¯¦æƒ…" [ref=e4279]:
                      - cell "MIR-DEMO-01" [ref=e4280]
                      - cell "YP-A001" [ref=e4284]
                      - cell [ref=e4288]
                      - cell [ref=e4292]:
                        - button "详情" [active] [ref=e4298] [cursor=pointer]
              - generic [ref=e4306]:
                - generic [ref=e4307]: å…± 1 æ¡è®°å½•
                - generic [ref=e4309] [cursor=pointer]:
                  - generic "20条/页" [ref=e4310]:
                    - textbox "请选择" [ref=e4311]: 20条/页
                  - generic [ref=e4312]: î£­
                - button "" [ref=e4315]
                - button "" [ref=e4317]
                - button "" [ref=e4319]
                - button "1" [ref=e4322] [cursor=pointer]
                - button "" [ref=e4323]
                - button "" [ref=e4325]
                - button "" [ref=e4327]
    - button [ref=e4193] [cursor=pointer]
    - generic [ref=e4203]:
      - button "质检助手" [ref=e4205] [cursor=pointer]
      - button "取 æ¶ˆ" [ref=e4207] [cursor=pointer]
    - button [ref=e4209] [cursor=pointer]
  - dialog [ref=e4330]:
    - heading "查看检验结果" [level=2] [ref=e4332]
    - generic [ref=e4335]:
      - generic [ref=e4337]:
        - generic [ref=e4338]:
          - generic [ref=e4339]:
            - generic [ref=e4340]: "*"
            - text: æ ·å“ç¼–号
          - generic [ref=e4344]:
            - textbox "* æ ·å“ç¼–号" [disabled] [ref=e4345]:
              - /placeholder: è¯·è¾“入样品编号
              - text: MIR-DEMO-01
            - button "生 æˆ" [ref=e4347] [cursor=pointer]
        - generic [ref=e4349]:
          - generic [ref=e4350]: ç‰©èµ„ SN
          - textbox "物资 SN" [disabled] [ref=e4355]:
            - /placeholder: è¯·è¾“入物资 SN
            - text: YP-A001
        - generic [ref=e4356]:
          - generic [ref=e4357]: å¤‡æ³¨
          - textbox "备注" [disabled] [ref=e4362]:
            - /placeholder: è¯·è¾“入备注
      - separator [ref=e4363]:
        - generic [ref=e4364]: æ£€æµ‹å€¼
      - generic [ref=e4365]:
        - generic [ref=e4368]:
          - generic "检测项1:外观" [ref=e4370]: "检测项1:外观 :"
          - textbox [disabled] [ref=e4374]: æ¾„清透明液体,无机械杂质
        - generic [ref=e4377]:
          - generic "检测项2:色度(Hazen)" [ref=e4379]: "检测项2:色度(Hazen) :"
          - textbox [disabled] [ref=e4383]: "5"
        - generic [ref=e4386]:
          - generic "检测项3:试样质量 m(g)" [ref=e4388]: "检测项3:试样质量 m(g) :"
          - textbox [disabled] [ref=e4392]: "10.52"
        - generic [ref=e4395]:
          - generic "检测项4:试样+称量瓶 m1(g)" [ref=e4397]: "检测项4:试样+称量瓶 m1(g) :"
          - textbox [disabled] [ref=e4401]: "12.35"
        - generic [ref=e4404]:
          - generic "检测项5:称量瓶 m0(g)" [ref=e4406]: "检测项5:称量瓶 m0(g) :"
          - textbox [disabled] [ref=e4410]: "1.83"
        - generic [ref=e4413]:
          - generic "检测项6:水分结果 w(%)" [ref=e4415]: "检测项6:水分结果 w(%) :"
          - textbox [disabled] [ref=e4419]: "0.048"
        - generic [ref=e4422]:
          - generic "检测项7:标液浓度 c(mol/L)" [ref=e4424]: "检测项7:标液浓度 c(mol/L) :"
          - textbox [disabled] [ref=e4428]: "0.1005"
        - generic [ref=e4431]:
          - generic "检测项8:消耗滴定液体积 V(mL)" [ref=e4433]: "检测项8:消耗滴定液体积 V(mL) :"
          - textbox [disabled] [ref=e4437]: "0.15"
        - generic [ref=e4440]:
          - generic "检测项9:试样质量 m(g)" [ref=e4442]: "检测项9:试样质量 m(g) :"
          - textbox [disabled] [ref=e4446]: "10.02"
        - generic [ref=e4449]:
          - generic "检测项10:酸含量结果 w3(%)" [ref=e4451]: "检测项10:酸含量结果 w3(%) :"
          - textbox [disabled] [ref=e4455]: 0.090、0.095
        - generic [ref=e4458]:
          - generic "检测项11:正丁醇含量 /%(%)" [ref=e4460]: "检测项11:正丁醇含量 /%(%) :"
          - textbox [disabled] [ref=e4464]: 99.82、99.85、99.87
        - generic [ref=e4467]:
          - generic "检测项12:密度(kg/m³)" [ref=e4469]: "检测项12:密度(kg/m³) :"
          - textbox [disabled] [ref=e4473]: "810"
        - generic [ref=e4476]:
          - generic "检测项13:折光率(n²⁰D)" [ref=e4478]: "检测项13:折光率(n²⁰D) :"
          - textbox [disabled] [ref=e4482]: "1.3993"
    - button [ref=e4483] [cursor=pointer]
    - button "取 æ¶ˆ" [ref=e4494] [cursor=pointer]
    - button [ref=e4496] [cursor=pointer]
.playwright-mcp/page-2026-09-18T06-22-49-485Z.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,437 @@
- generic [ref=e4]:
  - generic [ref=e7]:
    - complementary [ref=e8]:
      - generic [ref=e9]:
        - generic [ref=e10] [cursor=pointer]
        - link "工业AI智造平台 å·¥ä¸šAI智造平台" [ref=e15] [cursor=pointer]:
          - /url: javascript:void 0
          - img "工业AI智造平台" [ref=e18]
          - generic [ref=e19]: å·¥ä¸šAI智造平台
        - menu [ref=e22]:
          - menuitem "首页" [ref=e23] [cursor=pointer]
          - listitem [ref=e30]:
            - generic [ref=e31] [cursor=pointer]: åŸºç¡€æ•°æ®
          - listitem [ref=e39]:
            - generic [ref=e40] [cursor=pointer]: é‡‡è´­ç®¡ç†
          - listitem [ref=e46]:
            - generic [ref=e47] [cursor=pointer]: è¥é”€ç®¡ç†
          - listitem [ref=e53]:
            - generic [ref=e54] [cursor=pointer]: è®¾å¤‡ç®¡ç†
          - listitem [ref=e61]:
            - generic [ref=e62] [cursor=pointer]: ä»“储物流
          - listitem [ref=e70]:
            - generic [ref=e71] [cursor=pointer]: å·¥è‰ºè®¾è®¡
          - listitem [ref=e78]:
            - generic [ref=e79] [cursor=pointer]: äº§å“è®¾è®¡
          - listitem [ref=e85]:
            - generic [ref=e86] [cursor=pointer]: ç”Ÿäº§ç®¡æŽ§
          - listitem [ref=e93]:
            - generic [ref=e94] [cursor=pointer]: è´¨é‡ç®¡ç†
            - list [ref=e593]:
              - menuitem "检测项设置" [ref=e594] [cursor=pointer]
              - menuitem "质检方案" [ref=e599] [cursor=pointer]
              - menuitem "待检任务" [ref=e604] [cursor=pointer]
              - menuitem "来料检验" [ref=e611] [cursor=pointer]
              - menuitem "过程检验" [ref=e616] [cursor=pointer]
              - menuitem "退料检验" [ref=e621] [cursor=pointer]
              - menuitem "出货检验" [ref=e626] [cursor=pointer]
              - menuitem "批次追溯" [ref=e631] [cursor=pointer]
              - menuitem "不合格品处理" [ref=e637] [cursor=pointer]
              - menuitem "常见缺陷" [ref=e642] [cursor=pointer]
          - listitem [ref=e100]:
            - generic [ref=e101] [cursor=pointer]: æŠ¥è¡¨ç®¡ç†
          - listitem [ref=e108]:
            - generic [ref=e109] [cursor=pointer]: å†³ç­–BI大屏
          - listitem [ref=e115]:
            - generic [ref=e116] [cursor=pointer]: ååŒåŠžå…¬
          - listitem [ref=e122]:
            - generic [ref=e123] [cursor=pointer]: äººåŠ›èµ„æº
          - listitem [ref=e129]:
            - generic [ref=e130] [cursor=pointer]: å”®åŽç®¡ç†
          - listitem [ref=e136]:
            - generic [ref=e137] [cursor=pointer]: åŸºç¡€è®¾æ–½
          - listitem [ref=e143]:
            - generic [ref=e144] [cursor=pointer]: ç³»ç»Ÿç®¡ç†
        - generic [ref=e151] [cursor=pointer]
    - generic [ref=e156]:
      - generic [ref=e157]:
        - banner [ref=e158]:
          - button [ref=e159] [cursor=pointer]
          - button [ref=e162] [cursor=pointer]
          - navigation "breadcrumb" [ref=e167]:
            - list [ref=e168]:
              - listitem [ref=e649]:
                - link "质量管理" [ref=e650] [cursor=pointer]:
                  - /url: javascript:void 0
                - listitem [ref=e654]
              - listitem [ref=e657]:
                - link "来料检验" [disabled] [ref=e658]
          - generic [ref=e177]:
            - generic [ref=e179] [cursor=pointer]:
              - generic [ref=e183]: æœç´¢
              - generic [ref=e184]: Ctrl K
            - button [ref=e186] [cursor=pointer]
            - button "dark" [ref=e191] [cursor=pointer]
            - button [ref=e200] [cursor=pointer]
            - button [ref=e206] [cursor=pointer]
            - button [ref=e209] [cursor=pointer]
            - button [ref=e215] [cursor=pointer]:
              - button [ref=e217]
            - button "工作台" [ref=e221] [cursor=pointer]
            - button [ref=e225] [cursor=pointer]:
              - img "超级管理员" [ref=e230]
        - generic [ref=e232]:
          - generic [ref=e237]:
            - generic [ref=e238] [cursor=pointer]: é¦–页
            - generic [ref=e664] [cursor=pointer]: æ¥æ–™æ£€éªŒ
          - generic [ref=e254]:
            - button [ref=e255] [cursor=pointer]
            - generic [ref=e262] [cursor=pointer]
            - generic [ref=e266] [cursor=pointer]
      - main [ref=e273]:
        - generic [ref=e684]:
          - generic [ref=e689]:
            - generic [ref=e690]:
              - generic [ref=e691]: æ£€éªŒå•编号
              - textbox "检验单编号" [ref=e948]:
                - /placeholder: è¯·è¾“入检验单编号
            - generic [ref=e693]:
              - generic [ref=e694]: ä¾›åº”商
              - generic [ref=e700] [cursor=pointer]:
                - combobox "供应商" [ref=e702]
                - generic: è¯·é€‰æ‹©ä¾›åº”商
            - generic [ref=e703]:
              - generic [ref=e704]: ä¾›åº”商批次
              - textbox "供应商批次" [ref=e954]:
                - /placeholder: è¯·è¾“入供应商批次号
            - generic [ref=e706]:
              - generic [ref=e707]: äº§å“ç‰©æ–™
              - textbox "请选择产品物料" [ref=e714]
            - generic [ref=e717]:
              - generic [ref=e718]: æ£€æµ‹ç»“æžœ
              - generic [ref=e724] [cursor=pointer]:
                - combobox "检测结果" [ref=e726]
                - generic: è¯·é€‰æ‹©æ£€æµ‹ç»“æžœ
            - generic [ref=e727]:
              - generic [ref=e728]: æ¥æ–™æ—¥æœŸ
              - generic [ref=e962]:
                - textbox "来料日期" [ref=e964]:
                  - /placeholder: å¼€å§‹æ—¶é—´
                - generic "to" [ref=e966]:
                  - img "swap-right" [ref=e967]
                - textbox "结束时间" [ref=e971]
                - generic:
                  - img "calendar"
            - generic [ref=e730]:
              - generic [ref=e731]: æ£€æµ‹æ—¥æœŸ
              - generic [ref=e975]:
                - textbox "检测日期" [ref=e977]:
                  - /placeholder: å¼€å§‹æ—¶é—´
                - generic "to" [ref=e979]:
                  - img "swap-right" [ref=e980]
                - textbox "结束时间" [ref=e984]
                - generic:
                  - img "calendar"
            - generic [ref=e733]:
              - generic [ref=e734]: æ£€æµ‹äººå‘˜
              - generic [ref=e740] [cursor=pointer]:
                - combobox "检测人员" [ref=e742]
                - generic: è¯·é€‰æ‹©æ£€æµ‹äººå‘˜
            - generic [ref=e743]:
              - button "重 ç½®" [ref=e985] [cursor=pointer]
              - button "搜 ç´¢" [ref=e987] [cursor=pointer]
              - generic [ref=e744] [cursor=pointer]: æ”¶èµ·
          - generic [ref=e751]:
            - generic [ref=e753]:
              - generic [ref=e754]: æ¥æ–™æ£€éªŒå•列表
              - generic [ref=e758]:
                - generic [ref=e760]:
                  - button "新增来料检验单" [ref=e762] [cursor=pointer]
                  - button "导出" [ref=e766] [cursor=pointer]
                - button "" [ref=e769] [cursor=pointer]
              - generic [ref=e771]:
                - button "" [ref=e772] [cursor=pointer]
                - button "" [ref=e774] [cursor=pointer]
                - button "" [ref=e776] [cursor=pointer]
            - generic [ref=e783]:
              - generic [ref=e784]:
                - table [ref=e788]:
                  - rowgroup [ref=e805]:
                    - row [ref=e806]:
                      - columnheader "来料检验单编号" [ref=e807]
                      - columnheader "来料检验单名称" [ref=e812]
                      - columnheader "供应商简称" [ref=e817]
                      - columnheader "供应商批次号" [ref=e822]
                      - columnheader "产品物料编码" [ref=e827]
                      - columnheader "产品物料名称" [ref=e832]
                      - columnheader "接收数量" [ref=e837]
                      - columnheader "检测数量" [ref=e842]
                      - columnheader "不合格数" [ref=e847]
                      - columnheader "检测结果" [ref=e852]
                      - columnheader "来料日期" [ref=e857]
                      - columnheader "检测日期" [ref=e862]
                      - columnheader "检测人员" [ref=e867]
                      - columnheader "单据状态" [ref=e872]
                - table [ref=e993]:
                  - rowgroup [ref=e1010]:
                    - row "IQC-DEMO-03 å£¬çƒ¯æ¥æ–™æ£€éªŒ-03 JN-20260918-A03 4 å£¬çƒ¯ 800 80 4 2026-09-17 2026-09-18 å¼ ä¸‰ å·²å®Œæˆ" [ref=e1011]:
                      - cell [ref=e1012]:
                        - button "IQC-DEMO-03" [ref=e1015] [cursor=pointer]
                      - cell "壬烯来料检验-03" [ref=e1017]
                      - cell [ref=e1021]
                      - cell "JN-20260918-A03" [ref=e1025]
                      - cell "4" [ref=e1029]
                      - cell "壬烯" [ref=e1033]
                      - cell "800" [ref=e1037]
                      - cell "80" [ref=e1041]
                      - cell "4" [ref=e1045]
                      - cell [ref=e1049]
                      - cell "2026-09-17" [ref=e1051]
                      - cell "2026-09-18" [ref=e1055]
                      - cell "张三" [ref=e1059]
                      - cell "已完成" [ref=e1063]
                    - row "IQC-DEMO-02 ç²¾è˜æ¥æ–™æ£€éªŒ-02 JN-20260918-A02 2 ç²¾è˜ 1500 150 0 æ ¡éªŒé€šè¿‡ 2026-09-17 2026-09-18 å¼ ä¸‰ å·²å®Œæˆ" [ref=e1067]:
                      - cell [ref=e1068]:
                        - button "IQC-DEMO-02" [ref=e1071] [cursor=pointer]
                      - cell "精萘来料检验-02" [ref=e1073]
                      - cell [ref=e1077]
                      - cell "JN-20260918-A02" [ref=e1081]
                      - cell "2" [ref=e1085]
                      - cell "精萘" [ref=e1089]
                      - cell "1500" [ref=e1093]
                      - cell "150" [ref=e1097]
                      - cell "0" [ref=e1101]
                      - cell "校验通过" [ref=e1105]
                      - cell "2026-09-17" [ref=e1109]
                      - cell "2026-09-18" [ref=e1113]
                      - cell "张三" [ref=e1117]
                      - cell "已完成" [ref=e1121]
                    - row "IQC-DEMO-01 ç²¾è˜æ¥æ–™æ£€éªŒ-01 JN-20260918-A01 2 ç²¾è˜ 2000 200 2 æ ¡éªŒé€šè¿‡ 2026-09-17 2026-09-18 å¼ ä¸‰ å·²å®Œæˆ" [ref=e1125]:
                      - cell [ref=e1126]:
                        - button "IQC-DEMO-01" [ref=e1129] [cursor=pointer]
                      - cell "精萘来料检验-01" [ref=e1131]
                      - cell [ref=e1135]
                      - cell "JN-20260918-A01" [ref=e1139]
                      - cell "2" [ref=e1143]
                      - cell "精萘" [ref=e1147]
                      - cell "2000" [ref=e1151]
                      - cell "200" [ref=e1155]
                      - cell "2" [ref=e1159]
                      - cell "校验通过" [ref=e1163]
                      - cell "2026-09-17" [ref=e1167]
                      - cell "2026-09-18" [ref=e1171]
                      - cell "张三" [ref=e1175]
                      - cell "已完成" [ref=e1179]
                    - row "IQC_20260917001 ç²¾è˜æ¥æ–™æ£€éªŒ-0917 2 ç²¾è˜ 100 100 0 2026-09-17 2026-09-17 è¶…级管理员 è‰ç¨¿" [ref=e1183]:
                      - cell [ref=e1184]:
                        - button "IQC_20260917001" [ref=e1187] [cursor=pointer]
                      - cell "精萘来料检验-0917" [ref=e1189]
                      - cell [ref=e1193]
                      - cell [ref=e1197]
                      - cell "2" [ref=e1201]
                      - cell "精萘" [ref=e1205]
                      - cell "100" [ref=e1209]
                      - cell "100" [ref=e1213]
                      - cell "0" [ref=e1217]
                      - cell [ref=e1221]
                      - cell "2026-09-17" [ref=e1223]
                      - cell "2026-09-17" [ref=e1227]
                      - cell "超级管理员" [ref=e1231]
                      - cell "草稿" [ref=e1235]
              - generic [ref=e880]:
                - table [ref=e883]:
                  - rowgroup [ref=e900]:
                    - row [ref=e901]:
                      - columnheader "操作" [ref=e902]
                - table [ref=e1239]:
                  - rowgroup [ref=e1242]:
                    - row [ref=e1243]:
                      - cell [ref=e1244]:
                        - generic [ref=e1248]:
                          - button "详情" [ref=e1250] [cursor=pointer]
                          - button "质检报告" [ref=e1257] [cursor=pointer]
                    - row [ref=e1263]:
                      - cell [ref=e1264]:
                        - generic [ref=e1268]:
                          - button "详情" [ref=e1270] [cursor=pointer]
                          - button "质检报告" [ref=e1277] [cursor=pointer]
                    - row [ref=e1283]:
                      - cell [ref=e1284]:
                        - generic [ref=e1288]:
                          - button "详情" [ref=e1290] [cursor=pointer]
                          - button "质检报告" [ref=e1297] [cursor=pointer]
                    - row [ref=e1303]:
                      - cell [ref=e1304]:
                        - generic [ref=e1308]:
                          - button "修改" [ref=e1310] [cursor=pointer]
                          - button "删除" [ref=e1317] [cursor=pointer]
                          - button "详情" [ref=e1322] [cursor=pointer]
                          - button "质检报告" [ref=e1329] [cursor=pointer]
            - generic [ref=e921]:
              - generic [ref=e922]: å…± 4 æ¡è®°å½•
              - generic [ref=e924] [cursor=pointer]:
                - generic "20条/页" [ref=e925]:
                  - textbox "请选择" [ref=e926]: 20条/页
                - generic [ref=e927]: î£­
              - button "" [ref=e930]
              - button "" [ref=e932]
              - button "" [ref=e934]
              - button "1" [ref=e937] [cursor=pointer]
              - button "" [ref=e938]
              - button "" [ref=e940]
              - button "" [ref=e942]
  - dialog [ref=e2833]:
    - heading "查看来料检验单" [level=2] [ref=e2835]
    - generic [ref=e2837]:
      - generic [ref=e2839]:
        - generic [ref=e2840]:
          - generic [ref=e2841]:
            - generic [ref=e2842]: "*"
            - text: æ£€éªŒå•编号
          - generic [ref=e2846]:
            - textbox "* æ£€éªŒå•编号" [disabled] [ref=e2847]:
              - /placeholder: è¯·è¾“入检验单编号
              - text: IQC-DEMO-01
            - button "生 æˆ" [disabled] [ref=e2849]
        - generic [ref=e2851]:
          - generic [ref=e2852]:
            - generic [ref=e2853]: "*"
            - text: æ£€éªŒå•名称
          - textbox "* æ£€éªŒå•名称" [disabled] [ref=e2858]:
            - /placeholder: è¯·è¾“入检验单名称
            - text: ç²¾è˜æ¥æ–™æ£€éªŒ-01
        - generic [ref=e2859]:
          - generic [ref=e2860]:
            - generic [ref=e2861]: "*"
            - text: äº§å“ç‰©æ–™
          - textbox "请选择产品物料" [disabled] [ref=e2868]: ç²¾è˜
        - generic [ref=e2874]:
          - generic [ref=e2875]: ä¾›åº”商
          - generic [ref=e2881]:
            - combobox "供应商" [disabled] [ref=e2883]
            - generic: è¯·é€‰æ‹©ä¾›åº”商
        - generic [ref=e2884]:
          - generic [ref=e2885]: ä¾›åº”商批次号
          - textbox "供应商批次号" [disabled] [ref=e2890]:
            - /placeholder: è¯·è¾“入供应商批次号
            - text: JN-20260918-A01
        - generic [ref=e2891]:
          - generic [ref=e2892]:
            - generic [ref=e2893]: "*"
            - text: æœ¬æ¬¡æŽ¥æ”¶æ•°é‡
          - spinbutton "* æœ¬æ¬¡æŽ¥æ”¶æ•°é‡" [disabled] [ref=e2900]: "2000.00"
        - generic [ref=e2901]:
          - generic [ref=e2902]:
            - generic [ref=e2903]: "*"
            - text: åˆæ ¼å“æ•°é‡
          - spinbutton "* åˆæ ¼å“æ•°é‡" [disabled] [ref=e2910]: "198"
        - generic [ref=e2911]:
          - generic [ref=e2912]:
            - generic [ref=e2913]: "*"
            - text: ä¸åˆæ ¼å“æ•°é‡
            - img [ref=e2914] [cursor=pointer]
          - spinbutton "* ä¸åˆæ ¼å“æ•°é‡" [disabled] [ref=e2923]: "2"
        - generic [ref=e2924]:
          - generic [ref=e2925]:
            - generic [ref=e2926]: "*"
            - text: æ¥æ–™æ—¥æœŸ
          - generic [ref=e2932]:
            - textbox "* æ¥æ–™æ—¥æœŸ" [disabled] [ref=e2933]:
              - /placeholder: è¯·é€‰æ‹©æ¥æ–™æ—¥æœŸ
              - text: 2026-09-17
            - generic:
              - img "calendar"
        - generic [ref=e2934]:
          - generic [ref=e2935]:
            - generic [ref=e2936]: "*"
            - text: æ£€æµ‹äººå‘˜
          - generic [ref=e2942]:
            - combobox "* æ£€æµ‹äººå‘˜" [disabled] [ref=e2944]
            - generic "张三" [ref=e2945]
        - generic [ref=e2946]:
          - generic [ref=e2947]:
            - generic [ref=e2948]: "*"
            - text: æ£€æµ‹æ—¥æœŸ
          - generic [ref=e2954]:
            - textbox "* æ£€æµ‹æ—¥æœŸ" [disabled] [ref=e2955]:
              - /placeholder: è¯·é€‰æ‹©æ£€æµ‹æ—¥æœŸ
              - text: 2026-09-18
            - generic:
              - img "calendar"
        - generic [ref=e2956]:
          - generic [ref=e2957]: æ£€æµ‹ç»“æžœ
          - generic [ref=e2963]:
            - combobox "检测结果" [disabled] [ref=e2965]
            - generic "校验通过" [ref=e2966]
        - generic [ref=e2967]:
          - generic [ref=e2968]: å¤‡æ³¨
          - textbox "备注" [disabled] [ref=e2973]:
            - /placeholder: è¯·è¾“入备注
            - text: æ¼”示数据
      - generic [ref=e2975]:
        - generic [ref=e2976]: ç¼ºé™·æƒ…况
        - table [ref=e2979]:
          - rowgroup [ref=e2980]:
            - row [ref=e2981]:
              - rowheader "致命缺陷数" [ref=e2982]
              - cell "0" [ref=e2983]
              - rowheader "严重缺陷数" [ref=e2985]
              - cell "0" [ref=e2986]
              - rowheader "轻微缺陷数" [ref=e2988]
              - cell "0" [ref=e2989]
            - row [ref=e2991]:
              - rowheader "致命缺陷率" [ref=e2992]
              - cell "0%" [ref=e2993]
              - rowheader "严重缺陷率" [ref=e2995]
              - cell "0%" [ref=e2996]
              - rowheader "轻微缺陷率" [ref=e2998]
              - cell "0%" [ref=e2999]
      - generic [ref=e3001]:
        - tablist [ref=e3002]:
          - generic [ref=e3004]:
            - tab "检验项" [ref=e3006] [cursor=pointer]
            - tab "检测结果" [selected] [ref=e3008] [cursor=pointer]
        - generic [ref=e3010]:
          - text: î©Š îœŽ î˜­ î£­ ïŠ” î™¥ î„ îƒ î™¦ î˜‡
          - tabpanel "检测结果" [ref=e4213]:
            - generic [ref=e4218]:
              - generic [ref=e4220]:
                - generic [ref=e4221]: æ£€æµ‹ç»“æžœ
                - generic [ref=e4224]:
                  - button "" [ref=e4225] [cursor=pointer]
                  - button "" [ref=e4227] [cursor=pointer]
                  - button "" [ref=e4229] [cursor=pointer]
              - generic [ref=e4237]:
                - table [ref=e4241]:
                  - rowgroup [ref=e4247]:
                    - row [ref=e4248]:
                      - columnheader "样品编号" [ref=e4249]
                      - columnheader "物资SN" [ref=e4254]
                      - columnheader "备注" [ref=e4259]
                      - columnheader "操作" [ref=e4264]
                - table [ref=e4272]:
                  - rowgroup [ref=e4278]:
                    - row "MIR-DEMO-01 YP-A001 è¯¦æƒ…" [ref=e4279]:
                      - cell "MIR-DEMO-01" [ref=e4280]
                      - cell "YP-A001" [ref=e4284]
                      - cell [ref=e4288]
                      - cell [ref=e4292]:
                        - button "详情" [active] [ref=e4298] [cursor=pointer]
              - generic [ref=e4306]:
                - generic [ref=e4307]: å…± 1 æ¡è®°å½•
                - generic [ref=e4309] [cursor=pointer]:
                  - generic "20条/页" [ref=e4310]:
                    - textbox "请选择" [ref=e4311]: 20条/页
                  - generic [ref=e4312]: î£­
                - button "" [ref=e4315]
                - button "" [ref=e4317]
                - button "" [ref=e4319]
                - button "1" [ref=e4322] [cursor=pointer]
                - button "" [ref=e4323]
                - button "" [ref=e4325]
                - button "" [ref=e4327]
    - button [ref=e4193] [cursor=pointer]
    - generic [ref=e4203]:
      - button "质检助手" [ref=e4205] [cursor=pointer]
      - button "取 æ¶ˆ" [ref=e4207] [cursor=pointer]
    - button [ref=e4209] [cursor=pointer]
docs/project-business/data/flows.json
@@ -29,13 +29,13 @@
       {"stage": "联动", "action": "审批通过按工序标记: å€’冲→自动物料消耗扣线边库(允许负库存);质检→产出待检行等 IPQC;关键非检→直接产出入库", "roles": ["系统自动"]},
       {"stage": "完工", "action": "仅末道工序回写工单已生产数量,达标自动完成;MPS ç´¯è®¡åˆ¤æ–­å®Œæˆå¹¶å‘事件给销售订单", "roles": ["系统自动"]}]},
    {"id": "quality", "name": "质量流程", "mermaid": "mermaid/05-quality-flow.mmd", "color": "#e06c6c",
     "summary": "四道检验闸口(IQC/IPQC/OQC/RQC,二态 0→4) + åˆ¤å®šå››æžœ(合格/特采/退货/报废) + NCR è¯„审处置关闭;AI æä¾›åˆ¤å®šå»ºè®®ï¼›NCR å½“前仅台账不触发返工单。支持化工报告范式:分组指标树+公式文本+平行测量批次+采样表头+签字区,浏览器打印检验报告。",
     "summary": "四道检验闸口(IQC/IPQC/OQC/RQC,二态 0→4) + åˆ¤å®šå››æžœ(合格/特采/退货/报废) + NCR è¯„审处置关闭;AI æä¾›åˆ¤å®šå»ºè®®ï¼›NCR å½“前仅台账不触发返工单。支持化工报告范式:分组指标树+公式文本+平行测量批次+采样表头+签字区,浏览器打印检验报告;并可导出产品检验单 Word(纸质检验单版式,判定结论/质检章/检验·复核·批准签字留空手填,Word æ‰“印)。",
     "steps": [
       {"stage": "来料", "action": "到货通知/外协入库→IQC,结论回写推进待入库或触发退货", "roles": ["IQC è´¨æ£€å‘˜"]},
       {"stage": "过程", "action": "报工质检工序产出行→IPQC,合格拆行入库、不合格生成 NCR", "roles": ["IPQC è´¨æ£€å‘˜"]},
       {"stage": "出货", "action": "销售出库提交→OQC,完成后出库单进入待拣货", "roles": ["OQC è´¨æ£€å‘˜"]},
       {"stage": "退货", "action": "退料/销售退货/售后退货→RQC,结论回调单据与售后", "roles": ["RQC è´¨æ£€å‘˜"]},
       {"stage": "报告", "action": "检验结果按分组树+测量批次录入,/indicator-result/report èšåˆåŽå‰ç«¯æ‰“印检验报告(含采样地点/证书编号/执行标准/复核·审核签字区)", "roles": ["质检员", "复核人", "审核人"]},
       {"stage": "报告", "action": "检验结果按分组树+测量批次录入,/indicator-result/report èšåˆåŽå‰ç«¯æ‰“印检验报告(含采样地点/证书编号/执行标准/复核·审核签字区);/indicator-result/export-product-word å¯¼å‡ºäº§å“æ£€éªŒå•Word(无技术指标列·判定结论/质检专用章/检验·复核·批准签字留空手填·平行测量顿号合并·下载后Word打印;质检单详情检测结果Tab可按样品查看只读检测值明细)", "roles": ["质检员", "复核人", "审核人"]},
       {"stage": "不合格", "action": "NCR: å¾…评审→评审→处置(退货/报废/返工/让步接收/降级)→关闭", "roles": ["质量工程师"]}]},
    {"id": "warehouse", "name": "仓储流程", "mermaid": "mermaid/06-warehouse-flow.mmd", "color": "#7e6bd6",
     "summary": "15 ç±»å•据驱动库存台账(六元组、四量)变动,全部经事务流水留痕;支持调拨在途、盘点调整、批次/SN è¿½æº¯ã€åº“存占用与四级冻结、线边虚拟库负库存;对外 WmsStockApi ä¾› ERP æ”¶å‘。",
docs/project-business/index.html
@@ -475,7 +475,7 @@
    {"name": "OQC出货检验", "module": "质量", "table": "mes_qc_oqc", "doc": "销售出库提交触发,完成推进出库单待拣货", "upstream": ["销售出库单"], "downstream": ["销售出库单(推进)"], "keywords": "OQC å‡ºè´§æ£€éªŒ å‡ºåŽ‚æ£€éªŒ"},
    {"name": "RQC退货检验", "module": "质量", "table": "mes_qc_rqc", "doc": "生产退料/销售退货/售后退货触发,结论回调售后;四类检验单均支持采样地点/证书编号/执行标准表头与复核·审核人,并可打印检验报告", "upstream": ["退料", "退货"], "downstream": ["退货入库", "售后回调", "检验报告打印"], "keywords": "RQC é€€è´§æ£€éªŒ"},
    {"name": "检验指标", "module": "质量", "table": "mes_qc_indicator", "doc": "支持两级分组树(itemType录入/分组+parentId)、公式文本展示、单位文本、同级排序;分组项不录值;有子项禁删;同层级名称可重复", "upstream": [], "downstream": ["质检方案", "检验报告打印"], "keywords": "检验指标 indicator åˆ†ç»„ å…¬å¼ åŒ–å·¥"},
    {"name": "检验报告打印", "module": "质量", "table": "mes_qc_indicator_result_detail", "doc": "化工报告范式:平行测量批次(measure_no)+分组矩阵+公式列+签字区;/mes/qc/indicator-result/report èšåˆï¼Œå‰ç«¯æµè§ˆå™¨æ‰“印", "upstream": ["IQC来料检验", "IPQC过程检验", "OQC出货检验", "RQC退货检验", "检验指标"], "downstream": [], "keywords": "打印 æŠ¥å‘Š æµ‹é‡æ‰¹æ¬¡ ç­¾å­— æ­£ä¸é†‡ GB/T6027"},
    {"name": "检验报告打印", "module": "质量", "table": "mes_qc_indicator_result_detail", "doc": "化工报告范式:平行测量批次(measure_no)+分组矩阵+公式列+签字区;/mes/qc/indicator-result/report èšåˆï¼Œå‰ç«¯æµè§ˆå™¨æ‰“印;另有产品检验单Word导出 /mes/qc/indicator-result/export-product-word(纸质检验单版式:无技术指标列,判定结论/质检专用章留空手填,平行测量顿号合并,生产单位写死、生产时间=单据创建时间,下载后Word打印)", "upstream": ["IQC来料检验", "IPQC过程检验", "OQC出货检验", "RQC退货检验", "检验指标"], "downstream": [], "keywords": "打印 æŠ¥å‘Š æµ‹é‡æ‰¹æ¬¡ ç­¾å­— æ­£ä¸é†‡ GB/T6027 Word äº§å“æ£€éªŒå•"},
    {"name": "NCR不合格品", "module": "质量", "table": "mes_qc_ncr", "doc": "待评审0→已评审6→已处置7→已关闭8,处置:退货/报废/返工/让步接收/降级", "upstream": ["IQC/IPQC/OQC/RQC"], "downstream": ["退货/报废/返工(台账)"], "keywords": "NCR ä¸åˆæ ¼ å¤„ç½® ç‰¹é‡‡ æŠ¥åºŸ"},
    {"name": "设备", "module": "设备", "table": "mes_dv_machinery", "doc": "台账状态:停机/生产中/保养中;点检·保养·维修工单;AI é£Žé™©é¢„测消费其数据", "upstream": [], "downstream": ["点检", "ç»´ä¿®", "生产风险预测"], "keywords": "设备 ç‚¹æ£€ ä¿å…» ç»´ä¿® machinery"},
    {"name": "售后工单", "module": "售后", "table": "after_sale_ticket", "doc": "草稿0→处理中10→待入库30→待退款40→完结50→关闭60/取消99,判定:一般/ç»´ä¿®/退货", "upstream": ["客户反馈(人工录入)"], "downstream": ["维修记录", "退货申请"], "keywords": "售后 å·¥å• ticket ç»´ä¿®"},
@@ -516,13 +516,13 @@
       {"stage": "联动", "action": "审批通过按工序标记: å€’冲→自动物料消耗扣线边库(允许负库存);质检→产出待检行等 IPQC;关键非检→直接产出入库", "roles": ["系统自动"]},
       {"stage": "完工", "action": "仅末道工序回写工单已生产数量,达标自动完成;MPS ç´¯è®¡åˆ¤æ–­å®Œæˆå¹¶å‘事件给销售订单", "roles": ["系统自动"]}]},
    {"id": "quality", "name": "质量流程", "mermaid": "mermaid/05-quality-flow.mmd", "color": "#e06c6c",
     "summary": "四道检验闸口(IQC/IPQC/OQC/RQC,二态 0→4) + åˆ¤å®šå››æžœ(合格/特采/退货/报废) + NCR è¯„审处置关闭;AI æä¾›åˆ¤å®šå»ºè®®ï¼›NCR å½“前仅台账不触发返工单。支持化工报告范式:分组指标树+公式文本+平行测量批次+采样表头+签字区,浏览器打印检验报告。",
     "summary": "四道检验闸口(IQC/IPQC/OQC/RQC,二态 0→4) + åˆ¤å®šå››æžœ(合格/特采/退货/报废) + NCR è¯„审处置关闭;AI æä¾›åˆ¤å®šå»ºè®®ï¼›NCR å½“前仅台账不触发返工单。支持化工报告范式:分组指标树+公式文本+平行测量批次+采样表头+签字区,浏览器打印检验报告;并可导出产品检验单 Word(纸质版式,判定结论/质检章/检验·复核·批准签字留空手填,Word æ‰“印)。",
     "steps": [
       {"stage": "来料", "action": "到货通知/外协入库→IQC,结论回写推进待入库或触发退货", "roles": ["IQC è´¨æ£€å‘˜"]},
       {"stage": "过程", "action": "报工质检工序产出行→IPQC,合格拆行入库、不合格生成 NCR", "roles": ["IPQC è´¨æ£€å‘˜"]},
       {"stage": "出货", "action": "销售出库提交→OQC,完成后出库单进入待拣货", "roles": ["OQC è´¨æ£€å‘˜"]},
       {"stage": "退货", "action": "退料/销售退货/售后退货→RQC,结论回调单据与售后", "roles": ["RQC è´¨æ£€å‘˜"]},
       {"stage": "报告", "action": "检验结果按分组树+测量批次录入,/indicator-result/report èšåˆåŽå‰ç«¯æ‰“印检验报告(含采样地点/证书编号/执行标准/复核·审核签字区)", "roles": ["质检员", "复核人", "审核人"]},
       {"stage": "报告", "action": "检验结果按分组树+测量批次录入,/indicator-result/report èšåˆåŽå‰ç«¯æ‰“印检验报告(含采样地点/证书编号/执行标准/复核·审核签字区);/indicator-result/export-product-word å¯¼å‡ºäº§å“æ£€éªŒå•Word(无技术指标列·判定结论/质检章/检验·复核·批准签字留空手填·Word打印;详情检测结果Tab可按样品查看只读明细)", "roles": ["质检员", "复核人", "审核人"]},
       {"stage": "不合格", "action": "NCR: å¾…评审→评审→处置(退货/报废/返工/让步接收/降级)→关闭", "roles": ["质量工程师"]}]},
    {"id": "warehouse", "name": "仓储流程", "mermaid": "mermaid/06-warehouse-flow.mmd", "color": "#7e6bd6",
     "summary": "15 ç±»å•据驱动库存台账(六元组、四量)变动,全部经事务流水留痕;支持调拨在途、盘点调整、批次/SN è¿½æº¯ã€åº“存占用与四级冻结、线边虚拟库负库存;对外 WmsStockApi ä¾› ERP æ”¶å‘。",
docs/project-business/mermaid/05-quality-flow.mmd
@@ -20,3 +20,4 @@
  Q8[支撑数据:质检方案·检验指标·缺陷库·指标结果] --- A1
  Q9[化工报告增强:指标分组树+公式文本·平行测量批次·采样地点/证书编号/执行标准表头·复核人/审核人] --- Q8
  A1 & A2 & A3 & A4 --> P1[检验报告单打印·前端浏览器打印·含签字区]
  A1 & A2 & A3 & A4 --> P2[产品检验单Word导出·export-product-word·无技术指标列·判定结论/质检章留空手填·Word打印]
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/indicatorresult/MesQcIndicatorResultController.java
@@ -1,8 +1,10 @@
package cn.iocoder.yudao.module.mes.controller.admin.qc.indicatorresult;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.http.HttpUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.mes.controller.admin.qc.indicatorresult.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.indicator.MesQcIndicatorDO;
@@ -16,6 +18,7 @@
import cn.iocoder.yudao.module.mes.enums.qc.MesQcIndicatorItemTypeEnum;
import cn.iocoder.yudao.module.mes.service.qc.indicator.MesQcIndicatorService;
import cn.iocoder.yudao.module.mes.service.qc.indicatorresult.MesQcIndicatorResultService;
import cn.iocoder.yudao.module.mes.service.qc.indicatorresult.MesQcProductReportWordBuilder;
import cn.iocoder.yudao.module.mes.service.qc.indicatorresult.MesQcReportService;
import cn.iocoder.yudao.module.mes.service.qc.ipqc.MesQcIpqcLineService;
import cn.iocoder.yudao.module.mes.service.qc.iqc.MesQcIqcLineService;
@@ -26,11 +29,13 @@
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
@@ -137,6 +142,29 @@
        return success(reportService.getQcReportData(qcId, qcType, resultId));
    }
    @GetMapping("/export-product-word")
    @Operation(summary = "导出产品检验单 Word(纸质检验单版式:无技术指标列,判定结论/质检专用章留空手填,打印用 Word æ‰“开)")
    @Parameters({
            @Parameter(name = "qcId", description = "质检单ID", required = true, example = "1"),
            @Parameter(name = "qcType", description = "质检类型", required = true, example = "1"),
            @Parameter(name = "resultId", description = "检验结果(样品)编号,可不传;多样品时用于选择", example = "1")
    })
    @PreAuthorize("@ss.hasAnyPermissions('mes:qc-iqc:query', 'mes:qc-ipqc:query', 'mes:qc-oqc:query', 'mes:qc-rqc:query')")
    public void exportProductWord(
            @RequestParam("qcId") Long qcId,
            @RequestParam("qcType") Integer qcType,
            @RequestParam(value = "resultId", required = false) Long resultId,
            HttpServletResponse response) throws IOException {
        MesQcQcReportRespVO report = reportService.getQcReportData(qcId, qcType, resultId);
        byte[] docx = MesQcProductReportWordBuilder.build(report);
        String productName = StrUtil.isNotBlank(report.getItemName()) ? report.getItemName() : "产品";
        String filename = productName + "产品质量检验单"
                + (StrUtil.isNotBlank(report.getDocCode()) ? "-" + report.getDocCode() : "") + ".docx";
        response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
        response.addHeader("Content-Disposition", "attachment;filename=" + HttpUtils.encodeUtf8(filename));
        response.getOutputStream().write(docx);
    }
    // ==================== æ‹¼æŽ¥ VO ====================
    /**
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/indicatorresult/vo/MesQcQcReportRespVO.java
@@ -52,6 +52,12 @@
    @Schema(description = "检测结果(字典 mes_qc_check_result)", example = "1")
    private Integer checkResult;
    @Schema(description = "检验日期", example = "2026-08-30T01:00:00")
    private LocalDateTime inspectDate;
    @Schema(description = "质检单创建时间,产品检验单打印为生产时间", example = "2026-08-29T10:00:00")
    private LocalDateTime docCreateTime;
    // ========== ç­¾å­—区 ==========
    @Schema(description = "分析者(检测人)用户编号", example = "1")
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/indicatorresult/MesQcProductReportWordBuilder.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,326 @@
package cn.iocoder.yudao.module.mes.service.qc.indicatorresult;
import cn.iocoder.yudao.module.mes.controller.admin.qc.indicatorresult.vo.MesQcQcReportRespVO;
import cn.iocoder.yudao.module.mes.enums.qc.MesQcIndicatorItemTypeEnum;
import org.apache.poi.xwpf.usermodel.*;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
/**
 * äº§å“æ£€éªŒå•(纸质"××产品质量检验单"版式)Word æž„建器
 *
 * ç‰ˆå¼ï¼šæ ‡é¢˜ï¼ˆå…¬å¸ + äº§å“æ£€éªŒå•)→ è¡¨å¤´ä¿¡æ¯ 5 è¡Œ â†’ æ£€éªŒé¡¹ç›®/检验结果 ä¸¤åˆ—矩阵 â†’
 * åˆ¤å®šç»“论/质检专用章(留空,打印后手填)→ å¤‡æ³¨ â†’ æ£€éªŒ/复核/批准签字行。
 * ä¸å«æŠ€æœ¯æŒ‡æ ‡åˆ—;分组项不展示,录入项平铺;平行测量多值顿号合并。
 */
public class MesQcProductReportWordBuilder {
    /** ç”Ÿäº§å•位固定文案(与纸质报告一致,写死) */
    private static final String COMPANY_NAME = "宁夏九泓化工科技有限公司";
    /** å¤‡æ³¨é»˜è®¤æ–‡æ¡ˆï¼ˆæ— å•据备注时使用,与纸质报告一致) */
    private static final String DEFAULT_REMARK = "检验结果仅对样品本身或本批次负责。";
    /** ç©ºå€¼å ä½ç¬¦ï¼Œä¸Žçº¸è´¨æŠ¥å‘Š "/" å†™æ³•一致 */
    private static final String EMPTY = "/";
    /** å››åˆ—表宽(twips),总宽 9000 â‰ˆ 15.9cm,适配 A4 ç«–版 2.5cm é¡µè¾¹è· */
    private static final int[] COL_WIDTHS = {1700, 2800, 1700, 2800};
    private static final int TABLE_WIDTH = 9000;
    private static final String FONT = "宋体";
    private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    private MesQcProductReportWordBuilder() {
    }
    /**
     * æž„建产品检验单 docx å­—节
     */
    public static byte[] build(MesQcQcReportRespVO report) throws IOException {
        try (XWPFDocument doc = new XWPFDocument(); ByteArrayOutputStream out = new ByteArrayOutputStream()) {
            setupPage(doc);
            writeTitle(doc, report);
            writeHeaderTable(doc, report);
            writeItemTable(doc, report);
            writeConclusionTable(doc);
            writeRemarkTable(doc, report);
            writeSignLine(doc);
            doc.write(out);
            return out.toByteArray();
        }
    }
    // ========== é¡µé¢/标题 ==========
    private static void setupPage(XWPFDocument doc) {
        CTBody body = doc.getDocument().getBody();
        CTSectPr sectPr = body.isSetSectPr() ? body.getSectPr() : body.addNewSectPr();
        // A4 ç«–版
        CTPageSz pageSz = sectPr.addNewPgSz();
        pageSz.setW(BigInteger.valueOf(11906));
        pageSz.setH(BigInteger.valueOf(16838));
        CTPageMar pageMar = sectPr.addNewPgMar();
        BigInteger margin = BigInteger.valueOf(1418); // 2.5cm
        pageMar.setLeft(margin);
        pageMar.setRight(margin);
        pageMar.setTop(margin);
        pageMar.setBottom(margin);
    }
    private static void writeTitle(XWPFDocument doc, MesQcQcReportRespVO report) {
        String product = notBlank(report.getItemName()) ? report.getItemName()
                : (notBlank(report.getDocName()) ? report.getDocName() : "产品");
        addParagraph(doc, COMPANY_NAME, 16, true, ParagraphAlignment.CENTER);
        addParagraph(doc, product + "产品质量检验单", 14, true, ParagraphAlignment.CENTER);
    }
    // ========== è¡¨å¤´ä¿¡æ¯ ==========
    private static XWPFTable writeHeaderTable(XWPFDocument doc, MesQcQcReportRespVO report) {
        XWPFTable table = createTable(doc);
        addRow(table, label("生产单位"), value(COMPANY_NAME, 3));
        addRow(table, label("生产时间"), value(formatDate(report.getDocCreateTime())),
                label("批    å·"), value(blank(report.getBatchNo())));
        addRow(table, label("采样地点"), value(blank(report.getSamplingLocation())),
                label("批    é‡"), value(formatQuantity(report.getBatchQuantity())));
        addRow(table, label("采 æ · è€…"), value(blank(report.getInspectorName())),
                label("取样日期"), value(formatDate(report.getSamplingTime())));
        addRow(table, label("执行标准"), value(blank(report.getExecuteStandard())),
                label("检验日期"), value(formatDate(report.getInspectDate())));
        return table;
    }
    // ========== æ£€éªŒé¡¹ç›®çŸ©é˜µ ==========
    private static XWPFTable writeItemTable(XWPFDocument doc, MesQcQcReportRespVO report) {
        XWPFTable table = createTable(doc);
        addRow(table, labelSpan("检验项目", 2), labelSpan("检验结果", 2));
        List<MesQcQcReportRespVO.ReportItem> records = new ArrayList<>();
        collectRecordItems(report.getItems(), records);
        if (records.isEmpty()) {
            addRow(table, valueSpan(EMPTY, 2), valueSpan(EMPTY, 2));
            return table;
        }
        for (MesQcQcReportRespVO.ReportItem item : records) {
            addRow(table, valueSpan(blank(item.getIndicatorName()), 2), valueSpan(joinMeasures(item), 2));
        }
        return table;
    }
    /**
     * å¹³é“ºå½•入项:分组项(itemType=2)不展示行本身,仅展开其子录入项
     */
    private static void collectRecordItems(List<MesQcQcReportRespVO.ReportItem> nodes,
                                           List<MesQcQcReportRespVO.ReportItem> out) {
        if (nodes == null) {
            return;
        }
        for (MesQcQcReportRespVO.ReportItem node : nodes) {
            boolean group = node.getItemType() != null
                    && node.getItemType().equals(MesQcIndicatorItemTypeEnum.GROUP.getType());
            if (group) {
                collectRecordItems(node.getChildren(), out);
            } else {
                out.add(node);
            }
        }
    }
    /**
     * å¹³è¡Œæµ‹é‡å¤šå€¼é¡¿å·åˆå¹¶ï¼›æ— å€¼æ—¶ "/"
     */
    private static String joinMeasures(MesQcQcReportRespVO.ReportItem item) {
        List<MesQcQcReportRespVO.ReportMeasure> measures = item.getMeasures();
        if (measures == null || measures.isEmpty()) {
            return EMPTY;
        }
        return measures.stream()
                .map(MesQcQcReportRespVO.ReportMeasure::getValue)
                .filter(MesQcProductReportWordBuilder::notBlank)
                .reduce((a, b) -> a + "、" + b)
                .orElse(EMPTY);
    }
    // ========== åˆ¤å®šç»“论 / è´¨æ£€ä¸“用章(留空后填) ==========
    private static XWPFTable writeConclusionTable(XWPFDocument doc) {
        XWPFTable table = createTable(doc);
        XWPFTableRow row = addRow(table, valueLeftSpan("判定结论:", 2), valueLeftSpan("质检专用章:", 2));
        // é¢„留手写/盖章高度
        setRowHeight(row, 2550);
        return table;
    }
    // ========== å¤‡æ³¨ ==========
    private static XWPFTable writeRemarkTable(XWPFDocument doc, MesQcQcReportRespVO report) {
        XWPFTable table = createTable(doc);
        return addRowTo(table, label("备    æ³¨"),
                valueLeftSpan(notBlank(report.getRemark()) ? report.getRemark() : DEFAULT_REMARK, 3));
    }
    // ========== ç­¾å­—行 ==========
    /** ç­¾å­—行固定留空,与判定结论/质检专用章一致,打印后手写 */
    private static void writeSignLine(XWPFDocument doc) {
        XWPFParagraph paragraph = doc.createParagraph();
        paragraph.setAlignment(ParagraphAlignment.LEFT);
        paragraph.setSpacingBefore(400);
        addRun(paragraph, "检验:         复核:         批准:        ", 12, true);
    }
    // ========== è¡¨æ ¼åŸºç¡€ ==========
    private static XWPFTable createTable(XWPFDocument doc) {
        // POI é»˜è®¤è¡¨è‡ªå¸¦ 1 ä¸ªç©ºè¡Œ + tblPr(含全边框),删掉默认行复用其 tblPr å³å¯
        XWPFTable table = doc.createTable();
        while (table.getNumberOfRows() > 0) {
            table.removeRow(0);
        }
        CTTbl ctTbl = table.getCTTbl();
        CTTblPr tblPr = ctTbl.getTblPr();
        CTTblWidth tblW = tblPr.getTblW();
        tblW.setType(STTblWidth.DXA);
        tblW.setW(BigInteger.valueOf(TABLE_WIDTH));
        if (!tblPr.isSetTblLayout()) {
            tblPr.addNewTblLayout().setType(STTblLayoutType.FIXED);
        }
        // POI æ–°å»ºçš„表不含 tblGrid,直接补上
        CTTblGrid grid = ctTbl.addNewTblGrid();
        for (int width : COL_WIDTHS) {
            grid.addNewGridCol().setW(BigInteger.valueOf(width));
        }
        return table;
    }
    /**
     * è¿½åŠ ä¸€è¡Œï¼›æ¯ä¸ªç‰‡æ®µæŒ‰ç»™å®š span ç”Ÿæˆåˆå¹¶å•元格,span åˆè®¡é¡»ä¸º 4
     */
    private static XWPFTableRow addRow(XWPFTable table, CellSpec... specs) {
        XWPFTableRow row = table.createRow();
        // createRow() ä¼šæŒ‰é¦–行列数自动补格,清掉后按片段重建
        while (row.getCtRow().sizeOfTcArray() > 0) {
            row.getCtRow().removeTc(0);
        }
        int colIndex = 0;
        for (CellSpec spec : specs) {
            XWPFTableCell cell = row.createCell();
            applyCell(cell, spec, colIndex);
            colIndex += spec.span();
        }
        return row;
    }
    private static XWPFTable addRowTo(XWPFTable table, CellSpec... specs) {
        addRow(table, specs);
        return table;
    }
    private static void applyCell(XWPFTableCell cell, CellSpec spec, int colIndex) {
        CTTc tc = cell.getCTTc();
        CTTcPr tcPr = tc.isSetTcPr() ? tc.getTcPr() : tc.addNewTcPr();
        int width = 0;
        for (int i = 0; i < spec.span(); i++) {
            width += COL_WIDTHS[colIndex + i];
        }
        CTTblWidth tcW = tcPr.isSetTcW() ? tcPr.getTcW() : tcPr.addNewTcW();
        tcW.setType(STTblWidth.DXA);
        tcW.setW(BigInteger.valueOf(width));
        if (spec.span() > 1) {
            if (!tcPr.isSetGridSpan()) {
                tcPr.addNewGridSpan().setVal(BigInteger.valueOf(spec.span()));
            } else {
                tcPr.getGridSpan().setVal(BigInteger.valueOf(spec.span()));
            }
        }
        cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER);
        XWPFParagraph paragraph = cell.getParagraphArray(0) != null
                ? cell.getParagraphArray(0) : cell.addParagraph();
        paragraph.setAlignment(spec.align());
        addRun(paragraph, spec.text(), 12, spec.bold());
    }
    // ========== å•元格片段描述 ==========
    private record CellSpec(String text, int span, boolean bold, ParagraphAlignment align) {
    }
    private static CellSpec label(String text) {
        return new CellSpec(text, 1, true, ParagraphAlignment.CENTER);
    }
    private static CellSpec labelSpan(String text, int span) {
        return new CellSpec(text, span, true, ParagraphAlignment.CENTER);
    }
    private static CellSpec value(String text) {
        return new CellSpec(text, 1, false, ParagraphAlignment.CENTER);
    }
    private static CellSpec value(String text, int span) {
        return new CellSpec(text, span, false, ParagraphAlignment.CENTER);
    }
    private static CellSpec valueSpan(String text, int span) {
        return new CellSpec(text, span, false, ParagraphAlignment.CENTER);
    }
    private static CellSpec valueLeftSpan(String text, int span) {
        return new CellSpec(text, span, false, ParagraphAlignment.LEFT);
    }
    // ========== å°å·¥å…· ==========
    private static void setRowHeight(XWPFTableRow row, int twips) {
        CTRow ctRow = row.getCtRow();
        CTTrPr trPr = ctRow.isSetTrPr() ? ctRow.getTrPr() : ctRow.addNewTrPr();
        CTHeight height = trPr.addNewTrHeight();
        height.setVal(BigInteger.valueOf(twips));
        height.setHRule(STHeightRule.AT_LEAST);
    }
    private static void addParagraph(XWPFDocument doc, String text, int size, boolean bold,
                                     ParagraphAlignment align) {
        XWPFParagraph paragraph = doc.createParagraph();
        paragraph.setAlignment(align);
        addRun(paragraph, text, size, bold);
    }
    private static void addRun(XWPFParagraph paragraph, String text, int size, boolean bold) {
        XWPFRun run = paragraph.createRun();
        run.setText(text);
        run.setFontSize(size);
        run.setBold(bold);
        run.setFontFamily(FONT);
        run.setFontFamily(FONT, XWPFRun.FontCharRange.eastAsia);
    }
    private static boolean notBlank(String s) {
        return s != null && !s.isBlank();
    }
    private static String blank(String s) {
        return notBlank(s) ? s : EMPTY;
    }
    private static String formatDate(LocalDateTime time) {
        return time == null ? EMPTY : time.format(DATE_FORMATTER);
    }
    private static String formatQuantity(BigDecimal quantity) {
        if (quantity == null) {
            return EMPTY;
        }
        return quantity.stripTrailingZeros().toPlainString();
    }
}
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/indicatorresult/MesQcReportServiceImpl.java
@@ -109,6 +109,7 @@
                    .setExecuteStandard(doc.getExecuteStandard())
                    .setInspectorUserId(doc.getInspectorUserId()).setAuditUserId(doc.getAuditUserId())
                    .setApproveUserId(doc.getApproveUserId()).setCheckResult(doc.getCheckResult())
                    .setInspectDate(doc.getInspectDate()).setDocCreateTime(doc.getCreateTime())
                    .setRemark(doc.getRemark());
            List<MesQcIqcLineDO> lines = iqcLineService.getIqcLineListByIqcId(qcId);
            for (MesQcIqcLineDO line : lines) {
@@ -126,6 +127,7 @@
                    .setExecuteStandard(doc.getExecuteStandard())
                    .setInspectorUserId(doc.getInspectorUserId()).setAuditUserId(doc.getAuditUserId())
                    .setApproveUserId(doc.getApproveUserId()).setCheckResult(doc.getCheckResult())
                    .setInspectDate(doc.getInspectDate()).setDocCreateTime(doc.getCreateTime())
                    .setRemark(doc.getRemark());
            List<MesQcIpqcLineDO> lines = ipqcLineService.getIpqcLineListByIpqcId(qcId);
            for (MesQcIpqcLineDO line : lines) {
@@ -143,6 +145,7 @@
                    .setExecuteStandard(doc.getExecuteStandard())
                    .setInspectorUserId(doc.getInspectorUserId()).setAuditUserId(doc.getAuditUserId())
                    .setApproveUserId(doc.getApproveUserId()).setCheckResult(doc.getCheckResult())
                    .setInspectDate(doc.getInspectDate()).setDocCreateTime(doc.getCreateTime())
                    .setRemark(doc.getRemark());
            List<MesQcOqcLineDO> lines = oqcLineService.getOqcLineListByOqcId(qcId);
            for (MesQcOqcLineDO line : lines) {
@@ -160,6 +163,7 @@
                    .setExecuteStandard(doc.getExecuteStandard())
                    .setInspectorUserId(doc.getInspectorUserId()).setAuditUserId(doc.getAuditUserId())
                    .setApproveUserId(doc.getApproveUserId()).setCheckResult(doc.getCheckResult())
                    .setInspectDate(doc.getInspectDate()).setDocCreateTime(doc.getCreateTime())
                    .setRemark(doc.getRemark());
            List<MesQcRqcLineDO> lines = rqcLineService.getRqcLineListByRqcId(qcId);
            for (MesQcRqcLineDO line : lines) {
yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/indicatorresult/MesQcProductReportWordBuilderTest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,124 @@
package cn.iocoder.yudao.module.mes.service.qc.indicatorresult;
import cn.iocoder.yudao.module.mes.controller.admin.qc.indicatorresult.vo.MesQcQcReportRespVO;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.junit.jupiter.api.Test;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.LocalDateTime;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
 * {@link MesQcProductReportWordBuilder} çš„单元测试(版式冒烟:生成可读回 + å…³é”®å†…容断言)
 *
 * ç”Ÿæˆçš„æ ·ä¾‹æ–‡ä»¶ä¼šè¾“出到 target/MesQcProductReportWordBuilder-sample.docx,可用 Word äººå·¥æ ¸å¯¹ç‰ˆå¼ã€‚
 */
public class MesQcProductReportWordBuilderTest {
    @Test
    public void testBuild() throws IOException {
        byte[] docx = MesQcProductReportWordBuilder.build(randomReport());
        assertTrue(docx.length > 0);
        // è¾“出样例文件,便于人工用 Word æ‰“开核对
        Path sample = Path.of("target", "MesQcProductReportWordBuilder-sample.docx");
        Files.createDirectories(sample.getParent());
        try (OutputStreamHolder ignored = new OutputStreamHolder(sample, docx)) {
            // no-op
        }
        try (InputStream in = new ByteArrayInputStream(docx); XWPFDocument doc = new XWPFDocument(in)) {
            List<XWPFTable> tables = doc.getTables();
            assertEquals(4, tables.size(), "表头/检验项目/判定结论/备注 å…± 4 å¼ è¡¨");
            // è¡¨å¤´é¦–行:生产单位 + å…¬å¸å
            assertTrue(tables.get(0).getRow(0).getCell(0).getText().contains("生产单位"));
            assertTrue(tables.get(0).getRow(0).getCell(1).getText().contains("宁夏九泓化工科技有限公司"));
            // æ£€éªŒé¡¹ç›®è¡¨ï¼šè¡¨å¤´è¡Œ + å¤–è§‚ + åˆ†ç»„展开的录入项(酸含量分组被隐藏)
            XWPFTable itemTable = tables.get(1);
            assertEquals(4, itemTable.getNumberOfRows());
            assertEquals("外观", itemTable.getRow(1).getCell(0).getText().trim());
            assertEquals("透明液体,无可见杂质", itemTable.getRow(1).getCell(1).getText().trim());
            // å¹³è¡Œæµ‹é‡é¡¿å·åˆå¹¶
            assertEquals("10.023、10.115", itemTable.getRow(2).getCell(1).getText().trim());
            assertEquals("/", itemTable.getRow(3).getCell(1).getText().trim());
            // åˆ¤å®šç»“论/质检专用章留空
            assertTrue(itemTable.getRow(2).getCell(0).getText().contains("试样质量 m /g"));
            assertEquals("判定结论:", tables.get(2).getRow(0).getCell(0).getText().trim());
            assertEquals("质检专用章:", tables.get(2).getRow(0).getCell(1).getText().trim());
            // å¤‡æ³¨é»˜è®¤æ–‡æ¡ˆ
            assertTrue(tables.get(3).getRow(0).getCell(1).getText().contains("检验结果仅对样品本身或本批次负责"));
            // ç­¾å­—行留空(打印后手写),不得出现姓名
            String signLine = doc.getParagraphs().stream()
                    .filter(p -> p.getText().contains("批准:"))
                    .findFirst().orElseThrow().getText();
            assertTrue(signLine.contains("检验:") && signLine.contains("复核:"));
            assertTrue(!signLine.contains("李博") && !signLine.contains("周亚洁") && !signLine.contains("包翠萍"),
                    "签字行应留空,不输出检验/复核/批准姓名");
        }
    }
    private static MesQcQcReportRespVO randomReport() {
        MesQcQcReportRespVO report = new MesQcQcReportRespVO();
        report.setQcType(3).setDocCode("OQC20260106001").setItemName("工业用正丁醇")
                .setBatchNo("20260100001").setSamplingLocation("成品正丁醇储罐(V0008A)")
                .setExecuteStandard("GB/T 6027-2023")
                .setSamplingTime(LocalDateTime.of(2026, 1, 6, 9, 0))
                .setInspectDate(LocalDateTime.of(2026, 1, 6, 15, 0))
                .setDocCreateTime(LocalDateTime.of(2026, 1, 6, 8, 0))
                .setInspectorName("李博").setAuditName("周亚洁").setApproveName("包翠萍");
        MesQcQcReportRespVO.ReportItem appearance = new MesQcQcReportRespVO.ReportItem();
        appearance.setIndicatorName("外观").setItemType(1).setSortOrder(10);
        appearance.setMeasures(List.of(measure(1, "透明液体,无可见杂质")));
        MesQcQcReportRespVO.ReportItem acidGroup = new MesQcQcReportRespVO.ReportItem();
        acidGroup.setIndicatorName("酸含量").setItemType(2).setSortOrder(20);
        acidGroup.setFormulaText("w3 = c Ã— V Ã— 0.06005 / m Ã— 100%");
        MesQcQcReportRespVO.ReportItem mass = new MesQcQcReportRespVO.ReportItem();
        mass.setIndicatorName("试样质量 m /g").setItemType(1).setSortOrder(1);
        mass.setMeasures(List.of(measure(1, "10.023"), measure(2, "10.115")));
        acidGroup.setChildren(List.of(mass));
        MesQcQcReportRespVO.ReportItem water = new MesQcQcReportRespVO.ReportItem();
        water.setIndicatorName("水分,w/%,≤").setItemType(1).setSortOrder(30);
        water.setMeasures(List.of());
        report.setItems(List.of(appearance, acidGroup, water));
        report.setBatchQuantity(null);
        return report;
    }
    private static MesQcQcReportRespVO.ReportMeasure measure(int measureNo, String value) {
        MesQcQcReportRespVO.ReportMeasure measure = new MesQcQcReportRespVO.ReportMeasure();
        measure.setMeasureNo(measureNo);
        measure.setValue(value);
        return measure;
    }
    /** try-with-resources è¾…助:写出样例文件 */
    private static class OutputStreamHolder implements AutoCloseable {
        OutputStreamHolder(Path path, byte[] content) throws IOException {
            Files.write(path, content);
        }
        @Override
        public void close() {
        }
    }
}
yudao-server/src/main/resources/application-local.yaml
@@ -1,5 +1,5 @@
server:
  port: 48080
  port: 48081
--- #################### æ•°æ®åº“相关配置 ####################
spring:
@@ -65,7 +65,7 @@
      primary: master
      datasource:
        master:
          url: jdbc:mysql://localhost:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X è¿žæŽ¥çš„示例
          url: jdbc:mysql://localhost:3306/mom-jhhg?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X è¿žæŽ¥çš„示例
          username: root
          password: 123456