diff --git a/CLAUDE.md b/CLAUDE.md index 12bfedd..a2949e6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -44,12 +44,15 @@ cd frontend && npm run dev │ ├── api/client.ts SSE 客户端 + fetch 封装 │ ├── stores/chat.ts Pinia: 消息/流式/节点进度 │ ├── stores/session.ts Pinia: 会话管理 + │ ├── stores/kb.ts Pinia: KB 状态管理(多租户知识库) │ ├── components/ │ │ ├── Sidebar.vue 会话列表 + 下载 + 历史版本 │ │ ├── ChatMessages.vue 消息列表渲染 │ │ ├── ProcessSection.vue 过程折叠区(替代 StreamingMessage + NodeProgress) - │ │ ├── UnifiedInput.vue 统一输入框(文本+文件拖拽/粘贴/芯片) - │ │ └── SummaryCard.vue 结果摘要卡片(含耗时) + │ │ ├── UnifiedInput.vue 统一输入框(文本+文件拖拽/粘贴/芯片,含 .jrxml) + │ │ ├── SummaryCard.vue 结果摘要卡片(含耗时) + │ │ ├── KbSelector.vue KB 下拉选择器(对话中切换知识库) + │ │ └── KbManager.vue KB 管理面板(创建/上传/构建/删除) │ └── utils/format.ts 工具函数 │ ▼ HTTP + SSE (Server-Sent Events) @@ -87,9 +90,16 @@ validation_service/ (FastAPI, 端口 8001) — 不变 | `backend/annotation_detector.py` | 批注检测: 圈选(cv2 HoughCircles) + 箭头(HoughLinesP聚类) + OCR关联 + LLM格式化 | 中 | | `backend/embeddings.py` | 嵌入模型工厂 (HuggingFace/OpenAI) | 低 | | `backend/validation.py` | 验证服务 HTTP 客户端 | 低 | -| `backend/session.py` | 会话 JSON 文件 CRUD | 低 | +| `backend/session.py` | 会话 JSON 文件 CRUD(含 kb_id) | 低 | +| `backend/kb_manager.py` | 用户+知识库 CRUD(多租户,原子 JSON 持久化) | 中 | +| `backend/kb_searcher.py` | 知识库隔离搜索 + 模板检索(per-KB ChromaDB) | 中 | +| `backend/kb_parser.py` | KB 解析管道:文件解析→字段提取→chunk切割→向量嵌入 | 中 | +| `backend/field_matcher.py` | OCR↔KB 字段匹配:Embedding 粗筛 + LLM 精确确认 | 中 | +| `agent/datasource.py` | 数据源模式解析:$P{{xxx}} 参数 vs JDBC 直连 | 低 | +| `agent/jrxml_windower.py` | JRXML Band 级窗口化引擎:拆解/切分/重组/元素计数校验 | 中 | | `validation_service/main.py` | FastAPI 验证服务 | 低 | -| `scripts/init_kb.py` | 知识库初始化/模型下载 | 低 | +| `scripts/init_kb.py` | 旧 RAG 知识库初始化/模型下载 | 低 | +| `scripts/init_default_kb.py` | 多租户默认 KB 初始化(默认用户 + 预置 KB) | 低 | | `app.py` | ~~旧 Streamlit UI~~(已由 api_server.py + frontend/ 替代) | 废弃 | ## 关键约定 @@ -427,3 +437,115 @@ cd frontend && npx playwright test ### consult_answer 前端显示修复 - `api_server.py` — `agent_complete` SSE 事件新增 `consult_answer` 字段 + +## 更新 (v12 — 2026-05-23) + +### 多租户知识库系统 + +**核心架构**:用户自行维护多套知识库,每套 KB 拥有独立的文件存储、JSON 元数据和 ChromaDB 向量集合。会话可绑定不同 KB,LLM 基于 KB 中的字段定义和 JRXML 模板生成报表。 + +**存储架构**: +``` +kb_data/ +├── users.json # 用户注册表 +└── {user_id}/ + ├── profile.json + └── {kb_id}/ + ├── meta.json # KB 元数据 + 字段定义 + 模板索引 + ├── raw/ # 原始上传文件 + ├── chunks.json # RAG chunks(含 JRXML 模板完整文本) + └── chroma/ # KB 专属 ChromaDB +``` + +**新增后端模块**: + +| 文件 | 职责 | +|------|------| +| `backend/kb_manager.py` | 用户+KB CRUD:create_user/list_users/create_kb/list_kbs/get_kb/delete_kb/update_kb_meta/get_kb_raw_dir/get_kb_chroma_path。原子 JSON 写入(tempfile + os.replace) | +| `backend/kb_parser.py` | KB 解析管道:`parse_jrxml_fields()` XML 提取参数/字段/查询 → `process_file_for_kb()` 处理多种格式(jrxml/zip/tar/pdf/docx/xlsx/md) → `chunk_file_results()` 切割 → `build_kb_from_files()` 全管线(parse→chunk→embed→update meta) | +| `backend/kb_searcher.py` | `KBChromaSearcher` 类:per-KB ChromaDB 懒连接。`search()` 语义搜索、`search_templates()` 仅搜索 JRXML 模板 chunk、`add_chunks()` 向量写入。全局 searcher 缓存 `_searchers: dict` | +| `backend/field_matcher.py` | OCR↔KB 字段匹配:1) Embedding 粗筛(余弦相似度 top-3)2) LLM 精确确认。返回 `{"工单号": "billNo", ...}` 映射 | +| `agent/datasource.py` | 数据源模式:`resolve_datasource_mode()` 检测用户意图 → `"parameter"`(默认 $P{xxx})或 `"jdbc"`(SQL 直连)。未配置 DB 时生成反问消息 | +| `scripts/init_default_kb.py` | 默认 KB 初始化:创建默认用户 → 解析 `rag/jrxml_source/` 下的 17 个 JRXML + 16 个 MD → chunk + embed → ChromaDB | + +**新增 API 端点**(api_server.py): + +``` +POST /api/users # 创建用户 +GET /api/users # 用户列表 +GET /api/users/{user_id} # 用户详情 +DELETE /api/users/{user_id} # 删除用户 +GET /api/users/{user_id}/kbs # KB 列表 +POST /api/users/{user_id}/kbs # 创建 KB +GET /api/kbs/{kb_id} # KB 详情 +DELETE /api/kbs/{kb_id} # 删除 KB +POST /api/kbs/{kb_id}/upload # 上传文件到 KB +POST /api/kbs/{kb_id}/build # 构建 KB(chunk→embed) +GET /api/kbs/{kb_id}/status # KB 状态 +GET /api/kbs/{kb_id}/fields # KB 字段+模板列表 +GET /api/kbs/{kb_id}/search?q=&type= # KB 语义搜索 +PUT /api/sessions/{session_id}/kb # 绑定会话-KB +GET /api/sessions/{session_id}/kb # 获取会话绑定的 KB +``` + +**三条模板获取路径**: + +1. **管理页预上传**:用户上传文件到 KB → 解析管道 → chunks + ChromaDB → 对话选择 KB → retrieve 节点从 KB 检索 +2. **对话框即时上传**:用户拖入 `.jrxml` → `_parse_jrxml_file()` → 注入 `agent_state["uploaded_template_jrxml"]` → 生成节点直接使用该模板 +3. **口头引用模板**:用户说"根据标准结算单模板" → `_detect_template_intent()` 正则匹配 → `retrieve()` 在 KB 中搜索模板 → 注入 `kb_template_jrxml` + +**模板上下文注入**:所有 6 个生成节点(generate/generate_skeleton/refine_layout/map_fields/modify_jrxml/correct_jrxml)通过 `_build_template_context(state)` 获取模板上下文,优先级:聊天上传 > KB 检索 > KB 字段定义。6 个 prompt 模板全部新增 `{template_context}` 占位符。 + +**前端新增**: + +| 文件 | 职责 | +|------|------| +| `stores/kb.ts` | Pinia store:用户列表、KB 列表、当前选择、字段/模板缓存、CRUD 操作、会话绑定 | +| `components/KbSelector.vue` | 对话顶部 KB 下拉选择器 + 管理按钮 | +| `components/KbManager.vue` | 模态面板:创建 KB、上传文件(支持 .jrxml/.md/.xlsx/.docx/.pdf/.csv/.zip 等)、构建、删除 | + +**API Server 增强**: +- `_process_files()` 检测 `.jrxml` 文件 → 提取参数/字段/查询/页面尺寸 → 注入 `uploaded_template_jrxml` + `uploaded_template_params` +- `agent/state.py` 新增 10 个字段:`kb_id`, `kb_fields`, `kb_field_mapping`, `uploaded_template_jrxml`, `uploaded_template_params`, `kb_template_jrxml`, `kb_template_name`, `datasource_mode`, `db_config` + +**字段匹配管线**(`_match_ocr_to_kb` → 尚未集成到节点):OCR 提取中文字段名 → `match_ocr_to_kb()` 两阶段匹配 → 结果为 `{"工单号": "billNo"}` → `format_field_mapping_context()` 注入 prompt → LLM 使用 `$P{billNo}` 而非 `$P{工单号}` + +## 更新 (v13 — 2026-05-24) + +### 3 阶段管道内容丢失修复 — Band 级窗口化 + 程序化字段映射 + +**问题**:`generate_skeleton` 生成 34k 字符骨架 JRXML → `refine_layout` 将完整 34k 发给 LLM → LLM 重新生成简化版(~3k 字符,丢失 91.5%)。`map_fields` 同样存在字段映射时内容丢失问题。 + +**根因**:LLM 看到完整 JRXML 时倾向于"重新生成"而非"在原基础上修改坐标/字段名"。提示词调控无法可靠解决。 + +**修复方案**(按用户要求 — 程序化节点控制,不靠 LLM 提示词): + +#### `refine_layout`:Band 级窗口化 LLM 精调 + +新增 `agent/jrxml_windower.py` — JRXML 拆解/切分/重组引擎: + +| 函数 | 用途 | +|------|------| +| `decompose_jrxml()` | ET 安全解析 → 分离 header(field 声明/queryString 等,不发给 LLM)+ 所有 band | +| `split_band_into_windows()` | 超过 4000 字符的 band 在元素闭合标签处切分为多个窗口 | +| `reassemble_band_windows()` | 合并同一 band 的多个窗口结果 | +| `reassemble_jrxml()` | header + 所有修改后 band + footer → 完整 JRXML | +| `count_elements()` | 正则计数 textField/staticText/field(兼容命名空间前缀) | +| `validate_element_count()` | 校验元素数变化,>10% 回退到前一版本 | + +**LLM 每次只看到 ~2-4k 字符片段**,无法"重写整个报表"。header 部分完全不发给 LLM,原样保留。 + +#### `map_fields`:完全程序化替换(零 LLM 调用) + +`_programmatic_map_fields()` — 纯正则替换 `$F{field_N}` → OCR 真实字段名,100% 确定性。 + +`_sanitize_field_name()` — 非 ASCII 字符(中文/日文)转义为 `_uXXXX_` Unicode 码点格式,确保 JRXML 合法。 + +#### 新增测试 + +| 文件 | 用例数 | 覆盖 | +|------|--------|------| +| `tests/test_jrxml_windower.py` | 28 | 拆解/往返重组/窗口切分/元素计数/命名空间/多 section 多 band | +| `tests/test_programmatic_map_fields.py` | 20 | 字段声明替换/引用替换/中文转义/坐标保留/部分映射/空字段跳过 | + +完整测试套件(385 项)无回归。 diff --git a/agent/datasource.py b/agent/datasource.py new file mode 100644 index 0000000..2171a1f --- /dev/null +++ b/agent/datasource.py @@ -0,0 +1,115 @@ +"""数据源模式解析模块。 + +默认使用 $P{xxx} 参数模式;用户可选择 JDBC 直连模式。 +""" + +import json +import os +import re +from typing import Optional + +from dotenv import load_dotenv + +from agent.state import AgentState + +load_dotenv() + + +def resolve_datasource_mode(state: AgentState) -> str: + """返回数据源模式: "parameter" 或 "jdbc"。 + + 优先读取 state 中已设定的模式,否则根据用户输入检测。 + """ + existing = state.get("datasource_mode", "") + if existing in ("parameter", "jdbc"): + return existing + + user_input = state.get("user_input", "") + if _detect_jdbc_intent(user_input): + return "jdbc" + return "parameter" + + +def _detect_jdbc_intent(user_input: str) -> bool: + """检测用户是否想要 JDBC 直连数据库模式。""" + patterns = [ + r"(直连|直连数据库|数据库直连)", + r"(从|在)(数据库|DB|MySQL|PostgreSQL|Oracle|SQL Server)\w*", + r"(jdbc|JDBC)", + r"(连接|连)(数据库|DB)", + r"(查询|select|SELECT)\s", + ] + for pat in patterns: + if re.search(pat, user_input): + return True + return False + + +def _sanitize_url(url: str) -> str: + """剥离 JDBC URL 中的 user:password@ 片段,防止泄露到 LLM prompt。""" + return re.sub(r"://[^@]*@", "://***:***@", url) + + +def build_datasource_context(mode: str, kb_fields: list, db_config: Optional[dict] = None) -> str: + """构建数据源上下文字符串,注入生成 prompt。""" + if mode == "jdbc": + if not db_config or not db_config.get("url"): + return ( + "[数据源模式: JDBC]\n" + "⚠ 用户想要 JDBC 直连模式,但尚未配置数据库连接信息。\n" + "请先生成带 $P{xxx} 参数占位符的 JRXML,并提醒用户配置 JDBC 连接。" + ) + safe_url = _sanitize_url(db_config.get("url", "")) + return ( + "[数据源模式: JDBC]\n" + f"连接URL: {safe_url}\n" + f"驱动: {db_config.get('driver', '')}\n" + "请使用 中的 SQL 查询。" + ) + + # parameter mode + if kb_fields: + field_list = "\n".join( + f"| {f['name']} | {f.get('description', '')} | {f.get('type', 'java.lang.String')} |" + for f in kb_fields + ) + return ( + "[数据源模式: 参数]\n" + "使用 $P{xxx} 参数模式,以下为可用参数:\n" + f"| 参数名 | 含义 | 类型 |\n|---|---|---|\n{field_list}" + ) + return "[数据源模式: 参数]\n使用 $P{xxx} 参数模式生成 JRXML。" + + +def configure_jdbc(state: AgentState, url: str = "", driver: str = "", + username: str = "", password: str = "") -> dict: + """配置 JDBC 连接并返回更新字段。 + + 注意:db_config 会被存入 AgentState 并持久化到会话文件。 + 生产环境应使用外部密钥管理服务,避免明文存储密码。 + """ + return { + "datasource_mode": "jdbc", + "db_config": { + "url": url, + "driver": driver or "com.mysql.cj.jdbc.Driver", + "username": username, + "password": password, + }, + } + + +def ask_db_config(state: AgentState) -> Optional[str]: + """如果用户选了 JDBC 模式但未配置 DB 连接,返回反问消息。""" + mode = resolve_datasource_mode(state) + if mode == "jdbc": + db_config = state.get("db_config", {}) + if not db_config or not db_config.get("url"): + return ( + "您选择了数据库直连模式,请提供以下信息:\n" + "1. JDBC URL(如 jdbc:mysql://localhost:3306/dbname)\n" + "2. 数据库用户名\n" + "3. 数据库密码\n" + "4. 驱动类名(可选,默认 com.mysql.cj.jdbc.Driver)" + ) + return None diff --git a/agent/jrxml_windower.py b/agent/jrxml_windower.py new file mode 100644 index 0000000..33c9b56 --- /dev/null +++ b/agent/jrxml_windower.py @@ -0,0 +1,377 @@ +"""JRXML 窗口化拆解与重组工具。 + +用于 3 阶段生成管道的 refine_layout 和 map_fields 节点: +- 将大段 JRXML 按 band 拆解为独立窗口 +- 每个窗口独立发送给 LLM 进行坐标精调 +- 重组所有窗口 + 校验元素完整性 + +调用者: agent/nodes.py (refine_layout, map_fields) +""" + +from __future__ import annotations + +import re +from dataclasses import dataclass +from typing import Optional + +import defusedxml.ElementTree as ET + +from backend.logger import get_logger + +_windower_log = get_logger("jrxml.windower") + +# 需要按 section 拆解的 band 容器标签 +_SECTION_TAGS = { + "title", "pageHeader", "columnHeader", "detail", "columnFooter", + "pageFooter", "lastPageFooter", "summary", "noData", "background", +} + +# 不发给 LLM 的 header 元素(原样保留) +_HEADER_TAGS = { + "property", "propertyExpression", "import", "template", "reportFont", + "style", "subDataset", "scriptlet", "parameter", "queryString", + "field", "sortField", "variable", "filterExpression", "group", +} + + +@dataclass +class BandInfo: + """单个 band 的拆解信息。""" + section_name: str # 所属 section 名,如 "title", "detail" + band_index: int # 在该 section 中的序号(0-based) + band_xml: str # 完整 ... 原始 XML + element_count: int # textField + staticText 数量 + char_length: int # 字符数 + + @property + def label(self) -> str: + """用于日志和 prompt 的标识。""" + if self.band_index > 0: + return f"{self.section_name}_band{self.band_index}" + return self.section_name + + +@dataclass +class JRXMLParts: + """JRXML 拆解结果。""" + declaration: str # (如有) + root_open: str # + header_xml: str # fields/params/queryString 等(不发给 LLM) + bands: list[BandInfo] # 按出现顺序 + footer: str # + + @property + def band_count(self) -> int: + return len(self.bands) + + @property + def total_elements(self) -> int: + return sum(b.element_count for b in self.bands) + + +# ── 拆解 ────────────────────────────────────────────────────────── + +def decompose_jrxml(jrxml: str) -> Optional[JRXMLParts]: + """将 JRXML 字符串拆解为 header + bands + footer 三部分。 + + 使用 defusedxml.ElementTree 进行安全解析。 + 返回 None 表示解析失败。 + """ + try: + root = ET.fromstring(jrxml) + except ET.ParseError as e: + _windower_log.error("JRXML 解析失败: %s", e) + return None + + tag = _local_tag(root.tag) + if tag != "jasperReport": + _windower_log.error("根元素不是 jasperReport: %s", tag) + return None + + # 提取 XML 声明 + declaration = "" + if jrxml.strip().startswith("") + if decl_end != -1: + declaration = jrxml[:decl_end + 2] + + # 提取根元素属性来重建 root_open + root_open = _build_root_open(jrxml, root) + + # 分离 header 子元素和 section 子元素 + header_children = [] + section_children = [] # (section_tag, child_elem) + + for child in root: + child_tag = _local_tag(child.tag) + if child_tag in _HEADER_TAGS: + header_children.append(child) + elif child_tag in _SECTION_TAGS: + section_children.append((child_tag, child)) + + # 构建 header_xml:序列化所有 header 子元素 + header_parts = [] + for child in header_children: + header_parts.append(_elem_to_string(child)) + header_xml = "\n".join(header_parts) + + # 提取 bands:每个 section 内可能有多个 + bands = [] + for sec_tag, sec_elem in section_children: + for bi, band_elem in enumerate(sec_elem): + band_local = _local_tag(band_elem.tag) + if band_local != "band": + continue + band_xml = _elem_to_string(band_elem) + ec = _count_elements_in_text(band_xml) + bands.append(BandInfo( + section_name=sec_tag, + band_index=bi, + band_xml=band_xml, + element_count=ec, + char_length=len(band_xml), + )) + + # 提取 footer: 闭合标签 + footer = _extract_footer(jrxml) + + parts = JRXMLParts( + declaration=declaration, + root_open=root_open, + header_xml=header_xml, + bands=bands, + footer=footer, + ) + _windower_log.info( + "JRXML 拆解完成: %d bands, %d 个元素, header %d 字符", + len(bands), parts.total_elements, len(header_xml), + ) + return parts + + +# ── 窗口切分 ────────────────────────────────────────────────────── + +# 安全的元素边界:在这些闭合标签后切分 +_SAFE_SPLIT_CLOSING = re.compile( + r"\s*" +) + + +def split_band_into_windows(band: BandInfo, max_chars: int = 4000) -> list[str]: + """将一个 band 的 XML 在元素边界处切分为多个窗口。 + + 每个窗口是合法的 XML 片段(完整的 ...), + 大小不超过 max_chars。 + """ + if band.char_length <= max_chars: + return [band.band_xml] + + inner = _extract_band_inner(band.band_xml) + if not inner: + return [band.band_xml] + + segments = _split_at_boundaries(inner, _SAFE_SPLIT_CLOSING) + if len(segments) <= 1: + return [band.band_xml] + + windows = _greedy_aggregate(segments, band.band_xml, max_chars) + return windows + + +# ── 重组 ────────────────────────────────────────────────────────── + +def reassemble_band_windows(modified_windows: list[str]) -> str: + """将多个窗口的修改结果重新合并为一个 band XML。 + + 策略:取第一个窗口的开头(band 标签)和最后一个窗口的结尾(/band 标签), + 中间拼接所有窗口内部的元素内容。 + """ + if len(modified_windows) == 1: + return modified_windows[0] + + first = modified_windows[0] + band_open_end = first.find(">") + if band_open_end == -1: + return "\n".join(modified_windows) + band_open = first[:band_open_end + 1] + + last = modified_windows[-1] + band_close = _extract_band_close(last) + + inner_parts = [] + for win in modified_windows: + inner = _extract_band_inner(win) + if inner: + inner_parts.append(inner) + + return band_open + "\n" + "\n".join(inner_parts) + "\n" + band_close + + +def reassemble_jrxml(parts: JRXMLParts, modified_bands: dict[str, str]) -> str: + """将修改后的 bands 与 header/footer 重新组装为完整 JRXML。 + + modified_bands 的 key 格式为 "{section_name}_band{index}" 或 "{section_name}"(index=0 时)。 + """ + result = [] + if parts.declaration: + result.append(parts.declaration) + result.append(parts.root_open) + if parts.header_xml.strip(): + result.append(parts.header_xml) + + current_section = None + for band in parts.bands: + if band.section_name != current_section: + if current_section is not None: + result.append(f"") + current_section = band.section_name + result.append(f"<{current_section}>") + + modified = modified_bands.get(band.label, band.band_xml) + result.append(modified) + + if current_section is not None: + result.append(f"") + + result.append(parts.footer) + return "\n".join(result) + + +# ── 元素计数与校验 ──────────────────────────────────────────────── + +_ELEMENT_RE = re.compile(r"<(?:[\w:]+:)?(textField|staticText|field)\b", re.IGNORECASE) + + +def count_elements(jrxml: str) -> int: + """正则计数 JRXML 中的 textField + staticText + field 声明。""" + return len(_ELEMENT_RE.findall(jrxml)) + + +def validate_element_count(original: str, modified: str, stage: str) -> dict: + """校验修改前后的元素数变化。 + + 返回: + {"ok": bool, "original": int, "modified": int, "change_pct": float} + 变化 > 10% 时 ok=False,调用方应回退。 + """ + orig = count_elements(original) + mod = count_elements(modified) + if orig == 0: + return {"ok": True, "original": 0, "modified": mod, "change_pct": 0} + change = abs(mod - orig) / orig + ok = change <= 0.10 + if not ok: + _windower_log.error( + "%s 元素数变化过大: %d → %d (%.1f%%)", + stage, orig, mod, change * 100, + ) + elif change > 0.05: + _windower_log.warning( + "%s 元素数有差异: %d → %d (%.1f%%)", + stage, orig, mod, change * 100, + ) + return {"ok": ok, "original": orig, "modified": mod, "change_pct": round(change, 4)} + + +# ── 内部工具函数 ────────────────────────────────────────────────── + +def _local_tag(tag: str) -> str: + """去除 XML 命名空间前缀。""" + return tag.split("}")[-1] if "}" in tag else tag + + +def _elem_to_string(elem: ET.Element) -> str: + """将 ElementTree 元素序列化为字符串(使用 defusedxml 的 tostring)。""" + raw = ET.tostring(elem, encoding="unicode") + return raw.strip() + + +def _build_root_open(jrxml: str, root: ET.Element) -> str: + """从原始文本重建 开头标签。""" + m = re.search(r"]*>", jrxml, re.IGNORECASE) + if m: + return m.group(0) + attrs = [] + for k, v in root.attrib.items(): + attrs.append(f'{k}="{v}"') + return "" + + +def _extract_footer(jrxml: str) -> str: + """提取 闭合标签。""" + m = re.search(r"\s*$", jrxml, re.IGNORECASE) + if m: + return m.group(0).rstrip() + return "" + + +_BAND_CLOSE_RE = re.compile(r"\s*$", re.IGNORECASE) + +def _extract_band_close(band_xml: str) -> str: + """提取 band 的闭合标签(兼容命名空间前缀),如 '' 或 ''。""" + m = _BAND_CLOSE_RE.search(band_xml) + return m.group(0).rstrip() if m else "" + +def _extract_band_inner(band_xml: str) -> str: + """提取 和 之间的内容(兼容命名空间前缀)。""" + tag_end = band_xml.find(">") + if tag_end == -1: + return "" + close_m = _BAND_CLOSE_RE.search(band_xml) + if not close_m: + return band_xml[tag_end + 1:].strip() + return band_xml[tag_end + 1:close_m.start()].strip() + + +def _split_at_boundaries(text: str, boundary_re: re.Pattern) -> list[str]: + """在正则匹配的闭合标签处切分文本。 + + 返回切分后的片段列表(分隔符附加到前一个片段末尾)。 + """ + segments = [] + last_end = 0 + for m in boundary_re.finditer(text): + end = m.end() + segments.append(text[last_end:end]) + last_end = end + if last_end < len(text): + segments.append(text[last_end:]) + elif not segments: + segments.append(text) + return segments + + +def _greedy_aggregate(segments: list[str], band_xml: str, max_chars: int) -> list[str]: + """贪心聚合:将片段组合成不超过 max_chars 的窗口。 + + 每个窗口包上 标签。 + """ + tag_end = band_xml.find(">") + band_open = band_xml[:tag_end + 1] if tag_end != -1 else "" + band_close = _extract_band_close(band_xml) + overhead = len(band_open) + len(band_close) + 1 # +1 for \n + + windows = [] + current = [] + current_len = overhead + + for seg in segments: + seg_len = len(seg) + if current and current_len + seg_len > max_chars: + windows.append(band_open + "\n" + "".join(current) + "\n" + band_close) + current = [seg] + current_len = overhead + seg_len + else: + current.append(seg) + current_len += seg_len + + if current: + windows.append(band_open + "\n" + "".join(current) + "\n" + band_close) + + return windows + + +def _count_elements_in_text(xml_text: str) -> int: + """统计 XML 文本中的 textField + staticText 数量。""" + return len(_ELEMENT_RE.findall(xml_text)) diff --git a/agent/nodes.py b/agent/nodes.py index c49eaf7..1097708 100644 --- a/agent/nodes.py +++ b/agent/nodes.py @@ -418,7 +418,8 @@ def load_session_node(state: AgentState) -> Dict: state["session_name"] = data.get("session_name", "") state["created_at"] = data.get("created_at", "") except Exception: - pass + _node_log.warning("会话加载失败,使用空状态", + extra={"session_id": state.get("session_id", "")}) return state @@ -454,7 +455,8 @@ def save_session_node(state: AgentState) -> Dict: state["session_name"] = session_name state["updated_at"] = persistable["updated_at"] except Exception: - pass + _node_log.exception("会话保存失败", + extra={"session_id": state.get("session_id", "")}) return state @@ -493,6 +495,90 @@ def _format_row_coordinates(row: dict) -> dict: return {"y_center": row.get("y_center", 0), "columns": cols} +def _build_sampled_text(ocr_rows: list) -> str: + """从 OCR 行数据构建采样坐标 JSON 字符串。""" + sampled = {} + if isinstance(ocr_rows, list) and len(ocr_rows) >= 1: + sampled["header_row"] = _format_row_coordinates(ocr_rows[0]) + if len(ocr_rows) > 1: + sampled["first_data_row"] = _format_row_coordinates(ocr_rows[1]) + if len(ocr_rows) > 2: + sampled["last_row"] = _format_row_coordinates(ocr_rows[-1]) + return json.dumps(sampled, ensure_ascii=False, indent=2) + + +def _extract_band_height(band_xml: str) -> int: + """从 中提取高度值。""" + m = re.search(r']*\sheight\s*=\s*"(\d+)"', band_xml) + return int(m.group(1)) if m else 0 + + +def _extract_xml_fragment(text: str) -> str: + """从 LLM 响应中提取 XML 片段(去除 markdown 代码块和解释文本)。""" + text = text.strip() + # 尝试提取 markdown 代码块内的内容 + m = re.search(r"```(?:xml)?\s*([\s\S]*?)```", text, re.IGNORECASE) + if m: + content = m.group(1).strip() + if content: + return content + # 尝试找到 ... 片段 + m = re.search(r"()", text, re.IGNORECASE) + if m: + return m.group(1).strip() + return text + + +def _programmatic_map_fields(jrxml: str, ocr_fields: list[dict]) -> str: + """程序化字段映射:将 $F{{field_N}} 替换为 OCR 提取的真实字段名。 + + 纯正则替换,不调 LLM。100% 确定性,零内容丢失。 + """ + result = jrxml + for i, f in enumerate(ocr_fields): + placeholder = f"field_{i+1}" + raw_name = f.get("field_name", "") + if not raw_name: + continue + real_name = _sanitize_field_name(raw_name) + if real_name == placeholder: + continue + # 替换 field 声明: ]*\bname\s*=\s*"){re.escape(placeholder)}(")', + rf'\g<1>{real_name}\g<2>', result, + ) + # 替换所有引用: $F{{field_1}} → $F{{customer_name}} + result = result.replace(f'$F{{{placeholder}}}', f'$F{{{real_name}}}') + return result + + +def _sanitize_field_name(name: str) -> str: + """将 OCR 字段名净化为合法的 JRXML field name(仅 ASCII 字母/数字/下划线)。 + + 非 ASCII 字符会被替换为其 Unicode 码点,确保唯一且合法。 + """ + result = [] + for ch in name: + if ch.isascii() and (ch.isalnum() or ch == '_'): + result.append(ch) + elif ch.isascii(): + result.append('_') + else: + # 非 ASCII 转 _uXXXX_ 格式,保留可追溯性 + cp = ord(ch) + result.append(f'_u{cp:04X}_') + cleaned = ''.join(result) + cleaned = cleaned.strip('_') + if not cleaned: + return "unnamed_field" + if cleaned[0].isdigit(): + cleaned = 'f_' + cleaned + # 压缩连续下划线 + cleaned = re.sub(r'_{2,}', '_', cleaned) + return cleaned.lower() + + def _format_ocr_context(state: AgentState) -> str: """将 OCR 提取结果格式化为 LLM 可用的上下文文本。""" ocr_result = state.get("ocr_extraction_result") @@ -619,27 +705,116 @@ def _log_ocr_layers(state: AgentState) -> None: @log_node("retrieve") def retrieve(state: AgentState) -> Dict: - """在 ChromaDB + 错误知识库中搜索相关的 JRXML 模板和组件。""" + """在 ChromaDB + 错误知识库中搜索相关的 JRXML 模板和组件。 + 支持按 KB 隔离搜索 + 模板意图检测。 + """ try: from backend.rag_adapter import search_chunks from backend.error_kb import search_error_cases user_input = state.get("user_input", "") - context = search_chunks(user_input, k=5) + kb_id = state.get("kb_id", "") + context = search_chunks(user_input, k=5, kb_id=kb_id) - # 如果有最近错误,同时搜索错误知识库 + # 错误知识库 error_msg = state.get("error_msg", "") if error_msg: error_context = search_error_cases(error_msg, k=2) if error_context: context = f"{context}\n\n[历史错误修正案例]\n{error_context}" + # 模板意图检测:用户是否提到了模板名? + template_keywords = _detect_template_intent(user_input) + if template_keywords and kb_id: + try: + from backend.kb_searcher import search_templates_in_kb + templates = search_templates_in_kb(kb_id, template_keywords, k=1) + if templates: + tmpl = templates[0] + state["kb_template_jrxml"] = tmpl.get("content", "") + state["kb_template_name"] = ( + tmpl.get("metadata", {}).get("report_name", "") + ) + context += ( + f"\n\n[匹配到模板: {state['kb_template_name']}]\n" + f"{state['kb_template_jrxml']}" + ) + except Exception: + _node_log.warning("模板检索失败", extra={"kb_id": kb_id}) + state["retrieved_context"] = context except Exception: + _node_log.exception("RAG 检索失败", extra={"user_input": user_input[:80]}) state["retrieved_context"] = "" return state +def _detect_template_intent(user_input: str) -> str: + """检测用户输入中是否包含模板引用意图,返回提取的搜索关键词。""" + import re + patterns = [ + r"根据(.+?)模板", + r"基于(.+?)模板", + r"参照(.+?)模板", + r"用(.+?)模板", + r"使用(.+?)模板", + r"(.+单)模板", + ] + for pat in patterns: + m = re.search(pat, user_input) + if m: + kw = m.group(1).strip() + if len(kw) >= 2: + return kw + return "" + + +def _build_template_context(state: dict) -> str: + """构建模板上下文,用于注入生成 prompt。 + 优先级:对话上传 > KB 检索 > KB 字段定义。 + """ + parts = [] + + # 对话中上传的 JRXML 模板 + uploaded = state.get("uploaded_template_jrxml", "") + if uploaded: + params = state.get("uploaded_template_params", []) + param_str = "\n".join( + f" - {p['name']} ({p.get('type', 'String')})" for p in params + ) if params else "(参数列表未解析)" + parts.append( + "[对话上传的模板]\n" + f"以下为用户上传的 JRXML 模板,请基于此模板进行修改:\n" + f"模板参数:\n{param_str}\n" + f"```xml\n{uploaded}\n```" + ) + + # KB 检索到的模板 + kb_tmpl = state.get("kb_template_jrxml", "") + kb_name = state.get("kb_template_name", "") + if kb_tmpl and not uploaded: + parts.append( + f"[知识库模板: {kb_name}]\n" + f"以下为从知识库检索到的 JRXML 模板,请作为结构参考:\n" + f"```xml\n{kb_tmpl}\n```" + ) + + # KB 字段定义 + kb_fields = state.get("kb_fields", []) + if kb_fields: + field_table = "\n".join( + f"| {f['name']} | {f.get('description', '')} | {f.get('type', 'String')} |" + for f in kb_fields + ) + parts.append( + "[可用数据字段]\n" + "生成 JRXML 时请使用以下字段作为 $P{{xxx}} 参数:\n" + f"| 字段名 | 含义 | 类型 |\n|---|---|---|\n{field_table}" + ) + + return "\n\n".join(parts) + + @log_node("generate") def generate(state: AgentState) -> Dict: """根据用户需求和检索到的上下文生成初始 JRXML。""" @@ -656,6 +831,7 @@ def generate(state: AgentState) -> Dict: prompt = load_prompt("initial_generation").format( context=state.get("retrieved_context", ""), user_request=user_request, + template_context=_build_template_context(state), ) full = [] for chunk in llm.stream(prompt): @@ -683,6 +859,7 @@ def generate_skeleton(state: AgentState) -> Dict: layout_schema=schema_text, context=state.get("retrieved_context", ""), user_request=user_request, + template_context=_build_template_context(state), ) prev_jrxml = state.get("current_jrxml", "") full_text = _generate_with_continuation(llm, prompt, writer, "generate_skeleton") @@ -700,92 +877,145 @@ def generate_skeleton(state: AgentState) -> Dict: @log_node("refine_layout") def refine_layout(state: AgentState) -> Dict: - """阶段二:使用采样坐标(表头 + 首行数据 + 最后一行)精确调整元素位置。""" + """阶段二:Band 级窗口化精调 — 拆解骨架 JRXML 为独立 band,逐窗口 LLM 调整坐标。 + + 流程: + 1. decompose_jrxml() 拆解为 header + bands + footer + 2. 每个 band 作为一个(或多个,若 >4000 字符)窗口发给 LLM + 3. LLM 只修改该窗口内 reportElement 的 x/y/width/height + 4. reassemble_jrxml() 重组 + validate_element_count() 校验 + """ from langgraph.config import get_stream_writer + from agent.jrxml_windower import ( + decompose_jrxml, split_band_into_windows, reassemble_band_windows, + reassemble_jrxml, validate_element_count, + ) writer = get_stream_writer() llm = get_llm(caller="refine_layout") - ocr_rows = state.get("ocr_elements", []) - sampled = {} - if isinstance(ocr_rows, list) and len(ocr_rows) >= 1: - sampled["header_row"] = _format_row_coordinates(ocr_rows[0]) - if len(ocr_rows) > 1: - sampled["first_data_row"] = _format_row_coordinates(ocr_rows[1]) - if len(ocr_rows) > 2: - sampled["last_row"] = _format_row_coordinates(ocr_rows[-1]) - sampled_text = json.dumps(sampled, ensure_ascii=False, indent=2) - - prompt = load_prompt("refine_layout").format( - current_jrxml=state.get("current_jrxml", ""), - sampled_coordinates=sampled_text, - ) prev_jrxml = state.get("current_jrxml", "") - full_text = _generate_with_continuation(llm, prompt, writer, "refine_layout") - if not full_text.strip(): - _node_log.error("refine_layout LLM 返回空响应,保留前一版本") + if not prev_jrxml.strip(): + _node_log.warning("refine_layout 无输入 JRXML,跳过") return state - jrxml = _extract_jrxml(full_text) - if len(jrxml.strip()) < 200: - _node_log.warning(f"refine_layout 输出过短({len(jrxml)} 字符),回退到前一版本") - jrxml = prev_jrxml - state["current_jrxml"] = jrxml - state["conversation_history"].append({"role": "assistant", "content": jrxml}) + + # 拆解 JRXML + parts = decompose_jrxml(prev_jrxml) + if parts is None or parts.band_count == 0: + _node_log.warning("refine_layout 拆解失败或无 band,跳过") + return state + + # 构建采样坐标 + ocr_rows = state.get("ocr_elements", []) + sampled_text = _build_sampled_text(ocr_rows) + template_ctx = _build_template_context(state) + + # 逐 band 窗口化精调 + modified_bands: dict[str, str] = {} + total_windows = 0 + for band in parts.bands: + if band.element_count == 0: + modified_bands[band.label] = band.band_xml + continue + + windows = split_band_into_windows(band, max_chars=4000) + total_windows += len(windows) + band_results: list[str] = [] + + for wi, win_xml in enumerate(windows): + prompt = load_prompt("refine_layout").format( + band_name=band.section_name, + band_index=band.band_index, + band_height=_extract_band_height(win_xml), + window_index=wi + 1, + total_windows=len(windows), + xml_fragment=win_xml, + sampled_coordinates=sampled_text, + template_context=template_ctx, + ) + try: + response = llm.invoke(prompt) + content = response.content if hasattr(response, "content") else str(response) + fragment = _extract_xml_fragment(content) + if fragment: + band_results.append(fragment) + writer({"type": "stream", "node": "refine_layout", + "text": f"[{band.label} 窗口 {wi+1}/{len(windows)} 完成] "}) + else: + _node_log.warning("refine_layout 窗口 %s/%d 返回空,使用原文", + band.label, wi + 1) + band_results.append(win_xml) + except Exception as e: + _node_log.warning("refine_layout 窗口 %s/%d LLM 失败: %s,使用原文", + band.label, wi + 1, e) + band_results.append(win_xml) + + if len(band_results) == 1: + modified_bands[band.label] = band_results[0] + else: + modified_bands[band.label] = reassemble_band_windows(band_results) + + # 重组并校验 + result = reassemble_jrxml(parts, modified_bands) + validation = validate_element_count(prev_jrxml, result, "refine_layout") + _node_log.info( + "refine_layout 窗口化完成: %d bands, %d 窗口, 元素 %d→%d (%.1f%%)", + parts.band_count, total_windows, + validation["original"], validation["modified"], + validation["change_pct"] * 100, + ) + + if not validation["ok"]: + _node_log.error("refine_layout 元素丢失过多,回退到骨架版本") + return state + + state["current_jrxml"] = result + state["conversation_history"].append({"role": "assistant", "content": result}) return state @log_node("map_fields") def map_fields(state: AgentState) -> Dict: - """阶段三:将占位字段名替换为 OCR 提取的真实字段名。""" - from langgraph.config import get_stream_writer + """阶段三:程序化字段映射 — 用正则将 $F{field_N} 替换为 OCR 字段名,不调 LLM。 - writer = get_stream_writer() - llm = get_llm(caller="map_fields") + 仅当 OCR 字段名包含中文等需要语义解释时才回退到 LLM。 + """ + from agent.jrxml_windower import validate_element_count - ocr_result = state.get("ocr_extraction_result", {}) - fields_text = "" - if isinstance(ocr_result, dict) and ocr_result.get("fields"): - field_descs = [] - for f in ocr_result["fields"]: - fname = f.get("field_name", "") - fval = f.get("field_value", "") - if fname: - field_descs.append(f" - {fname}: {fval}") - if field_descs: - fields_text = "提取的字段:\n" + "\n".join(field_descs) - if not fields_text: - elements = ocr_result.get("elements", []) if isinstance(ocr_result, dict) else [] - if elements: - texts = [e.get("text", "") for e in elements if e.get("text")] - fields_text = "OCR 文本内容:\n" + "\n".join(f" - {t}" for t in texts[:50]) - - prompt = load_prompt("field_mapping").format( - current_jrxml=state.get("current_jrxml", ""), - ocr_fields=fields_text, - ) prev_jrxml = state.get("current_jrxml", "") - full_text = _generate_with_continuation(llm, prompt, writer, "map_fields") - # 空响应重试:有时 LLM 第一轮不输出,换个方式再试一次 - if not full_text.strip(): - _node_log.warning("map_fields 第一轮返回空响应,尝试简化 prompt 重试") - retry_prompt = ( - "请将以下 JRXML 中的占位字段名 $F{field_1}, $F{field_2}, ... 替换为 OCR 提取的真实字段名。\n" - "规则:根据列顺序映射——$F{field_1} 对应第1列,$F{field_2} 对应第2列,以此类推。\n" - "同时更新 声明和所有 $F{...} 引用。\n" - "只输出完整 JRXML,不要解释。\n\n" - f"OCR 字段:\n{fields_text}\n\n" - f"JRXML:\n{prev_jrxml}" - ) - full_text = _generate_with_continuation(llm, retry_prompt, writer, "map_fields") - if not full_text.strip(): - _node_log.error("map_fields LLM 重试后仍返回空响应,保留占位字段版本") + if not prev_jrxml.strip(): + _node_log.warning("map_fields 无输入 JRXML,跳过") return state - jrxml = _extract_jrxml(full_text) - if len(jrxml.strip()) < 200: - _node_log.warning(f"map_fields 输出过短({len(jrxml)} 字符),回退到前一版本") - jrxml = prev_jrxml - state["current_jrxml"] = jrxml - state["conversation_history"].append({"role": "assistant", "content": jrxml}) + + # 提取 OCR 字段列表 + ocr_result = state.get("ocr_extraction_result", {}) + ocr_fields: list[dict] = [] + if isinstance(ocr_result, dict) and ocr_result.get("fields"): + ocr_fields = ocr_result["fields"] + + if not ocr_fields: + _node_log.info("map_fields 无 OCR 字段,保留占位字段名") + state["conversation_history"].append({"role": "assistant", "content": prev_jrxml}) + return state + + # 程序化替换(主路径) + result = _programmatic_map_fields(prev_jrxml, ocr_fields) + + # 校验 + validation = validate_element_count(prev_jrxml, result, "map_fields") + _node_log.info( + "map_fields 程序化完成: %d 个字段, 元素 %d→%d (%.1f%%)", + len(ocr_fields), + validation["original"], validation["modified"], + validation["change_pct"] * 100, + ) + + if not validation["ok"]: + _node_log.error("map_fields 元素丢失过多,回退到前一版本") + return state + + state["current_jrxml"] = result + state["conversation_history"].append({"role": "assistant", "content": result}) return state @@ -810,6 +1040,7 @@ def modify_jrxml(state: AgentState) -> Dict: conversation_history=conv_text, modification_request=state.get("user_modification_request", ""), ocr_context=_format_ocr_context(state), + template_context=_build_template_context(state), ) prev_jrxml = state.get("current_jrxml", "") full_text = _generate_with_continuation(llm, prompt, writer, "modify_jrxml") @@ -1181,6 +1412,7 @@ def correct_jrxml(state: AgentState) -> Dict: ocr_context=ocr_context, layout_schema_text=layout_text, fidelity_context=fidelity_text, + template_context=_build_template_context(state), ) # 保存修正前状态(供 validate 判断是否写入错误知识库) state["last_error_case"] = { diff --git a/agent/state.py b/agent/state.py index 9ca14ed..c92db82 100644 --- a/agent/state.py +++ b/agent/state.py @@ -51,3 +51,14 @@ class AgentState(TypedDict, total=False): # 需求9:分层精确生成 layout_schema: dict # extract_layout_schema() 输出,列+区域结构 ocr_elements: list # OCR 原始行数据(用于阶段二坐标采样) + + # 需求10:多租户知识库 + kb_id: str # 当前会话绑定的知识库 ID + kb_fields: list # KB 提取的字段定义 [{name, description, type, required}] + kb_field_mapping: dict # OCR 字段 → KB 字段映射 {"工单号": "billNo", ...} + uploaded_template_jrxml: str # 对话中上传的 JRXML 模板原文 + uploaded_template_params: list # 解析出的参数 [{name, type}] + kb_template_jrxml: str # 从 KB 检索到的模板 JRXML + kb_template_name: str # 检索到的模板名称 + datasource_mode: str # "parameter" 或 "jdbc" + db_config: dict # JDBC 连接配置 diff --git a/api_server.py b/api_server.py index 5c797d5..558c205 100644 --- a/api_server.py +++ b/api_server.py @@ -30,7 +30,7 @@ from pathlib import Path from typing import Optional from dotenv import load_dotenv -from fastapi import FastAPI, HTTPException, UploadFile, File +from fastapi import FastAPI, HTTPException, UploadFile, File, Form, BackgroundTasks from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import StreamingResponse, FileResponse @@ -50,6 +50,13 @@ from backend.session import ( ) from backend.file_parser import parse_file from backend.layout_analyzer import analyze_layout, extract_layout_schema +from backend.kb_manager import ( + create_user, list_users, get_user, delete_user, + create_kb, list_kbs, get_kb, update_kb_meta, delete_kb, + get_kb_raw_dir, +) +from backend.kb_parser import parse_jrxml_fields, build_kb_from_files +from backend.kb_searcher import search_kb, search_templates_in_kb # ───────────────────────────────────────────── # 常量(从 app.py 迁移) @@ -97,6 +104,7 @@ SKIP_NODES = {"load_session", "process_input", "manage_context", _api_log = get_logger("api") UPLOADS_DIR = Path(os.getenv("UPLOADS_DIR", "./uploads")) +MAX_UPLOAD_SIZE = 50 * 1024 * 1024 # 50 MB def _check_session_id(session_id: str) -> None: """校验 session_id 合法性(防路径穿越),非法时抛出 HTTPException(400)。""" @@ -380,6 +388,218 @@ async def remove_session(session_id: str): return {"status": "deleted", "session_id": session_id} +# ───────────────────────────────────────────── +# 用户管理 +# ───────────────────────────────────────────── + +@app.post("/api/users") +async def create_new_user(payload: dict): + name = payload.get("name", "").strip() + if not name: + raise HTTPException(status_code=400, detail="用户名不能为空") + try: + user = create_user(name) + return user + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@app.get("/api/users") +async def list_all_users(): + return {"users": list_users()} + + +@app.get("/api/users/{user_id}") +async def get_user_info(user_id: str): + user = get_user(user_id) + if user is None: + raise HTTPException(status_code=404, detail="用户不存在") + return user + + +@app.delete("/api/users/{user_id}") +async def remove_user(user_id: str): + ok = delete_user(user_id) + if not ok: + raise HTTPException(status_code=404, detail="用户不存在") + return {"status": "deleted", "user_id": user_id} + + +# ───────────────────────────────────────────── +# 知识库 CRUD +# ───────────────────────────────────────────── + +@app.get("/api/users/{user_id}/kbs") +async def list_user_kbs(user_id: str): + return {"kbs": list_kbs(user_id)} + + +@app.post("/api/users/{user_id}/kbs") +async def create_user_kb(user_id: str, payload: dict): + name = payload.get("name", "").strip() + description = payload.get("description", "") + if not name: + raise HTTPException(status_code=400, detail="知识库名称不能为空") + try: + kb = create_kb(user_id, name, description) + return kb + except ValueError as e: + raise HTTPException(status_code=400, detail=str(e)) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@app.get("/api/kbs/{kb_id}") +async def get_kb_info(kb_id: str): + kb = get_kb(kb_id) + if kb is None: + raise HTTPException(status_code=404, detail="知识库不存在") + return kb + + +@app.delete("/api/kbs/{kb_id}") +async def remove_kb(kb_id: str): + ok = delete_kb(kb_id) + if not ok: + raise HTTPException(status_code=404, detail="知识库不存在") + return {"status": "deleted", "kb_id": kb_id} + + +# ───────────────────────────────────────────── +# 知识库文件上传 +# ───────────────────────────────────────────── + +@app.post("/api/kbs/{kb_id}/upload") +async def upload_to_kb(kb_id: str, file: UploadFile = File(...)): + kb = get_kb(kb_id) + if kb is None: + raise HTTPException(status_code=404, detail="知识库不存在") + + raw_dir = get_kb_raw_dir(kb_id) + if raw_dir is None: + raise HTTPException(status_code=500, detail="知识库存储目录不可用") + + raw_dir.mkdir(parents=True, exist_ok=True) + safe_name = Path(file.filename or "upload").name + dest = raw_dir / safe_name + + content = await file.read() + if len(content) > MAX_UPLOAD_SIZE: + raise HTTPException(status_code=413, detail="文件大小超过 50MB 上限") + + dest.write_bytes(content) + + from backend.kb_parser import process_file_for_kb + result = process_file_for_kb(kb_id, str(dest), source_name=safe_name) + + _api_log.info("KB文件上传", extra={ + "kb_id": kb_id, "file": safe_name, "type": result.get("type"), + }) + + return { + "filename": safe_name, + "type": result.get("type", ""), + "error": result.get("error"), + } + + +@app.post("/api/kbs/{kb_id}/build") +async def build_kb(kb_id: str): + """构建知识库:对已上传的文件执行 chunk → embed 管线。""" + from backend.kb_parser import build_kb_from_files as build_fn + raw_dir = get_kb_raw_dir(kb_id) + if raw_dir is None or not raw_dir.exists(): + raise HTTPException(status_code=404, detail="知识库无已上传文件") + + files = [str(p) for p in raw_dir.iterdir() if p.is_file()] + if not files: + raise HTTPException(status_code=400, detail="知识库无文件,请先上传") + + result = build_fn(kb_id, files) + return result + + +@app.get("/api/kbs/{kb_id}/status") +async def kb_status(kb_id: str): + kb = get_kb(kb_id) + if kb is None: + raise HTTPException(status_code=404, detail="知识库不存在") + return { + "kb_id": kb_id, + "name": kb.get("name", ""), + "field_count": len(kb.get("fields", [])), + "template_count": len(kb.get("templates", [])), + "file_count": kb.get("file_count", 0), + "chunk_count": kb.get("chunk_count", 0), + "parse_status": kb.get("parse_status", "empty"), + "created_at": kb.get("created_at", ""), + } + + +@app.get("/api/kbs/{kb_id}/fields") +async def kb_fields(kb_id: str): + kb = get_kb(kb_id) + if kb is None: + raise HTTPException(status_code=404, detail="知识库不存在") + return {"fields": kb.get("fields", []), "templates": kb.get("templates", [])} + + +@app.get("/api/kbs/{kb_id}/search") +async def kb_search(kb_id: str, q: str = "", type: str = ""): + if not q: + raise HTTPException(status_code=400, detail="查询参数 q 不能为空") + if type == "template": + results = search_templates_in_kb(kb_id, q, k=5) + else: + ctx = search_kb(kb_id, q, k=5) + return {"query": q, "context": ctx} + return {"query": q, "results": results} + + +# ───────────────────────────────────────────── +# 会话-知识库绑定 +# ───────────────────────────────────────────── + +@app.put("/api/sessions/{session_id}/kb") +async def bind_session_kb(session_id: str, payload: dict): + _check_session_id(session_id) + kb_id = payload.get("kb_id", "").strip() + data = load_session(session_id) + if data is None: + raise HTTPException(status_code=404, detail="会话不存在") + + agent_state = data.get("agent_state", {}) + if kb_id: + kb = get_kb(kb_id) + if kb is None: + raise HTTPException(status_code=404, detail="知识库不存在") + agent_state["kb_id"] = kb_id + agent_state["kb_fields"] = kb.get("fields", []) + else: + agent_state.pop("kb_id", None) + agent_state.pop("kb_fields", None) + + save_session(session_id, agent_state) + return {"session_id": session_id, "kb_id": kb_id or None} + + +@app.get("/api/sessions/{session_id}/kb") +async def get_session_kb(session_id: str): + _check_session_id(session_id) + data = load_session(session_id) + if data is None: + raise HTTPException(status_code=404, detail="会话不存在") + agent_state = data.get("agent_state", {}) + kb_id = agent_state.get("kb_id", "") + result = {"kb_id": kb_id, "kb_fields": agent_state.get("kb_fields", [])} + if kb_id: + kb = get_kb(kb_id) + if kb: + result["kb_name"] = kb.get("name", "") + result["templates"] = kb.get("templates", []) + return result + + # ───────────────────────────────────────────── # 文件上传 # ───────────────────────────────────────────── @@ -396,6 +616,9 @@ async def upload_file(file: UploadFile = File(...), session_id: str = ""): dest = _ensure_upload_dir(session_id) / f"{file_id}_{safe_name}" content = await file.read() + if len(content) > MAX_UPLOAD_SIZE: + raise HTTPException(status_code=413, detail="文件大小超过 50MB 上限") + dest.write_bytes(content) content_type = file.content_type or mimetypes.guess_type(safe_name)[0] or "application/octet-stream" @@ -423,20 +646,47 @@ async def upload_file(file: UploadFile = File(...), session_id: str = ""): # 文件处理辅助 # ───────────────────────────────────────────── -def _process_files(file_ids: list[str], session_id: str) -> dict: - """处理上传的文件:解析 → 布局分析 → 提取 schema 文本。 +def _parse_jrxml_file(file_path: str) -> dict: + """解析上传的 JRXML 文件,提取模板参数和字段。 Returns: - {full_prompt_prefix, uploaded_paths, layout_schema, ocr_text} + {jrxml_text, parameters: [{name, type}], fields: [{name, type}], + query: str, report_name: str, page_width: str, page_height: str} + """ + jrxml_info = parse_jrxml_fields(file_path) + try: + raw_xml = Path(file_path).read_text(encoding="utf-8") + except Exception: + raw_xml = "" + return { + "jrxml_text": raw_xml, + "parameters": jrxml_info.get("parameters", []), + "fields": jrxml_info.get("fields", []), + "query": jrxml_info.get("query", ""), + "report_name": jrxml_info.get("report_name", ""), + "page_width": jrxml_info.get("page_width", ""), + "page_height": jrxml_info.get("page_height", ""), + "error": jrxml_info.get("error"), + } + + +def _process_files(file_ids: list[str], session_id: str) -> dict: + """处理上传的文件:解析 → 布局分析 → 提取 schema 文本。 + JRXML 文件额外解析为模板上下文注入 agent_state。 + + Returns: + {full_prompt_prefix, uploaded_paths, layout_schema, ocr_text, + jrxml_template: dict | None} """ if not file_ids: return {"full_prompt_prefix": "", "uploaded_paths": [], - "layout_schema": {}, "ocr_text": ""} + "layout_schema": {}, "ocr_text": "", "jrxml_template": None} parts = [] uploaded_paths = [] layout_schema = {} ocr_text = "" + jrxml_template = None for fid in file_ids: info = _file_registry.get(fid) @@ -446,8 +696,33 @@ def _process_files(file_ids: list[str], session_id: str) -> dict: file_path = info["path"] uploaded_paths.append(file_path) + suffix = Path(info["filename"]).suffix.lower() - parsed = parse_file(file_path, Path(info["filename"]).suffix) + # JRXML 文件 → 解析为模板 + if suffix == ".jrxml": + jrxml_template = _parse_jrxml_file(file_path) + if jrxml_template.get("error"): + parts.append(f"[JRXML 模板: {info['filename']}]\n解析失败: {jrxml_template['error']}") + else: + params = jrxml_template["parameters"] + fields = jrxml_template["fields"] + param_desc = "\n".join( + f" - {p['name']} ({p.get('type', 'String')})" for p in params + ) if params else " (无参数)" + field_desc = "\n".join( + f" - {f['name']} ({f.get('type', 'String')})" for f in fields + ) if fields else " (无字段)" + parts.append( + f"[上传的 JRXML 模板: {jrxml_template['report_name'] or info['filename']}]\n" + f"页面尺寸: {jrxml_template['page_width']}x{jrxml_template['page_height']}\n" + f"参数列表:\n{param_desc}\n" + f"字段列表:\n{field_desc}\n" + f"SQL查询: {jrxml_template['query'] or '(无)'}\n" + f"--- XML 内容 ---\n{jrxml_template['jrxml_text']}" + ) + continue + + parsed = parse_file(file_path, suffix) if parsed.get("error"): parts.append(f"[文件: {info['filename']}]\n解析失败: {parsed['error']}") continue @@ -490,6 +765,7 @@ def _process_files(file_ids: list[str], session_id: str) -> dict: "uploaded_paths": uploaded_paths, "layout_schema": layout_schema, "ocr_text": ocr_text, + "jrxml_template": jrxml_template, } @@ -543,6 +819,12 @@ async def chat(session_id: str, payload: dict): if file_result.get("uploaded_paths"): agent_state["uploaded_file_path"] = file_result["uploaded_paths"][0] + # ── 注入 JRXML 模板(对话中上传的模板)── + jrxml_tmpl = file_result.get("jrxml_template") + if jrxml_tmpl and not jrxml_tmpl.get("error"): + agent_state["uploaded_template_jrxml"] = jrxml_tmpl["jrxml_text"] + agent_state["uploaded_template_params"] = jrxml_tmpl["parameters"] + # ── 设置本轮输入 ── if agent_state.get("current_jrxml"): agent_state["user_modification_request"] = full_prompt @@ -591,7 +873,7 @@ async def chat(session_id: str, payload: dict): # ───────────────────────────────────────────── @app.get("/api/sessions/{session_id}/download/latest") -async def download_latest(session_id: str): +async def download_latest(session_id: str, background_tasks: BackgroundTasks): """下载最新 JRXML 文件。""" _check_session_id(session_id) data = load_session(session_id) @@ -607,6 +889,7 @@ async def download_latest(session_id: str): encoding="utf-8") tmp.write(jrxml) tmp.close() + background_tasks.add_task(os.unlink, tmp.name) return FileResponse( tmp.name, @@ -616,7 +899,7 @@ async def download_latest(session_id: str): @app.get("/api/sessions/{session_id}/download/{version}") -async def download_version(session_id: str, version: int): +async def download_version(session_id: str, version: int, background_tasks: BackgroundTasks): """下载指定版本的 JRXML 文件。""" _check_session_id(session_id) data = load_session(session_id) @@ -635,6 +918,7 @@ async def download_version(session_id: str, version: int): encoding="utf-8") tmp.write(jrxml) tmp.close() + background_tasks.add_task(os.unlink, tmp.name) return FileResponse( tmp.name, diff --git a/backend/field_matcher.py b/backend/field_matcher.py new file mode 100644 index 0000000..3d3e19b --- /dev/null +++ b/backend/field_matcher.py @@ -0,0 +1,136 @@ +"""OCR 字段 → KB 字段匹配模块。 + +两阶段匹配: +1. Embedding 粗筛(相似度 top-3) +2. LLM 精确确认 + +返回映射: {"工单号": "billNo", "客户名称": "customerName", ...} +""" + +import json +import os +from typing import Optional + +from dotenv import load_dotenv + +from backend.logger import get_logger + +load_dotenv() + +_match_log = get_logger("field_matcher") + + +def _embed(text: str) -> list: + """获取文本的向量嵌入。""" + from backend.rag_adapter import _get_searcher + searcher = _get_searcher() + if searcher._model is None: + _ = searcher.model + emb = searcher.model.encode(text, normalize_embeddings=True, show_progress_bar=False) + return emb.tolist() + + +def _cosine_similarity(a: list, b: list) -> float: + """余弦相似度(假设向量已归一化,点积即相似度)。""" + return sum(x * y for x, y in zip(a, b)) + + +def match_ocr_to_kb(ocr_fields: list[str], kb_fields: list[dict], + llm=None) -> dict[str, str]: + """将 OCR 提取的字段名匹配到 KB 字段定义。 + + Args: + ocr_fields: OCR 提取的中文字段名列表 + kb_fields: KB 字段定义 [{"name": "billNo", "description": "工单号", ...}] + llm: 可选的 LLM 实例,用于精确确认 + + Returns: + {"工单号": "billNo", "客户": "customerName", ...} + """ + if not ocr_fields or not kb_fields: + return {} + + result = {} + + # 阶段 1: Embedding 粗筛 + try: + ocr_embs = {f: _embed(f) for f in ocr_fields} + kb_embs = {f["name"]: _embed(f.get("description", f["name"])) for f in kb_fields} + except Exception as e: + _match_log.warning("Embedding 匹配失败,回退到 LLM: %s", e) + return _match_via_llm(ocr_fields, kb_fields, llm) + + candidates = {} + for ocr_name, ocr_emb in ocr_embs.items(): + scored = [] + for kb_name, kb_emb in kb_embs.items(): + sim = _cosine_similarity(ocr_emb, kb_emb) + scored.append((kb_name, sim)) + scored.sort(key=lambda x: x[1], reverse=True) + candidates[ocr_name] = scored[:3] + + # 阶段 2: LLM 精确确认 + if llm: + confirmed = _match_via_llm(ocr_fields, kb_fields, llm, candidates) + result.update(confirmed) + else: + for ocr_name, cands in candidates.items(): + if cands and cands[0][1] > 0.5: + result[ocr_name] = cands[0][0] + + return result + + +def _match_via_llm(ocr_fields: list[str], kb_fields: list[dict], + llm, candidates: Optional[dict] = None) -> dict[str, str]: + """使用 LLM 精确确认字段映射。""" + kb_desc = "\n".join( + f"- {f['name']}: {f.get('description', '')} ({f.get('type', 'java.lang.String')})" + for f in kb_fields + ) + + candidates_hint = "" + if candidates: + cand_lines = [] + for ocr_name, cands in candidates.items(): + cand_str = ", ".join(f"{n}({s:.2f})" for n, s in cands) + cand_lines.append(f" {ocr_name} -> 候选: {cand_str}") + candidates_hint = ( + "向量相似度候选(仅供参考,请根据语义确认):\n" + + "\n".join(cand_lines) + ) + + prompt = ( + "请将以下 OCR 识别的字段名匹配到知识库定义的字段。\n\n" + f"OCR 字段: {json.dumps(ocr_fields, ensure_ascii=False)}\n\n" + f"知识库字段:\n{kb_desc}\n\n" + f"{candidates_hint}\n\n" + "请以 JSON 对象格式输出映射关系,键为 OCR 字段名,值为 KB 字段名:\n" + '{"工单号": "billNo", "客户名称": "customerName"}' + ) + + try: + response = llm.invoke(prompt) + content = response.content if hasattr(response, "content") else str(response) + start = content.find("{") + end = content.rfind("}") + 1 + if start >= 0 and end > start: + return json.loads(content[start:end]) + except Exception as e: + _match_log.warning("LLM 字段匹配失败: %s", e) + + return {} + + +def format_field_mapping_context(mapping: dict[str, str]) -> str: + """将字段映射格式化为 prompt 上下文字符串。""" + if not mapping: + return "" + + lines = ["[字段映射 — OCR -> KB]", + "请在 JRXML 中使用以下参数名:", + "| OCR 字段 | JRXML 参数 |", + "|---|---|"] + for ocr_name, kb_name in mapping.items(): + lines.append(f"| {ocr_name} | $P{{{kb_name}}} |") + return "\n".join(lines) diff --git a/backend/kb_manager.py b/backend/kb_manager.py new file mode 100644 index 0000000..be3bf66 --- /dev/null +++ b/backend/kb_manager.py @@ -0,0 +1,227 @@ +"""多租户知识库管理模块。 + +用户 + 知识库 CRUD,持久化到 kb_data/ 目录。 +每个 KB 拥有独立的 JSON 元数据文件和文件存储目录。 +""" + +import json +import os +import re +import uuid +import tempfile +import shutil +from datetime import datetime, timezone +from pathlib import Path +from typing import Optional + +from dotenv import load_dotenv +from backend.logger import get_logger + +load_dotenv() + +_kb_log = get_logger("kb_manager") + +KB_DATA_DIR = Path(os.getenv("KB_DATA_DIR", "./kb_data")) +_USERS_FILE = KB_DATA_DIR / "users.json" + +_VALID_ID_RE = re.compile(r'^[a-fA-F0-9]{12,}$') + + +def _validate_id(id_str: str, label: str = "id") -> None: + if not _VALID_ID_RE.match(id_str): + raise ValueError(f"Invalid {label}: {id_str!r}") + + +def _now_iso() -> str: + return datetime.now(timezone.utc).isoformat() + + +def _ensure_dir(path: Path) -> None: + path.mkdir(parents=True, exist_ok=True) + + +def _read_json(fp: Path) -> dict: + with open(fp, "r", encoding="utf-8") as f: + return json.load(f) + + +def _write_json_atomic(fp: Path, data: dict) -> None: + _ensure_dir(fp.parent) + tmp = tempfile.NamedTemporaryFile( + mode="w", suffix=".json", delete=False, + dir=fp.parent, encoding="utf-8", + ) + try: + json.dump(data, tmp, ensure_ascii=False, indent=2) + tmp.flush() + os.fsync(tmp.fileno()) + tmp.close() + os.replace(tmp.name, str(fp)) + except Exception: + tmp.close() + Path(tmp.name).unlink(missing_ok=True) + raise + + +# ── User CRUD ────────────────────────────────────────────────────────────── + +def _load_users() -> list[dict]: + _ensure_dir(KB_DATA_DIR) + if _USERS_FILE.exists(): + return _read_json(_USERS_FILE) + return [] + + +def _save_users(users: list[dict]) -> None: + _write_json_atomic(_USERS_FILE, users) + + +def create_user(name: str, user_id: Optional[str] = None) -> dict: + uid = user_id or uuid.uuid4().hex + users = _load_users() + if any(u["user_id"] == uid for u in users): + raise ValueError(f"User {uid} already exists") + user = {"user_id": uid, "name": name, "created_at": _now_iso()} + users.append(user) + _save_users(users) + _ensure_dir(KB_DATA_DIR / uid) + _write_json_atomic(KB_DATA_DIR / uid / "profile.json", user) + _kb_log.info("创建用户", extra={"user_id": uid, "user_name": name}) + return user + + +def list_users() -> list[dict]: + return _load_users() + + +def get_user(user_id: str) -> Optional[dict]: + _validate_id(user_id, "user_id") + for u in _load_users(): + if u["user_id"] == user_id: + return u + return None + + +def delete_user(user_id: str) -> bool: + _validate_id(user_id, "user_id") + users = _load_users() + filtered = [u for u in users if u["user_id"] != user_id] + if len(filtered) == len(users): + return False + _save_users(filtered) + user_dir = KB_DATA_DIR / user_id + if user_dir.exists(): + shutil.rmtree(user_dir) + _kb_log.info("删除用户", extra={"user_id": user_id}) + return True + + +# ── KB CRUD ──────────────────────────────────────────────────────────────── + +def _kb_dir(kb_id: str) -> Optional[Path]: + _validate_id(kb_id, "kb_id") + for user_dir in KB_DATA_DIR.iterdir(): + if user_dir.is_dir() and not user_dir.name.startswith("."): + candidate = user_dir / kb_id + if candidate.is_dir(): + return candidate + return None + + +def _ensure_user_dir(user_id: str) -> Path: + _validate_id(user_id, "user_id") + d = KB_DATA_DIR / user_id + _ensure_dir(d) + return d + + +def create_kb(user_id: str, name: str, description: str = "", + kb_id: Optional[str] = None) -> dict: + user_dir = _ensure_user_dir(user_id) + kid = kb_id or uuid.uuid4().hex + kb_dir = user_dir / kid + _ensure_dir(kb_dir) + _ensure_dir(kb_dir / "raw") + + now = _now_iso() + meta = { + "kb_id": kid, "user_id": user_id, "name": name, + "description": description, "created_at": now, "updated_at": now, + "fields": [], "templates": [], "file_count": 0, + "chunk_count": 0, "parse_status": "empty", + } + _write_json_atomic(kb_dir / "meta.json", meta) + _kb_log.info("创建知识库", extra={"kb_id": kid, "user_id": user_id, "kb_name": name}) + return meta + + +def list_kbs(user_id: str) -> list[dict]: + user_dir = _ensure_user_dir(user_id) + kbs = [] + for kb_dir in sorted(user_dir.iterdir(), key=os.path.getmtime, reverse=True): + if kb_dir.is_dir() and not kb_dir.name.startswith("."): + meta_path = kb_dir / "meta.json" + if meta_path.exists(): + meta = _read_json(meta_path) + kbs.append({ + "kb_id": meta.get("kb_id", kb_dir.name), + "name": meta.get("name", kb_dir.name), + "description": meta.get("description", ""), + "created_at": meta.get("created_at", ""), + "updated_at": meta.get("updated_at", ""), + "field_count": len(meta.get("fields", [])), + "template_count": len(meta.get("templates", [])), + "file_count": meta.get("file_count", 0), + "chunk_count": meta.get("chunk_count", 0), + "parse_status": meta.get("parse_status", "empty"), + }) + return kbs + + +def get_kb(kb_id: str) -> Optional[dict]: + _validate_id(kb_id, "kb_id") + kb_dir = _kb_dir(kb_id) + if kb_dir is None: + return None + meta_path = kb_dir / "meta.json" + return _read_json(meta_path) if meta_path.exists() else None + + +def update_kb_meta(kb_id: str, updates: dict) -> Optional[dict]: + kb_dir = _kb_dir(kb_id) + if kb_dir is None: + return None + meta_path = kb_dir / "meta.json" + meta = _read_json(meta_path) + meta.update(updates) + meta["updated_at"] = _now_iso() + _write_json_atomic(meta_path, meta) + return meta + + +def delete_kb(kb_id: str) -> bool: + kb_dir = _kb_dir(kb_id) + if kb_dir is None: + return False + shutil.rmtree(kb_dir) + _kb_log.info("删除知识库", extra={"kb_id": kb_id}) + return True + + +def get_kb_raw_dir(kb_id: str) -> Optional[Path]: + kb_dir = _kb_dir(kb_id) + return kb_dir / "raw" if kb_dir else None + + +def get_kb_chunks_path(kb_id: str) -> Optional[Path]: + kb_dir = _kb_dir(kb_id) + return kb_dir / "chunks.json" if kb_dir else None + + +def get_kb_chroma_path(kb_id: str) -> Optional[Path]: + kb_dir = _kb_dir(kb_id) + if kb_dir is None: + return None + chroma_dir = kb_dir / "chroma" + _ensure_dir(chroma_dir) + return chroma_dir diff --git a/backend/kb_parser.py b/backend/kb_parser.py new file mode 100644 index 0000000..1bc13ad --- /dev/null +++ b/backend/kb_parser.py @@ -0,0 +1,336 @@ +"""KB 解析管道 — 文件提取→字段解析→chunk 切割→向量嵌入。 + +调用者: api_server.py (upload endpoint), scripts/init_default_kb.py +""" + +import os +import json +import shutil +import zipfile +import tarfile +import tempfile +import defusedxml.ElementTree as ET +from pathlib import Path +from typing import Optional + +from dotenv import load_dotenv +from backend.logger import get_logger +from backend.file_parser import parse_file + +load_dotenv() + +_kb_parse_log = get_logger("kb_parser") + + +def _find_tag(elem, tag): + for el in elem.iter(): + local = el.tag.split("}")[-1] if "}" in el.tag else el.tag + if local == tag: + return el + return None + + +def _find_all_tags(elem, tag): + results = [] + for el in elem.iter(): + local = el.tag.split("}")[-1] if "}" in el.tag else el.tag + if local == tag: + results.append(el) + return results + + +def parse_jrxml_fields(jrxml_path: str) -> dict: + """解析 JRXML 文件,提取参数和字段定义。""" + try: + tree = ET.parse(jrxml_path) + root = tree.getroot() + except ET.ParseError as e: + return {"error": f"JRXML 解析失败: {e}", "parameters": [], "fields": [], + "report_name": ""} + + report_name = root.attrib.get("name", "") + page_width = root.attrib.get("pageWidth", "") + page_height = root.attrib.get("pageHeight", "") + + parameters = [] + for p in _find_all_tags(root, "parameter"): + params = {"name": p.attrib.get("name", ""), + "type": p.attrib.get("class", "java.lang.String"), + "description": ""} + desc = _find_tag(p, "parameterDescription") + if desc is not None and desc.text: + params["description"] = desc.text.strip() + parameters.append(params) + + fields = [] + for f in _find_all_tags(root, "field"): + fields.append({"name": f.attrib.get("name", ""), + "type": f.attrib.get("class", "java.lang.String"), + "description": ""}) + + query_text = "" + query = _find_tag(root, "queryString") + if query is not None and query.text: + query_text = query.text.strip() + + return {"report_name": report_name, "page_width": page_width, + "page_height": page_height, "parameters": parameters, + "fields": fields, "query": query_text, "error": None} + + +def _extract_archive(file_path: str, dest_dir: str) -> list[str]: + extracted = [] + resolved_dest = os.path.realpath(dest_dir) + + if zipfile.is_zipfile(file_path): + with zipfile.ZipFile(file_path, "r") as zf: + for member in zf.namelist(): + member_path = os.path.realpath(os.path.join(dest_dir, member)) + if not member_path.startswith(resolved_dest + os.sep): + continue + zf.extract(member, dest_dir) + if not member.endswith("/"): + extracted.append(member_path) + elif tarfile.is_tarfile(file_path): + with tarfile.open(file_path, "r:*") as tf: + for member in tf.getmembers(): + member_path = os.path.realpath(os.path.join(dest_dir, member.name)) + if not member_path.startswith(resolved_dest + os.sep): + continue + tf.extract(member, dest_dir) + if not member.name.endswith("/"): + extracted.append(member_path) + return extracted + + +def process_file_for_kb(kb_id: str, file_path: str, + source_name: str = "") -> dict: + from backend.kb_manager import get_kb_raw_dir + raw_dir = get_kb_raw_dir(kb_id) + if raw_dir is None: + return {"error": "KB 不存在"} + + fname = source_name or os.path.basename(file_path) + dest = raw_dir / fname + shutil.copy2(file_path, dest) + + suffix = Path(fname).suffix.lower() + + if suffix == ".jrxml": + jrxml_info = parse_jrxml_fields(file_path) + text = f"[JRXML 模板: {jrxml_info['report_name']}]\n" + text += f"页面: {jrxml_info['page_width']}x{jrxml_info['page_height']}\n" + text += "参数:\n" + "\n".join( + f" {p['name']} ({p['type']})" for p in jrxml_info["parameters"]) + text += "\n字段:\n" + "\n".join( + f" {f['name']} ({f['type']})" for f in jrxml_info["fields"]) + if jrxml_info["query"]: + text += f"\n查询:\n{jrxml_info['query']}" + try: + raw_xml = Path(file_path).read_text(encoding="utf-8") + except Exception: + raw_xml = "" + return {"filename": fname, "type": "jrxml", "text": text, + "raw_xml": raw_xml, "jrxml_info": jrxml_info, "error": None} + + if suffix in (".zip", ".tar", ".gz", ".tgz"): + tmpdir = tempfile.mkdtemp(prefix="kb_extract_") + try: + extracted = _extract_archive(file_path, tmpdir) + sub_results = [] + for ep in extracted: + sub = process_file_for_kb( + kb_id, ep, source_name=os.path.basename(ep)) + sub_results.append(sub) + return {"filename": fname, "type": "archive", "text": "", + "archive_contents": sub_results, "error": None} + finally: + shutil.rmtree(tmpdir, ignore_errors=True) + + parse_result = parse_file(str(dest)) + return {"filename": fname, "type": suffix.lstrip("."), + "text": parse_result.get("text", ""), + "error": parse_result.get("error")} + + +def chunk_file_results(results: list[dict], kb_name: str = "") -> list[dict]: + chunks = [] + chunk_idx = 0 + + for r in results: + if r.get("type") == "archive": + for sub in r.get("archive_contents", []): + chunks.extend(chunk_file_results([sub], kb_name)) + continue + + fname = r.get("filename", "") + ftype = r.get("type", "") + text = r.get("text", "") + if not text.strip(): + continue + + if ftype == "jrxml" and r.get("raw_xml"): + jinfo = r.get("jrxml_info", {}) + report_name = jinfo.get("report_name", "") + chunks.append({ + "id": f"chunk_{chunk_idx}", + "content": f"[JRXML 模板: {report_name}]\n{r['text']}\n\n" + f"\n{r['raw_xml']}\n", + "metadata": {"chunk_type": "jrxml_template", + "source_file": fname, + "report_name": report_name, + "kb_name": kb_name, + "param_count": len(jinfo.get("parameters", [])), + "field_count": len(jinfo.get("fields", []))}, + }) + chunk_idx += 1 + continue + + paragraphs = [p.strip() for p in text.split("\n\n") if p.strip()] + for para in paragraphs: + if len(para) < 10: + continue + chunk_type = "md_section" if ftype in ("md", "") else f"{ftype}_text" + chunks.append({ + "id": f"chunk_{chunk_idx}", + "content": para, + "metadata": {"chunk_type": chunk_type, + "source_file": fname, "kb_name": kb_name}, + }) + chunk_idx += 1 + return chunks + + +def extract_fields_with_llm(text: str, llm=None) -> list[dict]: + if llm is None: + return _extract_fields_from_table(text) + prompt = ( + "请分析以下接口文档内容,提取所有字段定义。\n" + "对每个字段,输出: 字段名, 含义, 类型, 是否必需。\n" + "以 JSON 数组格式输出,每个元素为 {\"name\": \"...\", " + "\"description\": \"...\", \"type\": \"...\", \"required\": false}。\n\n" + f"{text}" + ) + try: + response = llm.invoke(prompt) + content = response.content if hasattr(response, "content") else str(response) + start = content.find("[") + end = content.rfind("]") + 1 + if start >= 0 and end > start: + return json.loads(content[start:end]) + except Exception as e: + _kb_parse_log.warning("LLM 字段提取失败,使用表格回退: %s", e) + return _extract_fields_from_table(text) + + +def _extract_fields_from_table(text: str) -> list[dict]: + fields = [] + lines = text.split("\n") + header_found = False + for line in lines: + line = line.strip() + if not line.startswith("|"): + continue + cells = [c.strip() for c in line.split("|")[1:-1]] + if not cells: + continue + if not header_found: + if any(h in str(c) for c in cells + for h in ["字段", "名称", "含义", "说明", "类型"]): + header_found = True + continue + if all(c.replace("-", "").replace(":", "").replace(" ", "") == "" + for c in cells): + continue + if len(cells) >= 2: + name = cells[0].replace("**", "").replace("L ", "").replace("\\", "").strip() + if not name or name in ("", "---"): + continue + field = {"name": name, "description": "", "type": "java.lang.String", + "required": False} + if len(cells) >= 2 and cells[1]: + field["description"] = cells[1].replace("
", " ").strip() + if len(cells) >= 3 and cells[2]: + field["required"] = cells[2].strip() in ("是", "Y", "y", "yes", "Yes", "必填") + if len(cells) >= 4 and cells[3]: + field["type"] = cells[3].strip() + fields.append(field) + return fields + + +def build_kb_from_files(kb_id: str, file_paths: list[str], + llm=None) -> dict: + from backend.kb_manager import update_kb_meta, get_kb_chunks_path + from backend.kb_searcher import get_kb_searcher + + all_results = [] + errors = [] + for fp in file_paths: + try: + r = process_file_for_kb(kb_id, fp) + all_results.append(r) + if r.get("error"): + errors.append({"file": os.path.basename(fp), "error": r["error"]}) + except Exception as e: + errors.append({"file": os.path.basename(fp), "error": str(e)}) + + chunks = chunk_file_results(all_results) + + chunks_path = get_kb_chunks_path(kb_id) + if chunks_path: + chunks_path.parent.mkdir(parents=True, exist_ok=True) + with open(chunks_path, "w", encoding="utf-8") as f: + json.dump(chunks, f, ensure_ascii=False, indent=2) + + searcher = get_kb_searcher(kb_id) + if searcher and chunks: + try: + searcher.add_chunks(chunks) + except Exception as e: + errors.append({"file": "embedding", "error": str(e)}) + + all_fields = [] + template_names = [] + for r in all_results: + _collect_from_result(r, all_fields, template_names) + + for r in all_results: + if r.get("type") in ("archive", "jrxml"): + continue + text = r.get("text", "") + if text.strip(): + for ef in extract_fields_with_llm(text, llm): + if not any(f["name"] == ef["name"] for f in all_fields): + all_fields.append(ef) + + update_kb_meta(kb_id, { + "fields": all_fields, "templates": template_names, + "file_count": len(file_paths), "chunk_count": len(chunks), + "parse_status": "ready" if not errors else "partial", + }) + + _kb_parse_log.info("KB 构建完成", extra={ + "kb_id": kb_id, "fields": len(all_fields), + "templates": len(template_names), "chunks": len(chunks), + }) + + return {"status": "ready" if not errors else "partial", + "field_count": len(all_fields), "chunk_count": len(chunks), + "template_count": len(template_names), "errors": errors} + + +def _collect_from_result(r: dict, all_fields: list, template_names: list) -> None: + jinfo = r.get("jrxml_info") + if jinfo and jinfo.get("report_name"): + template_names.append({"name": jinfo["report_name"], + "file": r.get("filename", "")}) + for p in jinfo.get("parameters", []): + field = {"name": p["name"], "description": p.get("description", ""), + "type": p.get("type", "java.lang.String"), "required": False} + if not any(f["name"] == field["name"] for f in all_fields): + all_fields.append(field) + for f in jinfo.get("fields", []): + field = {"name": f["name"], "description": f.get("description", ""), + "type": f.get("type", "java.lang.String"), "required": False} + if not any(fi["name"] == field["name"] for fi in all_fields): + all_fields.append(field) diff --git a/backend/kb_searcher.py b/backend/kb_searcher.py new file mode 100644 index 0000000..b89189e --- /dev/null +++ b/backend/kb_searcher.py @@ -0,0 +1,170 @@ +"""KB 隔离的 ChromaDB 语义搜索适配器。 + +每个知识库拥有独立的 ChromaDB collection。 +调用者: backend/rag_adapter.py, agent/nodes.py, api_server.py +""" + +import os +import logging +from pathlib import Path +from typing import Optional + +from dotenv import load_dotenv + +load_dotenv() + +logger = logging.getLogger(__name__) + +_PROJECT_ROOT = Path(__file__).resolve().parent.parent + + +def _resolve(path: str) -> Path: + p = Path(path) + return p if p.is_absolute() else _PROJECT_ROOT / p + + +class KBChromaSearcher: + """连接指定 KB 的 ChromaDB,提供语义搜索。""" + + def __init__(self, chroma_path: str, collection_name: str = "kb_chunks", + model_name: Optional[str] = None, use_gpu: Optional[bool] = None, + use_fp16: Optional[bool] = None): + self.chroma_path = str(_resolve(chroma_path)) + self.collection_name = collection_name + model_path = model_name or os.getenv( + "RAG_EMBED_MODEL", "./rag/models/paraphrase-multilingual-MiniLM-L12-v2") + resolved = _resolve(model_path) + self.model_name = str(resolved) if resolved.exists() else model_path + self.use_gpu = (use_gpu if use_gpu is not None + else os.getenv("RAG_USE_GPU", "true").lower() in ("true", "1")) + self.use_fp16 = (use_fp16 if use_fp16 is not None + else os.getenv("RAG_USE_FP16", "true").lower() in ("true", "1")) + self._model = None + self._client = None + self._collection = None + + @property + def model(self): + if self._model is None: + import torch + from sentence_transformers import SentenceTransformer + device = "cuda" if (self.use_gpu and torch.cuda.is_available()) else "cpu" + logger.info("加载嵌入模型: %s (device=%s)", self.model_name, device) + model = SentenceTransformer(self.model_name, device=device) + if device == "cuda" and self.use_fp16: + model = model.half() + self._model = model + return self._model + + @property + def client(self): + if self._client is None: + import chromadb + self._client = chromadb.PersistentClient(path=self.chroma_path) + return self._client + + @property + def collection(self): + if self._collection is None: + try: + self._collection = self.client.get_collection(self.collection_name) + except Exception: + self._collection = self.client.create_collection( + self.collection_name, metadata={"hnsw:space": "cosine"}) + return self._collection + + def is_ready(self) -> bool: + try: + self.client.get_collection(self.collection_name) + return True + except Exception: + return False + + def search(self, query: str, k: int = 5, threshold: Optional[float] = None) -> list[dict]: + if not self.is_ready(): + return [] + query_embedding = self.model.encode( + query, normalize_embeddings=True, show_progress_bar=False) + results = self.collection.query( + query_embeddings=[query_embedding.tolist()], + n_results=k, include=["documents", "metadatas", "distances"]) + output = [] + if not results["ids"] or not results["ids"][0]: + return output + for i, doc_id in enumerate(results["ids"][0]): + dist = results["distances"][0][i] + if threshold is not None and dist > threshold: + continue + output.append({ + "id": doc_id, + "content": results["documents"][0][i], + "metadata": results["metadatas"][0][i] or {}, + "distance": dist, + }) + return output + + def search_templates(self, query: str, k: int = 3) -> list[dict]: + results = self.search(query, k=k * 2) + templates = [] + for r in results: + meta = r.get("metadata", {}) + chunk_type = meta.get("chunk_type", "") + if "jrxml" in chunk_type.lower() or meta.get("report_name"): + templates.append(r) + if len(templates) >= k: + break + return templates + + def search_as_context(self, query: str, k: int = 5) -> str: + results = self.search(query, k=k) + if not results: + return "" + parts = [] + for r in results: + meta = r.get("metadata", {}) + header = f"[类型:{meta.get('chunk_type', 'N/A')}]" + if meta.get("report_name"): + header += f" [报表:{meta['report_name']}]" + parts.append(f"{header}\n{r['content']}") + return "\n\n---\n\n".join(parts) + + def add_chunks(self, chunks: list[dict]) -> None: + if not chunks: + return + ids = [c["id"] for c in chunks] + docs = [c["content"] for c in chunks] + metas = [c.get("metadata", {}) for c in chunks] + embeddings = self.model.encode( + docs, normalize_embeddings=True, show_progress_bar=True) + self.collection.upsert( + ids=ids, documents=docs, metadatas=metas, + embeddings=embeddings.tolist()) + + +_searchers: dict = {} + + +def get_kb_searcher(kb_id: str) -> Optional[KBChromaSearcher]: + from backend.kb_manager import get_kb_chroma_path + if kb_id in _searchers: + return _searchers[kb_id] + chroma_path = get_kb_chroma_path(kb_id) + if chroma_path is None: + return None + searcher = KBChromaSearcher(str(chroma_path)) + _searchers[kb_id] = searcher + return searcher + + +def search_kb(kb_id: str, query: str, k: int = 5) -> str: + searcher = get_kb_searcher(kb_id) + if searcher is None: + return "" + return searcher.search_as_context(query, k=k) + + +def search_templates_in_kb(kb_id: str, query: str, k: int = 3) -> list[dict]: + searcher = get_kb_searcher(kb_id) + if searcher is None: + return [] + return searcher.search_templates(query, k=k) diff --git a/backend/rag_adapter.py b/backend/rag_adapter.py index 9a8fc23..f775b90 100644 --- a/backend/rag_adapter.py +++ b/backend/rag_adapter.py @@ -150,6 +150,12 @@ def _get_searcher() -> RAGSearcher: return _searcher -def search_chunks(query: str, k: int = 5) -> str: - """搜索 JRXML 知识库并返回拼接后的上下文文本(便捷函数)。""" +def search_chunks(query: str, k: int = 5, kb_id: str = "") -> str: + """搜索知识库并返回拼接后的上下文文本。 + + 若指定 kb_id,使用该 KB 专属 ChromaDB;否则使用全局默认库。 + """ + if kb_id: + from backend.kb_searcher import search_kb + return search_kb(kb_id, query, k=k) return _get_searcher().search_as_context(query, k=k) diff --git a/backend/session.py b/backend/session.py index fae4f53..1d1b77b 100644 --- a/backend/session.py +++ b/backend/session.py @@ -56,6 +56,7 @@ def create_session(name: str = "", agent_state: Optional[dict] = None, "session_name": name or f"新建报表 {now[:10]}", "created_at": now, "updated_at": now, + "kb_id": agent_state.get("kb_id", "") if agent_state else "", "agent_state": agent_state, } with open(_session_path(sid), "w", encoding="utf-8") as f: diff --git a/frontend/README.md b/frontend/README.md index 33895ab..fb083ad 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -1,5 +1,52 @@ -# Vue 3 + TypeScript + Vite +# JRXML Agent 前端 -This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 ` + + + + diff --git a/frontend/src/components/KbSelector.vue b/frontend/src/components/KbSelector.vue new file mode 100644 index 0000000..c17b78f --- /dev/null +++ b/frontend/src/components/KbSelector.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/frontend/src/components/UnifiedInput.vue b/frontend/src/components/UnifiedInput.vue index 2d52b63..a6e3a8d 100644 --- a/frontend/src/components/UnifiedInput.vue +++ b/frontend/src/components/UnifiedInput.vue @@ -140,7 +140,7 @@ function handlePaste(e: ClipboardEvent) { ref="fileInputRef" type="file" multiple - accept="image/*,.pdf,.docx,.doc,.xlsx,.xls,.txt,.csv" + accept="image/*,.pdf,.docx,.doc,.xlsx,.xls,.txt,.csv,.jrxml" style="display:none" @change="handleFileSelect" /> diff --git a/frontend/src/stores/kb.ts b/frontend/src/stores/kb.ts new file mode 100644 index 0000000..6682c4f --- /dev/null +++ b/frontend/src/stores/kb.ts @@ -0,0 +1,152 @@ +/** Pinia store — multi-tenant KB management. */ + +import { ref } from 'vue' +import { defineStore } from 'pinia' + +export interface KbSummary { + kb_id: string + name: string + description: string + created_at: string + updated_at: string + field_count: number + template_count: number + file_count: number + chunk_count: number + parse_status: string +} + +export interface UserInfo { + user_id: string + name: string + created_at: string +} + +export interface KbTemplate { + name: string + file: string +} + +export interface KbField { + name: string + description: string + type: string + required: boolean +} + +export const useKbStore = defineStore('kb', () => { + const users = ref([]) + const currentUserId = ref('') + const kbs = ref([]) + const currentKbId = ref('') + const currentKbName = ref('') + const currentKbFields = ref([]) + const currentKbTemplates = ref([]) + const loading = ref(false) + const showManager = ref(false) + + function setKbs(list: KbSummary[]) { kbs.value = list } + + function selectKb(kbId: string) { + currentKbId.value = kbId + const kb = kbs.value.find(k => k.kb_id === kbId) + if (kb) currentKbName.value = kb.name + } + + async function refreshUsers() { + try { + const r = await fetch('/api/users') + const data = await r.json() + users.value = data.users || [] + if (users.value.length > 0 && !currentUserId.value) { + currentUserId.value = users.value[0].user_id + } + } catch (e) { console.error('获取用户列表失败:', e) } + } + + async function refreshKbs(userId?: string) { + const uid = userId || currentUserId.value + if (!uid) return + loading.value = true + try { + const r = await fetch(`/api/users/${uid}/kbs`) + const data = await r.json() + kbs.value = data.kbs || [] + } catch (e) { console.error('获取知识库列表失败:', e) } + finally { loading.value = false } + } + + async function createKb(name: string, description = ''): Promise { + if (!currentUserId.value) return null + try { + const r = await fetch(`/api/users/${currentUserId.value}/kbs`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ name, description }), + }) + if (!r.ok) throw new Error('创建失败') + const kb = await r.json() + await refreshKbs() + return kb + } catch (e) { console.error('创建知识库失败:', e); return null } + } + + async function deleteKb(kbId: string): Promise { + try { + const r = await fetch(`/api/kbs/${kbId}`, { method: 'DELETE' }) + if (!r.ok) throw new Error('删除失败') + if (currentKbId.value === kbId) { currentKbId.value = ''; currentKbName.value = '' } + await refreshKbs() + return true + } catch (e) { console.error('删除知识库失败:', e); return false } + } + + async function uploadFileToKb(kbId: string, file: File): Promise { + try { + const form = new FormData() + form.append('file', file) + const r = await fetch(`/api/kbs/${kbId}/upload`, { method: 'POST', body: form }) + return r.ok + } catch (e) { console.error('KB文件上传失败:', e); return false } + } + + async function buildKb(kbId: string): Promise { + try { + const r = await fetch(`/api/kbs/${kbId}/build`, { method: 'POST' }) + if (!r.ok) throw new Error('构建失败') + await refreshKbs() + return true + } catch (e) { console.error('KB构建失败:', e); return false } + } + + async function fetchKbFields(kbId: string) { + try { + const r = await fetch(`/api/kbs/${kbId}/fields`) + const data = await r.json() + currentKbFields.value = data.fields || [] + currentKbTemplates.value = data.templates || [] + } catch (e) { console.error('获取KB字段失败:', e) } + } + + async function bindKbToSession(sessionId: string, kbId: string) { + try { + await fetch(`/api/sessions/${sessionId}/kb`, { + method: 'PUT', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ kb_id: kbId }), + }) + } catch (e) { console.error('绑定KB失败:', e) } + } + + async function init() { + await refreshUsers() + if (currentUserId.value) await refreshKbs() + } + + return { + users, currentUserId, kbs, currentKbId, currentKbName, + currentKbFields, currentKbTemplates, loading, showManager, + setKbs, selectKb, refreshUsers, refreshKbs, createKb, deleteKb, + uploadFileToKb, buildKb, fetchKbFields, bindKbToSession, init, + } +}) diff --git a/frontend/tests/e2e/main-flows.spec.ts b/frontend/tests/e2e/main-flows.spec.ts index b394013..f721607 100644 --- a/frontend/tests/e2e/main-flows.spec.ts +++ b/frontend/tests/e2e/main-flows.spec.ts @@ -166,3 +166,155 @@ test.describe("Input UX", () => { await expect(page.locator(".send-btn")).toBeEnabled(); }); }); + +// ── KB (Knowledge Base) API mocks ─────────────────────────────── + +function mockKbApi(page: any) { + mockApi(page); + + page.route("**/api/users", (route: any) => { + if (route.request().method() === "POST") { + return route.fulfill({ + json: { user_id: "u_e2e_test_001", name: "E2E用户", created_at: "2026-05-23T00:00:00Z" }, + }); + } + return route.fulfill({ + json: { users: [{ user_id: "u_e2e_test_001", name: "E2E用户", created_at: "2026-05-23T00:00:00Z" }] }, + }); + }); + + page.route("**/api/users/*/kbs", (route: any) => { + if (route.request().method() === "POST") { + return route.fulfill({ + json: { + kb_id: "kb_e2e_001", user_id: "u_e2e_test_001", + name: "E2E测试库", description: "", + created_at: "2026-05-23T00:00:00Z", updated_at: "2026-05-23T00:00:00Z", + fields: [], templates: [], file_count: 0, chunk_count: 0, parse_status: "empty", + }, + }); + } + return route.fulfill({ + json: { + kbs: [{ + kb_id: "kb_e2e_001", name: "E2E测试库", description: "", + created_at: "2026-05-23T00:00:00Z", updated_at: "2026-05-23T00:00:00Z", + field_count: 10, template_count: 3, file_count: 2, chunk_count: 50, parse_status: "ready", + }], + }, + }); + }); + + page.route("**/api/kbs/*/status", (route: any) => + route.fulfill({ json: { parse_status: "ready", file_count: 2, chunk_count: 50 } }) + ); + page.route("**/api/kbs/*/fields", (route: any) => + route.fulfill({ json: { + fields: [{ name: "billNo", description: "工单号", type: "String" }], + templates: [{ name: "结算单", file: "结算单.jrxml" }], + }}) + ); + page.route("**/api/kbs/*", (route: any) => { + if (route.request().method() === "DELETE") { + return route.fulfill({ json: { status: "deleted" } }); + } + return route.fulfill({ + json: { + kb_id: "kb_e2e_001", user_id: "u_e2e_test_001", + name: "E2E测试库", description: "", + fields: [], templates: [], + file_count: 2, chunk_count: 50, parse_status: "ready", + }, + }); + }); + + page.route("**/api/kbs/*/upload", (route: any) => + route.fulfill({ json: { filename: "test.jrxml", type: "jrxml", error: null } }) + ); + + page.route("**/api/sessions/*/kb", (route: any) => { + if (route.request().method() === "PUT") { + return route.fulfill({ json: { kb_id: "kb_e2e_001", kb_name: "E2E测试库" } }); + } + return route.fulfill({ json: { kb_id: "kb_e2e_001", kb_name: "E2E测试库" } }); + }); +} + +// ── KB feature tests ──────────────────────────────────────────── + +test.describe("KB selector", () => { + test("KB selector renders in chat interface", async ({ page }) => { + await mockKbApi(page); + await page.goto("/"); + + await expect(page.locator(".kb-selector")).toBeVisible({ timeout: 5000 }); + await expect(page.locator(".kb-label")).toContainText("知识库"); + await expect(page.locator(".kb-select")).toBeVisible(); + await expect(page.locator(".kb-manage-btn")).toBeVisible(); + }); + + test("can select a KB from dropdown", async ({ page }) => { + await mockKbApi(page); + await page.goto("/"); + + const select = page.locator(".kb-select"); + await expect(select).toBeVisible({ timeout: 5000 }); + await select.selectOption({ label: "E2E测试库 (10字段, 3模板)" }); + await expect(page.locator(".kb-badge")).toContainText("E2E测试库"); + }); +}); + +test.describe("KB manager", () => { + test("opens KB manager overlay", async ({ page }) => { + await mockKbApi(page); + await page.goto("/"); + + await page.locator(".kb-manage-btn").click(); + await expect(page.locator(".kb-manager")).toBeVisible({ timeout: 3000 }); + await expect(page.locator(".kb-manager h3")).toContainText("知识库管理"); + }); + + test("can close KB manager", async ({ page }) => { + await mockKbApi(page); + await page.goto("/"); + + await page.locator(".kb-manage-btn").click(); + await expect(page.locator(".kb-manager")).toBeVisible({ timeout: 3000 }); + await page.locator(".close-btn").click(); + await expect(page.locator(".kb-manager")).not.toBeVisible({ timeout: 3000 }); + }); + + test("create form has name input and create button", async ({ page }) => { + await mockKbApi(page); + await page.goto("/"); + + await page.locator(".kb-manage-btn").click(); + await expect(page.locator(".kb-manager")).toBeVisible({ timeout: 3000 }); + + await expect(page.locator('.kb-manager .create-form .kb-input').first()).toBeVisible(); + await expect(page.locator('.kb-manager .create-form button.primary')).toBeVisible(); + }); + + test("KB cards show name, status, and actions", async ({ page }) => { + await mockKbApi(page); + await page.goto("/"); + + await page.locator(".kb-manage-btn").click(); + await expect(page.locator(".kb-manager")).toBeVisible({ timeout: 3000 }); + + await expect(page.locator(".kb-card")).toBeVisible({ timeout: 3000 }); + await expect(page.locator(".kb-card strong")).toContainText("E2E测试库"); + await expect(page.locator(".kb-status.ready")).toContainText("就绪"); + await expect(page.locator(".kb-actions button")).toHaveCount(3); + }); +}); + +test.describe("JRXML upload in chat", () => { + test("file input accepts .jrxml extension", async ({ page }) => { + await mockKbApi(page); + await page.goto("/"); + + const input = page.locator('.unified-input input[type="file"]'); + await expect(input).toHaveAttribute("accept", /\.jrxml/); + }); +}); diff --git a/kb_data/2db10c2ebbf6434aab28035026e196c3/49b972ec9e424f04aec34899c978f087/meta.json b/kb_data/2db10c2ebbf6434aab28035026e196c3/49b972ec9e424f04aec34899c978f087/meta.json new file mode 100644 index 0000000..79c68f2 --- /dev/null +++ b/kb_data/2db10c2ebbf6434aab28035026e196c3/49b972ec9e424f04aec34899c978f087/meta.json @@ -0,0 +1,13 @@ +{ + "kb_id": "49b972ec9e424f04aec34899c978f087", + "user_id": "2db10c2ebbf6434aab28035026e196c3", + "name": "smoke_kb", + "description": "", + "created_at": "2026-05-23T12:21:32.409028+00:00", + "updated_at": "2026-05-23T12:21:32.409028+00:00", + "fields": [], + "templates": [], + "file_count": 0, + "chunk_count": 0, + "parse_status": "empty" +} \ No newline at end of file diff --git a/kb_data/2db10c2ebbf6434aab28035026e196c3/profile.json b/kb_data/2db10c2ebbf6434aab28035026e196c3/profile.json new file mode 100644 index 0000000..1cba500 --- /dev/null +++ b/kb_data/2db10c2ebbf6434aab28035026e196c3/profile.json @@ -0,0 +1,5 @@ +{ + "user_id": "2db10c2ebbf6434aab28035026e196c3", + "name": "SmokeTest", + "created_at": "2026-05-23T12:21:32.399217+00:00" +} \ No newline at end of file diff --git a/kb_data/d198ae3b32cd49f09736c4290dd1223a/5a1ba1acd39344d79602df3e38ff52a8/chroma/chroma.sqlite3 b/kb_data/d198ae3b32cd49f09736c4290dd1223a/5a1ba1acd39344d79602df3e38ff52a8/chroma/chroma.sqlite3 new file mode 100644 index 0000000..5bfb3bf Binary files /dev/null and b/kb_data/d198ae3b32cd49f09736c4290dd1223a/5a1ba1acd39344d79602df3e38ff52a8/chroma/chroma.sqlite3 differ diff --git a/kb_data/d198ae3b32cd49f09736c4290dd1223a/5a1ba1acd39344d79602df3e38ff52a8/chroma/d474a46a-3dff-4c26-80e6-5b1ef6b93d51/data_level0.bin b/kb_data/d198ae3b32cd49f09736c4290dd1223a/5a1ba1acd39344d79602df3e38ff52a8/chroma/d474a46a-3dff-4c26-80e6-5b1ef6b93d51/data_level0.bin new file mode 100644 index 0000000..4d75b05 Binary files /dev/null and b/kb_data/d198ae3b32cd49f09736c4290dd1223a/5a1ba1acd39344d79602df3e38ff52a8/chroma/d474a46a-3dff-4c26-80e6-5b1ef6b93d51/data_level0.bin differ diff --git a/kb_data/d198ae3b32cd49f09736c4290dd1223a/5a1ba1acd39344d79602df3e38ff52a8/chroma/d474a46a-3dff-4c26-80e6-5b1ef6b93d51/header.bin b/kb_data/d198ae3b32cd49f09736c4290dd1223a/5a1ba1acd39344d79602df3e38ff52a8/chroma/d474a46a-3dff-4c26-80e6-5b1ef6b93d51/header.bin new file mode 100644 index 0000000..bb54792 Binary files /dev/null and b/kb_data/d198ae3b32cd49f09736c4290dd1223a/5a1ba1acd39344d79602df3e38ff52a8/chroma/d474a46a-3dff-4c26-80e6-5b1ef6b93d51/header.bin differ diff --git a/kb_data/d198ae3b32cd49f09736c4290dd1223a/5a1ba1acd39344d79602df3e38ff52a8/chroma/d474a46a-3dff-4c26-80e6-5b1ef6b93d51/length.bin b/kb_data/d198ae3b32cd49f09736c4290dd1223a/5a1ba1acd39344d79602df3e38ff52a8/chroma/d474a46a-3dff-4c26-80e6-5b1ef6b93d51/length.bin new file mode 100644 index 0000000..bbe616e Binary files /dev/null and b/kb_data/d198ae3b32cd49f09736c4290dd1223a/5a1ba1acd39344d79602df3e38ff52a8/chroma/d474a46a-3dff-4c26-80e6-5b1ef6b93d51/length.bin differ diff --git a/kb_data/d198ae3b32cd49f09736c4290dd1223a/5a1ba1acd39344d79602df3e38ff52a8/chroma/d474a46a-3dff-4c26-80e6-5b1ef6b93d51/link_lists.bin b/kb_data/d198ae3b32cd49f09736c4290dd1223a/5a1ba1acd39344d79602df3e38ff52a8/chroma/d474a46a-3dff-4c26-80e6-5b1ef6b93d51/link_lists.bin new file mode 100644 index 0000000..e69de29 diff --git a/kb_data/d198ae3b32cd49f09736c4290dd1223a/5a1ba1acd39344d79602df3e38ff52a8/chunks.json b/kb_data/d198ae3b32cd49f09736c4290dd1223a/5a1ba1acd39344d79602df3e38ff52a8/chunks.json new file mode 100644 index 0000000..c93fa13 --- /dev/null +++ b/kb_data/d198ae3b32cd49f09736c4290dd1223a/5a1ba1acd39344d79602df3e38ff52a8/chunks.json @@ -0,0 +1,3950 @@ +[ + { + "id": "chunk_0", + "content": "[JRXML 模板: jiesuandan]\n[JRXML 模板: jiesuandan]\n页面: 595x842\n参数:\n orgName (java.lang.String)\n detailAddress (java.lang.String)\n contactNumber (java.lang.String)\n fax (java.lang.String)\n bankAccount (java.lang.String)\n email (java.lang.String)\n accountNumber (java.lang.String)\n naCustomer (java.lang.String)\n contactName (java.lang.String)\n contactCellphone (java.lang.String)\n billNo (java.lang.String)\n billDate (java.lang.String)\n mileage (java.math.BigDecimal)\n carNoWhole (java.lang.String)\n carModelShort (java.lang.String)\n deliveryTime (java.lang.String)\n serviceSubtotalAll (java.math.BigDecimal)\n stuffSubtotalAll (java.math.BigDecimal)\n extraCostTotal (java.math.BigDecimal)\n amountAll (java.math.BigDecimal)\n totalWorkHour (java.math.BigDecimal)\n numberCount (java.lang.String)\n serviceList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n partList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n businessTypeName (java.lang.String)\n creatorName (java.lang.String)\n carModel (java.lang.String)\n vin (java.lang.String)\n printCount (java.lang.String)\n serviceNum (java.lang.String)\n serviceDisCountSubTotal (java.math.BigDecimal)\n totalStuffNum (java.lang.String)\n couponFavourable (java.math.BigDecimal)\n pointFavourable (java.math.BigDecimal)\n partinfoDiscountFavourable (java.math.BigDecimal)\n naEmployee (java.lang.String)\n memo (java.lang.String)\n repairPerson (java.lang.String)\n cellPhone (java.lang.String)\n carBrandName (java.lang.String)\n orgContactMobile (java.lang.String)\n orgDetailAddress (java.lang.String)\n selfPartList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n payItemList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n extraChargeList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n stuffDisCountTotal (java.math.BigDecimal)\n selfTotalStuffNum (java.lang.String)\n czkExpense (java.math.BigDecimal)\n disCountAll (java.math.BigDecimal)\n packageFavourable (java.math.BigDecimal)\n serviceFavourable (java.math.BigDecimal)\n partinfoFavourable (java.math.BigDecimal)\n gatheringFavourable (java.math.BigDecimal)\n discountFavourable (java.math.BigDecimal)\n oweAmount (java.math.BigDecimal)\n amountReal (java.math.BigDecimal)\n printTime (java.lang.String)\n creationtime (java.lang.String)\n extraNumber (java.lang.String)\n carSeriesName (java.lang.String)\n qRCodeStr (java.lang.String)\n vipExpense (java.math.BigDecimal)\n storeLogo (java.lang.String)\n partFavourableTotal (java.math.BigDecimal)\n serviceFavourableTotal (java.math.BigDecimal)\n partFavourableCommonTotal (java.math.BigDecimal)\n serviceFavourableCommonTotal (java.math.BigDecimal)\n serviceSubtotalVip (java.math.BigDecimal)\n stuffSubtotalVip (java.math.BigDecimal)\n nextMileage (java.math.BigDecimal)\n printContent (java.lang.String)\n repairPersonContact (java.lang.String)\n payItemTogether (java.lang.String)\n payItemTogetherChinese (java.lang.String)\n printOrgName (java.lang.String)\n orgContactNumber (java.lang.String)\n maintainType (java.lang.String)\n naInsurer (java.lang.String)\n insurancepolicyNo (java.lang.String)\n balanceStatus (java.lang.String)\n czkDetailInfo (java.lang.String)\n paymentTypeDetails (java.lang.String)\n signaturePhotoUrl (java.lang.String)\n czkDiscountFavourable (java.math.BigDecimal)\n isCustomerLevelFavourable (java.lang.Integer)\n nextMileageRemind (java.math.BigDecimal)\n claimInsuranceList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n字段:\n serviceName (java.lang.String)\n workHour (java.math.BigDecimal)\n price (java.math.BigDecimal)\n subtotal (java.math.BigDecimal)\n serviceMemo (java.lang.String)\n discountedSubtotal (java.math.BigDecimal)\n extraPrintVo (java.lang.String)\n singleFavourable (java.math.BigDecimal)\n isMember (java.lang.Integer)\n discount (java.math.BigDecimal)\n customCode (java.lang.String)\n partName (java.lang.String)\n unit (java.lang.String)\n number (java.math.BigDecimal)\n price (java.math.BigDecimal)\n subtotal (java.math.BigDecimal)\n partBrand (java.lang.String)\n standard (java.lang.String)\n supplierCode (java.lang.String)\n discountedSubtotal (java.math.BigDecimal)\n partMemo (java.lang.String)\n isBring (java.lang.String)\n singleFavourable (java.math.BigDecimal)\n isMember (java.lang.Integer)\n discount (java.math.BigDecimal)\n payWay (java.lang.String)\n payAmount (java.math.BigDecimal)\n chinesePayAmount (java.lang.String)\n extraName (java.lang.String)\n subtotal (java.math.BigDecimal)\n memo (java.lang.String)\n naInsurer (java.lang.String)\n insurancepolicyNo (java.lang.String)\n\n\n\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n", + "metadata": { + "chunk_type": "jrxml_template", + "source_file": "F6标准结算单(壹).jrxml", + "report_name": "jiesuandan", + "kb_name": "", + "param_count": 87, + "field_count": 33 + } + }, + { + "id": "chunk_1", + "content": "[JRXML 模板: jiesuandan]\n[JRXML 模板: jiesuandan]\n页面: 595x842\n参数:\n orgName (java.lang.String)\n detailAddress (java.lang.String)\n contactNumber (java.lang.String)\n fax (java.lang.String)\n bankAccount (java.lang.String)\n email (java.lang.String)\n accountNumber (java.lang.String)\n naCustomer (java.lang.String)\n contactName (java.lang.String)\n contactCellphone (java.lang.String)\n billNo (java.lang.String)\n billDate (java.lang.String)\n mileage (java.math.BigDecimal)\n carNoWhole (java.lang.String)\n carModelShort (java.lang.String)\n deliveryTime (java.lang.String)\n serviceSubtotalAll (java.math.BigDecimal)\n stuffSubtotalAll (java.math.BigDecimal)\n extraCostTotal (java.math.BigDecimal)\n amountAll (java.math.BigDecimal)\n totalWorkHour (java.math.BigDecimal)\n numberCount (java.lang.String)\n serviceList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n partList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n businessTypeName (java.lang.String)\n creatorName (java.lang.String)\n carModel (java.lang.String)\n vin (java.lang.String)\n printCount (java.lang.String)\n serviceNum (java.lang.String)\n serviceDisCountSubTotal (java.math.BigDecimal)\n totalStuffNum (java.lang.String)\n couponFavourable (java.math.BigDecimal)\n pointFavourable (java.math.BigDecimal)\n partinfoDiscountFavourable (java.math.BigDecimal)\n naEmployee (java.lang.String)\n memo (java.lang.String)\n repairPerson (java.lang.String)\n cellPhone (java.lang.String)\n carBrandName (java.lang.String)\n orgContactMobile (java.lang.String)\n orgDetailAddress (java.lang.String)\n selfPartList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n payItemList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n extraChargeList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n stuffDisCountTotal (java.math.BigDecimal)\n selfTotalStuffNum (java.lang.String)\n czkExpense (java.math.BigDecimal)\n disCountAll (java.math.BigDecimal)\n packageFavourable (java.math.BigDecimal)\n serviceFavourable (java.math.BigDecimal)\n partinfoFavourable (java.math.BigDecimal)\n gatheringFavourable (java.math.BigDecimal)\n discountFavourable (java.math.BigDecimal)\n oweAmount (java.math.BigDecimal)\n amountReal (java.math.BigDecimal)\n printTime (java.lang.String)\n creationtime (java.lang.String)\n extraNumber (java.lang.String)\n carSeriesName (java.lang.String)\n qRCodeStr (java.lang.String)\n vipExpense (java.math.BigDecimal)\n storeLogo (java.lang.String)\n partFavourableTotal (java.math.BigDecimal)\n serviceFavourableTotal (java.math.BigDecimal)\n partFavourableCommonTotal (java.math.BigDecimal)\n serviceFavourableCommonTotal (java.math.BigDecimal)\n serviceSubtotalVip (java.math.BigDecimal)\n stuffSubtotalVip (java.math.BigDecimal)\n nextMileage (java.math.BigDecimal)\n printContent (java.lang.String)\n repairPersonContact (java.lang.String)\n payItemTogether (java.lang.String)\n payItemTogetherChinese (java.lang.String)\n printOrgName (java.lang.String)\n orgContactNumber (java.lang.String)\n maintainType (java.lang.String)\n naInsurer (java.lang.String)\n insurancepolicyNo (java.lang.String)\n balanceStatus (java.lang.String)\n czkDetailInfo (java.lang.String)\n paymentTypeDetails (java.lang.String)\n signaturePhotoUrl (java.lang.String)\n czkDiscountFavourable (java.math.BigDecimal)\n isCustomerLevelFavourable (java.lang.Integer)\n claimInsuranceList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n字段:\n serviceName (java.lang.String)\n workHour (java.math.BigDecimal)\n price (java.math.BigDecimal)\n subtotal (java.math.BigDecimal)\n serviceMemo (java.lang.String)\n discountedSubtotal (java.math.BigDecimal)\n extraPrintVo (java.lang.String)\n singleFavourable (java.math.BigDecimal)\n isMember (java.lang.Integer)\n discount (java.math.BigDecimal)\n customCode (java.lang.String)\n partName (java.lang.String)\n unit (java.lang.String)\n number (java.math.BigDecimal)\n price (java.math.BigDecimal)\n subtotal (java.math.BigDecimal)\n partBrand (java.lang.String)\n standard (java.lang.String)\n supplierCode (java.lang.String)\n discountedSubtotal (java.math.BigDecimal)\n partMemo (java.lang.String)\n isBring (java.lang.String)\n singleFavourable (java.math.BigDecimal)\n isMember (java.lang.Integer)\n discount (java.math.BigDecimal)\n payWay (java.lang.String)\n payAmount (java.math.BigDecimal)\n chinesePayAmount (java.lang.String)\n extraName (java.lang.String)\n subtotal (java.math.BigDecimal)\n memo (java.lang.String)\n naInsurer (java.lang.String)\n insurancepolicyNo (java.lang.String)\n\n\n\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n", + "metadata": { + "chunk_type": "jrxml_template", + "source_file": "F6标准结算单(壹)维保单.jrxml", + "report_name": "jiesuandan", + "kb_name": "", + "param_count": 86, + "field_count": 33 + } + }, + { + "id": "chunk_2", + "content": "[JRXML 模板: jiesuandan]\n[JRXML 模板: jiesuandan]\n页面: 595x842\n参数:\n orgName (java.lang.String)\n detailAddress (java.lang.String)\n contactNumber (java.lang.String)\n fax (java.lang.String)\n bankAccount (java.lang.String)\n email (java.lang.String)\n accountNumber (java.lang.String)\n naCustomer (java.lang.String)\n contactName (java.lang.String)\n contactCellphone (java.lang.String)\n billNo (java.lang.String)\n billDate (java.lang.String)\n mileage (java.math.BigDecimal)\n carNoWhole (java.lang.String)\n carModelShort (java.lang.String)\n deliveryTime (java.lang.String)\n serviceSubtotalAll (java.math.BigDecimal)\n stuffSubtotalAll (java.math.BigDecimal)\n extraCostTotal (java.math.BigDecimal)\n amountAll (java.math.BigDecimal)\n totalWorkHour (java.math.BigDecimal)\n numberCount (java.lang.String)\n serviceList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n partList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n businessTypeName (java.lang.String)\n creatorName (java.lang.String)\n carModel (java.lang.String)\n vin (java.lang.String)\n printCount (java.lang.String)\n serviceNum (java.lang.String)\n serviceDisCountSubTotal (java.math.BigDecimal)\n totalStuffNum (java.lang.String)\n couponFavourable (java.math.BigDecimal)\n pointFavourable (java.math.BigDecimal)\n partinfoDiscountFavourable (java.math.BigDecimal)\n naEmployee (java.lang.String)\n memo (java.lang.String)\n repairPerson (java.lang.String)\n cellPhone (java.lang.String)\n carBrandName (java.lang.String)\n orgContactMobile (java.lang.String)\n orgDetailAddress (java.lang.String)\n selfPartList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n payItemList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n extraChargeList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n stuffDisCountTotal (java.math.BigDecimal)\n selfTotalStuffNum (java.lang.String)\n czkExpense (java.math.BigDecimal)\n disCountAll (java.math.BigDecimal)\n packageFavourable (java.math.BigDecimal)\n serviceFavourable (java.math.BigDecimal)\n partinfoFavourable (java.math.BigDecimal)\n gatheringFavourable (java.math.BigDecimal)\n discountFavourable (java.math.BigDecimal)\n oweAmount (java.math.BigDecimal)\n amountReal (java.math.BigDecimal)\n printTime (java.lang.String)\n creationtime (java.lang.String)\n extraNumber (java.lang.String)\n carSeriesName (java.lang.String)\n qRCodeStr (java.lang.String)\n vipExpense (java.math.BigDecimal)\n storeLogo (java.lang.String)\n partFavourableTotal (java.math.BigDecimal)\n serviceFavourableTotal (java.math.BigDecimal)\n partFavourableCommonTotal (java.math.BigDecimal)\n serviceFavourableCommonTotal (java.math.BigDecimal)\n serviceSubtotalVip (java.math.BigDecimal)\n stuffSubtotalVip (java.math.BigDecimal)\n nextMileage (java.math.BigDecimal)\n printContent (java.lang.String)\n repairPersonContact (java.lang.String)\n payItemTogether (java.lang.String)\n payItemTogetherChinese (java.lang.String)\n printOrgName (java.lang.String)\n orgContactNumber (java.lang.String)\n maintainType (java.lang.String)\n naInsurer (java.lang.String)\n insurancepolicyNo (java.lang.String)\n balanceStatus (java.lang.String)\n czkDetailInfo (java.lang.String)\n paymentTypeDetails (java.lang.String)\n signaturePhotoUrl (java.lang.String)\n czkDiscountFavourable (java.math.BigDecimal)\n isCustomerLevelFavourable (java.lang.Integer)\n receivedAmount (java.math.BigDecimal)\n fromMaintainType (java.lang.String)\n claimInsuranceList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n字段:\n serviceName (java.lang.String)\n workHour (java.math.BigDecimal)\n price (java.math.BigDecimal)\n subtotal (java.math.BigDecimal)\n serviceMemo (java.lang.String)\n discountedSubtotal (java.math.BigDecimal)\n extraPrintVo (java.lang.String)\n singleFavourable (java.math.BigDecimal)\n isMember (java.lang.Integer)\n discount (java.math.BigDecimal)\n customCode (java.lang.String)\n partName (java.lang.String)\n unit (java.lang.String)\n number (java.math.BigDecimal)\n price (java.math.BigDecimal)\n subtotal (java.math.BigDecimal)\n partBrand (java.lang.String)\n standard (java.lang.String)\n supplierCode (java.lang.String)\n discountedSubtotal (java.math.BigDecimal)\n partMemo (java.lang.String)\n isBring (java.lang.String)\n singleFavourable (java.math.BigDecimal)\n isMember (java.lang.Integer)\n discount (java.math.BigDecimal)\n payWay (java.lang.String)\n payAmount (java.math.BigDecimal)\n chinesePayAmount (java.lang.String)\n extraName (java.lang.String)\n subtotal (java.math.BigDecimal)\n memo (java.lang.String)\n naInsurer (java.lang.String)\n insurancepolicyNo (java.lang.String)\n\n\n\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n", + "metadata": { + "chunk_type": "jrxml_template", + "source_file": "F6标准结算单(壹)附表.jrxml", + "report_name": "jiesuandan", + "kb_name": "", + "param_count": 88, + "field_count": 33 + } + }, + { + "id": "chunk_3", + "content": "[JRXML 模板: jiesuandan]\n[JRXML 模板: jiesuandan]\n页面: 595x842\n参数:\n orgName (java.lang.String)\n detailAddress (java.lang.String)\n contactNumber (java.lang.String)\n fax (java.lang.String)\n bankAccount (java.lang.String)\n email (java.lang.String)\n accountNumber (java.lang.String)\n customerName (java.lang.String)\n contactName (java.lang.String)\n contactCellphone (java.lang.String)\n billNo (java.lang.String)\n billDate (java.lang.String)\n mileage (java.math.BigDecimal)\n fullCarNo (java.lang.String)\n carModelShort (java.lang.String)\n deliveryTime (java.lang.String)\n serviceSubtotalAll (java.math.BigDecimal)\n stuffSubtotalAll (java.math.BigDecimal)\n extraCostTotal (java.math.BigDecimal)\n amountAll (java.math.BigDecimal)\n totalWorkHour (java.math.BigDecimal)\n numberCount (java.lang.String)\n serviceList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n partList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n businessTypeName (java.lang.String)\n creatorName (java.lang.String)\n carModel (java.lang.String)\n vin (java.lang.String)\n printCount (java.lang.String)\n serviceNum (java.lang.String)\n serviceDisCountSubTotal (java.math.BigDecimal)\n totalStuffNum (java.lang.String)\n couponFavourable (java.math.BigDecimal)\n pointFavourable (java.math.BigDecimal)\n partinfoDiscountFavourable (java.math.BigDecimal)\n employeeName (java.lang.String)\n memo (java.lang.String)\n repairPerson (java.lang.String)\n customerCellPhone (java.lang.String)\n carBrandName (java.lang.String)\n orgContactMobile (java.lang.String)\n orgDetailAddress (java.lang.String)\n selfPartList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n payItemList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n extraChargeList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n stuffDisCountTotal (java.math.BigDecimal)\n selfTotalStuffNum (java.lang.String)\n czkExpense (java.math.BigDecimal)\n disCountAll (java.math.BigDecimal)\n packageFavourable (java.math.BigDecimal)\n serviceFavourable (java.math.BigDecimal)\n partinfoFavourable (java.math.BigDecimal)\n gatheringFavourable (java.math.BigDecimal)\n discountFavourable (java.math.BigDecimal)\n oweAmount (java.math.BigDecimal)\n settleAmountReal (java.math.BigDecimal)\n printTime (java.lang.String)\n creationtime (java.lang.String)\n extraNumber (java.lang.String)\n carSeriesName (java.lang.String)\n qRCodeStr (java.lang.String)\n vipExpense (java.math.BigDecimal)\n storeLogo (java.lang.String)\n partFavourableTotal (java.math.BigDecimal)\n serviceFavourableTotal (java.math.BigDecimal)\n partFavourableCommonTotal (java.math.BigDecimal)\n serviceFavourableCommonTotal (java.math.BigDecimal)\n serviceVipExpense (java.math.BigDecimal)\n partVipExpense (java.math.BigDecimal)\n nextMileage (java.math.BigDecimal)\n printContent (java.lang.String)\n repairPersonContact (java.lang.String)\n payItemTogether (java.lang.String)\n payItemTogetherChinese (java.lang.String)\n printOrgName (java.lang.String)\n orgContactNumber (java.lang.String)\n maintainType (java.lang.String)\n naInsurer (java.lang.String)\n insurancepolicyNo (java.lang.String)\n balanceStatus (java.lang.String)\n czkDetailInfo (java.lang.String)\n paymentTypeDetails (java.lang.String)\n signaturePhotoUrl (java.lang.String)\n czkExpenseFavourable (java.math.BigDecimal)\n customerLevelFavourable (java.math.BigDecimal)\n centerMemberFavourable (java.math.BigDecimal)\n settleOweAmount (java.math.BigDecimal)\n字段:\n serviceName (java.lang.String)\n workHour (java.math.BigDecimal)\n price (java.math.BigDecimal)\n subtotal (java.math.BigDecimal)\n serviceMemo (java.lang.String)\n discountedSubtotal (java.math.BigDecimal)\n extraPrintVo (java.lang.String)\n singleFavourable (java.math.BigDecimal)\n isMember (java.lang.Integer)\n discount (java.math.BigDecimal)\n customCode (java.lang.String)\n partName (java.lang.String)\n unit (java.lang.String)\n number (java.math.BigDecimal)\n price (java.math.BigDecimal)\n subtotal (java.math.BigDecimal)\n partBrand (java.lang.String)\n standard (java.lang.String)\n supplierCode (java.lang.String)\n discountedSubtotal (java.math.BigDecimal)\n partMemo (java.lang.String)\n isBring (java.lang.String)\n singleFavourable (java.math.BigDecimal)\n isMember (java.lang.Integer)\n discount (java.math.BigDecimal)\n payWay (java.lang.String)\n payAmount (java.math.BigDecimal)\n chinesePayAmount (java.lang.String)\n extraName (java.lang.String)\n subtotal (java.math.BigDecimal)\n memo (java.lang.String)\n\n\n\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n", + "metadata": { + "chunk_type": "jrxml_template", + "source_file": "F6标准结算单-维保单.jrxml", + "report_name": "jiesuandan", + "kb_name": "", + "param_count": 87, + "field_count": 31 + } + }, + { + "id": "chunk_4", + "content": "[JRXML 模板: Blank_A4]\n[JRXML 模板: Blank_A4]\n页面: 595x842\n参数:\n title (java.lang.String)\n billNo (java.lang.String)\n creatorName (java.lang.String)\n printTime (java.lang.String)\n naEmployee (java.lang.String)\n billDate (java.lang.String)\n deliveryTime (java.lang.String)\n naCustomer (java.lang.String)\n carModel (java.lang.String)\n cellPhone (java.lang.String)\n carNoWhole (java.lang.String)\n vin (java.lang.String)\n serviceDetailVOList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n amountAll (java.math.BigDecimal)\n字段:\n index (java.lang.String)\n serviceName (java.lang.String)\n cooperationServiceName (java.lang.String)\n cooperationOrgName (java.lang.String)\n auditStatus (java.lang.String)\n cooperationCost (java.math.BigDecimal)\n\n\n\n\n\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n", + "metadata": { + "chunk_type": "jrxml_template", + "source_file": "协作单.jrxml", + "report_name": "Blank_A4", + "kb_name": "", + "param_count": 14, + "field_count": 6 + } + }, + { + "id": "chunk_5", + "content": "[JRXML 模板: dingjin]\n[JRXML 模板: dingjin]\n页面: 595x842\n参数:\n title (java.lang.String)\n billNO (java.lang.String)\n printTime (java.lang.String)\n customerName (java.lang.String)\n cellPhone (java.lang.String)\n carNo (java.lang.String)\n orgName (java.lang.String)\n amountAll (java.math.BigDecimal)\n memo (java.lang.String)\n settlePerson (java.lang.String)\n employeeName (java.lang.String)\n billDate (java.lang.String)\n detailAddress (java.lang.String)\n contactMobile (java.lang.String)\n gatheringList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n transactionDate (java.lang.String)\n naServicePerson (java.lang.String)\n relationServices (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n relationParts (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n balanceStatus (java.lang.String)\n字段:\n index (java.lang.String)\n paymentType (java.lang.String)\n amount (java.math.BigDecimal)\n infoName (java.lang.String)\n labelName (java.lang.String)\n\n\n\n\n\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n", + "metadata": { + "chunk_type": "jrxml_template", + "source_file": "定金收款单.jrxml", + "report_name": "dingjin", + "kb_name": "", + "param_count": 20, + "field_count": 5 + } + }, + { + "id": "chunk_6", + "content": "[JRXML 模板: Blank_A4]\n[JRXML 模板: Blank_A4]\n页面: 223x842\n参数:\n title (java.lang.String)\n abbreviation (java.lang.String)\n billNO (java.lang.String)\n printTime (java.lang.String)\n customerName (java.lang.String)\n cellPhone (java.lang.String)\n carNo (java.lang.String)\n orgName (java.lang.String)\n amountAll (java.math.BigDecimal)\n memo (java.lang.String)\n settlePerson (java.lang.String)\n employeeName (java.lang.String)\n billDate (java.lang.String)\n detailAddress (java.lang.String)\n contactMobile (java.lang.String)\n gatheringList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n transactionDate (java.lang.String)\n naServicePerson (java.lang.String)\n relationServices (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n relationParts (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n balanceStatus (java.lang.String)\n字段:\n paymentType (java.lang.String)\n amount (java.math.BigDecimal)\n infoName (java.lang.String)\n labelName (java.lang.String)\n\n\n\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n", + "metadata": { + "chunk_type": "jrxml_template", + "source_file": "定金收款小票.jrxml", + "report_name": "Blank_A4", + "kb_name": "", + "param_count": 21, + "field_count": 4 + } + }, + { + "id": "chunk_7", + "content": "[JRXML 模板: tkd]\n[JRXML 模板: tkd]\n页面: 136x792\n参数:\n partList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n billNo (java.lang.String)\n abbreviation (java.lang.String)\n modifiedtime (java.lang.String)\n customerName (java.lang.String)\n cars (java.lang.String)\n endDate (java.lang.String)\n memberCardNo (java.lang.String)\n cardName (java.lang.String)\n billType (java.lang.String)\n num (java.lang.Integer)\n amount (java.math.BigDecimal)\n favourable (java.math.BigDecimal)\n receivable (java.math.BigDecimal)\n memo (java.lang.String)\n printOrg (java.lang.String)\n printDate (java.lang.String)\n signUrl (java.lang.String)\n employeeName (java.lang.String)\n serviceList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n packageList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n balanceStatus (java.lang.String)\n cardType (java.lang.String)\n checkoutStr (java.lang.String)\n permanent (java.lang.Integer)\n cardAmount (java.math.BigDecimal)\n realAmount (java.math.BigDecimal)\n字段:\n seq (java.lang.Integer)\n name (java.lang.String)\n num (java.lang.Integer)\n infiniteFlag (java.lang.Integer)\n seq (java.lang.Integer)\n name (java.lang.String)\n num (java.math.BigDecimal)\n seq (java.lang.Integer)\n name (java.lang.String)\n num (java.lang.Integer)\n\n\n\n\n\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n", + "metadata": { + "chunk_type": "jrxml_template", + "source_file": "开卡单.jrxml", + "report_name": "tkd", + "kb_name": "", + "param_count": 27, + "field_count": 10 + } + }, + { + "id": "chunk_8", + "content": "[JRXML 模板: jiesuandan]\n[JRXML 模板: jiesuandan]\n页面: 595x842\n参数:\n orgName (java.lang.String)\n gatheringTime (java.lang.String)\n title (java.lang.String)\n printTime (java.lang.String)\n rowList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n column1 (java.lang.String)\n column2 (java.lang.String)\n column3 (java.lang.String)\n column4 (java.lang.String)\n column5 (java.lang.String)\n column6 (java.lang.String)\n column7 (java.lang.String)\n column8 (java.lang.String)\n column9 (java.lang.String)\n column10 (java.lang.String)\n column11 (java.lang.String)\n column12 (java.lang.String)\n column13 (java.lang.String)\n字段:\n row1 (java.lang.String)\n row2 (java.lang.String)\n row3 (java.lang.String)\n row4 (java.lang.String)\n row5 (java.lang.String)\n row6 (java.lang.String)\n row7 (java.lang.String)\n row8 (java.lang.String)\n row9 (java.lang.String)\n row10 (java.lang.String)\n row11 (java.lang.String)\n row12 (java.lang.String)\n row13 (java.lang.String)\n row14 (java.lang.String)\n\n\n\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n", + "metadata": { + "chunk_type": "jrxml_template", + "source_file": "收款日报表打印.jrxml", + "report_name": "jiesuandan", + "kb_name": "", + "param_count": 18, + "field_count": 14 + } + }, + { + "id": "chunk_9", + "content": "[JRXML 模板: checkedQuotation]\n[JRXML 模板: checkedQuotation]\n页面: 595x842\n参数:\n title (java.lang.String)\n billNo (java.lang.String)\n maintainBillNo (java.lang.String)\n printTime (java.lang.String)\n naEmployee (java.lang.String)\n billDate (java.lang.String)\n deliveryTime (java.lang.String)\n naCustomer (java.lang.String)\n carModel (java.lang.String)\n cellPhone (java.lang.String)\n carNoWhole (java.lang.String)\n vin (java.lang.String)\n repairPerson (java.lang.String)\n mileage (java.lang.String)\n oilCapacity (java.lang.String)\n repairPersonContact (java.lang.String)\n nextMileage (java.lang.String)\n nextMaintainDate (java.lang.String)\n customerMemo (java.lang.String)\n merchantAddress (java.lang.String)\n merchantPhone (java.lang.String)\n qrCode (java.lang.String)\n icon (java.lang.String)\n sign (java.lang.String)\n warningLightItemList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n personalCheckInfoList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n computerCheckInfoList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n showWarningLightItem (java.lang.Boolean)\n showComputerCheckInfo (java.lang.Boolean)\n showPersonalCheckInfo (java.lang.Boolean)\n serviceDetailVOList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n stuffDetailVOList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n serviceSubtotalAll (java.math.BigDecimal)\n stuffSubtotalAll (java.math.BigDecimal)\n numberSub (java.math.BigDecimal)\n warningLightBrightItemUrls (java.lang.String)\n字段:\n index (java.lang.String)\n itemComponent (java.lang.String)\n memo (java.lang.String)\n childList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n itemName (java.lang.String)\n itemResults (java.lang.String)\n optionNameS (java.lang.String)\n optionNameE (java.lang.String)\n optionNameU (java.lang.String)\n index (java.lang.String)\n errorCode (java.lang.String)\n itemName (java.lang.String)\n optionNameS (java.lang.String)\n optionNameE (java.lang.String)\n optionNameU (java.lang.String)\n memo (java.lang.String)\n warningIconCode (java.lang.String)\n index (java.lang.String)\n serviceName (java.lang.String)\n workHourPrice (java.math.BigDecimal)\n index (java.lang.String)\n partStanardName (java.lang.String)\n unit (java.lang.String)\n number (java.math.BigDecimal)\n price (java.math.BigDecimal)\n amount (java.math.BigDecimal)\n\n\n\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t 26 ? $P{carModel}.substring( 0,26 )+\"...\" :$P{carModel}]]>\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t 26 ? $P{customerMemo}.substring( 0,26 )+\"...\" :$P{customerMemo}]]>\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t7]]>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t7]]>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t7]]>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t7]]>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t7]]>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t7]]>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t7]]>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t 13*$F{childList}.getData().size() ? $F{memo}.substring( 0,13*$F{childList}.getData().size() )+\"...\" :$F{memo}]]>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t 14 ? $F{memo}.substring( 0,14 )+\"...\" :$F{memo}]]>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t0]]>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t0]]>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t0]]>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t0]]>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n", + "metadata": { + "chunk_type": "jrxml_template", + "source_file": "检测估算单.jrxml", + "report_name": "checkedQuotation", + "kb_name": "", + "param_count": 36, + "field_count": 26 + } + }, + { + "id": "chunk_10", + "content": "[JRXML 模板: jiesuandan]\n[JRXML 模板: jiesuandan]\n页面: 595x842\n参数:\n orgName (java.lang.String)\n detailAddress (java.lang.String)\n contactNumber (java.lang.String)\n fax (java.lang.String)\n bankAccount (java.lang.String)\n email (java.lang.String)\n accountNumber (java.lang.String)\n naCustomer (java.lang.String)\n contactName (java.lang.String)\n contactCellphone (java.lang.String)\n billNo (java.lang.String)\n billDate (java.lang.String)\n mileage (java.math.BigDecimal)\n carNoWhole (java.lang.String)\n carModelShort (java.lang.String)\n deliveryTime (java.lang.String)\n serviceSubtotalAll (java.math.BigDecimal)\n stuffSubtotalAll (java.math.BigDecimal)\n extraCostTotal (java.math.BigDecimal)\n amountAll (java.math.BigDecimal)\n totalWorkHour (java.math.BigDecimal)\n numberCount (java.lang.String)\n serviceList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n businessTypeName (java.lang.String)\n creatorName (java.lang.String)\n carModel (java.lang.String)\n vin (java.lang.String)\n printCount (java.lang.String)\n serviceNum (java.lang.String)\n serviceDisCountSubTotal (java.math.BigDecimal)\n totalStuffNum (java.lang.String)\n couponFavourable (java.math.BigDecimal)\n pointFavourable (java.math.BigDecimal)\n partinfoDiscountFavourable (java.math.BigDecimal)\n naEmployee (java.lang.String)\n memo (java.lang.String)\n repairPerson (java.lang.String)\n cellPhone (java.lang.String)\n carBrandName (java.lang.String)\n orgContactMobile (java.lang.String)\n orgDetailAddress (java.lang.String)\n payItemList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n extraChargeList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n stuffDisCountTotal (java.math.BigDecimal)\n selfTotalStuffNum (java.lang.String)\n czkExpense (java.math.BigDecimal)\n disCountAll (java.math.BigDecimal)\n packageFavourable (java.math.BigDecimal)\n serviceFavourable (java.math.BigDecimal)\n partinfoFavourable (java.math.BigDecimal)\n gatheringFavourable (java.math.BigDecimal)\n discountFavourable (java.math.BigDecimal)\n oweAmount (java.math.BigDecimal)\n amountReal (java.math.BigDecimal)\n printTime (java.lang.String)\n creationtime (java.lang.String)\n extraNumber (java.lang.String)\n carSeriesName (java.lang.String)\n qRCodeStr (java.lang.String)\n vipExpense (java.math.BigDecimal)\n storeLogo (java.lang.String)\n partFavourableTotal (java.math.BigDecimal)\n serviceFavourableTotal (java.math.BigDecimal)\n partFavourableCommonTotal (java.math.BigDecimal)\n serviceFavourableCommonTotal (java.math.BigDecimal)\n serviceSubtotalVip (java.math.BigDecimal)\n stuffSubtotalVip (java.math.BigDecimal)\n nextMileage (java.math.BigDecimal)\n printContent (java.lang.String)\n repairPersonContact (java.lang.String)\n payItemTogether (java.lang.String)\n payItemTogetherChinese (java.lang.String)\n printOrgName (java.lang.String)\n orgContactNumber (java.lang.String)\n maintainType (java.lang.String)\n naInsurer (java.lang.String)\n insurancepolicyNo (java.lang.String)\n balanceStatus (java.lang.String)\n memberCardNo (java.lang.String)\n czkDetailInfo (java.lang.String)\n settleReceivedAmoutChinese (java.lang.String)\n settleOweAmoutChinese (java.lang.String)\n字段:\n serviceName (java.lang.String)\n workHour (java.math.BigDecimal)\n price (java.math.BigDecimal)\n subtotal (java.math.BigDecimal)\n serviceMemo (java.lang.String)\n discountedSubtotal (java.math.BigDecimal)\n extraPrintVo (java.lang.String)\n singleFavourable (java.math.BigDecimal)\n isMember (java.lang.Integer)\n discount (java.math.BigDecimal)\n empNameStr (java.lang.String)\n infiniteFlag (java.lang.Integer)\n unusedNumber (java.lang.Integer)\n number (java.lang.Integer)\n\n\n\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n", + "metadata": { + "chunk_type": "jrxml_template", + "source_file": "洗车单.jrxml", + "report_name": "jiesuandan", + "kb_name": "", + "param_count": 82, + "field_count": 14 + } + }, + { + "id": "chunk_11", + "content": "[JRXML 模板: carWash]\n[JRXML 模板: carWash]\n页面: 136x842\n参数:\n orgName (java.lang.String)\n detailAddress (java.lang.String)\n contactNumber (java.lang.String)\n fax (java.lang.String)\n bankAccount (java.lang.String)\n email (java.lang.String)\n accountNumber (java.lang.String)\n naCustomer (java.lang.String)\n contactName (java.lang.String)\n contactCellphone (java.lang.String)\n billNo (java.lang.String)\n billDate (java.lang.String)\n mileage (java.math.BigDecimal)\n carNoWhole (java.lang.String)\n carModelShort (java.lang.String)\n deliveryTime (java.lang.String)\n serviceSubtotalAll (java.math.BigDecimal)\n stuffSubtotalAll (java.math.BigDecimal)\n extraCostTotal (java.math.BigDecimal)\n amountAll (java.math.BigDecimal)\n totalWorkHour (java.math.BigDecimal)\n numberCount (java.lang.String)\n serviceList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n partList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n businessTypeName (java.lang.String)\n creatorName (java.lang.String)\n carModel (java.lang.String)\n vin (java.lang.String)\n printCount (java.lang.String)\n serviceNum (java.lang.String)\n serviceDisCountSubTotal (java.math.BigDecimal)\n totalStuffNum (java.lang.String)\n couponFavourable (java.math.BigDecimal)\n pointFavourable (java.math.BigDecimal)\n partinfoDiscountFavourable (java.math.BigDecimal)\n naEmployee (java.lang.String)\n memo (java.lang.String)\n repairPerson (java.lang.String)\n cellPhone (java.lang.String)\n carBrandName (java.lang.String)\n orgContactMobile (java.lang.String)\n orgDetailAddress (java.lang.String)\n selfPartList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n payItemList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n extraChargeList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n stuffDisCountTotal (java.math.BigDecimal)\n selfTotalStuffNum (java.lang.String)\n czkExpense (java.math.BigDecimal)\n disCountAll (java.math.BigDecimal)\n packageFavourable (java.math.BigDecimal)\n serviceFavourable (java.math.BigDecimal)\n partinfoFavourable (java.math.BigDecimal)\n gatheringFavourable (java.math.BigDecimal)\n discountFavourable (java.math.BigDecimal)\n oweAmount (java.math.BigDecimal)\n amountReal (java.math.BigDecimal)\n printTime (java.lang.String)\n creationtime (java.lang.String)\n extraNumber (java.lang.String)\n carSeriesName (java.lang.String)\n qRCodeStr (java.lang.String)\n vipExpense (java.math.BigDecimal)\n storeLogo (java.lang.String)\n partFavourableTotal (java.math.BigDecimal)\n serviceFavourableTotal (java.math.BigDecimal)\n partFavourableCommonTotal (java.math.BigDecimal)\n serviceFavourableCommonTotal (java.math.BigDecimal)\n serviceSubtotalVip (java.math.BigDecimal)\n stuffSubtotalVip (java.math.BigDecimal)\n nextMileage (java.math.BigDecimal)\n printContent (java.lang.String)\n repairPersonContact (java.lang.String)\n payItemTogether (java.lang.String)\n payItemTogetherChinese (java.lang.String)\n printOrgName (java.lang.String)\n orgContactNumber (java.lang.String)\n balanceStatus (java.lang.String)\n receiptAmount (java.math.BigDecimal)\n stubPrintFlag (java.lang.String)\n stubServiceList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n czkDetailInfo (java.lang.String)\n字段:\n serviceName (java.lang.String)\n workHour (java.math.BigDecimal)\n leftCount (java.math.BigDecimal)\n unusedNumber (java.lang.Integer)\n number (java.lang.Integer)\n subtotal (java.math.BigDecimal)\n empNameStr (java.lang.String)\n serviceName (java.lang.String)\n workHour (java.math.BigDecimal)\n leftCount (java.math.BigDecimal)\n unusedNumber (java.lang.Integer)\n number (java.lang.Integer)\n subtotal (java.math.BigDecimal)\n customCode (java.lang.String)\n partName (java.lang.String)\n unit (java.lang.String)\n number (java.math.BigDecimal)\n price (java.math.BigDecimal)\n subtotal (java.math.BigDecimal)\n partBrand (java.lang.String)\n standard (java.lang.String)\n supplierCode (java.lang.String)\n discountedSubtotal (java.math.BigDecimal)\n partMemo (java.lang.String)\n isBring (java.lang.String)\n singleFavourable (java.math.BigDecimal)\n isMember (java.lang.Integer)\n discount (java.math.BigDecimal)\n spec (java.lang.String)\n payWay (java.lang.String)\n payAmount (java.math.BigDecimal)\n chinesePayAmount (java.lang.String)\n extraName (java.lang.String)\n subtotal (java.math.BigDecimal)\n memo (java.lang.String)\n serviceName (java.lang.String)\n workHour (java.math.BigDecimal)\n leftCount (java.math.BigDecimal)\n unusedNumber (java.lang.Integer)\n number (java.lang.Integer)\n subtotal (java.math.BigDecimal)\n serviceName (java.lang.String)\n workHour (java.math.BigDecimal)\n leftCount (java.math.BigDecimal)\n unusedNumber (java.lang.Integer)\n number (java.lang.Integer)\n subtotal (java.math.BigDecimal)\n\n\n\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t 10 ? 10 : $P{naCustomer}.length(), $P{naCustomer}.length())]]>\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t 7 ? 7 : $P{cellPhone}.length(), $P{cellPhone}.length())]]>\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t 0 ? $F{serviceName}.replaceAll(\"卡消费\",$F{empNameStr}): $F{serviceName}+\"(\"+$F{empNameStr}+\")\"]]>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n", + "metadata": { + "chunk_type": "jrxml_template", + "source_file": "洗车单小票.jrxml", + "report_name": "carWash", + "kb_name": "", + "param_count": 81, + "field_count": 47 + } + }, + { + "id": "chunk_12", + "content": "[JRXML 模板: Blank_A4]\n[JRXML 模板: Blank_A4]\n页面: 595x842\n参数:\n billNo (java.lang.String)\n tradingOrgName (java.lang.String)\n tradingDate (java.lang.String)\n customerName (java.lang.String)\n carNo (java.lang.String)\n employeeName (java.lang.String)\n cardName (java.lang.String)\n memberCardNo (java.lang.String)\n cardEndDate (java.lang.String)\n tradingAmount (java.lang.String)\n amount (java.lang.String)\n remark (java.lang.String)\n orgOfPrinting (java.lang.String)\n dateOfPrinting (java.lang.String)\n字段:\n index (java.lang.String)\n serviceName (java.lang.String)\n cooperationServiceName (java.lang.String)\n cooperationOrgName (java.lang.String)\n auditStatus (java.lang.String)\n cooperationCost (java.math.BigDecimal)\n\n\n\n\n\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n", + "metadata": { + "chunk_type": "jrxml_template", + "source_file": "消费单.jrxml", + "report_name": "Blank_A4", + "kb_name": "", + "param_count": 14, + "field_count": 6 + } + }, + { + "id": "chunk_13", + "content": "[JRXML 模板: Blank_A4]\n[JRXML 模板: Blank_A4]\n页面: 595x842\n参数:\n tradingStoreName (java.lang.String)\n tradingTime (java.lang.String)\n idSource (java.lang.String)\n cardName (java.lang.String)\n memberNo (java.lang.String)\n noCar (java.lang.String)\n customerName (java.lang.String)\n paymentTypeAndAmount (java.lang.String)\n orgOfPrinting (java.lang.String)\n dateOfPrinting (java.lang.String)\n amount (java.lang.String)\n字段:\n index (java.lang.String)\n serviceName (java.lang.String)\n cooperationServiceName (java.lang.String)\n cooperationOrgName (java.lang.String)\n auditStatus (java.lang.String)\n cooperationCost (java.math.BigDecimal)\n\n\n\n\n\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\n\t\n\n\n", + "metadata": { + "chunk_type": "jrxml_template", + "source_file": "退卡单.jrxml", + "report_name": "Blank_A4", + "kb_name": "", + "param_count": 11, + "field_count": 6 + } + }, + { + "id": "chunk_14", + "content": "[JRXML 模板: stockInPrint]\n[JRXML 模板: stockInPrint]\n页面: 595x842\n参数:\n sortNumber (java.lang.String)\n price (java.math.BigDecimal)\n subtotal (java.math.BigDecimal)\n serviceName (java.lang.String)\n labelName (java.lang.String)\n workHour (java.math.BigDecimal)\n sortNumber (java.lang.String)\n partName (java.lang.String)\n number (java.math.BigDecimal)\n unit (java.lang.String)\n price (java.math.BigDecimal)\n subtotal (java.math.BigDecimal)\n sortNumber (java.lang.String)\n extraName (java.lang.String)\n subtotal (java.math.BigDecimal)\n sortNumber (java.lang.String)\n subtotal (java.math.BigDecimal)\n wayName (java.lang.String)\n title (java.lang.String)\n billNo (java.lang.String)\n billStatus (java.lang.String)\n creatorName (java.lang.String)\n sortNumber (java.lang.String)\n partName (java.lang.String)\n storageName (java.lang.String)\n number (java.lang.String)\n employeeName (java.lang.String)\n sumNumber (java.lang.String)\n saleReturnPartList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n fromMaintainNo (java.lang.String)\n naCustomer (java.lang.String)\n cellPhone (java.lang.String)\n repairPerson (java.lang.String)\n repairPersonContact (java.lang.String)\n carNoWhole (java.lang.String)\n vin (java.lang.String)\n carModel (java.lang.String)\n detailAddress (java.lang.String)\n contactMobile (java.lang.String)\n contactNumber (java.lang.String)\n contactName (java.lang.String)\n contactCellphone (java.lang.String)\n serviceSubtotalAll (java.math.BigDecimal)\n stuffSubtotalAll (java.math.BigDecimal)\n saleReturnServiceList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n saleReturnExtraList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n saleReturnWayList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n totalWorkHour (java.math.BigDecimal)\n totalStuffNum (java.math.BigDecimal)\n extraCostTotal (java.math.BigDecimal)\n returnWayTotal (java.math.BigDecimal)\n printCount (java.lang.String)\n serviceMobile (java.lang.String)\n字段:\n sortNumber (java.lang.String)\n price (java.math.BigDecimal)\n subtotal (java.math.BigDecimal)\n serviceName (java.lang.String)\n labelName (java.lang.String)\n workHour (java.math.BigDecimal)\n sortNumber (java.lang.String)\n partName (java.lang.String)\n number (java.math.BigDecimal)\n unit (java.lang.String)\n price (java.math.BigDecimal)\n subtotal (java.math.BigDecimal)\n sortNumber (java.lang.String)\n subtotal (java.math.BigDecimal)\n extraName (java.lang.String)\n sortNumber (java.lang.String)\n subtotal (java.math.BigDecimal)\n wayName (java.lang.String)\n Field_1 (java.lang.String)\n\n\n\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n", + "metadata": { + "chunk_type": "jrxml_template", + "source_file": "退货单.jrxml", + "report_name": "stockInPrint", + "kb_name": "", + "param_count": 53, + "field_count": 19 + } + }, + { + "id": "chunk_15", + "content": "[JRXML 模板: jiesuandan]\n[JRXML 模板: jiesuandan]\n页面: 595x842\n参数:\n orgName (java.lang.String)\n detailAddress (java.lang.String)\n contactNumber (java.lang.String)\n fax (java.lang.String)\n bankAccount (java.lang.String)\n email (java.lang.String)\n accountNumber (java.lang.String)\n naCustomer (java.lang.String)\n contactName (java.lang.String)\n contactCellphone (java.lang.String)\n billNo (java.lang.String)\n billDate (java.lang.String)\n mileage (java.math.BigDecimal)\n carNoWhole (java.lang.String)\n carModelShort (java.lang.String)\n deliveryTime (java.lang.String)\n serviceSubtotalAll (java.math.BigDecimal)\n stuffSubtotalAll (java.math.BigDecimal)\n extraCostTotal (java.math.BigDecimal)\n amountAll (java.math.BigDecimal)\n totalWorkHour (java.math.BigDecimal)\n numberCount (java.lang.String)\n serviceList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n partList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n businessTypeName (java.lang.String)\n creatorName (java.lang.String)\n carModel (java.lang.String)\n vin (java.lang.String)\n printCount (java.lang.String)\n serviceNum (java.lang.String)\n serviceDisCountSubTotal (java.math.BigDecimal)\n totalStuffNum (java.lang.String)\n couponFavourable (java.math.BigDecimal)\n pointFavourable (java.math.BigDecimal)\n partinfoDiscountFavourable (java.math.BigDecimal)\n naEmployee (java.lang.String)\n memo (java.lang.String)\n repairPerson (java.lang.String)\n cellPhone (java.lang.String)\n carBrandName (java.lang.String)\n orgContactMobile (java.lang.String)\n orgDetailAddress (java.lang.String)\n selfPartList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n payItemList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n extraChargeList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n stuffDisCountTotal (java.math.BigDecimal)\n selfTotalStuffNum (java.lang.String)\n czkExpense (java.math.BigDecimal)\n disCountAll (java.math.BigDecimal)\n packageFavourable (java.math.BigDecimal)\n serviceFavourable (java.math.BigDecimal)\n partinfoFavourable (java.math.BigDecimal)\n gatheringFavourable (java.math.BigDecimal)\n discountFavourable (java.math.BigDecimal)\n oweAmount (java.math.BigDecimal)\n amountReal (java.math.BigDecimal)\n printTime (java.lang.String)\n creationtime (java.lang.String)\n extraNumber (java.lang.String)\n carSeriesName (java.lang.String)\n qRCodeStr (java.lang.String)\n vipExpense (java.math.BigDecimal)\n storeLogo (java.lang.String)\n partFavourableTotal (java.math.BigDecimal)\n serviceFavourableTotal (java.math.BigDecimal)\n partFavourableCommonTotal (java.math.BigDecimal)\n serviceFavourableCommonTotal (java.math.BigDecimal)\n serviceSubtotalVip (java.math.BigDecimal)\n stuffSubtotalVip (java.math.BigDecimal)\n nextMileage (java.math.BigDecimal)\n printContent (java.lang.String)\n repairPersonContact (java.lang.String)\n payItemTogether (java.lang.String)\n payItemTogetherChinese (java.lang.String)\n printOrgName (java.lang.String)\n orgContactNumber (java.lang.String)\n maintainType (java.lang.String)\n naInsurer (java.lang.String)\n insurancepolicyNo (java.lang.String)\n balanceStatus (java.lang.String)\n czkDetailInfo (java.lang.String)\n receiptAmount (java.math.BigDecimal)\n settleReceivedAmoutChinese (java.lang.String)\n settleOweAmoutChinese (java.lang.String)\n字段:\n serviceName (java.lang.String)\n workHour (java.math.BigDecimal)\n price (java.math.BigDecimal)\n subtotal (java.math.BigDecimal)\n serviceMemo (java.lang.String)\n discountedSubtotal (java.math.BigDecimal)\n extraPrintVo (java.lang.String)\n singleFavourable (java.math.BigDecimal)\n isMember (java.lang.Integer)\n discount (java.math.BigDecimal)\n customCode (java.lang.String)\n partName (java.lang.String)\n unit (java.lang.String)\n number (java.math.BigDecimal)\n price (java.math.BigDecimal)\n subtotal (java.math.BigDecimal)\n partBrand (java.lang.String)\n spec (java.lang.String)\n supplierCode (java.lang.String)\n discountedSubtotal (java.math.BigDecimal)\n partMemo (java.lang.String)\n isBring (java.lang.String)\n singleFavourable (java.math.BigDecimal)\n isMember (java.lang.Integer)\n discount (java.math.BigDecimal)\n partCustomCode (java.lang.String)\n standard (java.lang.String)\n cargoSpace (java.lang.String)\n outStockEmployeeName (java.lang.String)\n standa (java.lang.String)\n payWay (java.lang.String)\n payAmount (java.math.BigDecimal)\n chinesePayAmount (java.lang.String)\n extraName (java.lang.String)\n subtotal (java.math.BigDecimal)\n memo (java.lang.String)\n\n\n\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n", + "metadata": { + "chunk_type": "jrxml_template", + "source_file": "销售单.jrxml", + "report_name": "jiesuandan", + "kb_name": "", + "param_count": 84, + "field_count": 36 + } + }, + { + "id": "chunk_16", + "content": "[JRXML 模板: Blank_A4]\n[JRXML 模板: Blank_A4]\n页面: 222x352\n参数:\n title (java.lang.String)\n abbreviation (java.lang.String)\n billNo (java.lang.String)\n printTime (java.lang.String)\n customerName (java.lang.String)\n cellPhone (java.lang.String)\n carNo (java.lang.String)\n orgName (java.lang.String)\n amountAll (java.math.BigDecimal)\n memo (java.lang.String)\n settlePerson (java.lang.String)\n employeeName (java.lang.String)\n billDate (java.lang.String)\n detailAddress (java.lang.String)\n contactMobile (java.lang.String)\n partList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n transactionDate (java.lang.String)\n naEmployee (java.lang.String)\n mileage (java.math.BigDecimal)\n deliveryTime (java.lang.String)\n vin (java.lang.String)\n carNoWhole (java.lang.String)\n naCustomer (java.lang.String)\n carModelShort (java.lang.String)\n vipExpense (java.math.BigDecimal)\n serviceFavourable (java.math.BigDecimal)\n partFavourableCommonTotal (java.math.BigDecimal)\n oweAmount (java.math.BigDecimal)\n serviceFavourableCommonTotal (java.math.BigDecimal)\n czkExpense (java.math.BigDecimal)\n partinfoFavourable (java.math.BigDecimal)\n discountFavourable (java.math.BigDecimal)\n pointFavourable (java.math.BigDecimal)\n couponFavourable (java.math.BigDecimal)\n balanceStatus (java.lang.String)\n gatheringFavourable (java.math.BigDecimal)\n payItemTogether (java.lang.String)\n orgContactMobile (java.lang.String)\n orgDetailAddress (java.lang.String)\n printOrgName (java.lang.String)\n serviceList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n firstSettlementTime (java.lang.String)\n extraCostTotal (java.math.BigDecimal)\n extraChargeList (net.sf.jasperreports.engine.data.JRMapCollectionDataSource)\n orgContactNumber (java.lang.String)\n czkDetailInfo (java.lang.String)\n creatorName (java.lang.String)\n totalStuffNum (java.lang.String)\n stuffSubtotalAll (java.math.BigDecimal)\n stuffSubtotalVip (java.math.BigDecimal)\n字段:\n subtotal (java.math.BigDecimal)\n serviceName (java.lang.String)\n unusedNumber (java.lang.Integer)\n number (java.lang.Integer)\n isMember (java.lang.Integer)\n partName (java.lang.String)\n number (java.math.BigDecimal)\n subtotal (java.math.BigDecimal)\n isMember (java.lang.Integer)\n\n\n\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t 10 ? 10 : $P{naCustomer}.length(), $P{naCustomer}.length())]]>\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t 7 ? 7 : $P{cellPhone}.length(), $P{cellPhone}.length())]]>\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n", + "metadata": { + "chunk_type": "jrxml_template", + "source_file": "销售单小票.jrxml", + "report_name": "Blank_A4", + "kb_name": "", + "param_count": 50, + "field_count": 9 + } + }, + { + "id": "chunk_17", + "content": "# F6 打印单说明知识库", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_18", + "content": "> 来源:`C:\\Users\\hp_z66\\Desktop\\Jaspersoft Studio\\workbuddy-jaspersoft` 目录下 15 个 md 文件整合\n> 整合日期:2026-04-22", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_19", + "content": "1. [打印单定制介绍](#1-打印单定制介绍)\n2. [工具与环境](#2-工具与环境)\n3. [模板修改流程](#3-模板修改流程)\n4. [常见编辑操作](#4-常见编辑操作)\n5. [语法介绍](#5-语法介绍)\n6. [高级语法与工具类](#6-高级语法与工具类)\n7. [保存与输出](#7-保存与输出)\n8. [后台配置与命名规范](#8-后台配置与命名规范)\n9. [常见打印分类及通用模板](#9-常见打印分类及通用模板)\n10. [各打印单接口参数文档](#10-各打印单接口参数文档)\n - 10.1 工单结算单\n - 10.2 新版附表\n - 10.3 结算单(指定内容)\n - 10.4 委托单\n - 10.5 协作单\n - 10.6 增项单\n - 10.7 保险单\n - 10.8 定金单\n - 10.9 报价单\n - 10.10 检测单\n - 10.11 出/入库单据\n - 10.12 调拨单\n - 10.13 材料标签\n - 10.14 采购单/采购退货单", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_20", + "content": "## 1. 打印单定制介绍", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_21", + "content": "F6 系统的打印单基于 **TIBCO Jaspersoft Studio** 模板引擎,使用 `.jrxml`(源码)和 `.jasper`(编译后)文件。打印数据由后端接口传入模板参数,模板通过 `$P{}` / `$F{}` 表达式渲染。", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_22", + "content": "| 名称 | 地址 |\n|------|------|\n| 打印单后台 | http://print.f6yc.com/print-server/ui/index.html#/template/classification |\n| 打印单模板样式 | https://xcz.yuque.com/ombipo/rpc7ms/fbd6ay?singleDoc# |\n| 打印单参数表 | https://xcz.yuque.com/ombipo/rpc7ms/ro5fs1?singleDoc# |\n| 简易开发教程 | https://alidocs.dingtalk.com/i/nodes/dQPGYqjpJYgZGbvbCdEKGDGZWakx1Z5N |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_23", + "content": "## 2. 工具与环境", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_24", + "content": "| 项目 | 说明 |\n|------|------|\n| 编辑工具 | TIBCO Jaspersoft Studio |\n| **默认版本** | Jaspersoft 6.3.1 + JDK 1.6 |\n| **可选版本** | Jaspersoft 6.8 + JDK 1.8(用户可指定) |\n| WIN 下载 | 钉钉附件《Jaspersoft Studio-6.3.1.final.rar》 |\n| MAC 下载 | 钉钉附件《TIBCOJaspersoftStudio-6.3.1.final-mac-x86_64.zip》 |\n| 工具类 JAR | print-core-1.0.7.jar(金额转大写、日期转换) |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_25", + "content": "> **版本说明**:默认使用 Jaspersoft 6.3.1 + JDK 1.6。如需使用 JDK 1.8 语法(如 stream API 从 List 中取特定值),需指定使用 Jaspersoft 6.8 + JDK 1.8 版本。", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_26", + "content": "## 3. 模板修改流程", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_27", + "content": "1. **下载模板**:在打印单后台通过模板名称查询并下载 `.jrxml` 文件\n2. **打开编辑**:Jaspersoft Studio → File → Open File → 选择模板\n3. **编辑模板**:增减组件、调整参数、修改样式\n4. **格式预览**:工具内只能预览样式,参数判断需上传到门店后实际打印预览\n5. **保存输出**:保存 `.jrxml` → Compile Report 生成 `.jasper` → Export 到桌面\n6. **后台配置**:上传模板、配置门店生效", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_28", + "content": "## 4. 常见编辑操作", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_29", + "content": "### 4.1 新增静态文本", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_30", + "content": "1. 从 Palette 拖拽 Static Text 组件到模板\n2. 双击编辑显示文本\n3. 调整组件大小和位置参数", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_31", + "content": "### 4.2 新增动态字段(如展示工单号)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_32", + "content": "1. 在参数表中搜索参数名称和类型(如 `billNo`,类型 `java.lang.String`)\n2. 拖拽 Text Field 组件到模板\n3. 双击写入公式:`$P{参数名称}`\n4. 若提示 \"The current expression is not valid\":\n - 说明参数未预设,需手动创建\n - Outline → Parameters(右键)→ Create Parameter\n - 设置 Name(参数名)和 Class(数字:`java.math.BigDecimal`,文本:`java.lang.String`)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_33", + "content": "### 4.3 列表中增减字段(如项目列表、材料列表)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_34", + "content": "1. 确认参数所属列表(如 `partName` 属于 `partList`)\n2. 双击列表进入编辑页面\n3. 列表内参数固定写法:`$F{参数名称}`(注意不是 `$P{}`)\n4. 列表内只能使用所属列表下的参数,不可跨列表引用\n5. 未预设参数需在列表编辑页面内新增 Field", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_35", + "content": "### 4.4 新增边框和样式", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_36", + "content": "- 选择组件 → Properties → Borders 编辑", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_37", + "content": "## 5. 语法介绍", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_38", + "content": "### 5.1 基础语法", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_39", + "content": "| 用途 | 语法 | 示例 |\n|------|------|------|\n| 文本拼接参数 | `$P{参数}+\"文本\"` | `$P{printOrgName}+\"结算单\"` |\n| 保留小数 | `$P{参数}.setScale(位数, BigDecimal.ROUND_DOWN)` | `$P{stuffSubtotalAll}.setScale(2, BigDecimal.ROUND_DOWN)` |\n| 字符串截取 | `$P{参数}.substring(起始,长度)` | `$P{billDate}.substring(0,10)` |\n| IF 判断 | `(条件) ? 值1 : 值2` | `($P{printOrgName}==null?$P{orgName}:$P{printOrgName})+\"结算单\"` |\n| 相等判断 | `==` 或 `.equals(\"文本\")` | `$P{balanceStatus}.equals(\"7100\")` |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_40", + "content": "### 5.2 运算语法", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_41", + "content": "| 运算 | 语法 |\n|------|------|\n| 加 | `$P{参数1}.add($P{参数2})` |\n| 减 | `$P{参数1}.subtract($P{参数2})` |\n| 乘 | `$P{参数1}.multiply($P{参数2})` 或 `$P{参数1}.multiply(new BigDecimal(1.13))` |\n| 除 | `$P{参数1}.divide($P{参数2}, 2, BigDecimal.ROUND_HALF_UP)` |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_42", + "content": "## 6. 高级语法与工具类", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_43", + "content": "### 6.1 JAR 包导入(金额转大写等)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_44", + "content": "1. 项目右键 → Properties → Java Build Path → Add External JARs → 选择 `print-core-1.0.7.jar`\n2. 启用成功后按语法调用", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_45", + "content": "### 6.2 数字金额转中文大写", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_46", + "content": "```\ncom.f6car.printserver.core.CharacterUtil.chinese($P{amount}==null?BigDecimal.ZERO:$P{amount})\n```", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_47", + "content": "### 6.3 日期时间戳转日期", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_48", + "content": "参数类型选 `java.lang.Long`:", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_49", + "content": "```\n$P{nextMaintainDateRemind} == null ? \"\" : new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\").format(new Date($P{nextMaintainDateRemind}))\n```", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_50", + "content": "### 6.4 从 List 中取特定值写入外层表格(JDK 1.8 语法)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_51", + "content": "从支付方式列表 `payItemList` 中找到支付方式等于\"记账\"的第一个支付金额:", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_52", + "content": "```java\n$P{payItemList}.getData().stream()\n .filter(map -> \"记账\".equals(map.get(\"payWay\")))\n .map(map -> {\n Object amt = map.get(\"payAmount\");\n return amt == null ? BigDecimal.ZERO : new BigDecimal(amt.toString());\n })\n .findFirst()\n .orElse(BigDecimal.ZERO)\n```", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_53", + "content": "## 7. 保存与输出", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_54", + "content": "1. **保存** `.jrxml` 源文件\n2. 右键 `.jrxml` → **Compile Report** → 生成 `.jasper` 编译文件\n3. 右键 `.jasper` → **Export Files to...** → 另存到桌面\n4. 上传 `.jasper` 到打印单后台", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_55", + "content": "## 8. 后台配置与命名规范", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_56", + "content": "### 8.1 注意事项", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_57", + "content": "- **不要随意删除模板**,删除不可恢复\n- **结算单模板名称必须包含\"结算单\"三个字**,否则收款后无法显示\n- **洗车单定制模板名称必须包含\"洗车单\"三个字**", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_58", + "content": "### 8.2 命名规范", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_59", + "content": "| 类型 | 模板名称 | 模板编码 | 模板备注 |\n|------|----------|----------|----------|\n| 简单调整 | 基础表+特殊修改需求 | 修改人姓名首字母+模板分类+日期 | 各修改点 |\n| 定制调整 | 门店名称+定制 | 修改人姓名首字母+模板分类+日期 | 各修改点 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_60", + "content": "## 9. 常见打印分类及通用模板", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_61", + "content": "| 打印单分类 | 对应系统打印模块 | 通用模板名称 | 模板编码 |\n|------------|------------------|--------------|----------|\n| 新结算单打印 | 维保单 | F6标准结算单(壹) | newSettleFirst |\n| 结算单-新 | 除维保单的其他单据 | 无 | 无 |\n| 附表-新 | 新附表 | 无 | 无 |\n| 销售单 | 销售单 | 销售单(日期版) | xiaoshodanriqiban |\n| 洗车单 | 洗车单 | 洗车单 | wash01 |\n| 报价单打印 | 报价单 | 报价单打印 | quotationPrint |\n| 新库存入库单打印 | 入库单 | 新库存入库单打印 | 9001 |\n| 新库存出库单打印 | 出库单 | 新库存出库单打印 | 9002 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_62", + "content": "> **注意**:采购单和采购退货单走打印平台定制,需先向赵亚妮提供门店编码、门店名称开通后再上传配置", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_63", + "content": "## 10. 各打印单接口参数文档", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_64", + "content": "### 10.1 工单结算单", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_65", + "content": "**打印平台模版分类**:新结算单打印 / 结算单-新", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_66", + "content": "| 接口类型 | 地址 | 方法 |\n|----------|------|------|\n| maintain 接口 | `/print/dispatchPrint/genUrl` | POST |\n| erp 接口 | `/print/getPrintPDFPath.do?templateId=&templateType=newSettlePrint&idSourceBill=` | GET |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_67", + "content": "**maintain 入参**:`{ \"pkId\": \"工单ID\", \"rowCode\": \"costSettlePrint\", \"rowId\": \"12\" }`", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_68", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| **基础信息** | | |\n| billNo | String | 工单号 |\n| maintainType | String | 工单类型 |\n| balanceStatus | String | 结算状态:\"7000\"未结算 / \"7100\"已结算 / \"7200\"部分结算 |\n| creatorName | String | 创建人名称 |\n| naEmployee | String | 服务顾问 |\n| creationtime | String | 创建时间 |\n| memo | String | 工单备注 |\n| printCount | String | 打印次数 |\n| printTime | String | 打印时间 |\n| deliveryTime | String | 交车时间 |\n| mergePackageContent | String | 套餐合并标识 |\n| printContent | String | 免责条款 |\n| engineNumber | String | 发动机号 |\n| transmissionNo | String | 变速箱号 |\n| **金额信息** | | |\n| amountAll | Double | 应收总计 |\n| disCountAll | Double | 总优惠合计 |\n| oweAmount | Double | 未收金额 |\n| receiptAmount | Double | 实收金额 |\n| chineseAmount | String | 实收金额(大写) |\n| vipExpense | Double | 会员卡消费金额 |\n| czkExpense | Double | 储值卡消费金额 |\n| serviceSubtotalAll | Double | 工时费小计 |\n| stuffSubtotalAll | Double | 材料费小计 |\n| serviceDisCountSubTotal | Double | 项目折后金额合计 |\n| stuffDisCountTotal | Double | 材料折后金额合计 |\n| partFavourableTotal | Double | 材料优惠金额合计 |\n| serviceFavourableTotal | Double | 项目优惠金额合计 |\n| extraCostTotal | Double | 附加费小计 |\n| **托修方信息** | | |\n| naCustomer | String | 单位名称/托修方 |\n| repairPerson | String | 送修人 |\n| carNoWhole | String | 车牌号整体 |\n| carBrandName | String | 品牌名称 |\n| carSeriesName | String | 车系名称 |\n| businessTypeName | String | 维修类别 |\n| vin | String | 车辆VIN码 |\n| billDate | String | 进厂日期 |\n| mileage | BigDecimal | 出厂里程 |\n| cellPhone | String | 联系电话 |\n| **承修方信息** | | |\n| orgName | String | 单位名称 |\n| abbreviation | String | 门店简称 |\n| orgContactNumber | String | 联系电话 |\n| orgDetailAddress | String | 联系地址 |\n| orgContactMobile | String | 联系电话 |\n| bankAccount | String | 开户银行 |\n| accountNumber | String | 账号 |\n| **二期新增** | | |\n| oilCapacity | String | 油量 |\n| nextMileage | Double | 下次保养里程 |\n| nextMaintainDate | String | 下次保养日期 |\n| memberCardNo | String | 会员号 |\n| points | String | 积分 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_69", + "content": "#### serviceList(项目列表)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_70", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| sortNumber | String | 序号 |\n| customCode | String | 项目编码 |\n| serviceName | String | 项目名称 |\n| labelName | String | 业务分类名称 |\n| price | Double | 工时单价 |\n| workHour | Double | 工时 |\n| subtotal | Double | 金额 |\n| discount | Double | 折扣 |\n| discountedSubtotal | Double | 折后金额 |\n| singleFavourable | Double | 优惠金额 |\n| taxRateOutput | BigDecimal | 销项税率 |\n| isMember | Integer | 是否会员卡项目 |\n| empNameStr | String | 修理工 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_71", + "content": "#### partList(材料列表)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_72", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| sortNumber | String | 序号 |\n| customCode | String | 材料编码 |\n| partName | String | 材料名称 |\n| partBrand | String | 配件品牌 |\n| spec | String | 规格型号 |\n| partShowName | String | 配件名称规格型号品牌 |\n| supplierCode | String | 供应商编码(零件号) |\n| unit | String | 单位 |\n| number | Double | 数量 |\n| price | Double | 价格 |\n| subtotal | Double | 金额 |\n| discount | Double | 折扣 |\n| discountedSubtotal | Double | 折后金额 |\n| singleFavourable | Double | 优惠金额 |\n| isBring | Integer | 是否自带(1自带) |\n| taxRateOutput | BigDecimal | 销项税率 |\n| cargoSpace | String | 货位 |\n| applyModel | String | 适用车型 |\n| employeeName | String | 员工名称 |\n| outStockEmployeeName | String | 领料人 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_73", + "content": "#### payItemList(付款方式)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_74", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| payWay | String | 付款方式 |\n| payAmount | Double | 付款金额 |\n| chinesePayAmount | String | 大写付款方式 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_75", + "content": "**结算前待付/结算后实付(根据 balanceStatus 判断)**:", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_76", + "content": "```\n$P{balanceStatus}.equals(\"7100\") ? 实付逻辑 : 待付逻辑\n```", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_77", + "content": "**对应大写**:\n```\n$P{balanceStatus}.equals(\"7100\") ? $P{payItemTogetherChinese} : $P{settleOweAmoutChinese}\n```", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_78", + "content": "### 10.2 新版附表", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_79", + "content": "**打印平台模版分类**:附表-新", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_80", + "content": "1. **新版附表没有 `billStatus`、`balanceStatus` 字段**,切勿使用做判断。用 `payItemList` 判空替代:\n - 收银金额:`$P{payItemList}.getRecordCount()==0?$P{receivedAmount}:$P{receivedAmount}.setScale(2,BigDecimal.ROUND_HALF_EVEN).toString()+\"(\"+$P{paymentTypeDetails}+\")\"`\n - 合计金额:`$P{payItemList}.getRecordCount()==0?($P{settleOweAmout}).setScale(2,BigDecimal.ROUND_HALF_EVEN):($P{settleReceivedAmout}).setScale(2,BigDecimal.ROUND_HALF_EVEN)`", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_81", + "content": "2. **新版附表没有 `maintainType` 字段**,用 `fromMaintainType` 替代判断。如判断理赔:`fromMaintainType.equals('LPD')`", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_82", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| billNo | String | 附表单号 |\n| fromBillNo | String | 附表源工单号 |\n| fromMaintainType | String | 来源单据类型 |\n| billDate | String | 进厂日期 |\n| naEmployee | String | 服务顾问 |\n| businessTypeName | String | 业务类型 |\n| naCustomer | String | 客户姓名 |\n| cellPhone | String | 联系电话 |\n| carNoWhole | String | 车牌号 |\n| vin | String | 车辆VIN码 |\n| carModel | String | 品牌车型全称 |\n| carModelShort | String | 车型简称 |\n| mileage | Double | 出厂里程 |\n| amountAll | Double | 应收总计 |\n| amountAllChinese | String | 应收总计中文大写 |\n| disCountAll | Double | 总优惠合计 |\n| amountReal | Double | 实收金额 |\n| oweAmount | Double | 未收金额 |\n| receiptAmount | Double | 收据金额 |\n| serviceSubtotalAll | Double | 工时费小计 |\n| stuffSubtotalAll | Double | 材料费小计 |\n| extraCostTotal | Double | 附加费小计 |\n| payItemList | List | 付款方式集合 |\n| serviceList | List | 项目集合 |\n| partList | List | 材料集合 |\n| extraChargeList | List | 附加费用集合 |\n| extraPrintVo | Object | 附加项目 |\n| printContent | String | 免责条款 |\n| orgName | String | 门店名称 |\n| printOrgName | String | 打印抬头 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_83", + "content": "### 10.3 结算单(指定内容)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_84", + "content": "**打印平台模版分类**:结算单-新", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_85", + "content": "- **接口**:`/blazer/maintenance/print/file/dispatchCondition`\n- **方法**:POST\n- **支持场景**:维保单/洗车单/维修单/贴膜单/理赔单/零售单,支持指定项目/材料/附加费打印", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_86", + "content": "```json\n{\n \"rowId\": \"10329\",\n \"rowCode\": \"partialSettlementStatement\",\n \"pkId\": \"工单ID\",\n \"serviceList\": [{ \"pkId\": 项目ID, \"module\": 1 }],\n \"partList\": [{ \"pkId\": 材料ID, \"module\": 2 }],\n \"extraList\": [{ \"type\": 附加费类型, \"module\": 3 }]\n}\n```", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_87", + "content": "#### PrintModuleEnum 打印模块枚举", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_88", + "content": "| key | code | name |\n|-----|------|------|\n| MAN_HOUR_COST | 1 | 工时费模块 |\n| MATERIAL_COST | 2 | 材料费模块 |\n| EXTRA_COST | 3 | 附加费模块 |\n| OTHER_COST | 4 | 其他费用模块 |\n| SERVICE_COST | 5 | 服务费用模块 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_89", + "content": "与结算单类似,额外包含 `signaturePhotoUrl`(签名图片)、`storeLogo`(logo)等字段。", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_90", + "content": "#### 扩展模块列表 extendedModuleList", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_91", + "content": "| 字段 | 说明 |\n|------|------|\n| module | 打印模块(PrintModuleEnum.code) |\n| name | 项目/材料/附加费名称 |\n| number | 工时/数量/\"-\" |\n| price | 单价/\"-\" |\n| subtotal | 金额 |\n| discount | 折扣(附加费为1.00) |\n| discountedSubtotal | 折后金额 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_92", + "content": "### 10.4 委托单", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_93", + "content": "**打印平台模版分类**:委托单", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_94", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| printOrgName | String | 打印抬头 |\n| orgName | String | 维修厂名称 |\n| billNo | String | 工单号 |\n| naEmployee | String | 服务顾问 |\n| employeePhone | String | 服务顾问手机号 |\n| naCustomer | String | 单位名称(客户姓名) |\n| carNoWhole | String | 车牌号整体 |\n| cellPhone | String | 联系电话 |\n| repairPerson | String | 送修人 |\n| repairPersonContact | String | 送修人联系方式 |\n| billDate | String | 进厂日期 |\n| deliveryTime | String | 交车时间 |\n| mileage | BigDecimal | 出厂里程 |\n| oilCapacity | String | 当前油量 |\n| vin | String | 车辆VIN码 |\n| carModelShort | String | 车型简称 |\n| signaturePhotoUrl | String | 签名图片 |\n| orgContactNumber | String | 联系电话(维修厂) |\n| orgDetailAddress | String | 联系地址(维修厂) |\n| printContentEntrust | String | 委托单免责条款 |\n| serviceSubtotalVip | BigDecimal | 服务项目明细小计(会员项目) |\n| stuffSubtotalVip | BigDecimal | 材料收入小计(会员项目) |\n| serviceSubtotalAll | BigDecimal | 工时费小计 |\n| stuffSubtotalAll | BigDecimal | 材料费小计 |\n| serviceList | List | 工单对应项目集合 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_95", + "content": "**ServicePrintAttribute**:", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_96", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| serviceName | String | 项目名称 |\n| price | BigInteger | 工时单价 |\n| workHour | BigInteger | 工时 |\n| subtotal | BigInteger | 金额 |\n| serviceMemo | String | 附加信息备注 |\n| isMember | Integer | 当前项目是否使用会员 |\n| empNameStr | String | 修理工名称 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_97", + "content": "### 10.5 协作单", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_98", + "content": "**打印平台模版分类**:协作单", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_99", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| title | String | 打印抬头(门店简称) |\n| billNo | String | 工单号 |\n| creatorName | String | 制单人 |\n| printTime | String | 打印时间 |\n| naEmployee | String | 服务顾问 |\n| billDate | String | 进厂日期 |\n| deliveryTime | String | 交车时间 |\n| naCustomer | String | 车主姓名 |\n| cellPhone | String | 车主电话 |\n| carModel | String | 车型 |\n| carNoWhole | String | 车牌号 |\n| vin | String | 车辆VIN码 |\n| amountAll | BigDecimal | 小计 |\n| serviceDetailVOList | List | 协作项目集合 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_100", + "content": "**CooperationServicePrintAttribute**:", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_101", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| serviceName | String | 工单项目名称 |\n| cooperationServiceName | String | 协作项目名称 |\n| cooperationOrgName | String | 协作门店 |\n| auditStatus | String | 审核状态 |\n| cooperationCost | BigDecimal | 协作成本 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_102", + "content": "### 10.6 增项单", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_103", + "content": "**打印平台模版分类**:增项单", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_104", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| title | String | 打印抬头(门店名称+\"新增项目确认单\") |\n| sourceBillNo | String | 关联工单号 |\n| printTime | String | 打印时间 |\n| naEmployee | String | 服务顾问 |\n| arrivalTime | String | 进厂日期 |\n| deliveryTime | String | 交车时间 |\n| naCustomer | String | 车主姓名 |\n| cellPhone | String | 车主电话 |\n| repairPerson | String | 送修人 |\n| repairPersonContact | String | 送修人联系方式 |\n| carModel | String | 车型 |\n| carNoWhole | String | 车牌号 |\n| carColor | String | 车身颜色 |\n| engineCode | String | 发动机号 |\n| vin | String | 车辆VIN码 |\n| mileage | String | 进厂里程 |\n| oilCapacity | String | 进厂油量 |\n| merchantAddress | String | 商家联系地址 |\n| merchantTel | String | 商家联系方式(固定电话) |\n| merchantPhone | String | 商家联系方式(手机) |\n| workHourPriceSubtotal | String | 工时费(小计) |\n| amountSubtotal | String | 材料费(小计) |\n| attachedServiceVoList | List | 增项服务项目集合 |\n| attachedStuffVoList | List | 增项配件材料集合 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_105", + "content": "**ServicePrintAttribute**(增项服务):", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_106", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| serviceName | String | 项目名称 |\n| labelName | String | 业务分类 |\n| customCode | String | 项目编码 |\n| price | Double | 工时单价 |\n| workHour | Double | 工时 |\n| number | Integer | 项目数量 |\n| discount | Double | 折扣 |\n| discountedSubtotal | Double | 折后金额 |\n| subtotal | Double | 金额 |\n| serviceMemo | String | 项目备注 |\n| isMember | Integer | 是否使用会员 |\n| nameMember | String | 会员项目来源名 |\n| empNameStr | String | 修理工名称 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_107", + "content": "**PartPrintAttribute**(增项材料):", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_108", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| partName | String | 材料名称 |\n| labelName | String | 业务分类 |\n| partBrand | String | 配件品牌 |\n| customCode | String | 材料编码 |\n| price | Double | 单价 |\n| number | Integer | 材料数量 |\n| unit | String | 单位 |\n| discount | Double | 折扣 |\n| discountedSubtotal | Double | 折后金额 |\n| subtotal | Double | 金额 |\n| partMemo | String | 材料备注 |\n| isMember | Integer | 是否使用会员 |\n| nameMember | String | 会员项目来源名 |\n| employeeName | String | 员工名称 |\n| empNameStr | String | 修理工名称 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_109", + "content": "### 10.7 保险单", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_110", + "content": "**打印平台模版分类**:保险单", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_111", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| companyTitle | String | 打印title |\n| customerName | String | 客户姓名 |\n| carNo | String | 车牌号 |\n| vin | String | vin码 |\n| carModel | String | 车型 |\n| cellPhone | String | 手机号 |\n| insureDate | String | 起保日期(yyyy-MM-dd) |\n| receivable | BigDecimal | 应收金额 |\n| preferentialAmount | BigDecimal | 优惠金额 |\n| receiveAmount | BigDecimal | 实收金额 |\n| oweAmount | BigDecimal | 未收金额 |\n| commissionAmountTotal | BigDecimal | 手续费 |\n| companyRefundAmount | BigDecimal | 保险公司返点 |\n| customerRefundAmount | BigDecimal | 客户返点 |\n| insuranceCompanyName | String | 承保公司 |\n| memo | String | 备注 |\n| employeeName | String | 服务顾问 |\n| contacts | String | 保险公司联系人 |\n| contactMobile | String | 保险公司联系人手机号 |\n| channelName | String | 来店途径 |\n| startDate | String | 开始日期(yyyy-MM-dd) |\n| endDate | String | 结束日期(yyyy-MM-dd) |\n| renewal | Integer | 是否续保(0否/1是) |\n| tsInsuranceDetailList | List | 保险单明细 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_112", + "content": "**TsInsuranceDetailPrintVo**:", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_113", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| policyNo | String | 保单号 |\n| insuranceType | Integer | 保险类型(0交强险/1商业险) |\n| name | String | 险种名称 |\n| amount | BigDecimal | 保额 |\n| receivable | BigDecimal | 应收金额 |\n| discount | BigDecimal | 折扣 |\n| concessionary | BigDecimal | 优惠金额 |\n| commissionRate | BigDecimal | 手续费率 |\n| commissionAmount | BigDecimal | 手续费 |\n| paid | BigDecimal | 实收金额 |\n| memo | String | 备注 |\n| companyRefundAmount | BigDecimal | 保险公司返点 |\n| customerRefundAmount | BigDecimal | 客户返点 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_114", + "content": "### 10.8 定金单", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_115", + "content": "**打印平台模版分类**:定金单", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_116", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| title | String | 标题(门店名称) |\n| abbreviation | String | 门店简称 |\n| billNO | String | 定金单号 |\n| printTime | String | 打印时间 |\n| customerName | String | 客户姓名 |\n| cellPhone | String | 手机号码 |\n| carNo | String | 适用车辆(顿号隔开) |\n| orgName | String | 适用门店(顿号隔开) |\n| balanceStatus | String | 结算状态 |\n| receivedAmount | Double | 已收金额 |\n| amount | Double | 收款交易金额 |\n| amountAll | Double | 定金单收款小计 |\n| preRefundBalance | Double | 定金单退款前余额 |\n| advancesReceivedBalance | Double | 定金单收款后剩余面额 |\n| memo | String | 定金备注 |\n| settlePerson | String | 结算人 |\n| employeeName | String | 收款人 |\n| businessDate | String | 收款时间 |\n| billDate | String | 交易时间 |\n| transactionDate | String | 交易时间 |\n| detailAddress | String | 联系地址 |\n| contactMobile | String | 联系方式 |\n| naServicePerson | String | 服务顾问 |\n| gatheringList | List | 收款方式列表 |\n| relationServices | List | 适用项目列表 |\n| relationParts | List | 适用材料列表 |\n| relationCars | List | 适用车辆列表 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_117", + "content": "**gatheringList** 项:paymentType(支付方式), amount(金额-BigDecimal)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_118", + "content": "**relationServices** 项:infoId(项目id), infoName(项目名称), labelName(业务分类)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_119", + "content": "**relationParts** 项:infoId(材料id), infoName(材料名称), labelName(业务分类)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_120", + "content": "**relationCars** 项:idCar(车辆信息id), carNo(车牌号), vin(vin码)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_121", + "content": "### 10.9 报价单", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_122", + "content": "**打印平台模版分类**:报价单打印", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_123", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| partDetailVoList | List | 材料列表 |\n| serviceDetailVoList | List | 项目列表 |\n| amountChinese | String | 商品金额中文大写 |\n| realAmountWithoutCardChinese | String | 待付金额中文大写 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_124", + "content": "#### QuotationPartDetailPrintVo(报价单材料)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_125", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| pkId | BigInteger | 无意义主键 |\n| partName | String | 材料名称 |\n| partShowName | String | 材料显示名称 |\n| number | BigDecimal | 数量 |\n| price | BigDecimal | 单价 |\n| subtotal | BigDecimal | 总价 |\n| discount | BigDecimal | 折扣 |\n| realSubtotal | BigDecimal | 折后总计 |\n| unit | String | 单位 |\n| spec | String | 规格型号 |\n| brand | String | 品牌名称 |\n| supplierCode | String | 零件号 |\n| customCode | String | 材料编码 |\n| employeeName | String | 服务员工姓名 |\n| memo | String | 备注 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_126", + "content": "#### QuotationServiceDetailPrintVo(报价单项目)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_127", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| pkId | BigInteger | 无意义主键 |\n| customCode | String | 项目编码 |\n| serviceName | String | 项目名称 |\n| workHour | BigDecimal | 工时 |\n| price | BigDecimal | 单价 |\n| subtotal | BigDecimal | 工时费 |\n| discount | BigDecimal | 折扣 |\n| realSubtotal | BigDecimal | 折后金额 |\n| memo | String | 备注 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_128", + "content": "### 10.10 检测单", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_129", + "content": "**打印平台模版分类**:检测单", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_130", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| carCheckPackageName | String | 模板名称 |\n| title | String | 标题 |\n| billNo | String | 检测单号 |\n| printTime | String | 打印时间 |\n| naEmployee | String | 服务顾问 |\n| billDate | String | 进厂时间 |\n| deliveryTime | String | 预计交车 |\n| naCustomer | String | 车主 |\n| carModel | String | 车型 |\n| cellPhone | String | 车主电话 |\n| carNoWhole | String | 车牌号 |\n| vin | String | vin码 |\n| repairPerson | String | 送修人 |\n| repairPersonContact | String | 送修人联系方式 |\n| mileage | String | 进厂里程 |\n| oilCapacity | String | 进厂油量 |\n| nextMileage | String | 下次保养里程 |\n| nextMaintainDate | String | 下次保养日期 |\n| customerMemo | String | 车主描述 |\n| merchantAddress | String | 联系地址 |\n| merchantPhone | String | 联系方式 |\n| qrCode | String | 二维码 |\n| qrCodeToB | String | B端二维码 |\n| qrCodeToC | String | C端二维码 |\n| icon | String | 车辆环视图 |\n| maintainBillNo | String | 结算单号 |\n| showComputerCheckInfo | Boolean | 是否展示电脑检测 |\n| computerCheckInfoList | List | 电脑检测 |\n| personalCheckInfoList | List | 人工检测项(正常+异常) |\n| sortedPersonalCheckInfoList | List | 人工检测项(问题排序靠前) |\n| optionPersonalCheckInfoList | List | 异常人工检测项 |\n| normalPersonalCheckInfoList | List | 正常人工检测项 |\n| iconMemo | String | 环视图备注 |\n| iconResult | String | 环视图结论 |\n| warningLightResult | String | 警示灯结论 |\n| showWarningLightItem | Boolean | 是否展示警示灯 |\n| warningLightItemList | List | 警示灯 |\n| employeeName | String | 服务技师 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_131", + "content": "#### ComputerPrintItem(电脑检测项)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_132", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| index | String | 序号 |\n| errorCode | String | 故障码 |\n| itemName | String | 检测项目 |\n| optionNameS | String | 建议处理(Y) |\n| optionNameE | String | 择期处理(Y) |\n| optionNameU | String | 急需处理(Y) |\n| memo | String | 备注 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_133", + "content": "#### PersonalPrintItem(人工检测小类)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_134", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| index | BigInteger | 序号 |\n| itemComponent | String | 检测部件 |\n| memo | String | 备注 |\n| childList | List | 子项目列表 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_135", + "content": "#### PrintTinyItem(检测项目)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_136", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| itemName | String | 检测项目 |\n| itemResults | String | 检测结果 |\n| optionNameS | String | 建议处理(Y) |\n| optionNameE | String | 择期处理(Y) |\n| optionNameU | String | 急需处理(Y) |\n| memo | String | 备注 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_137", + "content": "### 10.11 出/入库单据", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_138", + "content": "| 场景 | 入口 | REST 接口 | 底层接口 |\n|------|------|-----------|----------|\n| 库存出库单 | 出入库单据-出库单 | `/stock/stockInAndOutBill/stockOutPrint?idStock=XXX&isNew=true` | PrintServiceImpl#getStockOutPrintUrl |\n| 库存入库单 | 出入库单据-入库单 | `/stock/stockInAndOutBill/stockInPrint?idStock=XXX&isNew=true` | PrintServiceImpl#getStockInPrintUrl |\n| 手工出入库 | 手工出入库 | `/stock/manual/print?pkId=XXX&billType=0&isNew=true` | PrintService#getManualStorageStockInPrintUrl |\n| 领料单 | 领料详情 | `/stock/maintain/print?idSourceBill=XXX&hasPreview=true` | PrintServiceImpl#getMaintainPrintUrl |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_139", + "content": "> 日志关键字:出库单→\"出库单打印参数\",入库单→\"入库单打印参数\",手工→\"手工出入库单据打印入参是\",领料→\"领料单打印参数\"", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_140", + "content": "#### 出库单参数", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_141", + "content": "**定制类模版分类**:`newStockOutMaintainCustomPrint`(20250925新增)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_142", + "content": "| 字段 | 说明 | 备注 |\n|------|------|------|\n| title | 门店名称+\"出库单\" | |\n| billNo | 出库单号 | |\n| sourceBillNo | 来源单号 | |\n| showSourceBillNo | 显示来源单号(boolean) | |\n| billStatus | 单据状态(制单/完成) | |\n| inOutDate | 出库日期 | |\n| showInOutDate | 是否显示出库日期(boolean) | |\n| objectName | 出入库对象 | |\n| objectNameGD | 出入库对象工单 | 客户姓名+车牌+VIN+品牌车系车型(前80字符) |\n| creatorName | 制单人 | |\n| billDate | 制单日期(yyyy-MM-dd) | |\n| sumNumber | 材料总数量 | |\n| sumAmount | 总金额 | 脱敏显示**** |\n| chineseAmount | 总金额(中文大写) | 脱敏显示**** |\n| nowDateTime | 打印当前时间(yyyy-MM-dd HH:mm) | |\n| idOwnOrg | 门店ID | |\n| remark | 备注信息 | |\n| showRemark | 是否显示备注(boolean) | |\n| isGdType | 是否工单类型(boolean) | |\n| saName | 服务顾问 | 工单出库场景 |\n| printCount | 打印次数 | |\n| showCustomCode | 是否显示材料编码(boolean) | |\n| showBusinessLabel | 是否显示业务分类(boolean) | |\n| showApplyModel | 是否显示适用车型(boolean) | |\n| showStorageName | 是否显示仓库(boolean) | |\n| showDefSeat | 是否显示货位(boolean) | |\n| showChineseAmount | 是否显示大写金额(boolean) | |\n| showChineseSubtotal | 是否显示大写行合计(boolean) | |\n| columnCount | 显示几列 | |\n| batchPrintConfig | 批次成本展示设置 | 0不展示/1总成本/2和3展示批次 |\n| memo | 车主描述 | 20250925新增 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_143", + "content": "**partInfoDetailMapList** 材料行:", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_144", + "content": "| 字段 | 说明 |\n|------|------|\n| sortNumber | 序号(合计行显示\"合计\") |\n| partShowName | 材料组合名称 |\n| partName | 材料名称 |\n| partBrand | 材料品牌(2025.02.27新增) |\n| supplierCode | 零件号 |\n| labelName | 业务分类 |\n| applyModel | 适用车型 |\n| customCode | 材料编码 |\n| storageName | 仓库名称 |\n| defSeat | 货位 |\n| number | 数量 |\n| unit | 单位 |\n| price | 单价 |\n| subtotal | 金额 |\n| employeeName | 出库人 |\n| salesEmployeeNameList | 材料行销售人员(20250925新增) |\n| orderBatchList | 批次成本信息(List) |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_145", + "content": "**orderBatchList** 项:orderNo(批次号), count(数量), price(单位成本), priceNoTax(除税单位成本), totalPrice(总成本), totalPriceNoTax(除税总成本)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_146", + "content": "#### 入库单参数", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_147", + "content": "**定制类模版分类**:`newStockInMaintainCustomPrint`(20250925新增)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_148", + "content": "与出库单类似,额外字段:", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_149", + "content": "| 字段 | 说明 |\n|------|------|\n| noTaxSumAmount | 除税总金额 |\n| chineseNoTaxSumAmount | 除税总金额(大写) |\n| noTaxPrice | 除税单价(材料行) |\n| noTaxSubtotal | 除税金额(材料行) |\n| sumSubtotal | 入库总金额(工单退才有) |\n| chineseSubtotal | 大写入库总金额(工单退才有) |\n| showReturnIn | 显示退料入库一行(工单退才有) |\n| showSign | 仓管签字位置(工单退=2,其它=1) |\n| stockInType | 退料入库(工单退才有) |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_150", + "content": "#### 领料单参数", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_151", + "content": "| 字段 | 说明 |\n|------|------|\n| idOwnOrg | 门店ID |\n| title | 门店名称+\"领料单\" |\n| billNo | 工单号 |\n| nowDateTime | 打印当前时间 |\n| employeeName | 服务顾问 |\n| carModel | 车型 |\n| carNoWhole | 车牌号 |\n| memo | 车主描述(2025.08.14新增) |\n| printTimes | 打印次数 |\n| columnCount | 显示几列 |\n| batchPrintConfig | 批次成本设置 |\n| stuffDetailVOList | 材料列表 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_152", + "content": "### 10.12 调拨单", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_153", + "content": "**前端调用接口**:`/stock/allot/print?idAllot=`\n**模版编码**:`allotInPrint`", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_154", + "content": "| 字段 | 说明 | 备注 |\n|------|------|------|\n| printFlag | 均价门店false/批次门店true | |\n| showPrice | 参配-打印调拨价格及金额 | 勾选true |\n| orgName | 打印抬头 | 调入:XXX调入单/调出:XXX调出单 |\n| billNo | 调拨单号 | 调入:DRD/调出:DCD前缀 |\n| idOwnOrg | 门店ID | |\n| naOrgIn | 调入门店名称 | |\n| naOrgOut | 调出门店名称 | |\n| detailAddress | 供应商详细地址 | |\n| statusName | 调拨单状态 | 制单/待发货/待收货/已完成 |\n| billDate | 单据日期(yyyy-MM-dd) | |\n| creatorName | 创建人 | |\n| nowDateTime | 打印时间 | |\n| remark | 备注信息 | |\n| showRemark | 是否显示备注 | |\n| sumNumber | 总数量 | |\n| sumAmount | 总金额 | 脱敏显示**** |\n| printCount | 打印次数 | |\n| allotDetailVoList | 调拨单明细行 | |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_155", + "content": "**allotDetailVoList** 明细行:", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_156", + "content": "| 字段 | 说明 |\n|------|------|\n| sortNumber | 序号 |\n| partShowName | 材料组合名称 |\n| customCode | 材料自定义编码 |\n| partName | 材料名称(20250731追加) |\n| partBrand | 材料品牌(20250731追加) |\n| supplierCode | 材料零件号(20250731追加) |\n| standard | 材料规格型号(20250731追加) |\n| carNo | 车牌(20250731追加) |\n| defSeat | 货位(调入/调出门店货位) |\n| unit | 单位 |\n| price | 单价 |\n| numCus | 个数(均价/批次逻辑不同) |\n| amount | 金额(均价/批次逻辑不同) |\n| orderNo | 批次号 |\n| productDate | 批次生成日期 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_157", + "content": "### 10.13 材料标签", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_158", + "content": "**打印平台模版分类**:材料价格通用标签打印", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_159", + "content": "材料标签支持一次打多张,与 `labelList` 集合元素个数匹配。", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_160", + "content": "#### 通用材料标签", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_161", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| labelList | List | 材料标签列表 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_162", + "content": "**Label**:", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_163", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| name | String | 材料名称 |\n| supplierCode | String | 零件号 |\n| customCode | String | 材料编码 |\n| sellPrice | BigDecimal | 销售价格 |\n| date | String | 打印日期(yyyy/MM/dd) |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_164", + "content": "#### 采购库存材料标签", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_165", + "content": "- 不带供应商:**采购库存通用标签打印-新**\n- 带供应商:**采购库存通用标签打印-包含供应商-新**", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_166", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| labelList | List | 材料标签列表 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_167", + "content": "**Object**:", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_168", + "content": "| 字段 | 类型 | 说明 |\n|------|------|------|\n| partName | String | 材料名称 |\n| partBrand | String | 材料品牌 |\n| customCode | String | 材料编码 |\n| partShowName | String | 组合名称 |\n| supplierCode | String | 材料供应商编码 |\n| spec | String | 材料规格型号 |\n| unit | String | 材料单位 |\n| barCode | String | 材料编码 |\n| billDate | String | 单据日期(yyyy-MM-dd) |\n| supplierName | String | 供应商名称 |\n| storageName | String | 材料仓库名称 |\n| defSeat | String | 材料货位 |\n| date | String | 打印日期(yyyy/MM/dd) |", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_169", + "content": "### 10.14 采购单/采购退货单", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_170", + "content": "走打印平台定制,需先向赵亚妮提供门店编码、门店名称开通后再上传配置。", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_171", + "content": "参考文档:[采购单/采购退打印](https://alidocs.dingtalk.com/i/nodes/7NkDwLng8ZMajY9YijOwlz4bJKMEvZBY)", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_172", + "content": "## 附录:关键注意事项", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_173", + "content": "1. **结算单**模板名称必须包含\"结算单\"三个字\n2. **洗车单**定制模板名称必须包含\"洗车单\"三个字\n3. **新版附表**不能用 `billStatus`、`balanceStatus`、`maintainType` 做判断\n4. 列表内参数用 `$F{}`,外层参数用 `$P{}`\n5. 数字类型参数用 `java.math.BigDecimal`,文本用 `java.lang.String`\n6. 未预设参数需先创建 Parameter(外层)或 Field(列表内)\n7. **删除模板不可恢复**,操作前务必确认\n8. 价格脱敏场景显示 `****`\n9. 工具类 JAR:`print-core-1.0.7.jar`,提供金额转大写和日期转换功能", + "metadata": { + "chunk_type": "md_section", + "source_file": "F6打印单说明知识库.md", + "kb_name": "" + } + }, + { + "id": "chunk_174", + "content": "打印平台模版分类:保险单", + "metadata": { + "chunk_type": "md_section", + "source_file": "保险单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_175", + "content": "| 字段 | 含义 | 是否必有 | 类型 |\n| --- | --- | --- | --- |\n| companyTitle | 打印title | | String |\n| customerName | 客户姓名 | | String |\n| carNo | 车牌号 | | String |\n| vin | vin码 | | String |\n| carModel | 车型 | | String |\n| cellPhone | 手机号 | | String |\n| insureDate | 起保日期 | | String yyyy-MM-dd |\n| receivable | 应收金额 | | BigDecimal |\n| preferentialAmount | 优惠金额 | | BigDecimal |\n| receiveAmount | 实收金额 | | BigDecimal |\n| oweAmount | 未收金额 | | BigDecimal |\n| commissionAmountTotal | 手续费 | | BigDecimal |\n| companyRefundAmount | 保险公司返点 | | BigDecimal |\n| customerRefundAmount | 客户返点 | | BigDecimal |\n| insuranceCompanyName | 承保公司 | | String |\n| memo | 备注 | | String |\n| employeeName | 服务顾问 | | String |\n| contacts | 保险公司联系人 | | String |\n| contactMobile | 保险公司联系人手机号 | | String |\n| channelName | 来店途径 | | String |\n| startDate | 开始日期 | | String yyyy-MM-dd |\n| endDate | 结束日期 | | String yyyy-MM-dd |\n| renewal | 是否续保 0否/1是 | | Integer |\n| tsInsuranceDetailList | 保险单明细 | | List |\n| | | | |\n|

| | | |", + "metadata": { + "chunk_type": "md_section", + "source_file": "保险单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_176", + "content": "TsInsuranceDetailPrintVo:", + "metadata": { + "chunk_type": "md_section", + "source_file": "保险单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_177", + "content": "| 字段 | 含义 | 是否必有 | 类型 |\n| --- | --- | --- | --- |\n| policyNo | 保单号 | | String |\n| insuranceType | 保险类型(0交强险/1商业险) | | Integer |\n| name | 险种名称 | | String |\n| amount | 保额 | | BigDecimal |\n| receivable | 应收金额(元) | | BigDecimal |\n| discount | 折扣 | | BigDecimal |\n| concessionary | 优惠金额(元) | | BigDecimal |\n| commissionRate | 手续费率 | | BigDecimal |\n| commissionAmount | 手续费 | | BigDecimal |\n| paid | 实收金额(元) | | BigDecimal |\n| memo | 备注 | | String |\n| companyRefundAmount | 保险公司返点 | | BigDecimal |\n| customerRefundAmount | 客户返点 | | BigDecimal |\n| | | | |\n| | | | |\n| | | | |\n| | | | |\n| | | | |\n| | | | |\n| | | | |\n| | | | |\n| | | | |\n| | | | |\n| | | | |\n| | | | |\n|

| | | |", + "metadata": { + "chunk_type": "md_section", + "source_file": "保险单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_178", + "content": "> 更新: 2023-09-20 11:32:29 原文: ", + "metadata": { + "chunk_type": "md_section", + "source_file": "保险单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_179", + "content": "# 出/入库单据打印", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_180", + "content": "| **场景** | | 入口 | 打印效果 | **底层模版** | 接口 |\n| --- | --- | --- | --- | --- | --- |\n| 库存 | 出入库单据-出库单 | ![image](https://ddoc.f6yc.com/yuque/0/2025/png/227465/1739783099448-84de3a8e-2473-4d88-a83d-638122d695ac.png) | ![image](https://ddoc.f6yc.com/yuque/0/2025/png/227465/1739782451805-24599a5e-df6e-4d6b-bbfb-cbbc1816614f.png) | ![image](https://ddoc.f6yc.com/yuque/0/2025/png/227465/1739782672560-9e9927d9-bdbd-4ad1-9199-f6588fc11e9d.png) | REST:/stock/stockInAndOutBill/stockOutPrint?idStock=XXX&isNew=true
底层接口:com.f6car.stock.service.impl.print.PrintServiceImpl#getStockOutPrintUrl
日志关键字:+\"出库单打印参数:\" (有 apollo 开关 log.stockInout.print.switch 默认true) |\n| | 领料出库(工单领料)-出库单 | ![image](https://ddoc.f6yc.com/yuque/0/2025/png/227465/1739782990039-cc493301-06f6-48f0-bd0d-76487b30d04e.png)![image](https://ddoc.f6yc.com/yuque/0/2025/png/227465/1739783038197-1924e595-433a-48b7-8ea2-291492a7caae.png) | ![image](https://ddoc.f6yc.com/yuque/0/2025/png/227465/1739783054922-543a7d3c-f0eb-4814-874d-34bb82aed7cd.png) |\n| | 出入库单据-入库单 | ![image.png](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/8oLl952E8m3Relap/img/f5893832-29ca-4164-9071-78371d724dbd.png) | ![image.png](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/8oLl952E8m3Relap/img/09773831-4ef6-4c46-b04a-0b00ea6376b7.png) | ![image.png](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/8oLl952E8m3Relap/img/f4b0a5b6-b259-4b41-91ec-67ed895c9c61.png) | REST:/stock/stockInAndOutBill/stockInPrint?idStock=XXX&isNew=true
底层接口:com.f6car.stock.service.impl.print.PrintServiceImpl#getStockInPrintUrl
日志关键字:+\"入库单打印参数:\" (有 apollo 开关 log.stockInout.print.switch 默认true) |\n| | 领料出库(工单领料)-退料单 | ![image.png](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/8oLl952E8m3Relap/img/b3aaf9d0-5231-4dd2-bbb4-a3f02afbfb89.png)
![image.png](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/8oLl952E8m3Relap/img/afe3844b-a253-4493-ad83-f1a6371aaa51.png) | ![image.png](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/8oLl952E8m3Relap/img/17875029-3462-449d-9f24-3aad72d3737b.png) |\n| | 手工出入库-出库单 | ![image](https://ddoc.f6yc.com/yuque/0/2025/png/227465/1739783184569-1df2391a-c404-48d3-be4e-b39f3f50e9ef.png) | ![image](https://ddoc.f6yc.com/yuque/0/2025/png/227465/1739783196368-a62151d6-2ff3-48ce-ae99-2742f296e1be.png) | ![image.png](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/8oLl952E8m3Relap/img/de1c2e35-c7db-43e1-b03d-9a617b876df3.png) | REST:/stock/manual/print?pkId=XXX&billType=0&isNew=true (type=0 表示入库单 type=1 表示出库单)
底层接口:com.f6car.stock.service.print.PrintService#getManualStorageStockInPrintUrl
日志关键字:+\"手工出入库单据打印入参是:\" |\n| | 手工出入库-入库单 | ![image.png](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/8oLl952E8m3Relap/img/21383c0d-4fbd-490f-95a4-b55a9c1aa473.png) | ![image.png](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/8oLl952E8m3Relap/img/4e269988-1029-48cd-97e5-c71e3ec6b275.png) | ![image.png](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/8oLl952E8m3Relap/img/5e6f982e-0369-48eb-a09b-3d247608db0f.png) |\n| | 领料详情-打印领料单 | ![image.png](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/8oLl952E8m3Relap/img/9c2c7fdb-360f-43e0-b07f-4ee0f8a43510.png) | ![image.png](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/8oLl952E8m3Relap/img/974ef939-6d36-433d-a3fe-594cb6cb270c.png) | ![image.png](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/8oLl952E8m3Relap/img/f4baaf53-7915-4b45-9ee5-aff164922a00.png) | REST:/stock/maintain/print?idSourceBill=XXX&hasPreview=true
底层接口:com.f6car.stock.service.impl.print.PrintServiceImpl#getMaintainPrintUrl
日志关键字:+\"领料单打印参数:\" (有 apollo 开关 log.stock.maintain.print.switch 默认false) |", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_181", + "content": "# 出入库单据-出库单 && 领料出库-出库单打印模版参数说明", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_182", + "content": "出库单据定制类需求模版分类(newStockOutMaintainCustomPrint)--20250925新增", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_183", + "content": "HashMap resultMap", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_184", + "content": "| **字段** | **说明** | 备注 |\n| --- | --- | --- |\n| title | 门店名称+ \"出库单\" | |\n| billNo | 出库单号 | |\n| sourceBillNo | 来源单号 | |\n| showSourceBillNo | 显示来源单号 (boolean) | |\n| billStatus | 单据状态(制单、完成) | |\n| inOutDate | 出库日期 | |\n| showInOutDate | 是否显示出库日期(boolean) | |\n| objectName | 出入库对象 | |\n| objectNameGD | 出入库对象工单
工单出库单:客户姓名+车牌号整体+车辆VIN码+车辆品牌车系车型全称 (拼接后取前 80 个字符)
非工单出库单:\"\" | |\n| creatorName | 制单人 | |\n| billDate | 制单日期 (yyyy-MM-dd) | |\n| sumNumber | 材料总数量 | |\n| sumAmount | 总金额 
\\--脱敏场景显示 _\\*_\\*_\\*\\*_ | |\n| chineseAmount | 总金额(中文大写)
\\--脱敏场景显示 _\\*_\\*\\*\\* | |\n| nowDateTime | 打印当前时间 (yyyy-MM-dd HH:mm) | |\n| idOwnOrg | 门店ID | |\n| remark | 备注信息 | |\n| showRemark | 是否显示备注(boolean)
\\-- 备注不为空时是 true | |\n| isGdType | 是否是工单类型单据出库(boolean)
\\-- 工单出库单是 true | |\n| saName | 服务顾问姓名
\\-- 工单出库单场景 | |\n| printCount | 打印次数 | |\n| showCustomCode | ![image](https://ddoc.f6yc.com/yuque/0/2025/png/227465/1739785277433-3b96ef23-7a4c-4df1-bf12-49cd4547de9e.png)配置出入库打印参数-是否显示材料编码(boolean) | |\n| showBusinessLabel | 配置出入库打印参数-是否显示材料业务分类(boolean) | |\n| showApplyModel | 配置出入库打印参数-是否显示材料适用车型(boolean) | |\n| showStorageName | 配置出入库打印参数-是否显示出库仓库(boolean) | |\n| showDefSeat | 配置出入库打印参数-是否显示出库货位(boolean) | |\n| showChineseAmount | 配置出入库打印参数-是否显示大写金额(boolean) | |\n| showChineseSubtotal | 配置出入库打印参数-是否显示大写行合计(boolean) | |\n| columnCount | 显示几列 | |\n| batchPrintConfig | 配置出入库打印参数-查询批次成本展示设置 0:都不展示,1:总成本(将批次成本合并),2和3:展示批次成本 | |\n| memo | 车主描述 | \\--20250925 新增 |\n| partInfoDetailMapList | | |\n| sortNumber | 序号
**通用模版追加一行合计行,显示 合计** | |\n| partShowName | 材料组合名称 | |\n| partName | 材料名称 | |\n| partBrand | 材料品牌 | \\-- 2025.02.27 新增 |\n| supplierCode | 零件号 | |\n| labelName | 业务分类 | |\n| applyModel | 适用车型 | |\n| customCode | 材料编码 | |\n| storageName | 仓库名称 | |\n| defSeat | 货位 | |\n| number | 数量
**\\-- 通用模版追加一行合计行,显示 材料出库总数** | |\n| unit | 单位 | |\n| price | 单价
\\--脱敏场景显示 _\\*_\\*\\*\\* | |\n| subtotal | 金额
\\--脱敏场景显示 _\\*_\\*\\*\\* | |\n| employeeName | 出库人 | |\n| salesEmployeeNameList | 材料行销售人员 | \\--20250925 新增 |\n| orderBatchList
\\--List> | 材料行成本相关 | |\n| orderNo | 批次号
\\-- batchPrintConfig = 1 场景下,显示 \"\"
\\-- 均价模式下,显示 \"\"
**\\-- 通用模版追加一行合计,追加行,显示 \"\"** | |\n| count | 批次出库几个
\\-- batchPrintConfig = 1 场景下,显示 \"\"
\\-- 均价模式下,显示 \"\"
**\\-- 通用模版追加一行合计,追加行,显示总数** | |\n| price | 批次单位成本
\\-- batchPrintConfig = 1 场景下,显示 \"\"
\\-- 脱敏场景显示 **\\*\\*\\*\\***
**\\-- 均价模式下,显示均价单位成本**
\\-- 通用模版追加一行合计,追加行,显示 \"\" | |\n| priceNoTax | 批次单位除税成本
\\-- batchPrintConfig = 1 场景下,显示 \"\"
\\-- 脱敏场景显示 **\\*\\*\\*\\***
**\\-- 均价模式下,显示均价单位成本**
\\-- 通用模版追加一行合计,追加行,显示 \"\" | 2025.08.14 新增 |\n| totalPrice | 批次总成本
\\-- batchPrintConfig = 1 场景下,显示合计总成本
\\-- 脱敏场景显示 **\\*\\*\\*\\***
**\\-- 均价模式下,显示均价总成本**
\\-- 通用模版追加一行合计,追加行,显示总成本 | |\n| totalPriceNoTax | 批次除税总成本
\\-- batchPrintConfig = 1 场景下,显示合计总成本
\\-- 脱敏场景显示 **\\*\\*\\*\\***
**\\-- 均价模式下,显示均价除税总成本**
\\-- 通用模版追加一行合计,追加行,显示总成本 | 2025.08.14 新增 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_185", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2025/png/227465/1739844284185-900277fc-1fd5-4da3-a36f-224e8fcc9994.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_186", + "content": "```plaintext\n{\n \"saName\":\"xuetting\",\n \"objectNameGD\":\"18551638685【苏ABF358】 LFV2A21K6A3092399 大众 速腾 1.4T 双离合变速器(DSG) 2011 速腾\",\n \"creatorName\":\"cltest\",\n \"showStorageName\":true,\n \"remark\":\"\",\n \"title\":\"流程配置ES出库单\",\n \"showSourceBillNo\":true,\n \"sumAmount\":\"860.0\",\n \"showChineseAmount\":true,\n \"billStatus\":\"完成\",\n \"sumNumber\":\"1.0\",\n \"isGdType\":true,\n \"printCount\":\"3\",\n \"billNo\":\"CKD20250116001\",\n \"showDefSeat\":true,\n \"idOwnOrg\":\"15870306745529549109\",\n \"showApplyModel\":true,\n \"memo\":\"\",\n \"partInfoDetailMapList\":[\n {\n \"employeeName\":\"cltest\",\n \"sortNumber\":\"1\",\n \"partShowName\":\" 3M 燃油宝1号 PN6868 3M (PN6868)\",\n \"defSeat\":\"A\",\n \"orderBatchList\":[\n {\n \"orderNo\":\"20211213000001\",\n \"totalPrice\":\"0.0\",\n \"price\":\"0.0\",\n \"count\":\"1.0\"\n }\n ],\n \"supplierCode\":\"PN6868\",\n \"partName\":\"3M 燃油宝1号 PN6868\",\n \"applyModel\":\"\",\n \"customCode\":\"CL0000015\",\n \"storageName\":\"主仓库\",\n \"number\":\"1.0\",\n \"unit\":\"瓶\",\n \"price\":\"860.0\",\n \"subtotal\":\"860.0\",\n \"labelName\":\"保养\",\n \"salesEmployeeNameList\": \"B2C一店新员工,B2C一店采购员\"\n \n },\n {\n \"number\":\"1.0\",\n \"subtotal\":\"860.0\",\n \"sortNumber\":\"合计\",\n \"orderBatchList\":[\n {\n \"orderNo\":\"\",\n \"totalPrice\":\"0.0\",\n \"price\":\"\",\n \"count\":\"1.0\"\n }\n ]\n }],\n \"sourceBillNo\":\"WXD20250103001\",\n \"billDate\":\"2025-01-16\",\n \"chineseAmount\":\"捌佰陆拾元整\",\n \"columnCount\":\"5\",\n \"showCustomCode\":true,\n \"showBusinessLabel\":true,\n \"batchPrintConfig\":\"3\",\n \"nowDateTime\":\"2025-02-18 10:04\",\n \"showInOutDate\":true,\n \"showChineseSubtotal\":true,\n \"objectName\":\"18551638685【苏ABF358】大众 速腾\",\n \"inOutDate\":\"2025-01-16\",\n \"showRemark\":false\n}\n```", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_187", + "content": "# 出入库单据-入库单 && 退料入库-入库单打印模版参数说明", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_188", + "content": "入库单据定制类需求模版分类(newStockInMaintainCustomPrint)--20250925新增", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_189", + "content": "HashMap resultMap", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_190", + "content": "| **字段** | **说明** | 备注 |\n| --- | --- | --- |\n| title | 门店名称+ \"入库单\" | |\n| billNo | 入库单号 | |\n| sourceBillNo | 来源单号 | |\n| showSourceBillNo | 显示来源单号 (boolean)
默认:true | |\n| billStatus | 单据状态(制单、完成) | |\n| inOutDate | 入库日期
\\-- yyyy-MM-dd | |\n| showInOutDate | 是否显示入库日期(boolean)
\\-制单是 false
\\-完成是 true | |\n| objectName | 出入库对象 | |\n| creatorName | 制单人 | |\n| billDate | 制单日期 (yyyy-MM-dd) | |\n| sumNumber | 材料总数量 | |\n| sumAmount | 总金额 
\\--脱敏场景显示 _\\*_\\*_\\*\\*_ | |\n| noTaxSumAmount | 除税总金额 
\\--脱敏场景显示 _\\*_\\*_\\*\\*_ | |\n| chineseAmount | 总金额(中文大写)
\\--脱敏场景显示 _\\*_\\*\\*\\* | |\n| chineseNoTaxSumAmount | 除税总金额(中文大写)
\\--脱敏场景显示 _\\*_\\*\\*\\* | |\n| nowDateTime | 打印当前时间 (yyyy-MM-dd HH:mm) | |\n| idOwnOrg | 门店ID | |\n| remark | 备注信息 | |\n| showRemark | 是否显示备注(boolean)
\\-- 备注不为空时是 true | |\n| isGdType | 是否是工单类型单据出库(boolean)
\\-- 工单出库单是 true | |\n| saName | 服务顾问姓名
\\-- 工单出库单场景 | |\n| printCount | 打印次数 | |\n| showCustomCode | 配置出入库打印参数-是否显示材料编码(boolean) | |\n| showBusinessLabel | 配置出入库打印参数-是否显示材料业务分类(boolean) | |\n| showApplyModel | 配置出入库打印参数-是否显示材料适用车型(boolean) | |\n| showStorageName | 配置出入库打印参数-是否显示出库仓库(boolean) | |\n| showDefSeat | 配置出入库打印参数-是否显示出库货位(boolean) | |\n| showChineseAmount | 配置出入库打印参数-是否显示大写金额(boolean) | |\n| showChineseSubtotal | 配置出入库打印参数-是否显示大写行合计(boolean) | |\n| sumSubtotal | 入库总金额
\\-- 脱敏场景显示 \\*\\*\\*\\*
\\-- 工单退-才有 | |\n| chineseSubtotal | 大写入库总金额
\\-- 脱敏场景显示 \\*\\*\\*\\*
\\-- 工单退-才有 | |\n| showReturnIn | 显示退料入库一行
\\-- 工单退-true | |\n| showSign | 【仓管签字】显示的位置
工单退-2;其它场景1 | |\n| stockInType | 退料入库
\\-- 工单退-才有 | |\n| columnCount | 显示几列 | |\n| memo | 车主描述 | \\--20250925 新增 |\n| partInfoDetailMapList | | |\n| sortNumber | 序号 | |\n| partShowName | 材料组合名称 | |\n| partName | 材料名称 | |\n| partBrand | 材料品牌 | |\n| labelName | 业务分类 | |\n| applyModel | 适用车型 | |\n| customCode | 材料编码 | |\n| storageName | 仓库名称 | |\n| defSeat | 货位 | |\n| number | 数量
**\\-- 通用模版追加一行合计行,显示 材料出库总数** | |\n| unit | 单位 | |\n| price | 单价
\\--脱敏场景显示 _\\*_\\*\\*\\* | |\n| noTaxPrice | 除税单价
\\--脱敏场景显示 _\\*_\\*\\*\\* | |\n| subtotal | 金额
\\--脱敏场景显示 _\\*_\\*\\*\\* | |\n| noTaxSubtotal | 除税金额
\\--脱敏场景显示 _\\*_\\*\\*\\* | |\n| employeeName | 入库人 | |\n| salesEmployeeNameList | 材料行销售人员 | \\--20250925 新增 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_191", + "content": "# 手工出入库-出/入库单", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_192", + "content": "HashMap resultMap", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_193", + "content": "| **字段** | **说明** | **备注** |\n| --- | --- | --- |\n| title | 出库单:门店名称+ \"出库单\"
入库单:门店名称+ \"入库单\" | |\n| billNo | 出库单号/入库单号 | |\n| sourceBillNo | 来源单号 空 | |\n| showSourceBillNo | 显示来源单号 (boolean)false | |\n| billStatus | 单据状态(制单、完成) | |\n| inOutDate | 出库日期 (yyyy-MM-dd) | |\n| showInOutDate | 是否显示出库日期(boolean) | |\n| objectName | 出入库对象 | |\n| objectNameGD | 出入库对象 | |\n| creatorName | 制单人 | |\n| billDate | 制单日期 (yyyy-MM-dd) | |\n| sumNumber | 材料总数量 | |\n| sumAmount | 总金额 
\\--脱敏场景显示 _\\*_\\*\\*\\* | |\n| chineseAmount | 总金额(中文大写)
\\--脱敏场景显示 _\\*_\\*\\*\\* | |\n| nowDateTime | 打印当前时间 (yyyy-MM-dd HH:mm) | |\n| idOwnOrg | 门店ID | |\n| remark | 备注信息 | |\n| showRemark | 是否显示备注(boolean)
-- 备注不为空时是 true | |\n| printCount | 打印次数 | |\n| showCustomCode | ![image](https://ddoc.f6yc.com/yuque/0/2025/png/227465/1739785277433-3b96ef23-7a4c-4df1-bf12-49cd4547de9e.png)
配置出入库打印参数-是否显示材料编码(boolean) | |\n| showBusinessLabel | 配置出入库打印参数-是否显示材料业务分类(boolean) | |\n| showApplyModel | 配置出入库打印参数-是否显示材料适用车型(boolean) | |\n| showStorageName | 配置出入库打印参数-是否显示出库仓库(boolean) | |\n| showDefSeat | 配置出入库打印参数-是否显示出库货位(boolean) | |\n| showChineseAmount | 配置出入库打印参数-是否显示大写金额(boolean) | |\n| showChineseSubtotal | 配置出入库打印参数-是否显示大写行合计(boolean) | |\n| columnCount | 显示几列 | |\n| batchPrintConfig | 配置出入库打印参数-查询批次成本展示设置 0:都不展示,1:总成本(将批次成本合并),2和3:展示批次成本 | |\n| partInfoDetailMapList | | |\n| sortNumber | 序号
**\\-- 通用模版追加一行合计行,显示 合计** | |\n| partShowName | 材料组合名称 (材料名称 规格型号 材料品牌 零件号) | |\n| partName | 材料名称 | |\n| partBrand | 材料品牌 -- 2025.02.27 新增 | |\n| supplierCode | 零件号 | |\n| labelName | 业务分类 | |\n| applyModel | 适用车型 | |\n| customCode | 材料编码 | |\n| storageName | 仓库名称 | |\n| defSeat | 货位 | |\n| number | 数量
**\\-- 通用模版追加一行合计行,显示 材料出库总数** | |\n| unit | 单位 | |\n| price | 单价
\\--脱敏场景显示 _\\*_\\*\\*\\* | |\n| subtotal | 金额
\\--脱敏场景显示 _\\*_\\*\\*\\* | |\n| employeeName | 出库人 | |\n| taxRate | 税率 | |\n| orderBatchList
\\--List> | 材料行成本相关 | |\n| orderNo | 批次号
\\- batchPrintConfig = 1 场景下,显示 \"\"
\\-- 均价模式下,显示 \"\"
**\\-- 通用模版追加一行合计,追加行,显示 \"\"** | |\n| count | 批次出库几个
\\-- batchPrintConfig = 1 场景下,显示 \"\"
\\-- 均价模式下,显示出库/入库个数
**\\-- 通用模版追加一行合计,追加行,显示总数** | |\n| price | 批次单位成本
\\-- batchPrintConfig = 1 场景下,显示 \"\"
\\-- 脱敏场景显示 **\\*\\*\\*\\***
**\\-- 均价模式下,显示均价单位成本**
\\-- 通用模版追加一行合计,追加行,显示 \"\"\\*\\* | |\n| priceNoTax | 批次除税单位成本
\\-- batchPrintConfig = 1 场景下,显示 \"\"
\\-- 脱敏场景显示 **\\*\\*\\*\\***
**\\-- 均价模式下,显示均价单位成本**
\\-- 通用模版追加一行合计,追加行,显示 \"\"\\*\\* | 2025.08.14 追加 |\n| totalPrice | 批次总成本
\\-- batchPrintConfig = 1 场景下,显示合计总成本
\\-- 脱敏场景显示 **\\*\\*\\*\\***
**\\-- 均价模式下,显示均价总成本**
\\-- 通用模版追加一行合计,追加行,显示总成本\\*\\*\\*\\* | |\n| totalPriceNoTax | 批次除税总成本
\\-- batchPrintConfig = 1 场景下,显示合计总成本
\\-- 脱敏场景显示 **\\*\\*\\*\\***
**\\-- 均价模式下,显示均价总成本**
\\-- 通用模版追加一行合计,追加行,显示总成本\\*\\*\\*\\* | 2025.08.14 追加 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_194", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2025/png/227465/1739842418604-54075443-f0a5-465f-ba7b-487a96b7728e.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_195", + "content": "日志关键字:+\"手工出入库单据打印入参是\"", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_196", + "content": "```plaintext\n{\n \"objectNameGD\":\"\",\n \"creatorName\":\"王◇龙\",\n \"showStorageName\":true,\n \"remark\":\"\",\n \"title\":\"ISC总店出库单\",\n \"showSourceBillNo\":false,\n \"sumAmount\":\"410.0\",\n \"showChineseAmount\":true,\n \"billStatus\":\"完成\",\n \"sumNumber\":\"2.0\",\n \"printCount\":\"5\",\n \"billNo\":\"SGC20240515001\",\n \"showDefSeat\":true,\n \"idOwnOrg\":\"4060685614490690260\",\n \"showApplyModel\":true,\n \"partInfoDetailMapList\":[\n {\n \"employeeName\":\"XN\",\n \"sortNumber\":\"1\",\n \"partShowName\":\" 材料09080112 123456 米其林 (1240)\",\n \"defSeat\":\"A-14-02\",\n \"orderBatchList\":[\n {\n \"orderNo\":\"20210909000128\",\n \"totalPrice\":\"400.0\",\n \"price\":\"400.0\",\n \"count\":\"1.0\"\n }\n ],\n \"supplierCode\":\"1240\",\n \"partName\":\"材料09080112\",\n \"applyModel\":\"大众 途安\",\n \"customCode\":\"CL090800112\",\n \"storageName\":\"主仓库\",\n \"number\":\"1.0\",\n \"unit\":\"条\",\n \"price\":\"400.0\",\n \"subtotal\":\"400.0\",\n \"labelName\":\"轮胎\"\n },\n {\n \"employeeName\":\"XN\",\n \"sortNumber\":\"2\",\n \"partShowName\":\" fnst=>1 AC德科 (FNST>=1)\",\n \"defSeat\":\"\",\n \"orderBatchList\":[\n {\n \"orderNo\":\"20201104000002\",\n \"totalPrice\":\"4.0\",\n \"price\":\"4.0\",\n \"count\":\"1.0\"\n }\n ],\n \"supplierCode\":\"FNST>=1\",\n \"partName\":\"fnst=>1\",\n \"applyModel\":\"江淮瑞风S52....\",\n \"customCode\":\"fnst>=1\",\n \"storageName\":\"总2仓\",\n \"number\":\"1.0\",\n \"unit\":\"个\",\n \"price\":\"10.0\",\n \"subtotal\":\"10.0\",\n \"labelName\":\"保养\"\n },\n {\n \"number\":\"2.0\",\n \"subtotal\":\"410.0\",\n \"sortNumber\":\"合计\",\n \"orderBatchList\":[\n {\n \"orderNo\":\"\",\n \"totalPrice\":\"404.0\",\n \"price\":\"\",\n \"count\":\"2.0\"\n }\n ]\n }\n ],\n \"sourceBillNo\":\"\",\n \"billDate\":\"2024-05-15\",\n \"chineseAmount\":\"肆佰壹拾元整\",\n \"columnCount\":\"5\",\n \"showCustomCode\":true,\n \"showBusinessLabel\":true,\n \"batchPrintConfig\":\"3\",\n \"nowDateTime\":\"2025-02-18 09:33\",\n \"showInOutDate\":true,\n \"showChineseSubtotal\":true,\n \"objectName\":\"\",\n \"inOutDate\":\"2024-05-15\",\n \"showRemark\":false\n}\n```", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_197", + "content": "# 领料详情-打印领料单", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_198", + "content": "HashMap resultMap", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_199", + "content": "| **字段** | **说明** | **备注** |\n| --- | --- | --- |\n| idOwnOrg | 门店ID | |\n| title | 门店名称+ \"领料单\" | |\n| billNo | 工单号 | |\n| nowDateTime | 打印当前时间 (yyyy-MM-dd HH:mm) | |\n| employeeName | 服务顾问 | |\n| carModel | 车型 | |\n| carNoWhole | 车牌号 | |\n| memo | 车主描述 | 2025.08.14 新增 |\n| printTimes | 打印次数 | |\n| columnCount | 显示几列 | |\n| batchPrintConfig | 配置出入库打印参数-查询批次成本展示设置 0:都不展示,1:总成本(将批次成本合并),2和3:展示批次成本 | |\n| stuffDetailVOList | | |\n| index | 序号
**\\-- 通用模版追加一行合计行,显示 合计** | |\n| partName | 材料组合名称 (材料名称 规格型号 材料品牌 零件号) | |\n| unit | 单位 | |\n| defSeatList | 货位 | |\n| salesEmployeeNameList | 销售人员
List | 8.14新增 |\n| orderBatchList
\\--List> | 材料行成本相关 | |\n| orderNo | 批次号
\\- batchPrintConfig = 1 场景下,显示 \"\"
\\-- 均价模式下,显示 \"\"
**\\-- 通用模版追加一行合计,追加行,显示 \"\"** | |\n| count | 批次出库几个
\\-- batchPrintConfig = 1 场景下,显示 \"\"
\\-- 均价模式下,显示出库/入库个数
**\\-- 通用模版追加一行合计,追加行,显示总数** | |\n| price | 批次单位成本
\\-- batchPrintConfig = 1 场景下,显示 \"\"
\\-- 脱敏场景显示 **\\*\\*\\*\\***
**\\-- 均价模式下,显示均价单位成本**
\\-- 通用模版追加一行合计,追加行,显示 \"\"\\*\\* | |\n| priceNoTax | 批次除税单位成本
\\-- batchPrintConfig = 1 场景下,显示 \"\"
\\-- 脱敏场景显示 **\\*\\*\\*\\***
**\\-- 均价模式下,显示均价单位成本**
\\-- 通用模版追加一行合计,追加行,显示 \"\"\\*\\* | 2025.08.14 追加 |\n| totalPrice | 批次总成本
\\-- batchPrintConfig = 1 场景下,显示合计总成本
\\-- 脱敏场景显示 **\\*\\*\\*\\***
**\\-- 均价模式下,显示均价总成本**
\\-- 通用模版追加一行合计,追加行,显示总成本\\*\\*\\*\\* | |\n| totalPriceNoTax | 批次除税总成本
\\-- batchPrintConfig = 1 场景下,显示合计总成本
\\-- 脱敏场景显示 **\\*\\*\\*\\***
**\\-- 均价模式下,显示均价总成本**
\\-- 通用模版追加一行合计,追加行,显示总成本\\*\\*\\*\\* | 2025.08.14 追加 |", + "metadata": { + "chunk_type": "md_section", + "source_file": "出_入库单据打印.md", + "kb_name": "" + } + }, + { + "id": "chunk_200", + "content": "| 字段 | 含义 | 是否必有 | 类型 |\n| --- | --- | --- | --- |\n| title | 打印抬头(门店简称) | | String |\n| billNo | 工单号 | | String |\n| creatorName | 制单人 | | String |\n| printTime | 打印时间 | | String |\n| naEmployee | 服务顾问 | | String |\n| billDate | 进厂日期 | | String |\n| deliveryTime | 交车时间(出厂时间) | | String |\n| naCustomer | 车主姓名 | | String |\n| cellPhone | 车主电话 | | String |\n| carModel | 车型 | | String |\n| carNoWhole | 车牌号 | | String |\n| vin | 车辆VIN码 | | String |\n| amountAll | 小计 | | BigDecimal |\n| serviceDetailVOList | 协作项目集合 | | List |", + "metadata": { + "chunk_type": "md_section", + "source_file": "协作单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_201", + "content": "## CooperationServicePrintAttribute", + "metadata": { + "chunk_type": "md_section", + "source_file": "协作单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_202", + "content": "| 字段 | 含义 | 是否必有 | 类型 |\n| --- | --- | --- | --- |\n| serviceName | 工单项目名称 | | String |\n| cooperationServiceName | 协作项目名称 | | String |\n| cooperationOrgName | 协作门店 | | String |\n| auditStatus | 审核状态 | | String |\n| cooperationCost | 协作成本 | | BigDecimal |", + "metadata": { + "chunk_type": "md_section", + "source_file": "协作单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_203", + "content": "> 更新: 2023-08-28 16:06:07 原文: ", + "metadata": { + "chunk_type": "md_section", + "source_file": "协作单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_204", + "content": "| 字段 | 含义 | 是否必有 | 类型 |\n| --- | --- | --- | --- |\n| title | 打印抬头(门店名称+\"新增项目确认单\") | | String |\n| sourceBillNo | 关联工单号 | | String |\n| printTime | 打印时间 | | String |\n| naEmployee | 服务顾问 | | String |\n| arrivalTime | 进厂日期 | | String |\n| deliveryTime | 交车时间 | | String |\n| naCustomer | 车主姓名 | | String |\n| cellPhone | 车主电话 | | String |\n| repairPerson | 送修人 | | String |\n| repairPersonContact | 送修人联系方式 | | String |\n| carModel | 车型 | | String |\n| carNoWhole | 车牌号 | | String |\n| carColor | 车身颜色 | | String |\n| engineCode | 发动机号 | | String |\n| vin | 车辆VIN码 | | String |\n| mileage | 进厂里程 | | String |\n| oilCapacity | 进厂油量 | | String |\n| merchantAddress | 商家联系地址 | | String |\n| merchantTel | 商家联系方式(固定电话) | | String |\n| merchantPhone | 商家联系方式(手机) | | String |\n| workHourPriceSubtotal | 工时费(小计) | | String |\n| amountSubtotal | 材料费(小计) | | String |\n| attachedServiceVoList | 增项服务项目集合 | | List |\n| attachedStuffVoList | 增项配件材料集合 | | List |", + "metadata": { + "chunk_type": "md_section", + "source_file": "增项单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_205", + "content": "**ServicePrintAttribute**", + "metadata": { + "chunk_type": "md_section", + "source_file": "增项单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_206", + "content": "| 字段 | 含义 | 是否必有 | 类型 |\n| --- | --- | --- | --- |\n| serviceName | 工单项目名称 | | String |\n| labelName | 业务分类名称 | | String |\n| customCode | 项目编码 | | String |\n| price | 工时单价 | | Double |\n| workHour | 工时 | | Double |\n| number | 项目数量 | | Integer |\n| discount | 折扣 | | Double |\n| discountedSubtotal | 折后金额 | | Double |\n| subtotal | 金额 | | Double |\n| serviceMemo | 项目备注 | | String |\n| isMember | 当前项目是否使用会员 | | Integer |\n| nameMember | 会员项目的来源名(如套餐代码) | | String |\n| empNameStr | 服务项目明细对应修理工名称组装字符串 | | String |", + "metadata": { + "chunk_type": "md_section", + "source_file": "增项单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_207", + "content": "If you get gains,please give a like", + "metadata": { + "chunk_type": "md_section", + "source_file": "增项单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_208", + "content": "**PartPrintAttribute**", + "metadata": { + "chunk_type": "md_section", + "source_file": "增项单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_209", + "content": "| 字段 | 含义 | 是否必有 | 类型 |\n| --- | --- | --- | --- |\n| partName | 材料名称 | | String |\n| labelName | 业务分类名称 | | String |\n| partBrand | 配件品牌 | | String |\n| customCode | 材料编码 | | String |\n| price | 单价 | | Double |\n| number | 材料数量 | | Integer |\n| unit | 单位 | | String |\n| discount | 折扣 | | Double |\n| discountedSubtotal | 折后金额 | | Double |\n| subtotal | 金额 | | Double |\n| partMemo | 材料备注 | | String |\n| isMember | 当前项目是否使用会员 | | Integer |\n| nameMember | 会员项目的来源名(如套餐代码) | | String |\n| employeeName | 员工名称 | | String |\n| empNameStr | 材料明细对应修理工名称组装字符串 | | String |", + "metadata": { + "chunk_type": "md_section", + "source_file": "增项单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_210", + "content": "> 更新: 2023-09-05 10:34:22 原文: ", + "metadata": { + "chunk_type": "md_section", + "source_file": "增项单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_211", + "content": "| 字段 | 含义 | 是否必有 | 类型 |\n| --- | --- | --- | --- |\n| printOrgName | 打印抬头 | | String |\n| orgName | 维修厂名称 | | String |\n| billNo | 工单号 | | String |\n| naEmployee | 服务顾问 | | String |\n| employeePhone | 服务顾问手机号 | | String |\n| naCustomer | 单位名称(客户姓名) | | String |\n| carNoWhole | 车牌号整体 = carPrefix + carNo | | String |\n| cellPhone | 联系电话(客户) | | String |\n| repairPerson | 送修人 | | String |\n| repairPersonContact | 送修人联系方式 | | String |\n| billDate | 进厂日期 | | String |\n| deliveryTime | 交车时间(出厂时间) | | String |\n| mileage | 出厂里程(进厂里程) | | BigDecimal |\n| oilCapacity | 当前油量 | | String |\n| vin | 车辆VIN码 | | String |\n| carModelShort | 车型简称 | | String |\n| signaturePhotoUrl | 签名图片 | | String |\n| orgContactNumber | 联系电话(维修厂) | | String |\n| orgDetailAddress | 联系地址(维修厂) | | String |\n| orgContactMobile | 联系电话(维修厂) | | String |\n| printContentEntrust | 委托单免责条款 | | String |\n| serviceSubtotalVip | 服务项目明细小计(会员项目) | | BigDecimal |\n| stuffSubtotalVip | 材料收入小计(会员项目) | | BigDecimal |\n| serviceSubtotalAll | 工时费小计 | | BigDecimal |\n| stuffSubtotalAll | 材料费小计 | | BigDecimal |\n| serviceList | 工单对应项目集合 | | List |\n| | | | |\n| | | | |\n| | | | |\n| | | | |\n| | | | |", + "metadata": { + "chunk_type": "md_section", + "source_file": "委托单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_212", + "content": "## ServicePrintAttribute", + "metadata": { + "chunk_type": "md_section", + "source_file": "委托单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_213", + "content": "| 字段 | 含义 | 是否必有 | 类型 |\n| --- | --- | --- | --- |\n| serviceName | 项目名称 | | String |\n| price | 工时单价 | | BigInteger |\n| workHour | 工时 | | BigInteger |\n| subtotal | 金额 | | BigInteger |\n| serviceMemo | 附加信息备注 | | String |\n| isMember | 当前项目是否使用会员 | | Integer |\n| empNameStr | 服务项目明细对应修理工名称组装字符串 | | String |\n| | | | |\n| | | | |", + "metadata": { + "chunk_type": "md_section", + "source_file": "委托单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_214", + "content": "> 更新: 2022-11-30 15:56:54 原文: ", + "metadata": { + "chunk_type": "md_section", + "source_file": "委托单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_215", + "content": "# 定金单打印接口文档", + "metadata": { + "chunk_type": "md_section", + "source_file": "定金单打印接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_216", + "content": "# 定金单打印接口文档", + "metadata": { + "chunk_type": "md_section", + "source_file": "定金单打印接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_217", + "content": "| 字段 | 含义 | 类型 |\n| --- | --- | --- |\n| title | 标题(门店名称) | String |\n| abbreviation | 门店简称 | String |\n| billNO | 定金单号 | String |\n| printTime | 打印时间 | String |\n| customerName | 客户姓名 | String |\n| cellPhone | 手机号码 | String |\n| carNo | 适用车辆(顿号、隔开) | String |\n| orgName | 适用门店(顿号、隔开) | String |\n| balanceStatus | 结算状态 | String |\n| receivedAmount | 已收金额 | Double |\n| amount | 收款交易金额 | Double |\n| amountAll | 定金单收款小计 | Double |\n| preRefundBalance | 定金单退款前余额 | Double |\n| advancesReceivedBalance | 定金单收款后剩余面额 | Double |\n| memo | 定金备注 | String |\n| settlePerson | 结算人 | String |\n| employeeName | 收款人 | String |\n| businessDate | 收款时间 | String |\n| billDate | 交易时间 | String |\n| transactionDate | 交易时间 | String |\n| detailAddress | 联系地址 | String |\n| contactMobile | 联系方式(手机+固定电话) | String |\n| naServicePerson | 服务顾问 | String |\n| gatheringList | 收款方式 | List |\n| L paymentType | 支付方式 | String |\n| L amount | 金额 | BigDecimal |\n| relationServices | 适用项目列表 | List |\n| L infoId | 项目id | BigInteger |\n| L infoName | 项目名称 | String |\n| L labelName | 业务分类 | String |\n| relationParts | 适用材料列表 | List |\n| L infoId | 材料id | BigInteger |\n| L infoName | 材料名称 | String |\n| L labelName | 业务分类 | String |\n| relationCars | 适用车辆列表 | List |\n| L idCar | 车辆信息id | BigInteger |\n| L carNo | 车牌号 | String |\n| L vin | vin码 | String |", + "metadata": { + "chunk_type": "md_section", + "source_file": "定金单打印接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_218", + "content": "```plaintext\n收款收款{\n \"data\": {\n \"preRefundBalance\": 20000,\n \"memo\": \"我是备注。\",\n \"title\": \"演示主店\",\n \"carNo\": \"藏AVB2131\",\n \"naServicePerson\": \"唐铭远\",\n \"contactMobile\": \"15051779785\",\n \"employeeName\": \"刘思杰\",\n \"amount\": 10000,\n \"orgName\": \"演示主店测试、第一分店\",\n \"advancesReceivedBalance\": 10000,\n \"amountAll\": 10000,\n \"balanceStatus\": \"7100\",\n \"billDate\": \"2024-07-11 16:27:49\",\n \"businessDate\": \"2024-07-24 14:49:01\",\n \"receivedAmount\": 10000,\n \"abbreviation\": \"演示主店测试\",\n \"transactionDate\": \"2024-07-11 16:27:49\",\n \"relationServices\": [\n {\n \"infoName\": \"龙膜全车贴膜(不含撕膜)\",\n \"infoId\": \"10545055918005551735\",\n \"infoType\": 1,\n \"id\": \"239\",\n \"labelName\": \"其他\",\n \"idSubscription\": \"11159\"\n }\n ],\n \"customerName\": \"牛洋\",\n \"gatheringList\": [\n {\n \"amount\": 4000,\n \"paymentType\": \"支付宝\"\n },\n {\n \"amount\": 3000,\n \"paymentType\": \"现金\"\n },\n {\n \"amount\": 3000,\n \"paymentType\": \"挂账\"\n }\n ],\n \"detailAddress\": \"西藏自治区那曲市班戈县西藏自治区那曲市班戈县北拉镇邮政所\",\n \"billNO\": \"DJD20240711001\",\n \"cellPhone\": \"17625046227\",\n \"printTime\": \"2024-07-11 17:28:08\",\n \"relationParts\": [\n {\n \"infoName\": \"奔腾CI-4 15W40 4*4L 胜牌 (706650)\",\n \"infoId\": \"10545055918005692400\",\n \"infoType\": 2,\n \"id\": \"240\",\n \"labelName\": \"业务分类测试\",\n \"idSubscription\": \"11159\"\n }\n ],\n \"relationCars\": [\n {\n \"carNo\": \"AV616E\",\n \"vin\": \"LSVAA49J132047371\",\n \"idCar\": 15809106713748983890\n }\n ],\n },\n \"storeId\": 4060685614487994527,\n \"tempId\": 41\n}\n```\n> 更新: 2024-07-25 20:54:41 原文: ", + "metadata": { + "chunk_type": "md_section", + "source_file": "定金单打印接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_219", + "content": "# 工单结算单接口文档", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_220", + "content": "# 打印单最新接口参数", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_221", + "content": "#### maintain接口", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_222", + "content": "**接口:/print/dispatchPrint/genUrl**", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_223", + "content": "**方法:post**", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_224", + "content": "```plaintext\n{\n \"pkId\": \"14581820313319918809\",\n \"rowCode\": \"costSettlePrint\",\n \"rowId\": \"12\"\n}\n```\n```plaintext\n{\n \"code\": 200,\n \"data\": {\n \"url\": \"http://s1.f6yc.com/printserver/test/printFile/201912/191213154046701.pdf\"\n },\n \"message\": \"SUCCESS\"\n}\n```", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_225", + "content": "#### erp接口", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_226", + "content": "**/print/getPrintPDFPath.do**", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_227", + "content": "templateId=56&templateType=newSettlePrint&idSourceBill=10546443563897503197", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_228", + "content": "**rest  get**", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_229", + "content": "**支持各种新版打印类型**", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_230", + "content": "```plaintext\n{\n \"code\": 200,\n \"data\": \"http://s1.f6yc.com/printserver/test/printFile/201912/191213154046701.pdf\",\n \"message\": \"SUCCESS\"\n}\n```", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_231", + "content": "#### jasper取参对照", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_232", + "content": "```plaintext\n{\n \"data\": {\n \"cellPhone\": \"15421562365\", //联系电话\n \"naCustomer\": \"0322新\",\t\t\t//单位名称\n \"repairPerson\": \"\",\t\t\t\t\t //送修人\n \"carOwnerName\":\"\",\t // 车辆所有人\n \"accountNumber\": \"\",\t\t\t\t //账号\n \"billNo\": \"GD20190517001\", //工单号\n \"carNoWhole\": \"苏1542\", //车牌号\n \"\" \n \"carColor\":\"\" //车身颜色\n \"orgDetailAddress\": \"江苏省盐城市阜宁县豆豆\",//联系地址\n \"vin\": \"11111111111111111\", //车辆VIN码\n \"naEmployee\": \"员工1(旧1)\",\t\t //服务顾问\n \"billDate\": \"2019-05-17 11:49\",//进厂日期\n \"businessTypeName\": \"维修\",\t\t //维修类别\n \"deliveryTime\": \"2019-05-17 12:49\",//交车时间(出厂时间)\n \"email\": \"126544@qq.com\",\t\t\t\t\t //组织邮件\n \"maintainType\": \"GD\",\t\t\t\t\t\t\t //工单类型\n \"billStatus\":\"6300\",\t\t\t\t\t\t\t //单据状态\n \"orgContactMobile\": \"15315256232\", //联系电话\n \"memo\": \"\",\t\t\t\t\t\t\t\t\t\t\t\t //工单备注\n \"orgMemo\":\"\",\t\t\t\t\t\t\t\t\t\t\t// 门店备注\n \"carMemo\":\"\",\t\t\t\t\t\t\t\t\t\t\t// 车辆备注\n \"printCount\": \"1\",\t\t\t\t\t\t\t\t //打印次数\n \"orgContactNumber\": \"\",\t\t\t\t\t\t //联系电话-承修方信息\n \"carSeriesName\": \"商用车\",\t\t\t\t\t //车系名称\n \"carBrandName\": \"商用车\",\t\t\t\t\t //品牌名称\n \"balanceStatus\": \"7000\",\t\t\t\t\t //结算状态\n \"printTime\": \"2019-07-26 11:43:48\",//打印时间\n \"firstSettlementTime\":\"2019-07-26 11:43:48\",//结算时间(第一次收款时间)\n \"orgName\": \"新公司测试\",\t\t\t\t\t\t //单位名称-承修方信息\n \"abbreviation\": \"门店简称\",\t\t\t\t\t\t //门店简称\n \"engineNumber\": \"123\",\t\t\t\t\t\t //发动机号\t\n \"transmissionNo\": \"123\", //变速箱号\n \"creationtime\": \"2019-05-17 11:50:46.0\",//创建时间\n \"creatorName\": \"员工1(旧1)\",\t\t\t\t //创建人名称\n \"employeePhone\":\"18734033191\", //服务顾问手机号\n \"paymentTypeDetails\":\"记账\", //支付方式(记账公司)汇总\n \"bankAccount\": \"\",\t\t\t\t\t\t\t\t //开户银行\n \"naInsurer\":\"\", //理赔公司名称\n \"insurancepolicyNo\":\"\", //理赔单理赔保险单号\n \"mergePackageContent\": \"1\",\t\t\t\t //套餐合并标识\n \"totalStuffNum\": 1.0,\t\t\t\t //材料数量合计\n \"selfTotalStuffNum\": 0.0, //自带材料数量合计\n \"serviceNum\": \"1\", //维修项目小计\n \"spreadRate\": 0.0,\t\t\t\t\t\t\t\t //进销差价率\n \"managementCost\": 0.0,\t\t\t\t\t\t //进销差价合计\n \"amountAll\": 160.0,\t\t\t\t\t\t\t\t //应收总计\n \"serviceDisCountSubTotal\": 100.0, //项目折后金额合计\n \"stuffSubtotalAll\": 60.0,\t\t\t\t\t //材料费小计\n \"serviceSubtotalAll\": 100.0,\t\t\t //工时费小计\n \"receiptAmount\": 160.0,\t\t\t\t\t\t //实收金额\n \"chineseAmount\": \"壹佰陆拾元整\", //实收金额(大写)\n \"oweAmount\": 160.0,\t\t\t\t\t\t\t\t //未收金额\t\n \"remainAmount\":1.0, //结算金额tsf\n \"receivedAmount\":1.0, //收款金额tsf\n \"settleOweAmout\":1.0, //结算单中用的待付金额(未收)\n \"settleOweAmoutChinese\":\"壹\", //待付金额大写\n \"settleReceivedAmout\":1.0, //实付金额\n \"settleReceivedAmoutChinese\":1.0, //实付金额大写\n \"totalWorkHour\": 1.0,\t\t\t\t\t\t\t //项目工时合计\n \"serviceFavourableTotal\": 52.0,\t\t //项目优惠金额合计\n \"serviceFavourableCommonTotal\": 52.0,//普通项目优惠金额合计\n \"stuffSubtotalAll\": 532.0, //材料费小计\n \"partFavourableTotal\": 102.0, //材料优惠金额合计\n \"partFavourableCommonTotal\": 92.0, //普通材料优惠金额合计\n \"stuffDisCountTotal\": 60.0,\t\t\t\t //材料折后金额合计\n \"extraCostTotal\": 0.0, //附加费小计\n \"allOtherCost\": 0.0,\t\t\t\t\t\t\t //附加费合计应收\n \"packageFavourable\": 0.0,\t\t\t\t\t //套餐优惠\n \"czkExpense\": 0.0,\t\t\t\t\t\t //储值卡消费金额\n \"vipExpense\": 0.0,\t\t\t\t\t\t\t\t //会员卡消费金额\n \"czkExpenseFavourable\": 0.0, //储值卡优惠金额\n \"czkDiscountFavourable\": 0.0, //储值卡办卡优惠金额\n \"vipExpenseFavourable\": 0.0,\t\t\t //计次卡/套餐卡优惠金额\n \"partinfoDiscountFavourable\": 0.0, //材料折扣优惠\n \"partinfoFavourable\": 0.0, \t\t\t //材料项目(非会员项目)客户等级优惠\n \"couponFavourable\": 0.0, //优惠券优惠\n \"pointFavourable\": 0.0, //积分优惠\n \"discountFavourable\": 0.0,\t\t\t\t //结算时设置的结清优惠\n \"gatheringFavourable\": 0.0,\t\t\t\t //收银时设置的收银优惠\n \"customerLevelFavourable\": 0.0, //客户级别优惠金额\n \"serviceFavourable\": 0.0,\t\t\t\t\t //服务项目(非会员项目)客户等级优惠\n \"disCountAll\": 0.0,\t\t\t\t\t\t\t\t //总优惠合计\n \"disCountAllBak\":0.0, //总优惠合计bak\n \"printContent\": \"\",\t\t\t\t\t //免责条款\n \"printContentEntrust\":\"\", //委托单免责条款\n \"mainCostList\": [ //维修结算费用集合\n {\n \"subtotal\": 60.0, //价格\n \"sortNumber\": \"1\", //序号\n \"costName\": \"材料费\" //名称\n },\n {\n \"subtotal\": 100.0,\n \"sortNumber\": \"2\",\n \"costName\": \"工时费\"\n },\n {\n \"subtotal\": 160.0,\n \"sortNumber\": \"3\",\n \"costName\": \"合计\"\n }\n ], \n \"partList\": [ //工单对应配件材料集合\n {\n \"unit\": \"个\",\t\t\t\t\t\t\t //单位\n \"isBring\": 0,\t\t\t\t\t\t\t //是否自带,1表示自带,0表示非自带\n \"discountedSubtotal\": 60.0, //折后金额\n \"price\": 60.0,\t\t\t\t\t\t //价格\n \"partName\": \"分全\",\t\t\t\t\t //材料名称\n \"number\": 1.0,\t\t\t\t\t\t\t//数量\n \"subtotal\": 60.0,\t\t\t\t\t\t//金额\n \"taxRateOutput\": 0.13, //销项税率\n \"singleFavourable\":0.0, //优惠金额\n \"partBrand\":\"\", //配件品牌\n \"spec\":\"\", //规格型号\n \"supplierCode\":\"\", //供应商编码(零件号)\n \"customCode\":\"\", //材料编码\n \"isMember\":0, //是否是会员卡材料 1是\n \"discount\":0.5, //折扣\n \"partMemo\":\"\", //备注\n \"employeeName\":\"\", //员工名称(维修技师)\n \"cargoSpace\":\"\", //货位\n \"outStockEmployeeName\":\"\", //领料人\n \"sortNumber\": \"1\"\t\t\t\t\t\t//序号\n }\n ],\n \"serviceList\": [\t\t\t\t\t\t\t\t//工单对应项目集合\n {\n \"discountedSubtotal\": 100.0,//折后金额\n \"price\": 100.0,\t\t\t\t\t\t\t//工时单价\n \"workHour\": 1.0,\t\t\t\t\t\t//工时\n \"subtotal\": 100.0,\t\t\t\t\t//金额\n \"taxRateOutput\": 0.13, //销项税率\n \"sortNumber\": \"1\",\t\t\t\t\t//序号\n \"discount\":1, //折扣\n \"singleFavourable\":0.0, //优惠金额\n \"isMember\":1, //是否是会员卡项目 1是 0否\n \"empNameStr\":\"\", //修理工\n \"unusedNumber\":1, //会员卡项目-未使用次数\n \"number\":2, //会员卡项目-总次数\n \"infiniteFlag\":1, //是否无限,0:否,1:是\n \"serviceName\": \"0322新\"\t\t //项目名称\n }\n ],\n \"cardList\": [ //会员卡列表\n {\n \"favourable\": 20, //优惠\n \"amount\": 2019799, //余额\n \"consumeAmount\":10, //本次消费金额\n \"memberCardNo\": \"123232rg\",//卡号\n \"name\": \"测试洗车卡项目2\" //卡名称\n }\n ],\n \"czkList\": [ //储值卡列表\n {\n \"favourable\": 20, //优惠\n \"amount\": 2019799, //余额\n \"consumeAmount\":10, //本次消费金额\n \"memberCardNo\": \"123232rg\",//卡号\n \"name\": \"测试洗车卡项目2\" //卡名称\n }\n ],\n \"extraPrintVo\": { //附加项目\n \"processItemName\": \"加工\", //加工条目名称\n \"checkCustomName\": \"检测费\",\t\t\t //检测费名称\n \"diagnosisCustomName\": \"诊断费\", //诊断费名称\n \"diagnosisItemName\": \"维修诊断\", //维修诊断项目\n \"diagnosisMemo\": \"\", //诊断费备注\n \"diagnosisCost\": 0.0,\t\t\t\t\t\t //诊断费\n \"commissionCustomName\": \"代办费\", //代办费名称\n \"managementCustomName\": \"管理费\", //管理费名称\n \"commissionMemo\": \"\",\t\t\t\t\t\t //代办费备注\n \"processMemo\": \"\", //加工费\n \"commissionCost\": 0.0,\t\t\t\t //代办费\n \"checkCost\": 0.0,\t\t\t\t\t\t\t\t //检测费\n \"managementCost\": 0.0,\t\t\t\t\t //管理费\n \"processCustomName\": \"加工费\", //加工费名称\n \"processCost\": 0.0,\t\t\t\t\t\t\t //加工费\n \"managementMemo\": \"\",\t\t\t\t\t\t //管理费备注\n \"checkMemo\": \"\"\t\t\t\t\t\t\t\t\t //检测费备注\n }\n },\n \"storeId\": 25965086392720693,\n \"tempId\": 123\n}\n```", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_233", + "content": "#### 参数说明(完整)", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_234", + "content": "| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| \\------基础信息 | | |\n| **billNo** | String | _工单号_ |\n| **maintainType** | String | _工单类型_ |\n| **balanceStatus** | String | _结算状态_
_\"7000\" -- 未结算(即存在待付金额)_
_\"7100\" -- 已结算_
_\"7200\"  -- 部分结算_ |\n| **creatorName** | String | _创建人名称_ |\n| **naEmployee** | String | _服务顾问_ |\n| **spreadRate** | Double | _进销差价率_ |\n| carCategoryName | String | _客户车辆分类名称_ |\n| **creationtime** | String | _创建时间_ |\n| **memo** | String | _工单备注_ |\n| **printCount** | String | _打印次数_ |\n| **printTime** | String | _打印时间_ |\n| **deliveryTime** | String | _交车时间(出厂时间),收款取收款时间,未收款完工的取完工时间,未完工的取预计交车时间_ |\n| **mergePackageContent** | String | _套餐合并标识_ |\n| **printContent** | String | _免责条款_ |\n| **engineNumber** | String | _发动机号_ |\n| **transmissionNo** | String | 变速箱号 |\n| **printMaintainGuaZi** | String | _guazi标识_ |\n| **amountAll** | Double | _应收总计_ |\n| **disCountAll** | Double | _总优惠合计_ |\n| **oweAmount** | Double | _未收金额_ |\n| **vipExpense** | Double | _会员卡消费金额_ |\n| **vipExpenseFavourable** | Double | _计次卡/套餐卡优惠金额_ |\n| **czkExpense** | Double | _储值卡消费金额_ |\n| **czkExpenseFavourable** | Double | _储值卡优惠金额_ |\n| **czkSettleFavourable** | Double | _储值卡结算优惠金额(仅未收款返回)_ |\n| **accountAmount** | Double | 记账金额 |\n| **totalOweAmount** | Double | _未付金额_ |\n| **serviceFavourable** | Double | _服务项目(非会员项目)客户等级优惠_ |\n| **partinfoFavourable** | Double | _材料项目(非会员项目)客户等级优惠_ |\n| **partinfoDiscountFavourable** | Double | _材料折扣优惠_ |\n| **pointFavourable** | Double | _积分优惠_ |\n| **packageFavourable** | Double | _套餐优惠_ |\n| **discountFavourable** | Double | _结算时设置的结清优惠_ |\n| **gatheringFavourable** | Double | _收银时设置的收银优惠_ |\n| **couponFavourable** | Double | _优惠券优惠_ |\n| **customerLevelFavourable** | Double | _客户级别优惠金额_ |\n| **customerLevelName** | String | _客户级别_ |\n| **customerDetailAddress** | String | 客户详细地址 |\n| **channelName** | String | 来店途径名称 |\n| **receiptMemo** | String | 收银备注 |\n| **customerSourceName** | String | _客户来源名称_ |\n| **carSourceName** | String | _车辆来源名称_ |\n| \\-----托修方信息 | | |\n| **naCustomer** | String | _单位名称/托修方_ |\n| **repairPerson** | String | _送修人_ |\n| **carNoWhole** | String | _车牌号整体_ |\n| **carBrandName** | String | _品牌名称_ |\n| **carSeriesName** | String | _车系名称_ |\n| carMemo | String | 车辆备注 |\n| **businessTypeName** | String | _维修类别_ |\n| **vin** | String | _车辆VIN码_ |\n| carFuelTypeNameOriginal | carFuelTypeNameOriginal | 燃料类型 |\n| **billDate** | String | _进厂日期_ |\n| **mileage** | java.math.BigDecimal | _出厂里程_ |\n| **contractNumber** | | _合同编号(空)_ |\n| **certificateNumber** | | _合格证号(空)_ |\n| **cellPhone** | String | _联系电话_ |\n| **email** | String | _组织邮件_ |\n| \\------承修方信息 | | |\n| **orgName** | String | _单位名称_ |\n| **abbreviation** | String | 门店简称 |\n| **orgContactNumber** | String | _联系电话_ |\n| **orgDetailAddress** | String | _联系地址_ |\n| **orgContactMobile** | String | _联系电话_ |\n| **bankAccount** | String | _开户银行_ |\n| **accountNumber** | String | _账号_ |\n| **businessLicenseCode** | String | 营业执照编码 |\n| \\------项目信息 | | |\n| serviceList | array | 项目条目 |\n| #### orderNumber | String | 序号(验证可用) |\n| sortNumber | String | _序号_ |\n| customCode | String | 项目编码 |\n| serviceName | String | _项目名称_ |\n| **labelName** | String | _业务分类名称_ |\n| **nameMember** | String | _会员项目的来源名_ |\n| **labelName** | String | 业务分类 |\n| price | Double | _工时单价_ |\n| workHour | Double | _工时_ |\n| subtotal | Double | _金额_ |\n| ```plaintext
taxRateOutput
``` | BigDecimal | _销项税率_ |\n| ```plaintext
singleFavourable
``` | Double | 优惠金额 |\n| discountedSubtotal | Double | _折后金额_ |\n| **serviceMemo** | String | _单据服务项目备注_ |\n| discount | Double | 折扣 |\n| unusedNumber | Integer | 会员卡项目-未使用次数 |\n| number | Integer | 会员卡项目-总次数 |\n| ```plaintext
favourableVoList
``` | List | 优惠明细 |\n| ```plaintext
discountType
``` | Integer | 优惠类型(编码) |\n| ```plaintext
discountTypeName
``` | String | 优惠类型名称 |\n| amount | Double | 优惠金额 |\n| ```plaintext
sourceId
``` | String | 优惠项目的主键,如:如果优惠项是优惠券,那么该字段为优惠券的id |\n| **memo** | String | 项目说明 |\n| **qualityCheckEmployeeName** | String | 质检人姓名 |\n| **qualityCheckEmployeeCode** | String | 质检人工号 |\n| **cooperationMemo** | String | 协作备注 |\n| **totalWorkHour** | Double | _项目工时合计_ |\n| **serviceSubtotalAll** | Double | _工时费小计_ |\n| **serviceNum** | Double | _维修项目小计_ |\n| **serviceDisCountSubTotal** | Double | _项目折后金额合计_ |\n| \\-------材料信息 | | |\n| partList | array | 材料条目 |\n| #### orderNumber | String | 序号(验证可用) |\n| sortNumber | String | _序号_ |\n| customCode | String | 材料编码 |\n| partName | String | _材料名称_ |\n| **partBrand** | String | _配件品牌_ |\n| spec | String | 规格型号 |\n| standard | String | 规格型号(旧) |\n| **partShowName** | String | _配件名称规格型号品牌_ |\n| **supplierCode** | String | _供应商编码(零件号)_ |\n| unit | String | _单位_ |\n| number | Double | _数量_ |\n| **nameMember** | String | _会员项目的来源名_ |\n| price | Double | _价格_ |\n| cost | Double | _材料成本_ |\n| subtotal | Double | _退货金额_ |\n| taxRateOutput | BigDecimal | _销项税率_ |\n| singleFavourable | Double | 优惠金额 |\n| discountedSubtotal | Double | _折后金额_ |\n| **partMemo** | String | _单据服务材料备注_ |\n| discount | Double | 折扣 |\n| **applyModel** | String | 适用车型 |\n| ```plaintext
cargoSpace
``` | String | 材料货位 |\n| **defSeats** | List | 材料货位列表 |\n| ```plaintext
favourableVoList
``` | List | 优惠明细 |\n| ```plaintext
discountType
``` | Integer | 优惠类型(编码) |\n| ```plaintext
discountTypeName
``` | String | 优惠类型名称 |\n| ```plaintext
amount
``` | Double | 优惠金额 |\n| ```plaintext
sourceId
``` | String | 优惠项目的主键,如:如果优惠项是优惠券,那么该字段为优惠券的id |\n| \\-------自带材料(新版维修/贴膜)信息 | | |\n| **bringPartList** | array | 自带材料条目 |\n| **partShowName** | String | 自带材料名称(文本) |\n| **photoList** | List | 自带图片路径(url) |\n| empNameStr | String | 技师 |\n| outStockEmployeeName | String | 领料人 |\n| **isBring** | String | _是否自带_ |\n| **selfPartList** | array | _工单对应配件自带材料集合(内容同上面材料)_ |\n| **totalStuffNum** | String | _材料数量合计_ |\n| **selfTotalStuffNum** | String | _自带材料数量合计_ |\n| **stuffSubtotalAll** | Double | _材料费小计_ |\n| **partFavourableTotal** | Double | _材料优惠金额合计_ |\n| **partFavourableCommonTotal** | Double | _普通材料优惠金额合计_ |\n| **stuffDisCountTotal** | Double | _材料折后金额合计_ |\n| **managementCost** | Double | _进销差价合计_ |\n| \\------附加费用信息 | | |\n| **extraChargeList** | | |\n| **sortNumber** | String | _序号_ |\n| **extraName** | String | _附加费名称_ |\n| **subtotal** | Double | _金额_ |\n| **memo** | String | _备注_ |\n| \\-----维修结算费用集合(江苏结算单) | | |\n| **mainCostList** | array | |\n| **sortNumber** | String | _序号_ |\n| **costName** | String | _名称_ |\n| **memo** | String | _备注_ |\n| **subtotal** | Double | _金额_ |\n| \\----_其他结算费用集合(江苏结算单)_ | | |\n| **otherCostList** | array | 内容同上 维修结算费用集合 |\n| **extraCostTotal** | Double | _附加费小计_ |\n| **allOtherCost** | Double | _附加费合计应收_ |\n| **favourableExtraCost** | Double | _附加费优惠金额_ |\n| **receiptAmount** | Double | _实收金额(已收金额-储值卡金额,如未收款,则还加入了欠款金额+客户等级优惠-积分优惠-结清优惠)_ |\n| **receiptAmountChinese** | String | _实收金额大写(逻辑同上)_ |\n| **amountReal** | Double | 工单收款后真正的实收 |\n| **chineseAmount** | String | _实收金额(大写)(逻辑同上)_ |\n| **payItemTogetherChinese** | String | _付款方式总额大写_ |\n| **payItemTogetherExcludeAccountAmountChinese** | String | 付款总额(排除记账金额)大写 |\n| **settleOweAmout** | Double | 结算单中用的待付金额(未收),使用后台逻辑算好 |\n| **settleOweAmoutChinese** | String | 待付金额大写 |\n| \\-----结算付款方式及优惠保存信息 | array | |\n| **settlementPayItemList** | | |\n| **payWay** | String | _付款方式_ |\n| **payAmount** | Double | _付款金额_ |\n| **chinesePayAmount** | String | _大写付款方式_ |\n| **accountAgreementName** | String | _记账客户名称_ |\n| \\-----付款方式信息 | array | |\n| **payItemList** | | |\n| **payWay** | String | _付款方式_ |\n| **payAmount** | Double | _付款金额_ |\n| **chinesePayAmount** | String | _大写付款方式_ |\n| \\-----附加项目(江苏结算单) | | |\n| **extraPrintVo** | obj | |\n| **commissionCustomName** | String | _代办费自定义名称_ |\n| **commissionCost** | Double | _代办费成本_ |\n| **commissionMemo** | String | _代办费备注_ |\n| **diagnosisCustomName** | String | _诊断费自定义名称_ |\n| **diagnosisCost** | Double | _诊断费成本_ |\n| **diagnosisItemName** | String | _诊断详细名称_ |\n| **diagnosisMemo** | String | _诊断费备注_ |\n| **checkCustomName** | String | _检查费自定义名称_ |\n| **checkCost** | Double | _检查费成本_ |\n| **checkMemo** | String | _检查费备注_ |\n| **processCustomName** | String | _加工费自定义名称_ |\n| **processCost** | Double | _加工费成本_ |\n| **processMemo** | String | _加工费备注_ |\n| **processItemName** | String | _加工详细名称_ |\n| **managementCustomName** | String | _管理费自定义名称_ |\n| **managementCost** | Double | _管理费成本_ |\n| **managementMemo** | String | _管理费备注_ |\n| \\-----二期新增字段 | | |\n| **oilCapacity** | String | 油量 |\n| **nextMileage** | Double | _下次保养里程(工单数据源,目前维保、洗车单读取)_ |\n| **nextMaintainDate** | String | _下次保养日期(工单数据源,目前维保、洗车单读取)_ |\n| **nextMileageRemind** | Double | _下次服务里程(服务提醒数据源,目前维修、贴膜单读取)_ |\n| **nextMaintainDateRemind** | Long | _下次服务时间(服务提醒数据源,目前维修、贴膜单读取)_ |\n| **repairPersonContact** | String | _送修人联系方式_ |\n| **memberCardNo** | String | _会员号_ |\n| **points** | String | _积分_ |\n| **czkList** | array | 储值卡列表 |\n| **name** | String | 名称 |\n| **memberCardNo** | String | 卡号 |\n| ```plaintext
**cardOwner**
``` | String | 持卡人 |\n| **amount** | Double | 金额 |\n| **cardList** | array | 套餐卡列表 |\n| **name** | String | 名称 |\n| **memberCardNo** | String | 卡号 |\n| ```plaintext
**cardOwner**
``` | String | 持卡人 |\n| **amount** | Double | 金额 |\n| **combineServiceAndPartList** | array | 项目材料组合列表 |\n| **servicePrintVo** | 参见serviceList | |\n| **partPrintVo** | 参见partList | |", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_235", + "content": "#### 1.结算前 待付 结算后实付(跟进结算状态判断,7100 为已结算)", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_236", + "content": "```plaintext\n$P{balanceStatus}.equals(\"7100\")?($P{amountAll}.subtract($P{vipExpense}).subtract($P{czkExpense}).subtract($P{serviceFavourable}.add($P{partFavourableCommonTotal}==null?BigDecimal.ZERO:$P{partFavourableCommonTotal}).add($P{serviceFavourableCommonTotal}==null?BigDecimal.ZERO:$P{serviceFavourableCommonTotal}).add($P{partinfoFavourable}).add($P{discountFavourable}).add($P{couponFavourable}).add($P{pointFavourable}).add($P{gatheringFavourable})).setScale( 2, BigDecimal.ROUND_HALF_EVEN ).toString()+($P{payItemTogether}==null?\"\":\"(\"+$P{payItemTogether}+\")\")):($P{amountAll}.subtract($P{vipExpense}).subtract($P{czkExpense}).subtract($P{serviceFavourable}.add($P{partFavourableCommonTotal}==null?BigDecimal.ZERO:$P{partFavourableCommonTotal}).add($P{serviceFavourableCommonTotal}==null?BigDecimal.ZERO:$P{serviceFavourableCommonTotal}).add($P{partinfoFavourable}).add($P{discountFavourable}).add($P{couponFavourable}).add($P{pointFavourable}).add($P{gatheringFavourable})).setScale( 2, BigDecimal.ROUND_HALF_EVEN ))\n```", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_237", + "content": "```plaintext\n$P{balanceStatus}.equals(\"7100\")?$P{payItemTogetherChinese}:$P{settleOweAmoutChinese}\n```", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_238", + "content": "# 工具类jar包附件下载:", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_239", + "content": "[请至钉钉文档查看附件《print-core-1.0.7.jar》](https://alidocs.dingtalk.com/i/nodes/vy20BglGWOexYpophlEGoZvGJA7depqY?iframeQuery=anchorId%3DX02mjljl3qzo6fk6o7712b)", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_240", + "content": "### 数字金额转中文方法调用示例:", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_241", + "content": "**数字金额**:$P{amount}==null?BigDecimal.ZERO:$P{amount} \n**转中文**:**com.f6car.printserver.core.CharacterUtil.chinese(**$P{amount}==null?BigDecimal.ZERO:$P{amount})", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_242", + "content": "### 日期时间戳转日期示例:", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_243", + "content": "**日期格式选择:**java.lang.Long", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_244", + "content": "**日期时间戳**:$P{nextMaintainDateRemind} **转为目标格式**:$P{nextMaintainDateRemind} == null ? \"\" : new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\").format(new Date($P{nextMaintainDateRemind}))", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_245", + "content": "其中,\"yyyy-MM-dd HH:mm:ss\" 根据实际需求指定,比如到日则选择 \"yyyy-MM-dd\"", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_246", + "content": "洗车单小票不支持定制,定制洗车单的模板名称必须包含“洗车单”三个字  ,否则无法显示对应模板", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_247", + "content": "> 更新: 2025-02-24 17:08:50 原文: ", + "metadata": { + "chunk_type": "md_section", + "source_file": "工单结算单接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_248", + "content": "| **最常用的基础操作** |\n| --- |\n| [1、新增静态文本](#jwTdk) |\n| [2、新增动态字段(例如想要展示结算单中的工单号)](#fKwpz) |\n| [3、列表中增减字段(例如结算单中的项目列表和材料列表)](#IUyOs) |\n| [4、新增边框和样式设置](#RKqIf) |\n| [6、保存+输出](#M31IF) |\n| [7、打印单后台配置](#gr6xz) |", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_249", + "content": "## 常用链接地址:", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_250", + "content": "###### 打印单后台地址", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_251", + "content": "[http://print.f6yc.com/print-server/ui/index.html#/template/classification](http://print.f6yc.com/print-server/ui/index.html#/template/classification)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_252", + "content": "###### 打印单模板样式", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_253", + "content": "[https://xcz.yuque.com/ombipo/rpc7ms/fbd6ay?singleDoc#](https://xcz.yuque.com/ombipo/rpc7ms/fbd6ay?singleDoc#) 《打印单各类模板样式》", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_254", + "content": "###### 打印单参数表", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_255", + "content": "[https://xcz.yuque.com/ombipo/rpc7ms/ro5fs1?singleDoc#](https://xcz.yuque.com/ombipo/rpc7ms/ro5fs1?singleDoc#) 《打印单最新接口参数》", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_256", + "content": "###### 打印单工具简易开发教程(附带案例)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_257", + "content": "[《打印单定制简易开发教程》](https://alidocs.dingtalk.com/i/nodes/dQPGYqjpJYgZGbvbCdEKGDGZWakx1Z5N?utm_scene=team_space)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_258", + "content": "jdk1.8 使用 jaspersoft6.8版本", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_259", + "content": "[请至钉钉文档查看附件《Jaspersoft Studio-6.8.0.zip》](https://alidocs.dingtalk.com/i/nodes/20eMKjyp81R0ndXdsdYe4BaDWxAZB1Gv?corpId=&iframeQuery=anchorId%3DX02mgkgykvfbfbiqcbc8b4)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_260", + "content": "[请至钉钉文档查看附件《Jaspersoft Studio-6.3.1.final.rar》](https://alidocs.dingtalk.com/i/nodes/20eMKjyp81R0ndXdsdYe4BaDWxAZB1Gv?corpId=&iframeQuery=anchorId%3DX02mki20wvdslzwftp0ao)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_261", + "content": "[请至钉钉文档查看附件《TIBCOJaspersoftStudio-6.3.1.final-mac-x86\\_64.zip》](https://alidocs.dingtalk.com/i/nodes/20eMKjyp81R0ndXdsdYe4BaDWxAZB1Gv?corpId=&iframeQuery=anchorId%3DX02mki26xyvtjfkmi00ki)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_262", + "content": "## 打印单模板修改流程", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_263", + "content": "#### 1、下载需要的模板", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_264", + "content": "###### 通过模板名称,直接到模板管理中通过模板名称查询并下载", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_265", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715248827418-8d2597e8-0ded-4cb8-9825-202074613dcc.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_266", + "content": "#### 2、打开编辑工具 TIBCO Jaspersoft Studio", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_267", + "content": "###### 打开文件夹,双击Jaspersoft Studio.exe 运行工具", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_268", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715304945610-6a9086af-c9f5-4b88-8c6b-1ef6bc11e8a0.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_269", + "content": "###### 点击File-->Open File-->选择下载的模板文件", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_270", + "content": "###### ![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715305042360-e716b275-c696-4231-b0c8-99c0566fe7c5.png)进入编辑模板的页面", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_271", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715305302215-a5f09700-28cc-4e80-a78c-e919b831e857.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_272", + "content": "#### 3、常见编辑操作", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_273", + "content": "##### 1.新增静态文本", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_274", + "content": "###### 新增组件到模板中", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_275", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715305970916-23aa4144-a215-4656-8281-0c3385aba707.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_276", + "content": "###### 双击组件编辑显示文本", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_277", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715306012526-86e4bc9d-73dc-4120-abbf-fbedcf99c47f.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_278", + "content": "###### 调整组件大小和位置参数", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_279", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715306133042-c7c17a7c-138c-4b4c-b587-11782185e910.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_280", + "content": "##### 2.新增动态字段(例如想要展示结算单中的工单号)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_281", + "content": "###### 在参数表中搜索想要的参数名称和类型:名称是:billNo  类型是文本信息=java.lang.String", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_282", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715306460522-232a3499-d104-470d-be1a-0b1fb0957331.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_283", + "content": "###### 拖拽一个 Text Field 组件到模板中", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_284", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715306292127-d6629324-8ef8-4ed8-a35e-a77d543bac2d.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_285", + "content": "###### 双击组件写入公式固定写法$P{参数名称}", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_286", + "content": "###### ![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715306617239-b7ce26f3-c520-4266-83c2-8b18196e2ea9.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_287", + "content": "###### 遇到提示:The current expression is not valid. Please verify it!;表明这个参数在模板中没有预先创建,需要手动创建参数信息", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_288", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715306763081-4495ab86-c432-455f-b06b-7b15fb0b8a3e.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_289", + "content": "###### 模板中预设参数信息:Outline-->Parameters(右键单击)-->Create Parameter", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_290", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715306875194-8d8a509a-23a8-4563-b6b7-ba6c673151e1.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_291", + "content": "###### 编辑参数信息:Name(填写参数名称);Class(数字就选择:java.math.BigDecimal   文本就选择java.lang.String)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_292", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715307033769-86f5efa1-d6e2-4d9a-a322-849079503f21.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_293", + "content": "##### 3.列表中增减字段(例如结算单中的项目列表和材料列表)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_294", + "content": "###### 例如查找材料名称,可以发现参数名是partName,是在一个名字叫partList 的列表里面的,在材料信息的列表中能使用到的参数就只有partList下的这个参数,其他参数无法在列表中直接使用(例如工单号在材料列表中展示不了)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_295", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715307395294-6a1cf006-260b-4f9e-950f-b0f34fa9c3c9.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_296", + "content": "###### 双击需要编辑的列表,进入列表编辑页面", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_297", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715308008053-5abeeebb-84ad-4fb3-994b-e0a360ea96d8.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_298", + "content": "###### 编辑方式与新增动态字段相同,但是固定写法从$P{参数名称} 改为 $F{参数名称}", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_299", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715308039626-e11f409f-014a-4146-a578-38d2cab4d1e0.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_300", + "content": "###### 提示The current expression is not valid. Please verify it!  参数没有预设时,在列表编辑页面中新增,逻辑与上面相同![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715313291292-8fe511dd-64f4-4ee6-971e-f8d1f0a7dfb0.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_301", + "content": "##### 4.新增边框和样式设置", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_302", + "content": "###### 选择需要编辑的组件,选择Boeders 进行编辑", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_303", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715308327002-0c996de2-b92b-4477-9f5d-5e68a9be188b.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_304", + "content": "#### 4、常见语法介绍", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_305", + "content": "###### 文本拼接参数:$P{参数名称}+\"特定文本内容\"  —— 例如打印单标题:$P{printOrgName}+\"结算单\"", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_306", + "content": "###### 小数保留2位小数或多位:$P{参数名称}.setScale( 保留几位小数, BigDecimal.ROUND\\_DOWN ) ——例如折后金额小计,保留2位小数:$P{stuffSubtotalAll}.setScale( 2, BigDecimal.ROUND\\_DOWN )", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_307", + "content": "###### 字符串截取:$P{参数名称}.substring(起始位置,截取长度)——例如进厂日期,保留前10位:$P{billDate}.substring(0,10)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_308", + "content": "###### 三元运算-IF判断:(关系表达式) ? 表达式1 : 表达式2 ——例如打印单标题:($P{printOrgName}==null?$P{orgName}:($P{printOrgName}.isEmpty()?$P{orgName}:$P{printOrgName}))+\"结算单\"", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_309", + "content": "###### 常见运算:", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_310", + "content": "是否相等:”==“  或者 $P{参数名称}.equals(\"文本内容\")", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_311", + "content": "加:$P{参数名称1}.add($P{参数名称2})", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_312", + "content": "减:$P{参数名称1}.subtract($P{参数名称2})", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_313", + "content": "乘:$P{参数名称1}.multiply($P{参数名称2})              ;$P{参数名称1}.multiply(new BigDecimal(1.13))", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_314", + "content": "除:$P{参数名称1}.divide($P{参数名称2}, 2, BigDecimal.ROUND_HALF_UP)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_315", + "content": "#### 4.1、高级语法介绍", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_316", + "content": "###### jar包导入:例如金额转大写,研发通过编写一个jar工具包实现特定功能,下面是导入jar包步骤", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_317", + "content": "![image.png](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/oJGq75kaYJrZ2lAK/img/882b929c-310e-4525-a463-15def4e3fac3.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_318", + "content": "![image.png](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/oJGq75kaYJrZ2lAK/img/3839a386-06ab-442a-b0e3-997afd7e0a94.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_319", + "content": "![image.png](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/oJGq75kaYJrZ2lAK/img/76ef341c-a67b-4f30-816d-73497eb8d703.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_320", + "content": "启用成功后按照研发语法实现具体功能,比如![image.png](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/oJGq75kaYJrZ2lAK/img/0d61f87d-719a-4af6-bc34-c06a2fabf5b8.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_321", + "content": "###### 从list中取特定的值写入外层表格中:该公式使用jdk1.8语法,jaspersoft6.8可用", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_322", + "content": "下面表达式的意思是,从支付方式列表(payItemList) 中找到", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_323", + "content": "支付方式(payWay)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_324", + "content": "第一个支付金额(payAmount)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_325", + "content": "```java\n$P{payItemList}.getData().stream()\n .filter(map -> \"记账\".equals(map.get(\"payWay\")))\n .map(map -> {\n Object amt = map.get(\"payAmount\");\n return amt == null ? BigDecimal.ZERO : new BigDecimal(amt.toString());\n })\n .findFirst()\n .orElse(BigDecimal.ZERO)\n```", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_326", + "content": "#### 5、格式预览", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_327", + "content": "###### 工具中只能预览模板的样式,涉及到参数判断的需要将模板上传到门店后在F6系统工单中打印预览", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_328", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715311314096-6d38326f-8c42-4e22-b8c4-59f23f1ad075.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_329", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715311442290-12854551-e373-40ea-b19a-c0d9fe59393b.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_330", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715311456159-163f97ae-fb32-46b3-8548-42fd39bc66e4.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_331", + "content": "#### 6、保存+输出", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_332", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715311668513-2cf8626b-3d4f-4a8d-8a0e-71b2e1300189.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_333", + "content": "###### 选择.jrxml的文件,右键选择Compile Report 进行编译", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_334", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715311723006-c971ca0b-90d1-4568-90f4-78861c437d62.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_335", + "content": "###### 选择.jasper的文件,右键选择Export Files to...", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_336", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715311841522-716ed408-0069-449d-a460-4a483c724ca5.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_337", + "content": "###### 另存到桌面", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_338", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715311906058-9ae58e93-f4d9-487d-96fa-e87450747f8c.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_339", + "content": "#### 7、打印单后台配置", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_340", + "content": "###### 新增/编辑模板", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_341", + "content": "注意:不要随便删除模板,删除一定要再三确认清楚,避免出现误操作的情况(删除不可恢复)  预计5.16号后 对删除的功能二次确认进行优化。", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_342", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715312153740-d570281c-2e63-432a-885f-2d4d703a810d.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_343", + "content": "###### 模板名称命名规范", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_344", + "content": "* **简单调整**\\*\\***\\*\\*模板名称:基础表+特殊修改需求**", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_345", + "content": "**模板编码:修改人姓名首字母英文大写+模板分类+日期**", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_346", + "content": "**模板备注:模板各修改点**", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_347", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/245629/1715334288403-7a693418-2995-4707-a36c-87ee83a0e7f5.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_348", + "content": "* **定制调整**\\*\\***\\*\\*模板名称:门店名称+定制**", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_349", + "content": "**模板编码:修改人姓名首字母英文大写+模板分类+日期**", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_350", + "content": "**模板备注:模板各修改点**", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_351", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/245629/1715334472806-b911e666-83b7-4512-bdc0-d08996377303.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_352", + "content": "###### 给指定门店配置打印单", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_353", + "content": "![image](https://ddoc.f6yc.com/yuque/0/2024/png/247998/1715312294997-84f80cc6-8058-4dbc-988d-3681bd2ece7e.png)", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_354", + "content": "#### 8、常见打印分类及对应的通用模板", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_355", + "content": "| 常见打印单分类 | 对应系统上的打印模块 | 通用模板名称 | 模板编码 |\n| --- | --- | --- | --- |\n| 新结算单打印 | 维保单 | F6标准结算单(壹) | newSettleFirst |\n| 结算单-新 | 除维保单的其他单据(维修单、贴膜单......) | 无 | 无 |\n| 附表-新 | 新附表 | 无 | 无 |\n| 销售单 | 销售单 | 销售单(日期版) | xiaoshodanriqiban |\n| 洗车单 | 洗车单 | 洗车单 | wash01 |\n| 报价单打印 | 报价单 | 报价单打印 | quotationPrint |\n| 新库存入库单打印 | 入库单 | 新库存入库单打印 | 9001 |\n| 新库存出库单打印 | 出库单 | 新库存出库单打印 | 9002 |\n| | | | |\n| **注:采购单和采购退货单走打印平台定制,先向赵亚妮提供门店编码、门店名称,开通后再上传配置门店生效** | | | |", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_356", + "content": "**注意:结算单要在收款后页面打印,请确保模板名称中包含“结算单”三个字**", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_357", + "content": "> 更新: 2025-05-16 13:54:24 原文: ", + "metadata": { + "chunk_type": "md_section", + "source_file": "打印单定制介绍.md", + "kb_name": "" + } + }, + { + "id": "chunk_358", + "content": "| 字段 | 含义 | 是否必有 | 类型 |\n| --- | --- | --- | --- |\n| partDetailVoList | 材料列表 | | List |\n| serviceDetailVoList | 项目列表 | | List |\n| amountChinese | 商品金额中文大写 | | |\n| realAmountWithoutCardChinese | 待付金额中文大写 | | |", + "metadata": { + "chunk_type": "md_section", + "source_file": "报价单接口参数.md", + "kb_name": "" + } + }, + { + "id": "chunk_359", + "content": "## QuotationPartDetailPrintVo", + "metadata": { + "chunk_type": "md_section", + "source_file": "报价单接口参数.md", + "kb_name": "" + } + }, + { + "id": "chunk_360", + "content": "| 字段 | 含义 | 是否必有 | 类型 |\n| --- | --- | --- | --- |\n| pkId | 无意义主键 | 是 | BigInteger |\n| idOwnOrg | 门店id | 是 | BigInteger |\n| idQuotation | 报价单id | 是 | BigInteger |\n| idPart | 材料id | 否 | BigInteger |\n| partName | 材料名称(非组合,对应材料名称字段) | 是 | String |\n| partShowName | 材料在界面上显示的名称(组合供应商编码等信息) | 是 | String |\n| idMdmPart | 云材料ID | 否 | String |\n| labelId | 业务分类id | 否 | BigInteger |\n| labelName | 荣誉的业务分类名称 | 否 | String |\n| number | 数量 | 是 | BigDecimal |\n| price | 单价 | 是 | BigDecimal |\n| subtotal | 总价 | 是 | BigDecimal |\n| idEmployee | 服务员工id | 否 | String |\n| employeeName | 服务员工姓名 | 否 | String |\n| isMember | 套餐2,套餐卡1,普通0 | 是 | byte |\n| memo | 备注 | 否 | String |\n| discount | 折扣 | 是 | BigDecimal |\n| realSubtotal | 折后总计 | 是 | BigDecimal |\n| stockNumber | 门店库存数量 | 否 | BigDecimal |\n| groupId | 公司id | 是 | BigInteger |\n| unit | 单位 | 否 | String |\n| spec | 规格型号 | 否 | String |\n| brand | 品牌名称 | 否 | String |\n| brandId | 品牌id | 否 | String |\n| supplierCode | 零件号 | 否 | String |", + "metadata": { + "chunk_type": "md_section", + "source_file": "报价单接口参数.md", + "kb_name": "" + } + }, + { + "id": "chunk_361", + "content": "## QuotationServiceDetailPrintVo", + "metadata": { + "chunk_type": "md_section", + "source_file": "报价单接口参数.md", + "kb_name": "" + } + }, + { + "id": "chunk_362", + "content": "| 字段 | 含义 | 是否必有 | 类型 |\n| --- | --- | --- | --- |\n| pkId | 无意义主键 | 是 | BigInteger |\n| customCode | 项目编码 | 否 | String |\n| serviceName | 项目名称 | 是 | String |\n| workHour | 工时 | 否 | BigDecimal |\n| price | 单价 | 是 | BigDecimal |\n| subtotal | 工时费 | 是 | BigDecimal |\n| discount | 折扣 | 是 | BigDecimal |\n| realSubtotal | 折后金额 | 是 | BigDecimal |\n| memo | 备注 | 否 | String |", + "metadata": { + "chunk_type": "md_section", + "source_file": "报价单接口参数.md", + "kb_name": "" + } + }, + { + "id": "chunk_363", + "content": "> 更新: 2025-05-26 14:19:50 原文: ", + "metadata": { + "chunk_type": "md_section", + "source_file": "报价单接口参数.md", + "kb_name": "" + } + }, + { + "id": "chunk_364", + "content": "# 新版附表打印接口文档", + "metadata": { + "chunk_type": "md_section", + "source_file": "新版附表打印接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_365", + "content": "# 新版附表打印接口文档", + "metadata": { + "chunk_type": "md_section", + "source_file": "新版附表打印接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_366", + "content": "| 字段 | 含义 | 类型 |\n| --- | --- | --- |\n| billNo | 附表单号 | String |\n| fromBillNo | 附表源工单号 | String |\n| fromMaintainType | 来源单据类型 | String |\n| billDate | 进厂日期 | String |\n| creatorName | 创建人名称 | String |\n| creationtime | 创建时间 | String |\n| naEmployee | 服务顾问 | String |\n| employeePhone | 服务顾问手机号 | String |\n| businessTypeName | 业务类型 | String |\n| nextMaintainDate | 下次保养日期 | String |\n| oilCapacity | 当前油量 | String |\n| mileage | 出厂里程(进厂里程) | Double |\n| nextMileage | 下次保养里程 | Double |\n| vin | 车辆VIN码 | String |\n| carNoWhole | 车牌号 | String |\n| carModel | 品牌车型全称 | String |\n| carModelShort | 车型简称 | String |\n| carColor | 车身颜色 | String |\n| carCategoryName | 车辆分类名称 | String |\n| carBrandName | 车辆品牌名称 | String |\n| carSeriesName | 车系名称 | String |\n| engineNumber | 发动机号 | String |\n| transmissionNo | 变速箱号 | String |\n| registerDate | 车辆注册日期 | String |\n| cardDate | 车辆发证日期 | String |\n| carNatureOfUseName | 车辆使用性质 | String |\n| carFuelTypeName | 车辆燃料(能源)类型 | String |\n| carSourceName | 车辆来源 | String |\n| carOwnerName | 车辆所有人姓名 | String |\n| naCustomer | 客户姓名 | String |\n| customerSourceName | 客户来源名称 | String |\n| customerDetailAddress | 客户详细地址 | String |\n| cellPhone | 联系电话(客户) | String |\n| memberCardNo | 会员卡号 | String |\n| points | 客户积分 | String |\n| customerLevelName | 客户等级名称 | String |\n| repairPerson | 送修人 | String |\n| repairPersonContact | 送修人联系方式 | String |\n| memo | 备注 | String |\n| completeDate | 完工日期 | String |\n| firstGatheringTime | 初次收款时间 | String |\n| estimatedDeliveryTime | 预计交车时间 | String |\n| deliveryTime | 交车时间 | String |\n| printContent | 免责条款 | String |\n| printContentJs | 免责条款江苏 | printContentJs |\n| storeLogo | 门店logo | String |\n| orgName | 门店名称 | String |\n| orgMemo | 门店备注 | String |\n| orgContacts | 联系人(维修厂) | String |\n| orgContactNumber | 联系电话(维修厂) | String |\n| orgDetailAddress | 联系地址(维修厂) | String |\n| orgContactMobile | 联系电话(维修厂) | String |\n| fax | 传真 | String |\n| email | 组织邮件 | String |\n| bankAccount | 开户银行 | String |\n| accountNumber | 账号 | String |\n| businessLicenseCode | 企业执照号 | String |\n| channelName | 来店途径名称 | String |\n| printOrgName | 打印抬头(需读取配置) | String |\n| amountAll | 应收总计(合计金额) | Double |\n| amountAllChinese | 应收总计(合计金额)中文大写 | String |\n| disCountAll | 总优惠合计(附表:项目优惠+材料优惠+收银优惠) | Double |\n| disCountAllBak | 项目优惠+材料优惠+收银优惠,等同于disCountAll | Double |\n| amountReal | 实收金额 | Double |\n| chineseAmount | 实收金额(中文大写) | Double |\n| oweAmount | 未收金额 | Double |\n| vipExpense | 套餐卡消费金额(附表为0) | Double |\n| vipExpenseFavourable | 套餐卡优惠金额(附表为0) | Double |\n| czkExpense | 储值卡消费金额(附表为0) | Double |\n| czkExpenseFavourable | 储值卡优惠金额(附表为0) | Double |\n| remainAmount | 结算金额tsf
附表:应收-项目优惠-材料优惠 | Double |\n| receivedAmount | 收款金额tsf
附表:等同于已收金额 | Double |\n| serviceList | 项目集合 | List |\n| └─ sortNumber | 序号 | String |\n| └─ orderNumber | 序号(全部) | String |\n| └─ name | 名称 | String |\n| └─ serviceName | 项目名称 | String |\n| └─ labelName | 业务分类名称 | String |\n| └─ price | 工时单价 | Double |\n| └─ workHour | 工时 | Double |\n| └─ subtotal | 金额 | Double |\n| └─ singleFavourable | 优惠金额 | Double |\n| └─ discountedSubtotal | 折后金额 | Double |\n| └─ serviceMemo | 附加信息备注 | String |\n| └─ discount | 折扣 | Double |\n| └─ empNameStr | 服务项目明细对应修理工名称组装字符串 | String |\n| └─ infiniteFlag | 是否无限,0:否,1:是 | Integer |\n| └─ customCode | 自定义编码 | String |\n| totalWorkHour | 项目工时合计 | Double |\n| totalWorkHourVip | VIP项目工时合计(附表为0) | Double |\n| serviceSubtotalAll | 工时费小计 | Double |\n| serviceSubtotalVip | 服务项目明细小计(会员项目,附表为0) | Double |\n| serviceNum | 维修项目小计 | String |\n| serviceFavourable | 服务项目(非会员项目)客户等级优惠(附表为0) | Double |\n| serviceDiscountFavourable | 项目优惠 | Double |\n| serviceFavourableTotal | 项目优惠金额合计 | Double |\n| serviceFavourableCommonTotal | 普通项目优惠金额合计 | Double |\n| serviceDisCountSubTotal | 项目折后金额合计 | Double |\n| partList | 工单对应配件材料集合 | List |\n| └─ sortNumber | 序号 | String |\n| └─ orderNumber | 序号(全部) | String |\n| └─ name | 名称 | String |\n| └─ partName | 材料名称 | String |\n| └─ partShowName | 材料名称(全) | String |\n| └─ partBrand | 配件品牌 | String |\n| └─ standard | 配件名称规格型号品牌 | String |\n| └─ spec | 规格型号 | String |\n| └─ supplierCode | 供应商编码 | String |\n| └─ unit | 单位 | String |\n| └─ number | 数量 | Double |\n| └─ price | 价格(单价) | Double |\n| └─ subtotal | 金额(材料金额) | Double |\n| └─ discount | 折扣 | Double |\n| └─ singleFavourable | 优惠金额 | Double |\n| └─ discountedSubtotal | 折后金额 | Double |\n| └─ partMemo | 备注 | String |\n| └─ customCode | 自定义编码 | String |\n| └─ employeeName | 员工名称 | String |\n| └─ outStockEmployeeName | 领料人 | String |\n| └─ empNameStr | 明细对应修理工名称组装字符串 | String |\n| └─ labelName | 业务分类名称 | String |\n| └─ idPart | 配件材料pk | BigInteger |\n| └─ idInfo | 本地材料id(长码) | String |\n| └─ applyModel | 适用车型 | String |\n| stuffNum | 材料数目合计 | String |\n| totalStuffNum | 材料数量合计 | String |\n| totalStuffNumVip | Vip材料数量合计(附表为0) | String |\n| stuffSubtotalAll | 材料费小计 | Double |\n| stuffSubtotalVip | 材料收入小计(会员项目,附表为0) | Double |\n| partinfoFavourable | 材料项目(非会员项目)客户等级优惠(附表为0) | Double |\n| partinfoDiscountFavourable | 材料折扣优惠 | Double |\n| partFavourableTotal | 材料优惠金额合计 | Double |\n| partFavourableCommonTotal | 普通材料优惠金额合计 | Double |\n| stuffDisCountTotal | 材料折后金额合计 | Double |\n| pointFavourable | 积分优惠(附表为0) | Double |\n| packageFavourable | 套餐优惠(附表为0) | Double |\n| discountFavourable | 结清优惠(附表为0) | Double |\n| gatheringFavourable | 收银优惠 | Double |\n| couponFavourable | 优惠券优惠(附表为0) | Double |\n| czkDiscountFavourable | 储值卡折扣优惠(附表为0) | Double |\n| customerLevelFavourable | 客户级别优惠金额(附表为0) | Double |\n| extraChargeList | 附加费用集合 | List |\n| └─ sortNumber | 序号 | String |\n| └─ extraName | 附加费名称 | String |\n| └─ subtotal | 金额 | Double |\n| └─ memo | 备注 | String |\n| extraCostTotal | 附加费小计 | Double |\n| extraNumber | 附加费数量小计 | String |\n| managementCost | 管理费 | Double |\n| extraPrintVo | 附加项目 | ExtraPrintAttribute |\n| └─ commissionCustomName | 代办费自定义名称 | String |\n| └─ commissionCost | 代办费金额 | Double |\n| └─ commissionMemo | 代办费备注 | String |\n| └─ diagnosisCustomName | 诊断费自定义名称 | String |\n| └─ diagnosisCost | 诊断费金额 | Double |\n| └─ diagnosisItemName | 诊断详细名称 | String |\n| └─ diagnosisMemo | 诊断费备注 | String |\n| └─ checkCustomName | 检查费自定义名称 | String |\n| └─ checkItemName | 诊断详细名称 | String |\n| └─ checkCost | 检查费金额 | Double |\n| └─ checkMemo | 检查费备注 | String |\n| └─ processCustomName | 加工费自定义名称 | String |\n| └─ processCost | 加工费金额 | Double |\n| └─ processMemo | 加工费备注 | String |\n| └─ processItemName | 加工详细名称 | String |\n| └─ managementCustomName | 管理费自定义名称 | String |\n| └─ managementCost | 管理费金额 | Double |\n| └─ managementMemo | 管理费备注 | String |\n| └─ fuelName | 加油费 | String |\n| └─ fuelAmount | 加油费金额 | Double |\n| └─ trailName | 拖车费 | String |\n| └─ trailAmount | 拖车费金额 | Double |\n| allOtherCost | 附加费合计应收 | Double |\n| receiptAmount | 收据金额(附表:应收-项目优惠-材料优惠-收银优惠) | Double |\n| receiptAmountChinese | 收据金额中文大写 | String |\n| payItemList | 付款方式集合 | List |\n| └─ payWay | 付款方式 | String |\n| └─ payAmount | 付款金额 | Double |\n| └─ chinesePayAmount | 付款金额中文大写 | String |\n| payItemTogether | 付款方式拼接 | String |\n| payItemTogetherChinese | 付款方式总额中文大写 | String |\n| paymentTypeDetails | 支付方式汇总 | String |\n| settleOweAmout | 结算单中用的待付金额(未收) | Double |\n| settleOweAmoutChinese | 结算单中用的待付金额大写(未收) | String |\n| settleReceivedAmout | 结算单中用的实付金额(实收) | Double |\n| settleReceivedAmoutChinese | 结算单中用的实付金额大写(未收) | String |\n| realPayAmountChinese | 客户实付大写(应收-所有优惠) | String |\n| naInsurer | 理赔公司名称 | String |\n| insurancepolicyNo | 理赔单理赔保险单号 | String |\n| insuranceCompany | 保险公司名称 | String |\n| contactName | 联系人姓名 | String |\n| contactCellphone | 联系人电话 | String |\n| insuranceNo | 商业险单号 | String |\n| insuranceNoTCI | 交强险单号 | String |\n| insuranceExpiryDate | 商业险到期日 | String |\n| insuranceExpiryDateTCI | 交强险到期日 | String |\n| printEmployeeName | 打印人姓名 | String |\n| printTime | 打印时间 | String |\n| printCount | 打印次数 | String |", + "metadata": { + "chunk_type": "md_section", + "source_file": "新版附表打印接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_367", + "content": "1. ++新版附表没有“状态”字段,所有模板中切勿使用 billStatus【单据状态】、balanceStatus【结算状态】来进行判断输出;采用直接取值方式填值++\n \n 1. ++没有了balanceStatus,采用收款方式列表payItemList判空的方式来验证是否有收款信息++\n \n 1. ++收银金额可写作:++$P{payItemList}.getRecordCount()==0?$P{receivedAmount}:$P{receivedAmount}.setScale( 2, BigDecimal.ROUND\\_HALF\\_EVEN ).toString()+\"(\"+$P{paymentTypeDetails}+\")\"\n \n 2. ++待付金额可写作:$P{oweAmount}++\n \n 3. ++实付金额可写作:$P{amountReal}++\n \n 4. ++合计金额可写作:++$P{payItemList}.getRecordCount()==0?($P{settleOweAmout}).setScale( 2, BigDecimal.ROUND_HALF_EVEN ):($P{settleReceivedAmout}).setScale( 2, BigDecimal.ROUND_HALF_EVEN )\n \n 5. ++大写可写作:++$P{payItemList}.getRecordCount()==0?$P{settleOweAmoutChinese}:$P{chineseAmount}\n \n2. ++新版附表没有“单据类型”字段(原附表的maintainType为\"GDFB\"、\"LPDFB\"两种附表类型),所有模板中切勿使用 maintainType【单据类型】字段作为判断条件。根据情况可以取 fromMaintainType【来源单据类型】进行判断。如:++\n \n 1. ++是否展示理赔公司、理赔单等理赔相关信息栏,老附表判断逻辑为 maintainType.equals('LPDFB')。可更换为 fromMaintainType.equals('LPD')++", + "metadata": { + "chunk_type": "md_section", + "source_file": "新版附表打印接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_368", + "content": "1. 出参标注颜色为 **绿 色** 的字段,为 ++**附表本身内容**++(如车牌号、VIN码等) 或 ++**无法变更内容**++(如门店信息等)\n \n 1. 客户在附表页面直接变更信息,会直观反映在打印内容中。\n \n2. 出参标注颜色为 **橙 色** 的字段,为 ++**通过客户ID、车辆ID、项目ID、材料ID**++ 等,++**反查**++ 基础数据获得内容,\n \n 1. 若客户通过 ++**附表页面选择组件方式**++ 修改附表信息,因ID发生变化,该部分打印内容会随之变化,变更信息将 ++**会体现在打印内容中**++。\n \n 2. 若客户通过 ++**手动填写文本内容方式**++ 修改附表信息,因ID未发生变化,该部分打印内容不会变化,变更信息将 ++**不会体现在打印内容中**++,若客户不满意结果,请客户直接将 ++**基础数据进行变更**++ 后,通过页面组件选择后再进行打印。", + "metadata": { + "chunk_type": "md_section", + "source_file": "新版附表打印接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_369", + "content": "> 更新: 2024-01-11 12:11:34 原文: ", + "metadata": { + "chunk_type": "md_section", + "source_file": "新版附表打印接口文档.md", + "kb_name": "" + } + }, + { + "id": "chunk_370", + "content": "# 材料标签接口参数", + "metadata": { + "chunk_type": "md_section", + "source_file": "材料标签接口参数.md", + "kb_name": "" + } + }, + { + "id": "chunk_371", + "content": "# 材料标签接口参数", + "metadata": { + "chunk_type": "md_section", + "source_file": "材料标签接口参数.md", + "kb_name": "" + } + }, + { + "id": "chunk_372", + "content": "打印平台模版分类:材料价格通用标签打印", + "metadata": { + "chunk_type": "md_section", + "source_file": "材料标签接口参数.md", + "kb_name": "" + } + }, + { + "id": "chunk_373", + "content": "材料标签支持一次打多张,与labelList集合里的元素个数相匹配:", + "metadata": { + "chunk_type": "md_section", + "source_file": "材料标签接口参数.md", + "kb_name": "" + } + }, + { + "id": "chunk_374", + "content": "| 字段 | 含义 | 是否必有 | 类型 |\n| --- | --- | --- | --- |\n| labelList | 材料标签列表 | | List