agentworkshop 0.7.8 → 0.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/-6OnbLFb.js +1 -0
  3. package/.output/public/_nuxt/{BUxYN2mw.js → -nb2uqVg.js} +1 -1
  4. package/.output/public/_nuxt/{DM8DS9MA.js → 6PZPfFcO.js} +1 -1
  5. package/.output/public/_nuxt/91DZTUMJ.js +1 -0
  6. package/.output/public/_nuxt/B0HpdCKS.js +1 -0
  7. package/.output/public/_nuxt/B1g8pJmr.js +2 -0
  8. package/.output/public/_nuxt/B1kA8LhC.js +14 -0
  9. package/.output/public/_nuxt/{uBbDCfTz.js → B5S_UyaC.js} +1 -1
  10. package/.output/public/_nuxt/{DZk24ego.js → B7wL3pDk.js} +1 -1
  11. package/.output/public/_nuxt/B9MUiDFl.js +1 -0
  12. package/.output/public/_nuxt/B9dLFSYI.js +1 -0
  13. package/.output/public/_nuxt/BC8s1Guv.js +1 -0
  14. package/.output/public/_nuxt/{BSXx2vqR.js → BCJFMBQ6.js} +1 -1
  15. package/.output/public/_nuxt/{BYL0Rjqj.js → BDASpD_i.js} +3 -3
  16. package/.output/public/_nuxt/{VnIWJ0ts.js → BN_PdN3J.js} +1 -1
  17. package/.output/public/_nuxt/BUPj10t4.js +1 -0
  18. package/.output/public/_nuxt/BZGNTgTQ2.js +1 -0
  19. package/.output/public/_nuxt/{NIM0Wglj2.js → BaMkWl5i2.js} +1 -1
  20. package/.output/public/_nuxt/BmHvC_OU.js +1 -0
  21. package/.output/public/_nuxt/{BkfchkK62.js → Bp5luxkg2.js} +1 -1
  22. package/.output/public/_nuxt/{ZugRk0CM2.js → BuktKVqK2.js} +1 -1
  23. package/.output/public/_nuxt/By8BpbKH.js +1 -0
  24. package/.output/public/_nuxt/{pRQri7vQ2.js → BytVi9VX2.js} +1 -1
  25. package/.output/public/_nuxt/{D5KJ7_0V.js → C3tCneTM.js} +1 -1
  26. package/.output/public/_nuxt/{CblLEiCZ.js → C9cU_Ujd.js} +3 -3
  27. package/.output/public/_nuxt/{BJ-fxrSw.js → CBciOiTQ.js} +1 -1
  28. package/.output/public/_nuxt/CFn4vHwD.js +1 -0
  29. package/.output/public/_nuxt/{DCXIGxzT.js → CKfhtOt7.js} +2 -2
  30. package/.output/public/_nuxt/CUMdhxg9.js +1 -0
  31. package/.output/public/_nuxt/{ChEKFMxj.js → CUXCQXjG.js} +1 -1
  32. package/.output/public/_nuxt/CfVAr2nf.js +1 -0
  33. package/.output/public/_nuxt/{CvbHIGQY2.js → CgvGu2IO.js} +1 -1
  34. package/.output/public/_nuxt/CjDQPXfv.js +1 -0
  35. package/.output/public/_nuxt/{B4Fia4FB.js → CmHzfVc5.js} +1 -1
  36. package/.output/public/_nuxt/{Do88WZG2.js → Cn3J3NXR.js} +1 -1
  37. package/.output/public/_nuxt/{DNzaswei.js → Cst47G4-.js} +1 -1
  38. package/.output/public/_nuxt/{DYZBdSSg2.js → Ct68Z0232.js} +1 -1
  39. package/.output/public/_nuxt/{BsMpJf7S.js → D-Ca4BGY.js} +6 -6
  40. package/.output/public/_nuxt/D0Szyn_D.js +1 -0
  41. package/.output/public/_nuxt/{CsCpu2Zh.js → D1z7i2UP.js} +1 -1
  42. package/.output/public/_nuxt/{Du-eSpo2.js → D3VJ3lex.js} +1 -1
  43. package/.output/public/_nuxt/D8CqF0yy.js +1 -0
  44. package/.output/public/_nuxt/D8EfUxO2.js +1 -0
  45. package/.output/public/_nuxt/D8wyHvcz2.js +1 -0
  46. package/.output/public/_nuxt/{zwdqvGN_.js → DDdEnkdw.js} +1 -1
  47. package/.output/public/_nuxt/DM4CNkXz.js +1 -0
  48. package/.output/public/_nuxt/DN5RuZ8k.js +18 -0
  49. package/.output/public/_nuxt/DXRZPxGs.js +1 -0
  50. package/.output/public/_nuxt/{C2iWjzEC2.js → DoLasgPj2.js} +1 -1
  51. package/.output/public/_nuxt/{DRq09ZmT.js → DpojD719.js} +1 -1
  52. package/.output/public/_nuxt/Dqj2h40U.js +1 -0
  53. package/.output/public/_nuxt/{BCipft_k2.js → DsUUYP292.js} +1 -1
  54. package/.output/public/_nuxt/DtBu71ev.js +32 -0
  55. package/.output/public/_nuxt/{fQUs58kX2.js → DvgKXPgu2.js} +1 -1
  56. package/.output/public/_nuxt/{C_gFA2H_2.js → DxrgFxIr2.js} +1 -1
  57. package/.output/public/_nuxt/Dy-mxvXY2.js +1 -0
  58. package/.output/public/_nuxt/G0qIw7Gq2.js +1 -0
  59. package/.output/public/_nuxt/{DCEyMaN-.js → MyA0Oeqd.js} +3 -3
  60. package/.output/public/_nuxt/{tRBT-plo.js → OV6PBW2z.js} +1 -1
  61. package/.output/public/_nuxt/TownView.BHLKAjEu.css +1 -0
  62. package/.output/public/_nuxt/VLI2Zy4t.js +5 -0
  63. package/.output/public/_nuxt/_id_.DIxEKj88.css +1 -0
  64. package/.output/public/_nuxt/_id_.DTvjd6VN.css +1 -0
  65. package/.output/public/_nuxt/{_wsId_.COUzMXpP.css → _wsId_.BFyCuUwS.css} +1 -1
  66. package/.output/public/_nuxt/agents.CEbox5-D.css +1 -0
  67. package/.output/public/_nuxt/builds/latest.json +1 -1
  68. package/.output/public/_nuxt/builds/meta/92d6bd39-dbc5-46d5-90d8-8387f36715fa.json +1 -0
  69. package/.output/public/_nuxt/channel-templates.De5ZvrGz.css +1 -0
  70. package/.output/public/_nuxt/daq.6IrhVVfy.css +1 -0
  71. package/.output/public/_nuxt/dcw.DcDjwvqv.css +1 -0
  72. package/.output/public/_nuxt/{default.V3_hUJq1.css → default.BR3e5fPY.css} +1 -1
  73. package/.output/public/_nuxt/{Cyk3du4K2.js → kZV5TQvh2.js} +1 -1
  74. package/.output/public/_nuxt/logs.BO-BSyjm.css +1 -0
  75. package/.output/public/_nuxt/{D4qXvjuV.js → niDwBOZW.js} +2 -2
  76. package/.output/public/_nuxt/pKv_VWR4.js +1 -0
  77. package/.output/public/_nuxt/plugins.Clsky_kl.css +1 -0
  78. package/.output/public/_nuxt/rqZ-1SoP.js +2 -0
  79. package/.output/public/_nuxt/teams.CUMnbQGf.css +1 -0
  80. package/.output/public/_nuxt/tokens.BPLe9ioQ.css +1 -0
  81. package/.output/public/_nuxt/{C8dxXc6K.js → u7KWCGSb.js} +1 -1
  82. package/.output/public/_nuxt/{Bi6AiCuP.js → vJ4FPb-_.js} +1 -1
  83. package/.output/public/_nuxt/wirVyscc.js +1 -0
  84. package/.output/public/_nuxt/workshop.BIdoGfoC.css +1 -0
  85. package/.output/server/chunks/_/nitro.mjs +896 -882
  86. package/.output/server/chunks/build/{TownView-B5KifIaT.mjs → TownView-D8DSdO3H.mjs} +181 -180
  87. package/.output/server/chunks/build/{TownView-B5KifIaT.mjs.map → TownView-D8DSdO3H.mjs.map} +1 -1
  88. package/.output/server/chunks/build/{_id_-Ct4Jhvl1.mjs → _id_-BV4FfiYd.mjs} +36 -35
  89. package/.output/server/chunks/build/_id_-BV4FfiYd.mjs.map +1 -0
  90. package/.output/server/chunks/build/{_id_-C-ewLgfl.mjs → _id_-TP9hvnBM.mjs} +125 -124
  91. package/.output/server/chunks/build/_id_-TP9hvnBM.mjs.map +1 -0
  92. package/.output/server/chunks/build/{_wsId_-CanI_6Su.mjs → _wsId_-Mm9sQSz2.mjs} +125 -124
  93. package/.output/server/chunks/build/{_wsId_-CanI_6Su.mjs.map → _wsId_-Mm9sQSz2.mjs.map} +1 -1
  94. package/.output/server/chunks/build/{agents-DSOptxXA.mjs → agents-To3a5xcZ.mjs} +16 -15
  95. package/.output/server/chunks/build/agents-To3a5xcZ.mjs.map +1 -0
  96. package/.output/server/chunks/build/api-error-dul30BYQ.mjs +47 -0
  97. package/.output/server/chunks/build/api-error-dul30BYQ.mjs.map +1 -0
  98. package/.output/server/chunks/build/{channel-templates-BK0KuPOd.mjs → channel-templates-DRsP-qxl.mjs} +23 -22
  99. package/.output/server/chunks/build/channel-templates-DRsP-qxl.mjs.map +1 -0
  100. package/.output/server/chunks/build/{daq-D9RA_uze.mjs → daq-_hCEaYLd.mjs} +111 -110
  101. package/.output/server/chunks/build/daq-_hCEaYLd.mjs.map +1 -0
  102. package/.output/server/chunks/build/{dcw-BTM5YU-B.mjs → dcw-C7pJ4Y0p.mjs} +46 -45
  103. package/.output/server/chunks/build/dcw-C7pJ4Y0p.mjs.map +1 -0
  104. package/.output/server/chunks/build/{default-BfWGTlbj.mjs → default-Dnjs36e8.mjs} +16 -15
  105. package/.output/server/chunks/build/{default-BfWGTlbj.mjs.map → default-Dnjs36e8.mjs.map} +1 -1
  106. package/.output/server/chunks/build/{logs-Dyk0I2I9.mjs → logs-C039TFW1.mjs} +38 -37
  107. package/.output/server/chunks/build/logs-C039TFW1.mjs.map +1 -0
  108. package/.output/server/chunks/build/{pages-DR2bzczM.mjs → pages-C_VSGSGo.mjs} +5 -4
  109. package/.output/server/chunks/build/pages-C_VSGSGo.mjs.map +1 -0
  110. package/.output/server/chunks/build/{plugins-DnOBIWGg.mjs → plugins-4FMWkN8d.mjs} +25 -22
  111. package/.output/server/chunks/build/plugins-4FMWkN8d.mjs.map +1 -0
  112. package/.output/server/chunks/build/table-Cswq-l2r.mjs +1 -1
  113. package/.output/server/chunks/build/{teams-BhSKBBBM.mjs → teams-DA1lkf1n.mjs} +19 -18
  114. package/.output/server/chunks/build/teams-DA1lkf1n.mjs.map +1 -0
  115. package/.output/server/chunks/build/{tokens-D_eyxmcv.mjs → tokens-DKMvvk3e.mjs} +18 -17
  116. package/.output/server/chunks/build/tokens-DKMvvk3e.mjs.map +1 -0
  117. package/.output/server/chunks/build/{town-DPtOPRRO.mjs → town-D0thZ7PK.mjs} +6 -5
  118. package/.output/server/chunks/build/town-D0thZ7PK.mjs.map +1 -0
  119. package/.output/server/chunks/build/{useDaqStream-hwkhJHFU.mjs → useDaqStream-BVTRw8_H.mjs} +4 -3
  120. package/.output/server/chunks/build/useDaqStream-BVTRw8_H.mjs.map +1 -0
  121. package/.output/server/chunks/build/{useDcwStream-Bdew_yrr.mjs → useDcwStream-DNsivqI_.mjs} +4 -3
  122. package/.output/server/chunks/build/useDcwStream-DNsivqI_.mjs.map +1 -0
  123. package/.output/server/chunks/build/{useDeviceTwins-C6EBg9oN.mjs → useDeviceTwins-WeIom7A6.mjs} +4 -3
  124. package/.output/server/chunks/build/useDeviceTwins-WeIom7A6.mjs.map +1 -0
  125. package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs +1 -1
  126. package/.output/server/chunks/build/{useOpsLog-DdCqKVVG.mjs → useOpsLog-DcKnPO43.mjs} +5 -4
  127. package/.output/server/chunks/build/useOpsLog-DcKnPO43.mjs.map +1 -0
  128. package/.output/server/chunks/build/useWorkshopApi-D2gq06N2.mjs +1 -1
  129. package/.output/server/chunks/build/{workshop-D5CQj2A8.mjs → workshop-BhWnJMWs.mjs} +19 -18
  130. package/.output/server/chunks/build/workshop-BhWnJMWs.mjs.map +1 -0
  131. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +3 -3
  132. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs.map +1 -1
  133. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +3 -3
  134. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs.map +1 -1
  135. package/.output/server/chunks/routes/renderer.mjs +1 -1
  136. package/.output/server/chunks/virtual/entry.mjs +48 -22
  137. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  138. package/.output/server/package.json +1 -1
  139. package/app/components/AppHeader.vue +1 -1
  140. package/app/components/workshop/A2aRpcDebugger.vue +1 -1
  141. package/app/components/workshop/AgentInspectorDrawer.vue +3 -3
  142. package/app/components/workshop/AgentLanesView.vue +6 -6
  143. package/app/components/workshop/AssetLibrary.vue +2 -2
  144. package/app/components/workshop/ChannelSessionList.vue +5 -5
  145. package/app/components/workshop/Composer.vue +1 -1
  146. package/app/components/workshop/DeviceTwinPanel.vue +2 -2
  147. package/app/components/workshop/TaskBoardView.vue +1 -1
  148. package/app/components/workshop/TaskInspectorDrawer.vue +2 -2
  149. package/app/components/workshop/town/TownView.vue +23 -23
  150. package/app/composables/workshop/apiClient.ts +1 -1
  151. package/app/composables/workshop/useCharacterAssets.ts +1 -1
  152. package/app/composables/workshop/useDaqStream.ts +1 -1
  153. package/app/composables/workshop/useDcwStream.ts +1 -1
  154. package/app/composables/workshop/useDeviceTwins.ts +1 -1
  155. package/app/composables/workshop/useOpsLog.ts +2 -2
  156. package/app/composables/workshop/useSceneLayouts.ts +1 -1
  157. package/app/pages/daq/[id].vue +1 -1
  158. package/app/pages/daq/index.vue +8 -8
  159. package/app/pages/dcw/[id].vue +13 -13
  160. package/app/pages/dcw/index.vue +7 -7
  161. package/app/pages/logs/index.vue +1 -1
  162. package/app/pages/plugins/index.vue +14 -6
  163. package/app/pages/tokens.vue +3 -3
  164. package/app/pages/workshop/agents.vue +2 -2
  165. package/app/pages/workshop/channel-templates.vue +3 -3
  166. package/app/pages/workshop/index.vue +4 -4
  167. package/app/pages/workshop/teams.vue +3 -3
  168. package/app/utils/api-error.ts +75 -0
  169. package/cli/commands/plugin.mjs +2 -2
  170. package/config.yml +1 -1
  171. package/i18n/locales/en.ts +16 -3
  172. package/i18n/locales/zh-CN.ts +16 -3
  173. package/package.json +1 -1
  174. package/scripts/_dbg-interval-config.mjs +17 -6
  175. package/scripts/_dbg-plugins-e2e.mjs +101 -0
  176. package/scripts/_dbg-repo-setup-verify.mjs +31 -0
  177. package/scripts/_dbg-setup-e2e.mjs +1 -1
  178. package/server/api/workshop/plugins/[name]/disable.post.ts +5 -3
  179. package/server/api/workshop/plugins/[name]/enable.post.ts +5 -3
  180. package/server/data/daqs.json +88 -44
  181. package/server/data/dcw-lines.json +21 -0
  182. package/server/data/dcw-products.json +119 -0
  183. package/server/data/dcw-recipes.json +422 -0
  184. package/server/data/dcw-rollback.json +193 -6
  185. package/server/data/dcw-runs.json +459 -348
  186. package/server/data/dcw-writes.json +204 -0
  187. package/server/data/dcws.json +730 -305
  188. package/server/data/line-runs.json +26 -6
  189. package/server/services/system-config.ts +5 -0
  190. package/server/services/workshop/daq/storage/sqlite.adapter.ts +10 -5
  191. package/server/services/workshop/plugins/host.mjs +2 -1
  192. package/server/services/workshop/settings.ts +10 -0
  193. package/.output/public/_nuxt/2LwEn9gX.js +0 -2
  194. package/.output/public/_nuxt/3612gD2V.js +0 -32
  195. package/.output/public/_nuxt/8eIQAVlb.js +0 -1
  196. package/.output/public/_nuxt/Ah9qOv1m.js +0 -1
  197. package/.output/public/_nuxt/B7aqqzkY.js +0 -1
  198. package/.output/public/_nuxt/BH0Z05CS.js +0 -1
  199. package/.output/public/_nuxt/BJvGPTpC.js +0 -1
  200. package/.output/public/_nuxt/BVZjSVs2.js +0 -1
  201. package/.output/public/_nuxt/BVzDoF8t.js +0 -1
  202. package/.output/public/_nuxt/BjVLsC3M.js +0 -1
  203. package/.output/public/_nuxt/BnVoQ74r.js +0 -1
  204. package/.output/public/_nuxt/Bnp4vIAf.js +0 -1
  205. package/.output/public/_nuxt/Bt_HDizI.js +0 -5
  206. package/.output/public/_nuxt/Bu-P92Pe.js +0 -18
  207. package/.output/public/_nuxt/ButLXkjo.js +0 -2
  208. package/.output/public/_nuxt/By-LNp3k.js +0 -1
  209. package/.output/public/_nuxt/CGdPdJPP.js +0 -1
  210. package/.output/public/_nuxt/CRGlf1Gb.js +0 -1
  211. package/.output/public/_nuxt/CS8R0_J3.js +0 -1
  212. package/.output/public/_nuxt/CUxV8Bw_.js +0 -1
  213. package/.output/public/_nuxt/Cd15nPnG2.js +0 -1
  214. package/.output/public/_nuxt/DNJSkm3Q.js +0 -1
  215. package/.output/public/_nuxt/DXK1U43I.js +0 -1
  216. package/.output/public/_nuxt/Dc46i75T.js +0 -14
  217. package/.output/public/_nuxt/Dk6pq9JB2.js +0 -1
  218. package/.output/public/_nuxt/GP2wXyuY.js +0 -1
  219. package/.output/public/_nuxt/PQLnLxYe.js +0 -1
  220. package/.output/public/_nuxt/R_Wv_Nd9.js +0 -1
  221. package/.output/public/_nuxt/TownView.Bt33bo1M.css +0 -1
  222. package/.output/public/_nuxt/_id_.BzKMZnLe.css +0 -1
  223. package/.output/public/_nuxt/_id_.CbpDAWRh.css +0 -1
  224. package/.output/public/_nuxt/agents.BlejnOOC.css +0 -1
  225. package/.output/public/_nuxt/builds/meta/e5bb1803-86d9-43b3-85be-dc787dc9a978.json +0 -1
  226. package/.output/public/_nuxt/channel-templates.lkqEYlWY.css +0 -1
  227. package/.output/public/_nuxt/daq.zZ8GR433.css +0 -1
  228. package/.output/public/_nuxt/dcw.C46dGiF_.css +0 -1
  229. package/.output/public/_nuxt/eHGLpQSg2.js +0 -1
  230. package/.output/public/_nuxt/logs.DaIsHWZE.css +0 -1
  231. package/.output/public/_nuxt/p7wSGMtc.js +0 -1
  232. package/.output/public/_nuxt/plugins.FTm0PcEe.css +0 -1
  233. package/.output/public/_nuxt/teams.B8JNbUZg.css +0 -1
  234. package/.output/public/_nuxt/tokens.CWOTXM-Z.css +0 -1
  235. package/.output/public/_nuxt/ubPfs9mQ.js +0 -1
  236. package/.output/public/_nuxt/workshop.3kAcLB_M.css +0 -1
  237. package/.output/server/chunks/build/_id_-C-ewLgfl.mjs.map +0 -1
  238. package/.output/server/chunks/build/_id_-Ct4Jhvl1.mjs.map +0 -1
  239. package/.output/server/chunks/build/agents-DSOptxXA.mjs.map +0 -1
  240. package/.output/server/chunks/build/channel-templates-BK0KuPOd.mjs.map +0 -1
  241. package/.output/server/chunks/build/daq-D9RA_uze.mjs.map +0 -1
  242. package/.output/server/chunks/build/dcw-BTM5YU-B.mjs.map +0 -1
  243. package/.output/server/chunks/build/logs-Dyk0I2I9.mjs.map +0 -1
  244. package/.output/server/chunks/build/pages-DR2bzczM.mjs.map +0 -1
  245. package/.output/server/chunks/build/plugins-DnOBIWGg.mjs.map +0 -1
  246. package/.output/server/chunks/build/teams-BhSKBBBM.mjs.map +0 -1
  247. package/.output/server/chunks/build/tokens-D_eyxmcv.mjs.map +0 -1
  248. package/.output/server/chunks/build/town-DPtOPRRO.mjs.map +0 -1
  249. package/.output/server/chunks/build/useDaqStream-hwkhJHFU.mjs.map +0 -1
  250. package/.output/server/chunks/build/useDcwStream-Bdew_yrr.mjs.map +0 -1
  251. package/.output/server/chunks/build/useDeviceTwins-C6EBg9oN.mjs.map +0 -1
  252. package/.output/server/chunks/build/useOpsLog-DdCqKVVG.mjs.map +0 -1
  253. package/.output/server/chunks/build/workshop-D5CQj2A8.mjs.map +0 -1
