{
  "type": "excalidraw",
  "version": 2,
  "source": "https://excalidraw.com",
  "elements": [
    {
      "type": "text",
      "version": 2,
      "id": "title",
      "x": 400,
      "y": 30,
      "width": 400,
      "height": 40,
      "text": "计划分享与导入流程图",
      "fontFamily": 5,
      "fontSize": 28,
      "textAlign": "center",
      "verticalAlign": "middle",
      "strokeColor": "#1e1e1e",
      "fillStyle": "solid"
    },
    {
      "type": "rectangle",
      "version": 2,
      "id": "start-purchaser",
      "x": 100,
      "y": 100,
      "width": 180,
      "height": 60,
      "backgroundColor": "#b2f2bb",
      "fillStyle": "solid",
      "strokeColor": "#2f9e44",
      "strokeWidth": 2,
      "roundness": { "type": 3, "value": 8 }
    },
    {
      "type": "text",
      "version": 2,
      "id": "start-purchaser-text",
      "x": 190,
      "y": 130,
      "width": 160,
      "height": 40,
      "text": "采购商\n点击分享按钮",
      "fontFamily": 5,
      "fontSize": 14,
      "textAlign": "center",
      "verticalAlign": "middle"
    },
    {
      "type": "rectangle",
      "version": 2,
      "id": "open-modal",
      "x": 100,
      "y": 200,
      "width": 180,
      "height": 60,
      "backgroundColor": "#a5d8ff",
      "fillStyle": "solid",
      "strokeColor": "#1971c2",
      "strokeWidth": 2,
      "roundness": { "type": 3, "value": 8 }
    },
    {
      "type": "text",
      "version": 2,
      "id": "open-modal-text",
      "x": 190,
      "y": 230,
      "width": 160,
      "height": 40,
      "text": "打开 ShareModal\n分享弹窗",
      "fontFamily": 5,
      "fontSize": 14,
      "textAlign": "center",
      "verticalAlign": "middle"
    },
    {
      "type": "arrow",
      "version": 2,
      "id": "arrow-1",
      "x": 190,
      "y": 160,
      "width": 0,
      "height": 40,
      "points": [[0, 0], [0, 40]],
      "strokeColor": "#495057",
      "strokeWidth": 2
    },
    {
      "type": "diamond",
      "version": 2,
      "id": "decide-hide",
      "x": 100,
      "y": 300,
      "width": 180,
      "height": 80,
      "backgroundColor": "#ffd43b",
      "fillStyle": "solid",
      "strokeColor": "#f08c00",
      "strokeWidth": 2
    },
    {
      "type": "text",
      "version": 2,
      "id": "decide-hide-text",
      "x": 190,
      "y": 340,
      "width": 160,
      "height": 40,
      "text": "是否隐藏\n成品信息?",
      "fontFamily": 5,
      "fontSize": 14,
      "textAlign": "center",
      "verticalAlign": "middle"
    },
    {
      "type": "arrow",
      "version": 2,
      "id": "arrow-2",
      "x": 190,
      "y": 260,
      "width": 0,
      "height": 40,
      "points": [[0, 0], [0, 40]],
      "strokeColor": "#495057",
      "strokeWidth": 2
    },
    {
      "type": "rectangle",
      "version": 2,
      "id": "generate-short",
      "x": 100,
      "y": 420,
      "width": 180,
      "height": 70,
      "backgroundColor": "#a5d8ff",
      "fillStyle": "solid",
      "strokeColor": "#1971c2",
      "strokeWidth": 2,
      "roundness": { "type": 3, "value": 8 }
    },
    {
      "type": "text",
      "version": 2,
      "id": "generate-short-text",
      "x": 190,
      "y": 455,
      "width": 160,
      "height": 50,
      "text": "生成6位短码\n保存到 share_links 表\n(7天过期)",
      "fontFamily": 5,
      "fontSize": 12,
      "textAlign": "center",
      "verticalAlign": "middle"
    },
    {
      "type": "arrow",
      "version": 2,
      "id": "arrow-3",
      "x": 190,
      "y": 380,
      "width": 0,
      "height": 40,
      "points": [[0, 0], [0, 40]],
      "strokeColor": "#495057",
      "strokeWidth": 2
    },
    {
      "type": "rectangle",
      "version": 2,
      "id": "generate-long",
      "x": 350,
      "y": 420,
      "width": 180,
      "height": 70,
      "backgroundColor": "#e599f7",
      "fillStyle": "solid",
      "strokeColor": "#9c36b5",
      "strokeWidth": 2,
      "roundness": { "type": 3, "value": 8 }
    },
    {
      "type": "text",
      "version": 2,
      "id": "generate-long-text",
      "x": 440,
      "y": 455,
      "width": 160,
      "height": 50,
      "text": "生成长链接 Token\nJWT格式+HMAC签名\n(1天过期)",
      "fontFamily": 5,
      "fontSize": 12,
      "textAlign": "center",
      "verticalAlign": "middle"
    },
    {
      "type": "arrow",
      "version": 2,
      "id": "arrow-4",
      "x": 280,
      "y": 340,
      "width": 70,
      "height": 0,
      "points": [[0, 0], [70, 0]],
      "strokeColor": "#495057",
      "strokeWidth": 2
    },
    {
      "type": "text",
      "version": 2,
      "id": "hide-yes-text",
      "x": 295,
      "y": 325,
      "width": 50,
      "height": 20,
      "text": "是",
      "fontFamily": 5,
      "fontSize": 12,
      "textAlign": "center"
    },
    {
      "type": "arrow",
      "version": 2,
      "id": "arrow-5",
      "x": 440,
      "y": 380,
      "width": 0,
      "height": 40,
      "points": [[0, 0], [0, 40]],
      "strokeColor": "#495057",
      "strokeWidth": 2
    },
    {
      "type": "text",
      "version": 2,
      "id": "hide-no-text",
      "x": 155,
      "y": 400,
      "width": 50,
      "height": 20,
      "text": "否",
      "fontFamily": 5,
      "fontSize": 12,
      "textAlign": "center"
    },
    {
      "type": "rectangle",
      "version": 2,
      "id": "show-link",
      "x": 100,
      "y": 520,
      "width": 180,
      "height": 60,
      "backgroundColor": "#a5d8ff",
      "fillStyle": "solid",
      "strokeColor": "#1971c2",
      "strokeWidth": 2,
      "roundness": { "type": 3, "value": 8 }
    },
    {
      "type": "text",
      "version": 2,
      "id": "show-link-text",
      "x": 190,
      "y": 550,
      "width": 160,
      "height": 40,
      "text": "显示分享链接\n短链优先",
      "fontFamily": 5,
      "fontSize": 14,
      "textAlign": "center",
      "verticalAlign": "middle"
    },
    {
      "type": "arrow",
      "version": 2,
      "id": "arrow-6",
      "x": 190,
      "y": 490,
      "width": 0,
      "height": 30,
      "points": [[0, 0], [0, 30]],
      "strokeColor": "#495057",
      "strokeWidth": 2
    },
    {
      "type": "arrow",
      "version": 2,
      "id": "arrow-7",
      "x": 350,
      "y": 455,
      "width": -70,
      "height": 95,
      "points": [[0, 0], [-70, 95]],
      "strokeColor": "#495057",
      "strokeWidth": 2
    },
    {
      "type": "rectangle",
      "version": 2,
      "id": "copy-link",
      "x": 100,
      "y": 610,
      "width": 180,
      "height": 60,
      "backgroundColor": "#a5d8ff",
      "fillStyle": "solid",
      "strokeColor": "#1971c2",
      "strokeWidth": 2,
      "roundness": { "type": 3, "value": 8 }
    },
    {
      "type": "text",
      "version": 2,
      "id": "copy-link-text",
      "x": 190,
      "y": 640,
      "width": 160,
      "height": 40,
      "text": "采购商复制链接\n发送给工厂",
      "fontFamily": 5,
      "fontSize": 14,
      "textAlign": "center",
      "verticalAlign": "middle"
    },
    {
      "type": "arrow",
      "version": 2,
      "id": "arrow-8",
      "x": 190,
      "y": 580,
      "width": 0,
      "height": 30,
      "points": [[0, 0], [0, 30]],
      "strokeColor": "#495057",
      "strokeWidth": 2
    },
    {
      "type": "rectangle",
      "version": 2,
      "id": "factory-open",
      "x": 600,
      "y": 100,
      "width": 180,
      "height": 60,
      "backgroundColor": "#b2f2bb",
      "fillStyle": "solid",
      "strokeColor": "#2f9e44",
      "strokeWidth": 2,
      "roundness": { "type": 3, "value": 8 }
    },
    {
      "type": "text",
      "version": 2,
      "id": "factory-open-text",
      "x": 690,
      "y": 130,
      "width": 160,
      "height": 40,
      "text": "纺织厂/水洗厂\n打开分享链接",
      "fontFamily": 5,
      "fontSize": 14,
      "textAlign": "center",
      "verticalAlign": "middle"
    },
    {
      "type": "arrow",
      "version": 2,
      "id": "arrow-9",
      "x": 280,
      "y": 640,
      "width": 320,
      "height": -540,
      "points": [[0, 0], [160, 0], [160, -540], [320, -540]],
      "strokeColor": "#495057",
      "strokeWidth": 2
    },
    {
      "type": "rectangle",
      "version": 2,
      "id": "parse-link",
      "x": 600,
      "y": 200,
      "width": 180,
      "height": 60,
      "backgroundColor": "#a5d8ff",
      "fillStyle": "solid",
      "strokeColor": "#1971c2",
      "strokeWidth": 2,
      "roundness": { "type": 3, "value": 8 }
    },
    {
      "type": "text",
      "version": 2,
      "id": "parse-link-text",
      "x": 690,
      "y": 230,
      "width": 160,
      "height": 40,
      "text": "ImportPlanPage\n解析链接参数",
      "fontFamily": 5,
      "fontSize": 14,
      "textAlign": "center",
      "verticalAlign": "middle"
    },
    {
      "type": "arrow",
      "version": 2,
      "id": "arrow-10",
      "x": 690,
      "y": 160,
      "width": 0,
      "height": 40,
      "points": [[0, 0], [0, 40]],
      "strokeColor": "#495057",
      "strokeWidth": 2
    },
    {
      "type": "diamond",
      "version": 2,
      "id": "check-used",
      "x": 600,
      "y": 300,
      "width": 180,
      "height": 80,
      "backgroundColor": "#ffd43b",
      "fillStyle": "solid",
      "strokeColor": "#f08c00",
      "strokeWidth": 2
    },
    {
      "type": "text",
      "version": 2,
      "id": "check-used-text",
      "x": 690,
      "y": 340,
      "width": 160,
      "height": 40,
      "text": "链接是否\n已使用?",
      "fontFamily": 5,
      "fontSize": 14,
      "textAlign": "center",
      "verticalAlign": "middle"
    },
    {
      "type": "arrow",
      "version": 2,
      "id": "arrow-11",
      "x": 690,
      "y": 260,
      "width": 0,
      "height": 40,
      "points": [[0, 0], [0, 40]],
      "strokeColor": "#495057",
      "strokeWidth": 2
    },
    {
      "type": "rectangle",
      "version": 2,
      "id": "link-invalid",
      "x": 850,
      "y": 310,
      "width": 140,
      "height": 60,
      "backgroundColor": "#ffc9c9",
      "fillStyle": "solid",
      "strokeColor": "#e03131",
      "strokeWidth": 2,
      "roundness": { "type": 3, "value": 8 }
    },
    {
      "type": "text",
      "version": 2,
      "id": "link-invalid-text",
      "x": 920,
      "y": 340,
      "width": 120,
      "height": 40,
      "text": "显示\n链接已失效",
      "fontFamily": 5,
      "fontSize": 14,
      "textAlign": "center",
      "verticalAlign": "middle"
    },
    {
      "type": "arrow",
      "version": 2,
      "id": "arrow-12",
      "x": 780,
      "y": 340,
      "width": 70,
      "height": 0,
      "points": [[0, 0], [70, 0]],
      "strokeColor": "#495057",
      "strokeWidth": 2
    },
    {
      "type": "text",
      "version": 2,
      "id": "used-yes-text",
      "x": 795,
      "y": 325,
      "width": 50,
      "height": 20,
      "text": "是",
      "fontFamily": 5,
      "fontSize": 12,
      "textAlign": "center"
    },
    {
      "type": "rectangle",
      "version": 2,
      "id": "create-relation",
      "x": 600,
      "y": 420,
      "width": 180,
      "height": 70,
      "backgroundColor": "#a5d8ff",
      "fillStyle": "solid",
      "strokeColor": "#1971c2",
      "strokeWidth": 2,
      "roundness": { "type": 3, "value": 8 }
    },
    {
      "type": "text",
      "version": 2,
      "id": "create-relation-text",
      "x": 690,
      "y": 455,
      "width": 160,
      "height": 50,
      "text": "创建 plan_factories\n关联记录\n标记 used_at",
      "fontFamily": 5,
      "fontSize": 12,
      "textAlign": "center",
      "verticalAlign": "middle"
    },
    {
      "type": "arrow",
      "version": 2,
      "id": "arrow-13",
      "x": 690,
      "y": 380,
      "width": 0,
      "height": 40,
      "points": [[0, 0], [0, 40]],
      "strokeColor": "#495057",
      "strokeWidth": 2
    },
    {
      "type": "text",
      "version": 2,
      "id": "used-no-text",
      "x": 655,
      "y": 400,
      "width": 50,
      "height": 20,
      "text": "否",
      "fontFamily": 5,
      "fontSize": 12,
      "textAlign": "center"
    },
    {
      "type": "rectangle",
      "version": 2,
      "id": "redirect-plans",
      "x": 600,
      "y": 520,
      "width": 180,
      "height": 60,
      "backgroundColor": "#a5d8ff",
      "fillStyle": "solid",
      "strokeColor": "#1971c2",
      "strokeWidth": 2,
      "roundness": { "type": 3, "value": 8 }
    },
    {
      "type": "text",
      "version": 2,
      "id": "redirect-plans-text",
      "x": 690,
      "y": 550,
      "width": 160,
      "height": 40,
      "text": "跳转到计划总览\n显示新导入计划",
      "fontFamily": 5,
      "fontSize": 14,
      "textAlign": "center",
      "verticalAlign": "middle"
    },
    {
      "type": "arrow",
      "version": 2,
      "id": "arrow-14",
      "x": 690,
      "y": 490,
      "width": 0,
      "height": 30,
      "points": [[0, 0], [0, 30]],
      "strokeColor": "#495057",
      "strokeWidth": 2
    },
    {
      "type": "rectangle",
      "version": 2,
      "id": "end",
      "x": 600,
      "y": 610,
      "width": 180,
      "height": 60,
      "backgroundColor": "#b2f2bb",
      "fillStyle": "solid",
      "strokeColor": "#2f9e44",
      "strokeWidth": 2,
      "roundness": { "type": 3, "value": 8 }
    },
    {
      "type": "text",
      "version": 2,
      "id": "end-text",
      "x": 690,
      "y": 640,
      "width": 160,
      "height": 40,
      "text": "工厂开始处理\n生产计划",
      "fontFamily": 5,
      "fontSize": 14,
      "textAlign": "center",
      "verticalAlign": "middle"
    },
    {
      "type": "arrow",
      "version": 2,
      "id": "arrow-15",
      "x": 690,
      "y": 580,
      "width": 0,
      "height": 30,
      "points": [[0, 0], [0, 30]],
      "strokeColor": "#495057",
      "strokeWidth": 2
    },
    {
      "type": "text",
      "version": 2,
      "id": "actor-purchaser",
      "x": 50,
      "y": 100,
      "width": 40,
      "height": 60,
      "text": "采购商",
      "fontFamily": 5,
      "fontSize": 16,
      "textAlign": "center",
      "verticalAlign": "middle",
      "strokeColor": "#2f9e44",
      "fillStyle": "solid"
    },
    {
      "type": "text",
      "version": 2,
      "id": "actor-factory",
      "x": 550,
      "y": 100,
      "width": 40,
      "height": 60,
      "text": "工厂",
      "fontFamily": 5,
      "fontSize": 16,
      "textAlign": "center",
      "verticalAlign": "middle",
      "strokeColor": "#2f9e44",
      "fillStyle": "solid"
    },
    {
      "type": "rectangle",
      "version": 2,
      "id": "legend-box",
      "x": 850,
      "y": 420,
      "width": 200,
      "height": 180,
      "backgroundColor": "#f8f9fa",
      "fillStyle": "solid",
      "strokeColor": "#dee2e6",
      "strokeWidth": 1,
      "roundness": { "type": 3, "value": 8 }
    },
    {
      "type": "text",
      "version": 2,
      "id": "legend-title",
      "x": 950,
      "y": 440,
      "width": 180,
      "height": 20,
      "text": "图例说明",
      "fontFamily": 5,
      "fontSize": 14,
      "textAlign": "center",
      "verticalAlign": "middle",
      "strokeColor": "#495057"
    },
    {
      "type": "rectangle",
      "version": 2,
      "id": "legend-start",
      "x": 870,
      "y": 470,
      "width": 30,
      "height": 20,
      "backgroundColor": "#b2f2bb",
      "fillStyle": "solid",
      "strokeColor": "#2f9e44",
      "strokeWidth": 1,
      "roundness": { "type": 3, "value": 4 }
    },
    {
      "type": "text",
      "version": 2,
      "id": "legend-start-text",
      "x": 910,
      "y": 480,
      "width": 120,
      "height": 20,
      "text": "开始/结束",
      "fontFamily": 5,
      "fontSize": 12,
      "textAlign": "left",
      "verticalAlign": "middle"
    },
    {
      "type": "rectangle",
      "version": 2,
      "id": "legend-process",
      "x": 870,
      "y": 500,
      "width": 30,
      "height": 20,
      "backgroundColor": "#a5d8ff",
      "fillStyle": "solid",
      "strokeColor": "#1971c2",
      "strokeWidth": 1,
      "roundness": { "type": 3, "value": 4 }
    },
    {
      "type": "text",
      "version": 2,
      "id": "legend-process-text",
      "x": 910,
      "y": 510,
      "width": 120,
      "height": 20,
      "text": "处理步骤",
      "fontFamily": 5,
      "fontSize": 12,
      "textAlign": "left",
      "verticalAlign": "middle"
    },
    {
      "type": "diamond",
      "version": 2,
      "id": "legend-decision",
      "x": 885,
      "y": 535,
      "width": 20,
      "height": 20,
      "backgroundColor": "#ffd43b",
      "fillStyle": "solid",
      "strokeColor": "#f08c00",
      "strokeWidth": 1
    },
    {
      "type": "text",
      "version": 2,
      "id": "legend-decision-text",
      "x": 910,
      "y": 545,
      "width": 120,
      "height": 20,
      "text": "判断条件",
      "fontFamily": 5,
      "fontSize": 12,
      "textAlign": "left",
      "verticalAlign": "middle"
    },
    {
      "type": "rectangle",
      "version": 2,
      "id": "legend-error",
      "x": 870,
      "y": 565,
      "width": 30,
      "height": 20,
      "backgroundColor": "#ffc9c9",
      "fillStyle": "solid",
      "strokeColor": "#e03131",
      "strokeWidth": 1,
      "roundness": { "type": 3, "value": 4 }
    },
    {
      "type": "text",
      "version": 2,
      "id": "legend-error-text",
      "x": 910,
      "y": 575,
      "width": 120,
      "height": 20,
      "text": "错误/终止",
      "fontFamily": 5,
      "fontSize": 12,
      "textAlign": "left",
      "verticalAlign": "middle"
    }
  ],
  "appState": {
    "viewBackgroundColor": "#ffffff",
    "gridSize": 20
  },
  "files": {}
}