From 0d78d634371f6b6dc50304edb83aa2738a787e86 Mon Sep 17 00:00:00 2001 From: super <2903208875@qq.com> Date: Tue, 12 May 2026 21:03:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E7=AE=A1=E7=90=86=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E4=BF=AE=E5=A4=8D=20=20=E5=90=8E=E7=AB=AFBUG=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 8095-lines.txt | 2054 +++++++++++++++++ app/.env | 4 +- app/amazon/similar_asin.py | 165 +- backend-java/docs/baota-start-commands.md | 59 + .../aiimage/config/InstanceMetadata.java | 39 +- .../aiimage/config/RequestTraceFilter.java | 6 +- .../aiimage/config/StorageProperties.java | 23 + .../client/AppearancePatentCozeClient.java | 6 + .../dto/AppearancePatentResultRowDto.java | 4 + .../service/AppearancePatentTaskService.java | 239 +- .../DebugRequestInfoController.java | 2 + .../DebugTaskRecoveryController.java | 44 + .../controller/SkipPriceAsinController.java | 117 +- .../shopkey/service/SkipPriceAsinService.java | 160 +- .../client/SimilarAsinCozeClient.java | 98 +- .../controller/SimilarAsinController.java | 2 +- .../model/dto/SimilarAsinResultRowDto.java | 20 + .../dto/SimilarAsinSubmitResultRequest.java | 2 - .../model/vo/SimilarAsinParsedRowVo.java | 3 + .../service/SimilarAsinTaskService.java | 371 +-- .../task/service/TaskResultFileJobWorker.java | 2 +- .../resources/application-local.example.yml | 9 +- .../src/main/resources/application-server.yml | 19 + .../src/main/resources/application.yml | 36 +- backend/blueprints/admin_api.py | 197 +- backend/static/admin.js | 113 +- backend/web_source/admin.html | 1 + .../components/BrandAppearancePatentTab.vue | 41 +- .../brand/components/BrandSimilarAsinTab.vue | 1 + frontend-vue/src/shared/api/java-modules.ts | 1 + 30 files changed, 3444 insertions(+), 394 deletions(-) create mode 100644 8095-lines.txt create mode 100644 backend-java/docs/baota-start-commands.md create mode 100644 backend-java/src/main/java/com/nanri/aiimage/modules/debug/controller/DebugTaskRecoveryController.java create mode 100644 backend-java/src/main/resources/application-server.yml diff --git a/8095-lines.txt b/8095-lines.txt new file mode 100644 index 0000000..58bd893 --- /dev/null +++ b/8095-lines.txt @@ -0,0 +1,2054 @@ +aiimage-backend.log.2026-05-12.3:101:2026-05-12 09:15:22.102 [coze-task-2109] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638807590373277722 +aiimage-backend.log.2026-05-12.3:102:2026-05-12 09:15:22.110 [coze-task-2109] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=31054 +aiimage-backend.log.2026-05-12.3:211:2026-05-12 09:15:32.710 [coze-task-2111] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53054 taskId=8095 executeId=7638807590373277722 +aiimage-backend.log.2026-05-12.3:212:2026-05-12 09:15:32.717 [coze-task-2111] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53054 executeId=7638807590373277722 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:214:2026-05-12 09:15:32.918 [coze-task-2111] INFO c.n.a.m.a.c.AppearancePatentCozeClient - [appearance-patent] coze history response executeId=7638807590373277722 status=200 OK body={"code":0,"msg":"","data":[{"bot_id":"0","is_output_trimmed":false,"execute_status":"Running","run_mode":2,"usage":{"token_count":0,"output_count":0,"input_count":0},"connector_id":"1024","create_time":1778548492,"token":"0","logid":"202605120914516BA35B4A7482F36C803C","execute_id":"7638807590373277722","update_time":1778548492,"error_code":"","connector_uid":"2939430754097600","debug_url":"https://www.coze.cn/work_flow?execute_id=7638807590373277722&space_id=7519005192466022436&workflow_id=7632683471312355338&execute_mode=2","output":"{\"node_status\":\"{}\",\"Output\":\"\"}","node_execute_status":{}}],"detail":{"logid":"202605120915321DCAD22B81CA5685C4CC"}} +aiimage-backend.log.2026-05-12.3:215:2026-05-12 09:15:32.918 [coze-task-2111] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53054 executeId=7638807590373277722 status=RUNNING +aiimage-backend.log.2026-05-12.3:539:2026-05-12 09:16:02.711 [coze-task-2112] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53054 taskId=8095 executeId=7638807590373277722 +aiimage-backend.log.2026-05-12.3:540:2026-05-12 09:16:02.713 [coze-task-2112] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53054 executeId=7638807590373277722 lastPolledAt=2026-05-12T09:15:33 +aiimage-backend.log.2026-05-12.3:857:2026-05-12 09:16:32.713 [coze-task-2113] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53054 taskId=8095 executeId=7638807590373277722 +aiimage-backend.log.2026-05-12.3:858:2026-05-12 09:16:32.720 [coze-task-2113] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53054 executeId=7638807590373277722 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:863:2026-05-12 09:16:33.019 [coze-task-2113] INFO c.n.a.m.a.c.AppearancePatentCozeClient - [appearance-patent] coze history response executeId=7638807590373277722 status=200 OK body={"code":0,"msg":"","data":[{"error_code":"0","execute_status":"Success","connector_uid":"2939430754097600","node_execute_status":{},"error_message":"","execute_id":"7638807590373277722","connector_id":"1024","is_output_trimmed":false,"run_mode":2,"create_time":1778548492,"logid":"202605120914516BA35B4A7482F36C803C","debug_url":"https://www.coze.cn/work_flow?execute_id=7638807590373277722&space_id=7519005192466022436&workflow_id=7632683471312355338&execute_mode=2","usage":{"token_count":0,"output_count":0,"input_count":0},"bot_id":"0","update_time":1778548551,"token":"0","output":"{\"node_status\":\"{}\",\"Output\":\"{\\\"data\\\":[{\\\"appearance\\\":\\\"高风险,外观极度相似\\\",\\\"appearance_reason\\\":\\\"该产品不仅包含了标志性的钥匙包(Clochette),还配套了特定的金属锁头,这套视觉组合是奢侈品牌(如Hermès)极其经典的标志性设计,极易被判定为外观设计专利侵权。\\\",\\\"asin\\\":\\\"B0CZJ3ZLTS\\\",\\\"patent\\\":\\\"高风险\\\",\\\"patent_reason\\\":\\\"该产品的核心设计旨在模仿特定奢华包袋的配件,在英国及欧盟市场,此类标志性配饰的结构与外观受到严格的知识产权保护,非授权生产的替代品面临极高的法律诉讼风险。\\\",\\\"result\\\":\\\"侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"中等风险\\\",\\\"title_reason\\\":\\\"标题使用了‘Clochette’及‘Handbag Accessories’等描述性词汇,虽未直接使用Hermès等大牌商标,但此类产品通常作为奢侈品配件售卖,存在诱导消费者产生品牌联想的关联侵权风险。\\\"},{\\\"appearance\\\":\\\"高风险,外观极度相似\\\",\\\"appearance_reason\\\":\\\"产品图片显示的钥匙皮套(Clochette)与锁头(Padlock)的组合,是国际知名奢侈品牌(如爱马仕)标志性的设计元素,在欧洲和英国地区受严密的知识产权保护,该产品属于典型的仿冒设计,极易触犯外观设计专利或版权法律。\\\",\\\"asin\\\":\\\"B0DBTDLXXG\\\",\\\"patent\\\":\\\"存在极高侵权风险\\\",\\\"patent_reason\\\":\\\"此类配件的物理结构和造型设计是知名奢侈品牌的经典设计语言,在欧洲及英国被视作核心知识产权受法律保护。销售此类模仿奢侈品标志性外观的产品,极易招致权利人的起诉或平台的下架处罚。\\\",\\\"result\\\":\\\"侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"高风险,关联性强\\\",\\\"title_reason\\\":\\\"虽然标题未直接使用爱马仕等奢侈品牌词,但‘Clochette’、‘Padlock’及‘Bag Charm’的关键词组合直接指向特定奢侈品包具的标志性配件,极易被认定为通过蹭名牌热度进行仿冒,存在侵犯商品外装(Trade Dress)权益的法律风险。\\\"},{\\\"appearance\\\":\\\"高风险,外观高度相似\\\",\\\"appearance_reason\\\":\\\"该产品形状与爱马仕经典包袋的配饰(钥匙套及挂锁)设计高度重合,在英国及欧盟地区,此类标志性外观受到严格的外观设计专利保护,直接销售此类仿制品存在极高的侵权风险。\\\",\\\"asin\\\":\\\"B0DBT8RPRJ\\\",\\\"patent\\\":\\\"高风险,存在外观设计专利侵权隐患\\\",\\\"patent_reason\\\":\\\"该产品核心在于其标志性的外形设计,而非功能性结构。该造型属于奢侈品牌的核心商业设计范畴,受国际及英国/欧盟外观专利法的广泛保护,未经授权生产销售存在严重的合规风险。\\\",\\\"result\\\":\\\"侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"高风险,具有侵权嫌疑\\\",\\\"title_reason\\\":\\\"标题中涉及“Clochette”、“Bag Charm”及“Padlock”等词汇,描述的是爱马仕(Hermès)品牌标志性的包袋配件,直接使用此类描述性关键词极易被判定为仿造知名品牌元素。\\\"},{\\\"appearance\\\":\\\"高风险,外观设计专利/贸易外观侵权\\\",\\\"appearance_reason\\\":\\\"该产品外观复刻了著名奢侈品牌(Hermès)的经典挂件(Clochette)与锁扣(Padlock)设计,该设计在欧洲及英国受外观设计权及贸易外观(Trade Dress)保护,极易引发侵权诉讼。\\\",\\\"asin\\\":\\\"B0CZJ597C9\\\",\\\"patent\\\":\\\"存在外观设计专利风险\\\",\\\"patent_reason\\\":\\\"此类标志性配件设计在欧洲已有大量相关外观专利布局。尽管不涉及复杂的发明专利,但其结构与外观表现形式与已受保护的设计高度重合,属于典型的仿冒款式。\\\",\\\"result\\\":\\\"侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"高风险,具有品牌联想侵权可能\\\",\\\"title_reason\\\":\\\"标题使用了“Clochette”等词汇,该词汇在皮具领域与特定奢侈品牌(Hermès)的设计语言高度关联,虽未直接使用品牌名,但在欧洲市场常被判定为利用品牌影响力进行搭售,存在侵权风险。\\\"},{\\\"appearance\\\":\\\"高风险,外观高度相似\\\",\\\"appearance_reason\\\":\\\"该产品设计为典型的钟形钥匙套(Clochette),其外观造型与奢侈品牌Hermès的经典包袋配件设计高度重合,在英国及欧洲地区极易触发外观设计专利侵权投诉。\\\",\\\"asin\\\":\\\"B0CZJ57NYZ\\\",\\\"patent\\\":\\\"高风险,存在外观/包装设计专利风险\\\",\\\"patent_reason\\\":\\\"该结构不仅作为功能性配件,更作为特定品牌包袋的标志性外观组成部分,受到相关的工业设计专利保护,未经授权生产销售此类仿制品存在较高的法律风险。\\\",\\\"result\\\":\\\"侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"高风险,含有侵权关联词汇\\\",\\\"title_reason\\\":\\\"标题中包含“Clochette”等与奢侈品牌(Hermès)标志性包袋配件紧密相关的词汇,在未经授权的情况下销售此类产品易被认定为利用品牌影响力进行侵权或混淆。\\\"},{\\\"appearance\\\":\\\"高风险,外观极度相似\\\",\\\"appearance_reason\\\":\\\"该产品外观设计明显模仿了Hermès(爱马仕)标志性的“钥匙皮套”(Clochette)款式,其独特的梯形结构、缝线工艺和配套挂锁样式在欧洲市场具有极高的品牌辨识度,极易被判定为外观设计专利侵权或仿冒知名品牌设计。\\\",\\\"asin\\\":\\\"B0DBTQMF3T\\\",\\\"patent\\\":\\\"存在较高侵权风险\\\",\\\"patent_reason\\\":\\\"该结构属于典型的奢侈品配件模仿品,虽然功能简单,但其独特的外观结构设计已构成知名品牌的特有设计语言,极易陷入外观专利侵权纠纷。\\\",\\\"result\\\":\\\"侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"含有侵权风险\\\",\\\"title_reason\\\":\\\"标题中虽未直接列出品牌名,但“Clochette”常与爱马仕(Hermès)的经典挂锁包配件关联,属于高风险敏感词汇,易被系统判定为仿冒或侵犯相关商标权的关联产品。\\\"},{\\\"appearance\\\":\\\"高风险,外观设计专利极高风险\\\",\\\"appearance_reason\\\":\\\"该产品外观是对爱马仕经典包袋配件“Clochette(钥匙皮套)”的直接模仿。该外观设计与爱马仕受保护的标志性配件高度相似。根据欧盟及英国知识产权法,对于此类具备高度辨识度且具有深厚品牌关联的外观设计,即便没有使用品牌Logo,也存在被指控为侵犯“外观设计权(Design Rights)”或“不正当竞争”的严重风险。\\\",\\\"asin\\\":\\\"B0CZJ4DQSQ\\\",\\\"patent\\\":\\\"存在结构专利侵权可能\\\",\\\"patent_reason\\\":\\\"该产品不仅模仿了皮套外观,还配套了挂锁和钥匙结构。爱马仕在全球范围内对其标志性的锁头及配套硬件设计持有大量知识产权,包括立体商标(3D Trade Mark)和设计专利。该产品的结构组合在欧洲市场极易被认定为模仿爱马仕产品的整体外观设计,存在被视为专利侵权的风险。\\\",\\\"result\\\":\\\"侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"高风险,含有侵权敏感词汇\\\",\\\"title_reason\\\":\\\"标题中包含“Clochette”一词,该词是奢侈品牌爱马仕(Hermès)标志性手袋(如Birkin/Kelly)配件的专用术语。在欧洲及英国市场,爱马仕对该特定外观设计、相关术语及锁头设计拥有极高的品牌认知度和知识产权保护力度,直接使用此类术语作为商品关键词极易触发商标侵权投诉。\\\"},{\\\"appearance\\\":\\\"高风险,外观与知名品牌设计高度相似\\\",\\\"appearance_reason\\\":\\\"该产品展示的是典型的“Clochette”(钟形钥匙套)外观,这是Hermès经典包袋配饰的标志性设计,在欧盟及英国拥有严密的外观设计保护,极易被判定为外观设计侵权。\\\",\\\"asin\\\":\\\"B0CZJ3VS5R\\\",\\\"patent\\\":\\\"中等风险,涉及特定风格的保护\\\",\\\"patent_reason\\\":\\\"虽然该类基础结构的物理功能单一,但由于其外观与奢侈品品牌的设计高度绑定,其作为配件的销售行为经常面临品牌方基于外观专利或不正当竞争的法律追诉。\\\",\\\"result\\\":\\\"侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"高风险,含有侵权关联词汇\\\",\\\"title_reason\\\":\\\"标题虽然未直接使用品牌名称,但此类产品常被关联至Hermès(爱马仕)的Kelly或Birkin包袋配饰。若在营销中使用暗示性词汇或作为相关配件销售,极易触碰品牌方的商标保护范围。\\\"},{\\\"appearance\\\":\\\"高风险,外观设计与奢侈品牌标志性设计高度相似\\\",\\\"appearance_reason\\\":\\\"产品图片展示的皮革钟形套(Clochette)配合金属小挂锁,在造型、结构及视觉特征上,与爱马仕受法律保护的“Birkin/Kelly”包袋标志性闭合系统及配件外观几乎完全一致。欧洲法院已多次判决确认爱马仕对该包袋形状及特定配件外观拥有注册的三维商标权及版权,即便未直接标注品牌名称,这种“高度相似”的视觉呈现亦足以构成侵权。\\\",\\\"asin\\\":\\\"B0DBTKL4RH\\\",\\\"patent\\\":\\\"高风险,存在三维外观专利保护风险\\\",\\\"patent_reason\\\":\\\"爱马仕在英国及欧洲地区针对其标志性配件(特别是钟形套与锁具组合)申请了严密的知识产权保护。该产品模仿了其标志性的物理结构与外观布局,不仅受商标法保护,还涉及在特定司法管辖区内的三维外观专利或设计权保护,通过结构模仿进行销售极易引发法律维权行动。\\\",\\\"result\\\":\\\"侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"高风险,包含极易引起混淆的敏感关键词\\\",\\\"title_reason\\\":\\\"标题中使用的“Clochette”及产品描述组合(钟形皮革挂饰+挂锁)是奢侈品牌爱马仕(Hermès)Birkin/Kelly包款标志性配件的统称。此类词汇与爱马仕的品牌形象紧密关联,在亚马逊欧洲及英国市场销售此类仿造其标志性配件设计的商品,极易被视为试图利用品牌声誉进行误导性销售,存在极高的商标与版权侵权风险。\\\"},{\\\"appearance\\\":\\\"高风险,外观设计高度疑似侵权\\\",\\\"appearance_reason\\\":\\\"该产品设计与奢侈品牌Hermès标志性的Clochette(钥匙套)及挂锁(Padlock)配件外观高度相似,在欧洲及英国,该类经典设计受品牌方严格的外观专利和商标权保护,直接销售此类复刻或高仿配件极易触发外观专利侵权指控。\\\",\\\"asin\\\":\\\"B0CZJ4GMP3\\\",\\\"patent\\\":\\\"存在较高结构专利与商标保护风险\\\",\\\"patent_reason\\\":\\\"虽然此类产品结构简单,但其作为特定奢侈品牌的视觉延伸产品,不仅涉及外观专利,更涉及商标权与不正当竞争的法律风险。品牌方通常对该类标志性配饰申请外观设计权,销售此类仿制配件属于高风险行为。\\\",\\\"result\\\":\\\"侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"高风险,含有侵权暗示\\\",\\\"title_reason\\\":\\\"标题虽然未直接使用Hermès品牌词,但使用了“Clochette”并搭配标志性的“Padlock”描述,极易联想到爱马仕凯莉包(Kelly Bag)或铂金包(Birkin Bag)的经典配件设计,存在误导消费者及侵犯品牌形象的嫌疑。\\\"},{\\\"appearance\\\":\\\"高风险,外观高度疑似侵权\\\",\\\"appearance_reason\\\":\\\"产品设计直接仿制了国际奢侈品牌(如Hermès)标志性的钥匙套(Clochette)及挂锁组合,在英国及欧洲地区该设计通常受到严格的外观设计权及反不正当竞争法保护。\\\",\\\"asin\\\":\\\"B0CZJ5K717\\\",\\\"patent\\\":\\\"存在侵权风险\\\",\\\"patent_reason\\\":\\\"该商品的核心在于对经典奢侈品配饰外观的还原,在欧洲市场该设计类型普遍存在有效的外观专利保护,未经授权生产或销售此类仿品极易触发专利维权。\\\",\\\"result\\\":\\\"侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"高风险\\\",\\\"title_reason\\\":\\\"标题虽然未直接使用品牌名称,但‘Clochette’、‘Bag Charm’等词汇配合图片中的特定造型,具有明显的意图模仿奢侈品设计意图,易因构成商标混淆或不正当竞争被品牌方投诉。\\\"},{\\\"appearance\\\":\\\"未发现明显侵权风险\\\",\\\"appearance_reason\\\":\\\"该产品采用行业内常见的“免挂钩”结构与几何图案设计,属于通用样式。经初步排查,未发现其外观与英国/欧洲现行登记的独家外观设计专利存在直接冲突。\\\",\\\"asin\\\":\\\"B0BQRSZYHP\\\",\\\"patent\\\":\\\"未发现明显侵权风险\\\",\\\"patent_reason\\\":\\\"该淋浴帘使用的“免挂钩”功能性结构在欧洲市场已是成熟的公开技术,相关早期核心专利多已过期。只要未非法复制特定的专利挂钩构造,风险较低。\\\",\\\"result\\\":\\\"未发现明显侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"未发现明显侵权风险\\\",\\\"title_reason\\\":\\\"标题中的“Yiatn”为品牌名,其余均为“No Hook”、“Shower Curtain”、“Waterproof”等通用描述性词汇,未包含大型知名品牌商标或受版权保护的特定用语。\\\"},{\\\"appearance\\\":\\\"高风险\\\",\\\"appearance_reason\\\":\\\"该产品采用了极具辨识度的“Intrecciato”编织纹理(Woven pattern),这与奢侈品牌Bottega Veneta的标志性外观高度相似。在欧洲及英国市场,此类设计极易被认定为侵犯该品牌的外观设计权或造成不正当竞争。\\\",\\\"asin\\\":\\\"B0CP7D4MKW\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"纸巾盒的物理结构属于常规家居用品设计,未发现特殊的技术创新或复杂的专利结构,不涉及发明或实用新型专利风险。\\\",\\\"result\\\":\\\"有侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题描述为通用产品描述,包含常见关键词如“Tissue Box Cover”、“PU Leather”,未发现涉及特定知名品牌的商标侵权或版权敏感词汇。\\\"},{\\\"appearance\\\":\\\"有侵权风险\\\",\\\"appearance_reason\\\":\\\"该产品外观采用了类似于奢侈品牌(如Bottega Veneta)标志性的编织(Intrecciato)设计元素。在英国及欧盟地区,此类具有辨识度的纹理外观若被注册为外观设计专利或被视为特定品牌的商业外观(Trade Dress),存在被投诉侵权的潜在风险。\\\",\\\"asin\\\":\\\"B0BZXYKNKV\\\",\\\"patent\\\":\\\"未发现明显侵权风险\\\",\\\"patent_reason\\\":\\\"该产品属于成熟的家居收纳类目,结构简单,主要体现为材料拼接,未发现涉及复杂机械结构、特定功能性技术发明或实用新型专利的风险。\\\",\\\"result\\\":\\\"有侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"未发现明显侵权风险\\\",\\\"title_reason\\\":\\\"标题均为描述性的通用词汇(如Tissue Box Cover, PU Leather等),未包含特定品牌的商标词、版权保护词或容易引起混淆的敏感关键词。\\\"},{\\\"appearance\\\":\\\"高风险\\\",\\\"appearance_reason\\\":\\\"产品外观使用了明显的皮革编织纹理(Intrecciato),该设计特征与奢侈品牌博特加·威尼塔(Bottega Veneta)的标志性外观高度相似,在欧洲及英国市场存在极高的外观设计专利或商业外观(Trade Dress)侵权风险。\\\",\\\"asin\\\":\\\"B0BZPSH2ZD\\\",\\\"patent\\\":\\\"没有侵权风险\\\",\\\"patent_reason\\\":\\\"该产品为结构简单的纸巾盒套,未发现涉及独特功能性或结构性的发明/实用新型专利风险。\\\",\\\"result\\\":\\\"有侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题仅由通用产品描述词汇组成(如Tissue Box Cover, PU Leather等),未发现知名品牌名称、注册商标或版权词汇。\\\"},{\\\"appearance\\\":\\\"未发现明显侵权风险\\\",\\\"appearance_reason\\\":\\\"该产品采用的编织纹路虽具有一定的商业美学风格,但此类编织纹路在生活家居装饰品类中属于行业通用设计语言,且未发现针对该特定形状尺寸申请的有效外观专利,在英国/欧洲市场属于常见的通货款式。\\\",\\\"asin\\\":\\\"B09ZPMLSTT\\\",\\\"patent\\\":\\\"未发现明显侵权风险\\\",\\\"patent_reason\\\":\\\"该产品为常见的PU皮革折叠式纸巾盒套,其结构设计简洁,功能上属于行业公知技术,未发现涉及复杂发明或新型结构的侵权可能。\\\",\\\"result\\\":\\\"未发现明显侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题中使用的“Tissue Box Cover”、“PU Leather”等均为通用描述性词汇,未发现指向特定知名品牌的违规商标或敏感词,不存在明显的商标侵权风险。\\\"},{\\\"appearance\\\":\\\"中等风险\\\",\\\"appearance_reason\\\":\\\"该产品采用常见的编织(Woven)纹理设计,属于家居收纳领域的通用工艺风格。虽然市面上存在此类外观产品,但因其设计元素较为普遍且基础,未见具有极高识别度、指向特定品牌的独创性外观专利风险。\\\",\\\"asin\\\":\\\"B0CP7D63H9\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"该纸巾盒结构为传统的底部或侧边开口式套筒,属于成熟的现有技术(Prior Art),不涉及复杂的功能性机械结构或发明专利保护点。\\\",\\\"result\\\":\\\"未发现明显侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题描述为通用产品描述(Tissue Box Cover, PU Leather, etc.),未发现特定品牌词、侵权词汇或受版权保护的专有名词,风险较低。\\\"},{\\\"appearance\\\":\\\"中等风险\\\",\\\"appearance_reason\\\":\\\"产品外观设计采用了经典的编织纹理(Woven Pattern),此类设计在家具及家居装饰领域非常普遍,属于常见工艺,虽有外观相似的通用产品,但未构成对特定设计专利的单一直接侵权。\\\",\\\"asin\\\":\\\"B09ZPN6CQX\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"纸巾盒为基础生活用品,其物理结构(四面围挡+顶部开口)属于公共领域的设计,不涉及复杂的独创性功能技术,因此不存在发明或实用新型专利侵权风险。\\\",\\\"result\\\":\\\"没有侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题描述为“Tissue Box Cover PU Leather”,属于通用描述词汇,未发现任何特定大牌商标、受限敏感词或受版权保护的专有词汇。\\\"},{\\\"appearance\\\":\\\"未发现明显侵权风险\\\",\\\"appearance_reason\\\":\\\"该产品属于圆柱形布艺收纳篮,外观结构通用且简约;表面图案由基础的心形与彩虹元素排列组成,属于常见的装饰性设计,未见明显的独特外观专利侵权特征。\\\",\\\"asin\\\":\\\"B0DB89QV28\\\",\\\"patent\\\":\\\"未发现明显侵权风险\\\",\\\"patent_reason\\\":\\\"产品属于普通家庭储物用品,其物理结构(布面材质及手提带设计)属行业成熟工艺,不涉及复杂的功能性发明或受保护的独家结构专利。\\\",\\\"result\\\":\\\"未发现明显侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题中的“MAIZMZ”为通用品牌名,未检测到涉及知名大牌商标、敏感侵权词或受版权保护的特定角色名称。\\\"},{\\\"appearance\\\":\\\"未发现明显侵权风险\\\",\\\"appearance_reason\\\":\\\"产品外观设计属于常见的花卉纹样与闪光视觉效果组合,属于通用装饰风格,未发现与欧洲或英国市场上受保护的特定注册外观设计专利存在高度雷同情况。\\\",\\\"asin\\\":\\\"B0DJ89HKTT\\\",\\\"patent\\\":\\\"未发现明显侵权风险\\\",\\\"patent_reason\\\":\\\"淋浴帘属于传统的家居纺织品,结构简单,不涉及复杂的机械结构或独特的功能性创新,该类型产品在英国及欧洲地区极少存在被发明或实用新型专利覆盖的风险。\\\",\\\"result\\\":\\\"没有侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"未发现明显侵权风险\\\",\\\"title_reason\\\":\\\"标题中包含的均为“Pink Rose”、“Shower Curtain”、“Floral”等通用描述性词汇,未发现指向任何知名大牌的商标侵权使用,亦不包含受版权保护的特定文学艺术作品名称。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"该产品为常见的粉色玫瑰花卉印花浴帘,属于通用装饰类目。虽然图案设计精美,但花卉印花图案通常难以获取独占性的外观设计专利,除非涉及特定艺术家的受版权保护作品,目前未发现高度雷同的垄断性外观设计。\\\",\\\"asin\\\":\\\"B0DJ893788\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"该产品属于结构简单的家居布艺用品,浴帘通过挂钩悬挂属于行业基础技术,不涉及复杂的核心功能性结构或具备专利保护的创新机械原理,未发现存在发明或实用新型专利侵权风险。\\\",\\\"result\\\":\\\"没有侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题描述为通用描述性词汇,如“Pink Roses Shower Curtain”、“Valentine's Day”、“Wedding Floral”,未检测到特定品牌名、知名IP或敏感商标词汇。但在欧洲销售时,需注意此类通用装饰词汇不能注册为排他性商标。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"该类装饰性图案属于常见的家居设计,只要非直接盗用特定已注册版权的知名画作,其外观设计本身不具备侵犯外观专利的高风险属性。\\\",\\\"asin\\\":\\\"B0D1YK4PWZ\\\",\\\"patent\\\":\\\"没有侵权风险\\\",\\\"patent_reason\\\":\\\"产品为普通的纺织品日用品,不涉及复杂的机械结构或技术创新,不存在发明或实用新型专利风险。\\\",\\\"result\\\":\\\"没有侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题描述词均为通用商品描述及品种名称(Highland Cattle),不涉及特定注册品牌词,亦无明显侵权敏感词。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"该产品属于艺术印花类家居产品,图案设计为常见的趣味性装饰画,未检索到与英国/欧洲市场上已注册的特定外观设计专利高度雷同的记录。但建议核实该印花图案是否涉及未授权使用他人的原创艺术作品版权。\\\",\\\"asin\\\":\\\"B0D1YKSZNH\\\",\\\"patent\\\":\\\"没有侵权风险\\\",\\\"patent_reason\\\":\\\"浴帘作为成熟的日用品,其基本结构(织物悬挂式)属于公共领域技术,该产品本身不涉及复杂的机械结构或技术发明,不存在发明或实用新型专利侵权风险。\\\",\\\"result\\\":\\\"未发现明显侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题使用了通用描述词(如Shower Curtain, Lion, Toilet等),未包含国际知名品牌商标或受法律保护的特定版权词汇,不构成商标侵权。\\\"},{\\\"appearance\\\":\\\"高风险\\\",\\\"appearance_reason\\\":\\\"该产品属于装饰类用品,图案版权是核心风险点。若该“猴子在浴缸”的黑白图片未经原摄影师或艺术家合法授权,在英国及欧盟极易遭遇版权(著作权)投诉。\\\",\\\"asin\\\":\\\"B0CZ3FVXSC\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"产品属于结构简单的常规日用品,浴帘及挂钩组合未涉及复杂的发明或实用新型专利保护领域。\\\",\\\"result\\\":\\\"有侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题由描述性词汇组成,未检测到指向知名品牌或受保护商标的侵权词汇。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"该产品属于创意类家居装饰,图案设计为狮子如厕的幽默插画。此类图案设计通常具有较强的独特性,在亚马逊常见外观设计专利库中未发现高度雷同的注册设计,属于原创或公共领域素材应用的概率较高。\\\",\\\"asin\\\":\\\"B0D1YJRL2F\\\",\\\"patent\\\":\\\"没有侵权风险\\\",\\\"patent_reason\\\":\\\"该产品为普通淋浴帘,属于成熟的纺织品类目,不存在特殊的功能性物理结构或复杂技术方案,无需担心发明或实用新型专利侵权。\\\",\\\"result\\\":\\\"没有侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题中包含的“Funny Lion”、“Shower Curtain”等词汇均为通用描述性词汇,未发现指向特定知名品牌的商标侵权风险或受版权保护的特定角色名称。\\\"},{\\\"appearance\\\":\\\"中等风险,存在版权隐患\\\",\\\"appearance_reason\\\":\\\"该产品核心在于其印刷图案设计。此类风格强烈的节日插画极易涉及第三方原创画作的版权(Copyright),若图案是从图库购买或自行AI生成且未经过版权查重,存在被权利人投诉图片侵权的风险,虽不构成外观设计专利侵权,但版权合规性需核实。\\\",\\\"asin\\\":\\\"B0FHKG5SGT\\\",\\\"patent\\\":\\\"没有侵权风险\\\",\\\"patent_reason\\\":\\\"该产品属于常规家居纺织品,结构简单,主要由浴帘及配套地垫组成,不涉及任何创新性的发明或特殊的物理结构,不存在技术性专利侵权风险。\\\",\\\"result\\\":\\\"未发现明显侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题描述为节日类通用品名,未包含知名大牌商标或特定文学艺术作品的受版权保护名称,无明显敏感词汇。\\\"},{\\\"appearance\\\":\\\"未发现明显侵权风险\\\",\\\"appearance_reason\\\":\\\"图案设计采用万圣节常见的幽灵、南瓜和蝙蝠素材,属于公共领域内的装饰性设计,未发现其与已知受保护的特定外观设计专利雷同。\\\",\\\"asin\\\":\\\"B0FHJ1LM8T\\\",\\\"patent\\\":\\\"未发现明显侵权风险\\\",\\\"patent_reason\\\":\\\"该产品属于结构简单的日用家居品,不涉及独特的功能性发明或复杂的机械结构,无相关发明专利或实用新型专利侵权隐患。\\\",\\\"result\\\":\\\"未发现明显侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"未发现明显侵权风险\\\",\\\"title_reason\\\":\\\"标题由万圣节节日描述词及产品通用属性词构成,不含特定品牌名称或受版权保护的文字作品,符合亚马逊合规规则。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"图案为常见的万圣节主题元素设计,属于通用的节庆装饰风格,未发现与特定已公开的外观设计专利有高度相似的特征。\\\",\\\"asin\\\":\\\"B0FHKJ11WD\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"该产品为普通浴帘,属于成熟的商品品类,不存在涉及核心功能或复杂结构的专利保护风险。\\\",\\\"result\\\":\\\"没有侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题由通用描述词组成,如“Halloween”、“Shower Curtain”、“Horror”等,不包含特定大牌商标或受限词汇,未发现商标侵权风险。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"该产品属于通用款浴帘,采用常见的抽象大理石纹路印花,属于行业通用的装饰图案,未发现指向单一特定外观设计专利的高辨识度结构特征。\\\",\\\"asin\\\":\\\"B09TXDQKJF\\\",\\\"patent\\\":\\\"没有侵权风险\\\",\\\"patent_reason\\\":\\\"该产品为常规家纺类目,未涉及任何复杂的功能性结构或物理发明,属于成熟的通用工艺品,不存在核心技术专利侵权风险。\\\",\\\"result\\\":\\\"没有侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题主要包含“Luxury”、“Marble”、“Shower Curtain”等通用描述性词汇,未发现指向特定知名品牌的注册商标或具有版权争议的关键词。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"产品外观为常见的几何色块拼接设计,属于大众化的家纺纹样,缺乏特定品牌辨识度或独特的设计专利特征,被认定为外观侵权的风险极低。\\\",\\\"asin\\\":\\\"B09TXCXC68\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"该产品为常规浴室纺织套装(浴帘+地垫),不涉及复杂或独特的物理结构,核心功能为日常家用,未发现存在发明或实用新型专利侵权隐患。\\\",\\\"result\\\":\\\"未发现明显侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题主要由描述性词汇组成(如:几何、深蓝色、浴帘套装),未发现包含知名品牌名称或受版权保护的特定专有名词。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"该产品为几何图形设计(黑白灰橙色块组合),属于通用现代简约风格。此类图案在纺织品行业非常普遍,且未发现具有显著独创性或特定品牌标识的保护性外观设计专利。\\\",\\\"asin\\\":\\\"B09TXD6W5P\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"该淋浴帘及配套地垫属于常规家居用品,不存在复杂的技术结构或创新的物理功能组件,因此触发发明或实用新型专利侵权的可能性极低。\\\",\\\"result\\\":\\\"没有侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题描述为“Orange Geometric Shower Curtain Set”,属于常规产品描述词汇,未发现涉及特定知名品牌商标、版权词或敏感侵权词汇。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"该产品图案为基础的几何色块设计,属于通用的装饰风格,未发现涉及特定外观设计专利侵权的独创性图形限制。\\\",\\\"asin\\\":\\\"B09TXD4GGM\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"该商品为普通家用纺织品组合,结构简单且无特殊功能性机械结构,不存在涉及发明或实用新型专利的侵权隐患。\\\",\\\"result\\\":\\\"未发现明显侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题由描述性词汇组成,不包含任何大牌商标、品牌词或特定的版权受保护词汇,符合亚马逊标题命名规范。\\\"},{\\\"appearance\\\":\\\"未发现明显侵权风险\\\",\\\"appearance_reason\\\":\\\"该产品外观为通用的类大理石纹理搭配金色流线设计,属于家居装饰类目中极为常见的审美风格,此类通用纹样通常无法申请或获得排他性的外观设计专利保护。\\\",\\\"asin\\\":\\\"B0CY7QHGLQ\\\",\\\"patent\\\":\\\"没有侵权风险\\\",\\\"patent_reason\\\":\\\"记忆棉厨房地垫属于成熟的产品类别,所展示的材质与结构均为行业通用标准技术,不存在独特的核心技术或物理结构专利,因此不存在专利侵权风险。\\\",\\\"result\\\":\\\"没有侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题主要由防疲劳、记忆棉、防水等描述性通用词汇组成,不包含任何特定品牌的商标词或受版权保护的用语,不存在明显的商标侵权风险。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"该产品为典型的抽象几何纹理PVC地垫,属于市场上非常通用的家纺设计风格,无显著的独特性外观特征,难以被认定侵犯特定外观设计专利。\\\",\\\"asin\\\":\\\"B0CWD7KGZ2\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"该产品属于厨房防疲劳地垫的成熟品类,其防滑垫结构及材料(PVC)为行业通用技术方案,未涉及具备发明创造性的独特功能专利。\\\",\\\"result\\\":\\\"未发现明显侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题中包含“Anti-Fatigue”、“Kitchen Rug”、“Ergonomic”等功能性描述词,未发现指向特定知名大牌的商标词汇或侵权高风险敏感词。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"该产品外观为常见的长方形PVC防疲劳地垫,采用基础的抽象几何配色设计,属于市场上常见的通用款式,未发现显著的侵权独特性外观设计。\\\",\\\"asin\\\":\\\"B0D478LK2L\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"该产品属于基于材料性能(PVC发泡)的常规防疲劳地垫,其物理结构和功能在行业内较为通用,未涉及独特的技术创新或受保护的结构性专利。\\\",\\\"result\\\":\\\"未发现明显侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题包含大量通用描述词(如Anti-Fatigue, Kitchen Rug, Waterproof等),未发现涉及大牌商标、敏感词或特定版权用语。品牌名“Arttown”为常见装饰类品牌,暂无直接侵权嫌疑。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"该产品外观为常见的长方形厨房防疲劳地垫,大理石纹路属于公有领域的装饰设计,未发现其外形设计具有极高辨识度的独创性外观设计专利特征。\\\",\\\"asin\\\":\\\"B0C5XK63V4\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"产品采用常规的PVC防疲劳泡沫结构,属于成熟的地垫制造工艺,目前未在该基础产品结构上发现具有垄断性的发明或实用新型专利风险。\\\",\\\"result\\\":\\\"未发现明显侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题中的词汇如“Marble”、“Anti-Fatigue”、“Kitchen Rug”、“Waterproof”、“Non-Slip”等均为描述产品材质和功能的通用行业术语;“Arttown”为疑似品牌词,未发现与知名大牌产生混淆的敏感词或版权侵权词汇。\\\"},{\\\"appearance\\\":\\\"未发现明显侵权风险\\\",\\\"appearance_reason\\\":\\\"该产品为常见的矩形防疲劳地垫,其抽象橘灰色调设计属于行业内常见的装饰风格,未见高度独创性或特定注册的外观设计保护特征,通常此类通用外观设计难以获得排他性的外观专利权。\\\",\\\"asin\\\":\\\"B0D4785BKT\\\",\\\"patent\\\":\\\"未发现明显侵权风险\\\",\\\"patent_reason\\\":\\\"该产品属于成熟的居家消费品,采用常规的PVC发泡减震结构,未体现出具有独占性的核心发明或特殊物理结构,此类技术已在市场上普及,不存在显著的结构性专利侵权风险。\\\",\\\"result\\\":\\\"未发现明显侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"未发现明显侵权风险\\\",\\\"title_reason\\\":\\\"标题中包含的“Anti-Fatigue Kitchen Rug”、“Waterproof”、“Non-Slip”等均为行业通用描述词汇,未发现涉及知名品牌商标或侵犯版权的特定词汇,“Arttown”虽作为品牌名,但在英国/欧盟商标数据库中不属于高风险大牌冲突词。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"该产品为常见的PVC防疲劳地垫,外观设计采用通用的抽象几何图案与长方形结构,属于市场通用设计风格,未发现与欧洲/英国现有注册外观专利高度相似的特征。\\\",\\\"asin\\\":\\\"B0D477P8TN\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"该产品属于成熟的厨用地垫品类,其防滑、防水及人体工学泡沫结构是此类产品的行业标准工艺,未涉及独特的新型结构或核心技术发明专利侵权风险。\\\",\\\"result\\\":\\\"没有侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题主要包含描述性词汇(如Anti-Fatigue, Kitchen Rug等),未发现针对特定知名品牌的侵权词汇或受版权保护的特定术语,Arttown为常见品牌词,合规性较高。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"产品属于常规厨房地垫款式,采用了通用的红酒与葡萄印花图案。此类装饰性图案具有高度随机性和普遍性,未发现特定且具垄断性的外观设计专利保护。\\\",\\\"asin\\\":\\\"B0CWCYFYH8\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"该产品属于普通的PVC防疲劳地垫,其物理结构和材质应用属于行业内的成熟工艺,未涉及独特的新型技术发明或结构专利。\\\",\\\"result\\\":\\\"没有侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题描述为通用产品属性词(如anti-fatigue, kitchen rug, foam mat),未发现知名品牌词汇或特定受保护的版权词汇。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"该产品采用常见的牛皮纹路印花,属于行业内广泛使用的通用外观设计,不存在特定的外观专利垄断性。\\\",\\\"asin\\\":\\\"B0DYV4J49M\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"PVC抗疲劳地垫属于成熟的民用产品,其材质与物理结构属于通用工艺,未涉及复杂的发明专利壁垒。\\\",\\\"result\\\":\\\"未发现明显侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题主要包含产品属性描述词(如Anti-Fatigue, Kitchen Rug, PVC, Waterproof等),未见知名大牌商标,品牌名“Arttown”未发现明显侵权风险。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"产品外观采用常见的农舍木纹风格及地垫通用装饰图案,属于家纺领域常规视觉表达,未发现与欧洲/英国市场特定外观设计专利高度雷同的证据。\\\",\\\"asin\\\":\\\"B0F5V3RZJZ\\\",\\\"patent\\\":\\\"没有侵权风险\\\",\\\"patent_reason\\\":\\\"该产品属于成熟的PVC抗疲劳地垫产品,无复杂的机械结构或技术专利,未发现涉及核心功能性发明或实用新型专利的侵权风险。\\\",\\\"result\\\":\\\"没有侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题由通用描述词组成,未发现引用知名第三方商标或受版权保护的特定品牌名称,侵权风险较低。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"该产品属于市面上极度常见的圆柱形折叠储物篮,其外形结构不具备突出的原创性设计特征。所展示的卡通猫爪、猫头鹰等图案属于装饰性元素,在市场上极为通用,不构成单一外观设计专利侵权。\\\",\\\"asin\\\":\\\"B071YJWSP1\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"折叠储物篮采用的是行业内非常成熟的布艺结构,该物理功能及结构设计已处于公有领域,未发现针对此类基础折叠结构存在有效且具有垄断性的发明或实用新型专利。\\\",\\\"result\\\":\\\"未发现明显侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题中使用的“Merdes”为品牌词,“Laundry Hamper”等均为行业通用名词,未发现标题中包含知名大牌商标或受版权保护的敏感词汇。需确保“Merdes”在英国及欧盟知识产权局无商标侵权争议。\\\"},{\\\"appearance\\\":\\\"未发现明显侵权风险\\\",\\\"appearance_reason\\\":\\\"该产品属于通用结构的家居纺织品套件,虽然使用了特定的排版和装饰图形(如蝴蝶和心形),但此类风格在欧洲家居市场十分普遍,且未发现具有独创性且已受外观设计专利保护的特定视觉设计。\\\",\\\"asin\\\":\\\"B0F38BL4X1\\\",\\\"patent\\\":\\\"未发现明显侵权风险\\\",\\\"patent_reason\\\":\\\"该淋浴帘及配套地垫结构属于行业内成熟、基础的工艺设计,不涉及任何复杂的功能结构创新或发明专利保护。\\\",\\\"result\\\":\\\"没有侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"未发现明显侵权风险\\\",\\\"title_reason\\\":\\\"标题中的“Family”、“Bless this home”等词汇均为家居装饰类产品中极为常见的励志短语或描述性用语,不属于特定品牌的注册商标或具有排他性的版权词汇。\\\"},{\\\"appearance\\\":\\\"未发现明显侵权风险\\\",\\\"appearance_reason\\\":\\\"产品属于基础圆柱形收纳篮,外观设计通用且无独创性外观特征;篮球印刷图案为常规商业艺术风格,未发现相关图案的注册外观设计专利纠纷。\\\",\\\"asin\\\":\\\"B0D1FVR9HG\\\",\\\"patent\\\":\\\"未发现明显侵权风险\\\",\\\"patent_reason\\\":\\\"该产品结构为行业内通用的可折叠收纳篮结构,不涉及核心技术或创新物理结构,属于成熟的市场公有领域产品,无明显发明专利侵权风险。\\\",\\\"result\\\":\\\"未发现明显侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"未发现明显侵权风险\\\",\\\"title_reason\\\":\\\"标题由“3D Basketball”及“Laundry Basket”等功能性描述词组成,未提及NBA、Nike等受保护的体育品牌词汇或特定受版权保护的用语。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"U型卫浴地垫属于市场上的通用基础款式,该产品的外观设计(形状、材质)属于行业内常规设计,未发现针对此类常见设计的特定受保护外观专利冲突。\\\",\\\"asin\\\":\\\"B09YHHHNHY\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"产品结构为标准的雪尼尔/超细纤维地垫,属于成熟的基础消费品,不涉及特定核心发明专利或复杂的物理结构创新。\\\",\\\"result\\\":\\\"没有侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题中包含的词汇均为描述性词汇(如U-Shaped, Shaggy, Non-Slip等),品牌名'FLOLEOPA'未见与欧洲大型卫浴品牌存在冲突,且无大牌敏感词或版权保护词汇。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"该产品属于市场上常见的雪尼尔(Chenille)长绒防滑地垫,外观设计具有广泛的通用性,不属于特定设计创新的独有专利产品,未发现显著的侵权风险。\\\",\\\"asin\\\":\\\"B09V23QQZB\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"该类产品的防滑底部与吸水长绒结构属于成熟的公有领域技术,未见具有独特发明创造性的专利壁垒。\\\",\\\"result\\\":\\\"没有侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题中使用的是通用描述词(如Soft, Plush, Microfiber, Bath Rugs等),未发现针对特定知名品牌或受保护商标的侵权使用。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"该产品属于市面上通用的长条纹理雪尼尔地垫,设计属于行业基础款式,在欧洲及英国市场已存在大量同类竞品,未发现显著的独特性外观专利风险。\\\",\\\"asin\\\":\\\"B0C6925935\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"雪尼尔地垫的织造结构及背部热熔胶防滑处理均为行业成熟的通用技术,不涉及独特的功能性结构发明,未发现明显的发明或实用新型专利侵权隐患。\\\",\\\"result\\\":\\\"结论:未发现明显侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题均由描述性词汇组成,如“Non Slip”、“Shaggy Chenille”、“Bathroom Rug”,未包含任何特定的品牌商标、知名IP或敏感版权词汇。\\\"},{\\\"appearance\\\":\\\"未发现明显侵权风险\\\",\\\"appearance_reason\\\":\\\"该产品属于典型的雪尼尔(Chenille)超细纤维地垫,外形为行业通用设计,未发现针对此类基础地垫造型的独占性外观设计专利。\\\",\\\"asin\\\":\\\"B09V22SLGR\\\",\\\"patent\\\":\\\"未发现明显侵权风险\\\",\\\"patent_reason\\\":\\\"产品结构为常规的绒毛层与防滑底布复合工艺,属于成熟的公共领域生产技术,不涉及具备专利壁垒的核心结构或发明技术。\\\",\\\"result\\\":\\\"未发现明显侵权风险\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"未发现明显侵权风险\\\",\\\"title_reason\\\":\\\"标题中使用的FLOLEOPA为常规品牌名称,经排查未发现其涉及知名国际大牌商标或侵犯版权的敏感词汇。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"该产品属于市场上广泛通用的陈尼尔(Chenille)材质条纹地垫,外观设计属于常规行业基础款式,未发现针对此类通用外观的特定外观设计专利垄断。\\\",\\\"asin\\\":\\\"B0CJPYC317\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"产品的物理结构(纤维绒面+热熔橡胶底)为行业通用工艺,未涉及复杂的创新结构或独特的技术发明,专利侵权风险较低。\\\",\\\"result\\\":\\\"没有侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题由描述性词汇组成(如Non Slip, Chenille, Bath Rugs等),未包含任何知名第三方商标或受版权保护的特定词汇,不构成商标侵权。\\\"},{\\\"appearance\\\":\\\"低风险\\\",\\\"appearance_reason\\\":\\\"该产品属于极度通用的长绒防滑地垫,外观设计高度普遍且属于基础类家居用品,未见独创性的外观专利保护特征。\\\",\\\"asin\\\":\\\"B0CJPXG8NT\\\",\\\"patent\\\":\\\"低风险\\\",\\\"patent_reason\\\":\\\"产品结构简单,属于常规的纺织品复合与防滑工艺,未涉及特殊功能结构或发明专利保护。\\\",\\\"result\\\":\\\"没有侵权\\\",\\\"status\\\":\\\"成功\\\",\\\"title\\\":\\\"低风险\\\",\\\"title_reason\\\":\\\"标题仅包含产品的通用描述词,如材质、功能与用途,未发现违规使用大牌商标或敏感侵权词汇。\\\"}]}\"}"}],"detail":{"logid":"20260512091632BC58254C01C905A6464B"}} +aiimage-backend.log.2026-05-12.3:864:2026-05-12 09:16:33.204 [coze-task-2113] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53054 executeId=7638807590373277722 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:4186:2026-05-12 09:21:09.705 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:4187:2026-05-12 09:21:09.710 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:4188:2026-05-12 09:21:09.728 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:4189:2026-05-12 09:21:09.728 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:4198:2026-05-12 09:21:10.293 [coze-task-2122] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=34 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:4199:2026-05-12 09:21:10.299 [coze-task-2122] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=567 +aiimage-backend.log.2026-05-12.3:7337:2026-05-12 09:27:17.932 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:7338:2026-05-12 09:27:17.937 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:7339:2026-05-12 09:27:17.955 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:7340:2026-05-12 09:27:17.955 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:7536:2026-05-12 09:27:48.493 [coze-task-2131] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638810793543155763 +aiimage-backend.log.2026-05-12.3:7537:2026-05-12 09:27:48.500 [coze-task-2131] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=30542 +aiimage-backend.log.2026-05-12.3:7607:2026-05-12 09:28:02.746 [coze-task-2133] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53057 taskId=8095 executeId=7638810793543155763 +aiimage-backend.log.2026-05-12.3:7608:2026-05-12 09:28:02.752 [coze-task-2133] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53057 executeId=7638810793543155763 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:7610:2026-05-12 09:28:02.889 [coze-task-2133] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53057 executeId=7638810793543155763 status=RUNNING +aiimage-backend.log.2026-05-12.3:7793:2026-05-12 09:28:32.747 [coze-task-2135] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53057 taskId=8095 executeId=7638810793543155763 +aiimage-backend.log.2026-05-12.3:7794:2026-05-12 09:28:32.749 [coze-task-2135] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53057 executeId=7638810793543155763 lastPolledAt=2026-05-12T09:28:03 +aiimage-backend.log.2026-05-12.3:7961:2026-05-12 09:29:02.749 [coze-task-2137] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53057 taskId=8095 executeId=7638810793543155763 +aiimage-backend.log.2026-05-12.3:7963:2026-05-12 09:29:02.755 [coze-task-2137] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53057 executeId=7638810793543155763 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:7967:2026-05-12 09:29:03.052 [coze-task-2137] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53057 executeId=7638810793543155763 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:11494:2026-05-12 09:33:25.726 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:11495:2026-05-12 09:33:25.731 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:11496:2026-05-12 09:33:25.748 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:11497:2026-05-12 09:33:25.748 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:11501:2026-05-12 09:33:26.603 [coze-task-2147] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=26 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:11502:2026-05-12 09:33:26.613 [coze-task-2147] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=862 +aiimage-backend.log.2026-05-12.3:13796:2026-05-12 09:39:40.051 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:13797:2026-05-12 09:39:40.057 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:13798:2026-05-12 09:39:40.075 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:13799:2026-05-12 09:39:40.075 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:13801:2026-05-12 09:39:40.356 [coze-task-2158] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=47 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:13802:2026-05-12 09:39:40.362 [coze-task-2158] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=284 +aiimage-backend.log.2026-05-12.3:18271:2026-05-12 09:45:58.848 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:18272:2026-05-12 09:45:58.853 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:18273:2026-05-12 09:45:58.870 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:18274:2026-05-12 09:45:58.870 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:18470:2026-05-12 09:46:29.618 [coze-task-2171] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638815613062053888 +aiimage-backend.log.2026-05-12.3:18471:2026-05-12 09:46:29.625 [coze-task-2171] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=30752 +aiimage-backend.log.2026-05-12.3:18489:2026-05-12 09:46:32.795 [coze-task-2173] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53066 taskId=8095 executeId=7638815613062053888 +aiimage-backend.log.2026-05-12.3:18492:2026-05-12 09:46:32.801 [coze-task-2173] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53066 executeId=7638815613062053888 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:18494:2026-05-12 09:46:32.953 [coze-task-2173] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53066 executeId=7638815613062053888 status=RUNNING +aiimage-backend.log.2026-05-12.3:18675:2026-05-12 09:47:02.796 [coze-task-2175] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53066 taskId=8095 executeId=7638815613062053888 +aiimage-backend.log.2026-05-12.3:18677:2026-05-12 09:47:02.797 [coze-task-2175] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53066 executeId=7638815613062053888 lastPolledAt=2026-05-12T09:46:33 +aiimage-backend.log.2026-05-12.3:18862:2026-05-12 09:47:32.798 [coze-task-2177] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53066 taskId=8095 executeId=7638815613062053888 +aiimage-backend.log.2026-05-12.3:18863:2026-05-12 09:47:32.804 [coze-task-2177] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53066 executeId=7638815613062053888 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:18867:2026-05-12 09:47:33.139 [coze-task-2177] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53066 executeId=7638815613062053888 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:22148:2026-05-12 09:52:19.755 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:22149:2026-05-12 09:52:19.759 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:22150:2026-05-12 09:52:19.777 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:22151:2026-05-12 09:52:19.777 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:22154:2026-05-12 09:52:20.276 [coze-task-2189] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=39 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:22155:2026-05-12 09:52:20.281 [coze-task-2189] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=501 +aiimage-backend.log.2026-05-12.3:24714:2026-05-12 09:58:35.231 [http-nio-18080-exec-3] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:24715:2026-05-12 09:58:35.236 [http-nio-18080-exec-3] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:24716:2026-05-12 09:58:35.255 [http-nio-18080-exec-3] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:24717:2026-05-12 09:58:35.255 [http-nio-18080-exec-3] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:24905:2026-05-12 09:59:05.890 [coze-task-2224] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638818853016109066 +aiimage-backend.log.2026-05-12.3:24906:2026-05-12 09:59:05.897 [coze-task-2224] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=30639 +aiimage-backend.log.2026-05-12.3:25069:2026-05-12 09:59:32.829 [coze-task-2227] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53076 taskId=8095 executeId=7638818853016109066 +aiimage-backend.log.2026-05-12.3:25071:2026-05-12 09:59:32.837 [coze-task-2227] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53076 executeId=7638818853016109066 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:25074:2026-05-12 09:59:32.981 [coze-task-2227] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53076 executeId=7638818853016109066 status=RUNNING +aiimage-backend.log.2026-05-12.3:25250:2026-05-12 10:00:02.830 [coze-task-2229] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53076 taskId=8095 executeId=7638818853016109066 +aiimage-backend.log.2026-05-12.3:25251:2026-05-12 10:00:02.831 [coze-task-2229] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53076 executeId=7638818853016109066 lastPolledAt=2026-05-12T09:59:33 +aiimage-backend.log.2026-05-12.3:25678:2026-05-12 10:00:32.832 [coze-task-2231] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53076 taskId=8095 executeId=7638818853016109066 +aiimage-backend.log.2026-05-12.3:25679:2026-05-12 10:00:32.838 [coze-task-2231] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53076 executeId=7638818853016109066 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:25683:2026-05-12 10:00:33.159 [coze-task-2231] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53076 executeId=7638818853016109066 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:28398:2026-05-12 10:04:56.434 [http-nio-18080-exec-6] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:28399:2026-05-12 10:04:56.439 [http-nio-18080-exec-6] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:28404:2026-05-12 10:04:56.666 [http-nio-18080-exec-6] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:28405:2026-05-12 10:04:56.666 [http-nio-18080-exec-6] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:28410:2026-05-12 10:04:58.118 [coze-task-2241] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=31 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:28411:2026-05-12 10:04:58.129 [coze-task-2241] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=1459 +aiimage-backend.log.2026-05-12.3:31394:2026-05-12 10:11:18.028 [http-nio-18080-exec-3] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:31395:2026-05-12 10:11:18.033 [http-nio-18080-exec-3] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:31396:2026-05-12 10:11:18.052 [http-nio-18080-exec-3] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:31397:2026-05-12 10:11:18.052 [http-nio-18080-exec-3] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:31797:2026-05-12 10:11:48.923 [coze-task-2254] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638822134429532223 +aiimage-backend.log.2026-05-12.3:31798:2026-05-12 10:11:48.930 [coze-task-2254] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=30875 +aiimage-backend.log.2026-05-12.3:31947:2026-05-12 10:12:02.864 [coze-task-2255] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53081 taskId=8095 executeId=7638822134429532223 +aiimage-backend.log.2026-05-12.3:31948:2026-05-12 10:12:02.871 [coze-task-2255] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53081 executeId=7638822134429532223 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:31950:2026-05-12 10:12:03.022 [coze-task-2255] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53081 executeId=7638822134429532223 status=RUNNING +aiimage-backend.log.2026-05-12.3:32353:2026-05-12 10:12:32.865 [coze-task-2256] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53081 taskId=8095 executeId=7638822134429532223 +aiimage-backend.log.2026-05-12.3:32354:2026-05-12 10:12:32.866 [coze-task-2256] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53081 executeId=7638822134429532223 lastPolledAt=2026-05-12T10:12:03 +aiimage-backend.log.2026-05-12.3:33358:2026-05-12 10:13:02.867 [coze-task-2258] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53081 taskId=8095 executeId=7638822134429532223 +aiimage-backend.log.2026-05-12.3:33362:2026-05-12 10:13:02.874 [coze-task-2258] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53081 executeId=7638822134429532223 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:33365:2026-05-12 10:13:03.347 [coze-task-2258] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53081 executeId=7638822134429532223 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:34980:2026-05-12 10:17:35.654 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:34981:2026-05-12 10:17:35.660 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:34982:2026-05-12 10:17:35.680 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:34983:2026-05-12 10:17:35.680 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:34990:2026-05-12 10:17:36.534 [coze-task-2271] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=23 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:34991:2026-05-12 10:17:36.544 [coze-task-2271] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=860 +aiimage-backend.log.2026-05-12.3:38659:2026-05-12 10:23:55.915 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:38660:2026-05-12 10:23:55.922 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:38661:2026-05-12 10:23:55.946 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:38662:2026-05-12 10:23:55.946 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:38664:2026-05-12 10:23:56.620 [coze-task-2288] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=44 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:38665:2026-05-12 10:23:56.634 [coze-task-2288] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=684 +aiimage-backend.log.2026-05-12.3:40950:2026-05-12 10:30:18.376 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:40951:2026-05-12 10:30:18.383 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:40952:2026-05-12 10:30:18.406 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:40953:2026-05-12 10:30:18.406 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:41354:2026-05-12 10:30:49.558 [coze-task-2305] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638827033095258147 +aiimage-backend.log.2026-05-12.3:41355:2026-05-12 10:30:49.569 [coze-task-2305] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=31160 +aiimage-backend.log.2026-05-12.3:41506:2026-05-12 10:31:02.922 [coze-task-2307] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53092 taskId=8095 executeId=7638827033095258147 +aiimage-backend.log.2026-05-12.3:41508:2026-05-12 10:31:02.931 [coze-task-2307] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53092 executeId=7638827033095258147 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:41513:2026-05-12 10:31:03.056 [coze-task-2307] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53092 executeId=7638827033095258147 status=RUNNING +aiimage-backend.log.2026-05-12.3:41916:2026-05-12 10:31:32.923 [coze-task-2310] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53092 taskId=8095 executeId=7638827033095258147 +aiimage-backend.log.2026-05-12.3:41917:2026-05-12 10:31:32.926 [coze-task-2310] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53092 executeId=7638827033095258147 lastPolledAt=2026-05-12T10:31:03 +aiimage-backend.log.2026-05-12.3:42958:2026-05-12 10:32:02.925 [coze-task-2312] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53092 taskId=8095 executeId=7638827033095258147 +aiimage-backend.log.2026-05-12.3:42960:2026-05-12 10:32:02.934 [coze-task-2312] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53092 executeId=7638827033095258147 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:42966:2026-05-12 10:32:03.653 [coze-task-2312] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53092 executeId=7638827033095258147 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:44470:2026-05-12 10:36:35.085 [http-nio-18080-exec-3] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:44471:2026-05-12 10:36:35.092 [http-nio-18080-exec-3] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:44472:2026-05-12 10:36:35.116 [http-nio-18080-exec-3] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:44473:2026-05-12 10:36:35.116 [http-nio-18080-exec-3] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:44475:2026-05-12 10:36:36.093 [coze-task-2322] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=36 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:44476:2026-05-12 10:36:36.109 [coze-task-2322] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=988 +aiimage-backend.log.2026-05-12.3:48050:2026-05-12 10:42:41.522 [http-nio-18080-exec-3] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:48051:2026-05-12 10:42:41.528 [http-nio-18080-exec-3] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:48052:2026-05-12 10:42:41.548 [http-nio-18080-exec-3] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:48053:2026-05-12 10:42:41.548 [http-nio-18080-exec-3] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:48227:2026-05-12 10:43:12.756 [coze-task-2333] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638830228207042560 +aiimage-backend.log.2026-05-12.3:48228:2026-05-12 10:43:12.763 [coze-task-2333] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=31211 +aiimage-backend.log.2026-05-12.3:48337:2026-05-12 10:43:32.963 [coze-task-2334] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53096 taskId=8095 executeId=7638830228207042560 +aiimage-backend.log.2026-05-12.3:48338:2026-05-12 10:43:32.970 [coze-task-2334] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53096 executeId=7638830228207042560 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:48345:2026-05-12 10:43:33.122 [coze-task-2334] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53096 executeId=7638830228207042560 status=RUNNING +aiimage-backend.log.2026-05-12.3:48515:2026-05-12 10:44:02.964 [coze-task-2336] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53096 taskId=8095 executeId=7638830228207042560 +aiimage-backend.log.2026-05-12.3:48516:2026-05-12 10:44:02.965 [coze-task-2336] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53096 executeId=7638830228207042560 lastPolledAt=2026-05-12T10:43:33 +aiimage-backend.log.2026-05-12.3:48688:2026-05-12 10:44:32.966 [coze-task-2337] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53096 taskId=8095 executeId=7638830228207042560 +aiimage-backend.log.2026-05-12.3:48689:2026-05-12 10:44:32.972 [coze-task-2337] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53096 executeId=7638830228207042560 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:48691:2026-05-12 10:44:33.392 [coze-task-2337] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53096 executeId=7638830228207042560 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:50178:2026-05-12 10:48:44.935 [http-nio-18080-exec-1] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:50179:2026-05-12 10:48:44.940 [http-nio-18080-exec-1] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:50182:2026-05-12 10:48:44.960 [http-nio-18080-exec-1] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:50183:2026-05-12 10:48:44.960 [http-nio-18080-exec-1] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:50185:2026-05-12 10:48:45.594 [coze-task-2348] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=28 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:50186:2026-05-12 10:48:45.605 [coze-task-2348] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=641 +aiimage-backend.log.2026-05-12.3:54774:2026-05-12 10:55:39.891 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:54775:2026-05-12 10:55:39.896 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:54776:2026-05-12 10:55:39.914 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:54777:2026-05-12 10:55:39.914 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:54781:2026-05-12 10:55:40.359 [coze-task-2365] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=48 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:54782:2026-05-12 10:55:40.365 [coze-task-2365] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=448 +aiimage-backend.log.2026-05-12.3:58219:2026-05-12 11:01:44.880 [http-nio-18080-exec-1] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:58220:2026-05-12 11:01:44.886 [http-nio-18080-exec-1] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:58221:2026-05-12 11:01:44.906 [http-nio-18080-exec-1] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:58222:2026-05-12 11:01:44.906 [http-nio-18080-exec-1] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:58393:2026-05-12 11:02:15.926 [coze-task-2377] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638835140785045545 +aiimage-backend.log.2026-05-12.3:58394:2026-05-12 11:02:15.937 [coze-task-2377] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=31028 +aiimage-backend.log.2026-05-12.3:58504:2026-05-12 11:02:33.023 [coze-task-2379] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53106 taskId=8095 executeId=7638835140785045545 +aiimage-backend.log.2026-05-12.3:58505:2026-05-12 11:02:33.032 [coze-task-2379] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53106 executeId=7638835140785045545 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:58507:2026-05-12 11:02:33.142 [coze-task-2379] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53106 executeId=7638835140785045545 status=RUNNING +aiimage-backend.log.2026-05-12.3:58653:2026-05-12 11:03:03.024 [coze-task-2381] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53106 taskId=8095 executeId=7638835140785045545 +aiimage-backend.log.2026-05-12.3:58655:2026-05-12 11:03:03.034 [coze-task-2381] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53106 executeId=7638835140785045545 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:58659:2026-05-12 11:03:03.488 [coze-task-2381] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53106 executeId=7638835140785045545 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:60190:2026-05-12 11:07:52.308 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:60191:2026-05-12 11:07:52.314 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:60192:2026-05-12 11:07:52.338 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:60193:2026-05-12 11:07:52.339 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:60195:2026-05-12 11:07:53.006 [coze-task-2391] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=40 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:60196:2026-05-12 11:07:53.021 [coze-task-2391] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=679 +aiimage-backend.log.2026-05-12.3:63638:2026-05-12 11:13:58.811 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:63639:2026-05-12 11:13:58.816 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:63640:2026-05-12 11:13:58.835 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:63641:2026-05-12 11:13:58.835 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:63810:2026-05-12 11:14:29.656 [coze-task-2401] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638838281279930377 +aiimage-backend.log.2026-05-12.3:63813:2026-05-12 11:14:29.664 [coze-task-2401] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=30825 +aiimage-backend.log.2026-05-12.3:63854:2026-05-12 11:14:33.061 [coze-task-2404] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53113 taskId=8095 executeId=7638838281279930377 +aiimage-backend.log.2026-05-12.3:63857:2026-05-12 11:14:33.070 [coze-task-2404] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53113 executeId=7638838281279930377 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:63861:2026-05-12 11:14:33.290 [coze-task-2404] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53113 executeId=7638838281279930377 status=RUNNING +aiimage-backend.log.2026-05-12.3:64007:2026-05-12 11:15:03.063 [coze-task-2408] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53113 taskId=8095 executeId=7638838281279930377 +aiimage-backend.log.2026-05-12.3:64009:2026-05-12 11:15:03.071 [coze-task-2408] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53113 executeId=7638838281279930377 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:64018:2026-05-12 11:15:04.008 [coze-task-2408] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53113 executeId=7638838281279930377 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:65868:2026-05-12 11:20:10.527 [http-nio-18080-exec-3] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:65869:2026-05-12 11:20:10.533 [http-nio-18080-exec-3] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:65870:2026-05-12 11:20:10.555 [http-nio-18080-exec-3] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:65871:2026-05-12 11:20:10.555 [http-nio-18080-exec-3] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:65879:2026-05-12 11:20:11.105 [coze-task-2416] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=32 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:65880:2026-05-12 11:20:11.111 [coze-task-2416] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=553 +aiimage-backend.log.2026-05-12.3:69236:2026-05-12 11:26:29.345 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:69237:2026-05-12 11:26:29.352 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:69238:2026-05-12 11:26:29.376 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:69239:2026-05-12 11:26:29.377 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:69446:2026-05-12 11:27:00.334 [coze-task-2424] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638841508490575923 +aiimage-backend.log.2026-05-12.3:69447:2026-05-12 11:27:00.345 [coze-task-2424] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=30965 +aiimage-backend.log.2026-05-12.3:69464:2026-05-12 11:27:03.099 [coze-task-2427] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53117 taskId=8095 executeId=7638841508490575923 +aiimage-backend.log.2026-05-12.3:69465:2026-05-12 11:27:03.106 [coze-task-2427] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53117 executeId=7638841508490575923 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:69469:2026-05-12 11:27:03.255 [coze-task-2427] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53117 executeId=7638841508490575923 status=RUNNING +aiimage-backend.log.2026-05-12.3:69631:2026-05-12 11:27:33.101 [coze-task-2428] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53117 taskId=8095 executeId=7638841508490575923 +aiimage-backend.log.2026-05-12.3:69632:2026-05-12 11:27:33.109 [coze-task-2428] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53117 executeId=7638841508490575923 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:69634:2026-05-12 11:27:33.841 [coze-task-2428] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53117 executeId=7638841508490575923 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:72616:2026-05-12 11:32:36.890 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:72617:2026-05-12 11:32:36.895 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:72618:2026-05-12 11:32:36.915 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:72619:2026-05-12 11:32:36.915 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:72632:2026-05-12 11:32:37.695 [coze-task-2436] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=24 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:72633:2026-05-12 11:32:37.707 [coze-task-2436] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=788 +aiimage-backend.log.2026-05-12.3:75614:2026-05-12 11:38:48.974 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:75615:2026-05-12 11:38:48.980 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:75616:2026-05-12 11:38:48.999 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:75617:2026-05-12 11:38:48.999 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:75622:2026-05-12 11:38:49.950 [coze-task-2451] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=45 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:75623:2026-05-12 11:38:49.961 [coze-task-2451] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=958 +aiimage-backend.log.2026-05-12.3:79118:2026-05-12 11:44:59.437 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:79119:2026-05-12 11:44:59.443 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:79120:2026-05-12 11:44:59.464 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:79121:2026-05-12 11:44:59.464 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:79354:2026-05-12 11:45:30.856 [coze-task-2460] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638846278085034047 +aiimage-backend.log.2026-05-12.3:79355:2026-05-12 11:45:30.864 [coze-task-2460] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=31395 +aiimage-backend.log.2026-05-12.3:79368:2026-05-12 11:45:33.154 [coze-task-2465] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53126 taskId=8095 executeId=7638846278085034047 +aiimage-backend.log.2026-05-12.3:79369:2026-05-12 11:45:33.161 [coze-task-2465] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53126 executeId=7638846278085034047 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:79372:2026-05-12 11:45:33.270 [coze-task-2465] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53126 executeId=7638846278085034047 status=RUNNING +aiimage-backend.log.2026-05-12.3:79535:2026-05-12 11:46:03.155 [coze-task-2468] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53126 taskId=8095 executeId=7638846278085034047 +aiimage-backend.log.2026-05-12.3:79538:2026-05-12 11:46:03.164 [coze-task-2468] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53126 executeId=7638846278085034047 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:79542:2026-05-12 11:46:03.293 [coze-task-2468] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53126 executeId=7638846278085034047 status=RUNNING +aiimage-backend.log.2026-05-12.3:79691:2026-05-12 11:46:33.157 [coze-task-2470] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53126 taskId=8095 executeId=7638846278085034047 +aiimage-backend.log.2026-05-12.3:79694:2026-05-12 11:46:33.164 [coze-task-2470] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53126 executeId=7638846278085034047 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:79701:2026-05-12 11:46:33.580 [coze-task-2470] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53126 executeId=7638846278085034047 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:81607:2026-05-12 11:51:02.500 [http-nio-18080-exec-1] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:81608:2026-05-12 11:51:02.507 [http-nio-18080-exec-1] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:81609:2026-05-12 11:51:02.530 [http-nio-18080-exec-1] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:81610:2026-05-12 11:51:02.530 [http-nio-18080-exec-1] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:81631:2026-05-12 11:51:03.989 [coze-task-2478] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=37 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:81632:2026-05-12 11:51:04.002 [coze-task-2478] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=1468 +aiimage-backend.log.2026-05-12.3:84613:2026-05-12 11:57:11.998 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:84614:2026-05-12 11:57:12.005 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:84615:2026-05-12 11:57:12.028 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:84616:2026-05-12 11:57:12.028 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:84813:2026-05-12 11:57:43.487 [coze-task-2489] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638849428451033140 +aiimage-backend.log.2026-05-12.3:84814:2026-05-12 11:57:43.495 [coze-task-2489] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=31464 +aiimage-backend.log.2026-05-12.3:84923:2026-05-12 11:58:03.192 [coze-task-2493] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53132 taskId=8095 executeId=7638849428451033140 +aiimage-backend.log.2026-05-12.3:84926:2026-05-12 11:58:03.200 [coze-task-2493] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53132 executeId=7638849428451033140 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:84931:2026-05-12 11:58:03.354 [coze-task-2493] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53132 executeId=7638849428451033140 status=RUNNING +aiimage-backend.log.2026-05-12.3:85106:2026-05-12 11:58:33.194 [coze-task-2497] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53132 taskId=8095 executeId=7638849428451033140 +aiimage-backend.log.2026-05-12.3:85108:2026-05-12 11:58:33.201 [coze-task-2497] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53132 executeId=7638849428451033140 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:85112:2026-05-12 11:58:33.298 [coze-task-2497] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53132 executeId=7638849428451033140 status=RUNNING +aiimage-backend.log.2026-05-12.3:85258:2026-05-12 11:59:03.195 [coze-task-2498] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53132 taskId=8095 executeId=7638849428451033140 +aiimage-backend.log.2026-05-12.3:85261:2026-05-12 11:59:03.203 [coze-task-2498] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53132 executeId=7638849428451033140 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:85265:2026-05-12 11:59:03.555 [coze-task-2498] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53132 executeId=7638849428451033140 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:88111:2026-05-12 12:03:26.091 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:88112:2026-05-12 12:03:26.095 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:88113:2026-05-12 12:03:26.114 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:88114:2026-05-12 12:03:26.114 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:88119:2026-05-12 12:03:27.073 [coze-task-2505] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=29 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:88120:2026-05-12 12:03:27.085 [coze-task-2505] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=967 +aiimage-backend.log.2026-05-12.3:90317:2026-05-12 12:09:39.781 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:90318:2026-05-12 12:09:39.788 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:90319:2026-05-12 12:09:39.812 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:90320:2026-05-12 12:09:39.812 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:90594:2026-05-12 12:10:11.136 [coze-task-2526] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638852632124358690 +aiimage-backend.log.2026-05-12.3:90595:2026-05-12 12:10:11.143 [coze-task-2526] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=31328 +aiimage-backend.log.2026-05-12.3:90845:2026-05-12 12:10:33.229 [coze-task-2529] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53138 taskId=8095 executeId=7638852632124358690 +aiimage-backend.log.2026-05-12.3:90848:2026-05-12 12:10:33.238 [coze-task-2529] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53138 executeId=7638852632124358690 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:90855:2026-05-12 12:10:33.361 [coze-task-2529] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53138 executeId=7638852632124358690 status=RUNNING +aiimage-backend.log.2026-05-12.3:91237:2026-05-12 12:11:03.230 [coze-task-2533] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53138 taskId=8095 executeId=7638852632124358690 +aiimage-backend.log.2026-05-12.3:91239:2026-05-12 12:11:03.238 [coze-task-2533] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53138 executeId=7638852632124358690 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:91244:2026-05-12 12:11:03.371 [coze-task-2533] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53138 executeId=7638852632124358690 status=RUNNING +aiimage-backend.log.2026-05-12.3:91613:2026-05-12 12:11:33.231 [coze-task-2535] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53138 taskId=8095 executeId=7638852632124358690 +aiimage-backend.log.2026-05-12.3:91615:2026-05-12 12:11:33.240 [coze-task-2535] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53138 executeId=7638852632124358690 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:91632:2026-05-12 12:11:33.904 [coze-task-2535] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53138 executeId=7638852632124358690 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:94285:2026-05-12 12:15:55.172 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:94286:2026-05-12 12:15:55.177 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:94287:2026-05-12 12:15:55.196 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:94288:2026-05-12 12:15:55.196 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:94295:2026-05-12 12:15:56.162 [coze-task-2541] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=21 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:94296:2026-05-12 12:15:56.173 [coze-task-2541] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=974 +aiimage-backend.log.2026-05-12.3:97926:2026-05-12 12:22:07.126 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:97927:2026-05-12 12:22:07.131 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:97928:2026-05-12 12:22:07.150 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:97929:2026-05-12 12:22:07.150 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:97933:2026-05-12 12:22:08.258 [coze-task-2562] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=42 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:97934:2026-05-12 12:22:08.269 [coze-task-2562] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=1116 +aiimage-backend.log.2026-05-12.3:99932:2026-05-12 12:28:22.003 [http-nio-18080-exec-6] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:99933:2026-05-12 12:28:22.010 [http-nio-18080-exec-6] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:99934:2026-05-12 12:28:22.034 [http-nio-18080-exec-6] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:99935:2026-05-12 12:28:22.034 [http-nio-18080-exec-6] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:100096:2026-05-12 12:28:53.051 [coze-task-2578] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638857452797149193 +aiimage-backend.log.2026-05-12.3:100097:2026-05-12 12:28:53.060 [coze-task-2578] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=31022 +aiimage-backend.log.2026-05-12.3:100148:2026-05-12 12:29:03.286 [coze-task-2579] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53146 taskId=8095 executeId=7638857452797149193 +aiimage-backend.log.2026-05-12.3:100149:2026-05-12 12:29:03.294 [coze-task-2579] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53146 executeId=7638857452797149193 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:100151:2026-05-12 12:29:03.499 [coze-task-2579] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53146 executeId=7638857452797149193 status=RUNNING +aiimage-backend.log.2026-05-12.3:100298:2026-05-12 12:29:33.288 [coze-task-2580] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53146 taskId=8095 executeId=7638857452797149193 +aiimage-backend.log.2026-05-12.3:100299:2026-05-12 12:29:33.296 [coze-task-2580] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53146 executeId=7638857452797149193 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:100301:2026-05-12 12:29:33.424 [coze-task-2580] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53146 executeId=7638857452797149193 status=RUNNING +aiimage-backend.log.2026-05-12.3:100476:2026-05-12 12:30:03.290 [coze-task-2582] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53146 taskId=8095 executeId=7638857452797149193 +aiimage-backend.log.2026-05-12.3:100477:2026-05-12 12:30:03.296 [coze-task-2582] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53146 executeId=7638857452797149193 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:100486:2026-05-12 12:30:03.505 [coze-task-2582] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53146 executeId=7638857452797149193 status=RUNNING +aiimage-backend.log.2026-05-12.3:100880:2026-05-12 12:30:33.291 [coze-task-2585] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53146 taskId=8095 executeId=7638857452797149193 +aiimage-backend.log.2026-05-12.3:100881:2026-05-12 12:30:33.293 [coze-task-2585] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53146 executeId=7638857452797149193 lastPolledAt=2026-05-12T12:30:04 +aiimage-backend.log.2026-05-12.3:101277:2026-05-12 12:31:03.293 [coze-task-2589] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53146 taskId=8095 executeId=7638857452797149193 +aiimage-backend.log.2026-05-12.3:101280:2026-05-12 12:31:03.300 [coze-task-2589] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53146 executeId=7638857452797149193 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:101288:2026-05-12 12:31:03.790 [coze-task-2589] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53146 executeId=7638857452797149193 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:103485:2026-05-12 12:34:35.624 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:103486:2026-05-12 12:34:35.631 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:103487:2026-05-12 12:34:35.655 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:103488:2026-05-12 12:34:35.655 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:103490:2026-05-12 12:34:36.509 [coze-task-2606] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=34 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:103491:2026-05-12 12:34:36.522 [coze-task-2606] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=864 +aiimage-backend.log.2026-05-12.3:107463:2026-05-12 12:41:36.533 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:107464:2026-05-12 12:41:36.538 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:107465:2026-05-12 12:41:36.556 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:107466:2026-05-12 12:41:36.556 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:107621:2026-05-12 12:42:08.231 [coze-task-2619] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638860874304323624 +aiimage-backend.log.2026-05-12.3:107622:2026-05-12 12:42:08.241 [coze-task-2619] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=31681 +aiimage-backend.log.2026-05-12.3:107774:2026-05-12 12:42:33.327 [coze-task-2621] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53152 taskId=8095 executeId=7638860874304323624 +aiimage-backend.log.2026-05-12.3:107775:2026-05-12 12:42:33.333 [coze-task-2621] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53152 executeId=7638860874304323624 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:107777:2026-05-12 12:42:33.461 [coze-task-2621] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53152 executeId=7638860874304323624 status=RUNNING +aiimage-backend.log.2026-05-12.3:107922:2026-05-12 12:43:03.328 [coze-task-2622] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53152 taskId=8095 executeId=7638860874304323624 +aiimage-backend.log.2026-05-12.3:107923:2026-05-12 12:43:03.335 [coze-task-2622] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53152 executeId=7638860874304323624 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:107925:2026-05-12 12:43:03.492 [coze-task-2622] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53152 executeId=7638860874304323624 status=RUNNING +aiimage-backend.log.2026-05-12.3:108101:2026-05-12 12:43:33.330 [coze-task-2625] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53152 taskId=8095 executeId=7638860874304323624 +aiimage-backend.log.2026-05-12.3:108102:2026-05-12 12:43:33.337 [coze-task-2625] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53152 executeId=7638860874304323624 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:108104:2026-05-12 12:43:33.457 [coze-task-2625] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53152 executeId=7638860874304323624 status=RUNNING +aiimage-backend.log.2026-05-12.3:108262:2026-05-12 12:44:03.332 [coze-task-2626] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53152 taskId=8095 executeId=7638860874304323624 +aiimage-backend.log.2026-05-12.3:108263:2026-05-12 12:44:03.339 [coze-task-2626] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53152 executeId=7638860874304323624 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:108265:2026-05-12 12:44:03.486 [coze-task-2626] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53152 executeId=7638860874304323624 status=RUNNING +aiimage-backend.log.2026-05-12.3:108429:2026-05-12 12:44:33.333 [coze-task-2628] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53152 taskId=8095 executeId=7638860874304323624 +aiimage-backend.log.2026-05-12.3:108430:2026-05-12 12:44:33.341 [coze-task-2628] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53152 executeId=7638860874304323624 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:108432:2026-05-12 12:44:33.469 [coze-task-2628] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53152 executeId=7638860874304323624 status=RUNNING +aiimage-backend.log.2026-05-12.3:108581:2026-05-12 12:45:03.335 [coze-task-2629] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53152 taskId=8095 executeId=7638860874304323624 +aiimage-backend.log.2026-05-12.3:108582:2026-05-12 12:45:03.342 [coze-task-2629] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53152 executeId=7638860874304323624 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:108584:2026-05-12 12:45:03.567 [coze-task-2629] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53152 executeId=7638860874304323624 status=RUNNING +aiimage-backend.log.2026-05-12.3:108760:2026-05-12 12:45:33.337 [coze-task-2631] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53152 taskId=8095 executeId=7638860874304323624 +aiimage-backend.log.2026-05-12.3:108761:2026-05-12 12:45:33.338 [coze-task-2631] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53152 executeId=7638860874304323624 lastPolledAt=2026-05-12T12:45:04 +aiimage-backend.log.2026-05-12.3:108915:2026-05-12 12:46:03.338 [coze-task-2633] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53152 taskId=8095 executeId=7638860874304323624 +aiimage-backend.log.2026-05-12.3:108917:2026-05-12 12:46:03.347 [coze-task-2633] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53152 executeId=7638860874304323624 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:108919:2026-05-12 12:46:03.479 [coze-task-2633] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53152 executeId=7638860874304323624 status=RUNNING +aiimage-backend.log.2026-05-12.3:109080:2026-05-12 12:46:33.340 [coze-task-2634] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53152 taskId=8095 executeId=7638860874304323624 +aiimage-backend.log.2026-05-12.3:109083:2026-05-12 12:46:33.348 [coze-task-2634] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53152 executeId=7638860874304323624 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:109087:2026-05-12 12:46:33.741 [coze-task-2634] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53152 executeId=7638860874304323624 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:109430:2026-05-12 12:47:40.742 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:109431:2026-05-12 12:47:40.747 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:109432:2026-05-12 12:47:40.765 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:109433:2026-05-12 12:47:40.765 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:109461:2026-05-12 12:47:41.826 [coze-task-2638] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=25 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:109462:2026-05-12 12:47:41.836 [coze-task-2638] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=1067 +aiimage-backend.log.2026-05-12.3:113370:2026-05-12 12:53:47.681 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:113371:2026-05-12 12:53:47.687 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:113372:2026-05-12 12:53:47.706 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:113373:2026-05-12 12:53:47.706 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:113379:2026-05-12 12:53:48.463 [coze-task-2661] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=46 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:113380:2026-05-12 12:53:48.469 [coze-task-2661] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=759 +aiimage-backend.log.2026-05-12.3:115368:2026-05-12 12:59:53.795 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:115369:2026-05-12 12:59:53.802 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:115370:2026-05-12 12:59:53.826 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:115371:2026-05-12 12:59:53.826 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:115696:2026-05-12 13:00:25.348 [coze-task-2681] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638865587648774144 +aiimage-backend.log.2026-05-12.3:115697:2026-05-12 13:00:25.358 [coze-task-2681] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=31529 +aiimage-backend.log.2026-05-12.3:115828:2026-05-12 13:00:33.380 [coze-task-2683] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53160 taskId=8095 executeId=7638865587648774144 +aiimage-backend.log.2026-05-12.3:115830:2026-05-12 13:00:33.388 [coze-task-2683] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53160 executeId=7638865587648774144 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:115832:2026-05-12 13:00:33.519 [coze-task-2683] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53160 executeId=7638865587648774144 status=RUNNING +aiimage-backend.log.2026-05-12.3:116209:2026-05-12 13:01:03.382 [coze-task-2685] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53160 taskId=8095 executeId=7638865587648774144 +aiimage-backend.log.2026-05-12.3:116211:2026-05-12 13:01:03.385 [coze-task-2685] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53160 executeId=7638865587648774144 lastPolledAt=2026-05-12T13:00:34 +aiimage-backend.log.2026-05-12.3:116750:2026-05-12 13:01:33.384 [coze-task-2689] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53160 taskId=8095 executeId=7638865587648774144 +aiimage-backend.log.2026-05-12.3:116752:2026-05-12 13:01:33.390 [coze-task-2689] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53160 executeId=7638865587648774144 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:116754:2026-05-12 13:01:33.512 [coze-task-2689] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53160 executeId=7638865587648774144 status=RUNNING +aiimage-backend.log.2026-05-12.3:117714:2026-05-12 13:02:03.386 [coze-task-2691] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53160 taskId=8095 executeId=7638865587648774144 +aiimage-backend.log.2026-05-12.3:117716:2026-05-12 13:02:03.387 [coze-task-2691] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53160 executeId=7638865587648774144 lastPolledAt=2026-05-12T13:01:34 +aiimage-backend.log.2026-05-12.3:117912:2026-05-12 13:02:33.387 [coze-task-2696] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53160 taskId=8095 executeId=7638865587648774144 +aiimage-backend.log.2026-05-12.3:117916:2026-05-12 13:02:33.395 [coze-task-2696] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53160 executeId=7638865587648774144 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:117918:2026-05-12 13:02:33.533 [coze-task-2696] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53160 executeId=7638865587648774144 status=RUNNING +aiimage-backend.log.2026-05-12.3:118081:2026-05-12 13:03:03.388 [coze-task-2698] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53160 taskId=8095 executeId=7638865587648774144 +aiimage-backend.log.2026-05-12.3:118084:2026-05-12 13:03:03.389 [coze-task-2698] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53160 executeId=7638865587648774144 lastPolledAt=2026-05-12T13:02:34 +aiimage-backend.log.2026-05-12.3:118280:2026-05-12 13:03:33.389 [coze-task-2703] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53160 taskId=8095 executeId=7638865587648774144 +aiimage-backend.log.2026-05-12.3:118282:2026-05-12 13:03:33.397 [coze-task-2703] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53160 executeId=7638865587648774144 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:118288:2026-05-12 13:03:33.883 [coze-task-2703] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53160 executeId=7638865587648774144 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:119073:2026-05-12 13:05:59.459 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:119074:2026-05-12 13:05:59.465 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:119075:2026-05-12 13:05:59.488 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:119076:2026-05-12 13:05:59.488 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:119117:2026-05-12 13:06:01.316 [coze-task-2711] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=38 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:119118:2026-05-12 13:06:01.327 [coze-task-2711] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=1835 +aiimage-backend.log.2026-05-12.3:122601:2026-05-12 13:12:03.623 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:122602:2026-05-12 13:12:03.628 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:122603:2026-05-12 13:12:03.648 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:122604:2026-05-12 13:12:03.648 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:122759:2026-05-12 13:12:35.112 [coze-task-2726] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638868716852002831 +aiimage-backend.log.2026-05-12.3:122760:2026-05-12 13:12:35.122 [coze-task-2726] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=31471 +aiimage-backend.log.2026-05-12.3:122917:2026-05-12 13:13:03.418 [coze-task-2728] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53167 taskId=8095 executeId=7638868716852002831 +aiimage-backend.log.2026-05-12.3:122918:2026-05-12 13:13:03.425 [coze-task-2728] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53167 executeId=7638868716852002831 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:122920:2026-05-12 13:13:03.556 [coze-task-2728] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53167 executeId=7638868716852002831 status=RUNNING +aiimage-backend.log.2026-05-12.3:123077:2026-05-12 13:13:33.419 [coze-task-2729] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53167 taskId=8095 executeId=7638868716852002831 +aiimage-backend.log.2026-05-12.3:123078:2026-05-12 13:13:33.420 [coze-task-2729] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53167 executeId=7638868716852002831 lastPolledAt=2026-05-12T13:13:04 +aiimage-backend.log.2026-05-12.3:123232:2026-05-12 13:14:03.421 [coze-task-2730] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53167 taskId=8095 executeId=7638868716852002831 +aiimage-backend.log.2026-05-12.3:123233:2026-05-12 13:14:03.428 [coze-task-2730] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53167 executeId=7638868716852002831 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:123242:2026-05-12 13:14:04.717 [coze-task-2730] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53167 executeId=7638868716852002831 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:124558:2026-05-12 13:18:09.814 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:124559:2026-05-12 13:18:09.820 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:124560:2026-05-12 13:18:09.842 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:124561:2026-05-12 13:18:09.842 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:124563:2026-05-12 13:18:10.477 [coze-task-2738] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=30 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:124564:2026-05-12 13:18:10.485 [coze-task-2738] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=640 +aiimage-backend.log.2026-05-12.3:128396:2026-05-12 13:25:10.414 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:128397:2026-05-12 13:25:10.419 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:128398:2026-05-12 13:25:10.438 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:128399:2026-05-12 13:25:10.438 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:128591:2026-05-12 13:25:41.993 [coze-task-2755] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638872096462716962 +aiimage-backend.log.2026-05-12.3:128592:2026-05-12 13:25:42.003 [coze-task-2755] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=31561 +aiimage-backend.log.2026-05-12.3:128707:2026-05-12 13:26:03.459 [coze-task-2756] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53173 taskId=8095 executeId=7638872096462716962 +aiimage-backend.log.2026-05-12.3:128708:2026-05-12 13:26:03.466 [coze-task-2756] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53173 executeId=7638872096462716962 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:128711:2026-05-12 13:26:03.571 [coze-task-2756] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53173 executeId=7638872096462716962 status=RUNNING +aiimage-backend.log.2026-05-12.3:128879:2026-05-12 13:26:33.461 [coze-task-2757] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53173 taskId=8095 executeId=7638872096462716962 +aiimage-backend.log.2026-05-12.3:128880:2026-05-12 13:26:33.463 [coze-task-2757] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53173 executeId=7638872096462716962 lastPolledAt=2026-05-12T13:26:04 +aiimage-backend.log.2026-05-12.3:129091:2026-05-12 13:27:03.462 [coze-task-2760] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53173 taskId=8095 executeId=7638872096462716962 +aiimage-backend.log.2026-05-12.3:129092:2026-05-12 13:27:03.471 [coze-task-2760] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53173 executeId=7638872096462716962 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:129094:2026-05-12 13:27:03.607 [coze-task-2760] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53173 executeId=7638872096462716962 status=RUNNING +aiimage-backend.log.2026-05-12.3:129260:2026-05-12 13:27:33.464 [coze-task-2761] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53173 taskId=8095 executeId=7638872096462716962 +aiimage-backend.log.2026-05-12.3:129261:2026-05-12 13:27:33.466 [coze-task-2761] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53173 executeId=7638872096462716962 lastPolledAt=2026-05-12T13:27:04 +aiimage-backend.log.2026-05-12.3:129427:2026-05-12 13:28:03.465 [coze-task-2763] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53173 taskId=8095 executeId=7638872096462716962 +aiimage-backend.log.2026-05-12.3:129428:2026-05-12 13:28:03.473 [coze-task-2763] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53173 executeId=7638872096462716962 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:129431:2026-05-12 13:28:03.575 [coze-task-2763] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53173 executeId=7638872096462716962 status=RUNNING +aiimage-backend.log.2026-05-12.3:129626:2026-05-12 13:28:33.467 [coze-task-2765] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53173 taskId=8095 executeId=7638872096462716962 +aiimage-backend.log.2026-05-12.3:129627:2026-05-12 13:28:33.469 [coze-task-2765] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53173 executeId=7638872096462716962 lastPolledAt=2026-05-12T13:28:04 +aiimage-backend.log.2026-05-12.3:129793:2026-05-12 13:29:03.469 [coze-task-2767] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53173 taskId=8095 executeId=7638872096462716962 +aiimage-backend.log.2026-05-12.3:129795:2026-05-12 13:29:03.477 [coze-task-2767] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53173 executeId=7638872096462716962 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:129799:2026-05-12 13:29:04.035 [coze-task-2767] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53173 executeId=7638872096462716962 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:131205:2026-05-12 13:31:26.234 [http-nio-18080-exec-6] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:131206:2026-05-12 13:31:26.240 [http-nio-18080-exec-6] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:131207:2026-05-12 13:31:26.264 [http-nio-18080-exec-6] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:131208:2026-05-12 13:31:26.264 [http-nio-18080-exec-6] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:131218:2026-05-12 13:31:27.479 [coze-task-2772] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=21 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:131219:2026-05-12 13:31:27.494 [coze-task-2772] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=1226 +aiimage-backend.log.2026-05-12.3:134682:2026-05-12 13:37:31.326 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:134683:2026-05-12 13:37:31.332 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:134684:2026-05-12 13:37:31.353 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:134685:2026-05-12 13:37:31.353 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:134715:2026-05-12 13:37:32.842 [coze-task-2796] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=42 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:134716:2026-05-12 13:37:32.855 [coze-task-2796] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=1498 +aiimage-backend.log.2026-05-12.3:138440:2026-05-12 13:43:37.710 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:138441:2026-05-12 13:43:37.716 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:138442:2026-05-12 13:43:37.737 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:138443:2026-05-12 13:43:37.737 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:138652:2026-05-12 13:44:09.172 [coze-task-2829] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638876851931414580 +aiimage-backend.log.2026-05-12.3:138653:2026-05-12 13:44:09.182 [coze-task-2829] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=31442 +aiimage-backend.log.2026-05-12.3:138804:2026-05-12 13:44:33.517 [coze-task-2831] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53183 taskId=8095 executeId=7638876851931414580 +aiimage-backend.log.2026-05-12.3:138805:2026-05-12 13:44:33.524 [coze-task-2831] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53183 executeId=7638876851931414580 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:138807:2026-05-12 13:44:33.644 [coze-task-2831] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53183 executeId=7638876851931414580 status=RUNNING +aiimage-backend.log.2026-05-12.3:138983:2026-05-12 13:45:03.518 [coze-task-2833] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53183 taskId=8095 executeId=7638876851931414580 +aiimage-backend.log.2026-05-12.3:138984:2026-05-12 13:45:03.520 [coze-task-2833] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53183 executeId=7638876851931414580 lastPolledAt=2026-05-12T13:44:34 +aiimage-backend.log.2026-05-12.3:139170:2026-05-12 13:45:33.520 [coze-task-2835] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53183 taskId=8095 executeId=7638876851931414580 +aiimage-backend.log.2026-05-12.3:139171:2026-05-12 13:45:33.527 [coze-task-2835] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53183 executeId=7638876851931414580 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:139176:2026-05-12 13:45:33.646 [coze-task-2835] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53183 executeId=7638876851931414580 status=RUNNING +aiimage-backend.log.2026-05-12.3:139347:2026-05-12 13:46:03.522 [coze-task-2836] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53183 taskId=8095 executeId=7638876851931414580 +aiimage-backend.log.2026-05-12.3:139348:2026-05-12 13:46:03.523 [coze-task-2836] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53183 executeId=7638876851931414580 lastPolledAt=2026-05-12T13:45:34 +aiimage-backend.log.2026-05-12.3:139536:2026-05-12 13:46:33.524 [coze-task-2839] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53183 taskId=8095 executeId=7638876851931414580 +aiimage-backend.log.2026-05-12.3:139537:2026-05-12 13:46:33.530 [coze-task-2839] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53183 executeId=7638876851931414580 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:139541:2026-05-12 13:46:34.002 [coze-task-2839] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53183 executeId=7638876851931414580 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:140689:2026-05-12 13:50:04.684 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:140690:2026-05-12 13:50:04.689 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:140691:2026-05-12 13:50:04.708 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:140692:2026-05-12 13:50:04.708 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:140710:2026-05-12 13:50:06.629 [coze-task-2850] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=34 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:140711:2026-05-12 13:50:06.639 [coze-task-2850] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=1927 +aiimage-backend.log.2026-05-12.3:143751:2026-05-12 13:56:09.390 [http-nio-18080-exec-1] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:143752:2026-05-12 13:56:09.396 [http-nio-18080-exec-1] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:143753:2026-05-12 13:56:09.418 [http-nio-18080-exec-1] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:143754:2026-05-12 13:56:09.418 [http-nio-18080-exec-1] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:143888:2026-05-12 13:56:40.849 [coze-task-2886] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638880086539812864 +aiimage-backend.log.2026-05-12.3:143889:2026-05-12 13:56:40.858 [coze-task-2886] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=31436 +aiimage-backend.log.2026-05-12.3:143996:2026-05-12 13:57:03.559 [coze-task-2892] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53190 taskId=8095 executeId=7638880086539812864 +aiimage-backend.log.2026-05-12.3:144002:2026-05-12 13:57:03.567 [coze-task-2892] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53190 executeId=7638880086539812864 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:144005:2026-05-12 13:57:03.695 [coze-task-2892] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53190 executeId=7638880086539812864 status=RUNNING +aiimage-backend.log.2026-05-12.3:144122:2026-05-12 13:57:33.562 [coze-task-2897] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53190 taskId=8095 executeId=7638880086539812864 +aiimage-backend.log.2026-05-12.3:144126:2026-05-12 13:57:33.564 [coze-task-2897] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53190 executeId=7638880086539812864 lastPolledAt=2026-05-12T13:57:04 +aiimage-backend.log.2026-05-12.3:144392:2026-05-12 13:58:03.563 [coze-task-2905] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53190 taskId=8095 executeId=7638880086539812864 +aiimage-backend.log.2026-05-12.3:144396:2026-05-12 13:58:03.570 [coze-task-2905] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53190 executeId=7638880086539812864 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:144401:2026-05-12 13:58:03.691 [coze-task-2905] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53190 executeId=7638880086539812864 status=RUNNING +aiimage-backend.log.2026-05-12.3:144519:2026-05-12 13:58:33.565 [coze-task-2908] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53190 taskId=8095 executeId=7638880086539812864 +aiimage-backend.log.2026-05-12.3:144523:2026-05-12 13:58:33.566 [coze-task-2908] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53190 executeId=7638880086539812864 lastPolledAt=2026-05-12T13:58:04 +aiimage-backend.log.2026-05-12.3:144661:2026-05-12 13:59:03.567 [coze-task-2917] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53190 taskId=8095 executeId=7638880086539812864 +aiimage-backend.log.2026-05-12.3:144666:2026-05-12 13:59:03.574 [coze-task-2917] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53190 executeId=7638880086539812864 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:144671:2026-05-12 13:59:03.716 [coze-task-2917] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53190 executeId=7638880086539812864 status=RUNNING +aiimage-backend.log.2026-05-12.3:144791:2026-05-12 13:59:33.568 [coze-task-2920] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53190 taskId=8095 executeId=7638880086539812864 +aiimage-backend.log.2026-05-12.3:144796:2026-05-12 13:59:33.570 [coze-task-2920] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53190 executeId=7638880086539812864 lastPolledAt=2026-05-12T13:59:04 +aiimage-backend.log.2026-05-12.3:144987:2026-05-12 14:00:03.571 [coze-task-2931] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53190 taskId=8095 executeId=7638880086539812864 +aiimage-backend.log.2026-05-12.3:144996:2026-05-12 14:00:03.578 [coze-task-2931] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53190 executeId=7638880086539812864 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:145004:2026-05-12 14:00:03.725 [coze-task-2931] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53190 executeId=7638880086539812864 status=RUNNING +aiimage-backend.log.2026-05-12.3:145369:2026-05-12 14:00:33.572 [coze-task-2933] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53190 taskId=8095 executeId=7638880086539812864 +aiimage-backend.log.2026-05-12.3:145373:2026-05-12 14:00:33.574 [coze-task-2933] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53190 executeId=7638880086539812864 lastPolledAt=2026-05-12T14:00:04 +aiimage-backend.log.2026-05-12.3:145729:2026-05-12 14:01:03.574 [coze-task-2944] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53190 taskId=8095 executeId=7638880086539812864 +aiimage-backend.log.2026-05-12.3:145738:2026-05-12 14:01:03.584 [coze-task-2944] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53190 executeId=7638880086539812864 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:145743:2026-05-12 14:01:03.728 [coze-task-2944] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53190 executeId=7638880086539812864 status=RUNNING +aiimage-backend.log.2026-05-12.3:146098:2026-05-12 14:01:33.575 [coze-task-2947] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53190 taskId=8095 executeId=7638880086539812864 +aiimage-backend.log.2026-05-12.3:146103:2026-05-12 14:01:33.577 [coze-task-2947] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53190 executeId=7638880086539812864 lastPolledAt=2026-05-12T14:01:04 +aiimage-backend.log.2026-05-12.3:147035:2026-05-12 14:02:03.577 [coze-task-2959] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53190 taskId=8095 executeId=7638880086539812864 +aiimage-backend.log.2026-05-12.3:147043:2026-05-12 14:02:03.584 [coze-task-2959] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53190 executeId=7638880086539812864 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:147050:2026-05-12 14:02:03.804 [coze-task-2959] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53190 executeId=7638880086539812864 status=RUNNING +aiimage-backend.log.2026-05-12.3:147094:2026-05-12 14:02:17.159 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:147095:2026-05-12 14:02:17.165 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:147096:2026-05-12 14:02:17.185 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:147097:2026-05-12 14:02:17.186 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:147101:2026-05-12 14:02:17.429 [coze-task-2961] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=239 +aiimage-backend.log.2026-05-12.3:147177:2026-05-12 14:02:33.579 [coze-task-2962] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53190 taskId=8095 executeId=7638880086539812864 +aiimage-backend.log.2026-05-12.3:147187:2026-05-12 14:02:33.580 [coze-task-2962] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53190 executeId=7638880086539812864 lastPolledAt=2026-05-12T14:02:04 +aiimage-backend.log.2026-05-12.3:147343:2026-05-12 14:03:03.581 [coze-task-2978] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53190 taskId=8095 executeId=7638880086539812864 +aiimage-backend.log.2026-05-12.3:147352:2026-05-12 14:03:03.590 [coze-task-2978] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53190 executeId=7638880086539812864 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:147360:2026-05-12 14:03:04.638 [coze-task-2978] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53190 executeId=7638880086539812864 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.3:148858:2026-05-12 14:08:27.868 [http-nio-18080-exec-1] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:148859:2026-05-12 14:08:27.872 [http-nio-18080-exec-1] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:148860:2026-05-12 14:08:27.890 [http-nio-18080-exec-1] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:148861:2026-05-12 14:08:27.890 [http-nio-18080-exec-1] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:148868:2026-05-12 14:08:29.222 [coze-task-3030] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=47 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.3:148869:2026-05-12 14:08:29.232 [coze-task-3030] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=1338 +aiimage-backend.log.2026-05-12.3:152797:2026-05-12 14:15:26.775 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:152798:2026-05-12 14:15:26.780 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.3:152799:2026-05-12 14:15:26.801 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:152800:2026-05-12 14:15:26.801 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.3:153230:2026-05-12 14:16:56.641 [coze-task-3113] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.3:153231:2026-05-12 14:16:56.650 [coze-task-3113] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=89846 +aiimage-backend.log.2026-05-12.3:153283:2026-05-12 14:17:03.626 [coze-task-3138] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.3:153296:2026-05-12 14:17:03.633 [coze-task-3138] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53213 executeId=7638885308012085274 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:153306:2026-05-12 14:17:03.780 [coze-task-3138] INFO c.n.a.m.a.c.AppearancePatentCozeClient - [appearance-patent] coze history response executeId=7638885308012085274 status=200 OK body={"code":0,"msg":"","data":[{"logid":"2026051214162662F3A773535CDEBC9DB8","output":"{\"node_status\":\"{}\",\"Output\":\"\"}","connector_id":"1024","update_time":1778566587,"is_output_trimmed":false,"token":"0","run_mode":2,"usage":{"token_count":0,"output_count":0,"input_count":0},"execute_id":"7638885308012085274","execute_status":"Running","node_execute_status":{},"bot_id":"0","create_time":1778566587,"connector_uid":"2939430754097600","error_code":"","debug_url":"https://www.coze.cn/work_flow?execute_id=7638885308012085274&space_id=7519005192466022436&workflow_id=7632683471312355338&execute_mode=2"}],"detail":{"logid":"202605121417037D9A08381FC57DADE5FB"}} +aiimage-backend.log.2026-05-12.3:153307:2026-05-12 14:17:03.780 [coze-task-3138] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53213 executeId=7638885308012085274 status=RUNNING +aiimage-backend.log.2026-05-12.3:153441:2026-05-12 14:17:33.628 [coze-task-3152] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.3:153449:2026-05-12 14:17:33.630 [coze-task-3152] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53213 executeId=7638885308012085274 lastPolledAt=2026-05-12T14:17:04 +aiimage-backend.log.2026-05-12.3:153610:2026-05-12 14:18:03.630 [coze-task-3166] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.3:153618:2026-05-12 14:18:03.640 [coze-task-3166] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53213 executeId=7638885308012085274 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.3:153620:2026-05-12 14:18:03.756 [coze-task-3166] INFO c.n.a.m.a.c.AppearancePatentCozeClient - [appearance-patent] coze history response executeId=7638885308012085274 status=200 OK body={"detail":{"logid":"20260512141803F811D537EF7B04BF2578"},"code":0,"msg":"","data":[{"is_output_trimmed":false,"run_mode":2,"debug_url":"https://www.coze.cn/work_flow?execute_id=7638885308012085274&space_id=7519005192466022436&workflow_id=7632683471312355338&execute_mode=2","create_time":1778566587,"execute_status":"Running","output":"{\"node_status\":\"{}\",\"Output\":\"\"}","usage":{"input_count":0,"token_count":0,"output_count":0},"error_code":"","execute_id":"7638885308012085274","bot_id":"0","connector_id":"1024","logid":"2026051214162662F3A773535CDEBC9DB8","node_execute_status":{},"update_time":1778566587,"token":"0","connector_uid":"2939430754097600"}]} +aiimage-backend.log.2026-05-12.3:153621:2026-05-12 14:18:03.756 [coze-task-3166] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53213 executeId=7638885308012085274 status=RUNNING +aiimage-backend.log.2026-05-12.3:153747:2026-05-12 14:18:33.631 [coze-task-3170] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.3:153754:2026-05-12 14:18:33.633 [coze-task-3170] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53213 executeId=7638885308012085274 lastPolledAt=2026-05-12T14:18:04 +aiimage-backend.log.2026-05-12.4:79:2026-05-12 14:19:03.633 [coze-task-3182] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.4:88:2026-05-12 14:19:03.642 [coze-task-3182] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53213 executeId=7638885308012085274 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:92:2026-05-12 14:19:03.768 [coze-task-3182] INFO c.n.a.m.a.c.AppearancePatentCozeClient - [appearance-patent] coze history response executeId=7638885308012085274 status=200 OK body={"code":0,"msg":"","data":[{"execute_id":"7638885308012085274","bot_id":"0","update_time":1778566587,"is_output_trimmed":false,"execute_status":"Running","logid":"2026051214162662F3A773535CDEBC9DB8","create_time":1778566587,"connector_id":"1024","run_mode":2,"usage":{"token_count":0,"output_count":0,"input_count":0},"error_code":"","token":"0","connector_uid":"2939430754097600","debug_url":"https://www.coze.cn/work_flow?execute_id=7638885308012085274&space_id=7519005192466022436&workflow_id=7632683471312355338&execute_mode=2","output":"{\"Output\":\"\",\"node_status\":\"{}\"}","node_execute_status":{}}],"detail":{"logid":"20260512141903E8BBE79D0821A2D93585"}} +aiimage-backend.log.2026-05-12.4:93:2026-05-12 14:19:03.768 [coze-task-3182] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53213 executeId=7638885308012085274 status=RUNNING +aiimage-backend.log.2026-05-12.4:228:2026-05-12 14:19:33.635 [coze-task-3187] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.4:235:2026-05-12 14:19:33.637 [coze-task-3187] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53213 executeId=7638885308012085274 lastPolledAt=2026-05-12T14:19:04 +aiimage-backend.log.2026-05-12.4:399:2026-05-12 14:20:03.636 [coze-task-3198] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.4:404:2026-05-12 14:20:03.644 [coze-task-3198] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53213 executeId=7638885308012085274 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:412:2026-05-12 14:20:03.754 [coze-task-3198] INFO c.n.a.m.a.c.AppearancePatentCozeClient - [appearance-patent] coze history response executeId=7638885308012085274 status=200 OK body={"code":0,"msg":"","data":[{"debug_url":"https://www.coze.cn/work_flow?execute_id=7638885308012085274&space_id=7519005192466022436&workflow_id=7632683471312355338&execute_mode=2","error_code":"","execute_status":"Running","connector_uid":"2939430754097600","run_mode":2,"node_execute_status":{},"bot_id":"0","connector_id":"1024","create_time":1778566587,"output":"{\"node_status\":\"{}\",\"Output\":\"\"}","execute_id":"7638885308012085274","is_output_trimmed":false,"token":"0","logid":"2026051214162662F3A773535CDEBC9DB8","usage":{"input_count":0,"token_count":0,"output_count":0},"update_time":1778566587}],"detail":{"logid":"2026051214200330D91EC9CEE929D77E81"}} +aiimage-backend.log.2026-05-12.4:413:2026-05-12 14:20:03.754 [coze-task-3198] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53213 executeId=7638885308012085274 status=RUNNING +aiimage-backend.log.2026-05-12.4:777:2026-05-12 14:20:33.638 [coze-task-3203] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.4:785:2026-05-12 14:20:33.640 [coze-task-3203] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53213 executeId=7638885308012085274 lastPolledAt=2026-05-12T14:20:04 +aiimage-backend.log.2026-05-12.4:1150:2026-05-12 14:21:03.640 [coze-task-3215] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.4:1162:2026-05-12 14:21:03.649 [coze-task-3215] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53213 executeId=7638885308012085274 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:1170:2026-05-12 14:21:03.773 [coze-task-3215] INFO c.n.a.m.a.c.AppearancePatentCozeClient - [appearance-patent] coze history response executeId=7638885308012085274 status=200 OK body={"msg":"","data":[{"execute_id":"7638885308012085274","logid":"2026051214162662F3A773535CDEBC9DB8","node_execute_status":{},"error_code":"","create_time":1778566587,"is_output_trimmed":false,"usage":{"token_count":0,"output_count":0,"input_count":0},"connector_id":"1024","execute_status":"Running","connector_uid":"2939430754097600","debug_url":"https://www.coze.cn/work_flow?execute_id=7638885308012085274&space_id=7519005192466022436&workflow_id=7632683471312355338&execute_mode=2","bot_id":"0","update_time":1778566587,"token":"0","run_mode":2,"output":"{\"node_status\":\"{}\",\"Output\":\"\"}"}],"detail":{"logid":"20260512142103F981FB89CDFF99AA0C57"},"code":0} +aiimage-backend.log.2026-05-12.4:1171:2026-05-12 14:21:03.773 [coze-task-3215] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53213 executeId=7638885308012085274 status=RUNNING +aiimage-backend.log.2026-05-12.4:2239:2026-05-12 14:21:33.641 [coze-task-3226] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.4:2250:2026-05-12 14:21:33.643 [coze-task-3226] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53213 executeId=7638885308012085274 lastPolledAt=2026-05-12T14:21:04 +aiimage-backend.log.2026-05-12.4:2529:2026-05-12 14:21:46.767 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:2530:2026-05-12 14:21:46.772 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:2531:2026-05-12 14:21:46.791 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:2532:2026-05-12 14:21:46.792 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:2534:2026-05-12 14:21:47.042 [coze-task-3234] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=247 +aiimage-backend.log.2026-05-12.4:2624:2026-05-12 14:22:03.643 [coze-task-3243] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.4:2634:2026-05-12 14:22:03.651 [coze-task-3243] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53213 executeId=7638885308012085274 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:2640:2026-05-12 14:22:03.873 [coze-task-3243] INFO c.n.a.m.a.c.AppearancePatentCozeClient - [appearance-patent] coze history response executeId=7638885308012085274 status=200 OK body={"data":[{"token":"0","logid":"2026051214162662F3A773535CDEBC9DB8","node_execute_status":{},"execute_id":"7638885308012085274","update_time":1778566587,"is_output_trimmed":false,"connector_uid":"2939430754097600","debug_url":"https://www.coze.cn/work_flow?execute_id=7638885308012085274&space_id=7519005192466022436&workflow_id=7632683471312355338&execute_mode=2","bot_id":"0","run_mode":2,"output":"{\"node_status\":\"{}\",\"Output\":\"\"}","usage":{"token_count":0,"output_count":0,"input_count":0},"connector_id":"1024","create_time":1778566587,"execute_status":"Running","error_code":""}],"detail":{"logid":"202605121422035A9F40175D253ED1AA21"},"code":0,"msg":""} +aiimage-backend.log.2026-05-12.4:2641:2026-05-12 14:22:03.873 [coze-task-3243] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53213 executeId=7638885308012085274 status=RUNNING +aiimage-backend.log.2026-05-12.4:2775:2026-05-12 14:22:33.645 [coze-task-3251] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.4:2787:2026-05-12 14:22:33.646 [coze-task-3251] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53213 executeId=7638885308012085274 lastPolledAt=2026-05-12T14:22:04 +aiimage-backend.log.2026-05-12.4:2934:2026-05-12 14:23:03.647 [coze-task-3268] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.4:2946:2026-05-12 14:23:03.658 [coze-task-3268] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53213 executeId=7638885308012085274 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:2954:2026-05-12 14:23:03.810 [coze-task-3268] INFO c.n.a.m.a.c.AppearancePatentCozeClient - [appearance-patent] coze history response executeId=7638885308012085274 status=200 OK body={"data":[{"execute_id":"7638885308012085274","connector_uid":"2939430754097600","debug_url":"https://www.coze.cn/work_flow?execute_id=7638885308012085274&space_id=7519005192466022436&workflow_id=7632683471312355338&execute_mode=2","output":"{\"node_status\":\"{}\",\"Output\":\"\"}","usage":{"token_count":0,"output_count":0,"input_count":0},"update_time":1778566587,"token":"0","logid":"2026051214162662F3A773535CDEBC9DB8","bot_id":"0","create_time":1778566587,"node_execute_status":{},"error_code":"","connector_id":"1024","is_output_trimmed":false,"execute_status":"Running","run_mode":2}],"detail":{"logid":"20260512142303F2752B6857A427C79F33"},"code":0,"msg":""} +aiimage-backend.log.2026-05-12.4:2955:2026-05-12 14:23:03.810 [coze-task-3268] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53213 executeId=7638885308012085274 status=RUNNING +aiimage-backend.log.2026-05-12.4:3094:2026-05-12 14:23:33.649 [coze-task-3279] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.4:3107:2026-05-12 14:23:33.651 [coze-task-3279] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53213 executeId=7638885308012085274 lastPolledAt=2026-05-12T14:23:04 +aiimage-backend.log.2026-05-12.4:3254:2026-05-12 14:24:03.650 [coze-task-3297] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.4:3270:2026-05-12 14:24:03.659 [coze-task-3297] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53213 executeId=7638885308012085274 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:3273:2026-05-12 14:24:03.770 [coze-task-3297] INFO c.n.a.m.a.c.AppearancePatentCozeClient - [appearance-patent] coze history response executeId=7638885308012085274 status=200 OK body={"code":0,"msg":"","data":[{"token":"0","execute_status":"Running","update_time":1778566587,"logid":"2026051214162662F3A773535CDEBC9DB8","output":"{\"Output\":\"\",\"node_status\":\"{}\"}","error_code":"","bot_id":"0","connector_id":"1024","connector_uid":"2939430754097600","execute_id":"7638885308012085274","create_time":1778566587,"run_mode":2,"debug_url":"https://www.coze.cn/work_flow?execute_id=7638885308012085274&space_id=7519005192466022436&workflow_id=7632683471312355338&execute_mode=2","node_execute_status":{},"usage":{"token_count":0,"output_count":0,"input_count":0},"is_output_trimmed":false}],"detail":{"logid":"20260512142403F2FA39C10AE910ABAFCF"}} +aiimage-backend.log.2026-05-12.4:3274:2026-05-12 14:24:03.770 [coze-task-3297] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53213 executeId=7638885308012085274 status=RUNNING +aiimage-backend.log.2026-05-12.4:3428:2026-05-12 14:24:33.652 [coze-task-3311] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.4:3446:2026-05-12 14:24:33.653 [coze-task-3311] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53213 executeId=7638885308012085274 lastPolledAt=2026-05-12T14:24:04 +aiimage-backend.log.2026-05-12.4:3615:2026-05-12 14:25:03.653 [coze-task-3328] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.4:3630:2026-05-12 14:25:03.663 [coze-task-3328] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53213 executeId=7638885308012085274 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:3635:2026-05-12 14:25:03.800 [coze-task-3328] INFO c.n.a.m.a.c.AppearancePatentCozeClient - [appearance-patent] coze history response executeId=7638885308012085274 status=200 OK body={"detail":{"logid":"202605121425033B107D547F9911CA7454"},"code":0,"msg":"","data":[{"execute_status":"Running","connector_uid":"2939430754097600","output":"{\"node_status\":\"{}\",\"Output\":\"\"}","node_execute_status":{},"error_code":"","create_time":1778566587,"run_mode":2,"debug_url":"https://www.coze.cn/work_flow?execute_id=7638885308012085274&space_id=7519005192466022436&workflow_id=7632683471312355338&execute_mode=2","bot_id":"0","connector_id":"1024","logid":"2026051214162662F3A773535CDEBC9DB8","usage":{"token_count":0,"output_count":0,"input_count":0},"execute_id":"7638885308012085274","update_time":1778566587,"is_output_trimmed":false,"token":"0"}]} +aiimage-backend.log.2026-05-12.4:3636:2026-05-12 14:25:03.800 [coze-task-3328] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53213 executeId=7638885308012085274 status=RUNNING +aiimage-backend.log.2026-05-12.4:3825:2026-05-12 14:25:33.655 [coze-task-3337] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.4:3836:2026-05-12 14:25:33.656 [coze-task-3337] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53213 executeId=7638885308012085274 lastPolledAt=2026-05-12T14:25:04 +aiimage-backend.log.2026-05-12.4:3981:2026-05-12 14:26:03.657 [coze-task-3351] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.4:3996:2026-05-12 14:26:03.667 [coze-task-3351] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53213 executeId=7638885308012085274 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:3999:2026-05-12 14:26:03.797 [coze-task-3351] INFO c.n.a.m.a.c.AppearancePatentCozeClient - [appearance-patent] coze history response executeId=7638885308012085274 status=200 OK body={"code":0,"msg":"","data":[{"logid":"2026051214162662F3A773535CDEBC9DB8","execute_id":"7638885308012085274","debug_url":"https://www.coze.cn/work_flow?execute_id=7638885308012085274&space_id=7519005192466022436&workflow_id=7632683471312355338&execute_mode=2","output":"{\"node_status\":\"{}\",\"Output\":\"\"}","update_time":1778566587,"token":"0","connector_uid":"2939430754097600","bot_id":"0","connector_id":"1024","create_time":1778566587,"is_output_trimmed":false,"execute_status":"Running","node_execute_status":{},"usage":{"token_count":0,"output_count":0,"input_count":0},"error_code":"","run_mode":2}],"detail":{"logid":"202605121426030E28FF60952041C972B8"}} +aiimage-backend.log.2026-05-12.4:4000:2026-05-12 14:26:03.797 [coze-task-3351] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53213 executeId=7638885308012085274 status=RUNNING +aiimage-backend.log.2026-05-12.4:4127:2026-05-12 14:26:33.658 [coze-task-3358] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.4:4140:2026-05-12 14:26:33.660 [coze-task-3358] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53213 executeId=7638885308012085274 lastPolledAt=2026-05-12T14:26:04 +aiimage-backend.log.2026-05-12.4:4271:2026-05-12 14:27:03.660 [coze-task-3370] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.4:4283:2026-05-12 14:27:03.667 [coze-task-3370] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53213 executeId=7638885308012085274 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:4293:2026-05-12 14:27:03.853 [coze-task-3370] INFO c.n.a.m.a.c.AppearancePatentCozeClient - [appearance-patent] coze history response executeId=7638885308012085274 status=200 OK body={"msg":"","data":[{"connector_uid":"2939430754097600","output":"{\"Output\":\"\",\"node_status\":\"{}\"}","execute_id":"7638885308012085274","bot_id":"0","connector_id":"1024","update_time":1778566587,"token":"0","run_mode":2,"create_time":1778566587,"execute_status":"Running","debug_url":"https://www.coze.cn/work_flow?execute_id=7638885308012085274&space_id=7519005192466022436&workflow_id=7632683471312355338&execute_mode=2","node_execute_status":{},"is_output_trimmed":false,"logid":"2026051214162662F3A773535CDEBC9DB8","usage":{"token_count":0,"output_count":0,"input_count":0},"error_code":""}],"detail":{"logid":"20260512142703504E0A4BCD37CEAF2872"},"code":0} +aiimage-backend.log.2026-05-12.4:4416:2026-05-12 14:27:33.661 [coze-task-3377] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.4:4425:2026-05-12 14:27:33.662 [coze-task-3377] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53213 +aiimage-backend.log.2026-05-12.4:4615:2026-05-12 14:28:03.663 [coze-task-3389] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:4620:2026-05-12 14:28:03.663 [coze-task-3390] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53213 taskId=8095 executeId=7638885308012085274 +aiimage-backend.log.2026-05-12.4:4622:2026-05-12 14:28:03.664 [coze-task-3389] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:4625:2026-05-12 14:28:03.664 [coze-task-3390] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53213 +aiimage-backend.log.2026-05-12.4:4642:2026-05-12 14:28:04.334 [coze-task-3370] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze split retry submitted taskId=8095 stateId=53213 chunk=null batch=1/1 parts=2 retry=1/5 failure=Coze async workflow poll timeout +aiimage-backend.log.2026-05-12.4:4648:2026-05-12 14:28:09.015 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:4649:2026-05-12 14:28:09.022 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:4650:2026-05-12 14:28:09.046 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:4651:2026-05-12 14:28:09.046 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:4654:2026-05-12 14:28:09.295 [coze-task-3396] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=244 +aiimage-backend.log.2026-05-12.4:4768:2026-05-12 14:28:33.664 [coze-task-3400] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:4769:2026-05-12 14:28:33.664 [coze-task-3403] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:4775:2026-05-12 14:28:33.665 [coze-task-3400] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53229 +aiimage-backend.log.2026-05-12.4:4781:2026-05-12 14:28:33.671 [coze-task-3403] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53228 executeId=7638888038387646479 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:4787:2026-05-12 14:28:33.788 [coze-task-3403] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53228 executeId=7638888038387646479 status=RUNNING +aiimage-backend.log.2026-05-12.4:4925:2026-05-12 14:29:03.666 [coze-task-3414] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:4928:2026-05-12 14:29:03.666 [coze-task-3410] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:4935:2026-05-12 14:29:03.668 [coze-task-3410] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:4940:2026-05-12 14:29:03.676 [coze-task-3414] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53229 executeId=7638888176475570227 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:4946:2026-05-12 14:29:03.803 [coze-task-3414] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53229 executeId=7638888176475570227 status=RUNNING +aiimage-backend.log.2026-05-12.4:5076:2026-05-12 14:29:33.667 [coze-task-3421] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:5080:2026-05-12 14:29:33.667 [coze-task-3425] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:5086:2026-05-12 14:29:33.669 [coze-task-3421] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53229 executeId=7638888176475570227 lastPolledAt=2026-05-12T14:29:04 +aiimage-backend.log.2026-05-12.4:5089:2026-05-12 14:29:33.669 [coze-task-3425] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:5257:2026-05-12 14:30:03.669 [coze-task-3434] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:5259:2026-05-12 14:30:03.669 [coze-task-3437] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:5263:2026-05-12 14:30:03.670 [coze-task-3437] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:5269:2026-05-12 14:30:03.679 [coze-task-3434] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53229 executeId=7638888176475570227 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:5276:2026-05-12 14:30:03.789 [coze-task-3434] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53229 executeId=7638888176475570227 status=RUNNING +aiimage-backend.log.2026-05-12.4:5653:2026-05-12 14:30:33.670 [coze-task-3450] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:5659:2026-05-12 14:30:33.670 [coze-task-3445] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:5670:2026-05-12 14:30:33.672 [coze-task-3445] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53229 executeId=7638888176475570227 lastPolledAt=2026-05-12T14:30:04 +aiimage-backend.log.2026-05-12.4:5671:2026-05-12 14:30:33.672 [coze-task-3450] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:6013:2026-05-12 14:31:03.672 [coze-task-3457] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:6020:2026-05-12 14:31:03.672 [coze-task-3461] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:6025:2026-05-12 14:31:03.673 [coze-task-3461] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:6032:2026-05-12 14:31:03.682 [coze-task-3457] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53229 executeId=7638888176475570227 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:6037:2026-05-12 14:31:03.790 [coze-task-3457] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53229 executeId=7638888176475570227 status=RUNNING +aiimage-backend.log.2026-05-12.4:6421:2026-05-12 14:31:33.673 [coze-task-3467] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:6427:2026-05-12 14:31:33.674 [coze-task-3474] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:6434:2026-05-12 14:31:33.674 [coze-task-3467] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53229 executeId=7638888176475570227 lastPolledAt=2026-05-12T14:31:04 +aiimage-backend.log.2026-05-12.4:6436:2026-05-12 14:31:33.675 [coze-task-3474] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:7350:2026-05-12 14:32:03.674 [coze-task-3480] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:7359:2026-05-12 14:32:03.674 [coze-task-3486] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:7364:2026-05-12 14:32:03.676 [coze-task-3486] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:7370:2026-05-12 14:32:03.685 [coze-task-3480] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53229 executeId=7638888176475570227 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:7386:2026-05-12 14:32:03.830 [coze-task-3480] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53229 executeId=7638888176475570227 status=RUNNING +aiimage-backend.log.2026-05-12.4:7508:2026-05-12 14:32:33.676 [coze-task-3499] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:7510:2026-05-12 14:32:33.676 [coze-task-3491] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:7518:2026-05-12 14:32:33.677 [coze-task-3499] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:7523:2026-05-12 14:32:33.677 [coze-task-3491] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53229 executeId=7638888176475570227 lastPolledAt=2026-05-12T14:32:04 +aiimage-backend.log.2026-05-12.4:8038:2026-05-12 14:33:03.678 [coze-task-3505] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:8047:2026-05-12 14:33:03.679 [coze-task-3513] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:8053:2026-05-12 14:33:03.679 [coze-task-3513] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:8057:2026-05-12 14:33:03.688 [coze-task-3505] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53229 executeId=7638888176475570227 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:8061:2026-05-12 14:33:03.805 [coze-task-3505] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53229 executeId=7638888176475570227 status=RUNNING +aiimage-backend.log.2026-05-12.4:8190:2026-05-12 14:33:33.679 [coze-task-3516] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:8200:2026-05-12 14:33:33.680 [coze-task-3527] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:8208:2026-05-12 14:33:33.681 [coze-task-3516] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53229 executeId=7638888176475570227 lastPolledAt=2026-05-12T14:33:04 +aiimage-backend.log.2026-05-12.4:8211:2026-05-12 14:33:33.681 [coze-task-3527] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:8347:2026-05-12 14:34:03.681 [coze-task-3533] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:8348:2026-05-12 14:34:03.681 [coze-task-3542] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:8355:2026-05-12 14:34:03.683 [coze-task-3542] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:8360:2026-05-12 14:34:03.691 [coze-task-3533] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53229 executeId=7638888176475570227 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:8377:2026-05-12 14:34:03.842 [coze-task-3533] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53229 executeId=7638888176475570227 status=RUNNING +aiimage-backend.log.2026-05-12.4:8451:2026-05-12 14:34:25.708 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:8452:2026-05-12 14:34:25.714 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:8453:2026-05-12 14:34:25.735 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:8454:2026-05-12 14:34:25.735 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:8457:2026-05-12 14:34:25.993 [coze-task-3543] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=254 +aiimage-backend.log.2026-05-12.4:8498:2026-05-12 14:34:33.683 [coze-task-3546] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:8508:2026-05-12 14:34:33.683 [coze-task-3557] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:8516:2026-05-12 14:34:33.684 [coze-task-3557] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:8517:2026-05-12 14:34:33.684 [coze-task-3546] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53229 executeId=7638888176475570227 lastPolledAt=2026-05-12T14:34:04 +aiimage-backend.log.2026-05-12.4:8677:2026-05-12 14:35:03.685 [coze-task-3563] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:8681:2026-05-12 14:35:03.685 [coze-task-3572] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:8690:2026-05-12 14:35:03.686 [coze-task-3572] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:8694:2026-05-12 14:35:03.695 [coze-task-3563] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53229 executeId=7638888176475570227 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:8701:2026-05-12 14:35:03.833 [coze-task-3563] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53229 executeId=7638888176475570227 status=RUNNING +aiimage-backend.log.2026-05-12.4:8822:2026-05-12 14:35:33.686 [coze-task-3574] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:8831:2026-05-12 14:35:33.687 [coze-task-3586] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:8835:2026-05-12 14:35:33.688 [coze-task-3574] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53229 executeId=7638888176475570227 lastPolledAt=2026-05-12T14:35:04 +aiimage-backend.log.2026-05-12.4:8840:2026-05-12 14:35:33.688 [coze-task-3586] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:8976:2026-05-12 14:36:03.688 [coze-task-3592] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:8983:2026-05-12 14:36:03.688 [coze-task-3601] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:8991:2026-05-12 14:36:03.690 [coze-task-3601] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:8993:2026-05-12 14:36:03.696 [coze-task-3592] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53229 executeId=7638888176475570227 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:9001:2026-05-12 14:36:03.905 [coze-task-3592] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53229 executeId=7638888176475570227 status=RUNNING +aiimage-backend.log.2026-05-12.4:9124:2026-05-12 14:36:33.690 [coze-task-3603] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:9136:2026-05-12 14:36:33.690 [coze-task-3615] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:9143:2026-05-12 14:36:33.692 [coze-task-3603] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53229 executeId=7638888176475570227 lastPolledAt=2026-05-12T14:36:04 +aiimage-backend.log.2026-05-12.4:9144:2026-05-12 14:36:33.692 [coze-task-3615] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:9405:2026-05-12 14:37:03.691 [coze-task-3621] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:9414:2026-05-12 14:37:03.692 [coze-task-3628] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:9422:2026-05-12 14:37:03.693 [coze-task-3628] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:9423:2026-05-12 14:37:03.699 [coze-task-3621] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53229 executeId=7638888176475570227 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:9435:2026-05-12 14:37:03.841 [coze-task-3621] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53229 executeId=7638888176475570227 status=RUNNING +aiimage-backend.log.2026-05-12.4:9556:2026-05-12 14:37:33.693 [coze-task-3630] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:9557:2026-05-12 14:37:33.693 [coze-task-3641] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:9568:2026-05-12 14:37:33.694 [coze-task-3630] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53229 executeId=7638888176475570227 lastPolledAt=2026-05-12T14:37:04 +aiimage-backend.log.2026-05-12.4:9569:2026-05-12 14:37:33.694 [coze-task-3641] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:9707:2026-05-12 14:38:03.695 [coze-task-3653] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:9708:2026-05-12 14:38:03.695 [coze-task-3645] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:9715:2026-05-12 14:38:03.696 [coze-task-3653] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:9722:2026-05-12 14:38:03.705 [coze-task-3645] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53229 executeId=7638888176475570227 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:9727:2026-05-12 14:38:03.836 [coze-task-3645] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53229 executeId=7638888176475570227 status=RUNNING +aiimage-backend.log.2026-05-12.4:9846:2026-05-12 14:38:33.696 [coze-task-3655] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:9848:2026-05-12 14:38:33.696 [coze-task-3664] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:9856:2026-05-12 14:38:33.697 [coze-task-3664] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:9859:2026-05-12 14:38:33.698 [coze-task-3655] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53229 executeId=7638888176475570227 lastPolledAt=2026-05-12T14:38:04 +aiimage-backend.log.2026-05-12.4:9993:2026-05-12 14:39:03.698 [coze-task-3670] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53229 taskId=8095 executeId=7638888176475570227 +aiimage-backend.log.2026-05-12.4:9998:2026-05-12 14:39:03.698 [coze-task-3676] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:10004:2026-05-12 14:39:03.700 [coze-task-3676] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:10006:2026-05-12 14:39:03.707 [coze-task-3670] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53229 executeId=7638888176475570227 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:10019:2026-05-12 14:39:04.224 [coze-task-3670] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53229 executeId=7638888176475570227 status=DONE batchRows=25 mergedRows=25 failure=- +aiimage-backend.log.2026-05-12.4:10141:2026-05-12 14:39:33.701 [coze-task-3686] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:10147:2026-05-12 14:39:33.708 [coze-task-3686] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53228 executeId=7638888038387646479 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:10313:2026-05-12 14:40:03.702 [coze-task-3688] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:10318:2026-05-12 14:40:03.703 [coze-task-3688] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:10699:2026-05-12 14:40:33.703 [coze-task-3700] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:10706:2026-05-12 14:40:33.704 [coze-task-3700] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:11075:2026-05-12 14:41:03.705 [coze-task-3705] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53251 taskId=8095 executeId=7638891459924246568 +aiimage-backend.log.2026-05-12.4:11078:2026-05-12 14:41:03.705 [coze-task-3711] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53228 taskId=8095 executeId=7638888038387646479 +aiimage-backend.log.2026-05-12.4:11079:2026-05-12 14:41:03.706 [coze-task-3705] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53251 +aiimage-backend.log.2026-05-12.4:11080:2026-05-12 14:41:03.706 [coze-task-3711] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53228 +aiimage-backend.log.2026-05-12.4:11306:2026-05-12 14:41:21.491 [coze-task-3686] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze split retry submitted taskId=8095 stateId=53228 chunk=null batch=1/2 parts=2 retry=2/5 failure=Coze async workflow poll timeout +aiimage-backend.log.2026-05-12.4:11308:2026-05-12 14:41:21.579 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:11309:2026-05-12 14:41:21.584 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:11310:2026-05-12 14:41:21.602 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:11311:2026-05-12 14:41:21.602 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:11316:2026-05-12 14:41:21.849 [coze-task-3714] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=244 +aiimage-backend.log.2026-05-12.4:11317:2026-05-12 14:41:22.003 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] duplicate chunk ignored taskId=8095 scope=8095 chunk=2856 +aiimage-backend.log.2026-05-12.4:11318:2026-05-12 14:41:22.005 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:11319:2026-05-12 14:41:22.008 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:11320:2026-05-12 14:41:22.028 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:11321:2026-05-12 14:41:22.028 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:11350:2026-05-12 14:41:22.492 [coze-task-3715] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=460 +aiimage-backend.log.2026-05-12.4:12238:2026-05-12 14:41:33.707 [coze-task-3716] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53252 taskId=8095 executeId=7638891597505183796 +aiimage-backend.log.2026-05-12.4:12243:2026-05-12 14:41:33.707 [coze-task-3718] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53251 taskId=8095 executeId=7638891459924246568 +aiimage-backend.log.2026-05-12.4:12248:2026-05-12 14:41:33.708 [coze-task-3716] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53252 +aiimage-backend.log.2026-05-12.4:12253:2026-05-12 14:41:33.716 [coze-task-3718] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53251 executeId=7638891459924246568 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:12260:2026-05-12 14:41:33.873 [coze-task-3718] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53251 executeId=7638891459924246568 status=RUNNING +aiimage-backend.log.2026-05-12.4:12370:2026-05-12 14:42:03.709 [coze-task-3727] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53252 taskId=8095 executeId=7638891597505183796 +aiimage-backend.log.2026-05-12.4:12375:2026-05-12 14:42:03.709 [coze-task-3726] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53251 taskId=8095 executeId=7638891459924246568 +aiimage-backend.log.2026-05-12.4:12377:2026-05-12 14:42:03.710 [coze-task-3726] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53251 +aiimage-backend.log.2026-05-12.4:12381:2026-05-12 14:42:03.716 [coze-task-3727] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53252 executeId=7638891597505183796 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:12390:2026-05-12 14:42:03.854 [coze-task-3727] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53252 executeId=7638891597505183796 status=RUNNING +aiimage-backend.log.2026-05-12.4:12506:2026-05-12 14:42:33.710 [coze-task-3735] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53252 taskId=8095 executeId=7638891597505183796 +aiimage-backend.log.2026-05-12.4:12509:2026-05-12 14:42:33.711 [coze-task-3738] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53251 taskId=8095 executeId=7638891459924246568 +aiimage-backend.log.2026-05-12.4:12514:2026-05-12 14:42:33.712 [coze-task-3738] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53251 +aiimage-backend.log.2026-05-12.4:12515:2026-05-12 14:42:33.712 [coze-task-3735] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53252 executeId=7638891597505183796 lastPolledAt=2026-05-12T14:42:04 +aiimage-backend.log.2026-05-12.4:12638:2026-05-12 14:43:03.712 [coze-task-3747] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53251 taskId=8095 executeId=7638891459924246568 +aiimage-backend.log.2026-05-12.4:12642:2026-05-12 14:43:03.712 [coze-task-3745] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53252 taskId=8095 executeId=7638891597505183796 +aiimage-backend.log.2026-05-12.4:12644:2026-05-12 14:43:03.713 [coze-task-3745] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53252 +aiimage-backend.log.2026-05-12.4:12648:2026-05-12 14:43:03.720 [coze-task-3747] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53251 executeId=7638891459924246568 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:12658:2026-05-12 14:43:04.296 [coze-task-3747] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53251 executeId=7638891459924246568 status=DONE batchRows=12 mergedRows=12 failure=- +aiimage-backend.log.2026-05-12.4:12779:2026-05-12 14:43:33.714 [coze-task-3755] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53252 taskId=8095 executeId=7638891597505183796 +aiimage-backend.log.2026-05-12.4:12786:2026-05-12 14:43:33.723 [coze-task-3755] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53252 executeId=7638891597505183796 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:12791:2026-05-12 14:43:33.873 [coze-task-3755] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53252 executeId=7638891597505183796 status=RUNNING +aiimage-backend.log.2026-05-12.4:12911:2026-05-12 14:44:03.716 [coze-task-3757] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53252 taskId=8095 executeId=7638891597505183796 +aiimage-backend.log.2026-05-12.4:12919:2026-05-12 14:44:03.717 [coze-task-3757] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53252 executeId=7638891597505183796 lastPolledAt=2026-05-12T14:43:34 +aiimage-backend.log.2026-05-12.4:13052:2026-05-12 14:44:33.717 [coze-task-3769] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53252 taskId=8095 executeId=7638891597505183796 +aiimage-backend.log.2026-05-12.4:13061:2026-05-12 14:44:33.729 [coze-task-3769] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53252 executeId=7638891597505183796 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:13069:2026-05-12 14:44:34.392 [coze-task-3769] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53252 executeId=7638891597505183796 status=DONE batchRows=13 mergedRows=13 failure=- +aiimage-backend.log.2026-05-12.4:13778:2026-05-12 14:47:25.844 [http-nio-18080-exec-6] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:13779:2026-05-12 14:47:25.849 [http-nio-18080-exec-6] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:13780:2026-05-12 14:47:25.869 [http-nio-18080-exec-6] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:13781:2026-05-12 14:47:25.869 [http-nio-18080-exec-6] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:14096:2026-05-12 14:48:34.709 [coze-task-3808] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/2 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:14234:2026-05-12 14:49:03.733 [coze-task-3833] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:14242:2026-05-12 14:49:03.734 [coze-task-3833] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53261 +aiimage-backend.log.2026-05-12.4:14250:2026-05-12 14:49:04.968 [coze-task-3808] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=2/2 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:14251:2026-05-12 14:49:04.976 [coze-task-3808] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=99104 +aiimage-backend.log.2026-05-12.4:14357:2026-05-12 14:49:33.735 [coze-task-3839] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:14359:2026-05-12 14:49:33.735 [coze-task-3841] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:14366:2026-05-12 14:49:33.736 [coze-task-3841] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53261 +aiimage-backend.log.2026-05-12.4:14369:2026-05-12 14:49:33.744 [coze-task-3839] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53262 executeId=7638893580417957894 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:14374:2026-05-12 14:49:33.875 [coze-task-3839] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53262 executeId=7638893580417957894 status=RUNNING +aiimage-backend.log.2026-05-12.4:14518:2026-05-12 14:50:03.736 [coze-task-3848] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:14521:2026-05-12 14:50:03.736 [coze-task-3850] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:14525:2026-05-12 14:50:03.737 [coze-task-3850] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53261 +aiimage-backend.log.2026-05-12.4:14526:2026-05-12 14:50:03.738 [coze-task-3848] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53262 executeId=7638893580417957894 lastPolledAt=2026-05-12T14:49:34 +aiimage-backend.log.2026-05-12.4:14852:2026-05-12 14:50:33.738 [coze-task-3857] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:14853:2026-05-12 14:50:33.738 [coze-task-3858] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:14857:2026-05-12 14:50:33.739 [coze-task-3857] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53262 +aiimage-backend.log.2026-05-12.4:14862:2026-05-12 14:50:33.748 [coze-task-3858] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53261 executeId=7638893455112732691 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:14868:2026-05-12 14:50:33.895 [coze-task-3858] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53261 executeId=7638893455112732691 status=RUNNING +aiimage-backend.log.2026-05-12.4:15199:2026-05-12 14:51:03.739 [coze-task-3864] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:15204:2026-05-12 14:51:03.739 [coze-task-3867] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:15208:2026-05-12 14:51:03.741 [coze-task-3867] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53262 +aiimage-backend.log.2026-05-12.4:15209:2026-05-12 14:51:03.741 [coze-task-3864] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53261 executeId=7638893455112732691 lastPolledAt=2026-05-12T14:50:34 +aiimage-backend.log.2026-05-12.4:15554:2026-05-12 14:51:33.741 [coze-task-3875] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:15557:2026-05-12 14:51:33.741 [coze-task-3877] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:15560:2026-05-12 14:51:33.742 [coze-task-3877] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53262 +aiimage-backend.log.2026-05-12.4:15565:2026-05-12 14:51:33.750 [coze-task-3875] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53261 executeId=7638893455112732691 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:15570:2026-05-12 14:51:33.969 [coze-task-3875] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53261 executeId=7638893455112732691 status=RUNNING +aiimage-backend.log.2026-05-12.4:15890:2026-05-12 14:52:03.743 [coze-task-3880] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:15891:2026-05-12 14:52:03.743 [coze-task-3886] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:15896:2026-05-12 14:52:03.744 [coze-task-3880] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53261 +aiimage-backend.log.2026-05-12.4:15902:2026-05-12 14:52:03.752 [coze-task-3886] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53262 executeId=7638893580417957894 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:15911:2026-05-12 14:52:03.981 [coze-task-3886] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53262 executeId=7638893580417957894 status=RUNNING +aiimage-backend.log.2026-05-12.4:16256:2026-05-12 14:52:33.745 [coze-task-3889] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:16257:2026-05-12 14:52:33.745 [coze-task-3892] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:16262:2026-05-12 14:52:33.746 [coze-task-3889] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53262 +aiimage-backend.log.2026-05-12.4:16268:2026-05-12 14:52:33.752 [coze-task-3892] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53261 executeId=7638893455112732691 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:16275:2026-05-12 14:52:33.971 [coze-task-3892] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53261 executeId=7638893455112732691 status=RUNNING +aiimage-backend.log.2026-05-12.4:17211:2026-05-12 14:53:03.747 [coze-task-3899] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:17212:2026-05-12 14:53:03.747 [coze-task-3896] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:17218:2026-05-12 14:53:03.748 [coze-task-3896] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53261 +aiimage-backend.log.2026-05-12.4:17220:2026-05-12 14:53:03.754 [coze-task-3899] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53262 executeId=7638893580417957894 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:17234:2026-05-12 14:53:03.946 [coze-task-3899] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53262 executeId=7638893580417957894 status=RUNNING +aiimage-backend.log.2026-05-12.4:17321:2026-05-12 14:53:31.439 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:17322:2026-05-12 14:53:31.444 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:17323:2026-05-12 14:53:31.465 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:17324:2026-05-12 14:53:31.465 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:17327:2026-05-12 14:53:31.753 [coze-task-3903] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=284 +aiimage-backend.log.2026-05-12.4:17356:2026-05-12 14:53:33.749 [coze-task-3910] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:17357:2026-05-12 14:53:33.749 [coze-task-3907] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:17362:2026-05-12 14:53:33.750 [coze-task-3910] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53261 +aiimage-backend.log.2026-05-12.4:17366:2026-05-12 14:53:33.750 [coze-task-3907] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53262 executeId=7638893580417957894 lastPolledAt=2026-05-12T14:53:04 +aiimage-backend.log.2026-05-12.4:17616:2026-05-12 14:54:03.750 [coze-task-3919] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:17617:2026-05-12 14:54:03.750 [coze-task-3917] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:17621:2026-05-12 14:54:03.751 [coze-task-3919] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53261 +aiimage-backend.log.2026-05-12.4:17625:2026-05-12 14:54:03.759 [coze-task-3917] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53262 executeId=7638893580417957894 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:17630:2026-05-12 14:54:03.883 [coze-task-3917] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53262 executeId=7638893580417957894 status=RUNNING +aiimage-backend.log.2026-05-12.4:17753:2026-05-12 14:54:33.752 [coze-task-3929] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:17755:2026-05-12 14:54:33.752 [coze-task-3925] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:17760:2026-05-12 14:54:33.753 [coze-task-3925] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53262 +aiimage-backend.log.2026-05-12.4:17765:2026-05-12 14:54:33.761 [coze-task-3929] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53261 executeId=7638893455112732691 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:17770:2026-05-12 14:54:33.909 [coze-task-3929] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53261 executeId=7638893455112732691 status=RUNNING +aiimage-backend.log.2026-05-12.4:18145:2026-05-12 14:55:03.754 [coze-task-3938] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:18148:2026-05-12 14:55:03.754 [coze-task-3933] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:18156:2026-05-12 14:55:03.755 [coze-task-3933] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53261 +aiimage-backend.log.2026-05-12.4:18160:2026-05-12 14:55:03.763 [coze-task-3938] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53262 executeId=7638893580417957894 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:18172:2026-05-12 14:55:03.987 [coze-task-3938] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53262 executeId=7638893580417957894 status=RUNNING +aiimage-backend.log.2026-05-12.4:18292:2026-05-12 14:55:33.755 [coze-task-3943] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:18293:2026-05-12 14:55:33.755 [coze-task-3948] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:18299:2026-05-12 14:55:33.756 [coze-task-3943] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53262 +aiimage-backend.log.2026-05-12.4:18302:2026-05-12 14:55:33.763 [coze-task-3948] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53261 executeId=7638893455112732691 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:18308:2026-05-12 14:55:33.972 [coze-task-3948] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53261 executeId=7638893455112732691 status=RUNNING +aiimage-backend.log.2026-05-12.4:18435:2026-05-12 14:56:03.756 [coze-task-3956] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:18441:2026-05-12 14:56:03.756 [coze-task-3960] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:18445:2026-05-12 14:56:03.757 [coze-task-3960] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53262 +aiimage-backend.log.2026-05-12.4:18449:2026-05-12 14:56:03.757 [coze-task-3956] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53261 executeId=7638893455112732691 lastPolledAt=2026-05-12T14:55:34 +aiimage-backend.log.2026-05-12.4:18576:2026-05-12 14:56:33.758 [coze-task-3972] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:18579:2026-05-12 14:56:33.758 [coze-task-3969] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:18585:2026-05-12 14:56:33.759 [coze-task-3972] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53262 +aiimage-backend.log.2026-05-12.4:18591:2026-05-12 14:56:33.767 [coze-task-3969] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53261 executeId=7638893455112732691 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:18594:2026-05-12 14:56:33.874 [coze-task-3969] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53261 executeId=7638893455112732691 status=RUNNING +aiimage-backend.log.2026-05-12.4:18837:2026-05-12 14:57:03.759 [coze-task-3975] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:18840:2026-05-12 14:57:03.759 [coze-task-3982] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:18849:2026-05-12 14:57:03.760 [coze-task-3982] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53262 +aiimage-backend.log.2026-05-12.4:18851:2026-05-12 14:57:03.760 [coze-task-3975] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53261 executeId=7638893455112732691 lastPolledAt=2026-05-12T14:56:34 +aiimage-backend.log.2026-05-12.4:18974:2026-05-12 14:57:33.761 [coze-task-3988] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:18976:2026-05-12 14:57:33.761 [coze-task-3992] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:18983:2026-05-12 14:57:33.762 [coze-task-3988] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53261 +aiimage-backend.log.2026-05-12.4:18988:2026-05-12 14:57:33.769 [coze-task-3992] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53262 executeId=7638893580417957894 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:18991:2026-05-12 14:57:33.901 [coze-task-3992] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53262 executeId=7638893580417957894 status=RUNNING +aiimage-backend.log.2026-05-12.4:19104:2026-05-12 14:58:03.763 [coze-task-3995] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:19108:2026-05-12 14:58:03.763 [coze-task-4000] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:19117:2026-05-12 14:58:03.764 [coze-task-4000] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53261 +aiimage-backend.log.2026-05-12.4:19119:2026-05-12 14:58:03.764 [coze-task-3995] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53262 executeId=7638893580417957894 lastPolledAt=2026-05-12T14:57:34 +aiimage-backend.log.2026-05-12.4:19242:2026-05-12 14:58:33.764 [coze-task-4008] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:19245:2026-05-12 14:58:33.764 [coze-task-4011] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:19252:2026-05-12 14:58:33.766 [coze-task-4011] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53261 +aiimage-backend.log.2026-05-12.4:19258:2026-05-12 14:58:33.772 [coze-task-4008] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53262 executeId=7638893580417957894 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:19264:2026-05-12 14:58:33.882 [coze-task-4008] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53262 executeId=7638893580417957894 status=RUNNING +aiimage-backend.log.2026-05-12.4:19375:2026-05-12 14:59:03.766 [coze-task-4016] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:19383:2026-05-12 14:59:03.766 [coze-task-4022] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:19386:2026-05-12 14:59:03.768 [coze-task-4022] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53261 +aiimage-backend.log.2026-05-12.4:19390:2026-05-12 14:59:03.768 [coze-task-4016] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53262 executeId=7638893580417957894 lastPolledAt=2026-05-12T14:58:34 +aiimage-backend.log.2026-05-12.4:19509:2026-05-12 14:59:33.768 [coze-task-4032] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:19517:2026-05-12 14:59:33.768 [coze-task-4028] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:19522:2026-05-12 14:59:33.769 [coze-task-4028] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53262 +aiimage-backend.log.2026-05-12.4:19526:2026-05-12 14:59:33.775 [coze-task-4032] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53261 executeId=7638893455112732691 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:19670:2026-05-12 15:00:03.770 [coze-task-4036] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:19672:2026-05-12 15:00:03.770 [coze-task-4041] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:19680:2026-05-12 15:00:03.771 [coze-task-4036] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53261 +aiimage-backend.log.2026-05-12.4:19682:2026-05-12 15:00:03.771 [coze-task-4041] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53262 +aiimage-backend.log.2026-05-12.4:20024:2026-05-12 15:00:33.771 [coze-task-4051] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53261 taskId=8095 executeId=7638893455112732691 +aiimage-backend.log.2026-05-12.4:20025:2026-05-12 15:00:33.771 [coze-task-4050] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53273 taskId=8095 executeId=7638896417260339206 +aiimage-backend.log.2026-05-12.4:20032:2026-05-12 15:00:33.771 [coze-task-4055] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:20033:2026-05-12 15:00:33.772 [coze-task-4051] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53261 +aiimage-backend.log.2026-05-12.4:20034:2026-05-12 15:00:33.772 [coze-task-4050] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53273 +aiimage-backend.log.2026-05-12.4:20039:2026-05-12 15:00:33.773 [coze-task-4055] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53262 +aiimage-backend.log.2026-05-12.4:20055:2026-05-12 15:00:34.522 [coze-task-4032] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze split retry submitted taskId=8095 stateId=53261 chunk=null batch=1/2 parts=2 retry=1/5 failure=Coze async workflow poll timeout +aiimage-backend.log.2026-05-12.4:20056:2026-05-12 15:00:34.683 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:20057:2026-05-12 15:00:34.688 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:20058:2026-05-12 15:00:34.709 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:20059:2026-05-12 15:00:34.709 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:20064:2026-05-12 15:00:34.919 [coze-task-4058] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=207 +aiimage-backend.log.2026-05-12.4:20065:2026-05-12 15:00:35.116 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] duplicate chunk ignored taskId=8095 scope=8095 chunk=2919 +aiimage-backend.log.2026-05-12.4:20066:2026-05-12 15:00:35.118 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:20067:2026-05-12 15:00:35.121 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:20068:2026-05-12 15:00:35.140 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:20069:2026-05-12 15:00:35.140 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:20076:2026-05-12 15:00:35.362 [coze-task-4059] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=219 +aiimage-backend.log.2026-05-12.4:20388:2026-05-12 15:01:03.773 [coze-task-4061] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53274 taskId=8095 executeId=7638896544385744911 +aiimage-backend.log.2026-05-12.4:20391:2026-05-12 15:01:03.773 [coze-task-4069] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:20394:2026-05-12 15:01:03.773 [coze-task-4067] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53273 taskId=8095 executeId=7638896417260339206 +aiimage-backend.log.2026-05-12.4:20399:2026-05-12 15:01:03.775 [coze-task-4061] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53274 +aiimage-backend.log.2026-05-12.4:20400:2026-05-12 15:01:03.775 [coze-task-4069] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53262 +aiimage-backend.log.2026-05-12.4:20409:2026-05-12 15:01:03.783 [coze-task-4067] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53273 executeId=7638896417260339206 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:20413:2026-05-12 15:01:03.936 [coze-task-4067] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53273 executeId=7638896417260339206 status=RUNNING +aiimage-backend.log.2026-05-12.4:20756:2026-05-12 15:01:33.775 [coze-task-4075] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53273 taskId=8095 executeId=7638896417260339206 +aiimage-backend.log.2026-05-12.4:20757:2026-05-12 15:01:33.775 [coze-task-4081] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:20759:2026-05-12 15:01:33.775 [coze-task-4076] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53274 taskId=8095 executeId=7638896544385744911 +aiimage-backend.log.2026-05-12.4:20762:2026-05-12 15:01:33.776 [coze-task-4075] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53273 +aiimage-backend.log.2026-05-12.4:20767:2026-05-12 15:01:33.777 [coze-task-4076] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53274 +aiimage-backend.log.2026-05-12.4:20771:2026-05-12 15:01:33.784 [coze-task-4081] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53262 executeId=7638893580417957894 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:21855:2026-05-12 15:02:03.777 [coze-task-4085] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:21857:2026-05-12 15:02:03.777 [coze-task-4093] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53274 taskId=8095 executeId=7638896544385744911 +aiimage-backend.log.2026-05-12.4:21864:2026-05-12 15:02:03.777 [coze-task-4092] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53273 taskId=8095 executeId=7638896417260339206 +aiimage-backend.log.2026-05-12.4:21865:2026-05-12 15:02:03.778 [coze-task-4085] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53262 +aiimage-backend.log.2026-05-12.4:21867:2026-05-12 15:02:03.778 [coze-task-4093] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53274 +aiimage-backend.log.2026-05-12.4:21875:2026-05-12 15:02:03.778 [coze-task-4092] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53273 +aiimage-backend.log.2026-05-12.4:22025:2026-05-12 15:02:33.779 [coze-task-4099] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:22027:2026-05-12 15:02:33.779 [coze-task-4107] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53274 taskId=8095 executeId=7638896544385744911 +aiimage-backend.log.2026-05-12.4:22028:2026-05-12 15:02:33.779 [coze-task-4106] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53273 taskId=8095 executeId=7638896417260339206 +aiimage-backend.log.2026-05-12.4:22033:2026-05-12 15:02:33.780 [coze-task-4107] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53274 +aiimage-backend.log.2026-05-12.4:22037:2026-05-12 15:02:33.780 [coze-task-4106] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53273 +aiimage-backend.log.2026-05-12.4:22039:2026-05-12 15:02:33.781 [coze-task-4099] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53262 +aiimage-backend.log.2026-05-12.4:22167:2026-05-12 15:03:03.781 [coze-task-4120] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53273 taskId=8095 executeId=7638896417260339206 +aiimage-backend.log.2026-05-12.4:22169:2026-05-12 15:03:03.781 [coze-task-4121] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53274 taskId=8095 executeId=7638896544385744911 +aiimage-backend.log.2026-05-12.4:22171:2026-05-12 15:03:03.781 [coze-task-4116] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53262 taskId=8095 executeId=7638893580417957894 +aiimage-backend.log.2026-05-12.4:22175:2026-05-12 15:03:03.781 [coze-task-4110] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53278 taskId=8095 executeId=7638897179176157218 +aiimage-backend.log.2026-05-12.4:22176:2026-05-12 15:03:03.782 [coze-task-4121] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53274 +aiimage-backend.log.2026-05-12.4:22178:2026-05-12 15:03:03.782 [coze-task-4120] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53273 +aiimage-backend.log.2026-05-12.4:22179:2026-05-12 15:03:03.782 [coze-task-4116] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53262 +aiimage-backend.log.2026-05-12.4:22183:2026-05-12 15:03:03.782 [coze-task-4110] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53278 +aiimage-backend.log.2026-05-12.4:22276:2026-05-12 15:03:31.556 [coze-task-4081] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze split retry submitted taskId=8095 stateId=53262 chunk=null batch=2/2 parts=2 retry=1/5 failure=Coze async workflow poll timeout +aiimage-backend.log.2026-05-12.4:22305:2026-05-12 15:03:33.783 [coze-task-4124] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53279 taskId=8095 executeId=7638897305106317346 +aiimage-backend.log.2026-05-12.4:22306:2026-05-12 15:03:33.783 [coze-task-4127] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53278 taskId=8095 executeId=7638897179176157218 +aiimage-backend.log.2026-05-12.4:22312:2026-05-12 15:03:33.783 [coze-task-4136] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53274 taskId=8095 executeId=7638896544385744911 +aiimage-backend.log.2026-05-12.4:22318:2026-05-12 15:03:33.783 [coze-task-4135] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53273 taskId=8095 executeId=7638896417260339206 +aiimage-backend.log.2026-05-12.4:22321:2026-05-12 15:03:33.784 [coze-task-4127] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53278 +aiimage-backend.log.2026-05-12.4:22322:2026-05-12 15:03:33.784 [coze-task-4124] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53279 +aiimage-backend.log.2026-05-12.4:22326:2026-05-12 15:03:33.784 [coze-task-4135] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53273 +aiimage-backend.log.2026-05-12.4:22331:2026-05-12 15:03:33.793 [coze-task-4136] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53274 executeId=7638896544385744911 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:22340:2026-05-12 15:03:33.924 [coze-task-4136] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53274 executeId=7638896544385744911 status=RUNNING +aiimage-backend.log.2026-05-12.4:22451:2026-05-12 15:04:03.785 [coze-task-4141] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53274 taskId=8095 executeId=7638896544385744911 +aiimage-backend.log.2026-05-12.4:22452:2026-05-12 15:04:03.785 [coze-task-4143] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53279 taskId=8095 executeId=7638897305106317346 +aiimage-backend.log.2026-05-12.4:22456:2026-05-12 15:04:03.785 [coze-task-4146] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53278 taskId=8095 executeId=7638897179176157218 +aiimage-backend.log.2026-05-12.4:22462:2026-05-12 15:04:03.786 [coze-task-4151] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53273 taskId=8095 executeId=7638896417260339206 +aiimage-backend.log.2026-05-12.4:22465:2026-05-12 15:04:03.786 [coze-task-4143] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53279 +aiimage-backend.log.2026-05-12.4:22466:2026-05-12 15:04:03.786 [coze-task-4141] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53274 +aiimage-backend.log.2026-05-12.4:22469:2026-05-12 15:04:03.787 [coze-task-4151] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53273 +aiimage-backend.log.2026-05-12.4:22474:2026-05-12 15:04:03.792 [coze-task-4146] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53278 executeId=7638897179176157218 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:22481:2026-05-12 15:04:03.918 [coze-task-4146] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53278 executeId=7638897179176157218 status=RUNNING +aiimage-backend.log.2026-05-12.4:22596:2026-05-12 15:04:33.787 [coze-task-4154] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53278 taskId=8095 executeId=7638897179176157218 +aiimage-backend.log.2026-05-12.4:22604:2026-05-12 15:04:33.787 [coze-task-4158] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53274 taskId=8095 executeId=7638896544385744911 +aiimage-backend.log.2026-05-12.4:22605:2026-05-12 15:04:33.787 [coze-task-4160] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53279 taskId=8095 executeId=7638897305106317346 +aiimage-backend.log.2026-05-12.4:22608:2026-05-12 15:04:33.787 [coze-task-4165] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53273 taskId=8095 executeId=7638896417260339206 +aiimage-backend.log.2026-05-12.4:22612:2026-05-12 15:04:33.789 [coze-task-4160] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53279 +aiimage-backend.log.2026-05-12.4:22613:2026-05-12 15:04:33.789 [coze-task-4158] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53274 +aiimage-backend.log.2026-05-12.4:22614:2026-05-12 15:04:33.789 [coze-task-4165] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53273 +aiimage-backend.log.2026-05-12.4:22617:2026-05-12 15:04:33.789 [coze-task-4154] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53278 executeId=7638897179176157218 lastPolledAt=2026-05-12T15:04:04 +aiimage-backend.log.2026-05-12.4:22747:2026-05-12 15:05:03.789 [coze-task-4177] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53279 taskId=8095 executeId=7638897305106317346 +aiimage-backend.log.2026-05-12.4:22748:2026-05-12 15:05:03.789 [coze-task-4180] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53273 taskId=8095 executeId=7638896417260339206 +aiimage-backend.log.2026-05-12.4:22756:2026-05-12 15:05:03.789 [coze-task-4172] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53278 taskId=8095 executeId=7638897179176157218 +aiimage-backend.log.2026-05-12.4:22759:2026-05-12 15:05:03.789 [coze-task-4175] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53274 taskId=8095 executeId=7638896544385744911 +aiimage-backend.log.2026-05-12.4:22760:2026-05-12 15:05:03.790 [coze-task-4177] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53279 +aiimage-backend.log.2026-05-12.4:22766:2026-05-12 15:05:03.791 [coze-task-4175] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53274 +aiimage-backend.log.2026-05-12.4:22768:2026-05-12 15:05:03.791 [coze-task-4172] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53278 +aiimage-backend.log.2026-05-12.4:22772:2026-05-12 15:05:03.798 [coze-task-4180] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53273 executeId=7638896417260339206 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:22776:2026-05-12 15:05:03.939 [coze-task-4180] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53273 executeId=7638896417260339206 status=RUNNING +aiimage-backend.log.2026-05-12.4:22914:2026-05-12 15:05:33.791 [coze-task-4181] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53273 taskId=8095 executeId=7638896417260339206 +aiimage-backend.log.2026-05-12.4:22922:2026-05-12 15:05:33.791 [coze-task-4189] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53278 taskId=8095 executeId=7638897179176157218 +aiimage-backend.log.2026-05-12.4:22924:2026-05-12 15:05:33.791 [coze-task-4191] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53274 taskId=8095 executeId=7638896544385744911 +aiimage-backend.log.2026-05-12.4:22926:2026-05-12 15:05:33.791 [coze-task-4193] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53279 taskId=8095 executeId=7638897305106317346 +aiimage-backend.log.2026-05-12.4:22930:2026-05-12 15:05:33.792 [coze-task-4189] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53278 +aiimage-backend.log.2026-05-12.4:22932:2026-05-12 15:05:33.792 [coze-task-4193] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53279 +aiimage-backend.log.2026-05-12.4:22936:2026-05-12 15:05:33.792 [coze-task-4191] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53274 +aiimage-backend.log.2026-05-12.4:22938:2026-05-12 15:05:33.792 [coze-task-4181] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53273 executeId=7638896417260339206 lastPolledAt=2026-05-12T15:05:04 +aiimage-backend.log.2026-05-12.4:23064:2026-05-12 15:06:03.792 [coze-task-4197] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53273 taskId=8095 executeId=7638896417260339206 +aiimage-backend.log.2026-05-12.4:23069:2026-05-12 15:06:03.792 [coze-task-4202] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53278 taskId=8095 executeId=7638897179176157218 +aiimage-backend.log.2026-05-12.4:23071:2026-05-12 15:06:03.793 [coze-task-4204] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53274 taskId=8095 executeId=7638896544385744911 +aiimage-backend.log.2026-05-12.4:23072:2026-05-12 15:06:03.793 [coze-task-4206] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53279 taskId=8095 executeId=7638897305106317346 +aiimage-backend.log.2026-05-12.4:23077:2026-05-12 15:06:03.794 [coze-task-4202] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53278 +aiimage-backend.log.2026-05-12.4:23078:2026-05-12 15:06:03.794 [coze-task-4204] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53274 +aiimage-backend.log.2026-05-12.4:23079:2026-05-12 15:06:03.794 [coze-task-4206] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53279 +aiimage-backend.log.2026-05-12.4:23086:2026-05-12 15:06:03.802 [coze-task-4197] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53273 executeId=7638896417260339206 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:23100:2026-05-12 15:06:04.249 [coze-task-4197] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53273 executeId=7638896417260339206 status=DONE batchRows=25 mergedRows=25 failure=- +aiimage-backend.log.2026-05-12.4:23221:2026-05-12 15:06:33.795 [coze-task-4215] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53274 taskId=8095 executeId=7638896544385744911 +aiimage-backend.log.2026-05-12.4:23223:2026-05-12 15:06:33.795 [coze-task-4217] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53279 taskId=8095 executeId=7638897305106317346 +aiimage-backend.log.2026-05-12.4:23225:2026-05-12 15:06:33.795 [coze-task-4214] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53278 taskId=8095 executeId=7638897179176157218 +aiimage-backend.log.2026-05-12.4:23228:2026-05-12 15:06:33.796 [coze-task-4217] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53279 +aiimage-backend.log.2026-05-12.4:23231:2026-05-12 15:06:33.796 [coze-task-4214] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53278 +aiimage-backend.log.2026-05-12.4:23234:2026-05-12 15:06:33.802 [coze-task-4215] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53274 executeId=7638896544385744911 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:23240:2026-05-12 15:06:35.393 [coze-task-4215] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53274 executeId=7638896544385744911 status=DONE batchRows=25 mergedRows=25 failure=- +aiimage-backend.log.2026-05-12.4:23279:2026-05-12 15:06:51.137 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:23280:2026-05-12 15:06:51.142 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:23281:2026-05-12 15:06:51.162 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:23282:2026-05-12 15:06:51.162 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:23284:2026-05-12 15:06:51.450 [coze-task-4220] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=284 +aiimage-backend.log.2026-05-12.4:23357:2026-05-12 15:07:03.796 [coze-task-4224] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53278 taskId=8095 executeId=7638897179176157218 +aiimage-backend.log.2026-05-12.4:23361:2026-05-12 15:07:03.796 [coze-task-4226] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53279 taskId=8095 executeId=7638897305106317346 +aiimage-backend.log.2026-05-12.4:23363:2026-05-12 15:07:03.798 [coze-task-4226] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53279 +aiimage-backend.log.2026-05-12.4:23367:2026-05-12 15:07:03.805 [coze-task-4224] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53278 executeId=7638897179176157218 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:23378:2026-05-12 15:07:04.868 [coze-task-4224] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53278 executeId=7638897179176157218 status=DONE batchRows=25 mergedRows=25 failure=- +aiimage-backend.log.2026-05-12.4:23490:2026-05-12 15:07:33.798 [coze-task-4233] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53279 taskId=8095 executeId=7638897305106317346 +aiimage-backend.log.2026-05-12.4:23498:2026-05-12 15:07:33.805 [coze-task-4233] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53279 executeId=7638897305106317346 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:23503:2026-05-12 15:07:35.104 [coze-task-4233] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53279 executeId=7638897305106317346 status=DONE batchRows=25 mergedRows=25 failure=- +aiimage-backend.log.2026-05-12.4:26280:2026-05-12 15:13:05.580 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:26281:2026-05-12 15:13:05.585 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:26282:2026-05-12 15:13:05.611 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:26283:2026-05-12 15:13:05.611 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:26472:2026-05-12 15:14:01.858 [coze-task-4260] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/2 executeId=7638900007257931811 +aiimage-backend.log.2026-05-12.4:26499:2026-05-12 15:14:03.819 [coze-task-4264] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53289 taskId=8095 executeId=7638900007257931811 +aiimage-backend.log.2026-05-12.4:26502:2026-05-12 15:14:03.820 [coze-task-4264] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53289 +aiimage-backend.log.2026-05-12.4:26584:2026-05-12 15:14:32.122 [coze-task-4260] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=2/2 executeId=7638900142922153990 +aiimage-backend.log.2026-05-12.4:26585:2026-05-12 15:14:32.129 [coze-task-4260] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=86514 +aiimage-backend.log.2026-05-12.4:26610:2026-05-12 15:14:33.821 [coze-task-4267] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53290 taskId=8095 executeId=7638900142922153990 +aiimage-backend.log.2026-05-12.4:26611:2026-05-12 15:14:33.821 [coze-task-4268] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53289 taskId=8095 executeId=7638900007257931811 +aiimage-backend.log.2026-05-12.4:26613:2026-05-12 15:14:33.822 [coze-task-4267] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53290 +aiimage-backend.log.2026-05-12.4:26614:2026-05-12 15:14:33.827 [coze-task-4268] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53289 executeId=7638900007257931811 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:26617:2026-05-12 15:14:33.970 [coze-task-4268] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53289 executeId=7638900007257931811 status=RUNNING +aiimage-backend.log.2026-05-12.4:26721:2026-05-12 15:15:03.822 [coze-task-4270] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53289 taskId=8095 executeId=7638900007257931811 +aiimage-backend.log.2026-05-12.4:26722:2026-05-12 15:15:03.822 [coze-task-4271] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53290 taskId=8095 executeId=7638900142922153990 +aiimage-backend.log.2026-05-12.4:26723:2026-05-12 15:15:03.824 [coze-task-4270] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53289 +aiimage-backend.log.2026-05-12.4:26724:2026-05-12 15:15:03.830 [coze-task-4271] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53290 executeId=7638900142922153990 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:26726:2026-05-12 15:15:03.987 [coze-task-4271] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53290 executeId=7638900142922153990 status=RUNNING +aiimage-backend.log.2026-05-12.4:26834:2026-05-12 15:15:33.824 [coze-task-4273] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53290 taskId=8095 executeId=7638900142922153990 +aiimage-backend.log.2026-05-12.4:26835:2026-05-12 15:15:33.824 [coze-task-4274] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53289 taskId=8095 executeId=7638900007257931811 +aiimage-backend.log.2026-05-12.4:26836:2026-05-12 15:15:33.825 [coze-task-4273] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53290 +aiimage-backend.log.2026-05-12.4:26837:2026-05-12 15:15:33.831 [coze-task-4274] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53289 executeId=7638900007257931811 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:26840:2026-05-12 15:15:34.340 [coze-task-4274] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53289 executeId=7638900007257931811 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.4:26944:2026-05-12 15:16:03.825 [coze-task-4276] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53290 taskId=8095 executeId=7638900142922153990 +aiimage-backend.log.2026-05-12.4:26945:2026-05-12 15:16:03.833 [coze-task-4276] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53290 executeId=7638900142922153990 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:26951:2026-05-12 15:16:04.566 [coze-task-4276] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53290 executeId=7638900142922153990 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.4:27931:2026-05-12 15:19:35.393 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:27932:2026-05-12 15:19:35.398 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:27933:2026-05-12 15:19:35.417 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:27934:2026-05-12 15:19:35.418 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:27940:2026-05-12 15:19:36.979 [coze-task-4281] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=27 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.4:27941:2026-05-12 15:19:36.990 [coze-task-4281] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=1569 +aiimage-backend.log.2026-05-12.4:30817:2026-05-12 15:26:09.974 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:30818:2026-05-12 15:26:09.979 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:30819:2026-05-12 15:26:09.998 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:30820:2026-05-12 15:26:09.998 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:30823:2026-05-12 15:26:11.283 [coze-task-4293] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=48 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.4:30824:2026-05-12 15:26:11.294 [coze-task-4293] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=1293 +aiimage-backend.log.2026-05-12.4:34234:2026-05-12 15:32:43.061 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:34235:2026-05-12 15:32:43.066 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:34236:2026-05-12 15:32:43.086 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:34237:2026-05-12 15:32:43.086 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:35140:2026-05-12 15:33:14.911 [coze-task-4304] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638904966128320554 +aiimage-backend.log.2026-05-12.4:35141:2026-05-12 15:33:14.921 [coze-task-4304] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=31832 +aiimage-backend.log.2026-05-12.4:35212:2026-05-12 15:33:33.882 [coze-task-4306] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53294 taskId=8095 executeId=7638904966128320554 +aiimage-backend.log.2026-05-12.4:35213:2026-05-12 15:33:33.889 [coze-task-4306] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53294 executeId=7638904966128320554 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:35215:2026-05-12 15:33:34.105 [coze-task-4306] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53294 executeId=7638904966128320554 status=RUNNING +aiimage-backend.log.2026-05-12.4:35319:2026-05-12 15:34:03.884 [coze-task-4307] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53294 taskId=8095 executeId=7638904966128320554 +aiimage-backend.log.2026-05-12.4:35320:2026-05-12 15:34:03.885 [coze-task-4307] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53294 executeId=7638904966128320554 lastPolledAt=2026-05-12T15:33:34 +aiimage-backend.log.2026-05-12.4:35422:2026-05-12 15:34:33.885 [coze-task-4308] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53294 taskId=8095 executeId=7638904966128320554 +aiimage-backend.log.2026-05-12.4:35423:2026-05-12 15:34:33.893 [coze-task-4308] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53294 executeId=7638904966128320554 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:35426:2026-05-12 15:34:34.440 [coze-task-4308] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53294 executeId=7638904966128320554 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.4:36499:2026-05-12 15:39:04.724 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:36500:2026-05-12 15:39:04.731 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:36501:2026-05-12 15:39:04.755 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:36502:2026-05-12 15:39:04.755 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:36506:2026-05-12 15:39:06.357 [coze-task-4312] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=40 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.4:36507:2026-05-12 15:39:06.367 [coze-task-4312] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=1609 +aiimage-backend.log.2026-05-12.4:39443:2026-05-12 15:45:24.155 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:39444:2026-05-12 15:45:24.160 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:39445:2026-05-12 15:45:24.179 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:39446:2026-05-12 15:45:24.179 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:39566:2026-05-12 15:45:55.991 [coze-task-4317] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:39567:2026-05-12 15:45:56.000 [coze-task-4317] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=31817 +aiimage-backend.log.2026-05-12.4:39609:2026-05-12 15:46:03.919 [coze-task-4318] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:39610:2026-05-12 15:46:03.926 [coze-task-4318] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53298 executeId=7638908231767883786 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:39612:2026-05-12 15:46:04.065 [coze-task-4318] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53298 executeId=7638908231767883786 status=RUNNING +aiimage-backend.log.2026-05-12.4:39723:2026-05-12 15:46:33.921 [coze-task-4319] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:39724:2026-05-12 15:46:33.922 [coze-task-4319] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53298 executeId=7638908231767883786 lastPolledAt=2026-05-12T15:46:04 +aiimage-backend.log.2026-05-12.4:39835:2026-05-12 15:47:03.922 [coze-task-4320] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:39836:2026-05-12 15:47:03.929 [coze-task-4320] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53298 executeId=7638908231767883786 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:39838:2026-05-12 15:47:04.080 [coze-task-4320] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53298 executeId=7638908231767883786 status=RUNNING +aiimage-backend.log.2026-05-12.4:39955:2026-05-12 15:47:33.923 [coze-task-4321] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:39956:2026-05-12 15:47:33.925 [coze-task-4321] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53298 executeId=7638908231767883786 lastPolledAt=2026-05-12T15:47:04 +aiimage-backend.log.2026-05-12.4:40066:2026-05-12 15:48:03.925 [coze-task-4322] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:40067:2026-05-12 15:48:03.931 [coze-task-4322] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53298 executeId=7638908231767883786 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:40069:2026-05-12 15:48:04.068 [coze-task-4322] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53298 executeId=7638908231767883786 status=RUNNING +aiimage-backend.log.2026-05-12.4:40185:2026-05-12 15:48:33.926 [coze-task-4324] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:40186:2026-05-12 15:48:33.928 [coze-task-4324] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53298 executeId=7638908231767883786 lastPolledAt=2026-05-12T15:48:04 +aiimage-backend.log.2026-05-12.4:40296:2026-05-12 15:49:03.928 [coze-task-4326] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:40298:2026-05-12 15:49:03.936 [coze-task-4326] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53298 executeId=7638908231767883786 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:40304:2026-05-12 15:49:04.083 [coze-task-4326] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53298 executeId=7638908231767883786 status=RUNNING +aiimage-backend.log.2026-05-12.4:40430:2026-05-12 15:49:33.929 [coze-task-4328] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:40432:2026-05-12 15:49:33.931 [coze-task-4328] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53298 executeId=7638908231767883786 lastPolledAt=2026-05-12T15:49:04 +aiimage-backend.log.2026-05-12.4:40577:2026-05-12 15:50:03.931 [coze-task-4330] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:40579:2026-05-12 15:50:03.938 [coze-task-4330] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53298 executeId=7638908231767883786 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:40582:2026-05-12 15:50:04.075 [coze-task-4330] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53298 executeId=7638908231767883786 status=RUNNING +aiimage-backend.log.2026-05-12.4:40940:2026-05-12 15:50:33.933 [coze-task-4332] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:40943:2026-05-12 15:50:33.935 [coze-task-4332] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53298 executeId=7638908231767883786 lastPolledAt=2026-05-12T15:50:04 +aiimage-backend.log.2026-05-12.4:41292:2026-05-12 15:51:03.934 [coze-task-4335] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:41294:2026-05-12 15:51:03.941 [coze-task-4335] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53298 executeId=7638908231767883786 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:41297:2026-05-12 15:51:04.078 [coze-task-4335] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53298 executeId=7638908231767883786 status=RUNNING +aiimage-backend.log.2026-05-12.4:42121:2026-05-12 15:51:33.935 [coze-task-4337] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:42124:2026-05-12 15:51:33.937 [coze-task-4337] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53298 executeId=7638908231767883786 lastPolledAt=2026-05-12T15:51:04 +aiimage-backend.log.2026-05-12.4:42437:2026-05-12 15:51:41.969 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:42438:2026-05-12 15:51:41.974 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:42439:2026-05-12 15:51:41.993 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:42440:2026-05-12 15:51:41.993 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:42442:2026-05-12 15:51:42.318 [coze-task-4339] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=321 +aiimage-backend.log.2026-05-12.4:42552:2026-05-12 15:52:03.937 [coze-task-4340] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:42553:2026-05-12 15:52:03.944 [coze-task-4340] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53298 executeId=7638908231767883786 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:42560:2026-05-12 15:52:04.116 [coze-task-4340] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53298 executeId=7638908231767883786 status=RUNNING +aiimage-backend.log.2026-05-12.4:42686:2026-05-12 15:52:33.939 [coze-task-4343] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:42687:2026-05-12 15:52:33.940 [coze-task-4343] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53298 executeId=7638908231767883786 lastPolledAt=2026-05-12T15:52:04 +aiimage-backend.log.2026-05-12.4:42806:2026-05-12 15:53:03.941 [coze-task-4345] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:42807:2026-05-12 15:53:03.948 [coze-task-4345] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53298 executeId=7638908231767883786 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:42810:2026-05-12 15:53:04.075 [coze-task-4345] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53298 executeId=7638908231767883786 status=RUNNING +aiimage-backend.log.2026-05-12.4:42942:2026-05-12 15:53:33.942 [coze-task-4347] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:42944:2026-05-12 15:53:33.944 [coze-task-4347] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53298 executeId=7638908231767883786 lastPolledAt=2026-05-12T15:53:04 +aiimage-backend.log.2026-05-12.4:43063:2026-05-12 15:54:03.944 [coze-task-4349] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:43066:2026-05-12 15:54:03.952 [coze-task-4349] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53298 executeId=7638908231767883786 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:43069:2026-05-12 15:54:04.111 [coze-task-4349] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53298 executeId=7638908231767883786 status=RUNNING +aiimage-backend.log.2026-05-12.4:43214:2026-05-12 15:54:33.946 [coze-task-4354] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:43216:2026-05-12 15:54:33.948 [coze-task-4354] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53298 executeId=7638908231767883786 lastPolledAt=2026-05-12T15:54:04 +aiimage-backend.log.2026-05-12.4:43337:2026-05-12 15:55:03.948 [coze-task-4356] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:43338:2026-05-12 15:55:03.955 [coze-task-4356] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53298 executeId=7638908231767883786 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:43341:2026-05-12 15:55:04.189 [coze-task-4356] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53298 executeId=7638908231767883786 status=RUNNING +aiimage-backend.log.2026-05-12.4:43472:2026-05-12 15:55:33.949 [coze-task-4358] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:43475:2026-05-12 15:55:33.951 [coze-task-4358] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53298 executeId=7638908231767883786 lastPolledAt=2026-05-12T15:55:04 +aiimage-backend.log.2026-05-12.4:43638:2026-05-12 15:56:03.951 [coze-task-4362] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:43641:2026-05-12 15:56:03.959 [coze-task-4362] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53298 executeId=7638908231767883786 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:43773:2026-05-12 15:56:33.953 [coze-task-4364] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:43774:2026-05-12 15:56:33.954 [coze-task-4364] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53298 +aiimage-backend.log.2026-05-12.4:43943:2026-05-12 15:57:03.954 [coze-task-4367] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:43945:2026-05-12 15:57:03.954 [coze-task-4368] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53298 taskId=8095 executeId=7638908231767883786 +aiimage-backend.log.2026-05-12.4:43946:2026-05-12 15:57:03.956 [coze-task-4368] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53298 +aiimage-backend.log.2026-05-12.4:43947:2026-05-12 15:57:03.956 [coze-task-4367] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53310 +aiimage-backend.log.2026-05-12.4:43951:2026-05-12 15:57:04.613 [coze-task-4362] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze split retry submitted taskId=8095 stateId=53298 chunk=null batch=1/1 parts=2 retry=1/5 failure=Coze async workflow poll timeout +aiimage-backend.log.2026-05-12.4:44076:2026-05-12 15:57:33.956 [coze-task-4370] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:44078:2026-05-12 15:57:33.956 [coze-task-4372] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:44079:2026-05-12 15:57:33.957 [coze-task-4372] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53310 +aiimage-backend.log.2026-05-12.4:44081:2026-05-12 15:57:33.962 [coze-task-4370] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53313 executeId=7638911109181325346 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:44084:2026-05-12 15:57:34.094 [coze-task-4370] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53313 executeId=7638911109181325346 status=RUNNING +aiimage-backend.log.2026-05-12.4:44179:2026-05-12 15:58:00.453 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:44180:2026-05-12 15:58:00.458 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:44181:2026-05-12 15:58:00.476 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:44182:2026-05-12 15:58:00.476 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:44184:2026-05-12 15:58:00.693 [coze-task-4373] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=213 +aiimage-backend.log.2026-05-12.4:44213:2026-05-12 15:58:03.958 [coze-task-4374] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:44214:2026-05-12 15:58:03.958 [coze-task-4376] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:44215:2026-05-12 15:58:03.959 [coze-task-4376] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53310 +aiimage-backend.log.2026-05-12.4:44216:2026-05-12 15:58:03.959 [coze-task-4374] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53313 executeId=7638911109181325346 lastPolledAt=2026-05-12T15:57:34 +aiimage-backend.log.2026-05-12.4:44347:2026-05-12 15:58:33.959 [coze-task-4378] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:44348:2026-05-12 15:58:33.959 [coze-task-4379] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:44349:2026-05-12 15:58:33.960 [coze-task-4378] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:44351:2026-05-12 15:58:33.966 [coze-task-4379] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53310 executeId=7638910982386958363 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:44353:2026-05-12 15:58:34.105 [coze-task-4379] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53310 executeId=7638910982386958363 status=RUNNING +aiimage-backend.log.2026-05-12.4:44493:2026-05-12 15:59:03.961 [coze-task-4382] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:44495:2026-05-12 15:59:03.961 [coze-task-4384] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:44496:2026-05-12 15:59:03.962 [coze-task-4384] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:44497:2026-05-12 15:59:03.962 [coze-task-4382] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53310 executeId=7638910982386958363 lastPolledAt=2026-05-12T15:58:34 +aiimage-backend.log.2026-05-12.4:44626:2026-05-12 15:59:33.962 [coze-task-4386] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:44627:2026-05-12 15:59:33.962 [coze-task-4387] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:44629:2026-05-12 15:59:33.964 [coze-task-4386] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53310 +aiimage-backend.log.2026-05-12.4:44630:2026-05-12 15:59:33.969 [coze-task-4387] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53313 executeId=7638911109181325346 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:44632:2026-05-12 15:59:34.205 [coze-task-4387] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53313 executeId=7638911109181325346 status=RUNNING +aiimage-backend.log.2026-05-12.4:44794:2026-05-12 16:00:03.964 [coze-task-4389] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:44796:2026-05-12 16:00:03.964 [coze-task-4392] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:44799:2026-05-12 16:00:03.965 [coze-task-4392] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53310 +aiimage-backend.log.2026-05-12.4:44801:2026-05-12 16:00:03.965 [coze-task-4389] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53313 executeId=7638911109181325346 lastPolledAt=2026-05-12T15:59:34 +aiimage-backend.log.2026-05-12.4:45168:2026-05-12 16:00:33.965 [coze-task-4394] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:45169:2026-05-12 16:00:33.965 [coze-task-4396] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:45171:2026-05-12 16:00:33.966 [coze-task-4394] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:45173:2026-05-12 16:00:33.972 [coze-task-4396] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53310 executeId=7638910982386958363 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:45180:2026-05-12 16:00:34.115 [coze-task-4396] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53310 executeId=7638910982386958363 status=RUNNING +aiimage-backend.log.2026-05-12.4:45548:2026-05-12 16:01:03.966 [coze-task-4399] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:45551:2026-05-12 16:01:03.966 [coze-task-4402] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:45552:2026-05-12 16:01:03.967 [coze-task-4402] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:45553:2026-05-12 16:01:03.967 [coze-task-4399] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53310 executeId=7638910982386958363 lastPolledAt=2026-05-12T16:00:34 +aiimage-backend.log.2026-05-12.4:45928:2026-05-12 16:01:33.967 [coze-task-4404] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:45929:2026-05-12 16:01:33.967 [coze-task-4406] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:45933:2026-05-12 16:01:33.968 [coze-task-4404] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53310 +aiimage-backend.log.2026-05-12.4:45934:2026-05-12 16:01:33.974 [coze-task-4406] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53313 executeId=7638911109181325346 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:45979:2026-05-12 16:01:34.125 [coze-task-4406] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53313 executeId=7638911109181325346 status=RUNNING +aiimage-backend.log.2026-05-12.4:46860:2026-05-12 16:02:03.969 [coze-task-4410] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:46863:2026-05-12 16:02:03.969 [coze-task-4412] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:46864:2026-05-12 16:02:03.970 [coze-task-4410] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:46867:2026-05-12 16:02:03.976 [coze-task-4412] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53310 executeId=7638910982386958363 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:46869:2026-05-12 16:02:04.119 [coze-task-4412] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53310 executeId=7638910982386958363 status=RUNNING +aiimage-backend.log.2026-05-12.4:46995:2026-05-12 16:02:33.970 [coze-task-4416] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:46996:2026-05-12 16:02:33.970 [coze-task-4414] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:46998:2026-05-12 16:02:33.971 [coze-task-4414] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53310 +aiimage-backend.log.2026-05-12.4:47001:2026-05-12 16:02:33.977 [coze-task-4416] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53313 executeId=7638911109181325346 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:47003:2026-05-12 16:02:34.092 [coze-task-4416] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53313 executeId=7638911109181325346 status=RUNNING +aiimage-backend.log.2026-05-12.4:47134:2026-05-12 16:03:03.972 [coze-task-4419] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:47135:2026-05-12 16:03:03.972 [coze-task-4420] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:47139:2026-05-12 16:03:03.973 [coze-task-4420] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53310 +aiimage-backend.log.2026-05-12.4:47140:2026-05-12 16:03:03.974 [coze-task-4419] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53313 executeId=7638911109181325346 lastPolledAt=2026-05-12T16:02:34 +aiimage-backend.log.2026-05-12.4:47316:2026-05-12 16:03:33.973 [coze-task-4428] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:47318:2026-05-12 16:03:33.973 [coze-task-4429] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:47322:2026-05-12 16:03:33.975 [coze-task-4429] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53310 +aiimage-backend.log.2026-05-12.4:47324:2026-05-12 16:03:33.982 [coze-task-4428] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53313 executeId=7638911109181325346 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:47328:2026-05-12 16:03:34.168 [coze-task-4428] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53313 executeId=7638911109181325346 status=RUNNING +aiimage-backend.log.2026-05-12.4:47490:2026-05-12 16:04:03.975 [coze-task-4432] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:47491:2026-05-12 16:04:03.975 [coze-task-4435] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:47495:2026-05-12 16:04:03.976 [coze-task-4435] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53310 +aiimage-backend.log.2026-05-12.4:47496:2026-05-12 16:04:03.976 [coze-task-4432] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53313 executeId=7638911109181325346 lastPolledAt=2026-05-12T16:03:34 +aiimage-backend.log.2026-05-12.4:47559:2026-05-12 16:04:21.225 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:47560:2026-05-12 16:04:21.230 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:47561:2026-05-12 16:04:21.250 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:47562:2026-05-12 16:04:21.250 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:47565:2026-05-12 16:04:21.780 [coze-task-4437] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=527 +aiimage-backend.log.2026-05-12.4:47649:2026-05-12 16:04:33.977 [coze-task-4442] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:47651:2026-05-12 16:04:33.977 [coze-task-4440] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:47654:2026-05-12 16:04:33.978 [coze-task-4440] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:47658:2026-05-12 16:04:33.986 [coze-task-4442] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53310 executeId=7638910982386958363 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:47662:2026-05-12 16:04:34.145 [coze-task-4442] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53310 executeId=7638910982386958363 status=RUNNING +aiimage-backend.log.2026-05-12.4:47797:2026-05-12 16:05:03.978 [coze-task-4444] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:47800:2026-05-12 16:05:03.978 [coze-task-4448] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:47802:2026-05-12 16:05:03.980 [coze-task-4448] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:47805:2026-05-12 16:05:03.980 [coze-task-4444] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53310 executeId=7638910982386958363 lastPolledAt=2026-05-12T16:04:34 +aiimage-backend.log.2026-05-12.4:47947:2026-05-12 16:05:33.980 [coze-task-4453] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:47950:2026-05-12 16:05:33.980 [coze-task-4456] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:47954:2026-05-12 16:05:33.982 [coze-task-4456] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:47957:2026-05-12 16:05:33.989 [coze-task-4453] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53310 executeId=7638910982386958363 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:47960:2026-05-12 16:05:34.113 [coze-task-4453] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53310 executeId=7638910982386958363 status=RUNNING +aiimage-backend.log.2026-05-12.4:48101:2026-05-12 16:06:03.981 [coze-task-4458] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:48106:2026-05-12 16:06:03.981 [coze-task-4463] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:48107:2026-05-12 16:06:03.982 [coze-task-4463] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:48109:2026-05-12 16:06:03.982 [coze-task-4458] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53310 executeId=7638910982386958363 lastPolledAt=2026-05-12T16:05:34 +aiimage-backend.log.2026-05-12.4:48250:2026-05-12 16:06:33.983 [coze-task-4467] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:48252:2026-05-12 16:06:33.983 [coze-task-4470] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:48254:2026-05-12 16:06:33.984 [coze-task-4470] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:48257:2026-05-12 16:06:33.991 [coze-task-4467] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53310 executeId=7638910982386958363 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:48439:2026-05-12 16:07:03.985 [coze-task-4473] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:48442:2026-05-12 16:07:03.985 [coze-task-4479] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:48444:2026-05-12 16:07:03.986 [coze-task-4479] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:48446:2026-05-12 16:07:03.986 [coze-task-4473] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53310 +aiimage-backend.log.2026-05-12.4:48629:2026-05-12 16:07:33.987 [coze-task-4484] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53310 taskId=8095 executeId=7638910982386958363 +aiimage-backend.log.2026-05-12.4:48631:2026-05-12 16:07:33.987 [coze-task-4483] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:48633:2026-05-12 16:07:33.987 [coze-task-4488] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:48635:2026-05-12 16:07:33.988 [coze-task-4483] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53325 +aiimage-backend.log.2026-05-12.4:48636:2026-05-12 16:07:33.988 [coze-task-4488] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:48638:2026-05-12 16:07:33.989 [coze-task-4484] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53310 +aiimage-backend.log.2026-05-12.4:48647:2026-05-12 16:07:34.558 [coze-task-4467] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze split retry submitted taskId=8095 stateId=53310 chunk=null batch=1/2 parts=2 retry=2/5 failure=Coze async workflow poll timeout +aiimage-backend.log.2026-05-12.4:48815:2026-05-12 16:08:03.989 [coze-task-4489] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:48817:2026-05-12 16:08:03.989 [coze-task-4494] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:48821:2026-05-12 16:08:03.989 [coze-task-4496] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:48824:2026-05-12 16:08:03.990 [coze-task-4494] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53325 +aiimage-backend.log.2026-05-12.4:48825:2026-05-12 16:08:03.990 [coze-task-4496] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:48830:2026-05-12 16:08:03.998 [coze-task-4489] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53327 executeId=7638913817128435753 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:48834:2026-05-12 16:08:04.197 [coze-task-4489] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53327 executeId=7638913817128435753 status=RUNNING +aiimage-backend.log.2026-05-12.4:48982:2026-05-12 16:08:33.990 [coze-task-4501] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:48987:2026-05-12 16:08:33.990 [coze-task-4506] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:48988:2026-05-12 16:08:33.990 [coze-task-4505] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:48989:2026-05-12 16:08:33.992 [coze-task-4506] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:48990:2026-05-12 16:08:33.992 [coze-task-4501] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:48996:2026-05-12 16:08:34.000 [coze-task-4505] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53325 executeId=7638913676486049844 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:49001:2026-05-12 16:08:34.130 [coze-task-4505] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53325 executeId=7638913676486049844 status=RUNNING +aiimage-backend.log.2026-05-12.4:49153:2026-05-12 16:09:03.992 [coze-task-4516] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:49156:2026-05-12 16:09:03.992 [coze-task-4511] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:49159:2026-05-12 16:09:03.992 [coze-task-4515] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:49160:2026-05-12 16:09:03.993 [coze-task-4516] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:49163:2026-05-12 16:09:03.994 [coze-task-4515] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:49164:2026-05-12 16:09:03.994 [coze-task-4511] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53325 executeId=7638913676486049844 lastPolledAt=2026-05-12T16:08:34 +aiimage-backend.log.2026-05-12.4:49334:2026-05-12 16:09:33.994 [coze-task-4528] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:49337:2026-05-12 16:09:33.994 [coze-task-4525] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:49341:2026-05-12 16:09:33.994 [coze-task-4529] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:49342:2026-05-12 16:09:33.995 [coze-task-4528] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:49346:2026-05-12 16:09:33.995 [coze-task-4529] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:49351:2026-05-12 16:09:34.003 [coze-task-4525] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53325 executeId=7638913676486049844 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:49355:2026-05-12 16:09:34.122 [coze-task-4525] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53325 executeId=7638913676486049844 status=RUNNING +aiimage-backend.log.2026-05-12.4:49677:2026-05-12 16:10:03.995 [coze-task-4533] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:49678:2026-05-12 16:10:03.995 [coze-task-4538] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:49679:2026-05-12 16:10:03.995 [coze-task-4539] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:49681:2026-05-12 16:10:03.996 [coze-task-4538] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:49682:2026-05-12 16:10:03.996 [coze-task-4539] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:49684:2026-05-12 16:10:03.997 [coze-task-4533] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53325 executeId=7638913676486049844 lastPolledAt=2026-05-12T16:09:34 +aiimage-backend.log.2026-05-12.4:50055:2026-05-12 16:10:33.997 [coze-task-4547] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:50056:2026-05-12 16:10:33.997 [coze-task-4545] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:50057:2026-05-12 16:10:33.997 [coze-task-4548] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:50058:2026-05-12 16:10:33.998 [coze-task-4547] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:50059:2026-05-12 16:10:33.998 [coze-task-4548] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:50064:2026-05-12 16:10:34.006 [coze-task-4545] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53325 executeId=7638913676486049844 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:50068:2026-05-12 16:10:34.133 [coze-task-4545] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53325 executeId=7638913676486049844 status=RUNNING +aiimage-backend.log.2026-05-12.4:50442:2026-05-12 16:11:03.998 [coze-task-4552] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:50443:2026-05-12 16:11:03.998 [coze-task-4556] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:50445:2026-05-12 16:11:03.998 [coze-task-4557] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:50448:2026-05-12 16:11:03.999 [coze-task-4556] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:50449:2026-05-12 16:11:03.999 [coze-task-4557] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:50454:2026-05-12 16:11:04.008 [coze-task-4552] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53325 executeId=7638913676486049844 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:50463:2026-05-12 16:11:04.141 [coze-task-4552] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53325 executeId=7638913676486049844 status=RUNNING +aiimage-backend.log.2026-05-12.4:50466:2026-05-12 16:11:04.600 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:50467:2026-05-12 16:11:04.605 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:50468:2026-05-12 16:11:04.623 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:50469:2026-05-12 16:11:04.623 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:50474:2026-05-12 16:11:04.798 [coze-task-4558] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=172 +aiimage-backend.log.2026-05-12.4:50840:2026-05-12 16:11:34.000 [coze-task-4562] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:50842:2026-05-12 16:11:34.000 [coze-task-4568] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:50846:2026-05-12 16:11:34.000 [coze-task-4567] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:50847:2026-05-12 16:11:34.001 [coze-task-4567] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:50848:2026-05-12 16:11:34.001 [coze-task-4568] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:50849:2026-05-12 16:11:34.006 [coze-task-4562] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53325 executeId=7638913676486049844 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:50856:2026-05-12 16:11:34.118 [coze-task-4562] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53325 executeId=7638913676486049844 status=RUNNING +aiimage-backend.log.2026-05-12.4:51243:2026-05-12 16:12:04.001 [coze-task-4577] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:51244:2026-05-12 16:12:04.001 [coze-task-4573] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:51247:2026-05-12 16:12:04.001 [coze-task-4576] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:51248:2026-05-12 16:12:04.002 [coze-task-4576] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:51249:2026-05-12 16:12:04.002 [coze-task-4577] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:51254:2026-05-12 16:12:04.011 [coze-task-4573] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53325 executeId=7638913676486049844 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:51270:2026-05-12 16:12:04.142 [coze-task-4573] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53325 executeId=7638913676486049844 status=RUNNING +aiimage-backend.log.2026-05-12.4:51675:2026-05-12 16:12:34.003 [coze-task-4583] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:51680:2026-05-12 16:12:34.003 [coze-task-4587] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:51681:2026-05-12 16:12:34.003 [coze-task-4588] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:51682:2026-05-12 16:12:34.004 [coze-task-4587] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:51683:2026-05-12 16:12:34.004 [coze-task-4588] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:51684:2026-05-12 16:12:34.010 [coze-task-4583] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53325 executeId=7638913676486049844 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:51704:2026-05-12 16:12:34.177 [coze-task-4583] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53325 executeId=7638913676486049844 status=RUNNING +aiimage-backend.log.2026-05-12.4:52753:2026-05-12 16:13:04.005 [coze-task-4597] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:52754:2026-05-12 16:13:04.005 [coze-task-4598] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:52755:2026-05-12 16:13:04.005 [coze-task-4592] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:52761:2026-05-12 16:13:04.006 [coze-task-4592] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53325 +aiimage-backend.log.2026-05-12.4:52762:2026-05-12 16:13:04.006 [coze-task-4597] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:52764:2026-05-12 16:13:04.013 [coze-task-4598] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53313 executeId=7638911109181325346 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:52976:2026-05-12 16:13:34.006 [coze-task-4601] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:52979:2026-05-12 16:13:34.006 [coze-task-4608] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:52980:2026-05-12 16:13:34.006 [coze-task-4609] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:52982:2026-05-12 16:13:34.007 [coze-task-4601] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:52983:2026-05-12 16:13:34.007 [coze-task-4609] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:52984:2026-05-12 16:13:34.007 [coze-task-4608] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53325 +aiimage-backend.log.2026-05-12.4:53165:2026-05-12 16:14:04.008 [coze-task-4617] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53339 taskId=8095 executeId=7638915363518431272 +aiimage-backend.log.2026-05-12.4:53168:2026-05-12 16:14:04.008 [coze-task-4618] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53313 taskId=8095 executeId=7638911109181325346 +aiimage-backend.log.2026-05-12.4:53170:2026-05-12 16:14:04.008 [coze-task-4619] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:53171:2026-05-12 16:14:04.008 [coze-task-4620] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:53172:2026-05-12 16:14:04.008 [coze-task-4617] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53339 +aiimage-backend.log.2026-05-12.4:53173:2026-05-12 16:14:04.008 [coze-task-4618] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53313 +aiimage-backend.log.2026-05-12.4:53174:2026-05-12 16:14:04.009 [coze-task-4620] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:53175:2026-05-12 16:14:04.009 [coze-task-4619] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53325 +aiimage-backend.log.2026-05-12.4:53191:2026-05-12 16:14:04.560 [coze-task-4598] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze split retry submitted taskId=8095 stateId=53313 chunk=null batch=2/2 parts=2 retry=2/5 failure=Coze async workflow poll timeout +aiimage-backend.log.2026-05-12.4:53337:2026-05-12 16:14:34.009 [coze-task-4622] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53341 taskId=8095 executeId=7638915493130207270 +aiimage-backend.log.2026-05-12.4:53338:2026-05-12 16:14:34.009 [coze-task-4627] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53339 taskId=8095 executeId=7638915363518431272 +aiimage-backend.log.2026-05-12.4:53343:2026-05-12 16:14:34.009 [coze-task-4629] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:53344:2026-05-12 16:14:34.009 [coze-task-4628] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:53345:2026-05-12 16:14:34.010 [coze-task-4622] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53341 +aiimage-backend.log.2026-05-12.4:53346:2026-05-12 16:14:34.010 [coze-task-4628] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53325 +aiimage-backend.log.2026-05-12.4:53347:2026-05-12 16:14:34.010 [coze-task-4629] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:53348:2026-05-12 16:14:34.016 [coze-task-4627] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53339 executeId=7638915363518431272 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:53362:2026-05-12 16:14:34.421 [coze-task-4627] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53339 executeId=7638915363518431272 status=DONE batchRows=12 mergedRows=12 failure=- +aiimage-backend.log.2026-05-12.4:53509:2026-05-12 16:15:04.010 [coze-task-4635] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53341 taskId=8095 executeId=7638915493130207270 +aiimage-backend.log.2026-05-12.4:53510:2026-05-12 16:15:04.010 [coze-task-4636] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:53513:2026-05-12 16:15:04.010 [coze-task-4637] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:53515:2026-05-12 16:15:04.011 [coze-task-4635] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53341 +aiimage-backend.log.2026-05-12.4:53516:2026-05-12 16:15:04.011 [coze-task-4636] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53325 +aiimage-backend.log.2026-05-12.4:53519:2026-05-12 16:15:04.021 [coze-task-4637] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53327 executeId=7638913817128435753 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:53525:2026-05-12 16:15:04.179 [coze-task-4637] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53327 executeId=7638913817128435753 status=RUNNING +aiimage-backend.log.2026-05-12.4:53677:2026-05-12 16:15:34.012 [coze-task-4646] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:53679:2026-05-12 16:15:34.012 [coze-task-4640] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:53681:2026-05-12 16:15:34.012 [coze-task-4645] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53341 taskId=8095 executeId=7638915493130207270 +aiimage-backend.log.2026-05-12.4:53683:2026-05-12 16:15:34.013 [coze-task-4646] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53325 +aiimage-backend.log.2026-05-12.4:53685:2026-05-12 16:15:34.013 [coze-task-4640] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:53687:2026-05-12 16:15:34.020 [coze-task-4645] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53341 executeId=7638915493130207270 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:53703:2026-05-12 16:15:34.661 [coze-task-4645] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53341 executeId=7638915493130207270 status=DONE batchRows=13 mergedRows=13 failure=- +aiimage-backend.log.2026-05-12.4:53927:2026-05-12 16:16:04.013 [coze-task-4657] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:53929:2026-05-12 16:16:04.013 [coze-task-4659] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:53931:2026-05-12 16:16:04.014 [coze-task-4659] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53325 +aiimage-backend.log.2026-05-12.4:53933:2026-05-12 16:16:04.020 [coze-task-4657] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53327 executeId=7638913817128435753 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:53949:2026-05-12 16:16:04.302 [coze-task-4657] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53327 executeId=7638913817128435753 status=RUNNING +aiimage-backend.log.2026-05-12.4:54109:2026-05-12 16:16:34.015 [coze-task-4663] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:54113:2026-05-12 16:16:34.015 [coze-task-4670] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:54117:2026-05-12 16:16:34.024 [coze-task-4670] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53325 +aiimage-backend.log.2026-05-12.4:54123:2026-05-12 16:16:34.024 [coze-task-4663] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53327 executeId=7638913817128435753 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:54133:2026-05-12 16:16:34.163 [coze-task-4663] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53327 executeId=7638913817128435753 status=RUNNING +aiimage-backend.log.2026-05-12.4:54294:2026-05-12 16:17:04.017 [coze-task-4681] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:54301:2026-05-12 16:17:04.017 [coze-task-4673] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:54308:2026-05-12 16:17:04.025 [coze-task-4673] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:54309:2026-05-12 16:17:04.026 [coze-task-4681] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53325 executeId=7638913676486049844 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:54566:2026-05-12 16:17:34.018 [coze-task-4684] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:54574:2026-05-12 16:17:34.019 [coze-task-4693] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:54577:2026-05-12 16:17:34.019 [coze-task-4684] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53325 +aiimage-backend.log.2026-05-12.4:54579:2026-05-12 16:17:34.020 [coze-task-4693] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:54759:2026-05-12 16:18:04.020 [coze-task-4696] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:54762:2026-05-12 16:18:04.020 [coze-task-4705] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53325 taskId=8095 executeId=7638913676486049844 +aiimage-backend.log.2026-05-12.4:54764:2026-05-12 16:18:04.020 [coze-task-4707] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:54768:2026-05-12 16:18:04.021 [coze-task-4696] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53351 +aiimage-backend.log.2026-05-12.4:54773:2026-05-12 16:18:04.021 [coze-task-4707] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:54775:2026-05-12 16:18:04.022 [coze-task-4705] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53325 +aiimage-backend.log.2026-05-12.4:54881:2026-05-12 16:18:15.221 [coze-task-4681] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze split retry submitted taskId=8095 stateId=53325 chunk=null batch=1/2 parts=2 retry=3/5 failure=Coze async workflow poll timeout +aiimage-backend.log.2026-05-12.4:54882:2026-05-12 16:18:15.335 [http-nio-18080-exec-6] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:54883:2026-05-12 16:18:15.340 [http-nio-18080-exec-6] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:54884:2026-05-12 16:18:15.360 [http-nio-18080-exec-6] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:54885:2026-05-12 16:18:15.360 [http-nio-18080-exec-6] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:54887:2026-05-12 16:18:15.736 [coze-task-4710] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=371 +aiimage-backend.log.2026-05-12.4:54985:2026-05-12 16:18:34.022 [coze-task-4711] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:54993:2026-05-12 16:18:34.022 [coze-task-4719] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:54995:2026-05-12 16:18:34.023 [coze-task-4722] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:54997:2026-05-12 16:18:34.023 [coze-task-4719] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53351 +aiimage-backend.log.2026-05-12.4:55002:2026-05-12 16:18:34.032 [coze-task-4722] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:55007:2026-05-12 16:18:34.032 [coze-task-4711] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53352 executeId=7638916560778756096 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:55012:2026-05-12 16:18:34.148 [coze-task-4711] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53352 executeId=7638916560778756096 status=RUNNING +aiimage-backend.log.2026-05-12.4:55182:2026-05-12 16:19:04.024 [coze-task-4732] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:55184:2026-05-12 16:19:04.024 [coze-task-4733] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:55185:2026-05-12 16:19:04.024 [coze-task-4735] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:55191:2026-05-12 16:19:04.033 [coze-task-4733] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53351 +aiimage-backend.log.2026-05-12.4:55193:2026-05-12 16:19:04.033 [coze-task-4735] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:55196:2026-05-12 16:19:04.034 [coze-task-4732] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53352 executeId=7638916560778756096 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:55201:2026-05-12 16:19:04.147 [coze-task-4732] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53352 executeId=7638916560778756096 status=RUNNING +aiimage-backend.log.2026-05-12.4:55387:2026-05-12 16:19:34.025 [coze-task-4747] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:55390:2026-05-12 16:19:34.025 [coze-task-4750] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:55393:2026-05-12 16:19:34.026 [coze-task-4751] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:55397:2026-05-12 16:19:34.026 [coze-task-4750] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53351 +aiimage-backend.log.2026-05-12.4:55399:2026-05-12 16:19:34.027 [coze-task-4751] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:55406:2026-05-12 16:19:34.035 [coze-task-4747] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53352 executeId=7638916560778756096 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:55416:2026-05-12 16:19:34.172 [coze-task-4747] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53352 executeId=7638916560778756096 status=RUNNING +aiimage-backend.log.2026-05-12.4:55655:2026-05-12 16:20:04.028 [coze-task-4767] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:55656:2026-05-12 16:20:04.028 [coze-task-4768] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:55658:2026-05-12 16:20:04.027 [coze-task-4762] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:55663:2026-05-12 16:20:04.028 [coze-task-4768] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:55664:2026-05-12 16:20:04.028 [coze-task-4762] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:55668:2026-05-12 16:20:04.036 [coze-task-4767] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53351 executeId=7638916423692582963 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:55676:2026-05-12 16:20:04.168 [coze-task-4767] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53351 executeId=7638916423692582963 status=RUNNING +aiimage-backend.log.2026-05-12.4:56109:2026-05-12 16:20:34.029 [coze-task-4778] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:56114:2026-05-12 16:20:34.029 [coze-task-4781] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:56117:2026-05-12 16:20:34.029 [coze-task-4784] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:56124:2026-05-12 16:20:34.030 [coze-task-4781] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:56125:2026-05-12 16:20:34.030 [coze-task-4784] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:56127:2026-05-12 16:20:34.038 [coze-task-4778] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53351 executeId=7638916423692582963 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:56152:2026-05-12 16:20:34.270 [coze-task-4778] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53351 executeId=7638916423692582963 status=RUNNING +aiimage-backend.log.2026-05-12.4:56548:2026-05-12 16:21:04.030 [coze-task-4794] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:56552:2026-05-12 16:21:04.031 [coze-task-4798] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:56555:2026-05-12 16:21:04.031 [coze-task-4801] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:56560:2026-05-12 16:21:04.039 [coze-task-4801] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:56561:2026-05-12 16:21:04.039 [coze-task-4798] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:56566:2026-05-12 16:21:04.041 [coze-task-4794] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53351 executeId=7638916423692582963 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:56585:2026-05-12 16:21:04.184 [coze-task-4794] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53351 executeId=7638916423692582963 status=RUNNING +aiimage-backend.log.2026-05-12.4:57488:2026-05-12 16:21:34.032 [coze-task-4812] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:57490:2026-05-12 16:21:34.032 [coze-task-4817] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:57492:2026-05-12 16:21:34.032 [coze-task-4819] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:57498:2026-05-12 16:21:34.033 [coze-task-4817] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:57501:2026-05-12 16:21:34.040 [coze-task-4819] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:57506:2026-05-12 16:21:34.042 [coze-task-4812] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53351 executeId=7638916423692582963 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:57543:2026-05-12 16:21:34.167 [coze-task-4812] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53351 executeId=7638916423692582963 status=RUNNING +aiimage-backend.log.2026-05-12.4:58306:2026-05-12 16:22:04.034 [coze-task-4827] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:58309:2026-05-12 16:22:04.034 [coze-task-4834] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:58311:2026-05-12 16:22:04.034 [coze-task-4835] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:58318:2026-05-12 16:22:04.044 [coze-task-4834] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:58321:2026-05-12 16:22:04.044 [coze-task-4835] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:58329:2026-05-12 16:22:04.051 [coze-task-4827] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53351 executeId=7638916423692582963 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:58338:2026-05-12 16:22:04.164 [coze-task-4827] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53351 executeId=7638916423692582963 status=RUNNING +aiimage-backend.log.2026-05-12.4:58512:2026-05-12 16:22:34.035 [coze-task-4844] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:58514:2026-05-12 16:22:34.035 [coze-task-4853] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:58524:2026-05-12 16:22:34.035 [coze-task-4852] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:58526:2026-05-12 16:22:34.037 [coze-task-4853] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:58531:2026-05-12 16:22:34.044 [coze-task-4844] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53351 executeId=7638916423692582963 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:58535:2026-05-12 16:22:34.049 [coze-task-4852] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:58551:2026-05-12 16:22:34.177 [coze-task-4844] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53351 executeId=7638916423692582963 status=RUNNING +aiimage-backend.log.2026-05-12.4:58849:2026-05-12 16:23:04.037 [coze-task-4861] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:58857:2026-05-12 16:23:04.037 [coze-task-4869] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:58861:2026-05-12 16:23:04.037 [coze-task-4870] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:58862:2026-05-12 16:23:04.046 [coze-task-4861] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53351 executeId=7638916423692582963 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:58872:2026-05-12 16:23:04.050 [coze-task-4869] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:58874:2026-05-12 16:23:04.050 [coze-task-4870] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:58894:2026-05-12 16:23:04.207 [coze-task-4861] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53351 executeId=7638916423692582963 status=RUNNING +aiimage-backend.log.2026-05-12.4:59084:2026-05-12 16:23:34.039 [coze-task-4879] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:59096:2026-05-12 16:23:34.040 [coze-task-4889] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:59097:2026-05-12 16:23:34.040 [coze-task-4888] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:59104:2026-05-12 16:23:34.049 [coze-task-4879] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53351 executeId=7638916423692582963 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:59111:2026-05-12 16:23:34.052 [coze-task-4889] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:59112:2026-05-12 16:23:34.052 [coze-task-4888] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:59120:2026-05-12 16:23:34.163 [coze-task-4879] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53351 executeId=7638916423692582963 status=RUNNING +aiimage-backend.log.2026-05-12.4:59325:2026-05-12 16:24:04.042 [coze-task-4906] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:59326:2026-05-12 16:24:04.042 [coze-task-4907] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:59328:2026-05-12 16:24:04.041 [coze-task-4897] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:59342:2026-05-12 16:24:04.053 [coze-task-4906] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:59343:2026-05-12 16:24:04.054 [coze-task-4897] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53351 +aiimage-backend.log.2026-05-12.4:59345:2026-05-12 16:24:04.059 [coze-task-4907] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53327 executeId=7638913817128435753 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:59537:2026-05-12 16:24:34.043 [coze-task-4920] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:59539:2026-05-12 16:24:34.043 [coze-task-4922] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:59543:2026-05-12 16:24:34.043 [coze-task-4926] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:59551:2026-05-12 16:24:34.053 [coze-task-4922] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53351 +aiimage-backend.log.2026-05-12.4:59553:2026-05-12 16:24:34.055 [coze-task-4926] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:59555:2026-05-12 16:24:34.055 [coze-task-4920] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:59760:2026-05-12 16:25:04.045 [coze-task-4928] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53366 taskId=8095 executeId=7638918189733511203 +aiimage-backend.log.2026-05-12.4:59770:2026-05-12 16:25:04.046 [coze-task-4940] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53327 taskId=8095 executeId=7638913817128435753 +aiimage-backend.log.2026-05-12.4:59771:2026-05-12 16:25:04.046 [coze-task-4941] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:59774:2026-05-12 16:25:04.046 [coze-task-4928] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53366 +aiimage-backend.log.2026-05-12.4:59778:2026-05-12 16:25:04.046 [coze-task-4945] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:59779:2026-05-12 16:25:04.047 [coze-task-4940] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53327 +aiimage-backend.log.2026-05-12.4:59780:2026-05-12 16:25:04.047 [coze-task-4941] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53351 +aiimage-backend.log.2026-05-12.4:59792:2026-05-12 16:25:04.056 [coze-task-4945] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:59821:2026-05-12 16:25:05.642 [coze-task-4907] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze split retry submitted taskId=8095 stateId=53327 chunk=null batch=2/2 parts=2 retry=3/5 failure=Coze async workflow poll timeout +aiimage-backend.log.2026-05-12.4:59823:2026-05-12 16:25:05.788 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:59824:2026-05-12 16:25:05.793 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:59825:2026-05-12 16:25:05.812 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:59826:2026-05-12 16:25:05.812 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:59829:2026-05-12 16:25:06.186 [coze-task-4946] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=370 +aiimage-backend.log.2026-05-12.4:59977:2026-05-12 16:25:34.047 [coze-task-4948] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53367 taskId=8095 executeId=7638918322369642511 +aiimage-backend.log.2026-05-12.4:59992:2026-05-12 16:25:34.048 [coze-task-4965] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:59993:2026-05-12 16:25:34.048 [coze-task-4960] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53366 taskId=8095 executeId=7638918189733511203 +aiimage-backend.log.2026-05-12.4:59994:2026-05-12 16:25:34.048 [coze-task-4961] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:59999:2026-05-12 16:25:34.058 [coze-task-4948] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53367 executeId=7638918322369642511 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:60003:2026-05-12 16:25:34.058 [coze-task-4961] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53351 +aiimage-backend.log.2026-05-12.4:60007:2026-05-12 16:25:34.058 [coze-task-4960] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53366 +aiimage-backend.log.2026-05-12.4:60008:2026-05-12 16:25:34.058 [coze-task-4965] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:60026:2026-05-12 16:25:34.197 [coze-task-4948] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53367 executeId=7638918322369642511 status=RUNNING +aiimage-backend.log.2026-05-12.4:60221:2026-05-12 16:26:04.049 [coze-task-4969] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53367 taskId=8095 executeId=7638918322369642511 +aiimage-backend.log.2026-05-12.4:60234:2026-05-12 16:26:04.050 [coze-task-4984] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:60236:2026-05-12 16:26:04.049 [coze-task-4979] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53366 taskId=8095 executeId=7638918189733511203 +aiimage-backend.log.2026-05-12.4:60237:2026-05-12 16:26:04.049 [coze-task-4980] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:60246:2026-05-12 16:26:04.061 [coze-task-4984] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:60248:2026-05-12 16:26:04.061 [coze-task-4980] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53351 +aiimage-backend.log.2026-05-12.4:60249:2026-05-12 16:26:04.061 [coze-task-4979] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53366 +aiimage-backend.log.2026-05-12.4:60251:2026-05-12 16:26:04.060 [coze-task-4969] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53367 executeId=7638918322369642511 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:60275:2026-05-12 16:26:04.212 [coze-task-4969] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53367 executeId=7638918322369642511 status=RUNNING +aiimage-backend.log.2026-05-12.4:60496:2026-05-12 16:26:34.050 [coze-task-4991] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53367 taskId=8095 executeId=7638918322369642511 +aiimage-backend.log.2026-05-12.4:60503:2026-05-12 16:26:34.051 [coze-task-4999] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53366 taskId=8095 executeId=7638918189733511203 +aiimage-backend.log.2026-05-12.4:60504:2026-05-12 16:26:34.051 [coze-task-5000] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:60508:2026-05-12 16:26:34.051 [coze-task-5004] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:60512:2026-05-12 16:26:34.060 [coze-task-5000] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53351 +aiimage-backend.log.2026-05-12.4:60513:2026-05-12 16:26:34.060 [coze-task-5004] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:60517:2026-05-12 16:26:34.061 [coze-task-4991] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53367 executeId=7638918322369642511 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:60521:2026-05-12 16:26:34.060 [coze-task-4999] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53366 +aiimage-backend.log.2026-05-12.4:60537:2026-05-12 16:26:34.198 [coze-task-4991] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53367 executeId=7638918322369642511 status=RUNNING +aiimage-backend.log.2026-05-12.4:60725:2026-05-12 16:27:04.051 [coze-task-5009] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53367 taskId=8095 executeId=7638918322369642511 +aiimage-backend.log.2026-05-12.4:60731:2026-05-12 16:27:04.052 [coze-task-5017] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53366 taskId=8095 executeId=7638918189733511203 +aiimage-backend.log.2026-05-12.4:60733:2026-05-12 16:27:04.052 [coze-task-5018] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:60736:2026-05-12 16:27:04.052 [coze-task-5022] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:60744:2026-05-12 16:27:04.062 [coze-task-5018] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53351 +aiimage-backend.log.2026-05-12.4:60746:2026-05-12 16:27:04.062 [coze-task-5017] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53366 +aiimage-backend.log.2026-05-12.4:60747:2026-05-12 16:27:04.062 [coze-task-5022] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:60752:2026-05-12 16:27:04.062 [coze-task-5009] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53367 executeId=7638918322369642511 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:60768:2026-05-12 16:27:04.204 [coze-task-5009] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53367 executeId=7638918322369642511 status=RUNNING +aiimage-backend.log.2026-05-12.4:60964:2026-05-12 16:27:34.053 [coze-task-5030] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53367 taskId=8095 executeId=7638918322369642511 +aiimage-backend.log.2026-05-12.4:60972:2026-05-12 16:27:34.053 [coze-task-5038] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53366 taskId=8095 executeId=7638918189733511203 +aiimage-backend.log.2026-05-12.4:60973:2026-05-12 16:27:34.053 [coze-task-5039] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:60978:2026-05-12 16:27:34.053 [coze-task-5043] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:60984:2026-05-12 16:27:34.064 [coze-task-5030] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53367 executeId=7638918322369642511 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:60989:2026-05-12 16:27:34.067 [coze-task-5039] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53351 +aiimage-backend.log.2026-05-12.4:60990:2026-05-12 16:27:34.067 [coze-task-5038] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53366 +aiimage-backend.log.2026-05-12.4:60994:2026-05-12 16:27:34.067 [coze-task-5043] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:61013:2026-05-12 16:27:34.227 [coze-task-5030] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53367 executeId=7638918322369642511 status=RUNNING +aiimage-backend.log.2026-05-12.4:61233:2026-05-12 16:28:04.054 [coze-task-5053] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53367 taskId=8095 executeId=7638918322369642511 +aiimage-backend.log.2026-05-12.4:61236:2026-05-12 16:28:04.054 [coze-task-5061] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53366 taskId=8095 executeId=7638918189733511203 +aiimage-backend.log.2026-05-12.4:61237:2026-05-12 16:28:04.054 [coze-task-5062] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:61240:2026-05-12 16:28:04.054 [coze-task-5066] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:61246:2026-05-12 16:28:04.062 [coze-task-5061] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53366 +aiimage-backend.log.2026-05-12.4:61247:2026-05-12 16:28:04.062 [coze-task-5062] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53351 +aiimage-backend.log.2026-05-12.4:61251:2026-05-12 16:28:04.062 [coze-task-5066] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:61256:2026-05-12 16:28:04.064 [coze-task-5053] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53367 executeId=7638918322369642511 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:61272:2026-05-12 16:28:04.231 [coze-task-5053] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53367 executeId=7638918322369642511 status=RUNNING +aiimage-backend.log.2026-05-12.4:61459:2026-05-12 16:28:34.056 [coze-task-5080] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53366 taskId=8095 executeId=7638918189733511203 +aiimage-backend.log.2026-05-12.4:61461:2026-05-12 16:28:34.056 [coze-task-5081] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:61464:2026-05-12 16:28:34.056 [coze-task-5084] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:61465:2026-05-12 16:28:34.055 [coze-task-5072] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53367 taskId=8095 executeId=7638918322369642511 +aiimage-backend.log.2026-05-12.4:61472:2026-05-12 16:28:34.057 [coze-task-5081] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53351 +aiimage-backend.log.2026-05-12.4:61473:2026-05-12 16:28:34.057 [coze-task-5084] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:61476:2026-05-12 16:28:34.065 [coze-task-5072] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53367 +aiimage-backend.log.2026-05-12.4:61478:2026-05-12 16:28:34.065 [coze-task-5080] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53366 executeId=7638918189733511203 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:61503:2026-05-12 16:28:34.609 [coze-task-5080] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53366 executeId=7638918189733511203 status=DONE batchRows=6 mergedRows=6 failure=- +aiimage-backend.log.2026-05-12.4:61715:2026-05-12 16:29:04.057 [coze-task-5091] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53367 taskId=8095 executeId=7638918322369642511 +aiimage-backend.log.2026-05-12.4:61719:2026-05-12 16:29:04.058 [coze-task-5096] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:61722:2026-05-12 16:29:04.058 [coze-task-5099] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:61729:2026-05-12 16:29:04.067 [coze-task-5096] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53351 +aiimage-backend.log.2026-05-12.4:61733:2026-05-12 16:29:04.067 [coze-task-5099] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:61735:2026-05-12 16:29:04.067 [coze-task-5091] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53367 executeId=7638918322369642511 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:61743:2026-05-12 16:29:04.208 [coze-task-5091] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53367 executeId=7638918322369642511 status=RUNNING +aiimage-backend.log.2026-05-12.4:61943:2026-05-12 16:29:34.059 [coze-task-5113] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53351 taskId=8095 executeId=7638916423692582963 +aiimage-backend.log.2026-05-12.4:61944:2026-05-12 16:29:34.058 [coze-task-5105] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53367 taskId=8095 executeId=7638918322369642511 +aiimage-backend.log.2026-05-12.4:61945:2026-05-12 16:29:34.059 [coze-task-5116] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:61954:2026-05-12 16:29:34.060 [coze-task-5105] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53367 +aiimage-backend.log.2026-05-12.4:61955:2026-05-12 16:29:34.060 [coze-task-5116] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:61962:2026-05-12 16:29:34.069 [coze-task-5113] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53351 executeId=7638916423692582963 jobId=2713 chunk=null batch=1/2 +aiimage-backend.log.2026-05-12.4:61984:2026-05-12 16:29:34.581 [coze-task-5113] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53351 executeId=7638916423692582963 status=DONE batchRows=6 mergedRows=6 failure=- +aiimage-backend.log.2026-05-12.4:62230:2026-05-12 16:30:04.060 [coze-task-5127] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53367 taskId=8095 executeId=7638918322369642511 +aiimage-backend.log.2026-05-12.4:62240:2026-05-12 16:30:04.060 [coze-task-5133] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:62247:2026-05-12 16:30:04.062 [coze-task-5133] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:62256:2026-05-12 16:30:04.071 [coze-task-5127] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53367 executeId=7638918322369642511 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:62261:2026-05-12 16:30:04.182 [coze-task-5127] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53367 executeId=7638918322369642511 status=RUNNING +aiimage-backend.log.2026-05-12.4:62661:2026-05-12 16:30:34.061 [coze-task-5138] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53367 taskId=8095 executeId=7638918322369642511 +aiimage-backend.log.2026-05-12.4:62672:2026-05-12 16:30:34.062 [coze-task-5149] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:62684:2026-05-12 16:30:34.072 [coze-task-5149] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:62685:2026-05-12 16:30:34.072 [coze-task-5138] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53367 executeId=7638918322369642511 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:62694:2026-05-12 16:30:34.199 [coze-task-5138] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53367 executeId=7638918322369642511 status=RUNNING +aiimage-backend.log.2026-05-12.4:63144:2026-05-12 16:31:04.063 [coze-task-5154] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53367 taskId=8095 executeId=7638918322369642511 +aiimage-backend.log.2026-05-12.4:63154:2026-05-12 16:31:04.064 [coze-task-5165] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:63161:2026-05-12 16:31:04.065 [coze-task-5165] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53352 +aiimage-backend.log.2026-05-12.4:63168:2026-05-12 16:31:04.071 [coze-task-5154] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53367 executeId=7638918322369642511 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:63188:2026-05-12 16:31:04.628 [coze-task-5154] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53367 executeId=7638918322369642511 status=DONE batchRows=7 mergedRows=7 failure=- +aiimage-backend.log.2026-05-12.4:63635:2026-05-12 16:31:34.065 [coze-task-5182] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53352 taskId=8095 executeId=7638916560778756096 +aiimage-backend.log.2026-05-12.4:63649:2026-05-12 16:31:34.075 [coze-task-5182] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53352 executeId=7638916560778756096 jobId=2713 chunk=null batch=2/2 +aiimage-backend.log.2026-05-12.4:63669:2026-05-12 16:31:34.590 [coze-task-5182] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53352 executeId=7638916560778756096 status=DONE batchRows=6 mergedRows=6 failure=- +aiimage-backend.log.2026-05-12.4:63693:2026-05-12 16:31:36.414 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:63694:2026-05-12 16:31:36.423 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:63695:2026-05-12 16:31:36.446 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:63696:2026-05-12 16:31:36.446 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:65695:2026-05-12 16:32:44.951 [coze-task-5183] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/3 executeId=7638920296989098047 +aiimage-backend.log.2026-05-12.4:65846:2026-05-12 16:33:04.068 [coze-task-5219] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53385 taskId=8095 executeId=7638920296989098047 +aiimage-backend.log.2026-05-12.4:65859:2026-05-12 16:33:04.070 [coze-task-5219] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53385 +aiimage-backend.log.2026-05-12.4:65942:2026-05-12 16:33:15.164 [coze-task-5183] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=2/3 executeId=7638920422151618610 +aiimage-backend.log.2026-05-12.4:66047:2026-05-12 16:33:34.070 [coze-task-5233] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53387 taskId=8095 executeId=7638920422151618610 +aiimage-backend.log.2026-05-12.4:66054:2026-05-12 16:33:34.070 [coze-task-5240] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53385 taskId=8095 executeId=7638920296989098047 +aiimage-backend.log.2026-05-12.4:66062:2026-05-12 16:33:34.071 [coze-task-5233] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53387 +aiimage-backend.log.2026-05-12.4:66064:2026-05-12 16:33:34.072 [coze-task-5240] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53385 +aiimage-backend.log.2026-05-12.4:66147:2026-05-12 16:33:45.427 [coze-task-5183] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=3/3 executeId=7638920553479503898 +aiimage-backend.log.2026-05-12.4:66148:2026-05-12 16:33:45.436 [coze-task-5183] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=128986 +aiimage-backend.log.2026-05-12.4:66289:2026-05-12 16:34:04.071 [coze-task-5249] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53388 taskId=8095 executeId=7638920553479503898 +aiimage-backend.log.2026-05-12.4:66296:2026-05-12 16:34:04.072 [coze-task-5256] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53387 taskId=8095 executeId=7638920422151618610 +aiimage-backend.log.2026-05-12.4:66297:2026-05-12 16:34:04.072 [coze-task-5257] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53385 taskId=8095 executeId=7638920296989098047 +aiimage-backend.log.2026-05-12.4:66305:2026-05-12 16:34:04.073 [coze-task-5256] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53387 +aiimage-backend.log.2026-05-12.4:66306:2026-05-12 16:34:04.073 [coze-task-5257] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53385 +aiimage-backend.log.2026-05-12.4:66318:2026-05-12 16:34:04.082 [coze-task-5249] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53388 executeId=7638920553479503898 jobId=2713 chunk=null batch=3/3 +aiimage-backend.log.2026-05-12.4:66323:2026-05-12 16:34:04.189 [coze-task-5249] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53388 executeId=7638920553479503898 status=RUNNING +aiimage-backend.log.2026-05-12.4:66521:2026-05-12 16:34:34.073 [coze-task-5270] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53388 taskId=8095 executeId=7638920553479503898 +aiimage-backend.log.2026-05-12.4:66527:2026-05-12 16:34:34.074 [coze-task-5276] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53387 taskId=8095 executeId=7638920422151618610 +aiimage-backend.log.2026-05-12.4:66528:2026-05-12 16:34:34.074 [coze-task-5277] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53385 taskId=8095 executeId=7638920296989098047 +aiimage-backend.log.2026-05-12.4:66537:2026-05-12 16:34:34.080 [coze-task-5276] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53387 +aiimage-backend.log.2026-05-12.4:66538:2026-05-12 16:34:34.080 [coze-task-5277] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53385 +aiimage-backend.log.2026-05-12.4:66546:2026-05-12 16:34:34.087 [coze-task-5270] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53388 executeId=7638920553479503898 jobId=2713 chunk=null batch=3/3 +aiimage-backend.log.2026-05-12.4:66569:2026-05-12 16:34:34.783 [coze-task-5270] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53388 executeId=7638920553479503898 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.4:66768:2026-05-12 16:35:04.075 [coze-task-5294] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53387 taskId=8095 executeId=7638920422151618610 +aiimage-backend.log.2026-05-12.4:66771:2026-05-12 16:35:04.075 [coze-task-5295] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53385 taskId=8095 executeId=7638920296989098047 +aiimage-backend.log.2026-05-12.4:66780:2026-05-12 16:35:04.084 [coze-task-5295] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53385 +aiimage-backend.log.2026-05-12.4:66783:2026-05-12 16:35:04.084 [coze-task-5294] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53387 executeId=7638920422151618610 jobId=2713 chunk=null batch=2/3 +aiimage-backend.log.2026-05-12.4:66805:2026-05-12 16:35:04.232 [coze-task-5294] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53387 executeId=7638920422151618610 status=RUNNING +aiimage-backend.log.2026-05-12.4:67040:2026-05-12 16:35:34.076 [coze-task-5308] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53387 taskId=8095 executeId=7638920422151618610 +aiimage-backend.log.2026-05-12.4:67051:2026-05-12 16:35:34.076 [coze-task-5314] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53385 taskId=8095 executeId=7638920296989098047 +aiimage-backend.log.2026-05-12.4:67060:2026-05-12 16:35:34.086 [coze-task-5314] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53385 +aiimage-backend.log.2026-05-12.4:67062:2026-05-12 16:35:34.087 [coze-task-5308] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53387 executeId=7638920422151618610 jobId=2713 chunk=null batch=2/3 +aiimage-backend.log.2026-05-12.4:67083:2026-05-12 16:35:34.302 [coze-task-5308] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53387 executeId=7638920422151618610 status=RUNNING +aiimage-backend.log.2026-05-12.4:67501:2026-05-12 16:36:04.077 [coze-task-5332] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53387 taskId=8095 executeId=7638920422151618610 +aiimage-backend.log.2026-05-12.4:67502:2026-05-12 16:36:04.077 [coze-task-5338] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53385 taskId=8095 executeId=7638920296989098047 +aiimage-backend.log.2026-05-12.4:67511:2026-05-12 16:36:04.088 [coze-task-5338] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53385 +aiimage-backend.log.2026-05-12.4:67514:2026-05-12 16:36:04.088 [coze-task-5332] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53387 executeId=7638920422151618610 jobId=2713 chunk=null batch=2/3 +aiimage-backend.log.2026-05-12.4:67533:2026-05-12 16:36:04.314 [coze-task-5332] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53387 executeId=7638920422151618610 status=RUNNING +aiimage-backend.log.2026-05-12.4:67902:2026-05-12 16:36:34.080 [coze-task-5352] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53387 taskId=8095 executeId=7638920422151618610 +aiimage-backend.log.2026-05-12.4:67907:2026-05-12 16:36:34.080 [coze-task-5357] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53385 taskId=8095 executeId=7638920296989098047 +aiimage-backend.log.2026-05-12.4:67914:2026-05-12 16:36:34.088 [coze-task-5357] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53385 +aiimage-backend.log.2026-05-12.4:67920:2026-05-12 16:36:34.090 [coze-task-5352] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53387 executeId=7638920422151618610 jobId=2713 chunk=null batch=2/3 +aiimage-backend.log.2026-05-12.4:67941:2026-05-12 16:36:34.344 [coze-task-5352] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53387 executeId=7638920422151618610 status=RUNNING +aiimage-backend.log.2026-05-12.4:68137:2026-05-12 16:37:04.081 [coze-task-5366] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53387 taskId=8095 executeId=7638920422151618610 +aiimage-backend.log.2026-05-12.4:68144:2026-05-12 16:37:04.081 [coze-task-5373] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53385 taskId=8095 executeId=7638920296989098047 +aiimage-backend.log.2026-05-12.4:68155:2026-05-12 16:37:04.091 [coze-task-5373] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53385 +aiimage-backend.log.2026-05-12.4:68159:2026-05-12 16:37:04.092 [coze-task-5366] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53387 executeId=7638920422151618610 jobId=2713 chunk=null batch=2/3 +aiimage-backend.log.2026-05-12.4:68173:2026-05-12 16:37:04.326 [coze-task-5366] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53387 executeId=7638920422151618610 status=RUNNING +aiimage-backend.log.2026-05-12.4:68370:2026-05-12 16:37:34.082 [coze-task-5382] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53387 taskId=8095 executeId=7638920422151618610 +aiimage-backend.log.2026-05-12.4:68373:2026-05-12 16:37:34.083 [coze-task-5388] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53385 taskId=8095 executeId=7638920296989098047 +aiimage-backend.log.2026-05-12.4:68381:2026-05-12 16:37:34.084 [coze-task-5388] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53385 +aiimage-backend.log.2026-05-12.4:68387:2026-05-12 16:37:34.093 [coze-task-5382] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53387 executeId=7638920422151618610 jobId=2713 chunk=null batch=2/3 +aiimage-backend.log.2026-05-12.4:68394:2026-05-12 16:37:34.219 [coze-task-5382] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53387 executeId=7638920422151618610 status=RUNNING +aiimage-backend.log.2026-05-12.4:68543:2026-05-12 16:38:00.547 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:68544:2026-05-12 16:38:00.554 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:68545:2026-05-12 16:38:00.575 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:68546:2026-05-12 16:38:00.575 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:68549:2026-05-12 16:38:00.963 [coze-task-5390] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=384 +aiimage-backend.log.2026-05-12.4:68586:2026-05-12 16:38:04.084 [coze-task-5396] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53387 taskId=8095 executeId=7638920422151618610 +aiimage-backend.log.2026-05-12.4:68594:2026-05-12 16:38:04.085 [coze-task-5404] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53385 taskId=8095 executeId=7638920296989098047 +aiimage-backend.log.2026-05-12.4:68601:2026-05-12 16:38:04.085 [coze-task-5404] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53385 +aiimage-backend.log.2026-05-12.4:68609:2026-05-12 16:38:04.094 [coze-task-5396] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53387 executeId=7638920422151618610 jobId=2713 chunk=null batch=2/3 +aiimage-backend.log.2026-05-12.4:68619:2026-05-12 16:38:04.233 [coze-task-5396] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53387 executeId=7638920422151618610 status=RUNNING +aiimage-backend.log.2026-05-12.4:68850:2026-05-12 16:38:34.084 [coze-task-5414] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53387 taskId=8095 executeId=7638920422151618610 +aiimage-backend.log.2026-05-12.4:68859:2026-05-12 16:38:34.085 [coze-task-5421] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53385 taskId=8095 executeId=7638920296989098047 +aiimage-backend.log.2026-05-12.4:68865:2026-05-12 16:38:34.094 [coze-task-5421] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53385 +aiimage-backend.log.2026-05-12.4:68871:2026-05-12 16:38:34.096 [coze-task-5414] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53387 executeId=7638920422151618610 jobId=2713 chunk=null batch=2/3 +aiimage-backend.log.2026-05-12.4:68886:2026-05-12 16:38:34.239 [coze-task-5414] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53387 executeId=7638920422151618610 status=RUNNING +aiimage-backend.log.2026-05-12.4:69149:2026-05-12 16:39:04.086 [coze-task-5429] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53387 taskId=8095 executeId=7638920422151618610 +aiimage-backend.log.2026-05-12.4:69155:2026-05-12 16:39:04.086 [coze-task-5436] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53385 taskId=8095 executeId=7638920296989098047 +aiimage-backend.log.2026-05-12.4:69163:2026-05-12 16:39:04.087 [coze-task-5436] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53385 +aiimage-backend.log.2026-05-12.4:69166:2026-05-12 16:39:04.096 [coze-task-5429] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53387 executeId=7638920422151618610 jobId=2713 chunk=null batch=2/3 +aiimage-backend.log.2026-05-12.4:69187:2026-05-12 16:39:04.325 [coze-task-5429] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53387 executeId=7638920422151618610 status=RUNNING +aiimage-backend.log.2026-05-12.4:69387:2026-05-12 16:39:34.088 [coze-task-5444] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53387 taskId=8095 executeId=7638920422151618610 +aiimage-backend.log.2026-05-12.4:69394:2026-05-12 16:39:34.088 [coze-task-5450] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53385 taskId=8095 executeId=7638920296989098047 +aiimage-backend.log.2026-05-12.4:69398:2026-05-12 16:39:34.089 [coze-task-5450] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53385 +aiimage-backend.log.2026-05-12.4:69400:2026-05-12 16:39:34.095 [coze-task-5444] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53387 executeId=7638920422151618610 jobId=2713 chunk=null batch=2/3 +aiimage-backend.log.2026-05-12.4:69411:2026-05-12 16:39:34.239 [coze-task-5444] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53387 executeId=7638920422151618610 status=RUNNING +aiimage-backend.log.2026-05-12.4:69673:2026-05-12 16:40:04.089 [coze-task-5456] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53387 taskId=8095 executeId=7638920422151618610 +aiimage-backend.log.2026-05-12.4:69674:2026-05-12 16:40:04.089 [coze-task-5463] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53385 taskId=8095 executeId=7638920296989098047 +aiimage-backend.log.2026-05-12.4:69683:2026-05-12 16:40:04.090 [coze-task-5456] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped because task is locked taskId=8095 stateId=53387 +aiimage-backend.log.2026-05-12.4:69687:2026-05-12 16:40:04.096 [coze-task-5463] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53385 executeId=7638920296989098047 jobId=2713 chunk=null batch=1/3 +aiimage-backend.log.2026-05-12.4:69709:2026-05-12 16:40:04.724 [coze-task-5463] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53385 executeId=7638920296989098047 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.4:70360:2026-05-12 16:40:34.090 [coze-task-5472] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53387 taskId=8095 executeId=7638920422151618610 +aiimage-backend.log.2026-05-12.4:70371:2026-05-12 16:40:34.099 [coze-task-5472] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53387 executeId=7638920422151618610 jobId=2713 chunk=null batch=2/3 +aiimage-backend.log.2026-05-12.4:70382:2026-05-12 16:40:34.698 [coze-task-5472] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53387 executeId=7638920422151618610 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.4:73663:2026-05-12 16:44:20.481 [http-nio-18080-exec-1] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:73664:2026-05-12 16:44:20.486 [http-nio-18080-exec-1] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:73665:2026-05-12 16:44:20.505 [http-nio-18080-exec-1] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:73666:2026-05-12 16:44:20.505 [http-nio-18080-exec-1] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:74672:2026-05-12 16:45:23.283 [coze-task-5532] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638923553069547571 +aiimage-backend.log.2026-05-12.4:74673:2026-05-12 16:45:23.290 [coze-task-5532] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=62780 +aiimage-backend.log.2026-05-12.4:74800:2026-05-12 16:45:34.105 [coze-task-5555] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53421 taskId=8095 executeId=7638923553069547571 +aiimage-backend.log.2026-05-12.4:74805:2026-05-12 16:45:34.114 [coze-task-5555] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53421 executeId=7638923553069547571 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:74816:2026-05-12 16:45:34.239 [coze-task-5555] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53421 executeId=7638923553069547571 status=RUNNING +aiimage-backend.log.2026-05-12.4:75015:2026-05-12 16:46:04.106 [coze-task-5564] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53421 taskId=8095 executeId=7638923553069547571 +aiimage-backend.log.2026-05-12.4:75018:2026-05-12 16:46:04.115 [coze-task-5564] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53421 executeId=7638923553069547571 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:75023:2026-05-12 16:46:04.254 [coze-task-5564] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53421 executeId=7638923553069547571 status=RUNNING +aiimage-backend.log.2026-05-12.4:75234:2026-05-12 16:46:34.108 [coze-task-5570] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53421 taskId=8095 executeId=7638923553069547571 +aiimage-backend.log.2026-05-12.4:75240:2026-05-12 16:46:34.117 [coze-task-5570] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53421 executeId=7638923553069547571 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:75244:2026-05-12 16:46:34.232 [coze-task-5570] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53421 executeId=7638923553069547571 status=RUNNING +aiimage-backend.log.2026-05-12.4:75452:2026-05-12 16:47:04.109 [coze-task-5575] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53421 taskId=8095 executeId=7638923553069547571 +aiimage-backend.log.2026-05-12.4:75454:2026-05-12 16:47:04.117 [coze-task-5575] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53421 executeId=7638923553069547571 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.4:75465:2026-05-12 16:47:04.780 [coze-task-5575] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53421 executeId=7638923553069547571 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.4:77524:2026-05-12 16:50:36.640 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:77525:2026-05-12 16:50:36.646 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.4:77526:2026-05-12 16:50:36.665 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:77527:2026-05-12 16:50:36.665 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:77534:2026-05-12 16:50:37.364 [coze-task-5612] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=21 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.4:77535:2026-05-12 16:50:37.371 [coze-task-5612] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=703 +aiimage-backend.log.2026-05-12.4:80628:2026-05-12 16:53:35.676 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=true cozeDone=false +aiimage-backend.log.2026-05-12.4:80629:2026-05-12 16:53:35.681 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=true cozeDone=false +aiimage-backend.log.2026-05-12.4:80632:2026-05-12 16:53:36.124 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:80633:2026-05-12 16:53:36.124 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:80634:2026-05-12 16:53:36.143 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:80635:2026-05-12 16:53:36.143 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:80700:2026-05-12 16:53:46.150 [coze-task-5643] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:80701:2026-05-12 16:53:46.150 [coze-task-5643] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:80702:2026-05-12 16:53:46.150 [coze-task-5643] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process requeued because task lock is busy jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 +aiimage-backend.log.2026-05-12.4:80763:2026-05-12 16:53:56.180 [coze-task-5646] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:80764:2026-05-12 16:53:56.180 [coze-task-5646] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:80765:2026-05-12 16:53:56.180 [coze-task-5646] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process requeued because task lock is busy jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 +aiimage-backend.log.2026-05-12.4:80852:2026-05-12 16:54:06.209 [coze-task-5647] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:80853:2026-05-12 16:54:06.209 [coze-task-5647] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:80854:2026-05-12 16:54:06.210 [coze-task-5647] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process requeued because task lock is busy jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 +aiimage-backend.log.2026-05-12.4:80913:2026-05-12 16:54:16.240 [coze-task-5651] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:80914:2026-05-12 16:54:16.241 [coze-task-5651] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:80915:2026-05-12 16:54:16.241 [coze-task-5651] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process requeued because task lock is busy jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 +aiimage-backend.log.2026-05-12.4:80992:2026-05-12 16:54:26.271 [coze-task-5652] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:80993:2026-05-12 16:54:26.271 [coze-task-5652] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:80994:2026-05-12 16:54:26.272 [coze-task-5652] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process requeued because task lock is busy jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 +aiimage-backend.log.2026-05-12.4:81112:2026-05-12 16:54:36.304 [coze-task-5656] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81113:2026-05-12 16:54:36.304 [coze-task-5656] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81114:2026-05-12 16:54:36.305 [coze-task-5656] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process requeued because task lock is busy jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 +aiimage-backend.log.2026-05-12.4:81232:2026-05-12 16:54:46.335 [coze-task-5661] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81233:2026-05-12 16:54:46.335 [coze-task-5661] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81234:2026-05-12 16:54:46.335 [coze-task-5661] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process requeued because task lock is busy jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 +aiimage-backend.log.2026-05-12.4:81300:2026-05-12 16:54:56.358 [coze-task-5664] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81301:2026-05-12 16:54:56.358 [coze-task-5664] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81302:2026-05-12 16:54:56.358 [coze-task-5664] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process requeued because task lock is busy jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 +aiimage-backend.log.2026-05-12.4:81388:2026-05-12 16:55:06.383 [coze-task-5665] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81389:2026-05-12 16:55:06.383 [coze-task-5665] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81390:2026-05-12 16:55:06.383 [coze-task-5665] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process requeued because task lock is busy jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 +aiimage-backend.log.2026-05-12.4:81454:2026-05-12 16:55:16.411 [coze-task-5669] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81455:2026-05-12 16:55:16.411 [coze-task-5669] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81456:2026-05-12 16:55:16.412 [coze-task-5669] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process requeued because task lock is busy jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 +aiimage-backend.log.2026-05-12.4:81522:2026-05-12 16:55:26.441 [coze-task-5671] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81523:2026-05-12 16:55:26.441 [coze-task-5671] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81524:2026-05-12 16:55:26.441 [coze-task-5671] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process requeued because task lock is busy jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 +aiimage-backend.log.2026-05-12.4:81625:2026-05-12 16:55:36.468 [coze-task-5673] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81626:2026-05-12 16:55:36.468 [coze-task-5673] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81627:2026-05-12 16:55:36.468 [coze-task-5673] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process requeued because task lock is busy jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 +aiimage-backend.log.2026-05-12.4:81690:2026-05-12 16:55:46.497 [coze-task-5678] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81691:2026-05-12 16:55:46.497 [coze-task-5678] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81692:2026-05-12 16:55:46.497 [coze-task-5678] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process requeued because task lock is busy jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 +aiimage-backend.log.2026-05-12.4:81761:2026-05-12 16:55:56.520 [coze-task-5679] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81762:2026-05-12 16:55:56.520 [coze-task-5679] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81763:2026-05-12 16:55:56.521 [coze-task-5679] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process requeued because task lock is busy jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 +aiimage-backend.log.2026-05-12.4:81863:2026-05-12 16:56:06.549 [coze-task-5680] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81864:2026-05-12 16:56:06.549 [coze-task-5680] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81865:2026-05-12 16:56:06.549 [coze-task-5680] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process requeued because task lock is busy jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 +aiimage-backend.log.2026-05-12.4:81957:2026-05-12 16:56:16.574 [coze-task-5685] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81958:2026-05-12 16:56:16.574 [coze-task-5685] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:81959:2026-05-12 16:56:16.574 [coze-task-5685] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process requeued because task lock is busy jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 +aiimage-backend.log.2026-05-12.4:82019:2026-05-12 16:56:26.599 [coze-task-5687] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:82020:2026-05-12 16:56:26.599 [coze-task-5687] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:82021:2026-05-12 16:56:26.599 [coze-task-5687] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process requeued because task lock is busy jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 +aiimage-backend.log.2026-05-12.4:82107:2026-05-12 16:56:36.626 [coze-task-5688] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:82108:2026-05-12 16:56:36.626 [coze-task-5688] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.4:82109:2026-05-12 16:56:36.626 [coze-task-5688] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process requeued because task lock is busy jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 +aiimage-backend.log.2026-05-12.4:82123:2026-05-12 16:56:38.964 [coze-task-5644] WARN c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submit failed taskId=8095 jobId=2713 rows=31 batch=1/1 err=Coze submit throttle lock timeout +aiimage-backend.log.2026-05-12.4:82128:2026-05-12 16:56:39.697 [coze-task-5644] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] assemble workbook taskId=8095 parsedRows=3286 receivedRows=3286 resultRows=3286 resolvedRows=3286 reasonRows=3201 +aiimage-backend.log.2026-05-12.4:82138:2026-05-12 16:56:41.058 [coze-task-5644] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process success jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=184911 resultFileUrl=result/appearance_patent/3ebc303c-c675-48c2-8fb4-fd8e0141b03b/黄建彬查询专利3-8095-10731-bda913fc-215b-45a3-be9c-7c44aaa8c433-result.xlsx +aiimage-backend.log.2026-05-12.4:82143:2026-05-12 16:56:41.319 [coze-task-5691] WARN c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] read all rows failed taskId=8095 err=读取解析载荷失败 +aiimage-backend.log.2026-05-12.4:82144:2026-05-12 16:56:41.327 [coze-task-5691] WARN c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process failed jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 msg=读取解析载荷失败 +aiimage-backend.log.2026-05-12.2:898:2026-05-12 05:58:05.681 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:899:2026-05-12 05:58:05.686 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:900:2026-05-12 05:58:05.704 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:901:2026-05-12 05:58:05.704 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:925:2026-05-12 05:58:06.002 [coze-task-1556] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=41 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.2:926:2026-05-12 05:58:06.010 [coze-task-1556] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=303 +aiimage-backend.log.2026-05-12.2:6474:2026-05-12 06:04:12.031 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:6475:2026-05-12 06:04:12.035 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:6476:2026-05-12 06:04:12.055 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:6477:2026-05-12 06:04:12.055 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:6779:2026-05-12 06:04:42.811 [coze-task-1582] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638758408044871732 +aiimage-backend.log.2026-05-12.2:6780:2026-05-12 06:04:42.820 [coze-task-1582] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=30761 +aiimage-backend.log.2026-05-12.2:6994:2026-05-12 06:05:02.171 [coze-task-1586] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=52957 taskId=8095 executeId=7638758408044871732 +aiimage-backend.log.2026-05-12.2:6997:2026-05-12 06:05:02.179 [coze-task-1586] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=52957 executeId=7638758408044871732 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:6999:2026-05-12 06:05:02.305 [coze-task-1586] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=52957 executeId=7638758408044871732 status=RUNNING +aiimage-backend.log.2026-05-12.2:7305:2026-05-12 06:05:32.172 [coze-task-1589] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=52957 taskId=8095 executeId=7638758408044871732 +aiimage-backend.log.2026-05-12.2:7306:2026-05-12 06:05:32.179 [coze-task-1589] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=52957 executeId=7638758408044871732 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:7308:2026-05-12 06:05:32.468 [coze-task-1589] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=52957 executeId=7638758408044871732 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.2:10431:2026-05-12 06:10:21.133 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:10432:2026-05-12 06:10:21.139 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:10433:2026-05-12 06:10:21.159 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:10434:2026-05-12 06:10:21.159 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:10444:2026-05-12 06:10:21.387 [coze-task-1604] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=33 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.2:10445:2026-05-12 06:10:21.392 [coze-task-1604] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=230 +aiimage-backend.log.2026-05-12.2:15833:2026-05-12 06:16:30.076 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:15834:2026-05-12 06:16:30.082 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:15835:2026-05-12 06:16:30.100 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:15836:2026-05-12 06:16:30.100 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:16373:2026-05-12 06:17:29.087 [coze-task-1617] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638761683033243690 +aiimage-backend.log.2026-05-12.2:16374:2026-05-12 06:17:29.094 [coze-task-1617] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=58991 +aiimage-backend.log.2026-05-12.2:16417:2026-05-12 06:17:32.203 [coze-task-1619] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=52963 taskId=8095 executeId=7638761683033243690 +aiimage-backend.log.2026-05-12.2:16419:2026-05-12 06:17:32.211 [coze-task-1619] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=52963 executeId=7638761683033243690 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:16425:2026-05-12 06:17:32.334 [coze-task-1619] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=52963 executeId=7638761683033243690 status=RUNNING +aiimage-backend.log.2026-05-12.2:16756:2026-05-12 06:18:02.205 [coze-task-1624] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=52963 taskId=8095 executeId=7638761683033243690 +aiimage-backend.log.2026-05-12.2:16758:2026-05-12 06:18:02.211 [coze-task-1624] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=52963 executeId=7638761683033243690 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:16764:2026-05-12 06:18:02.414 [coze-task-1624] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=52963 executeId=7638761683033243690 status=RUNNING +aiimage-backend.log.2026-05-12.2:17041:2026-05-12 06:18:32.206 [coze-task-1626] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=52963 taskId=8095 executeId=7638761683033243690 +aiimage-backend.log.2026-05-12.2:17043:2026-05-12 06:18:32.215 [coze-task-1626] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=52963 executeId=7638761683033243690 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:17058:2026-05-12 06:18:32.705 [coze-task-1626] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=52963 executeId=7638761683033243690 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.2:21272:2026-05-12 06:22:39.066 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:21273:2026-05-12 06:22:39.071 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:21274:2026-05-12 06:22:39.089 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:21275:2026-05-12 06:22:39.089 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:21277:2026-05-12 06:22:39.669 [coze-task-1636] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=25 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.2:21278:2026-05-12 06:22:39.682 [coze-task-1636] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=590 +aiimage-backend.log.2026-05-12.2:24931:2026-05-12 06:28:47.178 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:24932:2026-05-12 06:28:47.183 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:24933:2026-05-12 06:28:47.202 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:24934:2026-05-12 06:28:47.202 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:24936:2026-05-12 06:28:47.527 [coze-task-1655] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=46 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.2:24937:2026-05-12 06:28:47.538 [coze-task-1655] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=333 +aiimage-backend.log.2026-05-12.2:30129:2026-05-12 06:34:54.041 [http-nio-18080-exec-3] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:30131:2026-05-12 06:34:54.045 [http-nio-18080-exec-3] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:30132:2026-05-12 06:34:54.064 [http-nio-18080-exec-3] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:30133:2026-05-12 06:34:54.064 [http-nio-18080-exec-3] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:30438:2026-05-12 06:35:26.121 [coze-task-1669] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638766309548163122 +aiimage-backend.log.2026-05-12.2:30439:2026-05-12 06:35:26.129 [coze-task-1669] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=32060 +aiimage-backend.log.2026-05-12.2:30507:2026-05-12 06:35:32.257 [coze-task-1672] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=52974 taskId=8095 executeId=7638766309548163122 +aiimage-backend.log.2026-05-12.2:30510:2026-05-12 06:35:32.265 [coze-task-1672] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=52974 executeId=7638766309548163122 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:30513:2026-05-12 06:35:32.377 [coze-task-1672] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=52974 executeId=7638766309548163122 status=RUNNING +aiimage-backend.log.2026-05-12.2:30799:2026-05-12 06:36:02.258 [coze-task-1675] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=52974 taskId=8095 executeId=7638766309548163122 +aiimage-backend.log.2026-05-12.2:30801:2026-05-12 06:36:02.265 [coze-task-1675] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=52974 executeId=7638766309548163122 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:30806:2026-05-12 06:36:02.583 [coze-task-1675] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=52974 executeId=7638766309548163122 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.2:34266:2026-05-12 06:41:01.788 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:34267:2026-05-12 06:41:01.793 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:34268:2026-05-12 06:41:01.814 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:34269:2026-05-12 06:41:01.814 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:34277:2026-05-12 06:41:02.222 [coze-task-1684] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=38 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.2:34278:2026-05-12 06:41:02.228 [coze-task-1684] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=411 +aiimage-backend.log.2026-05-12.2:38991:2026-05-12 06:47:06.603 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:38992:2026-05-12 06:47:06.610 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:38993:2026-05-12 06:47:06.632 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:38994:2026-05-12 06:47:06.633 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:39507:2026-05-12 06:47:56.740 [coze-task-1703] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638769558660546595 +aiimage-backend.log.2026-05-12.2:39508:2026-05-12 06:47:56.751 [coze-task-1703] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=50115 +aiimage-backend.log.2026-05-12.2:39553:2026-05-12 06:48:02.293 [coze-task-1706] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=52981 taskId=8095 executeId=7638769558660546595 +aiimage-backend.log.2026-05-12.2:39554:2026-05-12 06:48:02.301 [coze-task-1706] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=52981 executeId=7638769558660546595 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:39561:2026-05-12 06:48:02.488 [coze-task-1706] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=52981 executeId=7638769558660546595 status=RUNNING +aiimage-backend.log.2026-05-12.2:39848:2026-05-12 06:48:32.295 [coze-task-1709] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=52981 taskId=8095 executeId=7638769558660546595 +aiimage-backend.log.2026-05-12.2:39850:2026-05-12 06:48:32.301 [coze-task-1709] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=52981 executeId=7638769558660546595 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:39852:2026-05-12 06:48:32.503 [coze-task-1709] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=52981 executeId=7638769558660546595 status=RUNNING +aiimage-backend.log.2026-05-12.2:40243:2026-05-12 06:49:02.296 [coze-task-1710] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=52981 taskId=8095 executeId=7638769558660546595 +aiimage-backend.log.2026-05-12.2:40245:2026-05-12 06:49:02.297 [coze-task-1710] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=52981 executeId=7638769558660546595 lastPolledAt=2026-05-12T06:48:33 +aiimage-backend.log.2026-05-12.2:40593:2026-05-12 06:49:32.298 [coze-task-1715] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=52981 taskId=8095 executeId=7638769558660546595 +aiimage-backend.log.2026-05-12.2:40594:2026-05-12 06:49:32.305 [coze-task-1715] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=52981 executeId=7638769558660546595 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:40597:2026-05-12 06:49:32.784 [coze-task-1715] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=52981 executeId=7638769558660546595 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.2:44732:2026-05-12 06:53:15.037 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:44733:2026-05-12 06:53:15.042 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:44734:2026-05-12 06:53:15.061 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:44735:2026-05-12 06:53:15.061 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:44737:2026-05-12 06:53:15.440 [coze-task-1720] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=30 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.2:44738:2026-05-12 06:53:15.447 [coze-task-1720] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=382 +aiimage-backend.log.2026-05-12.2:48486:2026-05-12 06:59:21.574 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:48487:2026-05-12 06:59:21.579 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:48488:2026-05-12 06:59:21.603 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:48489:2026-05-12 06:59:21.603 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:48798:2026-05-12 06:59:52.206 [coze-task-1732] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638772641251606563 +aiimage-backend.log.2026-05-12.2:48799:2026-05-12 06:59:52.214 [coze-task-1732] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=30607 +aiimage-backend.log.2026-05-12.2:48946:2026-05-12 07:00:02.326 [coze-task-1734] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=52985 taskId=8095 executeId=7638772641251606563 +aiimage-backend.log.2026-05-12.2:48947:2026-05-12 07:00:02.335 [coze-task-1734] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=52985 executeId=7638772641251606563 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:48949:2026-05-12 07:00:02.454 [coze-task-1734] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=52985 executeId=7638772641251606563 status=RUNNING +aiimage-backend.log.2026-05-12.2:49472:2026-05-12 07:00:32.328 [coze-task-1735] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=52985 taskId=8095 executeId=7638772641251606563 +aiimage-backend.log.2026-05-12.2:49473:2026-05-12 07:00:32.336 [coze-task-1735] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=52985 executeId=7638772641251606563 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:49478:2026-05-12 07:00:32.669 [coze-task-1735] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=52985 executeId=7638772641251606563 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.2:53684:2026-05-12 07:05:26.983 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:53686:2026-05-12 07:05:26.988 [http-nio-18080-exec-10] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:53687:2026-05-12 07:05:27.007 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:53688:2026-05-12 07:05:27.007 [http-nio-18080-exec-10] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:53690:2026-05-12 07:05:27.363 [coze-task-1756] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=22 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.2:53691:2026-05-12 07:05:27.369 [coze-task-1756] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=359 +aiimage-backend.log.2026-05-12.2:58309:2026-05-12 07:11:31.034 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:58310:2026-05-12 07:11:31.039 [http-nio-18080-exec-7] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:58311:2026-05-12 07:11:31.057 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:58312:2026-05-12 07:11:31.057 [http-nio-18080-exec-7] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:58317:2026-05-12 07:11:31.333 [coze-task-1773] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=43 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.2:58318:2026-05-12 07:11:31.339 [coze-task-1773] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=279 +aiimage-backend.log.2026-05-12.2:63013:2026-05-12 07:17:36.959 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:63014:2026-05-12 07:17:36.964 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:63015:2026-05-12 07:17:36.983 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:63016:2026-05-12 07:17:36.983 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:63453:2026-05-12 07:18:07.803 [coze-task-1792] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638777334548512808 +aiimage-backend.log.2026-05-12.2:63454:2026-05-12 07:18:07.810 [coze-task-1792] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=30824 +aiimage-backend.log.2026-05-12.2:63685:2026-05-12 07:18:32.381 [coze-task-1797] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=52997 taskId=8095 executeId=7638777334548512808 +aiimage-backend.log.2026-05-12.2:63692:2026-05-12 07:18:32.389 [coze-task-1797] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=52997 executeId=7638777334548512808 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:63696:2026-05-12 07:18:32.515 [coze-task-1797] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=52997 executeId=7638777334548512808 status=RUNNING +aiimage-backend.log.2026-05-12.2:63995:2026-05-12 07:19:02.383 [coze-task-1802] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=52997 taskId=8095 executeId=7638777334548512808 +aiimage-backend.log.2026-05-12.2:63998:2026-05-12 07:19:02.384 [coze-task-1802] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=52997 executeId=7638777334548512808 lastPolledAt=2026-05-12T07:18:33 +aiimage-backend.log.2026-05-12.2:64308:2026-05-12 07:19:32.384 [coze-task-1806] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=52997 taskId=8095 executeId=7638777334548512808 +aiimage-backend.log.2026-05-12.2:64310:2026-05-12 07:19:32.392 [coze-task-1806] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=52997 executeId=7638777334548512808 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:64312:2026-05-12 07:19:32.902 [coze-task-1806] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=52997 executeId=7638777334548512808 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.2:68274:2026-05-12 07:23:43.374 [http-nio-18080-exec-6] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:68275:2026-05-12 07:23:43.379 [http-nio-18080-exec-6] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:68277:2026-05-12 07:23:43.398 [http-nio-18080-exec-6] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:68278:2026-05-12 07:23:43.398 [http-nio-18080-exec-6] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:68286:2026-05-12 07:23:43.986 [coze-task-1814] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=35 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.2:68287:2026-05-12 07:23:43.997 [coze-task-1814] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=595 +aiimage-backend.log.2026-05-12.2:71995:2026-05-12 07:29:50.259 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:71996:2026-05-12 07:29:50.264 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:71997:2026-05-12 07:29:50.282 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:71998:2026-05-12 07:29:50.282 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:72469:2026-05-12 07:30:20.715 [coze-task-1828] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638780497149100082 +aiimage-backend.log.2026-05-12.2:72470:2026-05-12 07:30:20.723 [coze-task-1828] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=30438 +aiimage-backend.log.2026-05-12.2:72675:2026-05-12 07:30:32.414 [coze-task-1829] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53001 taskId=8095 executeId=7638780497149100082 +aiimage-backend.log.2026-05-12.2:72676:2026-05-12 07:30:32.420 [coze-task-1829] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53001 executeId=7638780497149100082 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:72682:2026-05-12 07:30:32.563 [coze-task-1829] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53001 executeId=7638780497149100082 status=RUNNING +aiimage-backend.log.2026-05-12.2:73174:2026-05-12 07:31:02.415 [coze-task-1831] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53001 taskId=8095 executeId=7638780497149100082 +aiimage-backend.log.2026-05-12.2:73175:2026-05-12 07:31:02.416 [coze-task-1831] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53001 executeId=7638780497149100082 lastPolledAt=2026-05-12T07:30:33 +aiimage-backend.log.2026-05-12.2:73708:2026-05-12 07:31:32.416 [coze-task-1832] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53001 taskId=8095 executeId=7638780497149100082 +aiimage-backend.log.2026-05-12.2:73709:2026-05-12 07:31:32.423 [coze-task-1832] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53001 executeId=7638780497149100082 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:73714:2026-05-12 07:31:32.748 [coze-task-1832] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53001 executeId=7638780497149100082 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.2:77821:2026-05-12 07:35:57.629 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:77822:2026-05-12 07:35:57.634 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:77823:2026-05-12 07:35:57.652 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:77824:2026-05-12 07:35:57.652 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:77830:2026-05-12 07:35:58.017 [coze-task-1842] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=27 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.2:77831:2026-05-12 07:35:58.023 [coze-task-1842] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=368 +aiimage-backend.log.2026-05-12.2:83252:2026-05-12 07:42:07.411 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:83253:2026-05-12 07:42:07.416 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:83254:2026-05-12 07:42:07.439 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:83255:2026-05-12 07:42:07.439 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:83260:2026-05-12 07:42:07.745 [coze-task-1870] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=48 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.2:83261:2026-05-12 07:42:07.756 [coze-task-1870] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=313 +aiimage-backend.log.2026-05-12.2:87680:2026-05-12 07:48:13.153 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:87681:2026-05-12 07:48:13.160 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:87682:2026-05-12 07:48:13.180 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:87683:2026-05-12 07:48:13.180 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:87958:2026-05-12 07:48:43.729 [coze-task-1879] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638785237577433098 +aiimage-backend.log.2026-05-12.2:87959:2026-05-12 07:48:43.736 [coze-task-1879] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=30553 +aiimage-backend.log.2026-05-12.2:88142:2026-05-12 07:49:02.464 [coze-task-1881] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53011 taskId=8095 executeId=7638785237577433098 +aiimage-backend.log.2026-05-12.2:88144:2026-05-12 07:49:02.471 [coze-task-1881] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53011 executeId=7638785237577433098 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:88150:2026-05-12 07:49:02.592 [coze-task-1881] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53011 executeId=7638785237577433098 status=RUNNING +aiimage-backend.log.2026-05-12.2:88461:2026-05-12 07:49:32.465 [coze-task-1883] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53011 taskId=8095 executeId=7638785237577433098 +aiimage-backend.log.2026-05-12.2:88462:2026-05-12 07:49:32.467 [coze-task-1883] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53011 executeId=7638785237577433098 lastPolledAt=2026-05-12T07:49:03 +aiimage-backend.log.2026-05-12.2:88751:2026-05-12 07:50:02.467 [coze-task-1885] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53011 taskId=8095 executeId=7638785237577433098 +aiimage-backend.log.2026-05-12.2:88752:2026-05-12 07:50:02.474 [coze-task-1885] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53011 executeId=7638785237577433098 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:88763:2026-05-12 07:50:02.941 [coze-task-1885] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53011 executeId=7638785237577433098 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.2:92857:2026-05-12 07:54:17.964 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:92858:2026-05-12 07:54:17.970 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:92859:2026-05-12 07:54:17.990 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:92860:2026-05-12 07:54:17.990 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:92862:2026-05-12 07:54:18.428 [coze-task-1904] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=40 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.2:92863:2026-05-12 07:54:18.439 [coze-task-1904] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=446 +aiimage-backend.log.2026-05-12.2:96675:2026-05-12 08:00:26.842 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:96676:2026-05-12 08:00:26.848 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:96677:2026-05-12 08:00:26.869 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:96678:2026-05-12 08:00:26.869 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:97251:2026-05-12 08:00:57.580 [coze-task-1916] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638788406897917995 +aiimage-backend.log.2026-05-12.2:97252:2026-05-12 08:00:57.591 [coze-task-1916] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=30718 +aiimage-backend.log.2026-05-12.2:97340:2026-05-12 08:01:02.500 [coze-task-1920] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53019 taskId=8095 executeId=7638788406897917995 +aiimage-backend.log.2026-05-12.2:97345:2026-05-12 08:01:02.509 [coze-task-1920] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53019 executeId=7638788406897917995 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:97350:2026-05-12 08:01:02.657 [coze-task-1920] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53019 executeId=7638788406897917995 status=RUNNING +aiimage-backend.log.2026-05-12.2:98108:2026-05-12 08:01:32.501 [coze-task-1923] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53019 taskId=8095 executeId=7638788406897917995 +aiimage-backend.log.2026-05-12.2:98111:2026-05-12 08:01:32.503 [coze-task-1923] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53019 executeId=7638788406897917995 lastPolledAt=2026-05-12T08:01:03 +aiimage-backend.log.2026-05-12.2:98940:2026-05-12 08:02:02.503 [coze-task-1925] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53019 taskId=8095 executeId=7638788406897917995 +aiimage-backend.log.2026-05-12.2:98941:2026-05-12 08:02:02.511 [coze-task-1925] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53019 executeId=7638788406897917995 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:98946:2026-05-12 08:02:02.967 [coze-task-1925] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53019 executeId=7638788406897917995 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.2:101742:2026-05-12 08:06:38.965 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:101743:2026-05-12 08:06:38.970 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:101744:2026-05-12 08:06:38.991 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:101745:2026-05-12 08:06:38.991 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:101748:2026-05-12 08:06:39.425 [coze-task-1935] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=32 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.2:101749:2026-05-12 08:06:39.431 [coze-task-1935] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=436 +aiimage-backend.log.2026-05-12.2:107403:2026-05-12 08:12:48.306 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:107404:2026-05-12 08:12:48.311 [http-nio-18080-exec-9] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:107405:2026-05-12 08:12:48.330 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:107406:2026-05-12 08:12:48.330 [http-nio-18080-exec-9] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:107735:2026-05-12 08:13:19.456 [coze-task-1950] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638791578316619811 +aiimage-backend.log.2026-05-12.2:107736:2026-05-12 08:13:19.466 [coze-task-1950] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=31132 +aiimage-backend.log.2026-05-12.2:107844:2026-05-12 08:13:32.535 [coze-task-1952] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53024 taskId=8095 executeId=7638791578316619811 +aiimage-backend.log.2026-05-12.2:107845:2026-05-12 08:13:32.543 [coze-task-1952] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53024 executeId=7638791578316619811 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:107847:2026-05-12 08:13:32.645 [coze-task-1952] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53024 executeId=7638791578316619811 status=RUNNING +aiimage-backend.log.2026-05-12.2:108129:2026-05-12 08:14:02.537 [coze-task-1953] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53024 taskId=8095 executeId=7638791578316619811 +aiimage-backend.log.2026-05-12.2:108130:2026-05-12 08:14:02.538 [coze-task-1953] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53024 executeId=7638791578316619811 lastPolledAt=2026-05-12T08:13:33 +aiimage-backend.log.2026-05-12.2:108427:2026-05-12 08:14:32.538 [coze-task-1954] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53024 taskId=8095 executeId=7638791578316619811 +aiimage-backend.log.2026-05-12.2:108428:2026-05-12 08:14:32.545 [coze-task-1954] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53024 executeId=7638791578316619811 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:108433:2026-05-12 08:14:32.952 [coze-task-1954] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53024 executeId=7638791578316619811 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.2:111121:2026-05-12 08:18:54.995 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:111122:2026-05-12 08:18:55.000 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:111123:2026-05-12 08:18:55.019 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:111124:2026-05-12 08:18:55.019 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:111126:2026-05-12 08:18:55.674 [coze-task-1964] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=24 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.2:111127:2026-05-12 08:18:55.685 [coze-task-1964] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=663 +aiimage-backend.log.2026-05-12.2:116269:2026-05-12 08:24:59.619 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:116270:2026-05-12 08:24:59.626 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:116271:2026-05-12 08:24:59.648 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:116272:2026-05-12 08:24:59.648 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:116286:2026-05-12 08:25:00.511 [coze-task-1989] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=45 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.2:116287:2026-05-12 08:25:00.524 [coze-task-1989] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=872 +aiimage-backend.log.2026-05-12.2:120437:2026-05-12 08:31:15.396 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:120438:2026-05-12 08:31:15.401 [http-nio-18080-exec-4] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:120439:2026-05-12 08:31:15.422 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:120440:2026-05-12 08:31:15.422 [http-nio-18080-exec-4] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:121725:2026-05-12 08:31:46.036 [coze-task-2002] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638796343398039561 +aiimage-backend.log.2026-05-12.2:121726:2026-05-12 08:31:46.043 [coze-task-2002] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=30618 +aiimage-backend.log.2026-05-12.2:121901:2026-05-12 08:32:02.588 [coze-task-2004] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53033 taskId=8095 executeId=7638796343398039561 +aiimage-backend.log.2026-05-12.2:121902:2026-05-12 08:32:02.594 [coze-task-2004] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53033 executeId=7638796343398039561 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:121904:2026-05-12 08:32:02.718 [coze-task-2004] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53033 executeId=7638796343398039561 status=RUNNING +aiimage-backend.log.2026-05-12.2:122216:2026-05-12 08:32:32.589 [coze-task-2005] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53033 taskId=8095 executeId=7638796343398039561 +aiimage-backend.log.2026-05-12.2:122217:2026-05-12 08:32:32.590 [coze-task-2005] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53033 executeId=7638796343398039561 lastPolledAt=2026-05-12T08:32:03 +aiimage-backend.log.2026-05-12.2:122508:2026-05-12 08:33:02.591 [coze-task-2006] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53033 taskId=8095 executeId=7638796343398039561 +aiimage-backend.log.2026-05-12.2:122509:2026-05-12 08:33:02.598 [coze-task-2006] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53033 executeId=7638796343398039561 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:122514:2026-05-12 08:33:03.024 [coze-task-2006] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53033 executeId=7638796343398039561 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.2:125511:2026-05-12 08:37:35.205 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:125512:2026-05-12 08:37:35.212 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:125513:2026-05-12 08:37:35.233 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:125514:2026-05-12 08:37:35.233 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:125516:2026-05-12 08:37:35.581 [coze-task-2019] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=37 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.2:125517:2026-05-12 08:37:35.592 [coze-task-2019] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=355 +aiimage-backend.log.2026-05-12.2:130850:2026-05-12 08:43:52.884 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:130851:2026-05-12 08:43:52.889 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:130852:2026-05-12 08:43:52.910 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:130853:2026-05-12 08:43:52.910 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:131150:2026-05-12 08:44:23.666 [coze-task-2031] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638799601927241755 +aiimage-backend.log.2026-05-12.2:131151:2026-05-12 08:44:23.673 [coze-task-2031] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=30760 +aiimage-backend.log.2026-05-12.2:131253:2026-05-12 08:44:32.624 [coze-task-2033] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53040 taskId=8095 executeId=7638799601927241755 +aiimage-backend.log.2026-05-12.2:131256:2026-05-12 08:44:32.631 [coze-task-2033] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53040 executeId=7638799601927241755 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:131261:2026-05-12 08:44:32.732 [coze-task-2033] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53040 executeId=7638799601927241755 status=RUNNING +aiimage-backend.log.2026-05-12.2:131558:2026-05-12 08:45:02.626 [coze-task-2035] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53040 taskId=8095 executeId=7638799601927241755 +aiimage-backend.log.2026-05-12.2:131560:2026-05-12 08:45:02.627 [coze-task-2035] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53040 executeId=7638799601927241755 lastPolledAt=2026-05-12T08:44:33 +aiimage-backend.log.2026-05-12.2:131887:2026-05-12 08:45:32.627 [coze-task-2037] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53040 taskId=8095 executeId=7638799601927241755 +aiimage-backend.log.2026-05-12.2:131888:2026-05-12 08:45:32.634 [coze-task-2037] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53040 executeId=7638799601927241755 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:131893:2026-05-12 08:45:33.054 [coze-task-2037] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53040 executeId=7638799601927241755 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.2:134797:2026-05-12 08:50:10.773 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:134798:2026-05-12 08:50:10.779 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:134799:2026-05-12 08:50:10.797 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:134800:2026-05-12 08:50:10.797 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:134811:2026-05-12 08:50:11.436 [coze-task-2047] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=29 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.2:134812:2026-05-12 08:50:11.443 [coze-task-2047] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=639 +aiimage-backend.log.2026-05-12.2:140213:2026-05-12 08:56:21.587 [http-nio-18080-exec-3] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:140214:2026-05-12 08:56:21.592 [http-nio-18080-exec-3] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:140215:2026-05-12 08:56:21.609 [http-nio-18080-exec-3] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:140216:2026-05-12 08:56:21.609 [http-nio-18080-exec-3] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:140700:2026-05-12 08:57:10.187 [coze-task-2057] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze async submitted taskId=8095 jobId=2713 rows=50 batch=1/1 executeId=7638802886948667432 +aiimage-backend.log.2026-05-12.2:140701:2026-05-12 08:57:10.195 [coze-task-2057] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=48582 +aiimage-backend.log.2026-05-12.2:140919:2026-05-12 08:57:32.660 [coze-task-2061] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53045 taskId=8095 executeId=7638802886948667432 +aiimage-backend.log.2026-05-12.2:140924:2026-05-12 08:57:32.668 [coze-task-2061] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53045 executeId=7638802886948667432 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:140926:2026-05-12 08:57:32.787 [coze-task-2061] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll pending taskId=8095 stateId=53045 executeId=7638802886948667432 status=RUNNING +aiimage-backend.log.2026-05-12.2:141240:2026-05-12 08:58:02.661 [coze-task-2064] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53045 taskId=8095 executeId=7638802886948667432 +aiimage-backend.log.2026-05-12.2:141242:2026-05-12 08:58:02.662 [coze-task-2064] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll skipped by claim guard taskId=8095 stateId=53045 executeId=7638802886948667432 lastPolledAt=2026-05-12T08:57:33 +aiimage-backend.log.2026-05-12.2:141564:2026-05-12 08:58:32.663 [coze-task-2067] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll worker entered stateId=53045 taskId=8095 executeId=7638802886948667432 +aiimage-backend.log.2026-05-12.2:141565:2026-05-12 08:58:32.669 [coze-task-2067] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll start taskId=8095 stateId=53045 executeId=7638802886948667432 jobId=2713 chunk=null batch=1/1 +aiimage-backend.log.2026-05-12.2:141570:2026-05-12 08:58:33.013 [coze-task-2067] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze poll completed taskId=8095 stateId=53045 executeId=7638802886948667432 status=DONE batchRows=50 mergedRows=50 failure=- +aiimage-backend.log.2026-05-12.2:145540:2026-05-12 09:02:30.341 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:145541:2026-05-12 09:02:30.346 [http-nio-18080-exec-5] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:145542:2026-05-12 09:02:30.364 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:145543:2026-05-12 09:02:30.364 [http-nio-18080-exec-5] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:145549:2026-05-12 09:02:30.976 [coze-task-2076] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=21 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.2:145550:2026-05-12 09:02:30.986 [coze-task-2076] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=619 +aiimage-backend.log.2026-05-12.2:149475:2026-05-12 09:08:41.632 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:149476:2026-05-12 09:08:41.636 [http-nio-18080-exec-2] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:149477:2026-05-12 09:08:41.655 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:149478:2026-05-12 09:08:41.655 [http-nio-18080-exec-2] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:149483:2026-05-12 09:08:42.279 [coze-task-2093] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] coze batch waiting for more rows taskId=8095 jobId=2713 pendingRows=42 batchSize=50 finalUpload=false +aiimage-backend.log.2026-05-12.2:149484:2026-05-12 09:08:42.285 [coze-task-2093] INFO c.n.a.m.t.s.TaskResultFileJobWorker - [task-file-job] process deferred jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT resultId=10731 elapsedMs=627 +aiimage-backend.log.2026-05-12.2:155090:2026-05-12 09:14:51.029 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:155091:2026-05-12 09:14:51.035 [http-nio-18080-exec-8] INFO c.n.a.m.a.s.AppearancePatentTaskService - [appearance-patent] scope state updated taskId=8095 scope=8095 scopeHash=c40b15ca508f04649d16db6256bcbe09f2dd2fea63824d4e812a787d26c67ecd completed=false cozeDone=false +aiimage-backend.log.2026-05-12.2:155092:2026-05-12 09:14:51.052 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobPublisher - [task-file-job] mq disabled, fallback to local dispatcher/scheduled worker jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT +aiimage-backend.log.2026-05-12.2:155093:2026-05-12 09:14:51.052 [http-nio-18080-exec-8] INFO c.n.a.m.t.s.TaskFileJobDispatchCoordinator - [task-file-job] forced local async dispatch scheduled jobId=2713 taskId=8095 moduleType=APPEARANCE_PATENT diff --git a/app/.env b/app/.env index 63f4056..439f6bf 100644 --- a/app/.env +++ b/app/.env @@ -13,8 +13,8 @@ client_name=ShuFuAI # java_api_base=http://47.111.163.154:18080 -java_api_base=http://127.0.0.1:18080 +# java_api_base=http://127.0.0.1:18080 # java_api_base=http://8.136.19.173:18080 -# java_api_base=http://121.196.149.225:18080 +java_api_base=http://121.196.149.225:18080 diff --git a/app/amazon/similar_asin.py b/app/amazon/similar_asin.py index 8813399..4433ab5 100644 --- a/app/amazon/similar_asin.py +++ b/app/amazon/similar_asin.py @@ -594,9 +594,168 @@ class SimilarAsinTask(TaskBase): runing_task[task_id]["status"] = "failed" runing_task[task_id]["error"] = str(e) - def post_result(self, task_id: int, chunkIndex:int,chunkTotal: int, asin: str, error:str="", - item_data:dict={}, - is_done: bool = False): + def process_task(self, task_data: dict): + """Process similar ASIN task rows one by one.""" + try: + data = task_data.get("data", {}) + task_id = data.get("taskId") + if task_id: + queued_rows = self._count_payload_rows(data) + try: + parsed_payload = self.fetch_parsed_payload(task_id, data.get("user_id") or data.get("userId") or 1) + data = self._merge_parsed_payload(data, parsed_payload) + self.log( + f"similar asin task {task_id} loaded full parsed payload from Java, queuedRows={queued_rows}, fullRows={self._count_payload_rows(data)}" + ) + except Exception as e: + if not queued_rows: + raise + self.log( + f"similar asin task {task_id} failed to load full parsed payload, fallback to queued rows={queued_rows}: {e}", + "WARNING" + ) + groups = self.normalize_groups(data) + + if not task_id: + self.log("similar asin task_id is empty, skip", "WARNING") + return + + self.log(f"similar asin task {task_id} start, groups={len(groups)}") + + if not groups: + self.log("similar asin groups/rows is empty, skip", "WARNING") + return + + runing_task[task_id] = { + "status": "running", + "start_time": datetime.now().strftime("%Y-%m-%d %H:%M:%S"), + "total_shops": 1, + "processed_shops": 0, + "total_countries": len(groups), + "processed_countries": 0, + "total_asins": 0, + "processed_asins": 0, + "success_count": 0, + "failed_count": 0, + "stop_requested": False + } + + if task_id in runing_task and runing_task[task_id].get("stop_requested", False): + self.log(f"similar asin task {task_id} stop requested before processing", "WARNING") + runing_task[task_id]["status"] = "stopped" + return + + max_retry = 3 + """ + show_notification("开始抓取数据", "info") + """ + show_notification("Start fetching similar ASIN data", "info") + chrome = ChromeAmzone() + try: + result = [] + last_asin = "" + for gp_index, gp in enumerate(groups): + items = gp.get("items", []) + group_item = [] + for value in items: + asin = value.get("asin") + country = value.get("country") + last_asin = asin or last_asin + return_data = { + "image_url": "", + "title": "", + "similar_data": [] + } + for _ in range(max_retry): + try: + return_data = chrome.run(country, asin) or {} + self.log(f"similar asin crawl result -> {return_data}") + break + except Exception as e: + if "涓庨〉闈㈢殑杩炴帴宸叉柇寮€" in str(e): + chrome = ChromeAmzone() + if not isinstance(return_data, dict): + return_data = {} + similar_data = return_data.get("similar_data") + if not isinstance(similar_data, list): + similar_data = [] + group_item.append({ + "sourceFileKey": value.get("sourceFileKey"), + "sourceFilename": value.get("sourceFilename"), + "rowToken": value.get("rowToken"), + "groupKey": value.get("groupKey"), + "id": value.get("id") or value.get("displayId"), + "asin": value.get("asin"), + "country": value.get("country"), + "sku": value.get("sku"), + "url": return_data.get("image_url"), + "title": return_data.get("title"), + "done": False, + "urls": [ + item.get("ori_picture") + for item in similar_data + if isinstance(item, dict) and item.get("ori_picture") + ] + }) + + result.append({ + "sourceFileKey": gp.get("sourceFileKey"), + "sourceFilename": gp.get("sourceFilename"), + "groupKey": gp.get("groupKey"), + "baseId": gp.get("baseId"), + "displayId": gp.get("displayId"), + "items": group_item + }) + + is_done = gp_index == len(groups) - 1 + if len(result) > 20 or is_done: + self.post_result( + task_id=task_id, + chunkIndex=gp_index + 1, + chunkTotal=len(groups), + asin=last_asin, + item_data=result, + is_done=is_done + ) + result = [] + + if result: + self.post_result( + task_id=task_id, + chunkIndex=len(groups), + chunkTotal=len(groups), + asin=last_asin, + item_data=result, + is_done=True + ) + + try: + chrome.close() + except Exception as e: + print("close browser failed", e) + if task_id in runing_task: + runing_task[task_id]["processed_shops"] += 1 + except Exception as e: + self.log(f"similar asin task {task_id} failed: {str(e)}", "ERROR") + self.log(traceback.format_exc(), "ERROR") + + if task_id in runing_task: + if runing_task[task_id].get("stop_requested", False): + runing_task[task_id]["status"] = "stopped" + self.log(f"similar asin task {task_id} stopped") + else: + runing_task[task_id]["status"] = "completed" + self.log(f"similar asin task {task_id} completed") + + except Exception as e: + self.log(f"similar asin task failed: {traceback.format_exc()}", "ERROR") + if task_id and task_id in runing_task: + runing_task[task_id]["status"] = "failed" + runing_task[task_id]["error"] = str(e) + + def post_result(self, task_id: int, chunkIndex:int,chunkTotal: int, asin: str, error:str="", + item_data:dict={}, + is_done: bool = False): """回传处理结果到API """ diff --git a/backend-java/docs/baota-start-commands.md b/backend-java/docs/baota-start-commands.md new file mode 100644 index 0000000..f57b122 --- /dev/null +++ b/backend-java/docs/baota-start-commands.md @@ -0,0 +1,59 @@ +# Multi-Server Start Commands + +Use the same packaged jar on both servers. Do not switch code comments before packaging. + +Requirements: +- Build once: `mvn clean package -DskipTests` +- Use profile: `server` +- Put JVM options before `-jar` +- Pass `AIIMAGE_INSTANCE_ID` and Redis address from the startup command +- Result file job MQ is expected to stay enabled in packaged `server` deployments + +1Panel server 121: + +Environment variables: + +```env +SPRING_PROFILES_ACTIVE=server +AIIMAGE_INSTANCE_ID=server-121 +AIIMAGE_REDIS_HOST=192.168.0.172 +AIIMAGE_REDIS_PORT=16379 +AIIMAGE_REDIS_PASSWORD=B6COTcY094TYe545 +AIIMAGE_REDIS_DATABASE=0 +AIIMAGE_SERVER_PORT=18080 +AIIMAGE_STORAGE_LOCAL_TEMP_DIR=/app/data/tmp +AIIMAGE_RESULT_FILE_JOB_MQ_ENABLED=true +AIIMAGE_ROCKETMQ_NAME_SERVER=121.196.149.225:9876 +``` + +Recommended startup command: + +```bash +java -Xmx2048M -Xms2048M -jar /app/aiimage-backend-0.0.1-SNAPSHOT.jar +``` + +Baota server 111: + +```bash +/www/server/java/jdk-21.0.2/bin/java -Xmx1024M -Xms256M -jar /app/java/aiimage-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=server --aiimage.instance-id=server-111 --spring.data.redis.host=47.111.163.154 --spring.data.redis.port=16379 --spring.data.redis.password=B6COTcY094TYe545 --server.port=18080 --aiimage.storage.local-temp-dir=/app/data/tmp +``` + +Optional Baota server 121 command: + +```bash +/www/server/java/jdk-21.0.2/bin/java -Xmx1024M -Xms256M -jar /app/java/aiimage-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=server --aiimage.instance-id=server-121 --spring.data.redis.host=192.168.0.172 --spring.data.redis.port=16379 --spring.data.redis.password=B6COTcY094TYe545 --server.port=18080 --aiimage.storage.local-temp-dir=/app/data/tmp +``` + +Successful startup should show a line similar to: + +```text +[instance] resolved instanceId=server-121 source=configured +``` + +or: + +```text +[instance] resolved instanceId=server-111 source=configured +``` + +If the instanceId in the log does not match the startup command, the actual process was not started with the expected command. diff --git a/backend-java/src/main/java/com/nanri/aiimage/config/InstanceMetadata.java b/backend-java/src/main/java/com/nanri/aiimage/config/InstanceMetadata.java index 2ffa0f5..3d31438 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/config/InstanceMetadata.java +++ b/backend-java/src/main/java/com/nanri/aiimage/config/InstanceMetadata.java @@ -1,21 +1,38 @@ package com.nanri.aiimage.config; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.net.InetAddress; +@Slf4j @Component public class InstanceMetadata { private final String instanceId; private final String hostname; + private final String source; + private final boolean stable; public InstanceMetadata(@Value("${aiimage.instance-id:}") String configuredInstanceId) { this.hostname = resolveHostname(); - this.instanceId = configuredInstanceId == null || configuredInstanceId.isBlank() - ? this.hostname - : configuredInstanceId.trim(); + String normalizedConfiguredInstanceId = configuredInstanceId == null ? "" : configuredInstanceId.trim(); + if (!normalizedConfiguredInstanceId.isBlank()) { + this.instanceId = normalizedConfiguredInstanceId; + this.source = "configured"; + this.stable = true; + log.info("[instance] resolved instanceId={} source={} hostname={} continuityRisk=LOW", + this.instanceId, this.source, this.hostname); + } else { + this.instanceId = this.hostname; + this.source = detectFallbackSource(this.hostname); + this.stable = false; + log.warn("[instance] aiimage.instance-id is not configured, falling back to {}={} as instanceId. " + + "This may change after restart/redeploy and break task owner continuity. " + + "Set AIIMAGE_INSTANCE_ID in 1Panel/Docker env, or set -Daiimage.instance-id= in IDEA/local startup.", + this.source, this.hostname); + } } public String getInstanceId() { @@ -26,6 +43,14 @@ public class InstanceMetadata { return hostname; } + public String getSource() { + return source; + } + + public boolean isStable() { + return stable; + } + private static String resolveHostname() { try { return InetAddress.getLocalHost().getHostName(); @@ -34,4 +59,12 @@ public class InstanceMetadata { return (envHostname == null || envHostname.isBlank()) ? "unknown-host" : envHostname; } } + + private static String detectFallbackSource(String hostname) { + String envHostname = System.getenv("HOSTNAME"); + if (envHostname != null && !envHostname.isBlank() && envHostname.equalsIgnoreCase(hostname)) { + return "env.HOSTNAME"; + } + return "os.hostname"; + } } diff --git a/backend-java/src/main/java/com/nanri/aiimage/config/RequestTraceFilter.java b/backend-java/src/main/java/com/nanri/aiimage/config/RequestTraceFilter.java index 05bf060..ae607cb 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/config/RequestTraceFilter.java +++ b/backend-java/src/main/java/com/nanri/aiimage/config/RequestTraceFilter.java @@ -43,14 +43,18 @@ public class RequestTraceFilter extends OncePerRequestFilter { response.setHeader("X-AIIMAGE-Instance", instanceMetadata.getInstanceId()); response.setHeader("X-AIIMAGE-Host", instanceMetadata.getHostname()); + response.setHeader("X-AIIMAGE-Instance-Source", instanceMetadata.getSource()); + response.setHeader("X-AIIMAGE-Instance-Stable", String.valueOf(instanceMetadata.isStable())); try { filterChain.doFilter(request, response); } finally { long costMs = System.currentTimeMillis() - start; log.info( - "request-trace instance={} host={} method={} uri={} status={} remote={} forwardedHost={} forwardedProto={} forwardedPort={} requestId={} userAgent={} costMs={}", + "request-trace instance={} source={} stable={} host={} method={} uri={} status={} remote={} forwardedHost={} forwardedProto={} forwardedPort={} requestId={} userAgent={} costMs={}", instanceMetadata.getInstanceId(), + instanceMetadata.getSource(), + instanceMetadata.isStable(), instanceMetadata.getHostname(), request.getMethod(), request.getRequestURI(), diff --git a/backend-java/src/main/java/com/nanri/aiimage/config/StorageProperties.java b/backend-java/src/main/java/com/nanri/aiimage/config/StorageProperties.java index df040c3..9351f7c 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/config/StorageProperties.java +++ b/backend-java/src/main/java/com/nanri/aiimage/config/StorageProperties.java @@ -3,6 +3,8 @@ package com.nanri.aiimage.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; +import java.nio.file.Path; + @Data @ConfigurationProperties(prefix = "aiimage.storage") public class StorageProperties { @@ -12,4 +14,25 @@ public class StorageProperties { private long sourceRetentionHours = 24; private long resultRetentionHours = 24; private long transientPayloadRetentionHours = 72; + + public String getLocalTempDir() { + String configured = localTempDir == null ? "" : localTempDir.trim(); + if (configured.isBlank()) { + configured = "./data/tmp"; + } + try { + Path raw = Path.of(configured); + if (raw.isAbsolute()) { + return raw.normalize().toString(); + } + } catch (Exception ignored) { + // Fall through to resolve against a stable base directory. + } + + String userDir = System.getProperty("user.dir"); + if (userDir == null || userDir.isBlank()) { + userDir = System.getProperty("java.io.tmpdir", "."); + } + return Path.of(userDir).resolve(configured).normalize().toString(); + } } diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/appearancepatent/client/AppearancePatentCozeClient.java b/backend-java/src/main/java/com/nanri/aiimage/modules/appearancepatent/client/AppearancePatentCozeClient.java index 77fe94b..53af4d0 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/modules/appearancepatent/client/AppearancePatentCozeClient.java +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/appearancepatent/client/AppearancePatentCozeClient.java @@ -355,6 +355,9 @@ public class AppearancePatentCozeClient { text(firstNonNull(node.get("result"), firstNonNull(node.get("conclusion"), firstNonNull(itemNode.get("result"), itemNode.get("conclusion"))))), + text(firstNonNull( + firstNonNull(node.get("status"), firstNonNull(node.get("row_status"), node.get("rowStatus"))), + firstNonNull(itemNode.get("status"), firstNonNull(itemNode.get("row_status"), itemNode.get("rowStatus"))))), text(firstNonNull(node.get("title_reason"), firstNonNull(node.get("titleReason"), firstNonNull(itemNode.get("title_reason"), itemNode.get("titleReason"))))), @@ -465,6 +468,7 @@ public class AppearancePatentCozeClient { row.setAppearanceRisk(result.appearance()); row.setPatentRisk(result.patent()); row.setConclusion(result.result()); + row.setStatus(result.status()); row.setTitleReason(result.titleReason()); row.setAppearanceReason(result.appearanceReason()); row.setPatentReason(result.patentReason()); @@ -490,6 +494,7 @@ public class AppearancePatentCozeClient { row.setTitle(source.getTitle()); row.setError(source.getError()); row.setDone(source.getDone()); + row.setStatus(source.getStatus()); row.setTitleRisk(source.getTitleRisk()); row.setAppearanceRisk(source.getAppearanceRisk()); row.setPatentRisk(source.getPatentRisk()); @@ -942,6 +947,7 @@ public class AppearancePatentCozeClient { String appearance, String patent, String result, + String status, String titleReason, String appearanceReason, String patentReason diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/appearancepatent/model/dto/AppearancePatentResultRowDto.java b/backend-java/src/main/java/com/nanri/aiimage/modules/appearancepatent/model/dto/AppearancePatentResultRowDto.java index ab77eb2..0898cdb 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/modules/appearancepatent/model/dto/AppearancePatentResultRowDto.java +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/appearancepatent/model/dto/AppearancePatentResultRowDto.java @@ -48,6 +48,10 @@ public class AppearancePatentResultRowDto { @Schema(description = "单行完成标记。当前主要使用请求体顶层 done 控制任务收尾,该字段仅作兼容。", example = "true") private Boolean done; + @JsonAlias({"row_status", "rowStatus", "Status"}) + @Schema(description = "Coze row status", example = "success", accessMode = Schema.AccessMode.READ_ONLY) + private String status; + @Schema(description = "Java 调用 Coze 后生成的标题维度检测结果,对应最终 xlsx 的“标题维度(商标)”列。Python 回传请求中不要传该字段;即使传入,后端也会以 Java/Coze 处理结果为准。", example = "标题未发现明显商标侵权风险。", accessMode = Schema.AccessMode.READ_ONLY) private String titleRisk; diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/appearancepatent/service/AppearancePatentTaskService.java b/backend-java/src/main/java/com/nanri/aiimage/modules/appearancepatent/service/AppearancePatentTaskService.java index 4ead908..9a7be6e 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/modules/appearancepatent/service/AppearancePatentTaskService.java +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/appearancepatent/service/AppearancePatentTaskService.java @@ -118,7 +118,8 @@ public class AppearancePatentTaskService { "标题维度(商标)", "外观维度(外观设计专利)", "专利维度(发明/实用新型专利)", - "结论" + "结论", + "status" ); private final LocalFileStorageService localFileStorageService; @@ -424,7 +425,7 @@ public class AppearancePatentTaskService { completeSubmittedChunk(context); return null; }); - submitCozeForSubmittedChunk(context); + scheduleCozePipelineForSubmittedChunk(context); return; } FileTaskEntity task = fileTaskMapper.selectById(taskId); @@ -510,7 +511,7 @@ public class AppearancePatentTaskService { task.setUpdatedAt(LocalDateTime.now()); fileTaskMapper.updateById(task); } - submitCozeForSubmittedChunk(context); + scheduleCozePipelineForSubmittedChunk(context); } @Transactional @@ -560,14 +561,9 @@ public class AppearancePatentTaskService { if (transactionManager != null) { LocalDateTime threshold = LocalDateTime.now().minusMinutes(Math.max(1, properties.getStaleTimeoutMinutes())); long thresholdMillis = threshold.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); - List tasks = fileTaskMapper.selectList(new LambdaQueryWrapper() - .eq(FileTaskEntity::getModuleType, MODULE_TYPE) - .eq(FileTaskEntity::getStatus, STATUS_RUNNING) - .lt(FileTaskEntity::getUpdatedAt, threshold) - .last("limit 50")); + List tasks = listStaleFinalizeCandidates(threshold); for (FileTaskEntity task : tasks) { - if (isJavaSideProcessing(task.getId())) { - touchJavaSideTaskActivity(task.getId()); + if (!isOwnerCurrent(ownerFromTask(task))) { continue; } long heartbeatMillis = taskCacheService.getTaskHeartbeatMillis(task.getId()); @@ -589,14 +585,9 @@ public class AppearancePatentTaskService { } LocalDateTime threshold = LocalDateTime.now().minusMinutes(Math.max(1, properties.getStaleTimeoutMinutes())); long thresholdMillis = threshold.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); - List tasks = fileTaskMapper.selectList(new LambdaQueryWrapper() - .eq(FileTaskEntity::getModuleType, MODULE_TYPE) - .eq(FileTaskEntity::getStatus, STATUS_RUNNING) - .lt(FileTaskEntity::getUpdatedAt, threshold) - .last("limit 50")); + List tasks = listStaleFinalizeCandidates(threshold); for (FileTaskEntity task : tasks) { - if (isJavaSideProcessing(task.getId())) { - touchJavaSideTaskActivity(task.getId()); + if (!isOwnerCurrent(ownerFromTask(task))) { continue; } long heartbeatMillis = taskCacheService.getTaskHeartbeatMillis(task.getId()); @@ -608,14 +599,46 @@ public class AppearancePatentTaskService { continue; } try (lockHandle) { - FileTaskEntity latestTask = fileTaskMapper.selectById(task.getId()); - if (latestTask != null) { - finalizeTask(latestTask, "Python interrupted before uploading final appearance patent result", allRowCount(latestTask), true); - } + finalizeStaleTask(task.getId(), "Python interrupted before uploading final appearance patent result"); } } } + public void debugFinalizeStaleTask(Long taskId) { + if (taskId == null || taskId <= 0) { + return; + } + if (transactionManager != null) { + TaskDistributedLockService.LockHandle lockHandle = acquireTaskLock(taskId, 0L); + if (lockHandle == null) { + return; + } + try (lockHandle) { + inNewTransaction(() -> { + finalizeStaleTask(taskId, "Python interrupted before uploading final appearance patent result"); + return null; + }); + } + return; + } + TaskDistributedLockService.LockHandle lockHandle = acquireTaskLock(taskId, 0L); + if (lockHandle == null) { + return; + } + try (lockHandle) { + finalizeStaleTask(taskId, "Python interrupted before uploading final appearance patent result"); + } + } + + private List listStaleFinalizeCandidates(LocalDateTime threshold) { + return fileTaskMapper.selectList(new LambdaQueryWrapper() + .eq(FileTaskEntity::getModuleType, MODULE_TYPE) + .eq(FileTaskEntity::getStatus, STATUS_RUNNING) + .lt(FileTaskEntity::getCreatedAt, threshold) + .orderByAsc(FileTaskEntity::getCreatedAt) + .last("limit 200")); + } + private SubmitContext persistSubmittedChunk(Long taskId, AppearancePatentSubmitResultRequest request) { FileTaskEntity task = fileTaskMapper.selectById(taskId); if (task == null || !MODULE_TYPE.equals(task.getModuleType())) { @@ -699,17 +722,24 @@ public class AppearancePatentTaskService { } List chunks = loadSubmittedChunks(task.getId()); if (chunks.isEmpty()) { + log.info("[appearance-patent] skip stale recovery coze submission because no submitted chunks remain taskId={}", + task.getId()); return; } FileResultEntity result = findOrCreateResultRecordForAssembly(task, allRowCount(task)); if (result == null) { + log.warn("[appearance-patent] stale recovery could not create result record taskId={}", task.getId()); return; } TaskFileJobEntity job = taskFileJobService.enqueueAssembleResult( - task.getId(), MODULE_TYPE, result.getId(), buildTaskOwnerScopeKey(task.getId())); + task.getId(), MODULE_TYPE, result.getId(), buildTaskOwnerScopeKey(task)); if (job == null || "SUCCESS".equals(job.getStatus())) { + log.info("[appearance-patent] stale recovery skipped coze submission because result job unavailable taskId={} resultId={} jobStatus={}", + task.getId(), result.getId(), job == null ? null : job.getStatus()); return; } + log.info("[appearance-patent] stale recovery created assemble job taskId={} resultId={} jobId={} jobStatus={} chunkCount={}", + task.getId(), result.getId(), job.getId(), job.getStatus(), chunks.size()); Map> allRowsByBaseId = loadAllRowsByBaseId(task); boolean pendingCoze = submitCozeBatches(task, result, job, chunks, allRowsByBaseId); saveCozePipelineProgress(task, job); @@ -722,14 +752,127 @@ public class AppearancePatentTaskService { } } + private void scheduleCozePipelineForSubmittedChunk(SubmitContext context) { + if (context == null || context.task() == null || context.task().getId() == null) { + return; + } + FileTaskEntity task = fileTaskMapper.selectById(context.task().getId()); + if (task == null || !MODULE_TYPE.equals(task.getModuleType()) || STATUS_SUCCESS.equals(task.getStatus())) { + return; + } + List chunks = loadSubmittedChunks(task.getId()); + if (chunks.isEmpty()) { + return; + } + FileResultEntity result = findOrCreateResultRecordForAssembly(task, allRowCount(task)); + if (result == null) { + return; + } + TaskFileJobEntity job = taskFileJobService.enqueueAssembleResult( + task.getId(), MODULE_TYPE, result.getId(), buildTaskOwnerScopeKey(task)); + if (job == null || "SUCCESS".equals(job.getStatus())) { + return; + } + taskFileJobService.requeue(job.getId(), "Appearance patent result uploaded, scheduling Coze/file assembly"); + touchJavaSideTaskActivity(task.getId()); + } + private void finalizeStaleTask(Long taskId, String error) { FileTaskEntity task = fileTaskMapper.selectById(taskId); if (task == null || !MODULE_TYPE.equals(task.getModuleType()) || !STATUS_RUNNING.equals(task.getStatus())) { return; } + if (tryRecoverTimedOutPythonTask(task)) { + return; + } finalizeTask(task, error, allRowCount(task), true); } + private boolean tryRecoverTimedOutPythonTask(FileTaskEntity task) { + if (task == null || task.getId() == null) { + return false; + } + Long taskId = task.getId(); + boolean uploadComplete = isResultSubmissionComplete(taskId); + long pendingCozeStates = countPendingCozeStates(taskId); + long activeAssembleJobs = taskFileJobService.countActiveAssembleJobs(taskId, MODULE_TYPE); + log.info("[appearance-patent] stale recovery probe taskId={} uploadComplete={} pendingCozeStates={} activeAssembleJobs={} persistedRows={}", + taskId, uploadComplete, pendingCozeStates, activeAssembleJobs, hasPersistedResultRows(taskId)); + if (uploadComplete && (pendingCozeStates > 0 || activeAssembleJobs > 0)) { + touchJavaSideTaskActivity(taskId); + return true; + } + if (!hasPersistedResultRows(taskId)) { + log.info("[appearance-patent] stale recovery aborted because no persisted rows taskId={}", taskId); + return false; + } + if (!uploadComplete) { + int forcedScopes = markSubmissionCompleteOnPythonTimeout(taskId); + if (forcedScopes <= 0) { + log.warn("[appearance-patent] stale recovery aborted because submission could not be marked complete taskId={}", + taskId); + return false; + } + int pendingRows = collectPendingCozeCandidates(task, loadSubmittedChunks(taskId)).size(); + log.warn("[appearance-patent] python heartbeat timed out, forcing coze flush taskId={} pendingRows={} pendingCozeStates={} activeAssembleJobs={} forcedScopes={}", + taskId, pendingRows, pendingCozeStates, activeAssembleJobs, forcedScopes); + } else { + log.warn("[appearance-patent] stale running task resuming coze/file assembly after python timeout taskId={} pendingCozeStates={} activeAssembleJobs={}", + taskId, pendingCozeStates, activeAssembleJobs); + } + submitCozeForSubmittedChunk(new SubmitContext(task, null, null, 0, true, null)); + touchJavaSideTaskActivity(taskId); + return true; + } + + private int markSubmissionCompleteOnPythonTimeout(Long taskId) { + if (taskId == null || taskId <= 0) { + return 0; + } + List inputStates = taskScopeStateMapper.selectList(new LambdaQueryWrapper() + .eq(TaskScopeStateEntity::getTaskId, taskId) + .eq(TaskScopeStateEntity::getModuleType, MODULE_TYPE) + .isNull(TaskScopeStateEntity::getCozeStatus) + .orderByDesc(TaskScopeStateEntity::getUpdatedAt)); + if (inputStates == null || inputStates.isEmpty()) { + TaskChunkEntity latestChunk = taskChunkMapper.selectOne(new LambdaQueryWrapper() + .eq(TaskChunkEntity::getTaskId, taskId) + .eq(TaskChunkEntity::getModuleType, MODULE_TYPE) + .orderByDesc(TaskChunkEntity::getUpdatedAt) + .last("limit 1")); + if (latestChunk == null || latestChunk.getScopeHash() == null || latestChunk.getScopeHash().isBlank()) { + log.warn("[appearance-patent] stale recovery found no latest chunk to complete taskId={}", taskId); + return 0; + } + log.info("[appearance-patent] stale recovery recreating input scope from chunk taskId={} scopeKey={} scopeHash={} chunkTotal={}", + taskId, latestChunk.getScopeKey(), latestChunk.getScopeHash(), latestChunk.getChunkTotal()); + upsertScopeState(taskId, + firstNonBlank(latestChunk.getScopeKey(), "task:" + taskId), + latestChunk.getScopeHash(), + latestChunk.getChunkTotal(), + null, + true, + false); + return 1; + } + LocalDateTime now = LocalDateTime.now(); + int updated = 0; + for (TaskScopeStateEntity state : inputStates) { + if (state == null || state.getId() == null) { + continue; + } + state.setCompleted(1); + if (state.getLastChunkAt() == null) { + state.setLastChunkAt(now); + } + state.setUpdatedAt(now); + state.setStateJson("{\"phase\":\"RECEIVED\",\"coze\":\"PENDING\"}"); + taskScopeStateMapper.updateById(state); + updated++; + } + return updated; + } + private void upsertScopeState(Long taskId, String scopeKey, String scopeHash, @@ -765,6 +908,8 @@ public class AppearancePatentTaskService { if (scope.getId() == null) { try { taskScopeStateMapper.insert(scope); + log.info("[appearance-patent] scope state inserted taskId={} scope={} scopeHash={} completed={} cozeDone={}", + taskId, scopeKey, scopeHash, completed, cozeDone); return; } catch (DuplicateKeyException ex) { log.info("[appearance-patent] duplicate scope state inserted concurrently taskId={} scope={}", taskId, scopeKey); @@ -792,6 +937,8 @@ public class AppearancePatentTaskService { } } taskScopeStateMapper.updateById(scope); + log.info("[appearance-patent] scope state updated taskId={} scope={} scopeHash={} completed={} cozeDone={}", + taskId, scopeKey, scopeHash, completed, cozeDone); } private T inNewTransaction(Supplier action) { @@ -1085,6 +1232,7 @@ public class AppearancePatentTaskService { row.setUrl(firstNonBlank(representative.getUrl(), sibling.getUrl())); row.setTitle(firstNonBlank(representative.getTitle(), sibling.getTitle())); row.setError(representative.getError()); + row.setStatus(representative.getStatus()); row.setTitleRisk(representative.getTitleRisk()); row.setAppearanceRisk(representative.getAppearanceRisk()); row.setPatentRisk(representative.getPatentRisk()); @@ -1185,7 +1333,7 @@ public class AppearancePatentTaskService { return null; } TaskFileJobEntity job = taskFileJobService.enqueueAssembleResult( - task.getId(), MODULE_TYPE, result.getId(), buildTaskOwnerScopeKey(task.getId())); + task.getId(), MODULE_TYPE, result.getId(), buildTaskOwnerScopeKey(task)); if (dispatchWhenIdle && job != null && "RUNNING".equals(job.getStatus()) @@ -1220,11 +1368,6 @@ public class AppearancePatentTaskService { if (job == null || job.getTaskId() == null || job.getResultId() == null) { throw new BusinessException("result file job arguments are incomplete"); } - if (!isJobOwnedByCurrentInstance(job)) { - log.info("[appearance-patent] skip result file job because owner is another instance jobId={} taskId={} owner={} current={}", - job.getId(), job.getTaskId(), ownerFromScopeKey(job.getScopeKey()), currentInstanceId()); - return false; - } TaskDistributedLockService.LockHandle lockHandle = acquireTaskLock(job.getTaskId(), TASK_LOCK_WAIT_MILLIS); if (lockHandle == null) { taskFileJobService.requeue(job.getId(), "Task is busy, waiting for appearance patent result merge"); @@ -1241,6 +1384,13 @@ public class AppearancePatentTaskService { if (task == null || !MODULE_TYPE.equals(task.getModuleType())) { throw new BusinessException("task not found"); } + ensureTaskOwnedByCurrentInstance(task, "assemble result file"); + job.setScopeKey(buildTaskOwnerScopeKey(task)); + if (!isJobOwnedByCurrentInstance(job)) { + log.info("[appearance-patent] skip result file job because owner is another instance jobId={} taskId={} owner={} current={}", + job.getId(), job.getTaskId(), ownerFromScopeKey(job.getScopeKey()), currentInstanceId()); + return false; + } FileResultEntity result = fileResultMapper.selectById(job.getResultId()); if (result == null || !MODULE_TYPE.equals(result.getModuleType())) { throw new BusinessException("result record not found"); @@ -1250,7 +1400,8 @@ public class AppearancePatentTaskService { .eq(TaskChunkEntity::getModuleType, MODULE_TYPE) .orderByAsc(TaskChunkEntity::getChunkIndex)); int cozeWorkUnits = countCozeWorkUnits(chunks, Math.max(1, properties.getCozeBatchSize())); - int totalProgressUnits = Math.max(3, cozeWorkUnits + 3); + int plannedCozeUnits = Math.max(cozeWorkUnits, countAllCozeStates(task.getId())); + int totalProgressUnits = Math.max(3, plannedCozeUnits + 3); if (countPendingCozeStates(task.getId()) > 0) { taskFileJobService.touchRunning(job.getId()); touchJavaSideTaskActivity(task.getId()); @@ -1269,10 +1420,10 @@ public class AppearancePatentTaskService { if (STATUS_RUNNING.equals(task.getStatus()) && !isResultSubmissionComplete(task.getId())) { taskFileJobService.touchRunning(job.getId()); touchJavaSideTaskActivity(task.getId()); - saveFileBuildProgress(task, job, totalProgressUnits, Math.max(1, cozeWorkUnits), "等待 Python 继续回传数据"); + saveFileBuildProgress(task, job, totalProgressUnits, Math.max(1, plannedCozeUnits), "等待 Python 继续回传数据"); return false; } - completeCozeFileJob(task, result, job, totalProgressUnits, cozeWorkUnits); + completeCozeFileJob(task, result, job, totalProgressUnits); return true; } @@ -1555,10 +1706,10 @@ public class AppearancePatentTaskService { markCozeStateTerminal(state, COZE_STATUS_FAILED, "Coze batch context missing"); return; } - if (!isOwnerCurrent(context.ownerInstanceId())) { - log.info("[appearance-patent] coze poll skipped after context refresh because owner is another instance taskId={} stateId={} owner={} current={}", - state.getTaskId(), state.getId(), context.ownerInstanceId(), currentInstanceId()); - return; + if (!isOwnerCurrent(context.ownerInstanceId())) { + log.info("[appearance-patent] coze poll skipped after context refresh because owner is another instance taskId={} stateId={} owner={} current={}", + state.getTaskId(), state.getId(), context.ownerInstanceId(), currentInstanceId()); + return; } taskFileJobService.touchRunning(context.jobId()); log.info("[appearance-patent] coze poll start taskId={} stateId={} executeId={} jobId={} chunk={} batch={}/{}", @@ -1924,6 +2075,9 @@ public class AppearancePatentTaskService { if (taskId == null || context == null || countPendingCozeStates(taskId) > 0) { return; } + if (!isOwnerCurrent(context.ownerInstanceId())) { + return; + } TaskDistributedLockService.LockHandle taskLockHandle = acquireTaskLock(taskId, 0L); if (taskLockHandle == null) { return; @@ -1974,12 +2128,11 @@ public class AppearancePatentTaskService { private void completeCozeFileJob(FileTaskEntity task, FileResultEntity result, TaskFileJobEntity job, - int totalProgressUnits, - int cozeWorkUnits) { + int totalProgressUnits) { if (countPendingCozeStates(task.getId()) > 0) { throw new BusinessException("Coze 结果仍在处理中,暂不能生成结果文件"); } - int assembleProgress = Math.max(1, Math.min(totalProgressUnits - 2, cozeWorkUnits)); + int assembleProgress = Math.max(1, totalProgressUnits - 2); saveFileBuildProgress(task, job, totalProgressUnits, assembleProgress, "正在组装 xlsx"); assembleResultWorkbook(task, result); saveFileBuildProgress(task, job, totalProgressUnits, totalProgressUnits - 1, "正在上传结果文件"); @@ -2216,8 +2369,9 @@ public class AppearancePatentTaskService { return "coze:task:" + taskId + ":rows:" + DigestUtil.sha256Hex(rowKeys.toString()); } - private String buildTaskOwnerScopeKey(Long taskId) { - return "task:" + taskId + ":owner:" + currentInstanceId(); + private String buildTaskOwnerScopeKey(FileTaskEntity task) { + Long taskId = task == null ? null : task.getId(); + return "task:" + taskId + ":owner:" + firstNonBlank(ownerFromTask(task), currentInstanceId()); } private String currentInstanceId() { @@ -2577,7 +2731,8 @@ public class AppearancePatentTaskService { row.createCell(col++).setCellValue(resultRow == null ? missingReason : userFacingCozeCellValue(resultRow, resultRow.getTitleRisk())); row.createCell(col++).setCellValue(resultRow == null ? missingReason : userFacingCozeCellValue(resultRow, resultRow.getAppearanceRisk())); row.createCell(col++).setCellValue(resultRow == null ? missingReason : userFacingCozeCellValue(resultRow, resultRow.getPatentRisk())); - row.createCell(col).setCellValue(resultRow == null ? "未送检" : userFacingConclusion(resultRow)); + row.createCell(col++).setCellValue(resultRow == null ? "未送检" : userFacingConclusion(resultRow)); + row.createCell(col).setCellValue(resultRow == null ? "" : firstNonBlank(resultRow.getStatus(), "")); } writeReasonSheet(workbook, headerStyle, rowsToWrite, resultMap); workbook.write(fos); @@ -2962,7 +3117,7 @@ public class AppearancePatentTaskService { } vo.setFileJobId(job.getId()); vo.setFileStatus(job.getStatus()); - vo.setFileError(job.getErrorMessage()); + vo.setFileError(STATUS_FAILED.equals(job.getStatus()) ? firstNonBlank(job.getErrorMessage(), null) : null); attachFileProgress(vo, row, job); } diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/debug/controller/DebugRequestInfoController.java b/backend-java/src/main/java/com/nanri/aiimage/modules/debug/controller/DebugRequestInfoController.java index ee4dc72..49ddc2c 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/modules/debug/controller/DebugRequestInfoController.java +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/debug/controller/DebugRequestInfoController.java @@ -34,6 +34,8 @@ public class DebugRequestInfoController { ) { Map result = new LinkedHashMap<>(); result.put("instanceId", instanceMetadata.getInstanceId()); + result.put("instanceSource", instanceMetadata.getSource()); + result.put("instanceStable", instanceMetadata.isStable()); result.put("hostname", instanceMetadata.getHostname()); result.put("serverName", request.getServerName()); result.put("serverPort", request.getServerPort()); diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/debug/controller/DebugTaskRecoveryController.java b/backend-java/src/main/java/com/nanri/aiimage/modules/debug/controller/DebugTaskRecoveryController.java new file mode 100644 index 0000000..c412f12 --- /dev/null +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/debug/controller/DebugTaskRecoveryController.java @@ -0,0 +1,44 @@ +package com.nanri.aiimage.modules.debug.controller; + +import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentTaskService; +import com.nanri.aiimage.modules.similarasin.service.SimilarAsinTaskService; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.LinkedHashMap; +import java.util.Locale; +import java.util.Map; + +@RestController +@RequestMapping("/debug/task-recovery") +public class DebugTaskRecoveryController { + + private final AppearancePatentTaskService appearancePatentTaskService; + private final SimilarAsinTaskService similarAsinTaskService; + + public DebugTaskRecoveryController(AppearancePatentTaskService appearancePatentTaskService, + SimilarAsinTaskService similarAsinTaskService) { + this.appearancePatentTaskService = appearancePatentTaskService; + this.similarAsinTaskService = similarAsinTaskService; + } + + @PostMapping("/run-stale-finalize") + public Map runStaleFinalize(@RequestParam("module") String module, + @RequestParam("taskId") Long taskId) { + String normalizedModule = module == null ? "" : module.trim().toUpperCase(Locale.ROOT); + if ("APPEARANCE_PATENT".equals(normalizedModule)) { + appearancePatentTaskService.debugFinalizeStaleTask(taskId); + } else if ("SIMILAR_ASIN".equals(normalizedModule)) { + similarAsinTaskService.debugFinalizeStaleTask(taskId); + } else { + throw new IllegalArgumentException("Unsupported module: " + module); + } + Map result = new LinkedHashMap<>(); + result.put("module", normalizedModule); + result.put("taskId", taskId); + result.put("accepted", true); + return result; + } +} diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/shopkey/controller/SkipPriceAsinController.java b/backend-java/src/main/java/com/nanri/aiimage/modules/shopkey/controller/SkipPriceAsinController.java index 65044b4..5bc2ba5 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/modules/shopkey/controller/SkipPriceAsinController.java +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/shopkey/controller/SkipPriceAsinController.java @@ -1,6 +1,7 @@ package com.nanri.aiimage.modules.shopkey.controller; import com.nanri.aiimage.common.api.ApiResponse; +import com.nanri.aiimage.common.util.DownloadHeaderUtil; import com.nanri.aiimage.modules.shopkey.model.dto.SkipPriceAsinCountryUpdateRequest; import com.nanri.aiimage.modules.shopkey.model.dto.SkipPriceAsinCreateRequest; import com.nanri.aiimage.modules.shopkey.model.vo.QueryAsinImportProgressVo; @@ -13,6 +14,9 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -24,24 +28,36 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + @RestController @RequiredArgsConstructor -@RequestMapping("/api/admin/skip-price-asins") -@Tag(name = "跳过跟价 ASIN", description = "维护店铺按国家跳过跟价的 ASIN") +@RequestMapping({ + "/admin/skip-price-asins", + "/admin/skip-price-asin", + "/api/admin/skip-price-asins", + "/api/admin/skip-price-asin", + "/skip-price-asins", + "/skip-price-asin" +}) +@Tag(name = "Skip Price ASIN", description = "Manage skip price asin data") public class SkipPriceAsinController { + private static final DateTimeFormatter EXPORT_FILENAME_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd_HHmmss"); + private final SkipPriceAsinService skipPriceAsinService; @GetMapping - @Operation(summary = "分页查询跳过跟价 ASIN") + @Operation(summary = "Page query skip price asins") public ApiResponse page( - @Parameter(description = "页码") @RequestParam(defaultValue = "1") Long page, - @Parameter(description = "每页数量") @RequestParam(defaultValue = "15") Long pageSize, - @Parameter(description = "分组ID") @RequestParam(required = false) Long groupId, - @Parameter(description = "店铺名") @RequestParam(required = false) String shopName, - @Parameter(description = "ASIN") @RequestParam(required = false) String asin, - @Parameter(description = "当前操作人用户ID") @RequestParam(required = false) Long operatorId, - @Parameter(description = "是否超级管理员") @RequestParam(defaultValue = "false") Boolean superAdmin) { + @Parameter(description = "page") @RequestParam(name = "page", defaultValue = "1") Long page, + @Parameter(description = "page size") @RequestParam(name = "page_size", defaultValue = "15") Long pageSize, + @Parameter(description = "group id") @RequestParam(name = "group_id", required = false) Long groupId, + @Parameter(description = "shop name") @RequestParam(name = "shop_name", required = false) String shopName, + @Parameter(description = "asin") @RequestParam(name = "asin", required = false) String asin, + @Parameter(description = "operator user id") @RequestParam(name = "operator_id", required = false) Long operatorId, + @Parameter(description = "is super admin") @RequestParam(name = "super_admin", defaultValue = "false") Boolean superAdmin) { return ApiResponse.success(skipPriceAsinService.page( page, pageSize, @@ -52,59 +68,76 @@ public class SkipPriceAsinController { Boolean.TRUE.equals(superAdmin))); } + @GetMapping("/export") + @Operation(summary = "Export skip price asins") + public ResponseEntity export( + @Parameter(description = "group id") @RequestParam(name = "group_id", required = false) Long groupId, + @Parameter(description = "shop name") @RequestParam(name = "shop_name", required = false) String shopName, + @Parameter(description = "asin") @RequestParam(name = "asin", required = false) String asin, + @Parameter(description = "operator user id") @RequestParam(name = "operator_id", required = false) Long operatorId, + @Parameter(description = "is super admin") @RequestParam(name = "super_admin", defaultValue = "false") Boolean superAdmin) { + byte[] bytes = skipPriceAsinService.export(groupId, shopName, asin, operatorId, Boolean.TRUE.equals(superAdmin)); + String filename = "skip-price-asin-" + LocalDateTime.now().format(EXPORT_FILENAME_FORMATTER) + ".xlsx"; + return ResponseEntity.ok() + .header(HttpHeaders.CONTENT_DISPOSITION, DownloadHeaderUtil.contentDisposition(filename)) + .contentType(MediaType.parseMediaType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")) + .contentLength(bytes.length) + .body(bytes); + } + @PostMapping - @Operation(summary = "新增或覆盖跳过跟价 ASIN") + @Operation(summary = "Create or update skip price asin") public ApiResponse create( - @Parameter(description = "当前操作人用户ID") @RequestParam Long operatorId, - @Parameter(description = "是否超级管理员") @RequestParam(defaultValue = "false") Boolean superAdmin, + @Parameter(description = "operator user id") @RequestParam(name = "operator_id") Long operatorId, + @Parameter(description = "is super admin") @RequestParam(name = "super_admin", defaultValue = "false") Boolean superAdmin, @Valid @RequestBody SkipPriceAsinCreateRequest request) { - return ApiResponse.success("保存成功", + return ApiResponse.success("\u4fdd\u5b58\u6210\u529f", skipPriceAsinService.createOrUpdate(request, operatorId, Boolean.TRUE.equals(superAdmin))); } @PostMapping("/import") - @Operation(summary = "导入新增跳过跟价 ASIN") + @Operation(summary = "Import skip price asin") public ApiResponse importExcel( - @Parameter(description = "xlsx/xls 文件,文件名必须等于店铺名", required = true) @RequestParam("file") MultipartFile file, - @Parameter(description = "页面选择的分组ID", required = true) @RequestParam Long groupId, - @Parameter(description = "当前操作人用户ID") @RequestParam Long operatorId, - @Parameter(description = "是否超级管理员") @RequestParam(defaultValue = "false") Boolean superAdmin) { - return ApiResponse.success("开始导入", + @Parameter(description = "xlsx or xls file", required = true) @RequestParam("file") MultipartFile file, + @Parameter(description = "group id", required = true) @RequestParam(name = "group_id") Long groupId, + @Parameter(description = "operator user id") @RequestParam(name = "operator_id") Long operatorId, + @Parameter(description = "is super admin") @RequestParam(name = "super_admin", defaultValue = "false") Boolean superAdmin) { + return ApiResponse.success("\u5f00\u59cb\u5bfc\u5165", skipPriceAsinService.startImport(file, groupId, operatorId, Boolean.TRUE.equals(superAdmin))); } @GetMapping("/import/{importId}") - @Operation(summary = "查询导入新增进度") + @Operation(summary = "Query import progress") public ApiResponse importProgress(@PathVariable String importId) { return ApiResponse.success(skipPriceAsinService.getImportProgress(importId)); } @PostMapping("/delete-import") - @Operation(summary = "导入删除跳过跟价 ASIN") + @Operation(summary = "Import delete skip price asin") public ApiResponse deleteImportExcel( - @Parameter(description = "xlsx/xls 文件,文件名必须等于店铺名", required = true) @RequestParam("file") MultipartFile file, - @Parameter(description = "页面选择的分组ID", required = true) @RequestParam Long groupId, - @Parameter(description = "当前操作人用户ID") @RequestParam Long operatorId, - @Parameter(description = "是否超级管理员") @RequestParam(defaultValue = "false") Boolean superAdmin) { - return ApiResponse.success("开始删除", + @Parameter(description = "xlsx or xls file", required = true) @RequestParam("file") MultipartFile file, + @Parameter(description = "group id", required = true) @RequestParam(name = "group_id") Long groupId, + @Parameter(description = "operator user id") @RequestParam(name = "operator_id") Long operatorId, + @Parameter(description = "is super admin") @RequestParam(name = "super_admin", defaultValue = "false") Boolean superAdmin) { + return ApiResponse.success("\u5f00\u59cb\u5220\u9664", skipPriceAsinService.startDeleteImport(file, groupId, operatorId, Boolean.TRUE.equals(superAdmin))); } @GetMapping("/delete-import/{importId}") - @Operation(summary = "查询导入删除进度") + @Operation(summary = "Query delete import progress") public ApiResponse deleteImportProgress(@PathVariable String importId) { return ApiResponse.success(skipPriceAsinService.getDeleteImportProgress(importId)); } - @PutMapping("/{id}/countries/{country}") - @Operation(summary = "编辑指定国家的跳过跟价 ASIN") + @PutMapping({"/{id}/countries/{country}", "/{id}/country/{country}"}) + @Operation(summary = "Update one country skip price asin") public ApiResponse updateCountry( - @Parameter(description = "主键ID", required = true) @PathVariable Long id, - @Parameter(description = "国家编码", required = true) @PathVariable String country, - @Parameter(description = "当前操作人用户ID") @RequestParam Long operatorId, - @Parameter(description = "是否超级管理员") @RequestParam(defaultValue = "false") Boolean superAdmin, + @Parameter(description = "id", required = true) @PathVariable Long id, + @Parameter(description = "country code", required = true) @PathVariable String country, + @Parameter(description = "operator user id") @RequestParam(name = "operator_id") Long operatorId, + @Parameter(description = "is super admin") @RequestParam(name = "super_admin", defaultValue = "false") Boolean superAdmin, @Valid @RequestBody SkipPriceAsinCountryUpdateRequest request) { - return ApiResponse.success("保存成功", skipPriceAsinService.updateCountry( + return ApiResponse.success("\u4fdd\u5b58\u6210\u529f", skipPriceAsinService.updateCountry( id, country, request.getAsin(), @@ -113,14 +146,14 @@ public class SkipPriceAsinController { Boolean.TRUE.equals(superAdmin))); } - @DeleteMapping("/{id}/countries/{country}") - @Operation(summary = "删除指定国家的跳过跟价 ASIN") + @DeleteMapping({"/{id}/countries/{country}", "/{id}/country/{country}"}) + @Operation(summary = "Delete one country skip price asin") public ApiResponse deleteCountry( - @Parameter(description = "主键ID", required = true) @PathVariable Long id, - @Parameter(description = "国家编码", required = true) @PathVariable String country, - @Parameter(description = "当前操作人用户ID") @RequestParam Long operatorId, - @Parameter(description = "是否超级管理员") @RequestParam(defaultValue = "false") Boolean superAdmin) { + @Parameter(description = "id", required = true) @PathVariable Long id, + @Parameter(description = "country code", required = true) @PathVariable String country, + @Parameter(description = "operator user id") @RequestParam(name = "operator_id") Long operatorId, + @Parameter(description = "is super admin") @RequestParam(name = "super_admin", defaultValue = "false") Boolean superAdmin) { skipPriceAsinService.deleteCountry(id, country, operatorId, Boolean.TRUE.equals(superAdmin)); - return ApiResponse.success("删除成功", null); + return ApiResponse.success("\u5220\u9664\u6210\u529f", null); } } diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/shopkey/service/SkipPriceAsinService.java b/backend-java/src/main/java/com/nanri/aiimage/modules/shopkey/service/SkipPriceAsinService.java index 3f7475e..a6c1425 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/modules/shopkey/service/SkipPriceAsinService.java +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/shopkey/service/SkipPriceAsinService.java @@ -22,16 +22,19 @@ import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; +import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.nio.file.Files; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; @@ -46,6 +49,7 @@ import java.util.concurrent.ConcurrentHashMap; public class SkipPriceAsinService { private static final List SUPPORTED_COUNTRIES = List.of("DE", "UK", "FR", "IT", "ES"); + private static final DateTimeFormatter EXPORT_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); private final SkipPriceAsinMapper skipPriceAsinMapper; private final ShopManageMapper shopManageMapper; @@ -57,32 +61,15 @@ public class SkipPriceAsinService { Long operatorId, boolean superAdmin) { long safePage = Math.max(page, 1); long safePageSize = Math.min(Math.max(pageSize, 1), 100); - String safeShopName = normalizeBlank(shopName); - String safeAsin = normalizeBlank(asin); - Set accessibleGroupIds = superAdmin ? Set.of() : shopManageGroupService.listAccessibleGroupIds(operatorId, false); - - LambdaQueryWrapper query = new LambdaQueryWrapper() - .eq(groupId != null && groupId > 0, SkipPriceAsinEntity::getGroupId, groupId) - .like(!safeShopName.isEmpty(), SkipPriceAsinEntity::getShopName, safeShopName) - .and(!safeAsin.isEmpty(), wrapper -> wrapper - .like(SkipPriceAsinEntity::getAsinDe, safeAsin) - .or().like(SkipPriceAsinEntity::getAsinUk, safeAsin) - .or().like(SkipPriceAsinEntity::getAsinFr, safeAsin) - .or().like(SkipPriceAsinEntity::getAsinIt, safeAsin) - .or().like(SkipPriceAsinEntity::getAsinEs, safeAsin)) - .orderByDesc(SkipPriceAsinEntity::getId); - - if (!superAdmin) { - if (accessibleGroupIds.isEmpty()) { - query.eq(SkipPriceAsinEntity::getId, -1L); - } else { - query.in(SkipPriceAsinEntity::getGroupId, accessibleGroupIds); - } - } - - Long total = skipPriceAsinMapper.selectCount(query); - List rows = skipPriceAsinMapper - .selectList(query.last("LIMIT " + ((safePage - 1) * safePageSize) + ", " + safePageSize)); + Long total = countFilteredRows(groupId, shopName, asin, operatorId, superAdmin); + List rows = listFilteredRows( + groupId, + shopName, + asin, + operatorId, + superAdmin, + (safePage - 1) * safePageSize, + safePageSize); Map groupNameById = shopManageGroupService.buildGroupNameMap(rows.stream() .map(SkipPriceAsinEntity::getGroupId) @@ -98,6 +85,127 @@ public class SkipPriceAsinService { return vo; } + public byte[] export(Long groupId, String shopName, String asin, Long operatorId, boolean superAdmin) { + List rows = listFilteredRows(groupId, shopName, asin, operatorId, superAdmin, null, null); + Map groupNameById = shopManageGroupService.buildGroupNameMap(rows.stream() + .map(SkipPriceAsinEntity::getGroupId) + .filter(id -> id != null && id > 0) + .distinct() + .toList()); + try (SXSSFWorkbook workbook = new SXSSFWorkbook(100); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) { + Sheet sheet = workbook.createSheet("SkipPriceAsin"); + writeExportHeader(sheet); + for (int index = 0; index < rows.size(); index++) { + writeExportRow(sheet, index + 1, rows.get(index), groupNameById.get(rows.get(index).getGroupId())); + } + applyExportColumnWidths(sheet); + workbook.write(outputStream); + workbook.dispose(); + return outputStream.toByteArray(); + } catch (Exception ex) { + throw new BusinessException("导出跳过跟价 ASIN 失败"); + } + } + + private Long countFilteredRows(Long groupId, String shopName, String asin, Long operatorId, boolean superAdmin) { + return skipPriceAsinMapper.selectCount(buildFilterQuery(groupId, shopName, asin, operatorId, superAdmin)); + } + + private List listFilteredRows(Long groupId, String shopName, String asin, + Long operatorId, boolean superAdmin, + Long offset, Long limit) { + LambdaQueryWrapper query = buildFilterQuery(groupId, shopName, asin, operatorId, superAdmin); + if (offset != null && limit != null) { + query.last("LIMIT " + Math.max(0L, offset) + ", " + Math.max(1L, limit)); + } + return skipPriceAsinMapper.selectList(query); + } + + private LambdaQueryWrapper buildFilterQuery(Long groupId, String shopName, String asin, + Long operatorId, boolean superAdmin) { + String safeShopName = normalizeBlank(shopName); + String safeAsin = normalizeBlank(asin); + Set accessibleGroupIds = superAdmin ? Set.of() : shopManageGroupService.listAccessibleGroupIds(operatorId, false); + LambdaQueryWrapper query = new LambdaQueryWrapper() + .eq(groupId != null && groupId > 0, SkipPriceAsinEntity::getGroupId, groupId) + .like(!safeShopName.isEmpty(), SkipPriceAsinEntity::getShopName, safeShopName) + .and(!safeAsin.isEmpty(), wrapper -> wrapper + .like(SkipPriceAsinEntity::getAsinDe, safeAsin) + .or().like(SkipPriceAsinEntity::getAsinUk, safeAsin) + .or().like(SkipPriceAsinEntity::getAsinFr, safeAsin) + .or().like(SkipPriceAsinEntity::getAsinIt, safeAsin) + .or().like(SkipPriceAsinEntity::getAsinEs, safeAsin)) + .orderByDesc(SkipPriceAsinEntity::getId); + if (!superAdmin) { + if (accessibleGroupIds.isEmpty()) { + query.eq(SkipPriceAsinEntity::getId, -1L); + } else { + query.in(SkipPriceAsinEntity::getGroupId, accessibleGroupIds); + } + } + return query; + } + + private void writeExportHeader(Sheet sheet) { + Row header = sheet.createRow(0); + String[] headers = { + "序号", "分组", "店铺名", + "德国ASIN", "德国最低价", + "英国ASIN", "英国最低价", + "法国ASIN", "法国最低价", + "意大利ASIN", "意大利最低价", + "西班牙ASIN", "西班牙最低价", + "创建时间", "更新时间" + }; + for (int i = 0; i < headers.length; i++) { + header.createCell(i).setCellValue(headers[i]); + } + } + + private void writeExportRow(Sheet sheet, int rowNo, SkipPriceAsinEntity entity, String groupName) { + Row row = sheet.createRow(rowNo); + int col = 0; + row.createCell(col++).setCellValue(rowNo); + row.createCell(col++).setCellValue(blankToEmpty(groupName)); + row.createCell(col++).setCellValue(blankToEmpty(entity.getShopName())); + row.createCell(col++).setCellValue(blankToEmpty(entity.getAsinDe())); + row.createCell(col++).setCellValue(formatExportPrice(entity.getMinimumPriceDe())); + row.createCell(col++).setCellValue(blankToEmpty(entity.getAsinUk())); + row.createCell(col++).setCellValue(formatExportPrice(entity.getMinimumPriceUk())); + row.createCell(col++).setCellValue(blankToEmpty(entity.getAsinFr())); + row.createCell(col++).setCellValue(formatExportPrice(entity.getMinimumPriceFr())); + row.createCell(col++).setCellValue(blankToEmpty(entity.getAsinIt())); + row.createCell(col++).setCellValue(formatExportPrice(entity.getMinimumPriceIt())); + row.createCell(col++).setCellValue(blankToEmpty(entity.getAsinEs())); + row.createCell(col++).setCellValue(formatExportPrice(entity.getMinimumPriceEs())); + row.createCell(col++).setCellValue(formatExportTime(entity.getCreatedAt())); + row.createCell(col).setCellValue(formatExportTime(entity.getUpdatedAt())); + } + + private void applyExportColumnWidths(Sheet sheet) { + int[] widths = { + 2800, 5200, 5200, + 4600, 3600, + 4600, 3600, + 4600, 3600, + 4600, 3600, + 4600, 3600, + 5200, 5200 + }; + for (int i = 0; i < widths.length; i++) { + sheet.setColumnWidth(i, widths[i]); + } + } + + private String formatExportPrice(BigDecimal value) { + return value == null ? "" : value.stripTrailingZeros().toPlainString(); + } + + private String formatExportTime(LocalDateTime value) { + return value == null ? "" : value.format(EXPORT_TIME_FORMATTER); + } + @Transactional public SkipPriceAsinItemVo createOrUpdate(SkipPriceAsinCreateRequest request, Long operatorId, boolean superAdmin) { ShopManageGroupEntity group = shopManageGroupService.getAccessibleById(request.getGroupId(), operatorId, superAdmin); diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/client/SimilarAsinCozeClient.java b/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/client/SimilarAsinCozeClient.java index bcc3046..bb0c906 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/client/SimilarAsinCozeClient.java +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/client/SimilarAsinCozeClient.java @@ -259,12 +259,18 @@ public class SimilarAsinCozeClient { } private Map buildParameters(List rows, String prompt, String apiKey) { + List groupKeys = rows.stream().map(row -> nonBlank(row.getGroupKey(), rowKey(row.getId(), row.getAsin(), row.getCountry()))).toList(); + List rowTokens = rows.stream().map(row -> nonBlank(row.getRowToken(), "")).toList(); + List rowIds = rows.stream().map(row -> nonBlank(row.getId(), "")).toList(); List asins = rows.stream().map(row -> nonBlank(row.getAsin(), "")).toList(); + List countries = rows.stream().map(row -> nonBlank(row.getCountry(), "")).toList(); + List skus = rows.stream().map(row -> nonBlank(row.getSku(), "")).toList(); + List titles = rows.stream().map(row -> nonBlank(row.getTitle(), row.getAsin())).toList(); List urls = rows.stream().map(row -> nonBlank(row.getUrl(), "")).toList(); List> urlLists = rows.stream().map(SimilarAsinResultRowDto::getUrls).toList(); Map parameters = new LinkedHashMap<>(); - parameters.put("items", buildItemObjects(rows, asins, urls, urlLists)); + parameters.put("items", buildItemObjects(groupKeys, rowTokens, rowIds, asins, countries, skus, titles, urls, urlLists)); parameters.put("prompt", prompt == null ? "" : prompt); if (apiKey != null && !apiKey.isBlank()) { parameters.put("api_key", apiKey.trim()); @@ -302,14 +308,25 @@ public class SimilarAsinCozeClient { return normalized.substring(0, 6) + "***" + normalized.substring(normalized.length() - 4); } - private List> buildItemObjects(List rows, + private List> buildItemObjects(List groupKeys, + List rowTokens, + List rowIds, List asins, + List countries, + List skus, + List titles, List urls, List> urlLists) { - List> items = new ArrayList<>(rows.size()); - for (int i = 0; i < rows.size(); i++) { + List> items = new ArrayList<>(asins.size()); + for (int i = 0; i < asins.size(); i++) { Map item = new LinkedHashMap<>(); + item.put("group_key", groupKeys.get(i)); + item.put("row_token", rowTokens.get(i)); + item.put("row_id", rowIds.get(i)); item.put("asin", asins.get(i)); + item.put("country", countries.get(i)); + item.put("sku", skus.get(i)); + item.put("title", titles.get(i)); item.put("url", urls.get(i)); item.put("target_urls", urlLists.get(i)); items.add(item); @@ -334,6 +351,9 @@ public class SimilarAsinCozeClient { text(firstNonNull( firstNonNull(node.get("group_key"), node.get("groupKey")), firstNonNull(itemNode.get("group_key"), itemNode.get("groupKey")))), + text(firstNonNull( + firstNonNull(node.get("row_token"), node.get("rowToken")), + firstNonNull(itemNode.get("row_token"), itemNode.get("rowToken")))), text(firstNonNull( firstNonNull(node.get("row_id"), firstNonNull(node.get("rowId"), node.get("id"))), firstNonNull(itemNode.get("row_id"), firstNonNull(itemNode.get("rowId"), itemNode.get("id"))))), @@ -341,6 +361,9 @@ public class SimilarAsinCozeClient { text(firstNonNull( firstNonNull(node.get("country"), node.get("site")), firstNonNull(itemNode.get("country"), itemNode.get("site")))), + text(firstNonNull( + firstNonNull(node.get("sku"), firstNonNull(node.get("SKU"), firstNonNull(node.get("seller_sku"), node.get("sellerSku")))), + firstNonNull(itemNode.get("sku"), firstNonNull(itemNode.get("SKU"), firstNonNull(itemNode.get("seller_sku"), itemNode.get("sellerSku")))))), text(firstNonNull( firstNonNull(node.get("price"), node.get("价格")), firstNonNull(itemNode.get("price"), itemNode.get("价格")))), @@ -351,6 +374,15 @@ public class SimilarAsinCozeClient { text(firstNonNull( firstNonNull(node.get("similarity"), firstNonNull(node.get("similarity_rate"), node.get("相似度"))), firstNonNull(itemNode.get("similarity"), firstNonNull(itemNode.get("similarity_rate"), itemNode.get("相似度"))))), + text(firstNonNull( + firstNonNull(node.get("is_conform"), firstNonNull(node.get("isConform"), firstNonNull(node.get("conform"), node.get("是否符合类目")))), + firstNonNull(itemNode.get("is_conform"), firstNonNull(itemNode.get("isConform"), firstNonNull(itemNode.get("conform"), itemNode.get("是否符合类目")))))), + text(firstNonNull( + firstNonNull(node.get("reason"), firstNonNull(node.get("原因"), node.get("不符合理由"))), + firstNonNull(itemNode.get("reason"), firstNonNull(itemNode.get("原因"), itemNode.get("不符合理由"))))), + text(firstNonNull( + firstNonNull(node.get("category"), firstNonNull(node.get("类目"), node.get("产品类目"))), + firstNonNull(itemNode.get("category"), firstNonNull(itemNode.get("类目"), itemNode.get("产品类目"))))), text(firstNonNull(node.get("appearance"), firstNonNull(node.get("appearance_risk"), firstNonNull(itemNode.get("appearance"), itemNode.get("appearance_risk"))))), @@ -360,6 +392,9 @@ public class SimilarAsinCozeClient { text(firstNonNull(node.get("result"), firstNonNull(node.get("conclusion"), firstNonNull(itemNode.get("result"), itemNode.get("conclusion"))))), + text(firstNonNull( + firstNonNull(node.get("status"), firstNonNull(node.get("row_status"), node.get("rowStatus"))), + firstNonNull(itemNode.get("status"), firstNonNull(itemNode.get("row_status"), itemNode.get("rowStatus"))))), text(firstNonNull(node.get("title_reason"), firstNonNull(node.get("titleReason"), firstNonNull(itemNode.get("title_reason"), itemNode.get("titleReason"))))), @@ -391,15 +426,14 @@ public class SimilarAsinCozeClient { } private List mergeRows(List rows, List results) { - Map resultByGroupKey = new LinkedHashMap<>(); + Map resultByRowToken = new LinkedHashMap<>(); Map resultByCompositeKey = new LinkedHashMap<>(); Map resultByAsinCountry = new LinkedHashMap<>(); - Map resultByAsin = new LinkedHashMap<>(); Map resultByRowId = new LinkedHashMap<>(); for (CozeResult result : results) { - String groupKey = normalize(result.groupKey()); - if (!groupKey.isBlank()) { - resultByGroupKey.putIfAbsent(groupKey, result); + String rowToken = normalize(result.rowToken()); + if (!rowToken.isBlank()) { + resultByRowToken.putIfAbsent(rowToken, result); } String compositeKey = rowKey(result.rowId(), result.asin(), result.country()); if (!compositeKey.isBlank()) { @@ -409,10 +443,6 @@ public class SimilarAsinCozeClient { if (!asinCountryKey.isBlank()) { resultByAsinCountry.putIfAbsent(asinCountryKey, result); } - String asinKey = normalize(result.asin()).toUpperCase(Locale.ROOT); - if (!asinKey.isBlank()) { - resultByAsin.putIfAbsent(asinKey, result); - } String rowIdKey = normalize(result.rowId()); if (!rowIdKey.isBlank()) { resultByRowId.putIfAbsent(rowIdKey, result); @@ -423,7 +453,7 @@ public class SimilarAsinCozeClient { boolean allowIndexFallback = results.size() == rows.size() && results.stream().noneMatch(this::hasIdentity); for (int i = 0; i < rows.size(); i++) { SimilarAsinResultRowDto row = copy(rows.get(i)); - CozeResult result = resultByGroupKey.get(normalize(row.getGroupKey())); + CozeResult result = resultByRowToken.get(normalize(row.getRowToken())); if (result == null) { result = resultByCompositeKey.get(rowKey(row.getId(), row.getAsin(), row.getCountry())); } @@ -433,9 +463,6 @@ public class SimilarAsinCozeClient { if (result == null) { result = resultByAsinCountry.get(asinCountryKey(row.getAsin(), row.getCountry())); } - if (result == null) { - result = resultByAsin.get(normalize(row.getAsin()).toUpperCase(Locale.ROOT)); - } if (result == null) { result = resultByRowId.get(normalize(row.getId())); } @@ -460,7 +487,7 @@ public class SimilarAsinCozeClient { if (result == null) { return false; } - return !normalize(result.groupKey()).isBlank() + return !normalize(result.rowToken()).isBlank() || !normalize(result.rowId()).isBlank() || !normalize(result.asin()).isBlank(); } @@ -469,7 +496,7 @@ public class SimilarAsinCozeClient { if (result == null || row == null) { return false; } - if (!normalize(result.groupKey()).isBlank() || !normalize(result.rowId()).isBlank()) { + if (!normalize(result.rowToken()).isBlank() || !normalize(result.rowId()).isBlank()) { return false; } String resultAsin = normalize(result.asin()).toUpperCase(Locale.ROOT); @@ -481,12 +508,17 @@ public class SimilarAsinCozeClient { return; } row.setTitleRisk(result.title()); + row.setSku(nonBlank(result.sku(), row.getSku())); row.setPrice(nonBlank(result.price(), row.getPrice())); row.setIsStock(result.isStock()); row.setSimilarity(result.similarity()); + row.setIsConform(result.isConform()); + row.setReason(result.reason()); + row.setCategory(result.category()); row.setAppearanceRisk(result.appearance()); row.setPatentRisk(result.patent()); row.setConclusion(result.result()); + row.setStatus(result.status()); row.setTitleReason(result.titleReason()); row.setAppearanceReason(result.appearanceReason()); row.setPatentReason(result.patentReason()); @@ -508,11 +540,16 @@ public class SimilarAsinCozeClient { row.setId(source.getId()); row.setAsin(source.getAsin()); row.setCountry(source.getCountry()); + row.setSku(source.getSku()); row.setPrice(source.getPrice()); row.setUrls(source.getUrls()); row.setTitle(source.getTitle()); row.setError(source.getError()); row.setDone(source.getDone()); + row.setStatus(source.getStatus()); + row.setIsConform(source.getIsConform()); + row.setReason(source.getReason()); + row.setCategory(source.getCategory()); row.setTitleRisk(source.getTitleRisk()); row.setAppearanceRisk(source.getAppearanceRisk()); row.setPatentRisk(source.getPatentRisk()); @@ -532,6 +569,12 @@ public class SimilarAsinCozeClient { if (row.getError() == null || row.getError().isBlank()) { row.setError(failureMessage); } + if (row.getReason() == null || row.getReason().isBlank()) { + row.setReason(failureMessage); + } + if (row.getStatus() == null || row.getStatus().isBlank()) { + row.setStatus("FAILED"); + } if (row.getTitleRisk() == null || row.getTitleRisk().isBlank()) { row.setTitleRisk(reviewMessage); } @@ -721,6 +764,17 @@ public class SimilarAsinCozeClient { || item.has("similarity") || item.has("similarity_rate") || item.has("相似度") + || item.has("is_conform") + || item.has("isConform") + || item.has("conform") + || item.has("是否符合类目") + || item.has("reason") + || item.has("原因") + || item.has("不符合理由") + || item.has("category") + || item.has("类目") + || item.has("产品类目") + || item.has("status") || item.has("title_reason") || item.has("titleReason") || item.has("appearance_reason") @@ -973,16 +1027,22 @@ public class SimilarAsinCozeClient { private record CozeResult( String groupKey, + String rowToken, String rowId, String asin, String country, + String sku, String price, String title, String isStock, String similarity, + String isConform, + String reason, + String category, String appearance, String patent, String result, + String status, String titleReason, String appearanceReason, String patentReason diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/controller/SimilarAsinController.java b/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/controller/SimilarAsinController.java index 71c114e..5befe28 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/controller/SimilarAsinController.java +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/controller/SimilarAsinController.java @@ -120,7 +120,7 @@ public class SimilarAsinController { } @PostMapping("/tasks/{taskId}/result") - @Operation(summary = "提交 Python 回传结果", description = "Python 回传商品数据接口。items 可以是一条或多条;Java 先原样保存回传数据,再内部攒够 10 条调用 Coze。done=true 表示 Python 已完成全部回传,Java 会强制处理剩余不足 10 条的数据并生成最终 xlsx。") + @Operation(summary = "提交 Python 回传结果", description = "Python 回传商品数据接口。请通过 groups[].items[] 回传分组结果;Java 先原样保存回传数据,再内部攒批调用 Coze。done=true 表示 Python 已完成全部回传,Java 会强制处理剩余未满批的数据并生成最终 xlsx。") public ApiResponse result( @Parameter(description = "相似ASIN检测任务 ID。任务必须处于 RUNNING 状态。", required = true, example = "3938") @PathVariable Long taskId, diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/model/dto/SimilarAsinResultRowDto.java b/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/model/dto/SimilarAsinResultRowDto.java index a061356..01bd1dd 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/model/dto/SimilarAsinResultRowDto.java +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/model/dto/SimilarAsinResultRowDto.java @@ -39,6 +39,10 @@ public class SimilarAsinResultRowDto { @Schema(description = "站点或国家。来自 Excel 的国家列,例如英国、德国、法国。", example = "英国") private String country; + @JsonAlias({"sku", "SKU", "seller_sku", "sellerSku", "msku", "货号"}) + @Schema(description = "商品 SKU。来自 Excel 解析或 Python 回传。", example = "SKU-001") + private String sku; + @JsonAlias({"price", "价格"}) @Schema(description = "商品价格。来自 Excel 解析或 Python 回传。", example = "12.29") private String price; @@ -61,12 +65,28 @@ public class SimilarAsinResultRowDto { @Schema(description = "Coze 返回的相似度结果。", example = "80%", accessMode = Schema.AccessMode.READ_ONLY) private String similarity; + @JsonAlias({"is_conform", "isConform", "conform", "是否符合类目"}) + @Schema(description = "Coze 返回的是否符合类目结果。", example = "符合", accessMode = Schema.AccessMode.READ_ONLY) + private String isConform; + + @JsonAlias({"reason", "原因", "不符合理由"}) + @Schema(description = "Coze 返回的不符合理由。", example = "类目不匹配", accessMode = Schema.AccessMode.READ_ONLY) + private String reason; + + @JsonAlias({"category", "类目", "产品类目"}) + @Schema(description = "Coze 返回的产品类目。", example = "女装", accessMode = Schema.AccessMode.READ_ONLY) + private String category; + @Schema(description = "单行错误信息。通常用于记录 Python 单行处理异常;Coze 失败时后端会尽量保留原始行,不强行写入风险结果。", example = "图片地址为空") private String error; @Schema(description = "单行完成标记。当前主要使用请求体顶层 done 控制任务收尾,该字段仅作兼容。", example = "true") private Boolean done; + @JsonAlias({"row_status", "rowStatus", "Status"}) + @Schema(description = "Coze row status", example = "success", accessMode = Schema.AccessMode.READ_ONLY) + private String status; + @Schema(description = "兼容旧版 Coze 返回中的标题维度结果字段;当前相似 ASIN 结果文件不再输出该列。", example = "标题未发现明显商标侵权风险。", accessMode = Schema.AccessMode.READ_ONLY) private String titleRisk; diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/model/dto/SimilarAsinSubmitResultRequest.java b/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/model/dto/SimilarAsinSubmitResultRequest.java index c402446..9482352 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/model/dto/SimilarAsinSubmitResultRequest.java +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/model/dto/SimilarAsinSubmitResultRequest.java @@ -27,6 +27,4 @@ public class SimilarAsinSubmitResultRequest { @Schema(description = "本次回传的分组结果列表,推荐优先使用") private List groups = new ArrayList<>(); - @Schema(description = "兼容旧链路的平铺结果列表") - private List items = new ArrayList<>(); } diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/model/vo/SimilarAsinParsedRowVo.java b/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/model/vo/SimilarAsinParsedRowVo.java index 162aea0..d7848ed 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/model/vo/SimilarAsinParsedRowVo.java +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/model/vo/SimilarAsinParsedRowVo.java @@ -39,6 +39,9 @@ public class SimilarAsinParsedRowVo { @Schema(description = "商品价格。", example = "12.29") private String price; + @Schema(description = "商品 SKU。", example = "SKU-001") + private String sku; + @Schema(description = "商品图片 URL 或商品 URL,供 Coze 检测使用。", example = "https://webstatic.aiproxy.vip/output/demo.jpg") private String url; diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/service/SimilarAsinTaskService.java b/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/service/SimilarAsinTaskService.java index 81402ec..1ac1ce4 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/service/SimilarAsinTaskService.java +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/similarasin/service/SimilarAsinTaskService.java @@ -114,11 +114,15 @@ public class SimilarAsinTaskService { private static final int PARSE_RESPONSE_PREVIEW_LIMIT = 100; private static final List RESULT_HEADERS = List.of( "id", + "sku", "asin", "国家", - "价格", "是否有货", - "相似度" + "相似度", + "是否符合类目", + "不符合理由", + "产品类目", + "status" ); private final LocalFileStorageService localFileStorageService; @@ -316,8 +320,8 @@ public class SimilarAsinTaskService { vo.setDroppedRows(droppedRows); vo.setGroupCount(groups.size()); vo.setAiPrompt(normalize(request.getAiPrompt())); - vo.setItems(buildResponsePreviewRows(allRows)); - vo.setGroups(List.of()); + vo.setItems(new ArrayList<>(allRows)); + vo.setGroups(groups); long finishedAt = System.nanoTime(); log.info("[similar-asin] parse timing taskId={} files={} rows={} groups={} totalMs={} parseMs={} groupMs={} taskInsertMs={} payloadJsonMs={} payloadStoreMs={} persistMs={} responseMs={}", task.getId(), @@ -482,7 +486,7 @@ public class SimilarAsinTaskService { completeSubmittedChunk(context); return null; }); - submitCozeForSubmittedChunk(context); + scheduleCozePipelineForSubmittedChunk(context); return; } FileTaskEntity task = fileTaskMapper.selectById(taskId); @@ -568,7 +572,7 @@ public class SimilarAsinTaskService { task.setUpdatedAt(LocalDateTime.now()); fileTaskMapper.updateById(task); } - submitCozeForSubmittedChunk(context); + scheduleCozePipelineForSubmittedChunk(context); } @Transactional @@ -620,19 +624,11 @@ public class SimilarAsinTaskService { if (transactionManager != null) { LocalDateTime threshold = LocalDateTime.now().minusMinutes(Math.max(1, properties.getStaleTimeoutMinutes())); long thresholdMillis = threshold.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); - List tasks = fileTaskMapper.selectList(new LambdaQueryWrapper() - .eq(FileTaskEntity::getModuleType, MODULE_TYPE) - .eq(FileTaskEntity::getStatus, STATUS_RUNNING) - .lt(FileTaskEntity::getUpdatedAt, threshold) - .last("limit 50")); + List tasks = listStaleFinalizeCandidates(threshold); for (FileTaskEntity task : tasks) { if (!isOwnerCurrent(ownerFromTask(task))) { continue; } - if (isJavaSideProcessing(task.getId())) { - touchJavaSideTaskActivity(task.getId()); - continue; - } long heartbeatMillis = taskCacheService.getTaskHeartbeatMillis(task.getId()); if (heartbeatMillis > thresholdMillis) { continue; @@ -652,19 +648,11 @@ public class SimilarAsinTaskService { } LocalDateTime threshold = LocalDateTime.now().minusMinutes(Math.max(1, properties.getStaleTimeoutMinutes())); long thresholdMillis = threshold.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); - List tasks = fileTaskMapper.selectList(new LambdaQueryWrapper() - .eq(FileTaskEntity::getModuleType, MODULE_TYPE) - .eq(FileTaskEntity::getStatus, STATUS_RUNNING) - .lt(FileTaskEntity::getUpdatedAt, threshold) - .last("limit 50")); + List tasks = listStaleFinalizeCandidates(threshold); for (FileTaskEntity task : tasks) { if (!isOwnerCurrent(ownerFromTask(task))) { continue; } - if (isJavaSideProcessing(task.getId())) { - touchJavaSideTaskActivity(task.getId()); - continue; - } long heartbeatMillis = taskCacheService.getTaskHeartbeatMillis(task.getId()); if (heartbeatMillis > thresholdMillis) { continue; @@ -674,11 +662,46 @@ public class SimilarAsinTaskService { continue; } try (taskLockHandle) { - finalizeTask(task, "Python interrupted before uploading final similar ASIN result", allRowCount(task), true); + finalizeStaleTask(task.getId(), "Python interrupted before uploading final similar ASIN result"); } } } + public void debugFinalizeStaleTask(Long taskId) { + if (taskId == null || taskId <= 0) { + return; + } + if (transactionManager != null) { + TaskDistributedLockService.LockHandle taskLockHandle = acquireTaskLock(taskId, 0L); + if (taskLockHandle == null) { + return; + } + try (taskLockHandle) { + inNewTransaction(() -> { + finalizeStaleTask(taskId, "Python interrupted before uploading final similar ASIN result"); + return null; + }); + } + return; + } + TaskDistributedLockService.LockHandle taskLockHandle = acquireTaskLock(taskId, 0L); + if (taskLockHandle == null) { + return; + } + try (taskLockHandle) { + finalizeStaleTask(taskId, "Python interrupted before uploading final similar ASIN result"); + } + } + + private List listStaleFinalizeCandidates(LocalDateTime threshold) { + return fileTaskMapper.selectList(new LambdaQueryWrapper() + .eq(FileTaskEntity::getModuleType, MODULE_TYPE) + .eq(FileTaskEntity::getStatus, STATUS_RUNNING) + .lt(FileTaskEntity::getCreatedAt, threshold) + .orderByAsc(FileTaskEntity::getCreatedAt) + .last("limit 200")); + } + private SubmitContext persistSubmittedChunk(Long taskId, SimilarAsinSubmitResultRequest request) { FileTaskEntity task = fileTaskMapper.selectById(taskId); if (task == null || !MODULE_TYPE.equals(task.getModuleType())) { @@ -760,13 +783,26 @@ public class SimilarAsinTaskService { if (task == null || !MODULE_TYPE.equals(task.getModuleType()) || STATUS_SUCCESS.equals(task.getStatus())) { return; } - TaskChunkEntity chunk = taskChunkMapper.selectOne(new LambdaQueryWrapper() - .eq(TaskChunkEntity::getTaskId, task.getId()) - .eq(TaskChunkEntity::getModuleType, MODULE_TYPE) - .eq(TaskChunkEntity::getScopeHash, context.scopeHash()) - .eq(TaskChunkEntity::getChunkIndex, context.chunkIndex()) - .last("limit 1")); - if (chunk == null || readChunkRows(chunk).isEmpty()) { + List chunks; + if (context.scopeHash() == null || context.scopeHash().isBlank() || context.chunkIndex() == null) { + chunks = taskChunkMapper.selectList(new LambdaQueryWrapper() + .eq(TaskChunkEntity::getTaskId, task.getId()) + .eq(TaskChunkEntity::getModuleType, MODULE_TYPE) + .orderByAsc(TaskChunkEntity::getChunkIndex)); + } else { + TaskChunkEntity chunk = taskChunkMapper.selectOne(new LambdaQueryWrapper() + .eq(TaskChunkEntity::getTaskId, task.getId()) + .eq(TaskChunkEntity::getModuleType, MODULE_TYPE) + .eq(TaskChunkEntity::getScopeHash, context.scopeHash()) + .eq(TaskChunkEntity::getChunkIndex, context.chunkIndex()) + .last("limit 1")); + chunks = chunk == null ? List.of() : List.of(chunk); + } + chunks = chunks == null ? List.of() : chunks.stream() + .filter(Objects::nonNull) + .filter(chunk -> !readChunkRows(chunk).isEmpty()) + .toList(); + if (chunks.isEmpty()) { return; } FileResultEntity result = findOrCreateResultRecordForAssembly(task, allRowCount(task)); @@ -779,24 +815,131 @@ public class SimilarAsinTaskService { return; } Map> allRowsByBaseId = loadAllRowsByBaseId(task); - boolean pendingCoze = submitCozeBatches(task, result, job, List.of(chunk), allRowsByBaseId); + boolean pendingCoze = submitCozeBatches(task, result, job, chunks, allRowsByBaseId); if (pendingCoze) { taskFileJobService.touchRunning(job.getId()); touchJavaSideTaskActivity(task.getId()); } else if (isResultSubmissionComplete(task.getId())) { maybeFinalizeCozeJobLocked(task.getId(), new CozeBatchContext( - job.getId(), result.getId(), chunk.getScopeHash(), chunk.getChunkIndex(), 1, 1, currentInstanceId(), 0)); + job.getId(), result.getId(), context.scopeHash(), context.chunkIndex(), 1, 1, currentInstanceId(), 0)); } } + private void scheduleCozePipelineForSubmittedChunk(SubmitContext context) { + if (context == null || context.task() == null || context.task().getId() == null) { + return; + } + FileTaskEntity task = fileTaskMapper.selectById(context.task().getId()); + if (task == null || !MODULE_TYPE.equals(task.getModuleType()) || STATUS_SUCCESS.equals(task.getStatus())) { + return; + } + List chunks = taskChunkMapper.selectList(new LambdaQueryWrapper() + .eq(TaskChunkEntity::getTaskId, task.getId()) + .eq(TaskChunkEntity::getModuleType, MODULE_TYPE) + .orderByAsc(TaskChunkEntity::getChunkIndex)); + if (chunks.isEmpty()) { + return; + } + FileResultEntity result = findOrCreateResultRecordForAssembly(task, allRowCount(task)); + if (result == null) { + return; + } + TaskFileJobEntity job = taskFileJobService.enqueueAssembleResult( + task.getId(), MODULE_TYPE, result.getId(), buildTaskOwnerScopeKey(task)); + if (job == null || "SUCCESS".equals(job.getStatus())) { + return; + } + taskFileJobService.requeue(job.getId(), "Similar ASIN result uploaded, scheduling Coze/file assembly"); + touchJavaSideTaskActivity(task.getId()); + } + private void finalizeStaleTask(Long taskId, String error) { FileTaskEntity task = fileTaskMapper.selectById(taskId); if (task == null || !MODULE_TYPE.equals(task.getModuleType()) || !STATUS_RUNNING.equals(task.getStatus())) { return; } + if (tryRecoverTimedOutPythonTask(task)) { + return; + } finalizeTask(task, error, allRowCount(task), true); } + private boolean tryRecoverTimedOutPythonTask(FileTaskEntity task) { + if (task == null || task.getId() == null) { + return false; + } + Long taskId = task.getId(); + boolean uploadComplete = isResultSubmissionComplete(taskId); + long pendingCozeStates = countPendingCozeStates(taskId); + long activeAssembleJobs = taskFileJobService.countActiveAssembleJobs(taskId, MODULE_TYPE); + if (uploadComplete && (pendingCozeStates > 0 || activeAssembleJobs > 0)) { + touchJavaSideTaskActivity(taskId); + return true; + } + if (!hasPersistedResultRows(taskId)) { + return false; + } + if (!uploadComplete) { + int forcedScopes = markSubmissionCompleteOnPythonTimeout(taskId); + if (forcedScopes <= 0) { + return false; + } + log.warn("[similar-asin] python heartbeat timed out, forcing finalize pipeline taskId={} pendingCozeStates={} activeAssembleJobs={} forcedScopes={}", + taskId, pendingCozeStates, activeAssembleJobs, forcedScopes); + } else { + log.warn("[similar-asin] stale running task resuming coze/file assembly after python timeout taskId={} pendingCozeStates={} activeAssembleJobs={}", + taskId, pendingCozeStates, activeAssembleJobs); + } + submitCozeForSubmittedChunk(new SubmitContext(task, null, null, null, true, null)); + touchJavaSideTaskActivity(taskId); + return true; + } + + private int markSubmissionCompleteOnPythonTimeout(Long taskId) { + if (taskId == null || taskId <= 0) { + return 0; + } + List inputStates = taskScopeStateMapper.selectList(new LambdaQueryWrapper() + .eq(TaskScopeStateEntity::getTaskId, taskId) + .eq(TaskScopeStateEntity::getModuleType, MODULE_TYPE) + .isNull(TaskScopeStateEntity::getCozeStatus) + .orderByDesc(TaskScopeStateEntity::getUpdatedAt)); + if (inputStates == null || inputStates.isEmpty()) { + TaskChunkEntity latestChunk = taskChunkMapper.selectOne(new LambdaQueryWrapper() + .eq(TaskChunkEntity::getTaskId, taskId) + .eq(TaskChunkEntity::getModuleType, MODULE_TYPE) + .orderByDesc(TaskChunkEntity::getUpdatedAt) + .last("limit 1")); + if (latestChunk == null || latestChunk.getScopeHash() == null || latestChunk.getScopeHash().isBlank()) { + return 0; + } + upsertScopeState(taskId, + firstNonBlank(latestChunk.getScopeKey(), "task:" + taskId), + latestChunk.getScopeHash(), + latestChunk.getChunkTotal(), + null, + true, + false); + return 1; + } + LocalDateTime now = LocalDateTime.now(); + int updated = 0; + for (TaskScopeStateEntity state : inputStates) { + if (state == null || state.getId() == null) { + continue; + } + state.setCompleted(1); + if (state.getLastChunkAt() == null) { + state.setLastChunkAt(now); + } + state.setUpdatedAt(now); + state.setStateJson("{\"phase\":\"RECEIVED\",\"coze\":\"PENDING\"}"); + taskScopeStateMapper.updateById(state); + updated++; + } + return updated; + } + private void upsertScopeState(Long taskId, String scopeKey, String scopeHash, @@ -905,20 +1048,14 @@ public class SimilarAsinTaskService { if (persistedRows.isEmpty()) { continue; } - List unresolvedRows = pickGroupRepresentativesForCoze(persistedRows.values()); + List unresolvedRows = collectPendingCozeRows(persistedRows.values()); if (unresolvedRows.isEmpty()) { continue; } List cozeRows = applyCozeInBatches(unresolvedRows, task, progressHook); - Map mergedRows = new LinkedHashMap<>(); - for (SimilarAsinResultRowDto resultRow : cozeRows) { - for (SimilarAsinResultRowDto expandedRow : expandRows(List.of(resultRow), allRowsByBaseId)) { - mergedRows.put(rowKey(expandedRow), expandedRow); - } - } - mergeChunkPayload(task.getId(), chunk.getScopeHash(), chunk.getChunkIndex(), new ArrayList<>(mergedRows.values())); + mergeChunkPayload(task.getId(), chunk.getScopeHash(), chunk.getChunkIndex(), cozeRows); log.info("[similar-asin] async coze chunk merged taskId={} chunk={} unresolved={} merged={}", - task.getId(), chunk.getChunkIndex(), unresolvedRows.size(), mergedRows.size()); + task.getId(), chunk.getChunkIndex(), unresolvedRows.size(), cozeRows.size()); } } @@ -951,44 +1088,22 @@ public class SimilarAsinTaskService { transientPayloadStorageService.deleteReplacedPayloadIfNeeded(oldPayload, storedPayload); } - private List expandRows(List representatives, - Map> allRowsByBaseId) { - if (representatives == null || representatives.isEmpty()) { + private List expandRows(List rows, + Map> allRowsByBaseId) { + if (rows == null || rows.isEmpty()) { return List.of(); } List result = new ArrayList<>(); Set emittedKeys = new LinkedHashSet<>(); - for (SimilarAsinResultRowDto representative : representatives) { - String key = firstNonBlank(normalize(representative.getRowToken()), rowKey(representative)); + for (SimilarAsinResultRowDto row : rows) { + String key = firstNonBlank(normalize(row.getRowToken()), rowKey(row)); if (emittedKeys.add(key)) { - result.add(representative); + result.add(row); } } return result; } - private List resolveSiblingRows(SimilarAsinResultRowDto representative, - Map> groupedRows) { - if (representative == null || groupedRows == null || groupedRows.isEmpty()) { - return List.of(); - } - String representativeGroupKey = normalize(representative.getGroupKey()); - if (!representativeGroupKey.isBlank()) { - return groupedRows.getOrDefault(representativeGroupKey, List.of()); - } - String representativeKey = rowKey(representative); - String representativeLegacyKey = legacyRowKey(representative); - for (List rows : groupedRows.values()) { - for (SimilarAsinParsedRowVo row : rows) { - if (Objects.equals(representativeKey, rowKey(row)) - || Objects.equals(representativeLegacyKey, legacyRowKey(row))) { - return rows; - } - } - } - return List.of(); - } - private Map> loadAllRowsByBaseId(FileTaskEntity task) { try { SimilarAsinParsedPayloadDto payload = readParsedPayload(task); @@ -1009,17 +1124,17 @@ public class SimilarAsinTaskService { } } - private List pickGroupRepresentativesForCoze(java.util.Collection rows) { + private List collectPendingCozeRows(java.util.Collection rows) { if (rows == null) { return List.of(); } - List representatives = new ArrayList<>(); + List pendingRows = new ArrayList<>(); for (SimilarAsinResultRowDto row : rows) { if (row != null && !hasResolvedCozeFields(row) && shouldInspectRow(row)) { - representatives.add(row); + pendingRows.add(row); } } - return representatives; + return pendingRows; } private List buildParsedGroups(List rows) { @@ -1065,6 +1180,7 @@ public class SimilarAsinTaskService { vo.setGroupKey(row.getGroupKey()); vo.setAsin(row.getAsin()); vo.setCountry(row.getCountry()); + vo.setSku(row.getSku()); vo.setPrice(row.getPrice()); vo.setUrl(row.getUrl()); vo.setTitle(row.getTitle()); @@ -1113,7 +1229,7 @@ public class SimilarAsinTaskService { } return rows; } - return request.getItems() == null ? List.of() : request.getItems(); + return List.of(); } private int allRowCount(FileTaskEntity task) { @@ -1139,36 +1255,6 @@ public class SimilarAsinTaskService { } } - private SimilarAsinResultRowDto copyResultToSibling(SimilarAsinResultRowDto representative, SimilarAsinParsedRowVo sibling) { - SimilarAsinResultRowDto row = new SimilarAsinResultRowDto(); - row.setSourceFileKey(sibling.getSourceFileKey()); - row.setSourceFilename(sibling.getSourceFilename()); - row.setRowToken(sibling.getRowToken()); - row.setGroupKey(sibling.getGroupKey()); - row.setId(sibling.getDisplayId()); - row.setAsin(sibling.getAsin()); - row.setCountry(sibling.getCountry()); - row.setPrice(firstNonBlank(representative.getPrice(), sibling.getPrice())); - if (representative.hasImageUrl()) { - row.setUrls(representative.getUrls()); - } else { - row.setUrl(sibling.getUrl()); - } - row.setTitle(firstNonBlank(representative.getTitle(), sibling.getTitle())); - row.setError(representative.getError()); - row.setTitleRisk(representative.getTitleRisk()); - row.setAppearanceRisk(representative.getAppearanceRisk()); - row.setPatentRisk(representative.getPatentRisk()); - row.setConclusion(representative.getConclusion()); - row.setIsStock(representative.getIsStock()); - row.setSimilarity(representative.getSimilarity()); - row.setTitleReason(representative.getTitleReason()); - row.setAppearanceReason(representative.getAppearanceReason()); - row.setPatentReason(representative.getPatentReason()); - row.setDone(representative.getDone()); - return row; - } - private String readAiPrompt(FileTaskEntity task) { try { return readParsedPayload(task).getAiPrompt(); @@ -1291,15 +1377,17 @@ public class SimilarAsinTaskService { if (job == null || job.getTaskId() == null || job.getResultId() == null) { throw new BusinessException("result file job arguments are incomplete"); } + FileTaskEntity task = fileTaskMapper.selectById(job.getTaskId()); + if (task == null || !MODULE_TYPE.equals(task.getModuleType())) { + throw new BusinessException("task not found"); + } + ensureTaskOwnedByCurrentInstance(task, "assemble result file"); + job.setScopeKey(buildTaskOwnerScopeKey(task)); if (!isJobOwnedByCurrentInstance(job)) { log.info("[similar-asin] skip result file job because owner is another instance jobId={} taskId={} owner={} current={}", job.getId(), job.getTaskId(), ownerFromScopeKey(job.getScopeKey()), currentInstanceId()); return false; } - FileTaskEntity task = fileTaskMapper.selectById(job.getTaskId()); - if (task == null || !MODULE_TYPE.equals(task.getModuleType())) { - throw new BusinessException("task not found"); - } FileResultEntity result = fileResultMapper.selectById(job.getResultId()); if (result == null || !MODULE_TYPE.equals(result.getModuleType())) { throw new BusinessException("result record not found"); @@ -1317,6 +1405,12 @@ public class SimilarAsinTaskService { saveFileBuildProgress(task, job, totalProgressUnits, 1, "Coze submitted, waiting for result"); return false; } + if (STATUS_RUNNING.equals(task.getStatus()) && !isResultSubmissionComplete(task.getId())) { + taskFileJobService.touchRunning(job.getId()); + touchJavaSideTaskActivity(task.getId()); + saveFileBuildProgress(task, job, totalProgressUnits, Math.max(1, cozeWorkUnits), "Waiting for Python upload"); + return false; + } saveFileBuildProgress(task, job, totalProgressUnits, 0, "Submitting Coze"); boolean pendingCoze = submitCozeBatches(task, result, job, chunks, allRowsByBaseId); if (pendingCoze) { @@ -1325,12 +1419,6 @@ public class SimilarAsinTaskService { saveFileBuildProgress(task, job, totalProgressUnits, 1, "Coze submitted, waiting for result"); return false; } - if (STATUS_RUNNING.equals(task.getStatus()) && !isResultSubmissionComplete(task.getId())) { - taskFileJobService.touchRunning(job.getId()); - touchJavaSideTaskActivity(task.getId()); - saveFileBuildProgress(task, job, totalProgressUnits, Math.max(1, cozeWorkUnits), "Waiting for Python upload"); - return false; - } completeCozeFileJob(task, result, job, totalProgressUnits, cozeWorkUnits); return true; } @@ -1384,7 +1472,7 @@ public class SimilarAsinTaskService { if (persistedRows.isEmpty()) { continue; } - List unresolvedRows = pickGroupRepresentativesForCoze(persistedRows.values()); + List unresolvedRows = collectPendingCozeRows(persistedRows.values()); if (unresolvedRows.isEmpty()) { continue; } @@ -2232,7 +2320,7 @@ public class SimilarAsinTaskService { if (persistedRows.isEmpty()) { continue; } - int unresolved = pickGroupRepresentativesForCoze(persistedRows.values()).size(); + int unresolved = collectPendingCozeRows(persistedRows.values()).size(); if (unresolved > 0) { total += Math.max(1, (unresolved + batchSize - 1) / batchSize); } @@ -2280,7 +2368,7 @@ public class SimilarAsinTaskService { SimilarAsinParsedPayloadDto parsed = readParsedPayload(task); Map resultMap = loadPersistedResultRowsWithRetry(task.getId(), parsed.getAllItems().size()); long resolvedRows = parsed.getAllItems().stream() - .filter(row -> findResultRow(row, resultMap) != null || findResultRowByAsin(row.getAsin(), resultMap) != null) + .filter(row -> findResultRow(row, resultMap) != null) .count(); log.info("[similar-asin] assemble workbook taskId={} parsedRows={} resultRows={} resolvedRows={}", task.getId(), parsed.getAllItems().size(), resultMap.size(), resolvedRows); @@ -2381,19 +2469,18 @@ public class SimilarAsinTaskService { int rowIndex = 1; for (SimilarAsinParsedRowVo parsedRow : parsed.getAllItems()) { SimilarAsinResultRowDto resultRow = findResultRow(parsedRow, resultMap); - if (resultRow == null) { - resultRow = findResultRowByAsin(parsedRow.getAsin(), resultMap); - } Row row = sheet.createRow(rowIndex++); int col = 0; row.createCell(col++).setCellValue(firstNonBlank(parsedRow.getDisplayId(), parsedRow.getSourceId())); + row.createCell(col++).setCellValue(firstNonBlank(resultRow == null ? parsedRow.getSku() : firstNonBlank(resultRow.getSku(), parsedRow.getSku()), "")); row.createCell(col++).setCellValue(firstNonBlank(parsedRow.getAsin(), "")); row.createCell(col++).setCellValue(firstNonBlank(parsedRow.getCountry(), "")); - row.createCell(col++).setCellValue(resultRow == null - ? firstNonBlank(parsedRow.getPrice(), readValueByHeader(parsedRow, "价格", "price")) - : firstNonBlank(resultRow.getPrice(), firstNonBlank(parsedRow.getPrice(), readValueByHeader(parsedRow, "价格", "price")))); row.createCell(col++).setCellValue(resultRow == null ? "" : firstNonBlank(resultRow.getIsStock(), "")); - row.createCell(col).setCellValue(resultRow == null ? "" : firstNonBlank(resultRow.getSimilarity(), "")); + row.createCell(col++).setCellValue(resultRow == null ? "" : firstNonBlank(resultRow.getSimilarity(), "")); + row.createCell(col++).setCellValue(resultRow == null ? "" : firstNonBlank(resultRow.getIsConform(), "")); + row.createCell(col++).setCellValue(resultRow == null ? "" : firstNonBlank(resultRow.getReason(), "")); + row.createCell(col++).setCellValue(resultRow == null ? "" : firstNonBlank(resultRow.getCategory(), "")); + row.createCell(col).setCellValue(resultRow == null ? "" : firstNonBlank(resultRow.getStatus(), "")); } workbook.write(fos); workbook.dispose(); @@ -2402,26 +2489,6 @@ public class SimilarAsinTaskService { } } - private SimilarAsinResultRowDto findResultRowByAsin(String asin, Map resultMap) { - String normalizedAsin = normalize(asin).toUpperCase(Locale.ROOT); - if (normalizedAsin.isBlank() || resultMap == null || resultMap.isEmpty()) { - return null; - } - SimilarAsinResultRowDto fallback = null; - for (SimilarAsinResultRowDto row : resultMap.values()) { - if (row == null || !normalizedAsin.equals(normalize(row.getAsin()).toUpperCase(Locale.ROOT))) { - continue; - } - if (hasResolvedCozeFields(row)) { - return row; - } - if (fallback == null) { - fallback = row; - } - } - return fallback; - } - private String imageUrlCellValue(SimilarAsinResultRowDto resultRow, String fallbackUrl) { if (resultRow == null) { return firstNonBlank(fallbackUrl, ""); @@ -2446,6 +2513,7 @@ public class SimilarAsinTaskService { int idCol = findRequiredHeader(headerMap, "id"); int asinCol = findRequiredHeader(headerMap, "asin"); int countryCol = findRequiredHeader(headerMap, "国家", "country"); + int skuCol = findOptionalHeaderExact(headerMap, "sku", "seller sku", "seller_sku", "msku", "货号"); int priceCol = findOptionalHeaderExact(headerMap, "价格", "price"); int urlCol = findOptionalHeaderExact(headerMap, "url", "rul", "link", "image", "img", "pic", "picture", @@ -2489,6 +2557,7 @@ public class SimilarAsinTaskService { vo.setRowToken(buildRowToken(source.getFileKey(), vo.getRowIndex())); vo.setAsin(asin); vo.setCountry(country); + vo.setSku(skuCol >= 0 ? cell(row, skuCol, formatter) : ""); vo.setPrice(priceCol >= 0 ? cell(row, priceCol, formatter) : ""); vo.setUrl(urlCol >= 0 ? cell(row, urlCol, formatter) : ""); vo.setTitle(titleCol >= 0 ? cell(row, titleCol, formatter) : ""); @@ -2548,7 +2617,11 @@ public class SimilarAsinTaskService { || hasUsableCozeField(row.getPatentRisk()) || hasUsableCozeField(row.getConclusion()) || hasUsableCozeField(row.getIsStock()) - || hasUsableCozeField(row.getSimilarity()); + || hasUsableCozeField(row.getSimilarity()) + || hasUsableCozeField(row.getIsConform()) + || hasUsableCozeField(row.getReason()) + || hasUsableCozeField(row.getCategory()) + || hasUsableCozeField(row.getStatus()); } private boolean hasUsableCozeField(String value) { @@ -2833,9 +2906,9 @@ public class SimilarAsinTaskService { payload.setApiKey(normalize(apiKey)); payload.setSourceFiles(sourceFiles == null ? List.of() : sourceFiles); payload.setHeaders(headers == null ? List.of() : headers); - payload.setItems(List.of()); + payload.setItems(allRows == null ? List.of() : new ArrayList<>(allRows)); payload.setGroups(groups == null ? List.of() : groups); - payload.setAllItems(List.of()); + payload.setAllItems(allRows == null ? List.of() : new ArrayList<>(allRows)); return writeJson(payload, "保存解析结果失败"); } diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/task/service/TaskResultFileJobWorker.java b/backend-java/src/main/java/com/nanri/aiimage/modules/task/service/TaskResultFileJobWorker.java index 4c06512..f5c5073 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/modules/task/service/TaskResultFileJobWorker.java +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/task/service/TaskResultFileJobWorker.java @@ -89,7 +89,7 @@ public class TaskResultFileJobWorker { public void process(TaskFileJobEntity job) { if (isOwnerScopedCozeJob(job) && !isOwnedByCurrentInstance(job)) { - log.info("[task-file-job] skip owner-scoped job because owner is another instance jobId={} taskId={} moduleType={} owner={} current={}", + log.debug("[task-file-job] skip owner-scoped job because owner is another instance jobId={} taskId={} moduleType={} owner={} current={}", job.getId(), job.getTaskId(), job.getModuleType(), ownerFromScopeKey(job.getScopeKey()), currentInstanceId()); return; } diff --git a/backend-java/src/main/resources/application-local.example.yml b/backend-java/src/main/resources/application-local.example.yml index 4bde7b5..ed5f89e 100644 --- a/backend-java/src/main/resources/application-local.example.yml +++ b/backend-java/src/main/resources/application-local.example.yml @@ -1,6 +1,11 @@ -# 这个文件只是给你对照看的“环境变量配置示例”,不是 Spring Boot 自动加载的配置文件。 -# 你现在最简单的做法:把下面这些键值复制到 IDEA 的 Run/Debug Configuration -> Environment variables。 +# This file is only an environment-variable reference for local IDE startup. +# Recommended local startup: +# 1. Set SPRING_PROFILES_ACTIVE=local +# 2. Copy the needed keys below into IDEA Run/Debug Configuration -> Environment variables +# 3. Set AIIMAGE_INSTANCE_ID to a stable local value such as local-121 +SPRING_PROFILES_ACTIVE=local +AIIMAGE_INSTANCE_ID=local-121 AIIMAGE_SERVER_PORT=18080 AIIMAGE_DB_URL=jdbc:mysql://127.0.0.1:3306/aiimage?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false diff --git a/backend-java/src/main/resources/application-server.yml b/backend-java/src/main/resources/application-server.yml new file mode 100644 index 0000000..f829efe --- /dev/null +++ b/backend-java/src/main/resources/application-server.yml @@ -0,0 +1,19 @@ +# Common production override for all servers. +# Activate with: SPRING_PROFILES_ACTIVE=server +# Always pass AIIMAGE_INSTANCE_ID and Redis connection parameters from +# the startup command or panel environment variables. + +spring: + data: + redis: + username: ${AIIMAGE_REDIS_USERNAME:} + host: ${AIIMAGE_REDIS_HOST} + port: ${AIIMAGE_REDIS_PORT} + password: ${AIIMAGE_REDIS_PASSWORD} + database: ${AIIMAGE_REDIS_DATABASE:0} + timeout: ${AIIMAGE_REDIS_TIMEOUT:5s} + +aiimage: + instance-id: ${AIIMAGE_INSTANCE_ID:} + result-file-job: + mq-enabled: ${AIIMAGE_RESULT_FILE_JOB_MQ_ENABLED:true} diff --git a/backend-java/src/main/resources/application.yml b/backend-java/src/main/resources/application.yml index 941ed07..4862b83 100644 --- a/backend-java/src/main/resources/application.yml +++ b/backend-java/src/main/resources/application.yml @@ -4,8 +4,6 @@ server: spring: application: name: aiimage-backend - config: - import: optional:classpath:application-local.yml servlet: multipart: max-file-size: 200MB @@ -14,9 +12,9 @@ spring: time-zone: Asia/Shanghai datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: ${AIIMAGE_DB_URL:jdbc:mysql://127.0.0.1:3306/aiimage?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true} + url: ${AIIMAGE_DB_URL:jdbc:mysql://47.110.241.161:3306/aiimage?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true} username: ${AIIMAGE_DB_USERNAME:root} - password: ${AIIMAGE_DB_PASSWORD:change-me} + password: ${AIIMAGE_DB_PASSWORD:WTFrb5y6hNLz6hNy} hikari: maximum-pool-size: ${AIIMAGE_DB_POOL_MAX_SIZE:30} minimum-idle: ${AIIMAGE_DB_POOL_MIN_IDLE:5} @@ -28,9 +26,10 @@ spring: leak-detection-threshold: ${AIIMAGE_DB_POOL_LEAK_DETECT_MS:0} data: redis: - host: ${AIIMAGE_REDIS_HOST:127.0.0.1} - port: ${AIIMAGE_REDIS_PORT:6379} - password: ${AIIMAGE_REDIS_PASSWORD:} + username: ${AIIMAGE_REDIS_USERNAME:} + host: ${AIIMAGE_REDIS_HOST:47.111.163.154} + port: ${AIIMAGE_REDIS_PORT:16379} + password: ${AIIMAGE_REDIS_PASSWORD:B6COTcY094TYe545} database: ${AIIMAGE_REDIS_DATABASE:0} timeout: ${AIIMAGE_REDIS_TIMEOUT:5s} @@ -72,19 +71,22 @@ knife4j: language: zh_cn aiimage: - instance-id: ${AIIMAGE_INSTANCE_ID:} + # Set a stable server-level ID in 1Panel/Docker with AIIMAGE_INSTANCE_ID. + # For IDEA/local startup, set -Daiimage.instance-id= or configure the AIIMAGE_INSTANCE_ID env var. + # Avoid relying on container hostname/container ID, otherwise task owner continuity may break after restart/redeploy. + instance-id: ${AIIMAGE_INSTANCE_ID:local-dev} oss: region: ${AIIMAGE_OSS_REGION:cn-hangzhou} endpoint: ${AIIMAGE_OSS_ENDPOINT:oss-cn-hangzhou.aliyuncs.com} - bucket: ${AIIMAGE_OSS_BUCKET:change-me} - access-key-id: ${AIIMAGE_OSS_ACCESS_KEY_ID:change-me} - access-key-secret: ${AIIMAGE_OSS_ACCESS_KEY_SECRET:change-me} + bucket: ${AIIMAGE_OSS_BUCKET:nanri-ai-images} + access-key-id: ${AIIMAGE_OSS_ACCESS_KEY_ID:LTAI5tNpyvzMNz9f2dHarsm8} + access-key-secret: ${AIIMAGE_OSS_ACCESS_KEY_SECRET:bQSZnFH455i8tzyOgeahJmUzwmhynz} transient-storage: - enabled: ${AIIMAGE_TRANSIENT_STORAGE_ENABLED:false} - endpoint: ${AIIMAGE_TRANSIENT_STORAGE_ENDPOINT:} - bucket: ${AIIMAGE_TRANSIENT_STORAGE_BUCKET:} - access-key-id: ${AIIMAGE_TRANSIENT_STORAGE_ACCESS_KEY_ID:} - access-key-secret: ${AIIMAGE_TRANSIENT_STORAGE_ACCESS_KEY_SECRET:} + enabled: ${AIIMAGE_TRANSIENT_STORAGE_ENABLED:true} + endpoint: ${AIIMAGE_TRANSIENT_STORAGE_ENDPOINT:http://121.196.149.225:9000} + bucket: ${AIIMAGE_TRANSIENT_STORAGE_BUCKET:json-server} + access-key-id: ${AIIMAGE_TRANSIENT_STORAGE_ACCESS_KEY_ID:YPkyFAymauf21pHMoK0V} + access-key-secret: ${AIIMAGE_TRANSIENT_STORAGE_ACCESS_KEY_SECRET:XcPzJqT8jzAHDEQNCovhkPmlwWcphBwLdA36BTzL} region: ${AIIMAGE_TRANSIENT_STORAGE_REGION:us-east-1} connect-timeout-seconds: ${AIIMAGE_TRANSIENT_STORAGE_CONNECT_TIMEOUT_SECONDS:10} read-timeout-seconds: ${AIIMAGE_TRANSIENT_STORAGE_READ_TIMEOUT_SECONDS:60} @@ -131,7 +133,7 @@ aiimage: scope-payload-recovery-max-files: ${AIIMAGE_TASK_SCOPE_PAYLOAD_RECOVERY_MAX_FILES:200} scope-payload-cleanup-cron: ${AIIMAGE_TASK_SCOPE_PAYLOAD_CLEANUP_CRON:15 */30 * * * *} result-file-job: - mq-enabled: ${AIIMAGE_RESULT_FILE_JOB_MQ_ENABLED:false} + mq-enabled: ${AIIMAGE_RESULT_FILE_JOB_MQ_ENABLED:true} topic: ${AIIMAGE_RESULT_FILE_JOB_TOPIC:aiimage-result-file-job} consumer-group: ${AIIMAGE_RESULT_FILE_JOB_CONSUMER_GROUP:aiimage-result-file-job-consumer} local-dispatch-enabled: ${AIIMAGE_RESULT_FILE_JOB_LOCAL_DISPATCH_ENABLED:true} diff --git a/backend/blueprints/admin_api.py b/backend/blueprints/admin_api.py index ab1ca43..190f592 100644 --- a/backend/blueprints/admin_api.py +++ b/backend/blueprints/admin_api.py @@ -8,7 +8,7 @@ import threading import requests from requests.adapters import HTTPAdapter -from flask import Blueprint, request, jsonify, session, current_app, g +from flask import Blueprint, request, jsonify, session, current_app, g, Response import pymysql from werkzeug.security import generate_password_hash @@ -149,14 +149,24 @@ def _proxy_backend_java(method, path, *, params=None, json_data=None, files=None def _format_permission_item(item): + created_at = item.get('createdAt') + if created_at in (None, ''): + created_at = item.get('created_at') + if hasattr(created_at, 'strftime'): + created_at_text = created_at.strftime('%Y-%m-%d %H:%M') + else: + created_at_text = (str(created_at).replace('T', ' ')[:16]) if created_at else '' + sort_order = item.get('sortOrder') + if sort_order is None: + sort_order = item.get('sort_order') return { 'id': item.get('id'), 'name': item.get('name') or '', - 'column_key': item.get('columnKey') or '', - 'menu_type': item.get('menuType') or 'app', - 'route_path': item.get('routePath') or '', - 'sort_order': item.get('sortOrder') if item.get('sortOrder') is not None else 0, - 'created_at': (item.get('createdAt') or '').replace('T', ' ')[:16], + 'column_key': item.get('columnKey') or item.get('column_key') or '', + 'menu_type': item.get('menuType') or item.get('menu_type') or 'app', + 'route_path': item.get('routePath') or item.get('route_path') or '', + 'sort_order': sort_order if sort_order is not None else 0, + 'created_at': created_at_text, } @@ -792,11 +802,9 @@ def create_user(): (username, pwd_hash, is_admin, want_role, want_created_by), ) new_uid = cur.lastrowid + _set_user_column_permissions(cur, new_uid, column_ids) conn.commit() conn.close() - error_response, status = _sync_user_column_permissions(new_uid, column_ids) - if error_response is not None: - return error_response, status return jsonify({'success': True, 'msg': '用户创建成功'}) except pymysql.IntegrityError: return jsonify({'success': False, 'error': '用户名已存在'}) @@ -807,7 +815,7 @@ def create_user(): @admin_api.route('/user/', methods=['PUT']) @admin_required def update_user(uid): - """更新用户(密码、角色)""" + """更新用户(密码、角色、栏目权限)""" data = request.get_json() or {} _, _, denied = _ensure_admin_menu_access('users') if denied: @@ -817,7 +825,7 @@ def update_user(uid): role, current_row = get_current_admin_role() if not role: return jsonify({'success': False, 'error': '需要管理员权限'}), 403 - if want_role is None and not password: + if want_role is None and not password and 'column_ids' not in data: return jsonify({'success': False, 'error': '请提供要修改的内容'}) try: conn = get_db() @@ -852,13 +860,10 @@ def update_user(uid): "UPDATE users SET is_admin = %s, role = %s WHERE id = %s", (is_admin, want_role, uid), ) - column_ids = data.get('column_ids') + if 'column_ids' in data: + _set_user_column_permissions(cur, uid, data.get('column_ids')) conn.commit() conn.close() - if column_ids is not None: - error_response, status = _sync_user_column_permissions(uid, column_ids) - if error_response is not None: - return error_response, status return jsonify({'success': True, 'msg': '更新成功'}) except Exception as e: return jsonify({'success': False, 'error': str(e)}) @@ -1139,15 +1144,7 @@ def get_user_columns(uid): if denied: return denied menu_type = (request.args.get('menu_type') or '').strip() - result, error_response, status = _proxy_backend_java( - 'GET', - f'/api/admin/permission-users/{uid}/columns', - params={'menuType': menu_type} if menu_type else None, - ) - if error_response is not None: - return error_response, status - payload = result.get('data') or {} - return jsonify({'success': True, 'column_ids': payload.get('columnIds') or []}) + return jsonify({'success': True, 'column_ids': _get_local_user_column_ids(uid, menu_type or None)}) @admin_api.route('/user//column-permissions') @@ -1157,14 +1154,8 @@ def get_user_column_permissions(uid): if denied: return denied menu_type = (request.args.get('menu_type') or '').strip() - result, error_response, status = _proxy_backend_java( - 'GET', - f'/api/admin/permission-users/{uid}/column-permissions', - params={'menuType': menu_type} if menu_type else None, - ) - if error_response is not None: - return error_response, status - return jsonify({'success': True, 'items': [_format_permission_item(item) for item in (result.get('data') or [])]}) + items = _get_local_user_column_permission_items(uid, menu_type or None) + return jsonify({'success': True, 'items': [_format_permission_item(item) for item in items]}) def _set_user_column_permissions(cur, user_id, column_ids): @@ -2006,18 +1997,18 @@ def list_skip_price_asins(): group_id_raw = (request.args.get('group_id') or '').strip() shop_name = (request.args.get('shop_name') or '').strip() asin = (request.args.get('asin') or '').strip() - params = {'page': page, 'pageSize': page_size} - if current_row and current_row.get('id'): - params['operatorId'] = current_row.get('id') - params['superAdmin'] = 'true' if role == 'super_admin' else 'false' + params = {'page': page, 'page_size': page_size, 'pageSize': page_size} + params.update(_skip_price_asin_auth_params(role, current_row)) if group_id_raw: try: group_id = int(group_id_raw) if group_id > 0: + params['group_id'] = group_id params['groupId'] = group_id except (TypeError, ValueError): pass if shop_name: + params['shop_name'] = shop_name params['shopName'] = shop_name if asin: params['asin'] = asin @@ -2059,6 +2050,64 @@ def list_skip_price_asins(): }) +def _skip_price_asin_auth_params(role, current_row): + operator_id = current_row.get('id') if current_row else None + super_admin = 'true' if role == 'super_admin' else 'false' + return { + 'operator_id': operator_id, + 'operatorId': operator_id, + 'super_admin': super_admin, + 'superAdmin': super_admin, + } + + +@admin_api.route('/skip-price-asins/export') +@login_required +def export_skip_price_asins(): + role, current_row, denied = _ensure_backend_menu_access('skip-price-asin') + if denied: + return denied + params = _skip_price_asin_auth_params(role, current_row) + group_id_raw = (request.args.get('group_id') or request.args.get('groupId') or '').strip() + shop_name = (request.args.get('shop_name') or request.args.get('shopName') or '').strip() + asin = (request.args.get('asin') or '').strip() + if group_id_raw: + params['group_id'] = group_id_raw + params['groupId'] = group_id_raw + if shop_name: + params['shop_name'] = shop_name + params['shopName'] = shop_name + if asin: + params['asin'] = asin + + url = f"{backend_java_base_url}/api/admin/skip-price-asins/export" + try: + resp = _get_backend_java_session().get(url, params=params, timeout=60) + except requests.RequestException: + return jsonify({'success': False, 'error': 'backend-java 服务不可用'}), 502 + if resp.status_code >= 400: + try: + data = resp.json() + error = data.get('message') or data.get('error') or '导出失败' + except ValueError: + error = '导出失败' + return jsonify({'success': False, 'error': error}), resp.status_code + + headers = {} + disposition = resp.headers.get('Content-Disposition') + if disposition: + headers['Content-Disposition'] = disposition + return Response( + resp.content, + status=resp.status_code, + headers=headers, + content_type=resp.headers.get( + 'Content-Type', + 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + ), + ) + + @admin_api.route('/skip-price-asin', methods=['POST']) @login_required def create_skip_price_asin(): @@ -2092,10 +2141,7 @@ def create_skip_price_asin(): result, error_response, status = _proxy_backend_java( 'POST', '/api/admin/skip-price-asins', - params={ - 'operatorId': current_row.get('id') if current_row else None, - 'superAdmin': 'true' if role == 'super_admin' else 'false', - }, + params=_skip_price_asin_auth_params(role, current_row), json_data=payload, ) if error_response is not None: @@ -2134,10 +2180,7 @@ def delete_skip_price_asin_country(item_id, country): result, error_response, status = _proxy_backend_java( 'DELETE', f'/api/admin/skip-price-asins/{item_id}/countries/{country}', - params={ - 'operatorId': current_row.get('id') if current_row else None, - 'superAdmin': 'true' if role == 'super_admin' else 'false', - }, + params=_skip_price_asin_auth_params(role, current_row), ) if error_response is not None: return error_response, status @@ -2177,10 +2220,7 @@ def update_skip_price_asin_country(item_id, country): result, error_response, status = _proxy_backend_java( 'PUT', f'/api/admin/skip-price-asins/{item_id}/countries/{country}', - params={ - 'operatorId': current_row.get('id') if current_row else None, - 'superAdmin': 'true' if role == 'super_admin' else 'false', - }, + params=_skip_price_asin_auth_params(role, current_row), json_data=payload, ) if error_response is not None: @@ -2240,11 +2280,9 @@ def import_skip_price_asins(): group_id_raw = (request.form.get('group_id') or '').strip() if not group_id_raw: return jsonify({'success': False, 'error': '请先选择分组'}) - params = { - 'groupId': group_id_raw, - 'operatorId': current_row.get('id') if current_row else None, - 'superAdmin': 'true' if role == 'super_admin' else 'false', - } + params = _skip_price_asin_auth_params(role, current_row) + params['group_id'] = group_id_raw + params['groupId'] = group_id_raw files = { 'file': (file_storage.filename, file_storage.stream, file_storage.mimetype or 'application/octet-stream') } @@ -2295,11 +2333,9 @@ def delete_import_skip_price_asins(): group_id_raw = (request.form.get('group_id') or '').strip() if not group_id_raw: return jsonify({'success': False, 'error': '请先选择分组'}) - params = { - 'groupId': group_id_raw, - 'operatorId': current_row.get('id') if current_row else None, - 'superAdmin': 'true' if role == 'super_admin' else 'false', - } + params = _skip_price_asin_auth_params(role, current_row) + params['group_id'] = group_id_raw + params['groupId'] = group_id_raw files = { 'file': (file_storage.filename, file_storage.stream, file_storage.mimetype or 'application/octet-stream') } @@ -2584,3 +2620,46 @@ def update_query_asin_country(item_id, country): 'msg': result.get('message') or '保存成功', 'item': _format_query_asin_item(result.get('data') or {}), }) + + +def _get_local_user_column_ids(user_id, menu_type=None): + conn = get_db() + try: + with conn.cursor() as cur: + sql = """ + SELECT c.id + FROM user_column_permission ucp + INNER JOIN columns c ON c.id = ucp.column_id + WHERE ucp.user_id = %s + """ + params = [user_id] + if menu_type: + sql += " AND c.menu_type = %s" + params.append(menu_type) + sql += " ORDER BY c.sort_order ASC, c.id ASC" + cur.execute(sql, params) + rows = cur.fetchall() + return [int(row['id']) for row in rows if row.get('id') is not None] + finally: + conn.close() + + +def _get_local_user_column_permission_items(user_id, menu_type=None): + conn = get_db() + try: + with conn.cursor() as cur: + sql = """ + SELECT c.id, c.name, c.column_key, c.menu_type, c.route_path, c.sort_order, c.created_at + FROM user_column_permission ucp + INNER JOIN columns c ON c.id = ucp.column_id + WHERE ucp.user_id = %s + """ + params = [user_id] + if menu_type: + sql += " AND c.menu_type = %s" + params.append(menu_type) + sql += " ORDER BY c.sort_order ASC, c.id ASC" + cur.execute(sql, params) + return cur.fetchall() + finally: + conn.close() diff --git a/backend/static/admin.js b/backend/static/admin.js index ee792dd..e5500a4 100644 --- a/backend/static/admin.js +++ b/backend/static/admin.js @@ -1856,16 +1856,82 @@ minimumPriceMappings: minimumPriceMappings }; } - function buildSkipPriceAsinQuery(page) { - var query = 'page=' + (page || 1) + '&page_size=' + skipPriceAsinPageSize; + function buildSkipPriceAsinFilterQuery() { + var query = ''; var groupId = (document.getElementById('skipPriceAsinFilterGroupId').value || '').trim(); var shopName = (document.getElementById('skipPriceAsinFilterShopName').value || '').trim(); var asin = (document.getElementById('skipPriceAsinFilterAsin').value || '').trim(); - if (groupId) query += '&group_id=' + encodeURIComponent(groupId); - if (shopName) query += '&shop_name=' + encodeURIComponent(shopName); - if (asin) query += '&asin=' + encodeURIComponent(asin); + if (groupId) query += (query ? '&' : '') + 'group_id=' + encodeURIComponent(groupId); + if (shopName) query += (query ? '&' : '') + 'shop_name=' + encodeURIComponent(shopName); + if (asin) query += (query ? '&' : '') + 'asin=' + encodeURIComponent(asin); return query; } + function buildSkipPriceAsinOperatorQuery() { + var query = ''; + if (currentUserId) query += 'operator_id=' + encodeURIComponent(currentUserId); + if (currentUserRole === 'super_admin') query += (query ? '&' : '') + 'super_admin=true'; + return query; + } + function buildSkipPriceAsinQuery(page) { + var query = 'page=' + (page || 1) + '&page_size=' + skipPriceAsinPageSize; + var filterQuery = buildSkipPriceAsinFilterQuery(); + if (filterQuery) query += '&' + filterQuery; + var operatorQuery = buildSkipPriceAsinOperatorQuery(); + if (operatorQuery) query += '&' + operatorQuery; + return query; + } + function extractDownloadFilename(disposition, fallbackName) { + var fallback = fallbackName || 'download.xlsx'; + if (!disposition) return fallback; + var utf8Match = disposition.match(/filename\*=UTF-8''([^;]+)/i); + if (utf8Match && utf8Match[1]) { + try { + return decodeURIComponent(utf8Match[1]); + } catch (e) { } + } + var plainMatch = disposition.match(/filename=\"?([^\";]+)\"?/i); + if (plainMatch && plainMatch[1]) return plainMatch[1]; + return fallback; + } + function triggerBrowserDownload(blob, filename) { + var url = URL.createObjectURL(blob); + var a = document.createElement('a'); + a.href = url; + a.download = filename || 'download.xlsx'; + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + setTimeout(function () { URL.revokeObjectURL(url); }, 1000); + } + function exportSkipPriceAsin() { + var query = buildSkipPriceAsinFilterQuery(); + var operatorQuery = buildSkipPriceAsinOperatorQuery(); + if (operatorQuery) query += (query ? '&' : '') + operatorQuery; + var url = '/api/admin/skip-price-asins/export' + (query ? ('?' + query) : ''); + fetch(url) + .then(function (response) { + var contentType = response.headers.get('content-type') || ''; + if (!response.ok || contentType.indexOf('application/json') >= 0) { + return response.json().then(function (res) { + throw new Error((res && (res.error || res.msg)) || '导出失败'); + }).catch(function (err) { + throw err instanceof Error ? err : new Error('导出失败'); + }); + } + return response.blob().then(function (blob) { + return { + blob: blob, + filename: extractDownloadFilename(response.headers.get('content-disposition'), 'skip-price-asin.xlsx') + }; + }); + }) + .then(function (payload) { + triggerBrowserDownload(payload.blob, payload.filename); + }) + .catch(function (err) { + alert((err && err.message) || '导出失败'); + }); + } function renderSkipPriceAsinCell(item, country) { var asinValue = item[country.field] || ''; var minimumPriceValue = formatSkipPriceMinimumPrice(item[country.minimumPriceField]); @@ -1917,7 +1983,8 @@ var shopName = (btn.dataset.shopName || '').replace(/"/g, '"'); var countryCode = btn.dataset.country || ''; if (!confirm('确定删除店铺“' + shopName + '”在 ' + countryCode + ' 的 ASIN 吗?')) return; - fetch('/api/admin/skip-price-asin/' + btn.dataset.skipPriceAsinDelete + '/country/' + countryCode, { + var operatorQuery = buildSkipPriceAsinOperatorQuery(); + fetch('/api/admin/skip-price-asin/' + btn.dataset.skipPriceAsinDelete + '/country/' + countryCode + (operatorQuery ? ('?' + operatorQuery) : ''), { method: 'DELETE' }) .then(function (r) { return r.json(); }) @@ -2184,6 +2251,8 @@ var formData = new FormData(); formData.append('file', file); formData.append('group_id', groupId); + if (currentUserId) formData.append('operator_id', currentUserId); + if (currentUserRole === 'super_admin') formData.append('super_admin', 'true'); var xhr = new XMLHttpRequest(); xhr.open('POST', deleteMode ? '/api/admin/skip-price-asins/delete-import' : '/api/admin/skip-price-asins/import', true); xhr.upload.onprogress = function (event) { @@ -2267,7 +2336,8 @@ return; } } - fetch('/api/admin/skip-price-asin/' + itemId + '/country/' + countryCode, { + var operatorQuery = buildSkipPriceAsinOperatorQuery(); + fetch('/api/admin/skip-price-asin/' + itemId + '/country/' + countryCode + (operatorQuery ? ('?' + operatorQuery) : ''), { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ @@ -2294,6 +2364,9 @@ document.getElementById('btnSearchSkipPriceAsin').onclick = function () { loadSkipPriceAsin(1); }; + document.getElementById('btnExportSkipPriceAsin').onclick = function () { + exportSkipPriceAsin(); + }; document.getElementById('skipPriceAsinFilterShopName').addEventListener('keydown', function (e) { if (e.key === 'Enter') { e.preventDefault(); @@ -2334,7 +2407,8 @@ fallbackAsin = asinMappings[countryCode] || ''; return !!fallbackAsin; }); - fetch('/api/admin/skip-price-asin', { + var operatorQuery = buildSkipPriceAsinOperatorQuery(); + fetch('/api/admin/skip-price-asin' + (operatorQuery ? ('?' + operatorQuery) : ''), { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ @@ -3429,8 +3503,10 @@ } // 初始化 + var adminCurrentUserPromise = null; function loadAdminCurrentUser() { - fetch('/api/admin/current-user') + if (adminCurrentUserPromise) return adminCurrentUserPromise; + adminCurrentUserPromise = fetch('/api/admin/current-user') .then(function (r) { if (r.status === 404) { return fetch('/api/auth/check') @@ -3474,7 +3550,7 @@ updateShopManageGroupButtonsAccess(); }) .catch(function () { - fetch('/api/auth/check') + return fetch('/api/auth/check') .then(function (r) { return r.json(); }) .then(function (res) { document.getElementById('adminCurrentUsername').textContent = res && res.logged_in ? '当前用户' : '未登录'; @@ -3486,7 +3562,13 @@ document.getElementById('adminCurrentUserRole').style.display = 'none'; updateShopManageGroupButtonsAccess(); }); + }) + .finally(function () { + if (!currentUserId && currentUserRole !== 'super_admin') { + adminCurrentUserPromise = null; + } }); + return adminCurrentUserPromise; } document.getElementById('btnAdminLogout').onclick = function () { @@ -3514,10 +3596,11 @@ }); }; - loadAdminCurrentUser(); - loadUserOptions(); - loadColumnsForPermission(); - loadShopManageGroups(); - loadAdminMenus(); + loadAdminCurrentUser().finally(function () { + loadUserOptions(); + loadColumnsForPermission(); + loadShopManageGroups(); + loadAdminMenus(); + }); }) (); diff --git a/backend/web_source/admin.html b/backend/web_source/admin.html index 01ef494..3fb943c 100644 --- a/backend/web_source/admin.html +++ b/backend/web_source/admin.html @@ -1202,6 +1202,7 @@ + diff --git a/frontend-vue/src/pages/brand/components/BrandAppearancePatentTab.vue b/frontend-vue/src/pages/brand/components/BrandAppearancePatentTab.vue index d739396..1534ee1 100644 --- a/frontend-vue/src/pages/brand/components/BrandAppearancePatentTab.vue +++ b/frontend-vue/src/pages/brand/components/BrandAppearancePatentTab.vue @@ -84,9 +84,6 @@
-
- {{ item.fileProgressCurrent || 0 }}/{{ item.fileProgressTotal || 0 }} -
@@ -119,9 +116,6 @@
-
- {{ item.fileProgressCurrent || 0 }}/{{ item.fileProgressTotal || 0 }} -
错误:{{ item.error }}
@@ -702,8 +696,13 @@ function canDownload(item: AppearancePatentHistoryItem) { function fileProgressPercent(item: AppearancePatentHistoryItem) { const percent = Number(item.fileProgressPercent || 0) - if (!Number.isFinite(percent)) return 0 - return Math.max(0, Math.min(100, Math.round(percent))) + if (Number.isFinite(percent) && percent > 0) { + return Math.max(0, Math.min(100, Math.round(percent))) + } + if (shouldShowFallbackJobProgress(item)) { + return activeFileJobStatus(item) === 'PENDING' ? 6 : 10 + } + return 0 } function displayFileProgressMessage(item: AppearancePatentHistoryItem, fallback: string) { @@ -736,7 +735,30 @@ function translateFileProgressMessage(message: string) { function showFileProgress(item: AppearancePatentHistoryItem) { const status = normalizeTaskStatus(item) - return (status === 'RUNNING' || isResultPreparing(item)) && (item.fileProgressTotal || 0) > 0 + return (status === 'RUNNING' || isResultPreparing(item)) && (hasExplicitFileProgress(item) || shouldShowFallbackJobProgress(item)) +} + +function hasExplicitFileProgress(item: AppearancePatentHistoryItem) { + return hasFileProgressCount(item) + || Number(item.fileProgressPercent || 0) > 0 + || Boolean((item.fileProgressMessage || '').trim()) +} + +function hasFileProgressCount(item: AppearancePatentHistoryItem) { + return (item.fileProgressTotal || 0) > 0 +} + +function activeFileJobStatus(item: AppearancePatentHistoryItem) { + return (item.fileStatus || '').toUpperCase() +} + +function hasActiveFileJob(item: AppearancePatentHistoryItem) { + const fileStatus = activeFileJobStatus(item) + return item.fileJobId != null || fileStatus === 'PENDING' || fileStatus === 'RUNNING' +} + +function shouldShowFallbackJobProgress(item: AppearancePatentHistoryItem) { + return hasActiveFileJob(item) && !hasExplicitFileProgress(item) } async function downloadResult(item: AppearancePatentHistoryItem) { @@ -842,7 +864,6 @@ onUnmounted(() => { .file-progress-meta { display: flex; justify-content: space-between; gap: 12px; color: #d8c278; font-size: 12px; } .file-progress-track { margin-top: 5px; height: 8px; border-radius: 999px; overflow: hidden; background: #303030; border: 1px solid #3b3b3b; } .file-progress-bar { height: 100%; border-radius: inherit; background: linear-gradient(90deg, #4aa3ff, #f0c75e); transition: width .25s ease; } -.file-progress-count { margin-top: 4px; color: #858585; font-size: 11px; } .download { padding: 6px 10px; color: #d6ecff; background: rgba(52, 152, 219, .18); } .btn-delete { padding: 6px 10px; color: #ff8f8f; background: rgba(231, 76, 60, .12); } @media (max-width: 1100px) { diff --git a/frontend-vue/src/pages/brand/components/BrandSimilarAsinTab.vue b/frontend-vue/src/pages/brand/components/BrandSimilarAsinTab.vue index 00e6077..dcb28a0 100644 --- a/frontend-vue/src/pages/brand/components/BrandSimilarAsinTab.vue +++ b/frontend-vue/src/pages/brand/components/BrandSimilarAsinTab.vue @@ -115,6 +115,7 @@
暂无解析结果
+ diff --git a/frontend-vue/src/shared/api/java-modules.ts b/frontend-vue/src/shared/api/java-modules.ts index eccc016..ea2184c 100644 --- a/frontend-vue/src/shared/api/java-modules.ts +++ b/frontend-vue/src/shared/api/java-modules.ts @@ -1721,6 +1721,7 @@ export interface SimilarAsinParsedRow { groupKey?: string; asin: string; country: string; + sku?: string; price?: string; url?: string; title?: string;