@@ -1,352 +1,4 @@
1
1
  [
2
- {
3
- "id": "rr-01ae127b",
4
- "recipeId": "rc-7bf584db",
5
- "recipeName": "A-标准工艺",
6
- "productId": "pd-6348a595",
7
- "lineId": "ln-af002514",
8
- "startedAt": "2026-08-30T12:15:39.662Z",
9
- "endedAt": "2026-08-30T12:16:35.223Z",
10
- "results": [
11
- {
12
- "templateRef": "dcw-temp-sp",
13
- "nodeId": "dw-322b1978",
14
- "ok": true,
15
- "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
16
- "value": 182
17
- },
18
- {
19
- "templateRef": "dcw-pressure-sp",
20
- "nodeId": "dw-e92bb0e7",
21
- "ok": true,
22
- "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
23
- "value": 0.92
24
- }
25
- ]
26
- },
27
- {
28
- "id": "rr-f3cb33d0",
29
- "recipeId": "rc-7bf584db",
30
- "recipeName": "A-标准工艺",
31
- "productId": "pd-6348a595",
32
- "lineId": "ln-af002514",
33
- "startedAt": "2026-08-30T12:18:36.060Z",
34
- "endedAt": "2026-08-30T12:19:30.722Z",
35
- "results": [
36
- {
37
- "templateRef": "dcw-temp-sp",
38
- "nodeId": "dw-322b1978",
39
- "ok": true,
40
- "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
41
- "value": 182
42
- },
43
- {
44
- "templateRef": "dcw-pressure-sp",
45
- "nodeId": "dw-e92bb0e7",
46
- "ok": true,
47
- "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
48
- "value": 0.92
49
- }
50
- ]
51
- },
52
- {
53
- "id": "rr-94074f6c",
54
- "recipeId": "rc-7bf584db",
55
- "recipeName": "A-标准工艺",
56
- "productId": "pd-6348a595",
57
- "lineId": "ln-af002514",
58
- "startedAt": "2026-08-30T12:24:48.621Z",
59
- "endedAt": "2026-08-30T12:24:56.192Z",
60
- "results": [
61
- {
62
- "templateRef": "dcw-temp-sp",
63
- "nodeId": "dw-322b1978",
64
- "ok": true,
65
- "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
66
- "value": 182
67
- },
68
- {
69
- "templateRef": "dcw-pressure-sp",
70
- "nodeId": "dw-e92bb0e7",
71
- "ok": true,
72
- "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
73
- "value": 0.92
74
- }
75
- ]
76
- },
77
- {
78
- "id": "rr-7a2b1d8e",
79
- "recipeId": "rc-383d5228",
80
- "recipeName": "全功能配方-cmi1rk",
81
- "productId": "pd-f5e16580",
82
- "lineId": "ln-c6398954",
83
- "startedAt": "2026-08-30T15:01:39.119Z",
84
- "endedAt": "2026-08-30T15:11:53.479Z",
85
- "results": [
86
- {
87
- "templateRef": "dcw-temp-sp",
88
- "nodeId": "dw-e7d0b794",
89
- "ok": true,
90
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
91
- "value": 180
92
- }
93
- ]
94
- },
95
- {
96
- "id": "rr-3cfdeade",
97
- "recipeId": "rc-7bf584db",
98
- "recipeName": "A-标准工艺",
99
- "productId": "pd-6348a595",
100
- "lineId": "ln-af002514",
101
- "startedAt": "2026-08-30T15:51:40.543Z",
102
- "endedAt": "2026-08-30T15:52:09.236Z",
103
- "results": [
104
- {
105
- "templateRef": "dcw-temp-sp",
106
- "nodeId": "dw-322b1978",
107
- "ok": true,
108
- "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
109
- "value": 182
110
- },
111
- {
112
- "templateRef": "dcw-pressure-sp",
113
- "nodeId": "dw-e92bb0e7",
114
- "ok": true,
115
- "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
116
- "value": 0.92
117
- }
118
- ]
119
- },
120
- {
121
- "id": "rr-046e4328",
122
- "recipeId": "rc-7bf584db",
123
- "recipeName": "A-标准工艺",
124
- "productId": "pd-6348a595",
125
- "lineId": "ln-af002514",
126
- "startedAt": "2026-08-30T15:52:46.613Z",
127
- "endedAt": "2026-08-30T15:53:02.101Z",
128
- "results": [
129
- {
130
- "templateRef": "dcw-temp-sp",
131
- "nodeId": "dw-322b1978",
132
- "ok": true,
133
- "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
134
- "value": 182
135
- },
136
- {
137
- "templateRef": "dcw-pressure-sp",
138
- "nodeId": "dw-e92bb0e7",
139
- "ok": true,
140
- "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
141
- "value": 0.92
142
- }
143
- ]
144
- },
145
- {
146
- "id": "rr-9ac3a8c5",
147
- "recipeId": "rc-7bf584db",
148
- "recipeName": "A-标准工艺",
149
- "productId": "pd-6348a595",
150
- "lineId": "ln-af002514",
151
- "startedAt": "2026-08-30T15:53:46.748Z",
152
- "endedAt": "2026-08-30T15:53:57.454Z",
153
- "results": [
154
- {
155
- "templateRef": "dcw-temp-sp",
156
- "nodeId": "dw-322b1978",
157
- "ok": true,
158
- "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
159
- "value": 182
160
- },
161
- {
162
- "templateRef": "dcw-pressure-sp",
163
- "nodeId": "dw-e92bb0e7",
164
- "ok": true,
165
- "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
166
- "value": 0.92
167
- }
168
- ]
169
- },
170
- {
171
- "id": "rr-cbfa475a",
172
- "recipeId": "rc-be9f32f1",
173
- "recipeName": "OMPDBG-配方",
174
- "productId": "pd-49a5c9c5",
175
- "lineId": "ln-18f515c7",
176
- "startedAt": "2026-08-30T16:33:09.489Z",
177
- "endedAt": null,
178
- "results": [
179
- {
180
- "templateRef": "dcw-temp-sp",
181
- "nodeId": "dw-446be489",
182
- "ok": true,
183
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
184
- "value": 180
185
- }
186
- ]
187
- },
188
- {
189
- "id": "rr-aabedbd7",
190
- "recipeId": "rc-d78ba182",
191
- "recipeName": "OMPDBG-配方",
192
- "productId": "pd-46da28bc",
193
- "lineId": "ln-22fa44a1",
194
- "startedAt": "2026-08-30T16:34:22.155Z",
195
- "endedAt": null,
196
- "results": [
197
- {
198
- "templateRef": "dcw-temp-sp",
199
- "nodeId": "dw-17a41938",
200
- "ok": true,
201
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
202
- "value": 180
203
- }
204
- ]
205
- },
206
- {
207
- "id": "rr-db6393d4",
208
- "recipeId": "rc-d0a6fa11",
209
- "recipeName": "OMPDBG-配方",
210
- "productId": "pd-7b470ac0",
211
- "lineId": "ln-d7460017",
212
- "startedAt": "2026-08-30T16:36:03.781Z",
213
- "endedAt": null,
214
- "results": [
215
- {
216
- "templateRef": "dcw-temp-sp",
217
- "nodeId": "dw-abd67572",
218
- "ok": true,
219
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
220
- "value": 180
221
- }
222
- ]
223
- },
224
- {
225
- "id": "rr-a9d4f5d4",
226
- "recipeId": "rc-1d236ab0",
227
- "recipeName": "TEAMDBG-配方",
228
- "productId": "pd-00a1b95a",
229
- "lineId": "ln-d7bd99eb",
230
- "startedAt": "2026-08-30T16:43:36.670Z",
231
- "endedAt": "2026-08-30T16:54:02.934Z",
232
- "results": [
233
- {
234
- "templateRef": "dcw-temp-sp",
235
- "nodeId": "dw-7351ea86",
236
- "ok": true,
237
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
238
- "value": 180
239
- }
240
- ]
241
- },
242
- {
243
- "id": "rr-7e8b6ffe",
244
- "recipeId": "rc-c0660e33",
245
- "recipeName": "TEAMDBG-配方",
246
- "productId": "pd-50c200be",
247
- "lineId": "ln-7dc463ab",
248
- "startedAt": "2026-08-30T16:44:43.852Z",
249
- "endedAt": "2026-08-30T16:54:02.964Z",
250
- "results": [
251
- {
252
- "templateRef": "dcw-temp-sp",
253
- "nodeId": "dw-0e09fe42",
254
- "ok": true,
255
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
256
- "value": 180
257
- }
258
- ]
259
- },
260
- {
261
- "id": "rr-22eba3d5",
262
- "recipeId": "rc-3abdb942",
263
- "recipeName": "TEAMDBG-配方",
264
- "productId": "pd-d7a00eaf",
265
- "lineId": "ln-2d9ed7a3",
266
- "startedAt": "2026-08-30T16:45:58.393Z",
267
- "endedAt": "2026-08-30T16:54:02.980Z",
268
- "results": [
269
- {
270
- "templateRef": "dcw-temp-sp",
271
- "nodeId": "dw-2d439fe9",
272
- "ok": true,
273
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
274
- "value": 180
275
- }
276
- ]
277
- },
278
- {
279
- "id": "rr-006cdef3",
280
- "recipeId": "rc-79f78e9b",
281
- "recipeName": "TEAMDBG-配方",
282
- "productId": "pd-a2083b71",
283
- "lineId": "ln-2104ed0e",
284
- "startedAt": "2026-08-30T16:47:00.727Z",
285
- "endedAt": "2026-08-30T16:54:02.996Z",
286
- "results": [
287
- {
288
- "templateRef": "dcw-temp-sp",
289
- "nodeId": "dw-15099e27",
290
- "ok": true,
291
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
292
- "value": 180
293
- }
294
- ]
295
- },
296
- {
297
- "id": "rr-173c33b3",
298
- "recipeId": "rc-af913fcc",
299
- "recipeName": "TEAMDBG-配方",
300
- "productId": "pd-2874ada9",
301
- "lineId": "ln-08e71bc4",
302
- "startedAt": "2026-08-30T16:49:54.137Z",
303
- "endedAt": "2026-08-30T16:54:03.037Z",
304
- "results": [
305
- {
306
- "templateRef": "dcw-temp-sp",
307
- "nodeId": "dw-3f1fc785",
308
- "ok": true,
309
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
310
- "value": 180
311
- }
312
- ]
313
- },
314
- {
315
- "id": "rr-7bad6c2f",
316
- "recipeId": "rc-3cc6b71c",
317
- "recipeName": "全功能配方-5u2sgc",
318
- "productId": "pd-3a2d96f2",
319
- "lineId": "ln-afd73022",
320
- "startedAt": "2026-08-30T16:54:26.216Z",
321
- "endedAt": "2026-08-30T16:56:37.989Z",
322
- "results": [
323
- {
324
- "templateRef": "dcw-temp-sp",
325
- "nodeId": "dw-b91bdc6d",
326
- "ok": true,
327
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
328
- "value": 180
329
- }
330
- ]
331
- },
332
- {
333
- "id": "rr-69067357",
334
- "recipeId": "rc-d818cba9",
335
- "recipeName": "全功能配方-rgk2f3",
336
- "productId": "pd-bac0aa38",
337
- "lineId": "ln-9d152c2c",
338
- "startedAt": "2026-08-31T02:07:53.607Z",
339
- "endedAt": "2026-08-31T02:11:01.066Z",
340
- "results": [
341
- {
342
- "templateRef": "dcw-temp-sp",
343
- "nodeId": "dw-0f3224b4",
344
- "ok": true,
345
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
346
- "value": 180
347
- }
348
- ]
349
- },
350
2
  {
351
3
  "id": "rr-dad6d1bf",
352
4
  "recipeId": "rc-7bf584db",
@@ -5759,5 +5411,464 @@
5759
5411
  "max": 200
5760
5412
  }
5761
5413
  ]
5414
+ },
5415
+ {
5416
+ "id": "rr-548beb06",
5417
+ "recipeId": "rc-faba4567",
5418
+ "recipeName": "cfg-recipe",
5419
+ "productId": "pd-a136dbbf",
5420
+ "lineId": "ln-64931cf4",
5421
+ "startedAt": "2026-09-06T01:31:30.568+08:00",
5422
+ "endedAt": "2026-09-06T01:31:53.974+08:00",
5423
+ "results": [
5424
+ {
5425
+ "templateRef": "dcw-temp-sp",
5426
+ "nodeId": "dw-d1473c36",
5427
+ "ok": true,
5428
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5429
+ "value": 180
5430
+ }
5431
+ ],
5432
+ "paramsSnapshot": [
5433
+ {
5434
+ "nodeId": "dw-d1473c36",
5435
+ "templateRef": "dcw-temp-sp",
5436
+ "value": 180,
5437
+ "min": 150,
5438
+ "max": 200
5439
+ }
5440
+ ]
5441
+ },
5442
+ {
5443
+ "id": "rr-d56d9e03",
5444
+ "recipeId": "rc-ded44765",
5445
+ "recipeName": "cfg-recipe",
5446
+ "productId": "pd-52746c22",
5447
+ "lineId": "ln-a0421b57",
5448
+ "startedAt": "2026-09-06T01:34:34.956+08:00",
5449
+ "endedAt": "2026-09-06T01:34:56.055+08:00",
5450
+ "results": [
5451
+ {
5452
+ "templateRef": "dcw-temp-sp",
5453
+ "nodeId": "dw-282271fd",
5454
+ "ok": true,
5455
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5456
+ "value": 180
5457
+ }
5458
+ ],
5459
+ "paramsSnapshot": [
5460
+ {
5461
+ "nodeId": "dw-282271fd",
5462
+ "templateRef": "dcw-temp-sp",
5463
+ "value": 180,
5464
+ "min": 150,
5465
+ "max": 200
5466
+ }
5467
+ ]
5468
+ },
5469
+ {
5470
+ "id": "rr-284c0dbb",
5471
+ "recipeId": "rc-776dcb1e",
5472
+ "recipeName": "cfg-recipe",
5473
+ "productId": "pd-11d4b14d",
5474
+ "lineId": "ln-14bb98f1",
5475
+ "startedAt": "2026-09-06T01:36:55.763+08:00",
5476
+ "endedAt": "2026-09-06T01:37:16.885+08:00",
5477
+ "results": [
5478
+ {
5479
+ "templateRef": "dcw-temp-sp",
5480
+ "nodeId": "dw-cd0ba7e6",
5481
+ "ok": true,
5482
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5483
+ "value": 180
5484
+ }
5485
+ ],
5486
+ "paramsSnapshot": [
5487
+ {
5488
+ "nodeId": "dw-cd0ba7e6",
5489
+ "templateRef": "dcw-temp-sp",
5490
+ "value": 180,
5491
+ "min": 150,
5492
+ "max": 200
5493
+ }
5494
+ ]
5495
+ },
5496
+ {
5497
+ "id": "rr-3552060e",
5498
+ "recipeId": "rc-4f9019f2",
5499
+ "recipeName": "cfg-recipe",
5500
+ "productId": "pd-fd48e9df",
5501
+ "lineId": "ln-a0ac0224",
5502
+ "startedAt": "2026-09-06T01:38:22.259+08:00",
5503
+ "endedAt": "2026-09-06T01:38:43.359+08:00",
5504
+ "results": [
5505
+ {
5506
+ "templateRef": "dcw-temp-sp",
5507
+ "nodeId": "dw-140e12fa",
5508
+ "ok": true,
5509
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5510
+ "value": 180
5511
+ }
5512
+ ],
5513
+ "paramsSnapshot": [
5514
+ {
5515
+ "nodeId": "dw-140e12fa",
5516
+ "templateRef": "dcw-temp-sp",
5517
+ "value": 180,
5518
+ "min": 150,
5519
+ "max": 200
5520
+ }
5521
+ ]
5522
+ },
5523
+ {
5524
+ "id": "rr-a611ea91",
5525
+ "recipeId": "rc-023a55aa",
5526
+ "recipeName": "cfg-recipe",
5527
+ "productId": "pd-74361ea8",
5528
+ "lineId": "ln-cfb12b03",
5529
+ "startedAt": "2026-09-06T01:40:55.374+08:00",
5530
+ "endedAt": "2026-09-06T01:41:16.464+08:00",
5531
+ "results": [
5532
+ {
5533
+ "templateRef": "dcw-temp-sp",
5534
+ "nodeId": "dw-5316721a",
5535
+ "ok": true,
5536
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5537
+ "value": 180
5538
+ }
5539
+ ],
5540
+ "paramsSnapshot": [
5541
+ {
5542
+ "nodeId": "dw-5316721a",
5543
+ "templateRef": "dcw-temp-sp",
5544
+ "value": 180,
5545
+ "min": 150,
5546
+ "max": 200
5547
+ }
5548
+ ]
5549
+ },
5550
+ {
5551
+ "id": "rr-22845fb4",
5552
+ "recipeId": "rc-290402b0",
5553
+ "recipeName": "lx-recipe",
5554
+ "productId": "pd-b220f792",
5555
+ "lineId": "ln-f7f729e5",
5556
+ "startedAt": "2026-09-06T01:42:23.533+08:00",
5557
+ "endedAt": "2026-09-06T01:42:48.656+08:00",
5558
+ "results": [
5559
+ {
5560
+ "templateRef": "dcw-temp-sp",
5561
+ "nodeId": "dw-cb7b120b",
5562
+ "ok": true,
5563
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5564
+ "value": 180
5565
+ }
5566
+ ],
5567
+ "paramsSnapshot": [
5568
+ {
5569
+ "nodeId": "dw-cb7b120b",
5570
+ "templateRef": "dcw-temp-sp",
5571
+ "value": 180,
5572
+ "min": 150,
5573
+ "max": 200
5574
+ }
5575
+ ]
5576
+ },
5577
+ {
5578
+ "id": "rr-c1ce0809",
5579
+ "recipeId": "rc-6afdcfa0",
5580
+ "recipeName": "lx2-recipe",
5581
+ "productId": "pd-7c48a733",
5582
+ "lineId": "ln-49dcdd09",
5583
+ "startedAt": "2026-09-06T01:50:15.700+08:00",
5584
+ "endedAt": "2026-09-06T01:50:35.881+08:00",
5585
+ "results": [
5586
+ {
5587
+ "templateRef": "dcw-temp-sp",
5588
+ "nodeId": "dw-588c9a0d",
5589
+ "ok": true,
5590
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5591
+ "value": 180
5592
+ }
5593
+ ],
5594
+ "paramsSnapshot": [
5595
+ {
5596
+ "nodeId": "dw-588c9a0d",
5597
+ "templateRef": "dcw-temp-sp",
5598
+ "value": 180,
5599
+ "min": 150,
5600
+ "max": 200
5601
+ }
5602
+ ]
5603
+ },
5604
+ {
5605
+ "id": "rr-d21c9e25",
5606
+ "recipeId": "rc-b9bd4d27",
5607
+ "recipeName": "lx3-recipe",
5608
+ "productId": "pd-dd794a60",
5609
+ "lineId": "ln-b3b799ac",
5610
+ "startedAt": "2026-09-06T01:54:41.085+08:00",
5611
+ "endedAt": "2026-09-06T01:55:01.211+08:00",
5612
+ "results": [
5613
+ {
5614
+ "templateRef": "dcw-temp-sp",
5615
+ "nodeId": "dw-0b88f9ed",
5616
+ "ok": true,
5617
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5618
+ "value": 180
5619
+ }
5620
+ ],
5621
+ "paramsSnapshot": [
5622
+ {
5623
+ "nodeId": "dw-0b88f9ed",
5624
+ "templateRef": "dcw-temp-sp",
5625
+ "value": 180,
5626
+ "min": 150,
5627
+ "max": 200
5628
+ }
5629
+ ]
5630
+ },
5631
+ {
5632
+ "id": "rr-5ef4939d",
5633
+ "recipeId": "rc-b416314e",
5634
+ "recipeName": "lx4-recipe",
5635
+ "productId": "pd-b4d2819f",
5636
+ "lineId": "ln-ad49e7bb",
5637
+ "startedAt": "2026-09-06T02:00:59.114+08:00",
5638
+ "endedAt": "2026-09-06T02:01:17.256+08:00",
5639
+ "results": [
5640
+ {
5641
+ "templateRef": "dcw-temp-sp",
5642
+ "nodeId": "dw-84ebc256",
5643
+ "ok": true,
5644
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5645
+ "value": 180
5646
+ }
5647
+ ],
5648
+ "paramsSnapshot": [
5649
+ {
5650
+ "nodeId": "dw-84ebc256",
5651
+ "templateRef": "dcw-temp-sp",
5652
+ "value": 180,
5653
+ "min": 150,
5654
+ "max": 200
5655
+ }
5656
+ ]
5657
+ },
5658
+ {
5659
+ "id": "rr-8160355b",
5660
+ "recipeId": "rc-35dfc23d",
5661
+ "recipeName": "lx5-recipe",
5662
+ "productId": "pd-c787b400",
5663
+ "lineId": "ln-d285dce8",
5664
+ "startedAt": "2026-09-06T02:05:17.297+08:00",
5665
+ "endedAt": "2026-09-06T02:05:35.471+08:00",
5666
+ "results": [
5667
+ {
5668
+ "templateRef": "dcw-temp-sp",
5669
+ "nodeId": "dw-f87c592c",
5670
+ "ok": true,
5671
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5672
+ "value": 180
5673
+ }
5674
+ ],
5675
+ "paramsSnapshot": [
5676
+ {
5677
+ "nodeId": "dw-f87c592c",
5678
+ "templateRef": "dcw-temp-sp",
5679
+ "value": 180,
5680
+ "min": 150,
5681
+ "max": 200
5682
+ }
5683
+ ]
5684
+ },
5685
+ {
5686
+ "id": "rr-8da3aa3f",
5687
+ "recipeId": "rc-5508d345",
5688
+ "recipeName": "lx6-recipe",
5689
+ "productId": "pd-b265d280",
5690
+ "lineId": "ln-fd80849a",
5691
+ "startedAt": "2026-09-06T02:06:14.629+08:00",
5692
+ "endedAt": "2026-09-06T02:06:29.799+08:00",
5693
+ "results": [
5694
+ {
5695
+ "templateRef": "dcw-temp-sp",
5696
+ "nodeId": "dw-ab1897d8",
5697
+ "ok": true,
5698
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5699
+ "value": 180
5700
+ }
5701
+ ],
5702
+ "paramsSnapshot": [
5703
+ {
5704
+ "nodeId": "dw-ab1897d8",
5705
+ "templateRef": "dcw-temp-sp",
5706
+ "value": 180,
5707
+ "min": 150,
5708
+ "max": 200
5709
+ }
5710
+ ]
5711
+ },
5712
+ {
5713
+ "id": "rr-2fd40cd5",
5714
+ "recipeId": "rc-f0aa06cc",
5715
+ "recipeName": "dbg2-recipe",
5716
+ "productId": "pd-71604a52",
5717
+ "lineId": "ln-612648d3",
5718
+ "startedAt": "2026-09-06T02:19:22.194+08:00",
5719
+ "endedAt": "2026-09-06T02:19:34.352+08:00",
5720
+ "results": [
5721
+ {
5722
+ "templateRef": "dcw-temp-sp",
5723
+ "nodeId": "dw-bb330d90",
5724
+ "ok": true,
5725
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5726
+ "value": 180
5727
+ }
5728
+ ],
5729
+ "paramsSnapshot": [
5730
+ {
5731
+ "nodeId": "dw-bb330d90",
5732
+ "templateRef": "dcw-temp-sp",
5733
+ "value": 180,
5734
+ "min": 150,
5735
+ "max": 200
5736
+ }
5737
+ ]
5738
+ },
5739
+ {
5740
+ "id": "rr-d3ac8878",
5741
+ "recipeId": "rc-2a7b0def",
5742
+ "recipeName": "lx8-recipe",
5743
+ "productId": "pd-3adf854f",
5744
+ "lineId": "ln-1acc1a0c",
5745
+ "startedAt": "2026-09-06T02:22:23.209+08:00",
5746
+ "endedAt": null,
5747
+ "results": [
5748
+ {
5749
+ "templateRef": "dcw-temp-sp",
5750
+ "nodeId": "dw-82b6f604",
5751
+ "ok": true,
5752
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5753
+ "value": 180
5754
+ }
5755
+ ],
5756
+ "paramsSnapshot": [
5757
+ {
5758
+ "nodeId": "dw-82b6f604",
5759
+ "templateRef": "dcw-temp-sp",
5760
+ "value": 180,
5761
+ "min": 150,
5762
+ "max": 200
5763
+ }
5764
+ ]
5765
+ },
5766
+ {
5767
+ "id": "rr-04594711",
5768
+ "recipeId": "rc-4c9d5135",
5769
+ "recipeName": "lx8-recipe",
5770
+ "productId": "pd-75752beb",
5771
+ "lineId": "ln-917490c1",
5772
+ "startedAt": "2026-09-06T02:24:50.582+08:00",
5773
+ "endedAt": null,
5774
+ "results": [
5775
+ {
5776
+ "templateRef": "dcw-temp-sp",
5777
+ "nodeId": "dw-64d896c9",
5778
+ "ok": true,
5779
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5780
+ "value": 180
5781
+ }
5782
+ ],
5783
+ "paramsSnapshot": [
5784
+ {
5785
+ "nodeId": "dw-64d896c9",
5786
+ "templateRef": "dcw-temp-sp",
5787
+ "value": 180,
5788
+ "min": 150,
5789
+ "max": 200
5790
+ }
5791
+ ]
5792
+ },
5793
+ {
5794
+ "id": "rr-817ccaa3",
5795
+ "recipeId": "rc-ad1ee82f",
5796
+ "recipeName": "cfg-recipe",
5797
+ "productId": "pd-1f9917a5",
5798
+ "lineId": "ln-12d153a2",
5799
+ "startedAt": "2026-09-06T02:26:09.240+08:00",
5800
+ "endedAt": "2026-09-06T02:26:30.492+08:00",
5801
+ "results": [
5802
+ {
5803
+ "templateRef": "dcw-temp-sp",
5804
+ "nodeId": "dw-4416bdb1",
5805
+ "ok": true,
5806
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5807
+ "value": 180
5808
+ }
5809
+ ],
5810
+ "paramsSnapshot": [
5811
+ {
5812
+ "nodeId": "dw-4416bdb1",
5813
+ "templateRef": "dcw-temp-sp",
5814
+ "value": 180,
5815
+ "min": 150,
5816
+ "max": 200
5817
+ }
5818
+ ]
5819
+ },
5820
+ {
5821
+ "id": "rr-0580799c",
5822
+ "recipeId": "rc-910b9a3d",
5823
+ "recipeName": "cfg-recipe",
5824
+ "productId": "pd-16138f8b",
5825
+ "lineId": "ln-3d621ecf",
5826
+ "startedAt": "2026-09-06T02:29:04.474+08:00",
5827
+ "endedAt": "2026-09-06T02:29:25.790+08:00",
5828
+ "results": [
5829
+ {
5830
+ "templateRef": "dcw-temp-sp",
5831
+ "nodeId": "dw-f1b8aa79",
5832
+ "ok": true,
5833
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5834
+ "value": 180
5835
+ }
5836
+ ],
5837
+ "paramsSnapshot": [
5838
+ {
5839
+ "nodeId": "dw-f1b8aa79",
5840
+ "templateRef": "dcw-temp-sp",
5841
+ "value": 180,
5842
+ "min": 150,
5843
+ "max": 200
5844
+ }
5845
+ ]
5846
+ },
5847
+ {
5848
+ "id": "rr-428a0178",
5849
+ "recipeId": "rc-bdc5f21e",
5850
+ "recipeName": "cfg-recipe",
5851
+ "productId": "pd-15ba9244",
5852
+ "lineId": "ln-139f04d6",
5853
+ "startedAt": "2026-09-06T02:40:12.876+08:00",
5854
+ "endedAt": "2026-09-06T02:40:34.157+08:00",
5855
+ "results": [
5856
+ {
5857
+ "templateRef": "dcw-temp-sp",
5858
+ "nodeId": "dw-91f1cac6",
5859
+ "ok": true,
5860
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5861
+ "value": 180
5862
+ }
5863
+ ],
5864
+ "paramsSnapshot": [
5865
+ {
5866
+ "nodeId": "dw-91f1cac6",
5867
+ "templateRef": "dcw-temp-sp",
5868
+ "value": 180,
5869
+ "min": 150,
5870
+ "max": 200
5871
+ }
5872
+ ]
5762
5873
  }
5763
5874
  ]